/* ============================================================
   design-v3.css · 视觉系统 v3（展示层新增，2026-09）
   只做「新增三块能力」的样式：一句话总结 / 八维度卡 / 口碑与优劣势。
   规范沿用 design-v2 的令牌：间距 4/8/12/20/28、圆角 8/14/pill、字号三级、
   品牌紫 #A73CD7（按钮 #8E2BB8）；语义色只用绿/黄/红的状态语义，且都用
   「深色底 + 中性文字」的组合，保证正文对比度 ≥ 4.5:1（深浅两套模式下都成立）。
   本文件不覆盖任何 v1/v2 的既有选择器行为。
   ============================================================ */
:root{
  /* 语义「墨色」：只用于文字，深浅两套模式下都在 4.5:1 以上 */
  --ok-ink:#0E6B33; --warn-ink:#8A4A08; --bad-ink:#8E1B22;
  --hi-bg:color-mix(in srgb, var(--brand) 9%, var(--card));
  --hi-line:color-mix(in srgb, var(--brand) 34%, var(--line));
}
@media (prefers-color-scheme: dark){
  :root{ --ok-ink:#6EE7A0; --warn-ink:#FCD34D; --bad-ink:#FCA5A5; --hi-bg:color-mix(in srgb, var(--brand) 18%, var(--card)); }
}

/* ============================================================
   1 · 首页「一句话总结」
   ============================================================ */
.onesum{
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;gap:var(--sp-2);
  margin:0 0 var(--sp-3);padding:var(--sp-4) var(--sp-4) var(--sp-4) calc(var(--sp-4) + 4px);
  border:1px solid var(--brand-200);border-radius:var(--r-card);
  background:radial-gradient(130% 150% at 0% 0%, var(--brand-wash) 0%, transparent 62%), var(--card);
  box-shadow:var(--sh-1);
}
.onesum::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--brand) 0%,var(--brand-deep) 100%)}
.onesum.t-up::before{background:var(--ok)}
.onesum.t-down::before{background:var(--warn)}
.onesum-hd{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}
.onesum-kicker{font-size:var(--fs-caption);font-weight:700;letter-spacing:.14em;color:var(--brand-deep);text-transform:uppercase}
.onesum-verdict{font-size:calc(var(--fs-data) * .92);font-weight:800;letter-spacing:-.02em;color:var(--brand-deep);line-height:1.05}
.onesum.t-up .onesum-verdict{color:var(--ok-ink)}
.onesum.t-down .onesum-verdict{color:var(--warn-ink)}
.onesum-note{margin:0;font-size:var(--fs-2);color:var(--fg);line-height:1.62;max-width:88ch}
.onesum-chips{display:flex;gap:var(--sp-2);flex-wrap:wrap}
@media (prefers-color-scheme: dark){
  .onesum{border-color:color-mix(in srgb, var(--brand) 40%, var(--line))}
  .onesum-kicker{color:var(--accent-ink)}
}

/* 通用小徽章 / 数值芯片 */
.chip{
  display:inline-flex;align-items:center;gap:6px;
  font-size:var(--fs-caption);font-weight:600;
  padding:3px 9px;border-radius:var(--r-pill);
  border:1px solid var(--line);background:var(--bg);color:var(--fg2);
}
.chip b{color:var(--fg);font-variant-numeric:tabular-nums}
.chip.up{color:var(--ok-ink);border-color:color-mix(in srgb, var(--ok) 34%, var(--line))}
.chip.down{color:var(--warn-ink);border-color:color-mix(in srgb, var(--warn) 36%, var(--line))}

/* ============================================================
   2 · 结论带里的「最值得看的一条」
   ============================================================ */
.concl-hi{
  display:flex;align-items:flex-start;gap:var(--sp-2);
  margin-top:var(--sp-2);padding:var(--sp-2) var(--sp-3);
  border-radius:var(--r-ctl);border:1px solid var(--hi-line);background:var(--hi-bg);
  font-size:var(--fs-2);font-weight:600;color:var(--fg);line-height:1.6;
  word-break:break-word;overflow-wrap:anywhere;
}
.concl-hi .hi-ico{font-style:normal;flex:none}
.concl-hi b{color:var(--fg)}

/* ============================================================
   3 · 八维度卡片
   ============================================================ */
.dim-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--sp-3);margin:var(--sp-3) 0 var(--sp-2)}
.dim-card{
  display:flex;flex-direction:column;gap:var(--sp-2);min-width:0;
  padding:var(--sp-3) var(--sp-4) var(--sp-4);
  border:1px solid var(--line);border-radius:var(--r-card);background:var(--card);
  box-shadow:var(--sh-1);
}
.dim-hd{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}
.dim-idx{
  width:24px;height:24px;flex:none;border-radius:var(--r-pill);
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--brand-100);color:var(--brand-deep);
  font-size:var(--fs-1);font-weight:800;font-variant-numeric:tabular-nums;
}
.dim-hd h3{margin:0;font-size:var(--fs-3)}
.dim-score{margin-left:auto;display:flex;align-items:baseline;gap:4px;font-variant-numeric:tabular-nums}
.dim-score .n{font-size:var(--fs-data);font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--brand-deep)}
.dim-score .u{font-size:var(--fs-caption);color:var(--fg2);font-weight:600}
.dim-card.weak .dim-score .n{color:var(--warn-ink)}
.dim-card.mid .dim-score .n{color:var(--brand-deep)}
.dim-badge{
  display:inline-flex;align-items:center;gap:6px;
  font-size:var(--fs-caption);font-weight:700;padding:2px 9px;border-radius:var(--r-pill);
  border:1px solid var(--line);background:var(--bg);color:var(--fg2);
}
.dim-badge i{width:7px;height:7px;border-radius:50%;background:var(--brand);flex:none}
.g-strong i{background:var(--ok)}
.g-ok i{background:var(--brand)}
.g-mid i{background:var(--warn)}
.g-weak i{background:var(--bad)}
.dim-badge.pending{border-style:dashed}
.dim-q{margin:0;font-size:var(--fs-1);color:var(--fg2)}
.dim-dx{margin:0;font-size:var(--fs-2);color:var(--fg);line-height:1.62;word-break:break-word;overflow-wrap:anywhere}
.dim-bar{height:8px;border-radius:var(--r-pill);background:var(--bg);border:1px solid var(--line);overflow:hidden}
.dim-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--brand) 0%,var(--brand-deep) 100%)}
.dim-bar i.g-strong{background:var(--ok)}
.dim-bar i.g-mid{background:var(--warn)}
.dim-bar i.g-weak{background:var(--bad)}
.dim-ev{border-top:1px dashed var(--line);padding-top:var(--sp-2);margin-top:auto}
.dim-ev summary,.theme-ev summary{
  cursor:pointer;font-size:var(--fs-1);font-weight:700;color:var(--brand-deep);
  list-style:none;display:inline-flex;align-items:center;gap:6px;
}
.dim-ev summary::-webkit-details-marker,.theme-ev summary::-webkit-details-marker{display:none}
.dim-ev summary::before,.theme-ev summary::before{content:"▸";font-size:10px;transition:transform .15s}
.dim-ev[open] summary::before,.theme-ev[open] summary::before{transform:rotate(90deg)}
@media (prefers-color-scheme: dark){
  .dim-ev summary,.theme-ev summary{color:var(--accent-ink)}
  .dim-score .n,.onesum-verdict{color:var(--accent-ink)}
  .dim-card.weak .dim-score .n{color:var(--warn-ink)}
}
.basis-list{margin:var(--sp-2) 0 0;padding-left:18px;display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--fs-1);color:var(--fg2);word-break:break-word;overflow-wrap:anywhere}
.ev-list{margin:var(--sp-2) 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--sp-2)}
.ev-item{border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--bg);padding:var(--sp-2) var(--sp-3);min-width:0}
.ev-label{font-size:var(--fs-1);font-weight:700;color:var(--fg);word-break:break-word}
.ev-meta{display:block;margin-top:2px;font-size:var(--fs-caption);color:var(--muted);word-break:break-word}
.ev-quote{margin:var(--sp-1) 0 0;font-size:var(--fs-1);color:var(--fg);line-height:1.6;word-break:break-word;overflow-wrap:anywhere}
.ev-empty{font-size:var(--fs-1);color:var(--fg2)}

/* ============================================================
   4 · 口碑与优劣势
   ============================================================ */
.sent-top{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(0,1.5fr);gap:var(--sp-3);align-items:start}
.sent-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--sp-3);align-content:start}
.sent-cards .kpi{padding:var(--sp-3)}
.sent-cards .kpi .v{font-size:calc(var(--fs-data) * .82)}
.theme-list{display:flex;flex-direction:column;gap:var(--sp-3)}
.theme-item{
  border:1px solid var(--line);border-radius:var(--r-card);background:var(--card);padding:var(--sp-3) var(--sp-4);
  box-shadow:var(--sh-1);min-width:0;
}
.theme-hd{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}
.theme-hd b{font-size:var(--fs-3)}
.theme-hd .theme-count{font-size:var(--fs-2);font-weight:800;color:var(--brand-deep);font-variant-numeric:tabular-nums}
.theme-meta{margin:var(--sp-1) 0 0;font-size:var(--fs-1);color:var(--fg2);word-break:break-word}
.theme-item.good{border-color:color-mix(in srgb, var(--brand) 26%, var(--line))}
.tag-ai{
  display:inline-flex;align-items:center;gap:6px;
  font-size:var(--fs-caption);font-weight:700;padding:2px 9px;border-radius:var(--r-pill);
  background:var(--brand-100);color:var(--brand-deep);border:1px solid var(--brand-200);
}
@media (prefers-color-scheme: dark){
  .tag-ai{background:color-mix(in srgb, var(--brand) 22%, var(--card));color:var(--accent-ink);border-color:color-mix(in srgb, var(--brand) 40%, var(--line))}
  .theme-hd .theme-count{color:var(--accent-ink)}
}
.legend-row{display:flex;gap:var(--sp-3);flex-wrap:wrap;font-size:var(--fs-1);color:var(--fg2);margin-top:var(--sp-2)}

/* ============================================================
   5 · 移动端 ≤760px：一列排布、长句换行不撑破
   ============================================================ */
@media (max-width:900px){
  .sent-top{grid-template-columns:1fr}
}
@media (max-width:760px){
  .dim-grid{grid-template-columns:1fr;gap:var(--sp-2)}
  .dim-card{padding:var(--sp-3)}
  .dim-score .n{font-size:calc(var(--fs-data) * .86)}
  .onesum{padding:var(--sp-3) var(--sp-3) var(--sp-3) calc(var(--sp-3) + 4px)}
  .onesum-verdict{font-size:calc(var(--fs-data) * .78)}
  .sent-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .theme-item{padding:var(--sp-3)}
  .concl-hi{font-size:var(--fs-1)}
  .ev-quote,.basis-list{font-size:var(--fs-1)}
}
@media print{
  .onesum,.dim-card,.theme-item{break-inside:avoid;box-shadow:none}
}

/* ============================================================
   6 · 竞争格局页：份额条 / 竞品档案卡 / 攻防三块
   ============================================================ */
.prof-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--sp-3)}
.prof-card{
  display:block;min-width:0;
  padding:var(--sp-3) var(--sp-4);margin:0;
  border:1px solid var(--line);border-radius:var(--r-card);background:var(--card);box-shadow:var(--sh-1);
}
.prof-hd{
  display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;
  cursor:pointer;list-style:none;font-size:var(--fs-3);
}
.prof-hd::-webkit-details-marker{display:none}
.prof-hd::before{content:"▸";font-size:10px;color:var(--brand-deep);transition:transform .15s}
.prof-card[open] .prof-hd::before{transform:rotate(90deg)}
.prof-body{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-3)}
.prof-h4{margin:var(--sp-2) 0 0;font-size:var(--fs-2);font-weight:700;color:var(--fg2)}
.prof-themes{display:flex;flex-direction:column;gap:var(--sp-2)}
.prof-theme{
  display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;min-width:0;
  padding:var(--sp-2) var(--sp-3);
  border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--bg);
}
.prof-theme > .theme-ev,.prof-theme > details{flex:1 1 100%;min-width:0}
@media (prefers-color-scheme: dark){
  .prof-hd::before{color:var(--accent-ink)}
}
@media (max-width:760px){
  .prof-grid{grid-template-columns:1fr}
  .prof-card{padding:var(--sp-3)}
}
@media print{
  .prof-card,.prof-theme{break-inside:avoid;box-shadow:none}
}
