/* ==================================================================
   SportScope V2.0 · 比赛详情重排 + AI 分析报告（Day5）
   只作用于 .dv2-* / .ai-* 命名空间，不影响其余视图。
   ================================================================== */
.dv2-root,.ai-root{display:flex;flex-direction:column;gap:14px;padding-bottom:26px}
.dv2-root *,.ai-root *{box-sizing:border-box}

/* ---------- 详情头部 ---------- */
.dv2-hd{padding:20px 22px;border-radius:var(--v2-radius,14px);
  border:1px solid var(--v2-line,#22314c);
  background:linear-gradient(120deg,#102138 0%,#0d1729 60%,#0b1322 100%);
  box-shadow:var(--v2-shadow,0 14px 34px rgba(0,0,0,.3))}
.dv2-hd-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.dv2-eyebrow{font-size:10.5px;font-weight:700;letter-spacing:.13em;
  color:var(--v2-dim,#60738f);text-transform:uppercase;margin-right:4px}
.dv2-hd h1{margin:12px 0 5px;font-size:25px;font-weight:700;
  color:var(--v2-text,#e9f0fb);line-height:1.3}
.dv2-hd h1 span{font-size:15px;color:var(--v2-dim,#60738f);font-weight:500;margin:0 4px}
.dv2-sub{margin:0;color:var(--v2-muted,#8fa3c0);font-size:12px;line-height:1.65}
.dv2-hd-body{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;gap:16px;margin-top:16px}
.dv2-side{min-width:0}
.dv2-side.right{text-align:right}
.dv2-side span{display:block;font-size:10.5px;color:var(--v2-dim,#60738f)}
.dv2-side b{display:block;margin-top:3px;font-size:16px;color:var(--v2-text,#e9f0fb);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dv2-score{font-size:32px;font-weight:700;color:var(--v2-text,#e9f0fb);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.dv2-score i{font-style:normal;color:var(--v2-dim,#60738f);margin:0 7px}
.dv2-score.vs{font-size:20px;color:var(--v2-dim,#60738f)}
.dv2-warn{padding:12px 15px;border-radius:11px;font-size:12.5px;line-height:1.7;
  color:#ffd9a8;background:rgba(251,146,60,.12);
  border:1px solid rgba(251,146,60,.38);border-left:3px solid #fb923c}
.dv2-warn u{text-decoration:underline;text-decoration-color:#fb923c}
.dv2-warn-inline{margin:0 0 13px;font-size:12px}
.dv2-note{padding:11px 14px;border-radius:10px;font-size:12px;line-height:1.7;
  color:var(--v2-muted,#8fa3c0);background:var(--v2-card,#121e33);
  border:1px solid var(--v2-line,#22314c)}
.dv2-note-ok{border-left:3px solid #22d3a7}

/* ---------- 分区工具条 / 面板 ---------- */
.dv2-tabs{display:flex;gap:5px;padding:5px;border-radius:11px;overflow-x:auto;
  background:var(--v2-surface,#0e1728);border:1px solid var(--v2-line,#22314c)}
.dv2-tabs button{flex:1 0 auto;padding:8px 14px;border:0;border-radius:8px;
  background:transparent;color:var(--v2-muted,#8fa3c0);font-size:12.5px;
  white-space:nowrap;cursor:pointer}
.dv2-tabs button:hover{color:var(--v2-text,#e9f0fb)}
.dv2-tabs button.on{background:rgba(34,211,167,.16);color:#7ff0cf;font-weight:600}
.dv2-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:13px}
.dv2-panel,.ai-panel{padding:15px 17px;border-radius:var(--v2-radius,14px);
  background:var(--v2-card,#121e33);border:1px solid var(--v2-line,#22314c)}
.dv2-panel + .dv2-panel{margin-top:13px}
.dv2-panel-hd,.ai-panel-hd{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:13px}
.dv2-panel-hd h3,.ai-panel-hd h3{margin:0;font-size:15px;font-weight:600;
  color:var(--ink,var(--v2-text,#e9f0fb))}
.dv2-panel-note,.ai-panel-note,.dv2-footer,.ai-footer{
  margin:12px 0 0;color:var(--v2-dim,#60738f);font-size:11.5px;line-height:1.7}
.dv2-footer,.ai-footer{padding:0 4px}
.dv2-kv{display:flex;flex-direction:column;gap:0}
.dv2-kv-row{display:grid;grid-template-columns:88px minmax(0,1fr) auto;gap:10px;
  align-items:center;padding:9px 2px;border-bottom:1px solid var(--v2-line-soft,rgba(126,156,196,.12))}
.dv2-kv-row:last-child{border-bottom:0}
.dv2-kv-row span{font-size:12px;color:var(--v2-muted,#8fa3c0)}
.dv2-kv-row b{font-size:13px;color:var(--v2-text,#e9f0fb);font-weight:600;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dv2-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.dv2-counts>div{display:flex;flex-direction:column;gap:5px;padding:12px;
  border-radius:10px;background:rgba(14,23,40,.6);border:1px solid var(--v2-line-soft,rgba(126,156,196,.12))}
.dv2-counts b{font-size:22px;color:var(--v2-text,#e9f0fb);font-variant-numeric:tabular-nums}
.dv2-counts span{font-size:11px;color:var(--v2-muted,#8fa3c0)}
.dv2-actions,.ai-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.dv2-actions .tb-btn,.ai-actions .tb-btn{width:auto;height:auto;min-height:38px;
  padding:8px 13px;font-size:12.5px;line-height:1.35;white-space:nowrap}
.dv2-empty,.ai-empty{padding:20px;border-radius:10px;text-align:center;
  border:1px dashed var(--v2-line,#22314c);color:var(--v2-muted,#8fa3c0);font-size:12.5px}
.dv2-report-lead{padding:13px 15px;border-radius:10px;font-size:12.5px;line-height:1.75;
  color:var(--v2-muted,#8fa3c0);background:rgba(167,139,250,.08);
  border:1px solid rgba(167,139,250,.28);margin-bottom:13px}
.dv2-report-lead b{color:var(--v2-text,#e9f0fb)}

/* ---------- AI 报告页 ---------- */
.ai-hero{padding:22px 24px;border-radius:var(--v2-radius,14px);
  border:1px solid var(--v2-line,#22314c);
  background:linear-gradient(120deg,#1b1636 0%,#111b32 55%,#0c1526 100%)}
.ai-eyebrow{display:flex;align-items:center;gap:9px;font-size:10.5px;font-weight:700;
  letter-spacing:.13em;color:var(--v2-dim,#60738f);text-transform:uppercase}
.ai-hero h1{margin:11px 0 6px;font-size:27px;color:var(--v2-text,#e9f0fb)}
.ai-hero h1 span{font-size:15px;color:var(--v2-muted,#8fa3c0);font-weight:500}
.ai-sub{margin:0;color:var(--v2-muted,#8fa3c0);font-size:12.5px}
.ai-hero-note{margin-top:15px;padding:12px 14px;border-radius:10px;font-size:12.5px;
  line-height:1.75;color:#e0d9ff;background:rgba(167,139,250,.10);
  border:1px solid rgba(167,139,250,.32)}
.ai-hero-note b{color:#fff}
.ai-facts{display:flex;flex-direction:column;gap:8px}
.ai-fact{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:11px;
  align-items:center;padding:10px 12px;border-radius:10px;
  background:rgba(14,23,40,.6);border:1px solid var(--v2-line-soft,rgba(126,156,196,.12))}
.ai-fact-label{font-size:12px;color:var(--v2-muted,#8fa3c0)}
.ai-fact b{font-size:13px;color:var(--v2-text,#e9f0fb);font-weight:600;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-cost{font-size:11.5px;color:var(--v2-dim,#60738f)}
.ai-action-note{margin-top:11px;padding:10px 12px;border-radius:9px;font-size:12px;
  color:var(--v2-muted,#8fa3c0);background:rgba(14,23,40,.6);
  border:1px dashed var(--v2-line,#22314c)}
.ai-json{margin:0;padding:12px;border-radius:9px;overflow-x:auto;font-size:11.5px;
  line-height:1.6;color:var(--v2-muted,#8fa3c0);background:#0a1220;
  border:1px solid var(--v2-line,#22314c)}

/* 浅色主题兜底 */
html[data-theme="light"] .dv2-hd,
html[data-theme="light"] .ai-hero{background:linear-gradient(120deg,#eef4ff,#f7fbff)}
html[data-theme="light"] .dv2-hd h1,
html[data-theme="light"] .dv2-side b,
html[data-theme="light"] .dv2-score,
html[data-theme="light"] .dv2-kv-row b,
html[data-theme="light"] .ai-hero h1,
html[data-theme="light"] .ai-fact b{color:#16203a}
html[data-theme="light"] .dv2-panel,
html[data-theme="light"] .ai-panel,
html[data-theme="light"] .dv2-tabs{background:#fff;border-color:#dbe3f0}

/* 浅色主题兜底（2026-11-10：修复 AI 报告 / 详情页深色残留造成的强反差）
   --v2-* 令牌定义在 :root 且是深色值，不随 data-theme 变化；凡是用这些令牌
   直接上色的元素，浅色下必须逐条覆盖，否则会出现白底上的近黑横条。 */
html[data-theme="light"] .ai-eyebrow,
html[data-theme="light"] .ai-sub{color:#64748b}
html[data-theme="light"] .ai-hero-note{
  color:#334155;background:#f1f5ff;border-color:#dbe4ff;
}
html[data-theme="light"] .ai-hero-note b{color:#1e293b}
html[data-theme="light"] .ai-fact{
  background:#f8fafc;border-color:#e2e8f0;
}
html[data-theme="light"] .ai-fact-label{color:#64748b}
html[data-theme="light"] .ai-cost{color:#64748b}
html[data-theme="light"] .ai-action-note{
  color:#475569;background:#f8fafc;border-color:#dbe3f0;
}
html[data-theme="light"] .ai-json{
  color:#334155;background:#f8fafc;border-color:#dbe3f0;
}
html[data-theme="light"] .ai-empty,
html[data-theme="light"] .dv2-empty{
  background:#f8fafc;border-color:#dbe3f0;color:#64748b;
}
html[data-theme="light"] .dv2-counts>div{background:#f8fafc;border-color:#e2e8f0}
html[data-theme="light"] .dv2-counts b{color:#16203a}
html[data-theme="light"] .dv2-counts span{color:#64748b}
html[data-theme="light"] .dv2-report-lead{
  color:#475569;background:#f5f3ff;border-color:#ddd6fe;
}
html[data-theme="light"] .dv2-report-lead b{color:#1e293b}
html[data-theme="light"] .dv2-tabs button{color:#64748b}
html[data-theme="light"] .dv2-tabs button.on{background:#e8f7f2;color:#0f766e}
html[data-theme="light"] .dv2-kv-row span{color:#64748b}
html[data-theme="light"] .ai-panel-note,
html[data-theme="light"] .dv2-panel-note,
html[data-theme="light"] .ai-footer,
html[data-theme="light"] .dv2-footer{color:#64748b}
/* 血缘表：--v2-line 是深色令牌，浅色下单独覆盖 */
html[data-theme="light"] .sb-lineage{border-color:#dbe3f0;background:#fff}
html[data-theme="light"] .sb-row{border-bottom-color:#eef2f7}
html[data-theme="light"] .sb-label{color:#16203a}
html[data-theme="light"] .sb-meta{color:#64748b}

/* ---------- 响应式 ---------- */
@media (max-width:640px){
  .dv2-hd,.ai-hero{padding:16px}
  .dv2-hd h1,.ai-hero h1{font-size:21px}
  .dv2-hd-body{gap:9px}
  .dv2-side b{font-size:13.5px}
  .dv2-score{font-size:26px}
  .dv2-grid{grid-template-columns:1fr}
  .dv2-panel,.ai-panel{padding:12px}
  .dv2-tabs button{padding:7px 10px;font-size:12px}
  .dv2-kv-row{grid-template-columns:72px minmax(0,1fr);gap:6px}
  .dv2-kv-row .sbadge{grid-column:1 / -1;justify-self:start}
  .dv2-counts{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .dv2-counts>div{padding:9px}
  .dv2-counts b{font-size:18px}
  .ai-fact{grid-template-columns:1fr;gap:5px}
  .ai-fact .sbadge{justify-self:start}
  .ai-cost{width:100%;line-height:1.6}
  .dv2-actions .tb-btn,.ai-actions .tb-btn{flex:1 1 100%;text-align:center}
}
