/* ==================================================================
   SportScope V2.0 · 足球五大联赛中心（Day4）
   只作用于 .fbc-* 命名空间，不影响其余 16 个视图。
   ================================================================== */
.fbc-root{display:flex;flex-direction:column;gap:16px;padding-bottom:26px}
.fbc-root *{box-sizing:border-box}

/* ---------- Hero ---------- */
.fbc-hero{
  position:relative;display:flex;gap:24px;align-items:stretch;justify-content:space-between;
  padding:22px 24px;border-radius:var(--v2-radius,14px);
  background:linear-gradient(120deg,#e2f2ef 0%,#e8effa 48%,#dde8f7 100%);
  border:1px solid var(--v2-line,#22314c);overflow:hidden;
  box-shadow:var(--v2-shadow,0 14px 34px rgba(0,0,0,.3));
}
.fbc-hero::after{
  content:'';position:absolute;right:-60px;top:-90px;width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle,rgba(14,116,144,.14),transparent 68%);pointer-events:none;
}
.fbc-hero-main{position:relative;z-index:1;min-width:0;flex:1}
.fbc-eyebrow{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:11px;font-weight:700;
  letter-spacing:.12em;color:var(--v2-muted,#8fa3c0);text-transform:uppercase}
.fbc-hero h1{margin:10px 0 6px;font-size:28px;line-height:1.25;font-weight:700;
  color:var(--v2-text,#e9f0fb);letter-spacing:.01em}
.fbc-hero h1 span{font-size:16px;font-weight:500;color:var(--v2-muted,#8fa3c0)}
.fbc-sub{margin:0;color:var(--v2-muted,#8fa3c0);font-size:12.5px;line-height:1.65}
/* 说明：.fbc-sub 在本文件后面还被用作战术板里的「换人」标签（inline-flex），
   于是 hero / 详情页的 <p class="fbc-sub"> 会被那条规则改成 inline-flex，
   文字不再换行、被右侧 KPI 卡截断。这里用更高优先级把段落形态拉回来。 */
.fbc-hero .fbc-sub,.fbc-detail-hd .fbc-sub{display:block;white-space:normal;overflow-wrap:anywhere;
  background:none;border:0;padding:0;border-radius:0;gap:0}
/* 时区口径提示：所有比赛时间已换算为北京时间，避免被当成 UTC 读 */
.fbc-tz{color:var(--v2-accent,#22d3a7);font-weight:600}
.fbc-leagues{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.fbc-league{
  display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:999px;
  border:1px solid var(--v2-line,#22314c);background:rgba(14,23,40,.72);
  color:var(--v2-muted,#8fa3c0);font-size:13px;font-weight:500;cursor:pointer;
  transition:all var(--v2-fast,160ms);
}
.fbc-league:hover{color:var(--v2-text,#e9f0fb);border-color:rgba(34,211,167,.5)}
.fbc-league.on{background:linear-gradient(135deg,rgba(34,211,167,.2),rgba(77,141,255,.16));
  color:#eafff8;border-color:rgba(34,211,167,.6);font-weight:700}
.fbc-league i{width:6px;height:6px;border-radius:50%}
.fbc-league-ok{background:#22d3a7}
.fbc-league-na{background:#64748b}
.fbc-kpis{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(96px,1fr));
  gap:9px;align-content:center;min-width:236px}
.fbc-kpi{display:flex;flex-direction:column;gap:3px;padding:11px 13px;border-radius:10px;
  background:rgba(9,16,30,.6);border:1px solid rgba(126,156,196,.16)}
.fbc-kpi span{font-size:10.5px;color:var(--v2-muted,#8fa3c0)}
.fbc-kpi b{font-size:22px;line-height:1.15;font-variant-numeric:tabular-nums;
  color:var(--v2-text,#e9f0fb);font-weight:700}
.fbc-kpi-warn b{font-size:16px;color:var(--v2-warn,#ffab4a)}

/* ---------- 血缘卡 / 工具条 / 面板 ---------- */
.fbc-lineage-card,.fbc-tools,.fbc-panel{
  background:var(--v2-card,#121e33);border:1px solid var(--v2-line,#22314c);
  border-radius:var(--v2-radius,14px);padding:15px 17px;
}
.fbc-panel-hd{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.fbc-panel-hd h3{margin:0;font-size:15px;font-weight:600;color:var(--ink,var(--v2-text,#e9f0fb))}
.fbc-lineage-note,.fbc-panel-note,.fbc-footer-note{
  margin:11px 0 0;color:var(--v2-dim,#60738f);font-size:11.5px;line-height:1.7}
.fbc-server-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  padding:9px 13px;border-radius:10px;font-size:11.5px;
  color:var(--v2-muted,#8fa3c0);background:rgba(14,23,40,.55);
  border:1px dashed var(--v2-line,#22314c)}
.fbc-server-meta b{font-weight:600;color:var(--v2-text,#e9f0fb);font-variant-numeric:tabular-nums}
.fbc-footer-note{padding:0 4px}

/* 血缘表折叠：标题一行，点开才铺 11 行字段说明，避免首屏被说明表占满 */
.fbc-lineage-fold{padding:0;overflow:hidden}
.fbc-lineage-fold > summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin:0;padding:13px 17px;cursor:pointer;list-style:none;transition:background .16s ease}
.fbc-lineage-fold > summary::-webkit-details-marker{display:none}
.fbc-lineage-fold > summary:hover{background:rgba(126,156,196,.06)}
.fbc-fold-arrow{display:inline-block;font-style:normal;font-size:12px;line-height:1;
  color:var(--v2-muted,#8fa3c0);transition:transform .18s ease}
.fbc-lineage-fold[open] .fbc-fold-arrow{transform:rotate(90deg)}
.fbc-fold-hint{margin-left:auto;font-size:11.5px;color:var(--v2-dim,#60738f)}
.fbc-lineage-fold .fbc-lineage-body{padding:12px 17px 15px;
  border-top:1px solid var(--v2-line,#22314c)}
.fbc-lineage-fold .fbc-server-meta{margin-bottom:12px}
.fbc-lineage-fold .fbc-lineage-note{margin-top:12px}
.fbc-tools{display:flex;flex-direction:column;gap:10px}
.fbc-tools-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.fbc-seg{display:inline-flex;gap:4px;padding:4px;border-radius:10px;
  background:var(--v2-surface,#0e1728);border:1px solid var(--v2-line,#22314c)}
.fbc-seg button{padding:6px 13px;border:0;border-radius:7px;background:transparent;
  color:var(--v2-muted,#8fa3c0);font-size:12.5px;cursor:pointer;white-space:nowrap}
.fbc-seg button:hover{color:var(--v2-text,#e9f0fb)}
.fbc-seg button.on{background:rgba(34,211,167,.16);color:#7ff0cf;font-weight:600}
.fbc-seg-sm button{padding:5px 10px;font-size:11.5px}
.fbc-search{flex:1 1 190px;min-width:0;max-width:320px;padding:8px 12px;border-radius:9px;
  border:1px solid var(--v2-line,#22314c);background:var(--v2-surface,#0e1728);
  color:var(--v2-text,#e9f0fb);font-size:12.5px;outline:none}
.fbc-search:focus{border-color:rgba(34,211,167,.6)}
.fbc-tools-note{margin-left:auto;display:flex;align-items:center;gap:8px}

/* ---------- 赛程卡 ---------- */
.fbc-group{margin-bottom:14px}
.fbc-group-hd{display:flex;align-items:center;gap:9px;margin:6px 2px 10px;font-size:13.5px;
  font-weight:700;color:var(--v2-text,#e9f0fb);letter-spacing:.01em}
.fbc-group-hd em{font-style:normal;font-size:11.5px;font-weight:500;color:var(--v2-muted,#8fa3c0)}
.fbc-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:11px}
.fbc-card{padding:12px 14px;border-radius:12px;border:1px solid var(--v2-line,#22314c);
  background:var(--v2-card,#121e33);cursor:pointer;transition:all var(--v2-fast,160ms)}
.fbc-card:hover{border-color:rgba(34,211,167,.55);background:var(--v2-card-hi,#17263e);
  transform:translateY(-2px);box-shadow:var(--v2-shadow,0 14px 34px rgba(0,0,0,.3))}
.fbc-card-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11.5px;
  color:var(--v2-muted,#8fa3c0)}
.fbc-round{font-weight:600;color:var(--v2-muted,#8fa3c0)}
/* 比赛时间是卡片里最需要一眼看清的字段：加粗、提亮、等宽数字对齐。
   时间口径统一北京时间（UTC+8），由 fbTime() 换算，不随浏览器时区变化。 */
.fbc-time{margin-left:auto;font-variant-numeric:tabular-nums;font-size:12.5px;
  font-weight:700;color:var(--v2-text,#e9f0fb);letter-spacing:.02em;white-space:nowrap}
.fbc-status{padding:1px 7px;border-radius:999px;border:1px solid var(--v2-line,#22314c);font-size:10.5px}
/* 修复轮 O：「全部」模式行内联赛标识 */
.fbc-lgcell{white-space:nowrap}
.fbc-lgtag{display:inline-block;padding:1px 7px;border-radius:999px;background:rgba(201,168,106,.13);border:1px solid rgba(201,168,106,.35);color:#c9a86a;font-size:10.5px;font-weight:600;white-space:nowrap}
.fbc-status.done{color:#94a3b8}
.fbc-status.live{color:#ff6b6b;border-color:rgba(239,68,68,.5)}
.fbc-status.upcoming{color:#7ff0cf;border-color:rgba(34,211,167,.4)}
.fbc-status.odds{color:#a78bfa;border-color:rgba(167,139,250,.42)}
.fbc-card-body{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;gap:10px;margin:12px 0 10px}
.fbc-team{min-width:0}
.fbc-team.right{text-align:right}
.fbc-team-name{display:block;font-size:13.5px;font-weight:600;color:var(--v2-text,#e9f0fb);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fbc-score{font-size:21px;font-weight:700;font-variant-numeric:tabular-nums;
  color:var(--v2-text,#e9f0fb);white-space:nowrap}
.fbc-score i{font-style:normal;color:var(--v2-dim,#60738f);margin:0 2px}
.fbc-score.vs{font-size:14px;color:var(--v2-dim,#60738f)}
.fbc-card-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding-top:9px;border-top:1px dashed var(--v2-line-soft,rgba(126,156,196,.14))}
.fbc-odds{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11.5px;
  color:var(--v2-muted,#8fa3c0);font-variant-numeric:tabular-nums}
.fbc-odds span{padding:2px 7px;border-radius:6px;background:rgba(14,23,40,.8)}
.fbc-odds em{font-style:normal;font-size:10px;color:var(--v2-dim,#60738f)}
.fbc-go{margin-left:auto;color:var(--v2-accent,#22d3a7);font-size:11.5px;white-space:nowrap}
.fbc-empty{padding:28px 20px;border-radius:12px;border:1px dashed var(--v2-line,#22314c);
  background:var(--v2-card,#121e33);text-align:center;color:var(--v2-muted,#8fa3c0)}
.fbc-empty b{display:block;color:var(--v2-text,#e9f0fb);font-size:14px;margin-bottom:6px}
.fbc-empty p{margin:0 auto 12px;max-width:560px;font-size:12px;line-height:1.7}

/* ---------- 积分榜 ---------- */
.fbc-table-wrap{overflow-x:auto}
.fbc-table{width:100%;border-collapse:collapse;font-size:12.5px;
  font-variant-numeric:tabular-nums;min-width:560px}
.fbc-table th{text-align:left;padding:8px 9px;font-size:11px;font-weight:600;
  color:var(--v2-dim,#60738f);border-bottom:1px solid var(--v2-line,#22314c);white-space:nowrap}
.fbc-table td{padding:8px 9px;border-bottom:1px solid var(--v2-line-soft,rgba(126,156,196,.12));
  color:var(--v2-muted,#8fa3c0);white-space:nowrap}
.fbc-table tr:last-child td{border-bottom:0}
.fbc-table tr.fbc-top3 td{background:rgba(34,211,167,.055)}
/* styles.css 有一条全局 table tbody tr:hover{background:#f8fbff}（浅色），
   只对 .bt-tb / .opptb 做了深色覆盖，漏了 .fbc-table。结果是悬停时整行变白，
   而文字仍是深色主题的浅色 —— 中文队名（如「巴塞罗那」）几乎完全看不见。
   top3 行的 td 底色是半透明淡青，压不住下面的白，同样穿帮。
   这里用不透明底色压住，并沿用项目既有的 hover 令牌。 */
.fbc-table tbody tr:hover td{background:var(--v2-card-hi,#17263e)}
html[data-theme="light"] .fbc-table tbody tr:hover td{background:#f2f8ff}
.fbc-pos{font-weight:700;color:var(--v2-text,#e9f0fb)}
.fbc-club span{display:block;font-weight:600;color:var(--v2-text,#e9f0fb)}
.fbc-club em{display:block;font-style:normal;font-size:10px;color:var(--v2-dim,#60738f)}
.fbc-pts{font-weight:700;color:var(--v2-text,#e9f0fb)}
.fbc-formcell{min-width:112px}
.fbc-form{display:inline-grid;place-items:center;width:17px;height:17px;margin-right:3px;
  border-radius:4px;font-size:10px;font-weight:700;color:#08131f}
.fbc-form.w{background:#22c55e}.fbc-form.d{background:#94a3b8}.fbc-form.l{background:#ff5c6c}
.fbc-form-empty{font-size:10.5px;color:var(--v2-dim,#60738f)}

/* ---------- 赛程列表（球探式行表） ---------- */
.fbc-listbar{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.fbc-dates{display:flex;gap:6px;flex-wrap:wrap}
.fbc-date{padding:5px 11px;border-radius:999px;border:1px solid var(--v2-line,#22314c);
  background:var(--v2-card,#121e33);color:var(--v2-muted,#8fa3c0);font:inherit;font-size:12px;cursor:pointer}
.fbc-date em{font-style:normal;opacity:.65;font-size:11px}
.fbc-date:hover{border-color:var(--v2-line-strong,#2d4265);color:var(--v2-text,#e9f0fb)}
.fbc-date.on{border-color:rgba(201,168,106,.45);background:rgba(201,168,106,.10);color:#c9a86a}
.fbc-fav-toggle{padding:5px 12px;border-radius:999px;border:1px solid var(--v2-line,#22314c);
  background:var(--v2-card,#121e33);color:var(--v2-muted,#8fa3c0);font:inherit;font-size:12px;cursor:pointer;white-space:nowrap}
.fbc-fav-toggle:hover{border-color:var(--v2-line-strong,#2d4265);color:var(--v2-text,#e9f0fb)}
.fbc-fav-toggle.on{border-color:rgba(201,168,106,.45);background:rgba(201,168,106,.10);color:#c9a86a}
#fb-batchbar:empty{display:none}
.fb-batchbar{display:flex;align-items:center;gap:8px;padding:8px 12px;margin-bottom:12px;
  border:1px solid rgba(201,168,106,.45);border-radius:10px;background:rgba(201,168,106,.07);font-size:12.5px}
.fb-batchbar b{color:#c9a86a}
.fb-batch-btn{padding:4px 12px;border-radius:999px;border:1px solid rgba(201,168,106,.45);
  background:rgba(201,168,106,.14);color:#e9f0fb;font:inherit;font-size:12px;cursor:pointer}
.fb-batch-btn.ghost{background:transparent;border-color:var(--v2-line,#22314c);color:var(--v2-muted,#8fa3c0)}
.fbc-list td{padding:7px 9px;vertical-align:middle}
.fbc-list .fbc-sel{width:30px;text-align:center}
.fbc-list .fb-sel{width:15px;height:15px;accent-color:#c9a86a;cursor:pointer;vertical-align:middle}
.fbc-list .fbc-time{color:var(--v2-muted,#8fa3c0);white-space:nowrap;margin-left:0}
.fbc-list .fbc-home{text-align:right}
.fbc-list .fbc-home .fbc-team-link,.fbc-list .fbc-away .fbc-team-link{font-weight:600;color:var(--v2-text,#e9f0fb)}
.fbc-list .fbc-scorecell{text-align:center}
.fbc-list .fbc-score{font-size:14.5px;font-weight:800;color:var(--v2-text,#e9f0fb)}
.fbc-list .fbc-score.vs{font-size:12px;font-weight:600;color:var(--v2-dim,#60738f)}
.fbc-odds-inline{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--v2-muted,#8fa3c0)}
.fbc-odds-na{color:var(--v2-dim,#60738f)}
.fbc-list .fbc-favcell{text-align:center}
.fbc-star-btn{cursor:pointer;font-size:16px;line-height:1;color:var(--v2-dim,#60738f);padding:2px 4px}
.fbc-star-btn:hover{color:#c9a86a}
.fbc-star-btn.on{color:#c9a86a}
.fbc-go-link{cursor:pointer;white-space:nowrap;color:#c9a86a}
.fbc-go-link:hover{text-decoration:underline;text-underline-offset:3px}

/* ---------- 射手榜 ---------- */
.fbc-scorers{display:flex;flex-direction:column;gap:7px}
.fbc-scorer{display:grid;grid-template-columns:26px 30px minmax(96px,1fr) minmax(60px,2fr) 52px;
  align-items:center;gap:9px;padding:8px 10px;border-radius:9px;
  background:rgba(14,23,40,.55);border:1px solid var(--v2-line-soft,rgba(126,156,196,.12))}
.fbc-rank{font-weight:700;color:var(--v2-dim,#60738f);font-variant-numeric:tabular-nums}
/* 射手头像：首字打底，真实头像加载成功才盖上去；加载失败 onerror 摘节点，
   回退首字，任何情况下都不会出现裂图。 */
.fbc-face{position:relative;display:grid;place-items:center;width:30px;height:30px;
  border-radius:50%;overflow:hidden;flex:0 0 auto;
  background:radial-gradient(80% 80% at 50% 18%,rgba(96,165,250,.26),rgba(96,165,250,0) 70%),
    linear-gradient(155deg,#1e2b47,#0b1220);
  border:1px solid rgba(126,156,196,.24);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09)}
.fbc-face b{font-size:11.5px;font-weight:800;line-height:1;color:rgba(203,220,245,.72);user-select:none}
.fbc-face img{position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center 22%;transform:scale(1.06)}
.fbc-scorer-name b{display:block;font-size:12.5px;color:var(--v2-text,#e9f0fb)}
.fbc-scorer-name em{font-style:normal;font-size:10.5px;color:var(--v2-dim,#60738f)}
.fbc-scorer-bar{height:6px;border-radius:999px;background:rgba(126,156,196,.14);overflow:hidden}
.fbc-scorer-bar i{display:block;height:100%;border-radius:999px;
  background:linear-gradient(90deg,#22d3a7,#4d8dff)}
.fbc-scorer-goals{text-align:right;font-weight:700;font-size:12.5px;
  color:var(--v2-text,#e9f0fb);font-variant-numeric:tabular-nums}

/* ---------- 快照详情 ---------- */
.fbc-detail-hd{padding:20px 22px;border-radius:14px;border:1px solid var(--v2-line,#22314c);
  background:linear-gradient(120deg,#e8effa,#dbe7f7)}
.fbc-detail-hd h1{margin:10px 0 6px;font-size:24px;color:var(--v2-text,#e9f0fb)}
/* 详情页副标题里的开赛时间同样要亮、要粗，北京时间口径 */
.fbc-detail-hd .fbc-sub{font-size:13px;font-weight:600;color:var(--v2-text,#e9f0fb)}
.fbc-detail-hd .fbc-sub .fbc-status{font-weight:600;margin-left:2px}
.fbc-detail-score{margin-top:14px;font-size:34px;font-weight:700;
  color:var(--v2-text,#e9f0fb);font-variant-numeric:tabular-nums}
.fbc-detail-score i{font-style:normal;color:var(--v2-dim,#60738f);margin:0 6px}
.fbc-detail-score.vs{font-size:20px;color:var(--v2-dim,#60738f)}
.fbc-detail-ht{margin-top:4px;font-size:13px;color:var(--v2-muted,#5b6b84);font-weight:600}
.fbc-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:14px;margin-top:14px}
.fbc-detail-odds{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.fbc-detail-odds div{padding:12px;border-radius:10px;text-align:center;
  background:rgba(14,23,40,.7);border:1px solid var(--v2-line,#22314c)}
.fbc-detail-odds span{display:block;font-size:11px;color:var(--v2-muted,#8fa3c0)}
.fbc-detail-odds b{display:block;margin-top:5px;font-size:20px;
  color:var(--v2-text,#e9f0fb);font-variant-numeric:tabular-nums}
.fbc-detail-na{padding:14px;border-radius:10px;background:rgba(148,163,184,.08);
  border:1px dashed var(--v2-line,#22314c);color:var(--v2-muted,#8fa3c0);font-size:12.5px}
/* 详情页文字按钮：必须覆盖全局 .tb-btn 的 38×38 图标按钮尺寸，
   否则长文案会被压成竖排（Day7 截图目视发现并修复） */
.fbc-detail-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:14px}
.fbc-detail-actions .tb-btn{width:auto;height:auto;min-height:38px;padding:8px 14px;
  font-size:12.5px;line-height:1.35;white-space:nowrap;border-radius:10px}

/* ---------- 深度端点：阵容 / 事件 / 技术统计 / 滚球提示 ---------- */
.fbc-deep{font-size:10.5px;font-weight:600;letter-spacing:.04em;padding:3px 8px;border-radius:999px;
  color:#9ff0da;background:rgba(34,211,167,.14);border:1px solid rgba(34,211,167,.32);white-space:nowrap}

/* ---------- 阵型站位图（坐标来自接口 grid：行 = 层次、列 = 左右） ---------- */
.fbc-pitch-wrap{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;margin-top:6px}
/* 每张图限宽 300px：比原先占满整行小一多半，且两张并排仍留白呼吸 */
.fbc-pitch-col{flex:1 1 220px;max-width:276px;min-width:0}
.fbc-pitch-card{padding:10px 10px 11px;border-radius:12px;background:rgba(14,23,40,.55);
  border:1px solid var(--v2-line-soft,rgba(126,156,196,.14))}
.fbc-pitch-hd{display:flex;align-items:center;justify-content:space-between;gap:8px}
.fbc-pitch-hd b{font-size:12.5px;color:var(--v2-text,#e9f0fb);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fbc-pitch-hd span{flex:none;font-size:10px;font-weight:800;letter-spacing:.04em;padding:2px 6px;
  border-radius:6px;color:#9ff0da;background:rgba(34,211,167,.13);font-variant-numeric:tabular-nums;
  font-family:inherit}
.fbc-pitch-coach{margin:3px 0 7px;font-size:10px;color:var(--v2-muted,#8fa3c0);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 宽高比与 SVG viewBox 一致（100:130），线条不被拉伸变形 */
.fbc-pitch-body{position:relative;aspect-ratio:100/130;border-radius:9px;overflow:hidden;
  background:
    repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 7.7%,rgba(0,0,0,.03) 7.7% 15.4%),
    linear-gradient(165deg,#0d4530,#082e1c)}
.fbc-pitch-lines{position:absolute;inset:0;width:100%;height:100%;display:block}
.fbc-pitch-lines rect,.fbc-pitch-lines circle,.fbc-pitch-lines line{
  fill:none;stroke:rgba(255,255,255,.2);stroke-width:1;vector-effect:non-scaling-stroke}

/* 球员：圆点号码 + 名字。名字压在草皮上必须带描边，否则深绿底上读不出来 */
.fbc-pitch-p{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;
  align-items:center;gap:3px;width:56px;pointer-events:none}
.fbc-pitch-p i{width:21px;height:21px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:9.5px;font-weight:800;font-style:normal;font-variant-numeric:tabular-nums;color:#fff;
  border:1px solid rgba(255,255,255,.72);box-shadow:0 1px 2px rgba(0,0,0,.45),inset 0 -1px 0 rgba(0,0,0,.18)}
.fbc-pitch-p b{font-size:10px;font-weight:600;line-height:1.1;max-width:56px;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;color:#f4f9ff;text-shadow:0 1px 2px rgba(0,0,0,.7)}
.fbc-pitch-card.home .fbc-pitch-p i{background:#2f6feb}
.fbc-pitch-card.away .fbc-pitch-p i{background:#d93a5c}
.fbc-pitch-p.is-gk i{background:#e0a020;color:#221800;border-color:rgba(255,255,255,.95)}

/* 替补：胶囊横排，比原来竖排 9 行省下大半屏 */
.fbc-subs{margin-top:8px;display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.fbc-subs-lb{font-size:9.5px;font-weight:700;letter-spacing:.06em;
  color:var(--v2-dim,#60738f);margin-right:1px}
.fbc-sub{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:999px;
  font-size:10.5px;color:var(--v2-text,#e9f0fb);background:rgba(126,156,196,.10);
  border:1px solid rgba(126,156,196,.16);white-space:nowrap}
.fbc-sub i{font-style:normal;font-size:9px;font-weight:800;color:var(--v2-dim,#60738f);
  font-variant-numeric:tabular-nums}
.fbc-sub em{font-style:normal;font-size:9px;color:var(--v2-dim,#7c8ba3)}

.fbc-events{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:520px;
  overflow-y:auto}
.fbc-ev{display:grid;grid-template-columns:44px 10px minmax(0,1fr);gap:9px;align-items:center;
  padding:7px 2px;border-bottom:1px solid var(--v2-line-soft,rgba(126,156,196,.12));font-size:12.5px}
.fbc-ev:last-child{border-bottom:0}
.fbc-ev-min{font-size:11px;font-weight:700;color:var(--v2-dim,#60738f);font-variant-numeric:tabular-nums}
.fbc-ev-dot{width:7px;height:7px;border-radius:50%;background:#64748b}
.fbc-ev-main{color:var(--v2-text,#e9f0fb);line-height:1.5;min-width:0}
.fbc-ev-main b{font-weight:700}
.fbc-ev-main em{font-style:normal;color:var(--v2-muted,#8fa3c0);font-size:11.5px}
.fbc-ev-main u{text-decoration:none;color:var(--v2-dim,#60738f);font-size:11px}
.ev-goal .fbc-ev-dot{background:#22d3a7;box-shadow:0 0 0 3px rgba(34,211,167,.16)}
.ev-goal .fbc-ev-main b{color:#9ff0da}
.ev-goal-missed .fbc-ev-dot{background:#94a3b8}
.ev-yellow .fbc-ev-dot{background:#f5c451}
.ev-red .fbc-ev-dot{background:#f2555a;box-shadow:0 0 0 3px rgba(242,85,90,.16)}
.ev-sub .fbc-ev-dot{background:#4d8dff}
.ev-var .fbc-ev-dot{background:#a78bfa}

.fbc-stats-hd{display:grid;grid-template-columns:52px minmax(0,1fr) 52px;gap:10px;margin-bottom:6px;
  font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--v2-dim,#60738f)}
.fbc-stats-hd span:first-child{text-align:right}
.fbc-stats-hd i{font-style:normal;text-align:center}
.fbc-stat-row{display:grid;grid-template-columns:52px minmax(0,1fr) 52px;gap:10px;align-items:center;
  padding:6px 0;border-bottom:1px solid var(--v2-line-soft,rgba(126,156,196,.1))}
.fbc-stat-row:last-of-type{border-bottom:0}
.fbc-stat-h,.fbc-stat-a{font-size:12.5px;font-weight:600;color:var(--v2-text,#e9f0fb);
  font-variant-numeric:tabular-nums}
.fbc-stat-h{text-align:right}
.fbc-stat-a{text-align:left}
.fbc-stat-mid em{display:block;text-align:center;font-style:normal;font-size:10.5px;
  color:var(--v2-muted,#8fa3c0);margin-bottom:3px}
.fbc-stat-bar{height:5px;border-radius:999px;background:rgba(126,156,196,.16);overflow:hidden}
.fbc-stat-bar i{display:block;height:100%;border-radius:999px;
  background:linear-gradient(90deg,#22d3a7,#4d8dff)}

/* 浅色主题兜底 */
html[data-theme="light"] .fbc-hero{background:linear-gradient(120deg,#e8fbf5,#eef4ff)}
html[data-theme="light"] .fbc-hero h1,
html[data-theme="light"] .fbc-team-name,
html[data-theme="light"] .fbc-kpi b,
html[data-theme="light"] .fbc-score,
html[data-theme="light"] .fbc-club span,
html[data-theme="light"] .fbc-pts{color:#16203a}
html[data-theme="light"] .fbc-card,
html[data-theme="light"] .fbc-panel,
html[data-theme="light"] .fbc-tools,
html[data-theme="light"] .fbc-lineage-card{background:#fff;border-color:#dbe3f0}
html[data-theme="light"] .fbc-kpi{background:#f4f8fc}
html[data-theme="light"] .fbc-ev-main,
html[data-theme="light"] .fbc-stat-h,
html[data-theme="light"] .fbc-stat-a{color:#16203a}
html[data-theme="light"] .fbc-deep{color:#0f766e;background:#e3f7f1;border-color:#bfe8dd}
html[data-theme="light"] .fbc-pitch-card{background:#f8fbfd;border-color:#e2e9f4}
html[data-theme="light"] .fbc-pitch-hd b{color:#16203a}
html[data-theme="light"] .fbc-pitch-hd span{color:#0f766e;background:#e3f7f1}
html[data-theme="light"] .fbc-pitch-coach{color:#5b6b86}
/* 亮色下草皮用浅绿，线改深绿、名字改深色，避免白字糊在浅底上 */
html[data-theme="light"] .fbc-pitch-body{
  background:
    repeating-linear-gradient(0deg,rgba(255,255,255,.32) 0 7.7%,rgba(16,185,129,.1) 7.7% 15.4%),
    linear-gradient(165deg,#bdf3d3,#8ee6b4)}
html[data-theme="light"] .fbc-pitch-lines rect,
html[data-theme="light"] .fbc-pitch-lines circle,
html[data-theme="light"] .fbc-pitch-lines line{stroke:rgba(6,78,59,.34)}
/* 亮色下草皮本身是浅色，白描边会在字周围形成光晕、反而更糊，直接去掉 */
html[data-theme="light"] .fbc-pitch-p b{color:#04281c;text-shadow:none}
html[data-theme="light"] .fbc-subs-lb,
html[data-theme="light"] .fbc-sub i,
html[data-theme="light"] .fbc-sub em{color:#7b8aa3}
html[data-theme="light"] .fbc-sub{color:#16203a;background:#eef4fa;border-color:#dde6f1}
/* 页头/详情说明和替补胶囊共用 .fbc-sub，浅色胶囊底不能落到照片标题下 */
html[data-theme="light"] .fbc-hero .fbc-sub,
html[data-theme="light"] .fbc-detail-hd .fbc-sub{
  background:none;border:0;border-radius:0;padding:0;color:inherit;
}
html[data-theme="light"] .fbc-ev-goal b,
html[data-theme="light"] .ev-goal .fbc-ev-main b{color:#0f766e}
html[data-theme="light"] .fbc-stat-mid em,
html[data-theme="light"] .fbc-ev-main em{color:#5b6b86}
html[data-theme="light"] .fbc-stats-hd,
html[data-theme="light"] .fbc-ev-main u,
html[data-theme="light"] .fbc-ev-min{color:#7b8aa3}

/* ---------- 响应式 ---------- */
@media (max-width:1100px){
  .fbc-hero{flex-direction:column;gap:16px}
  .fbc-kpis{grid-template-columns:repeat(4,minmax(0,1fr));min-width:0}
}
@media (max-width:640px){
  .fbc-hero{padding:16px 14px}
  .fbc-hero h1{margin:8px 0 5px;font-size:21px}
  .fbc-hero::after{display:none}
  .fbc-leagues{margin-top:12px}
  /* KPI 在手机上占一行：2×2 会白吃掉一百多像素，把赛程卡整个推到首屏之外 */
  .fbc-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;min-width:0}
  .fbc-kpi{padding:7px 8px;gap:2px;border-radius:8px}
  .fbc-kpi span{font-size:9.5px;line-height:1.3}
  .fbc-kpi b{font-size:16px}
  .fbc-kpi-warn b{font-size:12.5px;line-height:1.4}
  .fbc-leagues{flex-wrap:nowrap;overflow-x:auto;gap:6px;margin-top:12px;
    padding-bottom:2px;scrollbar-width:none;-ms-overflow-style:none}
  .fbc-leagues::-webkit-scrollbar{display:none}
  .fbc-league{flex:0 0 auto;padding:6px 11px;font-size:12px}
  .fbc-tools{gap:7px;padding:9px 12px}
  .fbc-seg{width:100%;overflow-x:auto}
  .fbc-seg button{flex:1 0 auto;justify-content:center;padding:6px 9px;font-size:12px}
  .fbc-search{flex:1 1 100%;max-width:none;order:5;padding:7px 11px;font-size:12px}
  /* 手机上先把工具条收干：赔率徽章与 hero 的「赔率快照」数字重复，去掉 */
  .fbc-tools-note{display:none}
  .fbc-cards,.fbc-detail-grid{grid-template-columns:1fr}
  .fbc-card{padding:11px 12px}
  .fbc-lineage-card,.fbc-panel{padding:12px}
  .fbc-lineage-fold{padding:0}
  .fbc-lineage-fold > summary{flex-direction:row;align-items:center;gap:8px;padding:12px}
  .fbc-fold-hint{flex:1 1 100%;margin-left:0;font-size:11px}
  .fbc-lineage-fold .fbc-lineage-body{padding:10px 12px 13px}
  .fbc-panel-hd{flex-direction:column;align-items:flex-start;gap:6px}
  .fbc-scorer{grid-template-columns:20px 26px minmax(74px,1fr) minmax(38px,1.2fr) 44px;gap:5px;padding:7px 8px}
  .fbc-face{width:26px;height:26px}
  .fbc-face b{font-size:10.5px}
  .fbc-detail-hd{padding:16px}
  .fbc-detail-hd h1{font-size:20px}
  .fbc-go{margin-left:0;width:100%;text-align:right}
}



/* ---------- v88：比分下进球队员、双边事件轴、关键统计 ---------- */
.fbc-gs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 16px;margin-top:10px;align-items:start}
.fbc-gs-col{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;min-width:0}
.fbc-gs-col li{display:flex;gap:6px;align-items:baseline;font-size:12px;line-height:1.4;min-width:0;color:var(--v2-text,#1e293b)}
.fbc-gs-col.home li{justify-content:flex-end;text-align:right}
.fbc-gs-col.away li{justify-content:flex-start;text-align:left}
.fbc-gs-col.home li{flex-direction:row}
.fbc-gs-col.away li{flex-direction:row}
.fbc-gs-name{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.fbc-gs-min{flex:none;font-variant-numeric:tabular-nums;font-weight:700;color:#0e7490;font-size:11px;white-space:nowrap}
.fbc-gs-min i{font-style:normal;font-weight:600;margin-left:3px;color:#4b5d6e}

.fbc-tl-filters{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.fbc-tl-f{display:inline-flex;align-items:center;gap:4px;margin:0;padding:4px 10px;border-radius:999px;
  border:1px solid #d5e1ea;background:#f5fafb;font-size:12px;color:#334155;cursor:pointer;user-select:none}
.fbc-tl-f:has(input:checked){background:#0e7490;border-color:#0e7490;color:#fff}
.fbc-tl-f input{position:absolute;opacity:0;pointer-events:none}
.fbc-tl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;max-height:none;overflow:visible}
.fbc-tl-row{display:grid;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);gap:8px;align-items:start;
  padding:7px 0;border-bottom:1px solid var(--v2-line-soft,rgba(126,156,196,.12));font-size:12.5px;line-height:1.4}
.fbc-tl-row:last-child{border-bottom:0}
.fbc-tl-min{text-align:center;font-size:11px;font-weight:700;color:#64748b;font-variant-numeric:tabular-nums;
  padding-top:1px;position:relative}
.fbc-tl-min::before{content:"";display:block;width:7px;height:7px;border-radius:50%;background:#94a3b8;margin:0 auto 3px}
.fbc-tl-home,.fbc-tl-away{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.fbc-tl-home{text-align:right}
.fbc-tl-away{text-align:left}
.fbc-tl-home b,.fbc-tl-away b{font-weight:700}
.fbc-tl-home em,.fbc-tl-away em{font-style:normal;color:#5b6b86;font-size:11px}
.ev-goal .fbc-tl-min::before{background:#0e7490;box-shadow:0 0 0 3px rgba(14,116,144,.16)}
.ev-goal .fbc-tl-home b,.ev-goal .fbc-tl-away b{color:#0e7490}
.ev-goal-missed .fbc-tl-min::before{background:#94a3b8}
.ev-yellow .fbc-tl-min::before{background:#d97706}
.ev-red .fbc-tl-min::before{background:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.16)}
.ev-sub .fbc-tl-min::before{background:#0284c7}
.ev-var .fbc-tl-min::before{background:#7c3aed}
#mi-sec-timeline:has(input[value="goal"]:checked) .fbc-tl-row:not([data-group="goal"]){display:none}
#mi-sec-timeline:has(input[value="card"]:checked) .fbc-tl-row:not([data-group="card"]){display:none}
#mi-sec-timeline:has(input[value="sub"]:checked) .fbc-tl-row:not([data-group="sub"]){display:none}

.fbc-keystats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 12px}
.fbc-keystat{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:4px;align-items:center;
  padding:8px 8px;border-radius:10px;background:#f0f9fa;border:1px solid #d5e8ec;min-width:0}
.fbc-keystat em{font-style:normal;font-size:10px;color:#4b5d6e;text-align:center;line-height:1.2;max-width:6.5em}
.fbc-keystat-h,.fbc-keystat-a{font-size:13px;font-weight:700;color:#0f172a;font-variant-numeric:tabular-nums;min-width:0;
  overflow-wrap:anywhere}
.fbc-keystat-h{text-align:right}
.fbc-keystat-a{text-align:left}
.fbc-stat-row.is-key .fbc-stat-mid em{color:#0e7490;font-weight:700}
.fbc-stat-bar i{background:#0e7490}

html[data-theme="light"] .fbc-gs-col li,
html[data-theme="light"] .fbc-tl-home,
html[data-theme="light"] .fbc-tl-away{color:#1e293b}
html[data-theme="light"] .fbc-gs-min,
html[data-theme="light"] .ev-goal .fbc-tl-home b,
html[data-theme="light"] .ev-goal .fbc-tl-away b{color:#0e7490}

@media (max-width:640px){
  .fbc-keystats{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .fbc-keystat{padding:7px 6px}
  .fbc-gs{gap:6px 10px}
  .fbc-gs-col li{font-size:11.5px}
  .fbc-tl-row{grid-template-columns:minmax(0,1fr) 36px minmax(0,1fr);gap:6px;font-size:12px}
  .fbc-tl-filters{gap:4px}
  .fbc-tl-f{padding:4px 8px;font-size:11.5px}
}

/* ---------- 统一比赛页：让球 / 大小球 / 伤停 / AI 入口 ---------- */
.fbc-odds-stack{display:flex;flex-direction:column;gap:14px}
.fbc-odds-mkt-lb{font-size:12px;font-weight:700;color:var(--v2-muted,#5b6b84);margin:0 0 8px;letter-spacing:.04em}
.fbc-detail-odds.fbc-odds-2{grid-template-columns:1.1fr 1fr 1fr}
.fbc-odds-book{margin:8px 0 0;font-size:11.5px;color:var(--v2-muted,#5b6b84)}
.fbc-inj-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px;align-items:start}
@media (max-width:640px){
  .fbc-inj-grid{grid-template-columns:1fr;gap:18px}
}
.fbc-inj-col h4{margin:0 0 12px;font-size:14px;display:flex;align-items:baseline;gap:8px}
.fbc-inj-col h4 span{font-size:11px;font-weight:600;color:var(--v2-muted,#5b6b84)}
.fbc-inj-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.fbc-inj-col li{
  display:flex;flex-direction:column;align-items:flex-start;gap:6px;
  padding:12px 14px;border-radius:12px;
  border:1px solid var(--v2-line,#22314c);background:rgba(14,23,40,.45)
}
.fbc-inj-col li .fbc-inj-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;width:100%;min-width:0}
.fbc-inj-col li b{font-size:14px;font-weight:700;line-height:1.35;min-width:0;overflow-wrap:anywhere}
.fbc-inj-col li .fbc-inj-type{
  flex:0 0 auto;font-style:normal;font-size:11px;font-weight:600;letter-spacing:.02em;
  padding:2px 8px;border-radius:999px;background:rgba(14,116,144,.14);color:#0e7490;white-space:nowrap
}
.fbc-inj-col li .fbc-inj-type.is-q{background:rgba(180,130,20,.14);color:#8a6914}
.fbc-inj-col li .fbc-inj-reason{
  display:inline-block;font-size:12px;line-height:1.35;
  padding:2px 8px;border-radius:8px;background:rgba(91,107,132,.12);color:var(--v2-muted,#8fa3c0)
}
.fbc-inj-col li .fbc-inj-date{font-style:normal;font-size:11.5px;color:var(--v2-muted,#8fa3c0)}
.fbc-detail-hd .fbc-detail-actions{margin-top:12px}
.fbc-follow-hint{font-size:12px;color:var(--v2-muted,#5b6b84)}
.fbc-detail-actions .tb-btn.ghost,
.fbc-ai-cta .tb-btn.ghost{background:transparent;border:1px solid var(--v2-line,#c9d6e0);color:inherit}
.fbc-picker{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.fbc-picker-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border-radius:12px;border:1px solid var(--v2-line,#d7e4ec);background:var(--card,#fff);cursor:pointer}
.fbc-picker-row:hover{border-color:#0e7490}
.fbc-picker-row b{font-size:14px}
.fbc-picker-row span{font-size:12px;color:var(--v2-muted,#5b6b84)}

.fbc-detail-followbar{margin:12px 0 4px;padding:10px 12px;border-radius:12px;border:1px solid var(--v2-line,#d7e4ec);background:var(--card,#fff)}
.fbc-detail-followbar .fbc-star-btn{font-size:18px;cursor:pointer;margin-right:8px}

/* ===== v84 · 赛前赔率按市场横排：胜平负三格一行，让球/大小两格一行 ===== */
.fbc-odds-grid{display:flex;flex-direction:column;gap:12px;max-width:640px}
.fbc-og-row{display:grid;grid-template-columns:52px minmax(0,1fr);gap:8px 12px;align-items:center;min-width:0}
.fbc-og-hd{font-size:11.5px;font-weight:700;letter-spacing:.06em;color:var(--v2-muted,#8fa3c0);padding:0 2px;margin:0;line-height:1.3}
.fbc-og-cells{display:grid;gap:8px;min-width:0}
.fbc-og-1x2 .fbc-og-cells{grid-template-columns:repeat(3,minmax(0,1fr))}
.fbc-og-ah .fbc-og-cells,
.fbc-og-ou .fbc-og-cells{grid-template-columns:repeat(2,minmax(0,1fr))}
.fbc-og-tile{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;
  min-height:64px;padding:10px 8px;border-radius:10px;min-width:0;text-align:center;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.fbc-og-lb{display:flex;align-items:center;justify-content:center;gap:5px;font-size:11.5px;line-height:1.2;color:var(--v2-muted,#8fa3c0);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.fbc-og-v{font-size:17px;line-height:1.15;font-weight:700;font-variant-numeric:tabular-nums;text-align:center}
.fbc-og-tag{font-style:normal;font-size:10px;font-weight:700;line-height:1;padding:2px 4px;border-radius:4px;
  background:rgba(14,116,144,.14);color:#0e7490}
.fbc-og-na{font-style:normal;font-size:10.5px;font-weight:400;opacity:.7;margin-left:2px;vertical-align:middle}
.fbc-og-tile.is-na .fbc-og-v{color:#94a3b8}
.fbc-og-src{margin:12px 0 6px;font-size:11.5px;line-height:1.5;color:var(--v2-muted,#8fa3c0)}
.fbc-odds-inline-sub{display:block;font-size:11px;opacity:.75;margin-top:2px}
.fbc-odds-empty{margin:0;padding:14px 16px;border:1px dashed #d5dee6;border-radius:10px;background:#f8fafb;
  color:#64748b;font-size:13px;line-height:1.55;text-align:center}
@media (max-width:480px){
  .fbc-odds-grid{gap:10px}
  .fbc-og-row{grid-template-columns:1fr;gap:6px}
  .fbc-og-hd{margin:0}
  .fbc-og-tile{min-height:58px;padding:8px 6px;border-radius:9px}
  .fbc-og-v{font-size:16px}
  .fbc-og-lb{font-size:11px;gap:4px}
  .fbc-og-src{margin:10px 0 6px}
  .fbc-odds-empty{padding:12px 12px;font-size:12.5px}
}
.fbc-og-tile>*{flex-shrink:0}
.fbc-og-tile.is-na{gap:1px}
