/* SportScope v80 · 发光战术板（深色，属于已批准的两队对比深色面板例外的延伸；其余页面保持浅色） */
.tb{
  position:relative; background:#05080c; color:#e8eef3; border-radius:16px; overflow:hidden;
  padding:18px 18px 16px; margin:16px 0; border:1px solid rgba(0,229,255,.18);
  box-shadow:0 0 0 1px rgba(0,229,255,.04) inset, 0 18px 40px -24px rgba(0,229,255,.35);
  font-family:"Noto Sans SC","PingFang SC","Hiragino Sans GB",system-ui,sans-serif;
}
html[data-theme] .tb, .tb{ background:#05080c; }
html[data-theme] .tb .tb-title{ color:#f1f7fb; }
html[data-theme] .tb-embed{ background:#070a0e; }
.tb-embed{ margin:18px 0 6px; background:#070a0e; }
.tb-hd{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.tb-kicker{ margin:0 0 4px; letter-spacing:.2em; font-size:10px; font-weight:700; color:#5fe3f5; opacity:.8; }
.tb-title{ margin:0; font-size:17px; font-weight:750; color:#f1f7fb; letter-spacing:.02em; }
.tb-replay{
  flex:none; cursor:pointer; border-radius:999px; padding:6px 14px; font-size:12px; font-weight:650;
  color:#bff6ff; background:rgba(0,229,255,.08); border:1px solid rgba(0,229,255,.45);
  box-shadow:0 0 12px rgba(0,229,255,.25);
}
.tb-replay:hover{ background:rgba(0,229,255,.16); }
.tb-replay:focus-visible{ outline:2px solid #00E5FF; outline-offset:2px; }
.tb-chips{ margin:10px 0 0; display:flex; flex-wrap:wrap; gap:6px; }
.tb-chip{ padding:2px 9px; border-radius:999px; border:1px solid rgba(255,255,255,.12); font-size:10.5px; color:#9aa6b2; }
.tb-chip-warn{ color:#ffd27a; border-color:rgba(255,210,122,.45); }
.tb-teams{ display:flex; flex-wrap:wrap; gap:8px 18px; margin:12px 0 4px; }
.tb-team{ display:flex; align-items:center; gap:7px; font-size:13px; min-width:0; flex-wrap:wrap; }
.tb-team i{ width:10px; height:10px; border-radius:50%; background:var(--c); box-shadow:0 0 10px var(--c); flex:none; }
.tb-team b{ color:#f1f7fb; font-weight:700; }
.tb-team span{ color:var(--c); font-weight:700; font-variant-numeric:tabular-nums; }
.tb-team em{ font-style:normal; font-size:10.5px; color:#ffd27a; border:1px solid rgba(255,210,122,.4); border-radius:999px; padding:1px 7px; }
.tb-note{ margin:10px 0 0; font-size:11.5px; line-height:1.65; color:#8b96a3; }
.tb-note-warn{ color:#f3d79a; background:rgba(255,210,122,.06); border:1px solid rgba(255,210,122,.22); border-radius:10px; padding:8px 10px; }
.tb-stage{ margin:12px auto 0; max-width:860px; border-radius:14px; overflow:hidden;
  border:1px solid rgba(0,229,255,.16); background:#05080c; }
.tb-svg{ display:block; width:100%; height:auto; }
.tb-v{ display:none; }
.tb-h{ --cx:525px; --cy:340px; }
.tb-v{ --cx:340px; --cy:525px; }
.tb-lines *{ fill:none; stroke:#2fe6ff; stroke-width:3; stroke-opacity:.85; stroke-dasharray:1; stroke-dashoffset:0; }
.tb-lines .tb-spot{ fill:#2fe6ff; stroke:none; }
.tb-dot{ transform:translate(var(--x),var(--y)); }
.tb-halo{ opacity:.18; }
.tb-core{ fill:#071017; stroke-width:4; }
.tb-num{ fill:#fff; font-size:22px; font-weight:800; text-anchor:middle; font-family:system-ui,sans-serif; }
.tb-name{ fill:#dfe9f1; font-size:22px; font-weight:600; text-anchor:middle;
  paint-order:stroke; stroke:#05080c; stroke-width:6px; stroke-linejoin:round; }
.tb-h .tb-name{ font-size:19px; }
.tb-arrow{ fill:none; stroke-width:5; stroke-linecap:round; stroke-dasharray:1; stroke-dashoffset:0; }
.tb-src{ opacity:.9; }
.tb-hit{ opacity:.75; }
.tb-glabel{ font-size:24px; font-weight:800; paint-order:stroke; stroke:#05080c; stroke-width:6px; stroke-linejoin:round; }
.tb-h .tb-glabel{ font-size:21px; }
.tb-goals{ list-style:none; margin:12px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:6px 16px; font-size:12px; color:#c8d3dd; }
.tb-goals li{ display:flex; align-items:center; gap:6px; }
.tb-goals i{ width:8px; height:8px; border-radius:50%; background:var(--c); box-shadow:0 0 8px var(--c); }
.tb-goals b{ color:var(--c); font-variant-numeric:tabular-nums; }

/* 动画（进入视口或点「重播」时加 .tb-play） */
@keyframes tb-draw{ from{ stroke-dashoffset:1; } to{ stroke-dashoffset:0; } }
@keyframes tb-fly{
  0%{ transform:translate(var(--cx),var(--cy)) scale(.2); opacity:0; }
  60%{ opacity:1; }
  100%{ transform:translate(var(--x),var(--y)) scale(1); opacity:1; }
}
@keyframes tb-pulse{ 0%,100%{ opacity:.12; } 50%{ opacity:.42; } }
@keyframes tb-fade{ from{ opacity:0; } to{ opacity:1; } }
@keyframes tb-flash{ 0%{ opacity:0; r:4; } 40%{ opacity:1; r:30; } 100%{ opacity:.75; r:16; } }
.tb-play .tb-lines *{ animation:tb-draw 1.5s cubic-bezier(.5,0,.2,1) calc(var(--i,0) * 70ms) both; }
.tb-play .tb-lines .tb-spot{ animation:tb-fade .6s 1.2s both; }
.tb-play .tb-dot{ animation:tb-fly .8s cubic-bezier(.2,.8,.2,1.1) var(--d) both; }
.tb-play .tb-halo{ animation:tb-pulse 3.2s ease-in-out calc(var(--d) + .8s) infinite; }
.tb-play .tb-goal{ animation:tb-fade .2s var(--d) both; }
.tb-play .tb-arrow{ animation:tb-draw .85s ease-out var(--d) both; }
.tb-play .tb-hit{ animation:tb-flash .7s ease-out calc(var(--d) + .8s) both; }
.tb-play .tb-glabel{ animation:tb-fade .5s calc(var(--d) + .85s) both; }
.tb-static *{ animation:none !important; }

@media (max-width:640px){
  .tb{ padding:16px 14px 14px; border-radius:14px; }
  .tb-title{ font-size:16px; }
  .tb-h{ display:none; }
  .tb-v{ display:block; }
  .tb-stage{ max-width:360px; }
  .tb-goals{ flex-direction:column; gap:6px; }
}
@media (prefers-reduced-motion: reduce){
  .tb *{ animation:none !important; }
}
/* 战术板下方的名单与替补：默认收起，保持页面清爽（浅色主题区域） */
.tb-more{ margin:4px 0 16px; }
.tb-more > summary{ cursor:pointer; list-style:none; display:inline-flex; align-items:center; gap:6px;
  font-size:13px; font-weight:650; color:#0e7490; padding:8px 14px; border-radius:999px;
  border:1px solid rgba(14,116,144,.3); background:#fff; }
.tb-more > summary::-webkit-details-marker{ display:none; }
.tb-more > summary::after{ content:"▾"; font-size:11px; }
.tb-more[open] > summary::after{ content:"▴"; }
.tb-more[open] > summary{ margin-bottom:10px; }
