/* v15 · IA v1 导航重构：4 组 GEO 决策旅程 + 开发者抽屉
   根因：旧 .moremenu 只有一个下拉，21 个 tab 平铺用户找不到。
   现在每个 nav-group 是 flex 子项；带 nav-sub 的 group 用 position:absolute 浮层展开，
   不挤开后续导航元素（reflow 抖动），也不被 nav 条的 backdrop-filter/overflow 裁剪。 */
#topNav{position:sticky;top:0;z-index:95;gap:2px}
#topNav .nav-group{position:relative;display:inline-flex;flex:0 0 auto;align-items:center}
#topNav .nav-group[data-group="overview"],
#topNav .nav-group[data-group="verify"]{gap:2px} /* 扁平组内部间距 */
#topNav .tab{cursor:pointer;border:1px solid transparent;border-radius:8px}
#topNav .tab:hover:not(.active){border-color:var(--brand-200);color:var(--brand-deep)}
#topNav .tab.active{background:var(--brand-wash);color:var(--brand-deep);border-color:var(--brand-200);font-weight:800}
#topNav .tab-sub{padding:6px 9px;font-size:12px}

/* 组头按钮（分析 ▾ / 行动 ▾ / ⚙️）—— 有子组可展开 */
#topNav .tab-group-head,
#topNav .tab-dev{padding:6px 10px;font-size:12.5px;font-weight:700;color:var(--fg2);border:1px solid var(--line)}
#topNav .tab-group-head[aria-expanded="true"],
#topNav .tab-dev[aria-expanded="true"]{background:var(--brand-wash);color:var(--brand-deep);border-color:var(--brand-200)}
#topNav .tab-group-head.active,
#topNav .tab-dev.active{background:var(--brand-wash);color:var(--brand-deep);border-color:var(--brand-200)}

/* 子组浮层：position:absolute 脱离文档流，不挤开后续导航 */
#topNav .nav-sub{
  position:absolute;top:calc(100% + 6px);left:0;z-index:100;
  min-width:140px;max-width:220px;
  padding:6px;background:var(--card);border:1px solid var(--line);
  border-radius:10px;box-shadow:var(--sh-3);
  display:flex;flex-direction:column;gap:2px;
}
#topNav .nav-sub.hidden{display:none}
#topNav .nav-sub .tab{display:block;width:100%;text-align:left;padding:7px 12px;font-size:12.5px}
#topNav .nav-sub .tab:hover{background:var(--brand-wash);color:var(--brand-deep);border-color:var(--brand-200)}
#topNav #devMenu{min-width:240px;max-width:280px;padding:8px}
#topNav #devMenu .dev-menu-group{padding:6px;border:1px solid var(--line);border-radius:9px;background:var(--bg2)}
#topNav #devMenu .dev-menu-group+.dev-menu-group{margin-top:8px}
#topNav #devMenu .submenu-hd{font-size:12.5px;font-weight:800;color:var(--fg);padding:4px 6px 7px;border-bottom:1px solid var(--line);margin-bottom:3px;letter-spacing:0;text-transform:none}
#topNav #devMenu .submenu-hd span{color:var(--brand);font-size:8px;vertical-align:2px}
#topNav #devMenu .dev-menu-group>.tab{background:var(--card)}

/* 开发者抽屉向右展开（避免和组头浮层重叠方向相反，视觉层次更清晰） */
#topNav #devWrap .nav-sub{left:auto;right:0}

/* 手机：子组浮层全屏宽 */
body.is-mobile #topNav .nav-sub{position:fixed;left:8px;right:8px;top:auto;transform:translateY(0);min-width:auto;max-width:none}
body.is-mobile #morePanel{position:fixed;z-index:220;left:8px;right:8px;max-height:calc(100vh - 120px);overflow-y:auto;padding:6px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:var(--sh-3);display:flex;flex-direction:column;gap:2px}
body.is-mobile #morePanel.hidden{display:none}
body.is-mobile #morePanel .tab{display:block;width:100%;text-align:left;padding:7px 12px;font-size:12.5px}
body.is-mobile #topNav #devMenu{width:auto;min-width:0;max-width:none}

.rank-evidence{margin:20px 0;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.rank-evidence .prof-head{margin:0 0 12px}.rank-evidence .prof-head h2{margin:0}.rank-evidence .prof-head p{margin:5px 0 0}
.rank-evidence-details{margin-top:12px}.rank-evidence-details>summary{cursor:pointer;color:var(--brand-deep);font-weight:800;padding:10px 12px;background:var(--brand-wash);border-radius:9px}
.rank-evidence-details[open]>summary{margin-bottom:10px}.rank-answer-link{font:inherit;color:var(--brand-deep);font-weight:700;background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* ---------- 旧 v14 样式（原 .report-center-head 等保留在下方） ---------- */

/* v14 · 杜碧涵需求复核：报告内嵌、完整图表、无滚轮信息墙、二级详情 */
.report-center-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}.report-center-head h2{margin:0;font-size:24px}.report-center-head p{margin:4px 0 0;color:var(--fg2)}.report-center-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.report-filter{display:grid;grid-template-columns:repeat(6,minmax(135px,1fr));gap:10px;align-items:end;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--card);box-shadow:var(--sh-1)}.report-filter label{display:grid;gap:5px;font-size:12px;font-weight:700;color:var(--fg2)}.report-filter input[type=date],.report-filter select{width:100%;min-height:38px}.report-filter .check{display:flex;align-items:center;gap:7px;min-height:38px}.report-filter .compare-field.is-off{opacity:.45;pointer-events:none}.report-scope{margin:10px 2px;color:var(--fg2);font-size:12px;min-height:20px}.report-scope.is-error{color:var(--bad,#8e1b22);font-weight:700}.report-frame{display:block;width:100%;height:720px;min-height:720px;border:1px solid var(--line);border-radius:12px;background:#f3f4f6;overflow:hidden;transition:opacity .18s ease}.report-frame.is-loading{opacity:.38;pointer-events:none}.report-filter #reportApply:disabled{cursor:wait;opacity:.82}.report-filter #reportApply:disabled:before{content:'◌';display:inline-block;margin-right:6px;animation:report-spin .8s linear infinite}@keyframes report-spin{to{transform:rotate(360deg)}}

.report-projects{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:10px}.report-projects legend{font-weight:700}.report-projects>div{display:flex;gap:12px;flex-wrap:wrap}.report-projects label{display:flex;align-items:center;gap:5px}.report-projects p{flex-basis:100%;margin:0}
.concl-note{display:block!important;-webkit-line-clamp:unset!important;max-height:none!important;overflow:visible!important;white-space:normal!important}
.projq-available{margin-top:16px;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--bg2,#f8f9fb)}.projq-available>summary{cursor:pointer;font-weight:700;color:var(--accent)}#projAssetsPorts{display:grid;gap:14px}#projAssetsPorts .inbox{margin:0}.prof-card:not([open]) .prof-body{display:none}
.overview-dim-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.overview-dim-grid>div{display:grid;grid-template-columns:1fr auto;gap:6px}.overview-dim-grid progress{grid-column:1/-1;width:100%;height:8px;accent-color:var(--purple)}.overview-dim-grid span{color:var(--fg2);font-variant-numeric:tabular-nums}
/* 分析页必须完整露出：只允许宽表横向滚动，不再设置纵向滚轮。 */
#tab-timeline :is(.chart-bd,.tablewrap),#tab-sentiment :is(.chart-bd,.theme-list,.tablewrap),#tab-competition :is(.prof-grid,.theme-list,.tablewrap),#tab-runs .tablewrap{max-height:none!important;overflow-y:visible!important}
#tab-timeline :is(.chart,.svgchart,svg),#tab-sentiment :is(.chart,.svgchart,svg){max-height:none!important;height:auto!important}
#tab-timeline>div[id^=chartTimeline]{width:100%;min-height:280px;margin-bottom:14px}
#tab-sentiment .sent-top{align-items:stretch}#tab-sentiment #chartSentRing,#tab-sentiment .sent-cards{min-height:260px}
#tab-competition [data-cmp="sameDev"],#tab-competition [data-pane="sameDev"]{display:none!important}
.tblnote{display:none!important}
.run-platform-picker{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:7px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--bg2)}.run-platform-picker label{display:flex!important;align-items:center;gap:7px;font-size:12px;font-weight:600}.run-platform-picker input{margin:0}

/* 回答原文：列表整页展开；点击任意一行后用二级界面看详情。 */
#tab-runs .split{display:block!important}#tab-runs #runDetail{display:none!important}
.run-detail-overlay{position:fixed;inset:0;z-index:120;background:rgba(15,18,25,.52);display:flex;align-items:flex-start;justify-content:center;padding:4vh 18px}.run-detail-overlay.hidden{display:none}.run-detail-card{width:min(980px,100%);max-height:92vh;overflow:auto;background:var(--card);border-radius:14px;border:1px solid var(--line);box-shadow:0 18px 60px rgba(0,0,0,.24)}.run-detail-head{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--card);border-bottom:1px solid var(--line)}.run-detail-body{padding:16px}.run-detail-body pre{max-height:none!important;overflow:visible!important}
.screenshot-preview-card{width:min(1200px,100%)}.screenshot-preview-image{display:block;width:100%;height:auto;max-height:78vh;object-fit:contain;background:#f4f5f7;border:1px solid var(--line);border-radius:8px}.screenshot-preview-card .run-detail-body>p{margin:10px 0 0;text-align:right}

/* 竞品档案仍使用独立详情；普通省略文字改为悬停全文，不再打断阅读。 */
.expandable-text{cursor:default}.text-full-overlay{position:fixed;inset:0;z-index:130;background:rgba(15,18,25,.52);display:flex;align-items:center;justify-content:center;padding:20px}.text-full-overlay.hidden{display:none}.text-full-card{width:min(760px,100%);max-height:80vh;overflow:auto;padding:20px;border-radius:14px;background:var(--card);border:1px solid var(--line);box-shadow:0 18px 60px rgba(0,0,0,.25);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.75}
.fulltext-tip{position:fixed;z-index:240;width:max-content;max-width:min(640px,calc(100vw - 20px));max-height:min(60vh,520px);overflow:auto;padding:10px 12px;border-radius:9px;background:#171923;color:#fff;border:1px solid rgba(255,255,255,.16);box-shadow:0 12px 34px rgba(0,0,0,.28);font-size:13px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;pointer-events:auto}.fulltext-tip.hidden{display:none}

/* 概览里的执行 SOP：只讲闭环，不重复各分析页的具体结论。 */
.overview-sop{margin:16px 0 20px;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--card);box-shadow:var(--sh-1)}.overview-sop-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}.overview-sop-head h2{margin:0;font-size:21px}.overview-sop-head p:not(.eyebrow){margin:4px 0 0;color:var(--fg2)}.sop-steps{counter-reset:sop;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:0;padding:0;list-style:none}.sop-steps li{counter-increment:sop;position:relative;min-height:84px;padding:13px 12px 12px 46px;border:1px solid var(--line);border-radius:10px;background:var(--bg2)}.sop-steps li:before{content:counter(sop,decimal-leading-zero);position:absolute;left:12px;top:13px;color:var(--purple);font-weight:800;font-size:13px}.sop-steps b{display:block;margin-bottom:5px}.sop-steps span{display:block;color:var(--fg2);font-size:12px;line-height:1.55}

/* 低样本或证据重复时只显示补采提醒，不展示无支撑原句。 */
.theme-pending{margin-top:10px;padding:13px 14px;border:1px dashed #d49ca0;border-radius:10px;background:#fff8f8}.theme-pending>b{color:#9f2530}.theme-pending p{margin:4px 0 8px;color:var(--fg2);font-size:12px}.theme-pending div{display:flex;gap:6px;flex-wrap:wrap}.theme-pending span,.repeat-badge{display:inline-flex;padding:3px 7px;border-radius:999px;background:#f1eef8;color:#6b238e;font-size:11px;font-weight:700}.repeat-badge{margin-left:8px;background:#eef1f5;color:#596273}

.tabs{z-index:90!important}.moremenu{z-index:220!important}
/* Detail layers must clear sticky navigation; keep their own headings in flow. */
.draft-overlay{z-index:110}
.chart-zoom .prof-hd,.chart-zoom .chart-hd{position:static;top:auto}

/* v15 · 竞品档案详情层重做（杜碧涵 1012/1013：标题栏穿模、信息栏一直挡、点关闭整个关掉）
   根因：弹层卡片继承 white-space:pre-wrap，summary 里的换行空白被当成 flex 项，
   每个指标被顶到单独一行，头部被撑成一堵墙；同时二级 details 全展开，正文上万像素。 */
.text-full-overlay{align-items:center;padding:24px}
.text-full-card{
  display:flex;flex-direction:column;width:min(1080px,100%);max-height:88vh;
  padding:0;overflow:hidden;white-space:normal;
}
.text-full-head{
  flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 16px 10px 20px;background:var(--card);border-bottom:1px solid var(--line);
  border-radius:14px 14px 0 0;
}
.text-full-head .text-full-title{
  min-width:0;font-size:16px;line-height:1.4;color:var(--fg);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.text-full-x{
  flex:0 0 auto;width:30px;height:30px;padding:0;border-radius:50%;
  border:1px solid var(--line);background:var(--bg);color:var(--fg2);
  font-size:13px;line-height:1;cursor:pointer;
}
.text-full-x:hover{background:var(--line);color:var(--fg)}
.text-full-body{flex:1 1 auto;min-height:0;overflow:auto;padding:16px 20px 22px;white-space:normal}
.text-full-body.is-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.75}
/* 弹层里的档案卡：不再自带边框阴影，头部指标单行排布、不吸顶、不可再折叠 */
.text-full-body .prof-card{padding:0;border:0;background:transparent;box-shadow:none}
.text-full-body .prof-hd{
  position:static;top:auto;cursor:default;pointer-events:none;
  gap:8px;padding:0 0 12px;margin-bottom:14px;border-bottom:1px solid var(--line);
}
.text-full-body .prof-hd::before{display:none}
.text-full-body .prof-hd>*{white-space:nowrap}
.text-full-body .prof-hd>b{font-size:17px}
.text-full-body .prof-body{margin-top:0}
@media(max-width:700px){
  .text-full-overlay{padding:0}
  .text-full-card{max-height:100vh;height:100%;width:100%;border-radius:0;border:0}
  .text-full-body{padding:12px 14px 20px}
}

/* v16 · 概览「八维诊断得分」（rq_mv1unohmv73w：这一栏原挂「配置 / 方法与口径」，
   内容实为 0-100 得分，名字与内容不符 → 改名并前移到概览；完整版仍在「更多 · 八维诊断」） */
#overviewDimensions{padding:18px 20px 16px}
.ov-dim-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}
.ov-dim-head .eyebrow{margin:0 0 4px}
.ov-dim-head h2{margin:2px 0 4px;font-size:20px}
.ov-dim-sub{margin:0;color:var(--fg2);font-size:12.5px}
.ov-dim-avg{display:flex;align-items:baseline;gap:3px;white-space:nowrap;padding-left:14px}
.ov-dim-avg .n{font-size:32px;font-weight:800;letter-spacing:-.02em;line-height:1}
.ov-dim-avg .u{font-size:13px;color:var(--muted)}
.ov-dim-avg .l{margin-left:9px;font-size:12px;color:var(--muted)}
.ov-dim-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.ov-dim-item{padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--bg2)}
.ov-dim-item.is-pending{opacity:.6}
.ov-dim-top{display:flex;align-items:center;gap:7px;min-width:0}
.ov-dim-idx{flex:0 0 auto;color:var(--muted);font-size:11px;font-weight:800}
.ov-dim-name{flex:1 1 auto;min-width:0;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-dim-score{flex:0 0 auto;font-size:15px;font-weight:800;white-space:nowrap}
.ov-dim-bar{margin-top:7px;height:5px;border-radius:3px;background:var(--line);overflow:hidden}
.ov-dim-bar>i{display:block;height:100%;border-radius:3px;background:var(--muted)}
.ov-dim-bar>i.g-strong,.ov-dim-bar>i.g-ok{background:var(--ok)}
.ov-dim-bar>i.g-mid{background:var(--warn)}
.ov-dim-bar>i.g-weak{background:var(--bad)}
.ov-dim-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:12px 0 0;color:var(--fg2);font-size:12.5px}
.ov-dim-worst{flex:1 1 auto;min-width:0;line-height:1.6}

/* v16 · 缺口页 · 补足建议（rq_mv0ahm8eohhl） */
.gap-imp{display:inline-block;padding:1px 7px;border-radius:999px;font-size:11.5px;font-weight:700;white-space:nowrap}
.gap-imp.p1{background:rgba(180,35,42,.1);color:var(--bad)}
.gap-imp.p2{background:rgba(180,83,9,.1);color:var(--warn)}
.gap-imp.p3{background:var(--bg2);color:var(--fg2)}
.gap-brief .p10-grid{gap:12px;margin-top:10px}
.brief-list{margin:6px 0 0;padding-left:18px;font-size:12.5px;line-height:1.7}
.brief-list li{margin-bottom:4px}
.brief-note{margin:10px 0 0;padding-top:9px;border-top:1px dashed var(--line);color:var(--fg2);font-size:12px;line-height:1.65}
/* 补足建议卡：把建议变成稿件（一键建稿 → 稿件工作台直接打开初稿） */
.gap-brief-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0 0;padding-top:10px;border-top:1px solid var(--line)}
.gap-brief-actions .muted{flex:1 1 240px;min-width:0;line-height:1.6;font-size:12px}
.gap-brief-actions button{margin:0;white-space:nowrap}

@media(max-width:1100px){.report-filter{grid-template-columns:repeat(3,minmax(150px,1fr))}}
@media(max-width:900px){.sop-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.ov-dim-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.ov-dim-head{flex-direction:column;align-items:flex-start}.ov-dim-avg{padding-left:0}}
@media(max-width:700px){.report-center-head,.overview-sop-head{align-items:flex-start;flex-direction:column}.report-center-actions{justify-content:flex-start}.report-filter{grid-template-columns:1fr}.report-frame{min-height:620px}.sop-steps{grid-template-columns:1fr}}

/* 项目题库：候选先审阅，确认后才写入 */
.question-suggestions{margin:12px 0 18px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--bg2)}
.suggest-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px}.suggest-head p{margin:4px 0 0}
.suggest-list{display:grid;gap:8px}.suggest-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:start;padding:10px;background:var(--bg);border:1px solid var(--line);border-radius:10px}
.suggest-fields{display:grid;gap:6px}.suggest-text{width:100%;resize:vertical}.suggest-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.suggest-topic{width:120px}.suggest-tier{width:120px}
@media(max-width:700px){.suggest-head{flex-direction:column}.suggest-row{grid-template-columns:auto minmax(0,1fr)}.suggest-delete{grid-column:2}.suggest-meta>*{width:100%}}

.social-scope{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-left:4px solid var(--primary);background:var(--bg2);border-radius:8px}.social-scope b{white-space:nowrap}.social-kpis{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.social-kpis span{padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--bg)}
.social-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.social-card{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--bg)}.social-card.pending{opacity:.78}.social-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.social-card-head h3{margin:0 0 10px}.social-title{display:block;margin-bottom:10px}.social-card dl{display:grid;grid-template-columns:44px 1fr;gap:7px 10px;margin:0}.social-card dt{color:var(--muted)}.social-card dd{margin:0}.social-card details{margin-top:12px}.social-card details p{line-height:1.7}.social-block{margin-top:18px}.social-talk,.social-strategy{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.social-talk>div,.social-strategy>div{padding:13px;border:1px solid var(--line);border-radius:10px;background:var(--bg2)}
@media(max-width:800px){.social-grid,.social-talk,.social-strategy{grid-template-columns:1fr}}
