/* 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}}

/* ─── 信息架构 v15（2026-11-02）：左侧一级 + 二级可折叠导航，正文居中，移动端抽屉 ─── */
:root{--side-w:236px}
#topNav.side{position:fixed;left:0;top:0;bottom:0;width:var(--side-w);display:flex;flex-direction:column;align-items:stretch;gap:0;padding:18px 12px 22px;background:#fff;border-right:1px solid var(--line);overflow-y:auto;overflow-x:hidden;z-index:120;transform:none}
#topNav.side .side-head{display:flex;align-items:center;gap:10px;padding:0 8px 18px;border-bottom:1px solid var(--line);margin-bottom:14px}
#topNav.side .side-head img{width:30px;height:30px;border-radius:8px}
#topNav.side .side-head b{display:block;font-size:14px;letter-spacing:-.01em}
#topNav.side .side-head span{display:block;font-size:11px;color:var(--muted);margin-top:2px}
#topNav.side .side-groups{display:flex;flex-direction:column;gap:6px}
#topNav.side .nav-group{position:static;display:block;width:100%}
#topNav.side .tab-group-head{display:flex;align-items:center;justify-content:space-between;width:100%;padding:9px 10px;border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-radius:9px;text-align:left}
#topNav.side .tab-group-head:hover{background:var(--bg2,#f6f5f8);color:var(--fg2)}
#topNav.side .tab-group-head[aria-expanded="true"]{color:var(--fg)}
#topNav.side .tab-group-head .chev{font-size:10px;font-style:normal;transition:transform .15s}
#topNav.side .tab-group-head[aria-expanded="true"] .chev{transform:rotate(90deg)}
#topNav.side .nav-sub{position:static;display:flex;flex-direction:column;gap:2px;min-width:0;width:auto;max-width:none;margin:2px 0 8px;padding:0;background:transparent;border:0;box-shadow:none;transform:none}
#topNav.side .nav-sub .tab{display:block;width:100%;text-align:left;padding:8px 12px;margin:0;border:1px solid transparent;border-radius:9px;font-size:13px;font-weight:500;color:var(--fg2);background:transparent}
#topNav.side .nav-sub .tab:hover{background:var(--bg2,#f6f5f8);color:var(--fg)}
#topNav.side .nav-sub .tab.active{background:var(--brand-wash,#f2eef8);color:var(--brand-deep,#4b2e83);border-color:var(--brand-200,#ddd2ec);font-weight:700}
#topNav.side .nav-sub .tab-sub{padding:8px 12px;font-size:13px}
#topNav.side .nav-link{text-decoration:none}
body.has-side{padding-left:var(--side-w)}
body.has-side header.top{padding-left:28px}
body.has-side main{max-width:1180px;margin:0 auto;padding:22px 28px 56px}
#btnSideNav{display:none;flex:none;border:1px solid var(--line);background:var(--card);border-radius:8px;padding:5px 9px;font-size:13px;line-height:1}
#sideScrim{display:none;position:fixed;inset:0;background:rgba(20,20,28,.38);z-index:110}
body.side-open #sideScrim{display:block}
@media(max-width:980px){
  body.has-side{padding-left:0}
  #btnSideNav{display:inline-flex;align-items:center;gap:5px}
  #topNav.side{width:min(84vw,300px);transform:translateX(-104%);transition:transform .18s ease;box-shadow:12px 0 30px rgba(0,0,0,.12)}
  body.side-open #topNav.side{transform:translateX(0)}
  body.has-side header.top{padding-left:12px}
  body.has-side main{padding:16px 14px 48px}
  #topNav.side .nav-sub .tab{padding:11px 12px;font-size:14px}
}
@media print{#topNav.side,#sideScrim,#btnSideNav{display:none!important}body.has-side{padding-left:0}}

/* ---------- 发稿进度看板（.progress-board）：每篇稿件一行 + 单一阶段灯 ---------- */
.progress-board{margin:14px 0;padding:14px 16px;border:1px solid var(--line,#e7e3ec);border-radius:12px;background:var(--card,#fff)}
.progress-board:empty{display:none}
.progress-board .progress-board-title{margin:0 0 6px;font-size:15px}
.progress-board .progress-board-summary{margin:0 0 10px;font-size:13px;color:var(--muted,#756f7f)}
.progress-board .progress-board-list{display:flex;flex-direction:column}
.progress-board .progress-board-row{display:flex;align-items:center;gap:10px;padding:7px 2px;border-top:1px solid var(--line,#efecf3);font-size:13px;min-width:0}
.progress-board .progress-board-row:first-child{border-top:0}
.progress-board .progress-dot{flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:#b7b2c0}
.progress-board .progress-dot.is-gray{background:#b7b2c0}
.progress-board .progress-dot.is-blue{background:#3b7ddd}
.progress-board .progress-dot.is-green{background:#2e9e5b}
.progress-board .progress-dot.is-red{background:#d64545}
.progress-board .progress-stage{flex:0 0 auto;min-width:56px;font-weight:600}
.progress-board .progress-board-row.is-problem .progress-stage{color:#d64545}
.progress-board .progress-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.progress-board .progress-assignee{flex:0 0 auto;max-width:9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted,#756f7f)}
.progress-board .progress-platform{flex:0 0 auto;max-width:11em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted,#756f7f)}
@media(max-width:640px){.progress-board .progress-platform{display:none}}

/* ---------- 多平台发布中心：极简一行汇总，只列有真实任务或需处理的平台 ---------- */
.distribution-center .dist-summary{margin:0 0 10px;font-size:13px;color:var(--muted,#756f7f)}
.distribution-grid{display:flex;flex-direction:column;gap:6px}
.distribution-row{display:flex;align-items:center;gap:12px;padding:9px 12px;border:1px solid var(--line,#efecf3);border-radius:12px;background:#fff;font-size:13px;min-width:0}
.distribution-row.building,.distribution-row.planned{background:var(--soft,#f7f5fa)}
.distribution-row .dist-row-label{flex:0 0 auto;min-width:7em;font-weight:700}
.distribution-row .dist-row-tag{flex:0 0 auto;font-style:normal;font-size:11px;color:var(--muted,#756f7f)}
.distribution-row .dist-row-status{flex:1 1 auto;display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:0}
.distribution-row .dist-row-status em{font-style:normal;padding:2px 8px;border-radius:999px;background:#eef4fa;color:#334155;font-size:12px}
.distribution-row .dist-row-status em.attn{background:#fdeeee;color:#b03232}
.distribution-row .dist-row-actions{flex:0 0 auto;display:flex;align-items:center;gap:8px}
.distribution-row .dist-row-actions a.small{text-decoration:none;display:inline-flex;align-items:center}
@media(max-width:720px){.distribution-row{flex-wrap:wrap}.distribution-row .dist-row-status{flex-basis:100%;order:3}.distribution-row .dist-row-actions{order:4}}

/* ---------- 监测中心 · 竞品焦点：勾选竞品 → 选优势点 → 同口径比较 ---------- */
.cmp-focus-card{border-color:var(--brand-200,#d8c2ea)}
.cmp-focus-badge{display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;border-radius:8px;background:#f3e8f7;color:#79249d;font-size:10px;font-weight:800}
.cmp-focus-picker{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0 14px}
.cmp-focus-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 18px;font-size:12px;color:var(--muted,#756f7f)}
.cmp-focus-actions .btn:disabled{opacity:.48;cursor:not-allowed}
.cmp-focus-actions details{margin-left:auto;max-width:320px}
.cmp-focus-actions summary{cursor:pointer}
.cmp-focus-actions details p{margin:6px 0;line-height:1.5}
#tab-competition .concl-method{margin-top:12px;font-size:12px;color:var(--muted,#756f7f)}
#tab-competition .concl-method summary{cursor:pointer}
#tab-competition .concl-method .concl-note{margin-top:8px}
.cmp-focus-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line,#e7e3ec);border-radius:999px;background:#fff;font-size:12.5px;cursor:pointer;user-select:none}
.cmp-focus-chip:hover{border-color:var(--brand-200,#d8c2ea)}
.cmp-focus-chip.active{border-color:var(--brand-200,#d8c2ea);background:var(--brand-wash,#f7effb);color:var(--brand-deep,#5c1878)}
.cmp-focus-chip input{margin:0;accent-color:var(--brand,#7b2d8f)}
.cmp-focus-chip .nm{font-weight:600}
.cmp-focus-chip .n{font-size:11px;color:var(--muted,#756f7f)}
.cmp-focus-bulk{appearance:none;border:1px dashed var(--line,#e7e3ec);background:#fff;border-radius:999px;padding:6px 10px;font-size:12px;color:var(--muted,#756f7f);cursor:pointer}
.cmp-focus-bulk:hover{border-color:var(--brand-200,#d8c2ea);color:var(--brand-deep,#5c1878)}
.cmp-focus-me{display:flex;align-items:baseline;gap:8px;margin:0 0 10px;font-size:13px}
.cmp-focus-me-lb{font-weight:700}
.cmp-focus-me-v{font-size:20px;font-weight:800;color:var(--brand-deep,#5c1878)}
.cmp-focus-me-n{color:var(--muted,#756f7f);font-size:12px}
.cmp-focus-table{width:100%;border-collapse:collapse;font-size:13px;margin:0 0 14px}
.cmp-focus-table th,.cmp-focus-table td{padding:8px 10px;border-bottom:1px solid var(--line,#efecf3);text-align:left;vertical-align:top}
.cmp-focus-table th{font-size:11.5px;color:var(--muted,#756f7f);font-weight:700}
.cmp-focus-table tr.is-single td{background:#fbf8fd}
.cmp-focus-evidence{margin:-4px 0 14px;font-size:12px;color:var(--muted,#756f7f)}
.cmp-focus-evidence summary{cursor:pointer}
.cmp-focus-evidence p{margin:6px 0;line-height:1.5}
.cmp-focus-themes{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:0 0 12px}
.cmp-focus-themes-lb{font-size:12px;color:var(--muted,#756f7f);font-weight:700}
.cmp-focus-theme{appearance:none;border:1px solid var(--line,#e7e3ec);background:#fff;border-radius:9px;padding:6px 10px;font-size:12.5px;cursor:pointer;color:var(--fg2,#3d3a44)}
.cmp-focus-theme:hover{border-color:var(--brand-200,#d8c2ea)}
.cmp-focus-theme.active{background:var(--brand-wash,#f7effb);border-color:var(--brand-200,#d8c2ea);color:var(--brand-deep,#5c1878);font-weight:700}
.cmp-focus-theme .n{margin-left:6px;font-size:11px;color:var(--muted,#756f7f);font-weight:400}
.cmp-focus-theme-body{margin:0 0 14px;padding:12px 14px;border:1px solid var(--line,#efecf3);border-radius:12px;background:var(--brand-wash,#f8f1fc)}
.cmp-focus-h4{margin:0 0 8px;font-size:13.5px}
.cmp-focus-theme-row+.cmp-focus-theme-row{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line,#efecf3)}
.cmp-focus-theme-name{margin:0 0 6px;font-size:12.5px;color:var(--muted,#756f7f)}
.cmp-focus-single-kpis{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.cmp-focus-gap-list{margin:0;padding-left:18px;font-size:12.5px}
.cmp-focus-gap-list li{margin-bottom:8px}
.cmp-focus-gap-list p{margin:0 0 2px}
@media(max-width:720px){.cmp-focus-table{font-size:12px}.cmp-focus-table th,.cmp-focus-table td{padding:6px 6px}.cmp-focus-me-v{font-size:17px}}

/* 监测中心顶部入口横幅：先看竞争，再决定监测什么（原 monitor-hierarchy.css，按「不新建 CSS」约束并入） */
.monitor-compare-entry{margin:18px 0 24px;padding:22px;border:1px solid #dfd0eb;border-radius:20px;background:linear-gradient(135deg,#fbf7ff,#fff 68%);box-shadow:0 8px 28px rgba(73,34,94,.06);display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.monitor-compare-entry p{margin:0;color:#655a6c;line-height:1.5}
.monitor-compare-entry b{font-size:1.15rem;color:#4b2064}
.monitor-compare-entry .btn{flex:none;align-self:center}
@media(max-width:650px){.monitor-compare-entry{padding:16px;flex-direction:column}.monitor-compare-entry .btn{align-self:stretch}}
