/* PitchBrain UI — token-driven dark theme.
   Palette notes: FDR greens + rise/fall pair validated with the studio dataviz
   checker (rise/fall requires the ▲▼ arrow alongside colour — keep it). */
:root {
  --bg: #0d1524;
  --panel: #141f31;
  --card: #182539;
  --card-hi: #1e2c42;
  --line: #25364f;
  --line-hi: #35496b;
  --ink: #e9eff7;
  --ink2: #9aabc2;
  --ink3: #8598b3;
  --accent: #4cc3e0;
  --accent-ink: #07252f;
  --accent-deep: #1a89aa;
  --gold: #e8c35c;
  --rise: #2fb894;
  --fall: #e0637a;
  --fdr1: #0e6b3c;
  --fdr2: #44b168;
  --fdr3: #3a4459;
  --fdr4: #b05c2c;
  --fdr5: #8f2340;
  --r: 14px;
  /* Type scale (critic review 2026-08-20 — collapse to ~7 sizes; the file
     had 30+ near-duplicate pixel values, e.g. 12/12.5/13/13.5/14/14.5px all
     doing the same job). Applied to base/high-impact rules below; the many
     small component-specific sizes (badges, chips, score markers) are NOT
     yet remapped to these — that's a real follow-up pass, not done tonight,
     because doing it blind across 100+ rules without visual verification
     the night before launch is a worse trade than leaving it granular. */
  --fs-xs: 10px;
  --fs-sm: 11.5px;
  --fs-base: 13px;
  --fs-md: 14px;
  --fs-lg: 16px;
  --fs-xl: 21px;
  --fs-xxl: 28px;
}

* { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
/* never let any element widen the layout viewport — phones would zoom the
   whole app out and force left-right panning (AJ, 2026-08-17) */
html, body { max-width:100%; overflow-x:hidden; }
html { -webkit-text-size-adjust:100%; background:var(--bg); }
body {
  min-height:100vh; color:var(--ink);
  font-family:system-ui, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
  background:radial-gradient(1100px 520px at 50% -8%, #1a2a45 0%, #111b2e 52%, var(--bg) 100%) fixed;
  padding-bottom:calc(66px + env(safe-area-inset-bottom));
  font-size:var(--fs-md); line-height:1.45;
}
.hidden { display:none !important; }
body.sheet-open { overflow:hidden; }

/* ---------- top bar ---------- */
#topbar {
  position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:10px;
  padding:11px 16px; background:rgba(13,21,36,.9); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.brand { display:flex; align-items:center; gap:9px; font-weight:800; letter-spacing:.18em; flex-shrink:0;
  font-size:14px; color:var(--ink); }
.brand img { width:24px; height:24px; }
.gw-pill { margin-left:auto; min-width:0; overflow:hidden; text-overflow:ellipsis;
  font-size:11.5px; font-weight:600; color:var(--ink2);
  background:var(--panel); border:1px solid var(--line); padding:5px 11px;
  border-radius:999px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.iconbtn { background:none; border:none; color:var(--ink3); font-size:19px; cursor:pointer;
  width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center;
  margin:-4px; transition:color .15s; }
.iconbtn:active { color:var(--accent); }

/* ---------- banner ---------- */
.banner { margin:10px 16px 0; padding:10px 14px; border-radius:12px; font-size:13px;
  line-height:1.5; background:rgba(232,195,92,.1); border:1px solid rgba(232,195,92,.35);
  color:#eed9a1; }
.banner.err { background:rgba(224,99,122,.1); border-color:rgba(224,99,122,.35); color:#f0aab8; }

/* ---------- layout ---------- */
#content { padding:14px 16px 24px; max-width:640px; margin:0 auto; }
.loading { text-align:center; color:var(--ink3); padding:64px 0; font-size:14px; }
.loading .pill { margin-top:18px; }
.load-skeleton { display:grid; gap:12px; max-width:560px; margin:24px auto; padding:0 16px; }
.load-skeleton span { display:block; height:72px; border:1px solid var(--line); border-radius:14px; background:var(--card); }
.deadline-card { border-color:var(--line-hi); }
.deadline-eyebrow { color:var(--accent); font-size:12px; font-weight:700; letter-spacing:.04em; }
.deadline-card h2 { font-size:20px; margin:6px 0 14px; }
.deadline-card p { color:var(--ink2); font-size:13px; line-height:1.55; margin:7px 0; }
.deadline-decisions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.deadline-decisions h3 { color:var(--ink2); font-size:12px; font-weight:600; margin-bottom:5px; }
.deadline-decisions b { font-size:16px; }
.deadline-confidence { color:var(--ink2); font-size:11px; }
.recommendation-why { font-size:12px; margin-top:6px; }
.recommendation-why summary { cursor:pointer; color:var(--accent); padding:4px 0; }
.deadline-explainer { margin:16px 0; font-size:13px; }
.deadline-explainer summary { color:var(--accent); cursor:pointer; padding:7px 0; }
.deadline-foot { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; margin-top:16px; font-size:11px; color:var(--ink2); }
.setup-guide { margin-bottom:16px; }
.planning-controls { margin:10px 0 18px; padding:12px; background:var(--panel); border:1px solid var(--line-hi); border-radius:12px; }
.planning-controls summary, .transfer-comparison summary, .advice-record summary { cursor:pointer; color:var(--accent); font-size:13px; padding:8px 0; }
.planning-controls label { display:block; font-size:13px; margin:12px 0; }
.planning-controls select { width:100%; padding:12px; margin-top:6px; color:var(--ink); background:var(--bg); border:1px solid var(--line-hi); border-radius:10px; font-size:14px; }
.planning-controls input { margin-top:6px; }
.source-note { font-size:13px; margin:0 0 6px; }
.transfer-comparison { padding:12px 16px; margin-bottom:16px; border:1px solid var(--line-hi); border-radius:12px; background:var(--card); }
.transfer-comparison table { width:100%; font-size:12px; border-collapse:collapse; margin:12px 0; }
.transfer-comparison th, .transfer-comparison td { padding:8px 4px; text-align:right; border-bottom:1px solid var(--line); }
.transfer-comparison th:first-child, .transfer-comparison td:first-child { text-align:left; }
.transfer-comparison button { margin:8px 6px 4px 0; font-size:13px; }
.advice-record { border-top:1px solid var(--line); margin-top:12px; }
.advice-record p { font-size:13px; margin:8px 0; }
#team-preview .pill { margin-top:12px; }
.pill:disabled { opacity:.5; cursor:not-allowed; }
@media (max-width:600px) {
  .deadline-decisions { grid-template-columns:1fr; gap:12px; }
  .deadline-decisions > div + div { border-top:1px solid var(--line); padding-top:12px; }
  .deadline-card h2 { font-size:18px; }
}

h2.sec { display:flex; align-items:center; gap:8px; font-size:var(--fs-xs); font-weight:700;
  letter-spacing:.13em; color:var(--ink3); text-transform:uppercase; margin:22px 2px 9px; }
h2.sec::before { content:""; flex:0 0 3px; width:3px; height:12px; border-radius:2px;
  background:var(--accent); }
h2.sec:first-child { margin-top:6px; }

.card {
  border-radius:var(--r); background:var(--card);
  border:1px solid var(--line);
  box-shadow:0 6px 20px rgba(4,9,18,.35);
  padding:6px 14px; margin-bottom:10px;
}
.card.flat { background:var(--panel); box-shadow:none; padding:10px 14px; }
.statgrid .card, .planhead .card { padding:12px 8px; }

/* ---------- utility page headers ---------- */
.page-lead { margin:8px 2px 14px; padding:15px 16px 14px; border:1px solid var(--line-hi);
  border-radius:14px; background:linear-gradient(120deg,rgba(76,195,224,.11),rgba(20,34,55,.48) 58%,rgba(232,195,92,.055)); }
.page-eyebrow { color:var(--accent); font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.page-lead h1 { margin:4px 0 4px; color:var(--ink); font-size:20px; line-height:1.15; letter-spacing:-.025em; }
.page-lead p { margin:0; color:var(--ink2); font-size:12.5px; line-height:1.45; }
.tab-intro { margin:0 3px 10px; color:var(--ink2); font-size:12px; line-height:1.4; }

/* ---------- player rows ---------- */
.prow { display:flex; align-items:center; gap:10px; padding:10px 0;
  border-bottom:1px solid rgba(37,54,79,.65); }
.prow:last-child { border-bottom:none; }
.prow .rankn { width:20px; text-align:center; font-weight:700; color:var(--ink3);
  font-size:12px; font-variant-numeric:tabular-nums; }
.prow .pinfo { flex:1; min-width:0; }
.prow .pname { font-weight:650; font-size:14px; color:var(--ink);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.prow .psub { font-size:11.5px; color:var(--ink2); margin-top:1px; }
/* the "why" line under a suggestion (Chris 2026-09-07) — same .psub scale,
   dimmed one step and given room to wrap, so it reads as supporting detail
   rather than competing with the name. No new colours, chips or artwork. */
/* display:block so it sits on its own line whether the consumer wrapped it in
   a <div> (app.js) or a <span> (rate.js) */
.prow .psub.why { display:block; color:var(--ink3); line-height:1.45;
  margin-top:3px; white-space:normal; }
.prow .psub.why .why-conf { color:var(--ink2); font-weight:650;
  white-space:nowrap; }
.prow .pnum { text-align:right; }
.prow .pnum .big { font-weight:750; font-size:15px; color:var(--ink);
  font-variant-numeric:tabular-nums; }
.prow .pnum .sm { font-size:10px; color:var(--ink3); letter-spacing:.02em; }

.cap-badge { display:inline-block; background:var(--accent); color:var(--accent-ink);
  font-weight:800; font-size:10px; border-radius:5px; padding:1px 5px; margin-left:6px;
  vertical-align:1px; }
.vc-badge { background:var(--line-hi); color:var(--ink); }
.flag { display:inline-block; font-size:10px; border-radius:5px; padding:1px 6px; margin-left:6px;
  background:rgba(224,99,122,.14); border:1px solid rgba(224,99,122,.4); color:#f0aab8;
  font-weight:650; vertical-align:1px; }
.flag.warn { background:rgba(232,195,92,.12); border-color:rgba(232,195,92,.4); color:#eed9a1; }

/* ---------- fixture difficulty chips ---------- */
.fdrs { display:inline-flex; gap:3px; vertical-align:middle; }
.fdr { display:inline-block; min-width:34px; text-align:center; font-size:9.5px; font-weight:700;
  letter-spacing:.02em; border-radius:5px; padding:2.5px 3px; color:#eef4f0; }
.fdr.d1 { background:var(--fdr1); } .fdr.d2 { background:var(--fdr2); color:#0b2a17; }
.fdr.d3 { background:var(--fdr3); color:var(--ink2); }
.fdr.d4 { background:var(--fdr4); } .fdr.d5 { background:var(--fdr5); }
.fdr.blank { background:var(--panel); color:var(--ink3); border:1px dashed var(--line); }

/* ---------- fdr grid ---------- */
.gridwrap { overflow-x:auto; padding-top:10px; padding-bottom:10px; }
table.fdrgrid { border-collapse:separate; border-spacing:3px; width:100%; }
table.fdrgrid th { font-size:10px; color:var(--ink3); font-weight:700; letter-spacing:.06em;
  padding:2px 4px; text-align:center; }
table.fdrgrid th.tname { text-align:left; }
table.fdrgrid td { padding:0; }
table.fdrgrid td .fdr { display:block; min-width:40px; padding:5.5px 2px; font-size:9.5px; }
table.fdrgrid td.teamcell { font-size:11.5px; font-weight:700; color:var(--ink2);
  padding:0 6px 0 2px; white-space:nowrap; }

/* ---------- league table ---------- */
table.league { width:100%; border-collapse:collapse; font-size:13px; }
table.league th { text-align:left; color:var(--ink3); font-size:10px; text-transform:uppercase;
  letter-spacing:.1em; padding:8px 4px 6px; border-bottom:1px solid var(--line); }
table.league td { padding:9px 4px; border-bottom:1px solid rgba(37,54,79,.65); }
table.league tr:last-child td { border-bottom:none; }
table.league .num { text-align:right; font-variant-numeric:tabular-nums; }
table.league .me td { background:rgba(76,195,224,.07); }
.mv { font-size:10px; margin-left:4px; }
.mv.up { color:var(--rise); } .mv.down { color:var(--fall); } .mv.same { color:var(--ink3); }

/* ---------- buttons & inputs ---------- */
.pill { display:inline-block; border:none; cursor:pointer; font-size:var(--fs-md); font-weight:700;
  letter-spacing:.01em; color:var(--accent-ink); padding:12px 22px; border-radius:12px;
  background:linear-gradient(180deg, #58cde8 0%, #33aed0 100%);
  box-shadow:0 4px 14px rgba(38,160,196,.3); transition:transform .1s, filter .15s; }
.pill:active { transform:scale(.98); filter:brightness(1.08); }
.ghost { background:none; border:1px solid var(--line-hi); color:var(--ink2); border-radius:12px;
  padding:12px 22px; font-size:14px; font-weight:600; cursor:pointer; transition:border-color .15s; }
.ghost:active { border-color:var(--accent); color:var(--accent); }
input[type=number], input[type=text] {
  width:100%; padding:12px 14px; font-size:16px; border-radius:12px; color:var(--ink);
  background:var(--bg); border:1px solid var(--line-hi); outline:none; }
input:focus { border-color:var(--accent); }

/* ---------- tab bar ---------- */
#tabbar { position:fixed; bottom:0; left:0; right:0; z-index:30; display:flex;
  background:rgba(13,21,36,.94); backdrop-filter:blur(10px); border-top:1px solid var(--line);
  padding-bottom:env(safe-area-inset-bottom); }
#tabbar button { flex:1; min-width:0; position:relative; background:none; border:none; color:var(--ink3);
  font-size:10.5px; font-weight:650; letter-spacing:.03em; padding:9px 0 10px; cursor:pointer;
  transition:color .15s; }
#tabbar button .ico { display:block; font-size:18px; margin-bottom:3px;
  filter:grayscale(1) opacity(.55); transition:filter .15s; }
#tabbar button.active { color:var(--accent); }
#tabbar button.active .ico { filter:none; }
#tabbar button.active::after { content:""; position:absolute; top:0; left:30%; right:30%;
  height:2px; border-radius:0 0 2px 2px; background:var(--accent); }

/* ---------- sub-nav pills (Chris 2026-09-07) ----------
   One row per tab, one page visible at a time. Horizontally scrollable so a
   four-pill row never widens the layout viewport on a narrow phone (the
   html/body max-width lock from 2026-08-17 depends on nobody doing that). */
.subnav { display:flex; gap:4px; overflow-x:auto; scrollbar-width:none;
  margin:2px -16px 14px; padding:2px 12px 4px;
  /* if a pill row ever does overflow (long labels, tiny phone) the last pill
     fades instead of being sliced flat — reads as "scroll me", not "broken" */
  -webkit-mask-image:linear-gradient(90deg, #000 0, #000 calc(100% - 26px), transparent 100%);
  mask-image:linear-gradient(90deg, #000 0, #000 calc(100% - 26px), transparent 100%); }
.subnav:not(.scrolls) { -webkit-mask-image:none; mask-image:none; }
.subnav::-webkit-scrollbar { display:none; }
.subpill { flex:0 0 auto; cursor:pointer; white-space:nowrap;
  font-size:var(--fs-sm); font-weight:700; letter-spacing:.01em;
  color:var(--ink2); background:var(--panel); border:1px solid var(--line);
  border-radius:999px; padding:9px; min-height:36px;
  transition:color .15s, border-color .15s, background .15s; }
.subpill:active { transform:scale(.98); }
.subpill.active { color:var(--accent-ink); border-color:transparent;
  background:linear-gradient(180deg, #6fd6ef, var(--accent) 55%, var(--accent-deep));
  box-shadow:0 3px 10px rgba(26,137,170,.35); }

/* ---------- pinned team header (Advice) ---------- */
.teamhead { text-align:center; padding:14px 14px 12px; }
.teamhead .th-name { font-size:var(--fs-xl); font-weight:800; line-height:1.15;
  color:var(--ink); letter-spacing:.01em; }
.teamhead .th-sub { font-size:var(--fs-sm); color:var(--ink3); margin-top:2px; }
.teamhead .th-stats { display:flex; gap:4px; margin-top:11px;
  border-top:1px solid var(--line); padding-top:10px; }
.teamhead .th-stats > div { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.teamhead .th-stats .v { font-size:var(--fs-lg); font-weight:800; color:var(--ink);
  font-variant-numeric:tabular-nums; line-height:1.1; }
.teamhead .th-stats .k { font-size:9.5px; color:var(--ink3); text-transform:uppercase;
  letter-spacing:.09em; }

/* ---------- sheets ---------- */
.sheet { position:fixed; inset:0; z-index:40; background:rgba(5,9,17,.7);
  display:flex; align-items:flex-end; justify-content:center; backdrop-filter:blur(2px); }
.sheet-card { width:min(560px,100%); max-height:88vh; max-height:calc(100dvh - 46px); overflow-y:auto;
  border-radius:20px 20px 0 0; padding:14px 22px 34px;
  background:var(--panel); border:1px solid var(--line); border-bottom:none; }
.sheet-card h2 { font-size:var(--fs-lg); font-weight:750; letter-spacing:.01em; margin-top:2px; margin-bottom:12px; }
.sheet-card label { display:block; font-size:var(--fs-sm); font-weight:600; color:var(--ink2); margin:12px 0 6px; }
.sheet-card .row { display:flex; gap:10px; margin-top:18px; }
.hint { font-size:var(--fs-sm); color:var(--ink2); line-height:1.55; margin-top:8px; }
.hint.dim { color:var(--ink3); }

/* ---------- misc ---------- */
.statgrid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.stat { text-align:center; }
.stat .v { font-size:21px; font-weight:800; color:var(--ink); font-variant-numeric:tabular-nums; }
.stat .k { font-size:9.5px; color:var(--ink3); text-transform:uppercase; letter-spacing:.11em; margin-top:3px; }
.empty { text-align:center; color:var(--ink2); padding:36px 16px; font-size:14px; line-height:1.65; }
.linkish { color:var(--accent); cursor:pointer; text-decoration:none; border-bottom:1px dotted var(--accent-deep); }
.pts-summary { display:flex; align-items:center; justify-content:center; gap:22px; padding:14px 14px; }
.pts-summary > div:not(.div) { text-align:center; display:flex; flex-direction:column; align-items:center; gap:2px; }
.pts-summary .div { width:1px; align-self:stretch; background:var(--line); }
.pts-summary .v { font-size:24px; font-weight:800; color:var(--ink); font-variant-numeric:tabular-nums; line-height:1; }
.pts-summary .v.accent { color:var(--accent); }
.pts-summary .k { font-size:10px; color:var(--ink3); text-transform:uppercase; letter-spacing:.08em; }

.leaguelist { padding:6px 8px; }
.leaguerow { display:flex; align-items:center; gap:12px; width:100%; text-align:left; cursor:pointer;
  background:none; border:none; padding:11px 6px; border-bottom:1px solid rgba(37,54,79,.65); }
.leaguerow:last-child { border-bottom:none; }
.leaguerow:active { background:rgba(76,195,224,.07); border-radius:10px; }
.leaguerow .lr-rank { flex:0 0 48px; text-align:center; font-size:18px; font-weight:800; color:var(--accent);
  font-variant-numeric:tabular-nums; }
.leaguerow .lr-rank.lr-gold { color:#f2c14e; }
.leaguerow .lr-rank.lr-silver { color:#cdd8e6; }
.leaguerow .lr-rank.lr-bronze { color:#d99a63; }
.leaguerow .lr-info { flex:1; min-width:0; }
.leaguerow .lr-name { font-size:14.5px; font-weight:650; color:var(--ink); white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis; }
.leaguerow .lr-sub { font-size:11.5px; color:var(--ink3); margin-top:2px; }
.leaguerow .lr-arrow { flex:0 0 auto; font-size:20px; color:var(--ink3); }
.pos-tag { display:inline-block; font-size:9px; font-weight:750; letter-spacing:.05em;
  border-radius:4px; padding:1.5px 5px; margin-right:6px; background:var(--panel);
  border:1px solid var(--line-hi); color:var(--ink2); vertical-align:1px; }
.livedot { display:inline-block; width:8px; height:8px; border-radius:50%;
  background:#ff4d6a; box-shadow:0 0 0 0 rgba(255,77,106,.5); animation:livepulse 1.6s infinite; }
@keyframes livepulse {
  0% { box-shadow:0 0 0 0 rgba(255,77,106,.45); }
  70% { box-shadow:0 0 0 7px rgba(255,77,106,0); }
  100% { box-shadow:0 0 0 0 rgba(255,77,106,0); }
}

/* ---------- pitch picker (Plan tab) ---------- */
.pitch { position:relative; border-radius:16px; padding:24px 8px 16px; overflow:hidden;
  background:linear-gradient(180deg, #173f35 0%, #12352d 52%, #102e28 100%);
  border:1px solid #2c6657; box-shadow:0 12px 28px rgba(3,10,17,.35), inset 0 1px 0 rgba(255,255,255,.05); }
.pitch::before { content:""; position:absolute; inset:10px; pointer-events:none;
  border:1px solid rgba(207,239,221,.20); border-radius:10px;
  background:
    linear-gradient(90deg, transparent calc(50% - .5px), rgba(207,239,221,.18) calc(50% - .5px), rgba(207,239,221,.18) calc(50% + .5px), transparent calc(50% + .5px)),
    repeating-linear-gradient(180deg, rgba(255,255,255,.018) 0 46px, transparent 46px 92px); }
.pitch::after { content:""; position:absolute; left:50%; top:50%; width:70px; height:70px;
  transform:translate(-50%,-50%); border:1px solid rgba(207,239,221,.17);
  border-radius:50%; pointer-events:none; }
.prow-pitch { position:relative; display:flex; justify-content:center; gap:6px; margin:17px 0; z-index:1; }
.prow-pitch::before { content:attr(data-row); position:absolute; left:7px; top:50%;
  transform:translateY(-50%); font-size:8px; font-weight:800; letter-spacing:.18em;
  color:rgba(255,255,255,.45); pointer-events:none; }
.pcposchip { display:block; width:max-content; margin:0 auto 4px; font-size:8px; font-weight:800;
  letter-spacing:.1em; color:#b8d5ca; background:rgba(7,23,30,.75);
  border:1px solid rgba(184,213,202,.14); border-radius:4px; padding:1.5px 6px; }
.pcard { position:relative; width:19%; max-width:88px; min-width:0; text-align:center; cursor:pointer; border:none;
  background:none; padding:0; color:inherit; font:inherit; -webkit-user-select:none; user-select:none;
  transition:transform .1s; }
.pcard:active { transform:scale(.94); }
/* shirts shrink with the card so a 5-wide row can never force sideways scroll */
.shirt { position:relative; width:100%; max-width:62px; aspect-ratio:48/46; margin:0 auto; display:block; }
.shirt svg { width:100%; height:100%; display:block;
  filter:drop-shadow(0 4px 5px rgba(0,0,0,.38)) drop-shadow(0 1px 0 rgba(255,255,255,.12)); }
.shirt .badge-c { position:absolute; top:-7px; right:-7px; width:17px; height:17px; border-radius:50%;
  background:var(--accent); color:var(--accent-ink); font-size:10px; font-weight:800;
  display:flex; align-items:center; justify-content:center; border:1.5px solid #0b3441; }
.shirt .badge-inj { position:absolute; top:-7px; left:-7px; width:17px; height:17px; border-radius:50%;
  background:#c81e3e; color:#fff; font-size:10px; font-weight:800;
  display:flex; align-items:center; justify-content:center; border:1.5px solid #59101f; }
.shirt .badge-warn { background:#d99b23; border-color:#5c4308; color:#241a02; }
.shirt .badge-pen { position:absolute; bottom:-7px; right:-7px; width:16px; height:16px; border-radius:50%;
  background:var(--bg); border:1px solid var(--line-hi); font-size:8.5px;
  display:flex; align-items:center; justify-content:center; }
.shirt .badge-v { background:var(--line-hi); color:var(--ink); border-color:#0b1a2c; }
/* projected-points chip stacked straight onto the name plate (Chris
   2026-09-07) — the two read as one label, so the name loses its own top
   radius and margin whenever a chip is present */
.pcproj { display:block; max-width:100%; margin:7px auto 3px; padding:2px 5px;
  font-size:10px; font-weight:800; font-variant-numeric:tabular-nums; letter-spacing:.02em;
  color:#a9e8f7; background:rgba(7,31,43,.90); border:1px solid rgba(111,212,232,.34);
  border-radius:999px; box-shadow:0 2px 5px rgba(0,0,0,.24);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pitch.mini .pcproj { font-size:9px; }
.pcproj + .pcname { margin-top:0; }
.pcname { display:block; max-width:100%; font-size:11.5px; font-weight:700; background:rgba(10,28,43,.94); color:#f2f7f6;
  border:1px solid rgba(179,220,213,.18); border-bottom:0; border-radius:7px 7px 0 0; padding:3.5px 5px 3px; margin-top:7px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  box-shadow:0 2px 5px rgba(0,0,0,.25); }
/* long names (Bendito Mantato) drop a size before the ellipsis bites */
.pcname.long { font-size:9px; letter-spacing:-.2px; }
.pitch.mini .pcname.long { font-size:8px; }
.pcfix { font-size:9.5px; }
.pcfix .fdr { display:block; border-radius:0 0 7px 7px; min-width:0; padding:3px 2px; font-weight:800;
  box-shadow:0 2px 5px rgba(0,0,0,.22); }
/* today's market price, under the fixture chip (Chris 2026-09-07) */
.pcprice { display:inline-block; margin-top:5px; padding:2px 6px; font-size:10px; font-weight:800;
  font-variant-numeric:tabular-nums; color:#dff6ee; background:rgba(5,22,31,.72);
  border:1px solid rgba(180,220,210,.18); border-radius:999px;
  text-shadow:0 1px 2px rgba(0,0,0,.45); }
.pitch.mini .pcprice { font-size:8.5px; }
.bench-strip { margin-top:12px; position:relative; z-index:1; background:rgba(5,21,28,.64);
  border:1px solid rgba(184,213,202,.12); border-radius:10px; padding:14px 6px 10px; display:flex; justify-content:center; gap:6px; }
.bench-label { position:relative; z-index:1; text-align:center; font-size:8.5px; letter-spacing:.35em;
  color:rgba(210,235,225,.55); margin-top:16px; }
.planhead { display:flex; gap:8px; margin-bottom:10px; }
.planhead .stat { flex:1; margin-bottom:0; }
.planhead .stat .v { font-size:17px; }
.planbtns { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
.planbtns button { flex:1 1 44%; padding:12px 6px; font-size:13px; }
.alert-strip { background:rgba(224,99,122,.1); border:1px solid rgba(224,99,122,.35);
  color:#f0aab8; border-radius:12px; padding:10px 13px; font-size:12.5px; line-height:1.55;
  margin-bottom:10px; }
.alert-strip .linkish { color:#f0aab8; font-weight:700; }
.swap-gain { color:var(--rise); font-weight:750; font-size:13px; white-space:nowrap;
  font-variant-numeric:tabular-nums; }
.applybtn { background:var(--accent); color:var(--accent-ink); border:none; border-radius:9px;
  font-size:12px; font-weight:750; padding:7px 14px; cursor:pointer; margin-left:8px; }
.applybtn:active { filter:brightness(1.1); }
.transfer-verdict { padding:16px; }
.transfer-verdict h3 { margin:5px 0 7px; font-size:19px; line-height:1.25; }
.transfer-verdict p { color:var(--ink2); font-size:13px; line-height:1.55; }
.transfer-verdict .transfer-context { border-top:1px solid var(--line); margin-top:12px; padding-top:10px; font-size:12px; }
.transfer-option { background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:15px; margin:10px 0; }
.transfer-option-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.transfer-option-head > div:first-child { min-width:0; }
.transfer-option h3 { font-size:14px; line-height:1.4; overflow-wrap:anywhere; }
.transfer-option-head p, .transfer-reason { color:var(--ink2); font-size:12px; line-height:1.5; margin-top:4px; }
.transfer-net { flex-shrink:0; text-align:right; font-variant-numeric:tabular-nums; }
.transfer-net b { display:block; font-size:21px; line-height:1.2; }
.transfer-net span { font-size:11px; color:var(--ink2); }
.transfer-net.positive b { color:#8fe4c9; }
.transfer-math { font-size:13px; margin:10px 0 6px; color:var(--ink); }
.transfer-option .applybtn { margin:12px 0 0; padding:10px 14px; }
.transfer-breakdown { margin-top:10px; font-size:12px; }
.transfer-breakdown summary, .transfer-rejected > summary { color:var(--accent); cursor:pointer; padding:8px 0; }
.transfer-breakdown dl { margin-top:8px; }
.transfer-breakdown dl > div { display:flex; justify-content:space-between; gap:12px; padding:7px 0; border-bottom:1px solid var(--line); }
.transfer-breakdown dd { font-weight:700; font-variant-numeric:tabular-nums; }
.transfer-breakdown p { margin-top:8px; line-height:1.5; color:var(--ink2); }
.transfer-rejected { margin:12px 0; font-size:13px; }
.transfer-option-muted { background:var(--panel); }
.transfer-footnote { line-height:1.55; margin:12px 2px; }
.draft-status { border:1px solid var(--line-hi); border-radius:var(--r); background:var(--panel); padding:14px 16px; margin:0 0 14px; }
.draft-status h3 { font-size:14px; margin:5px 0; }
.draft-status p { color:var(--ink2); font-size:12px; line-height:1.55; }
.draft-status summary { cursor:pointer; color:var(--accent); font-size:12px; margin-top:8px; padding:4px 0; }
.path-totals { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:14px 0; }
.path-totals b { display:block; font-size:22px; font-variant-numeric:tabular-nums; }
.path-totals span { display:block; font-size:11px; color:var(--ink2); }
.transfer-path { list-style:none; margin:12px 0; padding:0; }
.transfer-path-week { padding:14px 16px; margin-bottom:8px; border:1px solid var(--line); border-radius:var(--r); background:var(--panel); }
.path-week-label { color:var(--accent); font-size:11px; font-weight:700; margin-bottom:5px; }
.transfer-path-week h3 { font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.transfer-path-week > p { font-size:12px; color:var(--ink2); line-height:1.55; margin-top:4px; }
.path-apply { width:100%; margin:4px 0 10px; }
.overbudget { color:var(--fall) !important; }

/* ---------- Ask the Gaffer (Pro) ---------- */
.pro-tag { display:inline-block; font-size:9px; font-weight:800; letter-spacing:.12em;
  color:#2a2005; background:linear-gradient(180deg, #f2d47c, #d9a531); border-radius:5px;
  padding:2px 7px; vertical-align:2px; margin-left:6px; }
.chat-card { height:86vh; display:flex; flex-direction:column; }
#chat-ui { flex:1; display:flex; flex-direction:column; min-height:0; }
#chat-msgs { flex:1; overflow-y:auto; display:flex; flex-direction:column; gap:8px; padding:4px 2px; }
.bub { max-width:86%; padding:9px 13px; border-radius:14px; font-size:13.5px; line-height:1.5; }
.bub.user { align-self:flex-end; background:var(--accent-deep); color:#eaf8fd;
  border-bottom-right-radius:4px; }
.bub.gaffer { align-self:flex-start; background:var(--card-hi); border:1px solid var(--line);
  border-bottom-left-radius:4px; }
.bub.gaffer > div:first-child { margin-top:0 !important; }
.chatbar { display:flex; gap:8px; margin-top:10px; }
.chatbar input { flex:1; }
.chatbar .pill { padding:12px 18px; flex:0 0 auto; }
#chat-status { min-height:16px; margin-top:6px; }

/* ---------- set-piece badges ---------- */
.sp-b { font-size:10.5px; margin-left:3px; vertical-align:middle;
  filter:saturate(.85) drop-shadow(0 1px 2px rgba(0,0,0,.4)); }

/* ---------- squad scan / manual squad editor ---------- */
.orline { text-align:center; color:var(--ink3); font-size:10.5px; font-weight:600;
  letter-spacing:.16em; margin:18px 0 12px; text-transform:uppercase; }
/* the sheet-card label rule paints label text dim grey — the scan pill must
   keep the pill's dark-on-cyan text (Chris 2026-08-18: "not nice") */
.filebtn { display:flex; align-items:center; justify-content:center; margin:2px 0 4px; cursor:pointer;
  font-size:14px !important; font-weight:700 !important; color:var(--accent-ink) !important; }
.filebtn span { color:var(--accent-ink); }

/* Settings: Pro panel */
.pro-badge { display:inline-block; font-size:10.5px; font-weight:800; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink2); background:var(--bg); border:1px solid var(--line-hi);
  border-radius:999px; padding:4px 12px; margin:2px 0 5px; }
.pro-badge.on { color:#0a3644; background:linear-gradient(180deg,#e6fcff,#55dcf2); border-color:#189ac2; }
.price-row { display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:10px 0; border-bottom:1px solid rgba(37,54,79,.65); }
.price-row:last-of-type { border-bottom:none; }
.price-row .ghost.sm { white-space:nowrap; flex-shrink:0; }
.set-foot { display:flex; flex-direction:column; gap:3px; font-size:11px; color:var(--ink3);
  margin-top:12px; padding-top:10px; border-top:1px solid var(--line); }
.rmv { background:none; border:1px solid rgba(224,99,122,.4); color:#f0aab8; border-radius:8px;
  padding:2px 9px; cursor:pointer; font-size:13px; margin-left:8px; }
#squad-review .card { margin-top:12px; }
#squad-review input { margin-top:8px; }

/* ---------- login gate ---------- */
.gate { position:fixed; inset:0; z-index:200; overflow-y:auto; padding:20px;
  background:radial-gradient(1100px 520px at 50% -8%, #1a2a45 0%, #111b2e 52%, var(--bg) 100%); }
.gate.hidden { display:none; }

/* signed-out landing page (Chris 2026-08-18) */
.land { max-width:1040px; margin:0 auto; padding-bottom:40px; }
.land-nav { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:20px; padding:12px 0; }
.land-nav a { color:var(--ink2); font-size:14px; padding:8px 0; }
.land-intro { display:grid; grid-template-columns:1.1fr 1fr; gap:44px; align-items:center; margin:20px 0 36px; }
.land .land-hero { text-align:left; }
.land .gate-brand.big { justify-content:flex-start; }
.land .land-sub { margin:0 0 22px; }
.land a.land-cta { text-decoration:none; text-align:center; }
.land-preview { padding:26px; border:1px solid var(--line-hi); border-radius:22px; background:var(--card); }
.preview-label { font-size:12px; letter-spacing:.13em; color:var(--accent); font-weight:700; }
.land-preview h2 { font-size:23px; margin:10px 0 18px; }
.preview-score { display:flex; gap:16px; align-items:center; margin-bottom:18px; }
.preview-score strong { font-size:44px; line-height:1; }
.preview-score span { color:var(--ink2); font-size:13px; }
.preview-pitch { text-align:center; padding:18px 8px; border:1px solid #456b68; border-radius:14px; background:repeating-linear-gradient(0deg,#183c38 0px,#183c38 42px,#1d4540 42px,#1d4540 84px); }
.preview-pitch div { display:flex; justify-content:space-around; gap:6px; margin-top:16px; }
.preview-pitch span { display:inline-block; background:#e9eff7; color:#15223a; border-radius:5px; font-size:11px; font-weight:700; padding:6px 8px; }
.ghost-public-pitch { margin-bottom:12px; }
.ghost-public-pitch div { gap:4px; }
.ghost-public-pitch span { flex:0 1 100px; min-width:0; padding:6px 3px; }
.ghost-public-pitch b { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.preview-item { border-bottom:1px solid var(--line-hi); padding:14px 0; }
.preview-item p { color:var(--ink2); font-size:14px; margin-top:4px; }
.land-preview > a { display:inline-block; margin-top:18px; font-size:14px; }
.land-section-title { font-size:24px; text-align:center; margin:32px 0 20px; }
.land .land-feats { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.land .lf { padding:20px; font-size:14px; }
.land .lf b { font-size:16px; }
.land .hint { font-size:13px; }
.land .lp .psub { font-size:14px; }
.gate-card label { font-size:14px; color:var(--ink2); margin-bottom:-6px; }
.gate-card input { padding:12px 14px; min-height:46px; border:1px solid var(--line-hi); border-radius:10px; background:var(--bg); color:var(--ink); font:inherit; font-size:16px; }
.gate-links button { background:none; border:0; font:inherit; cursor:pointer; padding:4px 0; }
.land a:focus-visible, .land button:focus-visible, .gate-card input:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
@media (max-width:760px) {
  .land-intro { grid-template-columns:1fr; gap:16px; margin-top:0; }
  .land .land-hero { padding:24px 0 8px; }
  .land .land-feats { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:520px) {
  .land-nav { justify-content:space-between; gap:8px; }
  .land-nav a { font-size:12px; }
  .land .land-feats { grid-template-columns:1fr; }
  .land-preview { padding:20px; }
  .land .gate-brand.big { font-size:23px; }
  .land a.land-cta { display:block; padding:14px 16px; }
}
.land-hero { text-align:center; padding:36px 6px 26px; }
.gate-brand.big { font-size:26px; }
.gate-brand.big img { width:42px; height:42px; }
.land-hero h1 { font-size:31px; line-height:1.16; font-weight:800; letter-spacing:-.01em;
  margin:20px 0 12px; color:var(--ink); }
.land-sub { color:var(--ink2); font-size:15px; line-height:1.55; max-width:440px; margin:0 auto 20px; }
.land-cta { font-size:16px; padding:14px 30px; }
.land-cta2 { display:inline-block; font-size:14px; padding:11px 24px; margin-top:12px;
  text-decoration:none; }
.land-steps { display:flex; gap:7px; flex-wrap:wrap; margin-top:18px; }
.land-steps span { color:var(--ink2); font-size:12px; font-weight:650; }
.land-steps b { display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px;
  margin-right:4px; border-radius:50%; color:var(--accent-ink); background:var(--accent); font-size:10px; }
.rate-promo { display:flex; align-items:center; justify-content:space-between; gap:10px;
  text-decoration:none; color:var(--ink); font-size:13px; }
.rate-promo b { color:var(--ink); }
.rate-promo .linkish { flex-shrink:0; font-size:12.5px; }
.land-hero .hint { margin-top:10px; }
.land-feats { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:8px 0 26px; }
@media (max-width:520px) { .land-feats { grid-template-columns:1fr; } }
.lf { background:var(--card); border:1px solid var(--line); border-radius:14px; padding:14px;
  font-size:12.5px; line-height:1.5; color:var(--ink2); }
.lf span { display:block; font-size:22px; margin-bottom:6px; }
.lf b { display:block; color:var(--ink); font-size:13.5px; margin-bottom:3px; }
.lf em { font-style:normal; font-size:10px; font-weight:800; letter-spacing:.08em; color:var(--accent);
  vertical-align:2px; }
.land-price { display:flex; gap:10px; margin-bottom:14px; }
@media (max-width:520px) { .land-price { flex-direction:column; } }
.lp { flex:1; background:var(--card); border:1px solid var(--line); border-radius:14px;
  padding:14px; text-align:center; }
.lp.hot { border-color:#189ac2; box-shadow:0 0 18px rgba(85,220,242,.15); }
.lp-name { font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink3); }
.lp-cost { font-size:21px; font-weight:800; color:var(--ink); margin:4px 0 6px; }
.lp-cost s { font-size:12px; opacity:.6; font-weight:500; }
.land .gate-card { margin:0 auto; }
.gate-card { width:100%; max-width:380px; background:var(--card); border:1px solid var(--line-hi);
  border-radius:var(--r); padding:26px 24px 20px; display:flex; flex-direction:column; gap:12px; }
.gate-brand { display:flex; align-items:center; justify-content:center; gap:10px;
  font-weight:800; font-size:22px; letter-spacing:.14em; }
.gate-brand img { width:34px; height:34px; }
.gate-sub { color:var(--ink2); font-size:14px; line-height:1.45; text-align:center; margin:0 0 4px; }
.gbtn { display:flex; align-items:center; justify-content:center; gap:10px; cursor:pointer;
  background:#f5f7fa; color:#1c2430; border:none; border-radius:12px; padding:12px 16px;
  font-size:14.5px; font-weight:700; }
.gbtn:active { filter:brightness(.95); }
.gate-card input { width:100%; box-sizing:border-box; }
.pill.wide { width:100%; }
.gate-links { display:flex; justify-content:space-between; font-size:13.5px; }
.gate-err { min-height:18px; color:var(--fall); font-size:13.5px; text-align:center; }
.gate button:disabled { opacity:.55; }
.acct-row { display:flex; align-items:center; justify-content:space-between; margin-top:10px; }
.ghost.sm { padding:6px 14px; font-size:13px; }

/* ---------- scan review: mini pitch with fillable slots ---------- */
.pitch.mini { padding:12px 2px 8px; }
.pitch.mini .prow-pitch { margin:7px 0; gap:4px; }
.pitch.mini .pcard { min-width:52px; max-width:72px; }
.pitch.mini .shirt { width:44px; height:42px; }
.pitch.mini .pcname { font-size:9.5px; }
/* drag-to-substitute */
.pcard { -webkit-user-select:none; user-select:none; -webkit-touch-callout:none; }
.pcard.drag-src { opacity:.35; }
.pcard.drag-ghost { position:fixed; z-index:999; pointer-events:none; margin:0;
  transform:translate(-50%,-60%) scale(1.12); min-width:64px;
  filter:drop-shadow(0 10px 20px rgba(0,0,0,.55)); }
.pcard.drag-over { outline:2px solid #55dcf2; outline-offset:2px; border-radius:12px;
  background:rgba(85,220,242,.16); }
.pcard.slot-empty { display:flex; align-items:flex-start; justify-content:center; cursor:default; }
.slot-box { display:flex; align-items:center; justify-content:center; width:44px; height:42px;
  border:2px dashed rgba(255,255,255,.3); border-radius:9px; color:rgba(255,255,255,.6);
  font-size:10px; font-weight:800; letter-spacing:.05em; background:rgba(9,15,27,.18); }

/* ---------- transfer market (swap picker) ---------- */
.mk-budget { font-size:11.5px; font-weight:600; color:var(--ink2); margin-left:8px; letter-spacing:0; }
.mk-controls { display:flex; flex-direction:column; gap:8px; margin-bottom:10px; }
.mk-controls input { width:100%; box-sizing:border-box; }
.mk-sorts { display:flex; gap:6px; }
.sortpill { flex:1; background:var(--bg); border:1px solid var(--line-hi); color:var(--ink2);
  border-radius:10px; padding:7px 0; font-size:12.5px; font-weight:700; cursor:pointer; }
.sortpill.active { background:var(--accent); border-color:var(--accent); color:var(--accent-ink); }
.mk-row { cursor:pointer; }
.mk-row .mk-fdr { margin-right:8px; }
.mk-dis { opacity:.42; cursor:default; }
.mk-why { color:var(--fall); font-weight:700; }
.ghost.danger { border-color:rgba(224,99,122,.5); color:#f0aab8; }
.pcard.slot-empty { background:none; border:none; padding:0; cursor:pointer; font:inherit; color:inherit; }
.pcard.slot-empty .slot-box { margin:0 auto; }
.pcard.slot-empty:active { transform:scale(.94); }
/* market actions stay pinned while the long player list scrolls underneath */
#picker-card > .row { position:sticky; bottom:-34px; z-index:5; margin-bottom:-20px;
  padding:12px 0 20px; background:linear-gradient(180deg, rgba(24,37,57,0) 0%, var(--card) 30%); }
.mk-remove { display:block; width:100%; margin:2px 0 4px; padding:9px 14px; font-size:13px; }
.mk-footer { align-items:center; gap:8px; }
.pgbtn { padding:12px 0; width:52px; flex:0 0 52px; font-size:18px; line-height:1; font-weight:800; }
.pgbtn:disabled { opacity:.35; }
.mk-page { min-width:52px; text-align:center; font-size:12.5px; font-weight:700; color:var(--ink2);
  font-variant-numeric:tabular-nums; }
.mk-afford { flex:1.3; }
.mk-afford.active { background:rgba(47,184,148,.16); border-color:var(--rise); color:#8fe4c9; }

/* ---------- Pro locks & upsell ---------- */
.prolock { cursor:pointer; border:1px dashed var(--line-hi); text-align:center;
  transition:border-color .15s; }
.prolock:active { border-color:var(--gold); }
.prolock-line { font-size:13px; font-weight:700; color:var(--ink); padding-top:2px; }
.prolock-sub { font-size:11px; color:var(--gold); margin:3px 0 2px; font-weight:600; }
.plan-pro-lock, .rival-pro-lock { margin-top:10px; padding:11px 14px; border-radius:12px;
  background:linear-gradient(110deg,rgba(232,195,92,.09),rgba(76,195,224,.05)); }
.rival-pro-lock { margin-bottom:8px; }
.pro-feats { list-style:none; margin:8px 0 10px; display:flex; flex-direction:column; gap:7px; }
.pro-feats li { font-size:12.5px; line-height:1.45; color:var(--ink2); }
.pro-price { font-size:13px; font-weight:800; color:var(--gold); margin:2px 0 12px; }
.deal-strip { background:rgba(232,195,92,.12); border:1px solid rgba(232,195,92,.4);
  color:#eed9a1; border-radius:10px; padding:8px 12px; font-size:12.5px; margin-bottom:10px; }
.deal-strip s, .was { opacity:.65; font-weight:400; margin-left:3px; }

/* ---------- substitution (swap) mode ---------- */
.swap-strip { background:rgba(76,195,224,.1); border-color:rgba(76,195,224,.4); color:#a8dff0; }
.pcard.swap-sel .shirt { outline:3px solid var(--gold); outline-offset:3px; border-radius:10px;
  animation:swapPulse 1.1s ease-in-out infinite; }
.pcard.swap-ok .shirt { outline:2.5px solid var(--accent); outline-offset:3px; border-radius:10px; }
.pcard.swap-no { opacity:.35; }
@keyframes swapPulse { 50% { outline-offset:6px; } }
.mk-sub { flex:1.4; padding:9px 10px; font-size:13px; border-color:rgba(76,195,224,.5); color:#a8dff0; }
.mk-remove { flex:1; margin:0; width:auto; display:inline-block; }

/* ---------- Gaffer's Match Report ---------- */
.mr-card { padding:14px 16px; }
.mr-head { font-size:15.5px; font-weight:800; line-height:1.35; }
.mr-sub { font-size:11px; color:var(--ink3); margin:3px 0 10px; letter-spacing:.04em; }
.mr-body { font-size:13.5px; line-height:1.7; color:var(--ink2); white-space:pre-line; }

/* ---------- Beat Dave mode ---------- */
.rvbtn { background:none; border:none; font-size:15px; cursor:pointer; opacity:.35;
  padding:4px; transition:opacity .15s, transform .1s; }
.rvbtn:active { transform:scale(1.2); }
.rvbtn.active { opacity:1; }
tr.rivalrow td { background:rgba(224,99,122,.06); }
.rv-tag { display:inline-block; font-size:9px; font-weight:800; letter-spacing:.08em; color:#f0aab8;
  background:rgba(224,99,122,.14); border:1px solid rgba(224,99,122,.4); border-radius:5px;
  padding:1px 6px; margin-left:6px; vertical-align:1px; }
.rival-card { border-color:rgba(224,99,122,.45); padding:13px 16px; }
/* match-day rundown feed */
.tl-feed { max-height:320px; overflow-y:auto; }
.tl-line { font-size:12.5px; line-height:1.55; color:var(--ink2); padding:5px 0;
  border-bottom:1px solid rgba(37,54,79,.65); }
.tl-line:last-child { border-bottom:0; }
.tl-min { display:inline-block; min-width:38px; font-size:10px; font-weight:800;
  color:var(--ink3); font-variant-numeric:tabular-nums; }
.tl-up { color:var(--rise); font-weight:700; }
.tl-down { color:var(--fall); font-weight:700; }
.tl-cap { font-size:9.5px; font-weight:800; color:var(--accent-ink); background:var(--accent);
  border-radius:5px; padding:1px 5px; vertical-align:1px; }

/* Home page editor */
.home-edit-row { display:flex; align-items:center; justify-content:space-between; margin:0 2px 8px; }
.home-edit-row .ghost.sm, .home-edit-row .pill.sm { padding:7px 14px; font-size:12px; }
.home-sec { border:1.5px dashed var(--line-hi); border-radius:16px; padding:8px; margin-bottom:12px; }
.hsec-ctl { display:flex; align-items:center; gap:6px; padding:2px 4px 8px; }
.hsec-name { flex:1; font-size:11.5px; font-weight:800; letter-spacing:.08em; color:var(--ink2);
  text-transform:uppercase; }
.hsec-btn { width:34px; height:30px; border-radius:9px; border:1px solid var(--line-hi);
  background:var(--panel); color:var(--ink2); font-size:12px; cursor:pointer; }
.hsec-btn:active { border-color:var(--accent); color:var(--accent); }
.hsec-btn.hsec-rm { color:#f0aab8; border-color:rgba(224,99,122,.4); }
.hsec-body { pointer-events:none; opacity:.7; }
.hsec-addrow { display:flex; flex-wrap:wrap; gap:8px; padding:6px 0; }
.hsec-addrow .ghost.sm { padding:8px 12px; font-size:12px; }

tr.ghostrow td { background:rgba(150,120,255,.07); }
tr.ghostrow .psub { color:#9d8fc9; }
.ghost-card { border-color:rgba(150,120,255,.45); padding:13px 16px; }
.ghost-diary-line { font-size:12.5px; line-height:1.55; color:var(--ink2); padding:5px 0;
  border-bottom:1px solid rgba(150,120,255,.12); }
.ghost-diary-line:last-child { border-bottom:0; }
.ghost-gw { display:inline-block; font-size:10px; font-weight:800; letter-spacing:.06em;
  color:#b9a6ff; background:rgba(150,120,255,.14); border:1px solid rgba(150,120,255,.4);
  border-radius:5px; padding:1px 6px; margin-right:4px; }
.ghost-hit { color:#f0aab8; font-weight:700; }
#ghost-box .pitch.mini { margin-top:10px; }
.rv-head { font-size:12px; font-weight:800; letter-spacing:.16em; color:#f0aab8; }
.rv-gap { font-size:14.5px; margin:6px 0 8px; }
.rv-gap .rv-sub { font-size:11.5px; color:var(--ink3); }
.rv-line { font-size:13px; line-height:1.6; color:var(--ink2); padding:5px 0;
  border-top:1px solid rgba(37,54,79,.55); }

/* Advice -> My Squad "Make change" buttons */
.mkrow { padding:2px 0 8px 30px; }
.mkchange {
  background:none; border:1px solid var(--accent-deep); color:var(--accent);
  border-radius:999px; font-size:12px; font-weight:700; padding:5px 12px; cursor:pointer;
}
.mkchange:active { background:var(--accent-deep); color:var(--ink); }
