/* ============ 设计令牌（深/浅主题） ============ */
:root{
  --bg:#F4F1E8; --surface:rgba(255,255,255,.62); --surface-2:rgba(255,255,255,.72);
  --surface-3:rgba(255,255,255,.92); --elevated:rgba(255,255,255,.94);
  --border:#E3DFD2; --border-soft:#EAE6DA; --border-strong:#D5CFBD;
  /* 对比度（V-04）：正文类一律 ≥4.5:1。--muted 7.4:1（正文/表头），--faint 4.76:1（注脚/说明），
     --ghost 2.56:1 仅允许用于 ≥24px 大字或纯装饰图标，禁止作正文色 */
  --text:#1F1F1F; --muted:#4B4F55; --faint:#6B675C; --ghost:#94907F;
  --text-secondary:#4B4F55; --text-muted:#6B675C;
  --primary:#1A73E8; --primary-strong:#1660C9; --primary-weak:rgba(26,115,232,.10);
  --brand:#0D9488; --brand-soft:#1A73E8;
  --positive:#059669; --positive-weak:rgba(5,150,105,.10);
  --warning:#D97706; --warning-weak:rgba(217,119,6,.10);
  --danger:#E11D48;  --danger-weak:rgba(225,29,72,.10);
  --accent-soft:#0D9488; --accent-weak:rgba(13,148,136,.10);
  --kpi-sov:#1A73E8; --kpi-top1:#059669; --kpi-align:#D97706; --kpi-halluc:#E11D48;
  --shadow:0 1px 3px rgba(58,52,36,.07);
  --shadow-lg:0 20px 50px -22px rgba(58,52,36,.30);
  /* 圆角/阴影 token（V-08）：内容区只允许 --r-sm / --r-md 两档，胶囊统一 --r-full；
     阴影三档 + focus 光晕。组件一律引用变量，禁止再写死 border-radius/shadow 像素值 */
  --r-xs:8px; --r-sm:12px; --r-md:20px; --r-lg:26px; --r-full:999px;
  --sh-0:none; --sh-1:0 1px 2px rgba(58,52,36,.07);
  --sh-2:0 4px 16px rgba(58,52,36,.10); --sh-3:0 16px 48px rgba(58,52,36,.18);
  --sh-focus:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent);
  /* 字号 8 档 token（V-07）：硬下限 12px，正文 13.5px，禁止再写死 font-size 像素值。
     12=cap(注脚/表头说明) / 12.5=sm(次要正文) / 13.5=body(正文主力) / 16=h3(小标题)
     / 20=h2(区块标题) / 34=metric(仪表盘数字) / 44=display(KPI 大数字) / 28=h1(预留) */
  --fs-cap:12px; --fs-sm:12.5px; --fs-body:13.5px; --fs-h3:16px;
  --fs-h2:20px; --fs-h1:28px; --fs-metric:34px; --fs-display:44px;
  --up-bg:#D1FAE5; --up-fg:#047857;
  --down-bg:#FFE4E6; --down-fg:#BE123C;
  --na-bg:rgba(107,103,92,.12); --na-fg:#6B675C;
  --hover:rgba(31,31,31,.05);
  --input-bg:rgba(255,255,255,.78); --glass:rgba(244,241,232,.74);
  --grid:rgba(58,52,36,.09);
  /* 语义状态色（前景/底色分角色）—— L6 报告等彩色组件只允许引用这组变量，
     严禁把深色主题专用的浅色值（#6ee7b7 等）写进全局作用域（V-01 事故根因） */
  --ok-fg:#047857; --ok-bg:rgba(5,150,105,.10);
  --warn-fg:#B45309; --warn-bg:rgba(217,119,6,.10);
  --bad-fg:#BE123C;  --bad-bg:rgba(225,29,72,.10);
}
/* ============ 深色主题：Linear / Vercel 风格深冷中性色板 ============
   设计原则：
   1. 背景分层而非死黑 —— 用微抬升明度区分 body/surface/card/elevated 四级
   2. 文字去纯白 —— 主文字用 Slate-100 柔白，正文 Slate-400，注脚 Slate-500
   3. 彩色点缀一律降饱和 —— 莫兰迪微粉调，严禁荧光霓虹感
   4. 边框极致轻薄 —— rgba 白 7%，告别高亮发光边框 */
[data-theme="dark"]{
  /* 背景层级体系（body → surface → card → elevated 逐级微抬升） */
  --bg:#0b0f19;            /* 全局大背景：温润石墨深蓝黑，告别死黑 */
  --surface:rgba(14,19,32,.66);   /* 侧边栏 / 顶栏 / 卡片基础底（半透明，色块透出） */
  --surface-2:rgba(19,26,42,.62); /* 卡片与面板底色（玻璃化） */
  --surface-3:rgba(24,30,50,.86); /* 浮层 / 弹窗 / 抬升面板 */
  --elevated:#182236;
  /* 边框：极致轻薄，仅 7% 白，杜绝发光边 */
  --border:rgba(255,255,255,.07);
  --border-soft:rgba(255,255,255,.05);
  --border-strong:rgba(255,255,255,.12);
  /* 文字阶梯：告别刺眼纯白 */
  --text:#f1f5f9;          /* 主文字 / 核心大字：Slate-100 柔白，无眩光 */
  --muted:#94a3b8;         /* 次级正文 / 图表标签：Slate-400 */
  --faint:#64748b;         /* 辅助 / 注脚 / 时间戳：Slate-500 低干扰 */
  --ghost:#475569;         /* 仅装饰/≥24px 大字：深底上极低对比，禁作正文 */
  --text-secondary:#94a3b8;
  --text-muted:#64748b;
  /* 品牌主色：沉稳科技蓝（告别高饱和紫蓝） */
  --primary:#3b82f6; --primary-strong:#60a5fa; --primary-weak:rgba(59,130,246,.12);
  --brand:#3b82f6; --brand-soft:#818cf8;
  /* 语义色：降饱和莫兰迪调 */
  --positive:#34d399; --positive-weak:rgba(52,211,153,.10);
  --warning:#fbbf24; --warning-weak:rgba(251,191,36,.10);
  --danger:#f87171;  --danger-weak:rgba(248,113,113,.10);
  --accent-soft:#818cf8; --accent-weak:rgba(129,140,248,.10);
  /* 阴影：更柔和深邃，几乎无感 */
  --shadow:0 1px 3px rgba(0,0,0,.28);
  --shadow-lg:0 16px 48px rgba(0,0,0,.45);
  /* 涨跌 / 中性胶囊 */
  --up-bg:rgba(52,211,153,.12); --up-fg:#6ee7b7;
  --down-bg:rgba(248,113,113,.12); --down-fg:#fca5a5;
  --na-bg:rgba(148,163,184,.10); --na-fg:#94a3b8;
  --hover:rgba(255,255,255,.04);
  --input-bg:rgba(255,255,255,.03);
  --glass:rgba(11,15,25,.82);
  --grid:rgba(255,255,255,.05);
  /* 低饱和大数字色（KPI 专用，替代原高饱和纯色） */
  --kpi-sov:#93c5fd;      /* 淡紫天蓝 */
  --kpi-top1:#6ee7b7;     /* 清爽浅绿 */
  --kpi-align:#fcd34d;    /* 浅琥珀 */
  --kpi-halluc:#fca5a5;   /* 浅粉红 */
  /* 语义状态色（前景/底色分角色）—— 深色主题用低饱和浅色前景 */
  --ok-fg:#6EE7B7; --ok-bg:rgba(52,211,153,.12);
  --warn-fg:#FCD34D; --warn-bg:rgba(251,191,36,.12);
  --bad-fg:#FCA5A5;  --bad-bg:rgba(248,113,113,.12);
}
/* —— 深色模式残余硬编码色修正：亮色专用的深色调（对比度不足）统一提亮为低饱和色 —— */
[data-theme="dark"] select.inp option{background:#1a2338;color:#f1f5f9}
[data-theme="dark"] .tier-badge.t-adv{background:rgba(52,211,153,.12);color:#6ee7b7;border-color:rgba(52,211,153,.35)}
[data-theme="dark"] .tier-badge.t-stable{background:rgba(129,140,248,.12);color:#a5b4fc;border-color:rgba(129,140,248,.35)}
[data-theme="dark"] .tier-badge.t-partial{background:rgba(251,191,36,.12);color:#fcd34d;border-color:rgba(251,191,36,.35)}
[data-theme="dark"] .tier-badge.t-breakout{background:rgba(248,113,113,.10);color:#fca5a5;border-color:rgba(248,113,113,.35)}
[data-theme="dark"] .tier-gap b{color:#fcd34d}
[data-theme="dark"] .tier-gap.ok b,[data-theme="dark"] .tier-gap.ok{color:#6ee7b7}
[data-theme="dark"] .rw-warn{background:rgba(251,191,36,.07);color:#fcd34d;border-color:rgba(251,191,36,.28)}
[data-theme="dark"] .oc-status.st-active{background:rgba(52,211,153,.12);color:#6ee7b7}
[data-theme="dark"] .l5-alert.green{background:rgba(52,211,153,.08);color:#6ee7b7}
[data-theme="dark"] .l5-alert.red{background:rgba(248,113,113,.08);color:#fca5a5}
[data-theme="dark"] .l5-metric-flag.red{background:rgba(248,113,113,.10);color:#fca5a5}
[data-theme="dark"] .official-diag svg{color:#a5b4fc}
[data-theme="dark"] .plan-num{color:#fca5a5}
[data-theme="dark"] .oc-role.comp{background:rgba(248,113,113,.10);color:#fca5a5}
[data-theme="dark"] .print-head{border-bottom-color:var(--primary)}
[data-theme="dark"] .l5-term-bar{background:#182236;border-bottom-color:var(--border)}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",Roboto,sans-serif;
  /* 批次八十三：全局行高基线——此前 body 未设 line-height，未显式声明的文字
     落到浏览器默认 normal（Inter 度量约 1.2），中文方块字撑满 em 框即「顶天立地」。
     1.6 为中文 UI 舒适基线；大数字/单行徽章等已有各自显式行高，不受影响。 */
  line-height:1.6;
  -webkit-font-smoothing:antialiased; transition:background .25s, color .25s;
}
.mono{font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}
.ic{display:inline-flex;align-items:center;justify-content:center;flex:none;line-height:0}
.ic svg{display:block}


/* ============ 通肤首页（批次七十）：彩色色块底纹层 ============ */
.bglayer{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.blob{position:absolute;will-change:transform;opacity:.62;filter:blur(1px)}
.b-hex{clip-path:polygon(25% 5%,75% 5%,100% 50%,75% 95%,25% 95%,0 50%)}
.b-round{border-radius:28%}
.b-circle{border-radius:50%}
.b-flower{border-radius:50% 50% 50% 50%/50% 50% 50% 50%}
.b1{width:300px;height:290px;background:#3FE07F;top:6%;left:-100px;animation:drift1 26s ease-in-out infinite}
.b2{width:320px;height:320px;background:#F7C948;top:-4%;right:2%;animation:drift2 32s ease-in-out infinite}
.b3{width:240px;height:240px;background:#F2A9E4;top:46%;right:-90px;animation:drift3 28s ease-in-out infinite}
.b4{width:230px;height:210px;background:#FB8B4C;bottom:4%;left:-80px;animation:drift2 34s ease-in-out infinite reverse}
.b5{width:260px;height:260px;background:#6384F0;bottom:-6%;right:12%;animation:drift1 30s ease-in-out infinite reverse}
.b6{width:180px;height:180px;background:#3FE07F;top:30%;left:46%;opacity:.26;animation:drift3 38s ease-in-out infinite}
@keyframes drift1{0%,100%{transform:translate(0,0) rotate(0deg)}33%{transform:translate(40px,-30px) rotate(8deg)}66%{transform:translate(-25px,35px) rotate(-6deg)}}
@keyframes drift2{0%,100%{transform:translate(0,0) rotate(0deg)}40%{transform:translate(-45px,25px) rotate(-10deg)}75%{transform:translate(30px,-30px) rotate(6deg)}}
@keyframes drift3{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(25px,30px) scale(1.08)}}
@media (prefers-reduced-motion:reduce){.blob{animation:none}}
[data-theme="dark"] .bglayer{opacity:.28}
/* 批次七十一：作战室（workspace）系列界面不留彩色几何色块——品牌矩阵首页保留 */
body:has(.layout.v-workspace) .bglayer{display:none}
/* 内容层抬到色块之上 */
.sidebar,.shell{z-index:1}

/* ============ 布局：左侧固定导航 + 顶部控制台 ============ */
.sidebar{
  position:fixed; left:0; top:0; bottom:0; width:240px; z-index:40;
  background:var(--surface); border-right:1px solid var(--border); backdrop-filter:blur(18px) saturate(1.5); -webkit-backdrop-filter:blur(18px) saturate(1.5);
  display:flex; flex-direction:column; transition:background .25s,border-color .25s;
}
.brand{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--border-soft)}
.brand-logo{display:block;height:30px;width:auto;flex:none;object-fit:contain}
.logo-dark{display:none}
[data-theme=dark] .logo-light{display:none}
[data-theme=dark] .logo-dark{display:block}
.pro{margin-left:auto;font-size:var(--fs-cap);font-weight:800;letter-spacing:.1em;color:var(--primary);
  background:var(--primary-weak);border:1px solid color-mix(in srgb,var(--primary) 30%,transparent);padding:2px 6px;border-radius:var(--r-xs)}
.nav{padding:12px 10px;display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto}
.nav-cap{font-size:var(--fs-cap);font-weight:700;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;padding:10px 10px 6px}
.nav-item{
  position:relative;display:flex;align-items:center;gap:11px;width:100%;text-align:left;
  padding:10px 12px;border-radius:var(--r-sm);border:1px solid transparent;background:transparent;
  color:var(--muted);cursor:pointer;transition:.16s;font-family:inherit;
}
.nav-item:hover{background:var(--hover);color:var(--text)}
.nav-item.on{background:var(--primary-weak);color:var(--text)}
.nav-item.on .ic{color:var(--primary)}
.nv{display:flex;flex-direction:column;gap:1px;min-width:0}
.nv b{font-size:var(--fs-body);font-weight:650;letter-spacing:.01em}
.nv span{font-size:var(--fs-cap);color:var(--faint);letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ind{position:absolute;right:-10px;top:50%;transform:translateY(-50%);width:3px;height:20px;border-radius:var(--r-xs);background:transparent;transition:.16s}
.nav-item.on .ind{background:var(--primary)}
/* 演示模式徽标（批次六十） */
.demo-flag{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-cap);font-weight:800;
  color:var(--teal,#0D9488);background:color-mix(in srgb,var(--teal,#0D9488) 10%,transparent);
  border:1px solid color-mix(in srgb,var(--teal,#0D9488) 30%,transparent);border-radius:var(--r-full);padding:6px 14px}
.side-foot{padding:12px 10px 14px;border-top:1px solid var(--border-soft);display:flex;flex-direction:column;gap:8px}
.sys{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:var(--fs-cap);color:var(--muted)}
.dot{width:7px;height:7px;border-radius:var(--r-full);background:#10B981;box-shadow:0 0 0 0 rgba(16,185,129,.5);animation:breathe 2.2s infinite}
.dot.off{background:#F59E0B;animation:none}
@keyframes breathe{0%{box-shadow:0 0 0 0 rgba(16,185,129,.45)}70%{box-shadow:0 0 0 7px rgba(16,185,129,0)}100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}}

.shell{margin-left:240px;min-height:100vh;display:flex;flex-direction:column;position:relative;z-index:1}
/* V-19：超宽屏内容封顶 —— 防止 2K+ 屏上行距过长影响扫读 */
@media (min-width:1921px){ .shell{max-width:1920px} }
.topbar{
  position:sticky;top:0;z-index:30;min-height:64px;display:flex;align-items:center;gap:14px;row-gap:8px;
  padding:10px 24px;flex-wrap:wrap;background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border);
}
.crumbs{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
.crumb{
  display:flex;align-items:center;gap:7px;height:38px;padding:0 10px;border:1px solid var(--border);
  border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow);transition:.16s;
}
.crumb:hover{border-color:color-mix(in srgb,var(--primary) 35%,var(--border))}
.crumb .ci{color:var(--primary)}
.ck{font-size:var(--fs-cap);color:var(--muted);white-space:nowrap;letter-spacing:.05em}
.sep{color:var(--faint);font-size:var(--fs-body)}
.sel{
  appearance:none;-webkit-appearance:none;background:transparent;border:none;outline:none;cursor:pointer;
  color:var(--text);font-weight:650;font-size:var(--fs-body);padding:2px 18px 2px 2px;max-width:190px;
  font-family:inherit;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 2px center;
}
.sel:disabled{opacity:.5;cursor:not-allowed}
.sel option{background:#fff;color:#0F172A}
[data-theme="dark"] .sel option{background:#1a2338;color:#f1f5f9}
.ibtn{
  display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--r-sm);
  border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;transition:.15s;
}
.ibtn:hover:not(:disabled){background:var(--hover);color:var(--text);border-color:var(--border)}
.ibtn:disabled{opacity:.35;cursor:not-allowed}
.ibtn.lg{width:38px;height:38px;border-radius:var(--r-sm);border-color:var(--border);background:var(--surface);box-shadow:var(--shadow)}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:10px}

/* ============ 按钮 ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 15px;
  border-radius:var(--r-sm);font-size:var(--fs-body);font-weight:650;font-family:inherit;cursor:pointer;
  border:1px solid transparent;transition:.16s;white-space:nowrap;
}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.sm{height:32px;padding:0 12px;font-size:var(--fs-sm);border-radius:var(--r-sm)}
.btn.primary{background:var(--primary);color:#fff;box-shadow:0 1px 2px rgba(15,23,42,.12)}
.btn.primary{position:relative;overflow:hidden}
.btn.primary:hover:not(:disabled){background:var(--primary-strong);transform:translateY(-1px);box-shadow:0 8px 20px -8px rgba(26,115,232,.55)}
.btn.primary:active:not(:disabled){transform:scale(.98)}
.btn.primary::before{content:'';position:absolute;top:0;left:-70%;width:40%;height:100%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);transition:left .5s;pointer-events:none}
.btn.primary:hover:not(:disabled)::before{left:130%}
.btn.ghost{background:var(--surface);border-color:var(--border);color:var(--muted);box-shadow:var(--shadow)}
.btn.ghost:hover:not(:disabled){color:var(--text);border-color:color-mix(in srgb,var(--primary) 30%,var(--border))}
.btn.danger{background:transparent;border-color:color-mix(in srgb,#F43F5E 40%,transparent);color:#E11D48}
[data-theme="dark"] .btn.danger{color:#FB7185}
/* V-22 三档按钮语义：primary=每屏至多 1 个主行动 / ghost=次要可多个 / tertiary=文字按钮（危险操作用 --bad-fg 且必须带二次确认） */
.btn.tertiary{background:transparent;border-color:transparent;color:var(--muted);box-shadow:none;padding:0 8px}
.btn.tertiary:hover:not(:disabled){color:var(--text);background:var(--hover)}
.btn.tertiary.danger{color:var(--bad-fg)}
.btn.tertiary.danger:hover:not(:disabled){background:var(--bad-bg);color:var(--bad-fg)}

/* ============ 空态三段式（V-13）：图标 → 为什么空 → 一个主行动，杜绝死胡同 ============ */
.empty-state{display:flex;flex-direction:column;align-items:center;gap:6px;padding:40px 24px;text-align:center}
.es-ico{width:46px;height:46px;border-radius:var(--r-md);display:grid;place-items:center;
        background:var(--primary-weak);color:var(--primary);margin-bottom:4px}
.es-title{font-size:var(--fs-h3);font-weight:650;color:var(--text);margin:0}
.es-desc{font-size:var(--fs-body);color:var(--muted);margin:0 0 12px;max-width:440px;line-height:1.65}
.es-acts{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:center}
.es-alt{font-size:var(--fs-sm);color:var(--primary);cursor:pointer;background:none;border:0;padding:0;font-family:inherit}
.es-alt:hover{text-decoration:underline}

/* ============ 卡片 / 表单 ============ */
.card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow);
  backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);
  transition:background .25s,border-color .25s,box-shadow .2s,transform .2s}
.inp{
  width:100%;height:40px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);
  padding:0 13px;color:var(--text);font-size:var(--fs-body);font-family:inherit;outline:none;min-width:0;
  transition:border-color .15s,box-shadow .15s;
}
.inp:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-weak)}
.inp:disabled{opacity:.5}
textarea.inp{line-height:1.7;resize:vertical}
select.inp{cursor:pointer}
select.inp option{background:#fff;color:#0F172A}
[data-theme="dark"] select.inp option{background:#1a2338;color:#f1f5f9}
.lbl{font-size:var(--fs-cap);font-weight:650;color:var(--muted);margin-bottom:6px;display:block;letter-spacing:.04em}
.sect-title{font-size:var(--fs-body);font-weight:750;color:var(--text);margin:0}
.sect-sub{font-size:var(--fs-cap);color:var(--muted);margin:3px 0 0;line-height:1.6}

/* ============ 徽章 / 胶囊 ============ */
.badge{
  --c:#64748B;
  display:inline-flex;align-items:center;gap:5px;padding:2.5px 9px;border-radius:var(--r-full);
  font-size:var(--fs-cap);font-weight:650;letter-spacing:.02em;white-space:nowrap;
  border:1px solid color-mix(in srgb,var(--c) 38%,transparent);
  background:color-mix(in srgb,var(--c) 9%,transparent); color:var(--c);
}
.badge::before{content:"";width:5px;height:5px;border-radius:var(--r-full);background:var(--c);flex:none}
/* 胶囊降噪（V-17）：只有「状态」（命中/漂移/失败/告警）允许整块上色；
   纯计数/维度/枚举类胶囊用 .dim —— 去掉染色底与描边，仅保留 5px 色点 + 灰字，
   让真正的红色告警在满屏胶囊中重新可辨 */
.badge.dim{
  border-color:transparent;background:var(--surface-3);color:var(--muted);
  font-weight:600;padding:2.5px 8px;
}
.pill{
  display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:var(--r-full);
  font-size:var(--fs-cap);font-weight:700;font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums;
}
.pill.up{background:var(--up-bg);color:var(--up-fg)}
.pill.down{background:var(--down-bg);color:var(--down-fg)}
.pill.flat,.pill.na{background:var(--na-bg);color:var(--na-fg)}

/* ============ 骨架屏（V-25）：数据未回前占位，避免整页闪白/闪空 ============ */
.sk{display:flex;flex-direction:column;gap:12px}
.sk-row{display:grid;gap:14px}
.sk-row.kpi{grid-template-columns:repeat(4,1fr)}
.sk-row.two{grid-template-columns:1.4fr 1fr}
.sk-card{padding:16px 18px}
.sk i{display:block;height:12px;border-radius:var(--r-full);
  background:linear-gradient(90deg,var(--surface-3) 25%,var(--hover) 37%,var(--surface-3) 63%);
  background-size:400% 100%;animation:sk 1.4s ease infinite}
.sk .t{height:14px;width:38%;margin-bottom:12px}
.sk .n{height:30px;width:52%;margin-bottom:8px}
.sk .l{width:80%} .sk .l2{width:64%} .sk .l3{width:72%}
.sk .chart{height:150px;margin-top:10px}
@keyframes sk{0%{background-position:100% 0}100%{background-position:0 0}}
@media (prefers-reduced-motion:reduce){.sk i{animation:none}}

/* ============ L1 ============ */
.toolbar{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;padding:14px 18px}
.toolbar .fld{min-width:250px}
.tb-note{margin-left:auto;padding-bottom:6px;font-size:var(--fs-cap);color:var(--faint)}
.insight{
  display:flex;gap:14px;align-items:flex-start;padding:16px 20px;margin-top:16px;
  background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--primary);
  border-radius:var(--r-md);box-shadow:var(--shadow);
}
.insight-ico{
  width:36px;height:36px;border-radius:var(--r-sm);display:grid;place-items:center;flex:none;
  background:var(--primary-weak);color:var(--primary);
}
.insight b.t{display:block;font-size:var(--fs-body);font-weight:750;color:var(--text);margin-bottom:3px}
.insight p{margin:0;font-size:var(--fs-body);line-height:1.75;color:var(--muted)}
.insight .hl-warn{color:#E11D48}
[data-theme="dark"] .insight .hl-warn{color:#FB7185}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:16px}
.kpi{padding:18px 20px 16px;position:relative}
.kpi-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.kpi-name{font-size:var(--fs-cap);font-weight:650;color:var(--muted);letter-spacing:.03em}
.kpi-ico{
  width:34px;height:34px;border-radius:var(--r-sm);display:grid;place-items:center;flex:none;
  background:color-mix(in srgb,var(--tc) 11%,transparent);color:var(--tc);
}
/* V-06：展示型数字用 Inter + tabular-nums（对齐但不"码味"）；此处显式覆盖模板上的 .mono，
   仅 URL/JSON/口径公式类保留 Mono（如域名卡在模板内联 style 指定 Mono） */
.kpi-val{font-size:var(--fs-display);font-weight:800;letter-spacing:-.03em;line-height:1.08;margin:12px 0 0;color:var(--text);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",Roboto,sans-serif;
  font-variant-numeric:tabular-nums}
.kpi-unit{font-size:var(--fs-h2);font-weight:700;margin-left:2px;color:var(--muted)}
.kpi-sub{font-size:var(--fs-cap);color:var(--muted);margin-top:6px;line-height:1.5}
.kpi-foot{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.kpi-note{font-size:var(--fs-cap);color:var(--faint);line-height:1.5}
.chart-card{padding:20px 22px;margin-top:16px}
.chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}
/* 大盘功能区保留内容安全间距；不改变商业报告的打印排版。 */
@media screen{
  .dashboard-section{padding:22px 24px;min-width:0;box-sizing:border-box}
  .dashboard-section>.chart-head{gap:12px 18px;margin-bottom:16px}
  .dashboard-section .chart-head>div{min-width:0;flex:1 1 260px}
  .dashboard-section .sect-sub{line-height:1.7;overflow-wrap:anywhere;margin-top:6px}
  .dashboard-section .race-bar-scale{line-height:1.7;overflow-wrap:anywhere;margin-top:12px}
  .dashboard-section .race-footer{gap:10px 24px!important;margin-top:14px!important;line-height:1.7}
  .dashboard-section .race-footer>span{min-width:0;overflow-wrap:anywhere}
  .dashboard-section .race-footer>span:last-child{flex:1 1 360px;text-align:right}
  .dashboard-section .opportunity-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:12px!important}
  .dashboard-section .opportunity-grid>[data-opportunity-layer]{min-width:0!important;padding:16px!important;box-sizing:border-box;overflow-wrap:anywhere}
  .dashboard-section .opportunity-footnote{margin-top:14px!important;line-height:1.7!important}
  .dashboard-section .qrow{flex-wrap:wrap;gap:8px 12px;padding:12px 14px}
  .dashboard-section .qrow .qtext{flex:1 1 260px;white-space:normal;overflow-wrap:anywhere;line-height:1.7}
  .dashboard-section .qrow .qhit,.dashboard-section .qrow .qmeta{max-width:100%;overflow-wrap:anywhere}
  .dashboard-section .qd-eh .badge{max-width:100%;white-space:normal;overflow-wrap:anywhere}
}
@media screen and (max-width:640px){
  .dashboard-section{padding:18px 16px}
  .dashboard-section .race-footer>span:last-child{text-align:left;margin-left:0!important}
}
/* 封闭池是固定数据对账，随 Vue 模板直接渲染，不依赖画布初始化。 */
.race-bars{list-style:none;margin:18px 0 8px;padding:0;display:grid;gap:12px}
.race-bar-row{display:grid;grid-template-columns:minmax(130px,260px) minmax(0,1fr) 64px;gap:14px;align-items:center;break-inside:avoid;page-break-inside:avoid}
.race-bar-name{min-width:0;font-size:var(--fs-sm);line-height:1.5;overflow-wrap:anywhere;color:var(--muted)}
.race-bar-row.is-self .race-bar-name,.race-bar-row.is-self .race-bar-value{color:var(--primary);font-weight:750}
.race-bar-track{position:relative;height:16px;border-radius:999px;background:var(--border-soft);overflow:hidden;min-width:0}
.race-bar-fill{display:block;height:100%;background:#64748b;border-radius:inherit;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.race-bar-row.is-self .race-bar-fill{background:var(--primary)}
.race-bar-median{position:absolute;top:0;bottom:0;border-left:2px dashed var(--text);opacity:.6}
.race-bar-value{text-align:right;font-size:var(--fs-sm);color:var(--text);white-space:nowrap}
.race-bar-scale{font-size:var(--fs-cap);color:var(--muted);text-align:right}
@media(max-width:640px){.race-bar-row{grid-template-columns:minmax(0,1fr) 56px;gap:6px 10px}.race-bar-name{grid-column:1/-1}.race-bars{gap:14px}}
/* 图形未就绪时保留真实数据；成功绘制后才隐藏可读数据层。 */
.chart-surface{position:relative;margin-top:14px;min-width:0}
.chart-surface>.chart-canvas{position:absolute;top:0;left:0;width:100%;visibility:hidden}
.chart-surface>.chart-canvas[data-rendered="true"]{position:relative;visibility:visible}
.chart-surface>.chart-canvas[data-rendered="true"]+.chart-readable{display:none}
.chart-readable{padding:16px 0;min-width:0;color:var(--text)}
.chart-state{padding:22px 16px;border:1px dashed var(--border-strong);border-radius:var(--r-sm);background:var(--surface-2);color:var(--muted);line-height:1.7;font-size:var(--fs-sm);overflow-wrap:anywhere}
.chart-state b{display:block;color:var(--text);margin-bottom:5px}
.chart-facts{display:grid;gap:10px;font-size:var(--fs-sm);line-height:1.6}
.chart-fact{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--border-soft);padding:8px 0;break-inside:avoid}
.chart-fact>span:first-child{overflow-wrap:anywhere;min-width:0;flex:1}
.chart-fact b{white-space:nowrap;font-variant-numeric:tabular-nums}
.chart-table-wrap{overflow-x:auto;margin-top:12px;max-width:100%}
.chart-state+.chart-table-wrap{margin-top:12px}
.grid-3{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-top:16px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}

/* ============ 表格 ============ */
.table-wrap{max-height:66vh;overflow:auto}
table.tb{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.tb .num{text-align:right;white-space:nowrap}
.trust-strip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;margin:0 0 12px;border-radius:10px;background:var(--surface-2);border:0.5px solid var(--border)}
.trust-chips{display:flex;gap:6px;flex-wrap:wrap;flex:1;min-width:0}
.trust-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:12px;font-size:11.5px;background:var(--surface-3);color:var(--muted);border:0.5px solid var(--border-soft);white-space:nowrap}
.al-cand{display:flex;flex-direction:column;gap:4px;padding:10px 12px;margin-top:8px;border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:0 8px 8px 0;background:var(--surface-2);font-size:12.5px}
.al-cand b{font-size:13px}
.al-cand .btn{align-self:flex-start}
.al-detail-row>td{background:var(--surface-2)}
.al-anchor-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:7px 4px;border-bottom:1px dashed var(--border-soft);font-size:12.5px}
.al-anchor-line:last-child{border-bottom:0}
.al-anchor-line .al-hist{flex-basis:100%;margin-top:4px;padding:6px 10px;background:var(--surface);border-radius:6px;font-size:11px;display:flex;flex-direction:column;gap:3px}
.al-hist>div{display:flex;gap:10px;flex-wrap:wrap}
/* 批次九十三：投放建议（词包行徽章/展开面板/体裁字典） */
.ma-chip{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-cap);padding:3px 9px;border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface-2);color:var(--primary);cursor:pointer;white-space:nowrap;flex:none}
.ma-chip i{font-style:normal;color:var(--muted);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ma-panel{flex-basis:100%;margin:6px 0 2px;padding:10px 14px;background:var(--surface-2);border-left:3px solid var(--primary);border-radius:0 8px 8px 0;display:flex;flex-direction:column;gap:6px}
.ma-row{display:flex;gap:10px;align-items:baseline;font-size:var(--fs-sm)}
.ma-row b{min-width:96px}
.ma-score{color:var(--primary);font-size:11px}
.ma-why{color:var(--muted);font-size:var(--fs-cap)}
.ma-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:var(--fs-cap);color:var(--muted)}
.ma-meta i{font-style:normal;font-weight:700;color:var(--text);margin-right:5px}
.ma-dim{color:var(--faint);font-size:var(--fs-cap)}
.ma-fmt{margin:12px 0;padding:14px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px}
.ma-fmt-form{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.ma-fmt-form .inp{flex:1;min-width:150px}
.ma-fmt-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:4px 14px;max-height:220px;overflow:auto}
.ma-fmt-row{display:flex;align-items:center;gap:8px;font-size:var(--fs-cap);padding:4px 0}
.ma-fmt-row.off b{color:var(--faint);text-decoration:line-through}
.ma-fmt-row .ma-dim{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trust-chip.ok{background:var(--positive-weak);color:var(--positive)}
.trust-chip.warn{background:var(--warning-weak);color:var(--warning)}
.trust-chip.suspect{background:rgba(226,75,74,.09);color:#A32D2D}
.trust-chip.clickable{cursor:pointer}
.trust-chip.clickable:hover{border-color:var(--border-strong)}
.trust-verify{font-size:11px;color:var(--faint);display:flex;align-items:center;gap:8px;white-space:nowrap}
.slice-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0 0;padding:8px 12px;border:0.5px dashed var(--border-strong);border-radius:10px;background:var(--surface-2)}
.slice-lbl{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:550;color:var(--muted)}
.slice-sel{min-width:96px;max-width:170px;height:auto;min-height:30px;font-size:12px;padding:3px 6px}
.slice-sel[multiple] option{padding:2px 4px}
.slice-note{margin-left:auto;font-size:11.5px;color:var(--warning,#B45309)}
.kpi-ident{font-size:10.5px;padding:2px 7px;border-radius:9px;white-space:nowrap;margin-left:auto;margin-top:1px}
.kpi-head .kpi-ico{margin-left:8px}
.kpi-ident.tier-certified{background:var(--positive-weak);color:var(--positive)}
.kpi-ident.tier-observed{background:var(--warning-weak);color:var(--warning)}
.kpi-ident.tier-pending{background:var(--surface-3);color:var(--faint)}
table.tb th{
  text-align:left;padding:11px 14px;color:var(--muted);font-weight:650;font-size:var(--fs-cap);
  letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--border);white-space:nowrap;
  /* V-23：粘性表头与卡片同底色 + 模糊 + inset 底线，深色下不再呈现孤立黑带 */
  background:var(--surface-2);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  box-shadow:inset 0 -1px 0 var(--border);
  position:sticky;top:0;z-index:2;
}
table.tb td{padding:11px 14px;border-bottom:1px solid var(--border-soft);vertical-align:middle}
table.tb tbody tr{cursor:pointer;transition:background .12s}
/* V-24：hover 用中性色（品牌色属于「选中」语义，悬停泛蓝会被误读为已选中） */
table.tb tbody tr:hover{background:var(--hover)}
table.tb tbody tr:last-child td{border-bottom:none}
.trunc{max-width:330px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* ============ L2 明细表：列宽可拖拽 + 按列排序（方案B：同题恒相邻） ============ */
table.tb-fix{table-layout:fixed}
table.tb-fix td{overflow:hidden}
table.tb-fix th{padding:11px 10px 11px 14px;overflow:hidden;cursor:pointer;user-select:none}
table.tb-fix th:hover{color:var(--text)}
.l2-th-in{display:inline-flex;align-items:center;gap:4px;max-width:calc(100% - 10px)}
.l2-sort{font-style:normal;font-size:var(--fs-cap);color:var(--accent,#6366F1)}
.l2-grip{position:absolute;top:0;right:0;width:9px;height:100%;cursor:col-resize;z-index:3}
.l2-grip::after{content:'';position:absolute;left:4px;top:22%;height:56%;width:1px;background:var(--border);opacity:0;transition:opacity .12s}
.l2-grip:hover::after,.l2-grip:active::after{opacity:1;background:var(--accent,#6366F1)}
.l2-grip:active::after{width:2px}
.filters{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;padding:14px 18px}
.filters .fld{min-width:170px}
.filters .fld.wide{min-width:250px}

/* ============ 抽屉 ============ */
.drawer{
  position:fixed;top:0;right:0;bottom:0;width:min(600px,94vw);z-index:60;overflow-y:auto;
  background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);
}
.drawer-head{position:sticky;top:0;background:var(--surface);border-bottom:1px solid var(--border);padding:18px 22px 14px;z-index:2}
.drawer-body{padding:18px 22px 40px;display:flex;flex-direction:column;gap:20px}
.mask{position:fixed;inset:0;background:rgba(2,6,16,.45);backdrop-filter:blur(3px);z-index:50}
.answer{font-size:var(--fs-body);line-height:1.9;color:var(--text);white-space:pre-wrap;word-break:break-word}
.hl-brand{background:rgba(16,185,129,.16);color:#047857;border-radius:var(--r-xs);padding:1px 4px;font-weight:600}
[data-theme="dark"] .hl-brand{color:#6EE7B7}
.hl-comp{background:rgba(245,158,11,.16);color:#B45309;border-radius:var(--r-xs);padding:1px 4px}
[data-theme="dark"] .hl-comp{color:#FCD34D}
.hl-bad{background:rgba(244,63,94,.14);color:#BE123C;text-decoration:underline wavy #F43F5E;text-underline-offset:3px;border-radius:var(--r-xs);padding:1px 4px}
[data-theme="dark"] .hl-bad{color:#FDA4AF}
.alert-box{border:1px solid color-mix(in srgb,#F43F5E 35%,transparent);background:color-mix(in srgb,#F43F5E 6%,transparent);border-radius:var(--r-sm);padding:12px 14px;font-size:var(--fs-sm);line-height:1.7;color:#BE123C}
[data-theme="dark"] .alert-box{color:#FDA4AF;border:1px solid var(--border);border-left:3px solid var(--danger);background:var(--surface-2)}
.src-link{
  display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--border);border-radius:var(--r-sm);
  font-size:var(--fs-cap);color:var(--primary);text-decoration:none;word-break:break-all;transition:.14s;background:var(--surface-2);
}
.src-link:hover{border-color:var(--primary);background:var(--primary-weak)}
.mono-pre{
  font-family:'JetBrains Mono',monospace;font-size:var(--fs-cap);line-height:1.65;color:var(--muted);
  background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:14px;
  max-height:220px;overflow:auto;white-space:pre-wrap;word-break:break-word;margin:0;
}

/* ============ 弹窗 ============ */
.modal{position:fixed;z-index:60;inset:0;display:flex;align-items:center;justify-content:center;padding:20px}
.modal .panel{
  background:var(--surface-3);backdrop-filter:blur(22px) saturate(1.5);-webkit-backdrop-filter:blur(22px) saturate(1.5);
  border:1px solid var(--border);border-radius:var(--r-lg);
  width:min(980px,96vw);max-height:92vh;overflow-y:auto;box-shadow:var(--shadow-lg);
}
.panel-head{display:flex;align-items:center;gap:12px;padding:20px 24px 0}
.panel-ico{width:38px;height:38px;border-radius:var(--r-sm);display:grid;place-items:center;background:var(--primary-weak);color:var(--primary);flex:none}
.panel-body{padding:18px 24px 22px}
.engine-card{padding:16px 18px}
.engine-head{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.engine-head b{font-size:var(--fs-body);font-weight:700;color:var(--text)}
.switch{width:38px;height:21px;border-radius:var(--r-full);background:var(--border);position:relative;cursor:pointer;transition:.2s;flex:none;border:1px solid transparent}
.switch.on{background:var(--primary)}
.switch i{position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:var(--r-full);background:#fff;transition:.2s;box-shadow:0 1px 2px rgba(0,0,0,.25)}
.switch.on i{left:20px}
/* 登录身份块与用户管理表（批次六十七） */
.me-chip{display:flex;align-items:center;gap:6px;padding:4px 6px 4px 12px;border-radius:var(--r-full);
  background:var(--hover);border:1px solid var(--border);font-size:var(--fs-cap)}
.me-chip b{font-weight:700;color:var(--text);max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.utab{width:100%;border-collapse:collapse;font-size:var(--fs-cap)}
.utab th{text-align:left;font-weight:650;color:var(--faint);padding:10px 14px;border-bottom:1px solid var(--border);white-space:nowrap}
.utab td{padding:10px 14px;border-bottom:1px solid var(--border-soft,var(--border));color:var(--text);vertical-align:middle}
.utab tr:last-child td{border-bottom:none}
.utab td .btn.sm{padding:5px 10px}
.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:3px;gap:2px}
.seg button{
  border:none;background:transparent;color:var(--muted);font-size:var(--fs-cap);font-weight:650;font-family:inherit;
  padding:5px 12px;border-radius:var(--r-xs);cursor:pointer;transition:.14s;
}
.seg button.on{background:var(--primary);color:#fff}

/* ============ 战术标签 / URL 穿透表 ============ */
.tag-t{--c:#64748B}
.tag-t.red{--c:#F43F5E}
.tag-t.amber{--c:#F59E0B}
.tag-t.green{--c:#10B981}
.url-cell{display:flex;align-items:center;gap:7px;min-width:0}
.url-cell a{color:var(--primary);text-decoration:none;font-size:var(--fs-cap);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:430px}
.url-cell a:hover{text-decoration:underline}
.url-cell .ic{color:var(--faint);flex:none}
@media print{.bglayer{display:none!important}.url-cell a{color:#0F172A;max-width:none;white-space:normal;word-break:break-all}}

/* ============ 确认弹窗（危险操作二次确认） ============ */
.cf-ico{width:42px;height:42px;border-radius:var(--r-md);display:grid;place-items:center;background:color-mix(in srgb,#F43F5E 12%,transparent);color:#E11D48;flex:none}
.cf-ico.cf-ico-soft{background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary)}
[data-theme="dark"] .cf-ico{color:#FB7185}
.cf-body{font-size:var(--fs-body);line-height:1.75;color:var(--muted);margin:10px 0 0}
.cf-warn{margin-top:12px;padding:10px 12px;border-radius:var(--r-sm);font-size:var(--fs-cap);line-height:1.7;
  border:1px solid color-mix(in srgb,#F43F5E 32%,transparent);background:color-mix(in srgb,#F43F5E 6%,transparent);color:#BE123C}
[data-theme="dark"] .cf-warn{color:#FDA4AF}

/* ============ Home 品牌矩阵首页 ============ */
.layout.v-home .sidebar{display:none}
.layout.v-home .shell{margin-left:0}
.home-top{gap:16px}
.hm-brand{display:flex;align-items:center;gap:13px;min-width:0}
.hm-logo{height:34px;width:auto;object-fit:contain;flex:none}
.hm-title{display:flex;flex-direction:column;gap:2px;min-width:0}
.hm-title b{font-size:var(--fs-h3);font-weight:800;letter-spacing:.02em;color:var(--text);white-space:nowrap}
.hm-title span{font-size:var(--fs-cap);color:var(--faint);letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}
.hm-search{
  display:flex;align-items:center;gap:8px;height:38px;min-width:230px;padding:0 12px;
  border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);
  color:var(--faint);box-shadow:var(--shadow);transition:.16s;
}
.hm-search:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-weak)}
.hm-search input{flex:1;min-width:0;border:none;background:transparent;outline:none;color:var(--text);font-size:var(--fs-body);font-family:inherit}
.hm-search input::placeholder{color:var(--faint)}
.ws-back{flex:none;border-color:color-mix(in srgb,var(--primary) 30%,var(--border));color:var(--primary)}
.hm-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}

/* ============ 三条客户任务入口：任务优先，模块收进工作区 ============ */
.task-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}
.task-intro h2{margin:0;font-size:var(--fs-h2);font-weight:820;color:var(--text);letter-spacing:.01em}
.task-intro p{margin:5px 0 0;color:var(--muted);font-size:var(--fs-body);line-height:1.65}
.task-intro .task-note{font-size:var(--fs-cap);color:var(--faint);white-space:nowrap}
.task-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:30px}
.task-card{position:relative;display:flex;flex-direction:column;gap:13px;min-width:0;padding:18px 18px 16px;
  border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow);
  overflow:hidden;transition:border-color .16s,box-shadow .16s,transform .16s}
.task-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:color-mix(in srgb,var(--task-c) 45%,var(--border))}
.task-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--task-c)}
.task-card.baseline{--task-c:#0EA5E9}.task-card.proposal{--task-c:#10B981}.task-card.optimize{--task-c:#8B5CF6}
.task-top{display:flex;align-items:flex-start;gap:11px;min-width:0}
.task-ico{width:34px;height:34px;display:grid;place-items:center;flex:none;border-radius:var(--r-sm);
  color:var(--task-c);background:color-mix(in srgb,var(--task-c) 12%,transparent)}
.task-title{min-width:0}.task-title b{display:block;color:var(--text);font-size:var(--fs-body);font-weight:780}
.task-title span{display:block;margin-top:2px;color:var(--faint);font-size:var(--fs-cap);letter-spacing:.04em}
.task-card p{margin:0;color:var(--muted);font-size:var(--fs-cap);line-height:1.7;min-height:48px}
.task-flow{display:flex;align-items:center;gap:5px;flex-wrap:wrap;color:var(--faint);font-size:var(--fs-cap)}
.task-flow b{color:var(--text);font-weight:650}.task-flow .ic{color:var(--task-c)}
.task-card .btn{align-self:flex-start;border-color:color-mix(in srgb,var(--task-c) 35%,var(--border));color:var(--task-c)}
.task-card .btn:hover{background:color-mix(in srgb,var(--task-c) 10%,transparent)}
.ops-overview{display:flex;flex-direction:column;gap:14px;margin-bottom:22px}
.ops-overview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ops-overview-title{min-width:0}
.ops-overview-title h2{margin:0;color:var(--text);font-size:var(--fs-h2);font-weight:780}
.ops-overview-title p{margin:5px 0 0;color:var(--muted);font-size:var(--fs-cap);line-height:1.6}
.ops-status{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--r-sm);font-size:var(--fs-cap);font-weight:700;color:var(--muted);background:var(--surface-2)}
.ops-status.ok{color:var(--ok-fg,#047857);border-color:color-mix(in srgb,#10B981 34%,var(--border))}
.ops-status.warn{color:var(--warn-fg,#B45309);border-color:color-mix(in srgb,#F59E0B 38%,var(--border))}
.ops-status.bad{color:var(--bad-fg,#BE123C);border-color:color-mix(in srgb,#F43F5E 38%,var(--border))}
.ops-overview-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1.35fr);gap:14px;align-items:stretch}
.ops-panel{min-width:0;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);padding:15px 16px}
.ops-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}
.ops-panel-head b{font-size:var(--fs-sm);font-weight:750;color:var(--text)}
.ops-panel-head span{font-size:var(--fs-cap);color:var(--faint)}
.ops-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.ops-fact{min-width:0;padding:10px 11px;border:1px solid var(--border-soft);border-radius:var(--r-xs);background:var(--surface-2)}
.ops-fact span{display:block;color:var(--faint);font-size:var(--fs-cap)}
.ops-fact b{display:block;margin-top:4px;color:var(--text);font-size:var(--fs-h3);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.ops-blockers{display:flex;flex-direction:column;gap:7px;margin-top:11px}
.ops-blocker{display:flex;align-items:flex-start;gap:7px;color:var(--muted);font-size:var(--fs-cap);line-height:1.55}
.ops-blocker .ic{flex:none;margin-top:1px;color:var(--warn,#D97706)}
.ops-blocker.bad .ic{color:var(--danger,#E11D48)}
.ops-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.ops-evidence-list{display:flex;flex-direction:column}
.ops-evidence{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;padding:10px 2px;text-align:left;color:inherit;background:none;border:0;border-top:1px solid var(--border-soft);cursor:pointer}
.ops-evidence:first-child{border-top:0;padding-top:2px}
.ops-evidence:hover .ops-evidence-question{color:var(--primary)}
.ops-evidence-main{min-width:0}
.ops-evidence-question{display:block;color:var(--text);font-size:var(--fs-cap);font-weight:650;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ops-evidence-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px;color:var(--faint);font-size:11px}
.ops-evidence-state{white-space:nowrap;font-size:var(--fs-cap);font-weight:700}
.ops-evidence-state.hit{color:var(--ok-fg,#047857)}
.ops-evidence-state.miss{color:var(--faint)}
.ops-evidence-empty{padding:13px 0;color:var(--faint);font-size:var(--fs-cap);line-height:1.6}
.ops-detail-label{margin:26px 0 -5px;color:var(--text);font-size:var(--fs-h3);font-weight:750}
.sandbox-shell{display:flex;flex-direction:column;gap:15px}
.sandbox-hero{display:flex;align-items:flex-start;gap:13px;padding:18px 20px;background:var(--surface);border:1px solid var(--border);border-left:3px solid #8B5CF6;border-radius:var(--r-md);box-shadow:var(--shadow)}
.sandbox-hero .ic{color:#8B5CF6;flex:none;margin-top:2px}
.sandbox-hero h2{margin:0;color:var(--text);font-size:var(--fs-h2);font-weight:800}
.sandbox-hero p{margin:4px 0 0;color:var(--muted);font-size:var(--fs-cap);line-height:1.7}
.sandbox-grid{display:grid;grid-template-columns:minmax(260px,.78fr) minmax(0,1.55fr);gap:15px;align-items:start}
.sandbox-panel{min-width:0;padding:17px 18px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow)}
.sandbox-panel h3{margin:0;color:var(--text);font-size:var(--fs-body);font-weight:750}
.sandbox-panel .sub{margin:4px 0 13px;color:var(--faint);font-size:var(--fs-cap);line-height:1.6}
.sandbox-engines{display:flex;flex-direction:column;gap:7px}
.sandbox-engine{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;background:var(--surface-2)}
.sandbox-engine.on{border-color:#8B5CF6;background:color-mix(in srgb,#8B5CF6 8%,var(--surface));}
.sandbox-engine input{accent-color:#8B5CF6;flex:none}
.sandbox-engine b{color:var(--text);font-size:var(--fs-cap);font-weight:700}
.sandbox-engine span{margin-left:auto;color:var(--faint);font-size:11px}
.sandbox-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:13px}
.sandbox-history{display:flex;flex-direction:column;gap:7px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border-soft)}
.sandbox-history button{display:flex;align-items:center;gap:8px;text-align:left;padding:8px 9px;border:1px solid var(--border-soft);border-radius:var(--r-sm);background:var(--surface-2);color:var(--muted);cursor:pointer}
.sandbox-history button.on,.sandbox-history button:hover{border-color:#8B5CF6;color:var(--text)}
.sandbox-history button b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:var(--fs-cap)}
.sandbox-history button span{font-size:11px;color:var(--faint);white-space:nowrap}
.sandbox-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.sandbox-result{min-width:0;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);overflow:hidden}
.sandbox-result-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border-soft);background:var(--surface)}
.sandbox-result-head b{font-size:var(--fs-cap);color:var(--text)}
.sandbox-result-head span{margin-left:auto;font-size:11px;color:var(--faint)}
.sandbox-result-body{padding:12px;font-size:var(--fs-cap);line-height:1.75;color:var(--muted);max-height:310px;overflow:auto;white-space:pre-wrap;word-break:break-word}
.sandbox-result-body.empty{color:var(--faint);font-style:italic}
.sandbox-citations{display:flex;flex-direction:column;gap:5px;padding:0 12px 12px}
.sandbox-citations a{font-size:11px;color:var(--primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}
.sandbox-citations a:hover{text-decoration:underline}
.sandbox-error{padding:12px;color:var(--bad-fg,#BE123C);font-size:var(--fs-cap);line-height:1.6}
.sandbox-impact{display:flex;align-items:flex-start;gap:7px;margin-top:12px;padding:9px 11px;border:1px solid color-mix(in srgb,#10B981 30%,var(--border));border-radius:var(--r-sm);background:color-mix(in srgb,#10B981 6%,var(--surface));color:var(--muted);font-size:var(--fs-cap);line-height:1.6}
.sandbox-impact .ic{color:#059669;flex:none;margin-top:2px}
.sandbox-promotion{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;padding:11px 12px;border:1px solid color-mix(in srgb,#0EA5E9 28%,var(--border));border-radius:var(--r-sm);background:color-mix(in srgb,#0EA5E9 5%,var(--surface-2))}
.sandbox-promotion b{display:block;color:var(--text);font-size:var(--fs-cap)}
.sandbox-promotion p{margin:3px 0 0;color:var(--faint);font-size:11px;line-height:1.55}
.ops-work{display:flex;flex-direction:column;gap:15px}
.ops-work-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}
.ops-work-head h2{margin:0;font-size:var(--fs-h2);color:var(--text)}
.ops-work-head p{margin:5px 0 0;color:var(--muted);font-size:var(--fs-cap);line-height:1.65}
.ops-work-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.ops-work-stat{padding:11px 13px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface)}
.ops-work-stat span{display:block;color:var(--faint);font-size:var(--fs-cap)}
.ops-work-stat b{display:block;margin-top:4px;color:var(--text);font-size:var(--fs-h3);font-variant-numeric:tabular-nums}
.ops-action-list{display:flex;flex-direction:column;gap:9px}
.ops-action{padding:14px 15px;border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--r-sm);background:var(--surface)}
.ops-action-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.ops-action-main{min-width:0}.ops-action-main h3{margin:0;color:var(--text);font-size:var(--fs-body);line-height:1.5}
.ops-action-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px;color:var(--faint);font-size:11px}
.ops-action-evidence{margin-top:10px;padding:9px 11px;border:1px solid var(--border-soft);border-radius:var(--r-xs);background:var(--surface-2);color:var(--muted);font-size:var(--fs-cap);line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}
.ops-tech-fold{margin-top:4px}
.ops-tech-fold summary{cursor:pointer;color:var(--faint);font-size:11px;white-space:normal}
.ops-tech-fold[open] summary{margin-bottom:3px}
.ops-tech-fold{white-space:normal}
/* 批次九十五：作战卡「现状→怎么做」直给版式 */
.ops-now{margin-top:9px;padding:9px 12px;border-left:3px solid #D85A30;background:var(--surface-2);border-radius:0 var(--r-xs) var(--r-xs) 0;font-size:var(--fs-cap);line-height:1.75;color:var(--text)}
.ops-now b{color:#D85A30}
.ops-how{margin-top:6px;font-size:var(--fs-cap);line-height:1.7;color:var(--muted)}
.ops-how b{color:var(--text)}
.ops-ma{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:7px;font-size:var(--fs-cap)}
.ops-ma b{color:var(--primary)}
.ops-ma-tags{font-weight:650}
.ops-ma-persona{color:var(--muted)}
.ops-track{margin-top:8px}
.ops-track summary{cursor:pointer;font-size:11px;color:var(--faint)}
/* 批次九十七：题×平台直给方案 */
.pp-bar{display:flex;align-items:center;gap:12px;margin:4px 0 12px}
.pp-bar-note{font-size:var(--fs-cap);color:var(--muted);flex:1}
.pp-q{border:1px solid var(--border);border-radius:10px;background:var(--surface);margin-bottom:10px;overflow:hidden}
.pp-q-head{display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer}
.pp-q-head:hover{background:var(--surface-2)}
.pp-q-no{font-size:12px;font-weight:800;color:var(--primary);flex:none}
.pp-q-text{flex:1;min-width:0;font-size:13.5px;line-height:1.6}
.pp-q-body{border-top:1px solid var(--border-soft);padding:4px 16px 12px;background:var(--surface-2)}
.pp-tb{margin-top:8px}
.pp-tb td{font-size:12.5px;line-height:1.7;vertical-align:top}
.pp-tb .pp-zero{color:#be123c}
.pp-fmt{margin-top:8px;font-size:var(--fs-cap);color:var(--muted)}
.pp-fmt b{color:var(--text)}
.badge.pp-bad{--c:#be123c;color:#be123c;border-color:currentColor}
.badge.pp-ok{--c:#059669;color:#059669;border-color:currentColor}
.ops-action-controls{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:11px}
.ops-action-controls select{max-width:150px}
.ops-action-controls .ops-owner{width:150px}.ops-action-controls .ops-due{width:145px}
.rw-chip.disabled,.sandbox-engine.disabled{opacity:.52}
.ops-ledger{border-top:1px solid var(--border);padding-top:16px}
.ops-ledger-form{display:grid;grid-template-columns:minmax(160px,1.2fr) minmax(120px,.7fr) minmax(160px,1fr) auto;gap:8px;margin:10px 0}
.ops-ledger-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,.8fr) minmax(150px,.9fr) minmax(190px,1.1fr) auto;gap:8px;align-items:center;padding:9px 0;border-top:1px solid var(--border-soft);font-size:var(--fs-cap)}
@media(max-width:900px){.ops-work-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-ledger-form,.ops-ledger-row{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.ops-ledger-form,.ops-ledger-row{grid-template-columns:minmax(0,1fr)}}

.bm-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(318px,1fr));gap:18px;
}
.bm-card{
  position:relative;overflow:hidden;cursor:pointer;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);
  box-shadow:var(--shadow);transition:transform .18s, box-shadow .18s, border-color .18s;
}
.bm-card{backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4)}
.bm-card::before{content:'';position:absolute;top:-40%;left:-20%;width:60%;height:180%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);transform:rotate(8deg) translateX(-160%);transition:transform .9s cubic-bezier(.22,1,.36,1)}
.bm-card:hover::before{transform:rotate(8deg) translateX(320%)}
.bm-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:color-mix(in srgb,var(--primary) 32%,var(--border))}
.bm-stripe{height:5px;width:100%}
.bm-body{padding:18px 18px 16px;display:flex;flex-direction:column;gap:14px}
.bm-top{display:flex;align-items:center;gap:13px;min-width:0}
.bm-avatar{
  width:46px;height:46px;border-radius:var(--r-md);flex:none;overflow:hidden;box-sizing:border-box;
  padding:4px;                                     /* 内部留白：图形/文字与圆角边界保持安全距离 */
  display:grid;place-items:center;color:#fff;font-size:var(--fs-h2);font-weight:800;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
}
.bm-avatar img{
  width:100%;height:100%;object-fit:contain;       /* 完整展示不拉伸不裁剪 */
  display:block;border-radius:var(--r-sm);
}
.bm-id{display:flex;flex-direction:column;gap:4px;min-width:0}
.bm-id b{font-size:var(--fs-h3);font-weight:750;color:var(--text);letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bm-ind{
  align-self:flex-start;font-size:var(--fs-cap);font-weight:650;color:var(--muted);
  background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-full);padding:2px 9px;
}
.bm-sum{
  position:relative;font-size:var(--fs-sm);line-height:1.7;color:var(--muted);
  padding-left:0;margin-top:-4px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.bm-sum-tag{
  display:inline-block;vertical-align:1px;margin-right:6px;flex:none;
  font-size:var(--fs-cap);font-weight:800;letter-spacing:.08em;color:#fff;
  background:linear-gradient(120deg,#FF6A00,#FF3D00);border-radius:var(--r-xs);padding:1.5px 5px;
}
.bm-sum-ph{color:var(--faint);font-size:var(--fs-cap);-webkit-line-clamp:1;font-style:italic}
.bm-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.bm-stat{
  background:var(--surface-2);border:1px solid var(--border-soft);border-radius:var(--r-md);
  padding:9px 8px;text-align:center;display:flex;flex-direction:column;gap:3px;
}
.bm-stat em{font-style:normal;font-size:var(--fs-h3);font-weight:800;color:var(--text);line-height:1.1}
.bm-stat span{font-size:var(--fs-cap);color:var(--faint);letter-spacing:.03em}
.bm-sov{display:flex;flex-direction:column;gap:6px}
.bm-sov-bar{height:7px;border-radius:var(--r-full);background:var(--surface-2);border:1px solid var(--border-soft);overflow:hidden}
.bm-sov-bar i{display:block;height:100%;border-radius:var(--r-full);transition:width .5s ease}
.bm-sov-note{font-size:var(--fs-cap);color:var(--faint);letter-spacing:.02em}
.bm-lines{display:flex;flex-wrap:wrap;gap:6px}
.bm-line-tag{
  font-size:var(--fs-cap);font-weight:650;color:var(--primary);background:var(--primary-weak);
  border-radius:var(--r-xs);padding:3px 8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.bm-acts{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-top:4px;border-top:1px dashed var(--border-soft)}
.bm-enter{flex:1 1 100%}                       /* 主操作独占一行，次操作换行排布，避免溢出卡片 */
.bm-acts .btn.ghost{flex:none;padding:5px 8px;font-size:var(--fs-cap);gap:5px}

.bm-empty{
  border:1px dashed var(--border);border-radius:var(--r-lg);padding:70px 24px;text-align:center;
  background:var(--surface);color:var(--muted);
}
.bm-empty h3{font-size:var(--fs-h3);font-weight:750;color:var(--text);margin:20px 0 0}
.bm-empty p{font-size:var(--fs-body);line-height:1.75;margin:8px auto 20px;max-width:460px;color:var(--muted)}
.bm-empty-art{
  position:relative;width:132px;height:74px;margin:0 auto;
  display:grid;place-items:center;color:var(--primary);
}
.bm-e-card{
  position:absolute;left:50%;top:50%;width:74px;height:46px;border-radius:var(--r-sm);
  background:var(--primary-weak);border:1px solid color-mix(in srgb,var(--primary) 30%,transparent);
}
.bm-e-card.c1{transform:translate(-70%,-52%) rotate(-9deg);opacity:.55}
.bm-e-card.c2{transform:translate(-50%,-46%) rotate(5deg);opacity:.8}
.bm-e-card.c3{transform:translate(-32%,-56%) rotate(13deg);opacity:.45}
.bm-empty-art .ic{position:relative;z-index:2}

/* ============ 品牌弹窗：Logo / 主题色 ============ */
.bf-colors{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.bf-cdot{
  width:26px;height:26px;border-radius:var(--r-full);cursor:pointer;position:relative;
  border:2px solid transparent;box-shadow:0 0 0 1px var(--border);transition:.14s;
}
.bf-cdot.on{border-color:var(--surface);box-shadow:0 0 0 2px var(--primary);transform:scale(1.08)}
.bf-cpick{width:34px;height:28px;padding:0;border:1px solid var(--border);border-radius:var(--r-xs);background:var(--input-bg);cursor:pointer}
.bf-chex{font-size:var(--fs-cap);color:var(--muted);letter-spacing:.04em}
.bf-preview{
  width:40px;height:40px;border-radius:var(--r-md);display:grid;place-items:center;
  color:#fff;font-size:var(--fs-h3);font-weight:800;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
}

/* ============ Workspace：品牌专属色适配（--brand-c 由 brandTheme 计算属性注入） ============ */
/* 顶部关键高亮：主行动按钮「开始全网监测」 */
.v-workspace .topbar .btn.primary{
  background:var(--brand-c, var(--primary));
  transition:background .28s ease, filter .16s ease;
}
.v-workspace .topbar .btn.primary:hover:not(:disabled){filter:brightness(1.08)}
/* 顶部面包屑：客户品牌卡左侧色条，一眼识别当前操作的客户 */
.crumb-brand{
  border-left:3px solid var(--brand-c, var(--primary));
  transition:border-color .28s ease;
}
/* 侧栏激活标签：图标 + 右侧指示条 + 底色全部走品牌色 */
.v-workspace .nav-item.on{
  background:color-mix(in srgb, var(--brand-c, var(--primary)) 12%, transparent);
  transition:background .28s ease;
}
.v-workspace .nav-item.on .ic{color:var(--brand-c, var(--primary));transition:color .28s ease}
.v-workspace .nav-item.on .ind{background:var(--brand-c, var(--primary));transition:background .28s ease}
/* 分段激活标签（各模块内的 seg 切换） */
.v-workspace .seg button.on{background:var(--brand-c, var(--primary));transition:background .28s ease}
/* 返回首页按钮描边同调 */
.v-workspace .ws-back{
  border-color:color-mix(in srgb, var(--brand-c, var(--primary)) 32%, var(--border));
  color:var(--brand-c, var(--primary));
}

/* ============ Home ↔ Workspace 视图切换过渡 ============ */
@keyframes viewIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.content > section{animation:viewIn .26s cubic-bezier(.2,.7,.3,1)}

/* ============ 打印报告抬头（平时隐藏） ============ */
.print-head{display:none}
.print-legal-footer{display:none}

/* ============ 空态 / 提示 ============ */
.empty{border:1px dashed var(--border);border-radius:var(--r-lg);padding:64px 24px;text-align:center;color:var(--muted);background:var(--surface)}
.empty .e-ico{width:56px;height:56px;border-radius:var(--r-lg);display:grid;place-items:center;margin:0 auto 16px;background:var(--primary-weak);color:var(--primary)}
.empty h3{margin:0 0 6px;font-size:var(--fs-h3);font-weight:750;color:var(--text)}
.empty p{margin:0 0 20px;font-size:var(--fs-body);line-height:1.7}
.key-banner{display:flex;gap:13px;align-items:center;padding:15px 18px;border-radius:var(--r-md);margin-top:18px;
  background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--warning)}
.key-banner .k-ico{color:var(--warning)}
.key-banner b{color:#B45309}
[data-theme="dark"] .key-banner b{color:#FCD34D}
[data-theme="dark"] .key-banner .k-ico{color:#fbbf24}
.key-banner p{margin:2px 0 0;font-size:var(--fs-sm);color:var(--muted);line-height:1.65}
.progress-wrap{padding:0 24px 12px}
.progress{display:flex;align-items:center;gap:14px;padding:11px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow)}
.pbar{flex:1;height:6px;border-radius:var(--r-full);background:var(--border);overflow:hidden}
.pbar i{display:block;height:100%;border-radius:var(--r-full);background:var(--primary);transition:width .5s}
.p-meta{font-size:var(--fs-cap);color:var(--muted);white-space:nowrap}
.p-stop{margin-left:auto;display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:var(--r-sm);
  border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:var(--fs-cap);font-weight:700;
  cursor:pointer;transition:all .15s ease;flex-shrink:0}
.p-stop:hover{background:#F43F5E;border-color:#F43F5E;color:#fff}
.toast{position:fixed;bottom:26px;right:26px;z-index:90;max-width:420px}
.toast .box{border-radius:var(--r-md);padding:12px 16px;font-size:var(--fs-body);font-weight:600;box-shadow:var(--shadow-lg);border:1px solid var(--border);display:flex;gap:9px;align-items:flex-start}
.toast .box.ok{background:var(--surface-2);color:var(--text);border-left:3px solid #10B981}
.toast .box.err{background:var(--surface-2);color:var(--text);border-left:3px solid #F43F5E}

/* ============ L4 ============ */
.md{font-size:var(--fs-body);line-height:1.8;color:var(--text)}
.md h1,.md h2,.md h3,.md h4{color:var(--text);font-weight:750;margin:1.1em 0 .45em;line-height:1.35}
.md h1{font-size:var(--fs-h2)}.md h2{font-size:var(--fs-h3)}.md h3{font-size:var(--fs-body)}
.md p{margin:.5em 0}
.md ul,.md ol{padding-left:1.4em;margin:.5em 0}
.md li{margin:.25em 0}
.md table{border-collapse:collapse;margin:.8em 0;width:100%;font-size:var(--fs-sm)}
.md th,.md td{border:1px solid var(--border);padding:7px 11px;text-align:left}
.md th{background:var(--primary-weak);font-weight:700;color:var(--text)}
.md blockquote{margin:.8em 0;padding:8px 14px;border-left:3px solid var(--primary);background:var(--primary-weak);border-radius:0 9px 9px 0;color:var(--muted)}
.md code{font-family:'JetBrains Mono',monospace;font-size:.88em;background:var(--hover);padding:1px 5px;border-radius:var(--r-xs)}
.md pre{background:var(--surface-2);border:1px solid var(--border);padding:13px 15px;border-radius:var(--r-sm);overflow-x:auto}
.md pre code{background:none;padding:0}
.md hr{border:none;border-top:1px solid var(--border);margin:1.2em 0}
.md a{color:var(--primary)}

/* ============ L1 品牌评级 / 可见性指数 / 数据健康度 ============ */
.l1-hero-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,1fr);gap:14px;align-items:start;margin-bottom:14px}
.l1-hero-row .insight{min-width:0;margin:0}
.l1-hero-row .insight>div:last-child{min-width:0;overflow-wrap:anywhere}
.l1-hero-row:not(:has(.tier-card)){grid-template-columns:minmax(0,1fr)}
.tier-card{min-width:0;width:auto;display:flex;flex-direction:column;padding:18px 22px;position:relative}
.tier-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px 12px}
.tier-badge{flex:none;white-space:nowrap;font-size:var(--fs-body);font-weight:850;letter-spacing:.02em;padding:5px 14px;border-radius:var(--r-full);border:1.5px solid transparent}
.tier-badge.t-adv{background:rgba(16,185,129,.12);color:#10B981;border-color:rgba(16,185,129,.4)}
.tier-badge.t-stable{background:rgba(26,115,232,.1);color:#1A73E8;border-color:rgba(26,115,232,.35)}
.tier-badge.t-partial{background:rgba(245,158,11,.12);color:#F59E0B;border-color:rgba(245,158,11,.4)}
.tier-badge.t-breakout{background:rgba(244,63,94,.1);color:#F43F5E;border-color:rgba(244,63,94,.35)}
.tier-badge.t-na{background:var(--surface-2);color:var(--faint);border-color:var(--border)}
.tier-fair{flex:none;white-space:nowrap;font-size:var(--fs-cap);color:var(--faint)}
.tier-gauge{display:flex;align-items:baseline;gap:3px;margin-top:12px}
/* 批次八十二：评级卡主数字重排（提及率/好感度前置，可见度降级薄条） */
.tier-hero-metric{display:flex;align-items:center;gap:14px;margin-top:14px}
.tier-hero-metric.secondary{margin-top:10px}
.thm-num{font-size:34px;font-weight:800;letter-spacing:-.03em;line-height:1;min-width:86px;text-align:right;flex:none}
.tier-hero-metric.secondary .thm-num{font-size:24px}
.thm-unit{font-size:15px;font-weight:600;color:var(--faint);margin-left:2px}
.thm-side{min-width:0}
.thm-label{font-size:var(--fs-cap);color:var(--muted);font-weight:600}
.thm-denom{font-size:11.5px;color:var(--faint);margin-top:3px;line-height:1.5;overflow-wrap:anywhere}
.vis-compact{margin-top:14px;padding-top:10px;border-top:0.5px dashed var(--border)}
.vc-row{display:flex;align-items:center;gap:10px;font-size:var(--fs-cap);color:var(--muted)}
.vc-label{flex:none}
.vc-bar{flex:1;min-width:0;height:4px;border-radius:var(--r-full);background:var(--surface-3);overflow:hidden}
.vc-bar i{display:block;height:100%;border-radius:var(--r-full);background:var(--primary);opacity:.55}
.vc-val{color:var(--text);flex:none}
.vc-dim{color:var(--faint);font-weight:400;font-size:10.5px}
.tier-num{font-size:var(--fs-display);font-weight:850;letter-spacing:-.04em;line-height:1;color:var(--primary)}
.tier-max{font-size:var(--fs-body);color:var(--faint);font-weight:600}
.tier-label{font-size:var(--fs-cap);color:var(--faint);margin-top:4px;letter-spacing:.03em}
.tier-gap{font-size:var(--fs-cap);color:var(--muted);margin-top:10px;line-height:1.65;overflow-wrap:anywhere}
/* P1-11：可见性指数三分量分解条（实际贡献占比强制披露） */
.vis-break{margin-top:8px;display:flex;flex-direction:column;gap:4px}
.vb-row{display:flex;align-items:center;gap:8px;font-size:var(--fs-cap);color:var(--muted)}
.vb-name{width:44px;flex:none}
.vb-bar{flex:1;min-width:0;height:5px;border-radius:var(--r-full);background:var(--surface-3);overflow:hidden}
.vb-bar i{display:block;height:100%;border-radius:var(--r-full);transition:width .4s ease}
.vb-pct{width:56px;flex:none;text-align:right;color:var(--text)}
.vb-raw{width:56px;flex:none;text-align:right;opacity:.65}
.vb-head{font-size:10.5px;color:var(--faint);margin-bottom:2px}
.vb-head .vb-pct,.vb-head .vb-raw{color:var(--faint);opacity:1}
.vb-note{font-size:var(--fs-cap);color:var(--amber,#F59E0B);margin-top:2px}
.vb-explain{font-size:var(--fs-cap);color:var(--faint);margin-top:4px}
.tier-gap b{color:#F59E0B}
.tier-gap.ok b,.tier-gap.ok{color:#10B981}
/* ============ 状态提示条：中性卡片底 + 左侧状态色边（告别大面积彩色补丁） ============ */
.health-bar{display:flex;gap:10px;align-items:flex-start;padding:11px 16px;border:1px solid var(--border);border-left:3px solid var(--warning);border-radius:var(--r-md);background:var(--surface-2);margin-bottom:14px;font-size:var(--fs-cap);color:var(--text)}
.health-bar svg{flex:none;margin-top:1px;color:var(--warning)}
.health-bar.hb-ok{border-color:var(--border);border-left-color:var(--positive)}
.health-bar.hb-ok svg{color:var(--positive)}
.hb-items{display:flex;flex-direction:column;gap:4px;line-height:1.6;color:var(--muted)}
.hb-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:6px;padding-top:6px;border-top:1px dashed var(--border)}
.hb-meta .mono{color:var(--text);font-weight:700}
.hb-chip{font-size:var(--fs-cap);padding:2px 8px;border-radius:var(--r-xs);background:var(--surface-3);color:var(--muted);border:1px solid var(--border-soft)}
/* P1-13：可下钻的健康条 chip（button 重置为 chip 外观 + hover 提示可点） */
button.hb-chip{font-family:inherit;line-height:1.6;cursor:pointer;display:inline-flex;align-items:center;gap:3px}
button.hb-chip:hover{border-color:var(--primary);color:var(--primary)}
button.hb-chip svg{opacity:.65}
.hb-chip.ok{color:var(--positive);background:var(--positive-weak);border-color:color-mix(in srgb,var(--positive) 30%,transparent)}
.hb-chip.bad{color:var(--danger);background:var(--danger-weak);border-color:color-mix(in srgb,var(--danger) 30%,transparent)}
.sov-scope{font-size:var(--fs-cap);color:var(--brand-soft);background:var(--accent-weak);padding:2px 8px;border-radius:var(--r-xs)}
/* 快照闸门信任条：绿=读数已冻结（看板与报告恒定）/ 琥珀=采样进行中（数字会变、不可外发） */
.snap-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 14px;border:1px solid var(--border);
  border-left:3px solid var(--positive);border-radius:var(--r-md);background:var(--surface-2);
  margin-bottom:12px;font-size:var(--fs-cap);color:var(--muted)}
.snap-bar>svg{flex:none;color:var(--positive)}
.snap-bar.sb-live{border-left-color:var(--warning)}
.snap-bar.sb-live>svg{color:var(--warning);animation:sb-spin 1.5s linear infinite}
@keyframes sb-spin{to{transform:rotate(360deg)}}
.sb-main{flex:1;min-width:0;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sb-main b{color:var(--text);font-weight:700}
.sb-sep{color:var(--faint)}
.sb-warn-t{color:var(--warning)}
.sb-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sb-chip{font-size:var(--fs-cap);padding:2px 8px;border-radius:var(--r-xs);background:var(--surface-3);color:var(--muted);
  border:1px solid var(--border-soft);white-space:nowrap}
.sb-chip b{color:var(--text);font-weight:700}
.sb-chip.bad{color:var(--danger);background:var(--danger-weak);
  border-color:color-mix(in srgb,var(--danger) 30%,transparent)}
.sb-chip.bad b{color:var(--danger)}
/* 事实口径漂移风险提示：中性卡片底 + 左侧红边，仅图标与关键数值着色 */
.drift-strip{display:flex;gap:10px;align-items:flex-start;padding:11px 16px;border:1px solid var(--border);border-left:3px solid var(--danger);border-radius:var(--r-md);background:var(--surface-2);margin-bottom:14px;font-size:var(--fs-cap);color:var(--text)}
.drift-strip svg{flex:none;margin-top:1px;color:var(--danger)}
.drift-list{display:flex;flex-direction:column;gap:3px;margin-top:5px;font-size:var(--fs-cap);color:var(--muted);line-height:1.55}
.drift-list .mono{color:var(--bad-fg);font-weight:700}
/* P2-1：诊断详情可折叠区 —— 默认收起；告警态红色描边 + 红字摘要，展开后各条保持原卡片样式 */
.diag-details{margin-top:13px}
.diag-toggle{display:flex;gap:8px;align-items:center;width:100%;padding:9px 14px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);color:var(--muted);font-size:var(--fs-cap);font-weight:750;cursor:pointer;text-align:left;transition:background .15s,color .15s}
.diag-toggle:hover{background:var(--surface-3);color:var(--text)}
.diag-toggle.has-alert{border-color:rgba(244,63,94,.35)}
.diag-toggle .dt-ico{display:flex;flex:none}
.diag-toggle .dt-alert{margin-left:auto;color:#F43F5E;font-weight:650}
.diag-toggle .chev{display:flex;flex:none;margin-left:4px;color:var(--faint);transition:transform .18s}
.diag-toggle.open .chev{transform:rotate(180deg)}
.diag-body{margin-top:10px}
.diag-body .key-banner{margin-top:0!important}
.diag-body>*:last-child{margin-bottom:0}
/* 正负面细粒度标签云 */
/* P1-8：标签云三桶（正面 / 证据缺口 / 品牌负面），自适应列宽 */
.tagcloud-card .tc-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin-top:14px}
.tc-side{border:1px solid var(--border-soft);border-radius:var(--r-sm);padding:13px 15px;background:var(--surface-2)}
.tc-head{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);font-weight:750;margin-bottom:10px}
.tc-head .dot{width:8px;height:8px;border-radius:50%;flex:none}
.tc-head .n{margin-left:auto;font-size:var(--fs-cap);color:var(--faint);font-weight:600}
.tc-cloud{display:flex;flex-wrap:wrap;gap:7px}
.tc-chip{font-size:var(--fs-cap);padding:4px 11px;border-radius:var(--r-full);border:1px solid transparent;font-weight:650;line-height:1.4}
.tc-chip .cnt{font-size:var(--fs-cap);opacity:.75;font-family:'JetBrains Mono',monospace;margin-left:3px}
.tc-chip.pos{background:rgba(16,185,129,.1);color:#0E9F6E;border-color:rgba(16,185,129,.32)}
.tc-chip.neg{background:rgba(244,63,94,.09);color:#E11D48;border-color:rgba(244,63,94,.3)}
.tc-chip.gap{background:rgba(245,158,11,.1);color:#B45309;border-color:rgba(245,158,11,.32)}
.tc-chip.big{font-size:var(--fs-body);padding:6px 14px}
.tc-empty{font-size:var(--fs-cap);color:var(--faint);line-height:1.6}
@media (max-width:900px){ .tagcloud-card .tc-cols{grid-template-columns:1fr} }
/* L3 双面信源 / 渠道分布 / 意图矩阵 / 投放决策 */
.face-note{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:9px;font-size:var(--fs-cap);color:var(--muted);line-height:1.55}
.face-note b{color:var(--text)}
/* P2-10：渠道列表卡专属样式（行网格/色点/进度条等）已随重复渲染卡一并移除（数据合并进 ECharts 条形图） */
.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:14px}
.plan-block{border:1px solid var(--border-soft);border-radius:var(--r-md);padding:14px 16px;background:var(--surface-2)}
.plan-title{font-size:var(--fs-sm);font-weight:750;color:var(--text);display:flex;align-items:center;gap:7px;margin-bottom:4px}
.plan-sub{font-size:var(--fs-cap);color:var(--faint);margin-bottom:11px;line-height:1.55}
.plan-row{display:grid;grid-template-columns:96px 1fr 64px;gap:9px;align-items:center;margin-bottom:8px;font-size:var(--fs-cap)}
.plan-label{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.plan-track{height:13px;border-radius:var(--r-xs);background:var(--surface);border:1px solid var(--border-soft);overflow:hidden}
.plan-fill{height:100%;background:linear-gradient(90deg,#F43F5E,#FB7185);border-radius:var(--r-xs);min-width:2px}
.plan-fill.gen{background:linear-gradient(90deg,#1A73E8,#818CF8)}
.plan-num{font-family:'JetBrains Mono',monospace;font-size:var(--fs-cap);color:#F43F5E;text-align:right;font-weight:700}
.plan-num.gen{color:#6366F1}
.plan-big{display:flex;align-items:baseline;gap:8px;margin-top:4px}
.plan-big .n{font-size:var(--fs-metric);font-weight:850;color:var(--primary);font-family:'JetBrains Mono',monospace;letter-spacing:-.03em}
.plan-big .u{font-size:var(--fs-body);color:var(--muted);font-weight:700}
.plan-formula{font-size:var(--fs-cap);color:var(--faint);font-family:'JetBrains Mono',monospace;margin-top:6px;line-height:1.6}
@media (max-width:1100px){ .l1-hero-row{grid-template-columns:minmax(0,1fr)} }

/* ============ L3 官网回连权重分析 ============ */
.l3-clean-bar{display:flex;gap:9px;align-items:center;margin-top:12px;padding:11px 15px;border:1px solid rgba(16,185,129,.32);border-radius:var(--r-sm);background:rgba(16,185,129,.07);font-size:var(--fs-sm);line-height:1.6;color:var(--text);flex-wrap:wrap}
.l3-clean-bar svg{flex:none;color:#10B981}
.l3-clean-bar b{font-weight:800;color:#10B981}
.l3-clean-sub{font-size:var(--fs-cap);color:var(--faint);margin-left:auto}
.oc-status{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-cap);font-weight:700;padding:2px 8px;border-radius:var(--r-xs);flex:none}
.oc-dot{width:7px;height:7px;border-radius:50%;flex:none}
.oc-status.st-active{background:rgba(16,185,129,.12);color:#059669}
.oc-status.st-active .oc-dot{background:#10B981;box-shadow:0 0 5px rgba(16,185,129,.8)}
.oc-status.st-dead{background:rgba(244,63,94,.12);color:#E11D48}
.oc-status.st-dead .oc-dot{background:#F43F5E}
.oc-status.st-unknown{background:var(--faint);color:var(--muted)}
.oc-status.st-unknown .oc-dot{background:var(--faint)}
.l3-official-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:var(--fs-sm);color:var(--text);user-select:none;white-space:nowrap}
.l3-official-toggle input{width:15px;height:15px;accent-color:var(--primary);cursor:pointer;flex:none}
.l3-official-toggle:hover{color:var(--primary)}
.official-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:14px}
.official-card{border:1px solid var(--border);border-radius:var(--r-md);padding:14px 16px;background:var(--surface-2);position:relative;overflow:hidden;min-width:0;overflow-wrap:anywhere}
/* 本品是主角：占双栏，解决「主角和龙套同宽」+ 长中文名撑破最小宽导致的竖排崩版（V-03） */
.official-card.brand{grid-column:span 2}
.official-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--faint)}
.official-card.brand::before{background:var(--primary)}
.official-card:not(.brand):not(.empty)::before{background:#F43F5E}
.official-card.empty{opacity:.78}
/* V-20：官网卡头部独立类名，不再与「一页看懂」的 .oc-head 共用同名覆盖 */
.official-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;row-gap:6px}
.oc-role{font-size:var(--fs-cap);font-weight:800;letter-spacing:.06em;padding:2px 8px;border-radius:var(--r-xs);background:var(--primary-weak);color:var(--primary);white-space:nowrap}
.oc-role.comp{background:rgba(244,63,94,.1);color:#F43F5E}
.oc-name{font-size:var(--fs-body);font-weight:800;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.oc-domain{font-size:var(--fs-cap);color:var(--muted);margin-top:5px;word-break:break-all;overflow-wrap:anywhere}
.oc-metrics{display:flex;flex-wrap:wrap;margin-top:11px;column-gap:18px;row-gap:8px}
.oc-m{display:flex;flex-direction:column;gap:1px;min-width:64px}
.oc-mv{font-size:var(--fs-h2);font-weight:800;letter-spacing:-.02em;line-height:1.2}
.oc-ml{font-size:var(--fs-cap);color:var(--muted);white-space:nowrap}
.oc-sub{font-size:var(--fs-cap);color:var(--muted);margin-top:9px;line-height:1.55}
.official-diag{display:flex;gap:9px;align-items:flex-start;margin-top:13px;padding:11px 14px;border:1px solid rgba(139,92,246,.3);border-radius:var(--r-sm);background:rgba(139,92,246,.06);font-size:var(--fs-sm);line-height:1.7;color:var(--text)}
.official-diag svg{flex:none;margin-top:2px;color:#8B5CF6}
/* P1-9：官网卡一句话结论条（结论先行，数值由接口下发） */
.official-verdict{display:flex;gap:9px;align-items:flex-start;margin-top:13px;padding:11px 14px;border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--r-sm);background:var(--surface-2);font-size:var(--fs-body);line-height:1.75;color:var(--text);font-weight:500}
.official-verdict svg{flex:none;margin-top:3px;color:var(--primary)}
.official-verdict b{font-variant-numeric:tabular-nums}
.official-card.rest{border-style:dashed;opacity:.92}
.official-card.rest:hover{border-color:var(--primary);opacity:1}
.oc-role.rest{color:var(--muted)}
.oc-chips{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:12px}
.oc-chips-lbl{font-size:var(--fs-cap);color:var(--faint);letter-spacing:.05em}

/* ============ L5 官网诊断 ============ */
@keyframes spin{to{transform:rotate(360deg)}}
.l5-bar{display:flex;gap:16px;align-items:flex-start;padding:20px 24px}
.l5-bar-ico{width:46px;height:46px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--primary-weak);color:var(--primary);flex:none}
.l5-bar-main{flex:1;min-width:0}
.l5-bar-title{font-size:var(--fs-h3);font-weight:800;letter-spacing:-.01em;display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.l5-ver{font-size:var(--fs-cap);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--primary);background:var(--primary-weak);padding:2px 8px;border-radius:var(--r-xs)}
.l5-url-row{display:flex;gap:10px;margin-top:11px}
.wd-mode-switch{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}
.wd-mode-switch .wd-quick-tool{font-size:var(--fs-cap)}
.l5 .wd-controls{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.l5-top{display:grid;grid-template-columns:300px 1fr;gap:16px;margin-top:16px}
.l5-gauge{display:flex;flex-direction:column;align-items:center;padding:26px 20px 22px}
.l5-gauge-ring{width:168px;height:168px;border-radius:50%;display:grid;place-items:center;transition:background .6s}
.l5-gauge-inner{width:132px;height:132px;border-radius:50%;background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px var(--border)}
.l5-gauge-num{font-size:var(--fs-display);font-weight:850;letter-spacing:-.04em;line-height:1}
.l5-gauge-cap{font-size:var(--fs-cap);color:var(--faint);margin-top:3px;letter-spacing:.08em}
.l5-verdict{font-size:var(--fs-h3);font-weight:800;margin-top:14px}
.l5-url{font-size:var(--fs-cap);color:var(--muted);margin-top:6px;word-break:break-all;text-align:center}
.l5-time{font-size:var(--fs-cap);color:var(--faint);margin-top:3px}
.l5-badges{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:14px}
/* V-30：左卡关键短板列表（替代全量 badges，避免与右侧八维诊断双渲染） */
.l5-worst{margin-top:14px;padding-top:12px;border-top:1px dashed var(--border)}
.l5-worst-title{font-size:var(--fs-cap);font-weight:700;color:var(--faint);letter-spacing:.02em;margin-bottom:8px;text-align:center}
.l5-worst-row{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:var(--fs-cap)}
.l5-worst-dot{width:7px;height:7px;border-radius:var(--r-full);flex:none}
.l5-worst-name{color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.l5-worst-score{font-size:var(--fs-cap);font-weight:700;flex:none}
.l5-fix-toggle{display:flex;gap:7px;align-items:center;margin-top:8px;padding:7px 11px;border-radius:var(--r-sm);
  background:var(--primary-weak);color:var(--text);font-size:var(--fs-cap);line-height:1.6;cursor:pointer;user-select:none;border:0;width:100%;text-align:left;font-family:inherit}
.l5-fix-toggle:hover{background:color-mix(in srgb,var(--primary) 12%,transparent)}
.l5-fix-toggle .chev{margin-left:auto;color:var(--primary);transition:transform .15s;flex:none}
.l5-fix-toggle.open .chev{transform:rotate(180deg)}
.l5-dims{padding-bottom:10px}
.l5-dim-list{padding:12px 24px 14px;display:flex;flex-direction:column}
.l5-dim{display:flex;gap:13px;padding:13px 0;border-bottom:1px dashed var(--border)}
.l5-dim:last-child{border-bottom:none}
.l5-dim-no{width:26px;height:26px;border-radius:var(--r-sm);display:grid;place-items:center;font-size:var(--fs-sm);font-weight:800;flex:none;margin-top:1px}
.l5-dim-body{flex:1;min-width:0}
.l5-dim-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.l5-dim-head b{font-size:var(--fs-body);font-weight:750}
.l5-dim-score{font-size:var(--fs-sm);font-weight:800;font-family:'JetBrains Mono',monospace;flex:none}
.l5-dim-detail{font-size:var(--fs-sm);color:var(--muted);line-height:1.72;margin-top:5px}
.l5-fix{display:flex;gap:7px;align-items:flex-start;margin-top:8px;padding:8px 11px;border-radius:var(--r-sm);background:var(--primary-weak);color:var(--text);font-size:var(--fs-cap);line-height:1.65}
.l5-fix svg{flex:none;margin-top:2px;color:var(--primary)}
.l5-bottom{display:grid;grid-template-columns:1fr 440px;gap:16px;margin-top:16px}
.l5-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}
.l5-metric{padding:16px 18px 14px}
.l5-metric-head{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);font-weight:700;color:var(--muted)}
.l5-metric-head svg{color:var(--primary);flex:none}
.l5-metric-flag{margin-left:auto;font-size:var(--fs-cap);font-weight:800;padding:2px 8px;border-radius:var(--r-xs);letter-spacing:.03em}
.l5-metric-flag.red{background:#F43F5E18;color:#E11D48}
.l5-metric-vals{display:flex;gap:18px;margin-top:12px}
.l5-mv{display:flex;flex-direction:column;gap:2px}
.l5-mv em{font-style:normal;font-size:var(--fs-h2);font-weight:800;letter-spacing:-.02em;color:var(--text);font-family:'JetBrains Mono',monospace}
.l5-mv span{font-size:var(--fs-cap);color:var(--faint)}
.l5-metric-bar{height:5px;border-radius:var(--r-full);background:var(--surface-2);border:1px solid var(--border);margin-top:11px;overflow:hidden}
.l5-metric-bar i{display:block;height:100%;border-radius:var(--r-full);transition:width .5s}
.l5-metric-note{margin-top:9px;font-size:var(--fs-cap);line-height:1.6;color:var(--muted)}
.l5-metric-mode{font-size:var(--fs-h3);font-weight:800;margin-top:12px;letter-spacing:-.01em}
.l5-metric-sub2{font-size:var(--fs-cap);color:var(--muted);margin-top:5px}
.l5-metric-sub2 b{color:var(--text);font-family:'JetBrains Mono',monospace}
.l5-patch-hero{display:flex;gap:9px;align-items:flex-start;padding:11px 13px;border-radius:var(--r-sm);background:var(--primary-weak);font-size:var(--fs-cap);line-height:1.7;color:var(--text);margin:14px 24px 12px}
.l5-patch-hero svg{flex:none;margin-top:2px;color:var(--primary)}
.l5-patch-tabs button{flex:1;font-size:var(--fs-cap);padding:0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.l5-patch-empty{padding:26px 14px;text-align:center;font-size:var(--fs-cap);color:var(--faint);border:1px dashed var(--border);border-radius:var(--r-sm)}
.l5-alt-list{display:flex;flex-direction:column;gap:9px}
.l5-alt-item{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2)}
.l5-alt-idx{width:22px;height:22px;border-radius:var(--r-xs);display:grid;place-items:center;background:var(--primary-weak);color:var(--primary);font-size:var(--fs-cap);font-weight:800;flex:none;margin-top:1px}
.l5-alt-label{font-size:var(--fs-cap);font-weight:700;color:var(--faint);letter-spacing:.03em;margin-bottom:3px}
.l5-alt-text{font-size:var(--fs-cap);line-height:1.65;color:var(--text);word-break:break-all}
@media (max-width:1180px){.l5-top,.l5-bottom,.l5-metrics{grid-template-columns:1fr}}
.l5-term{margin:14px 24px 0;border-radius:var(--r-sm);overflow:hidden;border:1px solid #1E293B;background:#0B1220}
.l5-term-bar{display:flex;align-items:center;gap:6px;padding:9px 13px;background:#111827;border-bottom:1px solid #1E293B}
.l5-term-bar i{width:9px;height:9px;border-radius:50%;background:#334155}
.l5-term-bar i:nth-child(1){background:#F87171}.l5-term-bar i:nth-child(2){background:#FBBF24}.l5-term-bar i:nth-child(3){background:#34D399}
.l5-term-bar span{margin-left:8px;font-size:var(--fs-cap);color:#64748B}
.l5-term-body{margin:0;padding:14px 16px;font-size:var(--fs-cap);line-height:1.8;color:#A5B4FC;max-height:260px;overflow:auto;white-space:pre-wrap;word-break:break-all}
.l5-alert{display:flex;gap:8px;align-items:flex-start;margin:12px 24px 18px;padding:10px 13px;border-radius:var(--r-sm);font-size:var(--fs-sm);line-height:1.65}
.l5-alert svg{flex:none;margin-top:2px}
.l5-alert.red{background:#F43F5E14;color:#BE123C}
.l5-alert.green{background:#10B98114;color:#047857}
.l5-alert.neutral{background:var(--surface-2);color:var(--muted)}
  .l5-llms .l5-alert{margin:14px 24px 12px}
  .l5-llms-out{margin-top:12px;max-height:300px;overflow:auto;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:13px 15px;font-size:var(--fs-cap);line-height:1.75;white-space:pre-wrap;word-break:break-all;color:var(--muted)}

  /* ---- 提问清单与意图扩写 ---- */
  .lab{padding:16px 18px}
  /* 批次九十八：冷启动折叠条 */
  .lab-fold{padding:0}
  .lab-sum{display:flex;align-items:center;gap:10px;padding:14px 18px;cursor:pointer;list-style:none}
  .lab-sum::-webkit-details-marker{display:none}
  .lab-sum b{font-size:var(--fs-body);font-weight:800;color:var(--text);flex:none}
  .lab-sum .lab-sub{flex:1;min-width:0;margin-top:0}
  .lab-chev{flex:none;color:var(--faint);transition:transform .16s}
  details[open]>.lab-sum .lab-chev{transform:rotate(180deg)}
  .lab-body{border-top:1px solid var(--border-soft);padding:14px 18px 16px}
  .lab-body .lab-acts{margin-bottom:2px}
  .lab-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
  .lab-title{display:flex;gap:10px;align-items:center;min-width:0}
  .lab-ico{width:32px;height:32px;border-radius:var(--r-sm);display:grid;place-items:center;flex:none;
    background:color-mix(in srgb,#8B5CF6 14%,transparent);color:#8B5CF6;border:1px solid color-mix(in srgb,#8B5CF6 32%,transparent)}
  .lab-title b{display:block;font-size:var(--fs-body);font-weight:800;color:var(--text);letter-spacing:.01em}
  .lab-sub{display:block;font-size:var(--fs-cap);color:var(--faint);margin-top:2px}
  .lab-acts{display:flex;gap:9px;flex-wrap:wrap}
  .lab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:12px;margin-top:14px}
  .lab-card{border:1px solid var(--border);border-radius:var(--r-md);padding:13px 14px;background:var(--surface);
    box-shadow:0 1px 2px rgb(15 23 42 / .04);transition:.16s}
  .lab-card:hover{border-color:color-mix(in srgb,#8B5CF6 45%,transparent);transform:translateY(-1px)}
  .lab-card-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .lab-card-head b{font-size:var(--fs-body);font-weight:750;color:var(--text)}
  .lab-no{font-size:var(--fs-cap);font-weight:800;color:#8B5CF6;background:color-mix(in srgb,#8B5CF6 12%,transparent);
    border:1px solid color-mix(in srgb,#8B5CF6 30%,transparent);border-radius:var(--r-xs);padding:1.5px 5px}
  .lab-scen{font-size:var(--fs-cap);line-height:1.65;color:var(--muted);margin:8px 0 9px;
    display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .lab-kws{display:flex;gap:6px;flex-wrap:wrap}
  .lab-kw{font-size:var(--fs-cap);font-weight:650;color:#0EA5E9;background:color-mix(in srgb,#0EA5E9 10%,transparent);
    border:1px solid color-mix(in srgb,#0EA5E9 28%,transparent);border-radius:var(--r-full);padding:2.5px 8px}
  .lab-empty{display:flex;gap:11px;align-items:flex-start;margin-top:13px;padding:18px 16px;border-radius:var(--r-sm);
    border:1px dashed color-mix(in srgb,#8B5CF6 40%,transparent);background:color-mix(in srgb,#8B5CF6 5%,transparent);
    color:var(--muted);font-size:var(--fs-cap);line-height:1.7}
  .lab-empty svg{color:#8B5CF6;flex:none;margin-top:2px}

  /* ============ Run Wizard 战役配置向导 ============ */
  .rw-sec{border:1px solid var(--border);border-radius:var(--r-md);padding:14px 15px;background:var(--surface);margin-bottom:13px}
  .rw-sec.rw-final{background:color-mix(in srgb,var(--primary) 5%,var(--surface));
    border-color:color-mix(in srgb,var(--primary) 30%,transparent);margin-bottom:0}
  .rw-h{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:11px}
  .rw-h b{font-size:var(--fs-body);font-weight:800;color:var(--text)}
  .rw-no{width:20px;height:20px;border-radius:var(--r-xs);display:grid;place-items:center;flex:none;font-size:var(--fs-cap);font-weight:800;
    background:var(--primary);color:#fff}
  .rw-tip{font-size:var(--fs-cap);color:var(--faint);margin-left:auto}
  .rw-mini{padding:3px 9px!important;font-size:var(--fs-cap)!important;line-height:1.5!important;margin-left:0}
  .rw-pool{display:flex;gap:9px;flex-wrap:wrap}
  .rw-chip{display:flex;align-items:center;gap:7px;padding:8px 12px;border-radius:var(--r-sm);cursor:pointer;user-select:none;
    border:1.5px solid var(--border);background:var(--surface-2);transition:.15s;font-size:var(--fs-sm)}
  .rw-chip:hover{border-color:color-mix(in srgb,var(--primary) 45%,transparent)}
  .rw-chip.on{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 9%,var(--surface));
    box-shadow:0 0 0 2.5px color-mix(in srgb,var(--primary) 14%,transparent)}
  .rw-chip input{accent-color:var(--primary);margin:0;cursor:pointer}
  .rw-ename{font-weight:750;color:var(--text)}
  .rw-model{font-size:var(--fs-cap);color:var(--faint)}
  .rw-chip svg{color:var(--primary)}
  .rw-warn{display:flex;gap:7px;align-items:center;margin-top:10px;padding:9px 12px;border-radius:var(--r-sm);font-size:var(--fs-cap);
    background:#F59E0B14;color:#B45309;border:1px solid #F59E0B40}
  .rw-scope.seg{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;padding:0;background:transparent;border:none}
  .rw-scope.seg button{flex:1;min-width:150px;padding:9px 12px;border-radius:var(--r-sm);border:1.5px solid var(--border);
    background:var(--surface-2);color:var(--muted);font-size:var(--fs-sm);font-weight:650;cursor:pointer;transition:.15s;
    display:flex;align-items:center;justify-content:center;gap:7px}
  .rw-scope.seg button em{font-style:normal;font-size:var(--fs-cap);color:var(--faint)}
  .rw-scope.seg button:hover{border-color:color-mix(in srgb,var(--primary) 45%,transparent)}
  .rw-scope.seg button.on{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 9%,var(--surface));
    color:var(--primary);box-shadow:0 0 0 2.5px color-mix(in srgb,var(--primary) 14%,transparent)}
  .rw-scope.seg button.on em{color:var(--primary)}
  .rw-scope-ctl{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
  .rw-scope-ctl .inp{width:auto;min-width:130px}
  .rw-est{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:11px;padding:10px 13px;border-radius:var(--r-sm);
    font-size:var(--fs-sm);color:var(--muted);background:color-mix(in srgb,var(--primary) 6%,transparent);
    border:1px dashed color-mix(in srgb,var(--primary) 35%,transparent)}
  .rw-est svg{color:var(--primary);flex:none}
  .rw-est-n{font-size:var(--fs-h3);font-weight:850;color:var(--primary)}
  /* --- 第3块：词包实时预览面板（透明化 + 临时词包） --- */
  .rw-pv{margin-top:11px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);overflow:hidden}
  .rw-pv-head{display:flex;align-items:center;gap:8px;padding:9px 12px;cursor:pointer;user-select:none;
    font-size:var(--fs-sm);color:var(--text);transition:.12s}
  .rw-pv-head:hover{background:color-mix(in srgb,var(--primary) 6%,transparent)}
  .rw-pv-head b{font-weight:750}
  .rw-pv-head .rw-pv-ico{color:var(--primary);flex:none;display:flex}
  .rw-pv-head .rw-pv-n{font-size:var(--fs-cap);color:var(--faint)}
  .rw-pv-head .rw-pv-sel{font-size:var(--fs-cap);font-weight:800;color:var(--primary);margin-left:auto}
  .rw-pv-tools{display:flex;gap:6px;flex:none}
  .rw-pv-body{padding:0 12px 11px;display:flex;flex-direction:column;gap:9px;border-top:1px solid var(--border)}
  .rw-tmp{display:flex;gap:8px;flex-wrap:wrap;padding-top:10px;align-items:center}
  .rw-tmp .inp{flex:1;min-width:190px}
  .rw-tmp .btn{white-space:nowrap}
  .rw-pv-list{max-height:252px;overflow:auto;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface)}
  .rw-pv-row{display:flex;gap:9px;align-items:center;padding:7px 11px;border-bottom:1px solid var(--border);
    cursor:pointer;transition:.1s;font-size:var(--fs-sm)}
  .rw-pv-row:last-child{border-bottom:none}
  .rw-pv-row:hover{background:var(--surface-2)}
  .rw-pv-row.off{opacity:.5}
  .rw-pv-row input[type=checkbox]{accent-color:var(--primary);flex:none;cursor:pointer;margin:0}
  .rw-pv-no{flex:none;width:26px;text-align:right;font-size:var(--fs-cap);color:var(--faint)}
  .rw-pv-row .badge{flex:none}
  .rw-pv-text{flex:1;min-width:0;color:var(--text);line-height:1.5;word-break:break-word}
  .rw-pv-del{flex:none;border:none;background:none;color:#F43F5E;cursor:pointer;opacity:.45;
    padding:2px;display:flex;transition:.12s}
  .rw-pv-row:hover .rw-pv-del{opacity:1}
  .rw-pv-empty{padding:16px;text-align:center;font-size:var(--fs-cap);color:var(--faint)}

  /* ============ 词包管理（产品线强关联） ============ */
  .pbox{padding:16px 18px}
  .pbox-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
  .pbox-title{display:flex;gap:10px;align-items:center;min-width:0}
  .pbox-title b{display:block;font-size:var(--fs-body);font-weight:800;color:var(--text);letter-spacing:.01em}
  .pbox-acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  .pbox-import{margin-top:13px;padding:13px 14px;border-radius:var(--r-md);border:1px solid color-mix(in srgb,var(--primary) 30%,transparent);
    background:color-mix(in srgb,var(--primary) 4%,transparent);display:flex;flex-direction:column;gap:9px}
  .pbox-import textarea{resize:vertical;line-height:1.7;font-size:var(--fs-sm)}
  .pbox-import-ctl{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
  .pbox-list{margin-top:13px;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}
  .pbox-row{display:flex;gap:9px;align-items:center;padding:9px 13px;background:var(--surface);
    border-bottom:1px solid var(--border);transition:.12s;flex-wrap:wrap}
  .pbox-row:last-child{border-bottom:none}
  .pbox-row:hover{background:var(--surface-2)}
  .pbox-row .badge{flex:none}
  .pbox-text{flex:1;min-width:0;font-size:var(--fs-sm);color:var(--text);line-height:1.55;
    white-space:normal;word-break:break-word;overflow-wrap:anywhere}
  .pbox-del{flex:none;opacity:.45;transition:.15s;color:#F43F5E}
  .pbox-row:hover .pbox-del{opacity:1}
  .pbox-empty{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:13px;padding:26px 16px;
    border-radius:var(--r-md);border:1px dashed var(--border);background:var(--surface-2);color:var(--faint);font-size:var(--fs-sm)}
  .pbox-empty svg{flex:none}
  .pbox-foot{margin-top:11px;font-size:var(--fs-cap);color:var(--faint);display:flex;gap:5px;align-items:center;flex-wrap:wrap}
  .pbox-foot b{color:var(--text)}

  /* ============ 意图与词包管理工作台 ============ */
  .wk-bar{margin-top:13px;padding:12px 13px;border-radius:var(--r-md);display:flex;flex-direction:column;gap:10px;
    border:1px solid color-mix(in srgb,var(--primary) 30%,transparent);
    background:color-mix(in srgb,var(--primary) 4%,transparent)}
  .wk-bar-acts{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
  .wk-tip{font-size:var(--fs-cap);color:var(--faint);margin-left:auto}
  .wk-quick{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  .wk-quick-inp{flex:1;min-width:220px;font-family:var(--mono);font-size:var(--fs-sm)}
  .wk-fair{display:flex;gap:5px;align-items:center;font-size:var(--fs-cap);color:var(--muted);cursor:pointer;
    user-select:none;white-space:nowrap;padding:5px 9px;border-radius:var(--r-sm);border:1px solid var(--border);
    background:var(--surface);transition:.12s}
  .wk-fair:hover{border-color:#0EA5E9}
  .wk-fair input{accent-color:#0EA5E9;margin:0;cursor:pointer}
  .pbox-edit{flex:none;opacity:.45;transition:.15s;color:var(--primary)}
  .pbox-row:hover .pbox-edit{opacity:1}
  .pbox-row.editing{background:color-mix(in srgb,var(--primary) 6%,var(--surface));flex-wrap:wrap}
  .pbox-edit-inp{flex:1;min-width:220px;padding:6px 10px;font-size:var(--fs-sm)}
  /* AI 建议词包预览弹窗 */
  .wk-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:11px}
  .wk-tools .wk-tip{margin-left:0}
  .wk-tools .btn:first-of-type{margin-left:auto}
  .wk-list{max-height:52vh;overflow:auto;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface)}
  .wk-row{display:flex;gap:8px;align-items:center;padding:8px 11px;border-bottom:1px solid var(--border);
    transition:.12s}
  .wk-row:last-child{border-bottom:none}
  .wk-row:hover{background:var(--surface-2)}
  .wk-row.off{opacity:.45}
  .wk-row input[type=checkbox]{accent-color:var(--primary);flex:none;cursor:pointer;margin:0}
  .wk-no{flex:none;width:22px;font-size:var(--fs-cap);color:var(--faint);text-align:right}
  .wk-inp{flex:1;min-width:170px;padding:6px 9px;font-size:var(--fs-sm)}
  .wk-sel{flex:none;width:106px;padding:6px 7px;font-size:var(--fs-cap)}
  .wk-del{flex:none;opacity:.4;color:#F43F5E;transition:.12s}
  .wk-row:hover .wk-del{opacity:1}
  /* AI 生成需求面板（先提要求，再生成） */
  .wk-req{display:flex;flex-direction:column;gap:9px;padding:12px 13px;border-radius:var(--r-sm);
    border:1px dashed color-mix(in srgb,var(--primary) 45%,transparent);background:var(--surface)}
  .wk-req textarea{resize:vertical;line-height:1.7;font-size:var(--fs-sm)}
  .wk-chips{display:flex;gap:7px;flex-wrap:wrap}
  .chip{font-size:var(--fs-cap);color:var(--muted);cursor:pointer;user-select:none;white-space:nowrap;
    padding:5px 10px;border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface-2);transition:.12s}
  .chip:hover{border-color:color-mix(in srgb,var(--primary) 60%,transparent);color:var(--text)}
  .chip.on{border-color:var(--primary);color:var(--primary);
    background:color-mix(in srgb,var(--primary) 12%,var(--surface))}
  .wk-req-foot{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
  /* 批量导入 AI 预标注复核表 */
  .pbox-review{margin-top:11px;display:flex;flex-direction:column;gap:9px}
  .pbox-review-list{max-height:40vh;overflow:auto;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface)}
  .pbox-review-row{display:flex;gap:8px;align-items:center;padding:7px 11px;border-bottom:1px solid var(--border);transition:.12s}
  .pbox-review-row:last-child{border-bottom:none}
  .pbox-review-row:hover{background:var(--surface-2)}
  .pbox-review-row.off{opacity:.45}
  .pbox-review-row.low{background:color-mix(in srgb,#F59E0B 9%,var(--surface))}
  .pbox-review-row.low:hover{background:color-mix(in srgb,#F59E0B 15%,var(--surface))}
  .pbox-review-row input[type=checkbox]{accent-color:var(--primary);flex:none;cursor:pointer;margin:0}
  .pbox-review-row .pbox-text{font-size:var(--fs-cap)}
  .pbox-review-row select{flex:none;padding:5px 7px;font-size:var(--fs-cap)}
  .conf{flex:none;width:44px;text-align:right;font-size:var(--fs-cap);color:var(--faint)}
  .pbox-review-row.low .conf{color:#F59E0B;font-weight:700}

  /* ============ 双轨分母口径条（全局提及率 vs 推荐机会中的本品获荐比例） ============ */
  .dual-strip{margin-top:13px;display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:14px 16px;border-radius:var(--r-md);
    border:1px solid color-mix(in srgb,#10B981 32%,transparent);background:color-mix(in srgb,#10B981 5%,var(--surface))}
  .ds-main{display:flex;flex-direction:column;gap:2px;min-width:200px}
  .ds-name{font-size:var(--fs-cap);font-weight:700;color:var(--muted);letter-spacing:.06em}
  .ds-val{font-size:var(--fs-metric);font-weight:800;line-height:1.05;color:var(--text)}
  .ds-val i{font-style:normal;font-size:var(--fs-h3);color:var(--muted);margin-left:2px}
  .ds-cap{font-size:var(--fs-cap);color:var(--faint)}
  .ds-div{width:1px;align-self:stretch;background:var(--border)}
  .ds-track{display:flex;gap:22px;flex-wrap:wrap;flex:1;min-width:260px}
  .ds-item{display:flex;flex-direction:column;gap:2px}
  .ds-k{font-size:var(--fs-cap);color:var(--muted);font-weight:650}
  .ds-item b{font-size:var(--fs-h2);font-weight:800;line-height:1.2}
  .ds-sub{font-size:var(--fs-cap);color:var(--faint)}
  /* ============ 心智蓝海攻坚提案卡 ============ */
  .blueocean-card{margin-top:13px;padding:14px 16px;border-radius:var(--r-md);display:flex;flex-direction:column;gap:11px;
    border:1px solid color-mix(in srgb,#818cf8 38%,transparent);background:color-mix(in srgb,#818cf8 6%,var(--surface))}
  .bo-head{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
  .bo-head b{font-size:var(--fs-body);font-weight:800;color:var(--text)}
  .bo-head svg{color:#818cf8;flex:none}
  .bo-note{font-size:var(--fs-cap);color:var(--muted);line-height:1.6}
  .bo-list{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow:auto}
  .bo-row{display:flex;gap:9px;align-items:center;padding:7px 11px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface)}
  .bo-q{flex:1;min-width:0;font-size:var(--fs-sm);color:var(--text);word-break:break-word}
  .bo-q::before{content:'· ';opacity:.75;font-weight:900}
  .bo-row .badge{flex:none}
  .bo-action{font-size:var(--fs-sm);color:var(--text);line-height:1.7;padding:9px 12px;border-radius:var(--r-sm);
    background:color-mix(in srgb,#818cf8 12%,var(--surface));border:1px dashed color-mix(in srgb,#818cf8 45%,transparent)}
  .bo-action b{color:#818cf8}
  /* 抽样明细三态提及徽标 */
.ms-self{--c:#10B981!important}
.ms-hit{--c:#F43F5E!important}
.ms-blank{--c:#94A3B8!important}

/* ===== 题级分层下钻：可展开行 + 逐引擎证据卡 ===== */
.qrow{display:flex;gap:9px;align-items:center;padding:7px 10px;border-radius:var(--r-sm);background:var(--surface-3);margin-bottom:5px;cursor:pointer;border:1px solid transparent}
.qrow:hover{border-color:var(--border)}
.qrow .qchev{flex:none;font-size:var(--fs-cap);opacity:.55;transition:transform .15s;font-family:monospace}
.qrow.open .qchev{transform:rotate(90deg)}
.qrow .qtext{font-size:var(--fs-cap);opacity:.85;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qrow .qhit{flex:none;font-size:var(--fs-cap);font-weight:700;color:#F59E0B}
.qrow .qmeta{flex:none;font-size:var(--fs-cap);opacity:.62}
.qdrill{margin:-1px 0 9px 21px;display:flex;flex-direction:column;gap:7px}
.qd-eng{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);padding:9px 12px}
.qd-eh{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:var(--fs-cap)}
.qd-eh b{font-size:var(--fs-sm)}
.qd-xn{font-size:var(--fs-cap);opacity:.75}
.qd-xn.hot{color:#F43F5E;font-weight:700}
.qd-snip{margin-top:6px;font-size:var(--fs-cap);opacity:.62;line-height:1.55;word-break:break-all}
.qd-samples{margin-top:6px;display:flex;gap:6px;flex-wrap:wrap}
.qd-dot{font-size:var(--fs-cap);padding:2px 7px;border-radius:var(--r-xs);border:1px solid var(--border)}
.qd-dot.ok{color:#10B981;border-color:rgba(16,185,129,.35)}
.qd-dot.no{color:#94A3B8}
.qd-act{font-size:var(--fs-cap);opacity:.6;line-height:1.5}
  /* ============ 碎片化意图智能收敛工作台 ============ */
  .cl-panel{width:min(980px,96vw)}
  .cl-steps{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;
    border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}
  .cl-step{display:flex;align-items:center;gap:8px;color:var(--faint);transition:.2s}
  .cl-step i{width:22px;height:22px;border-radius:var(--r-full);display:grid;place-items:center;flex:none;
    font-style:normal;font-size:var(--fs-cap);font-weight:800;border:1.5px solid var(--border);transition:.2s}
  .cl-step span{font-size:var(--fs-cap);font-weight:650;white-space:nowrap}
  .cl-step.on{color:var(--text)}
  .cl-step.on i{background:var(--primary);border-color:var(--primary);color:#fff;
    box-shadow:0 0 0 4px var(--primary-weak)}
  .cl-step.done{color:var(--muted)}
  .cl-step.done i{background:color-mix(in srgb,#10B981 15%,transparent);border-color:#10B981;color:#10B981}
  .cl-line{flex:1;height:1.5px;background:var(--border);border-radius:var(--r-xs);transition:.2s}
  .cl-line.done{background:color-mix(in srgb,#10B981 55%,var(--border))}
  .cl-pane{display:flex;flex-direction:column;gap:12px}
  .cl-raw{height:auto;min-height:340px;padding:12px 14px;font-family:var(--mono);font-size:var(--fs-body);
    line-height:1.75;white-space:pre-wrap;border-radius:var(--r-md);resize:vertical;tab-size:2}
  .cl-raw:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-weak)}
  .cl-probe-tag{flex:none;font-size:10px;padding:2px 7px;border-radius:999px;background:#eef2ff;color:#4338ca;border:1px solid #c7d2fe;white-space:nowrap}
.cl-uncovered{margin:10px 0 0;padding:9px 12px;border:1px solid #fde68a;background:#fffbeb;border-radius:8px;font-size:var(--fs-cap);color:#92400e;line-height:1.9}
.cl-uncovered b{display:inline-flex;align-items:center;gap:5px}
.cl-unc-chip{display:inline-block;margin:2px 4px 2px 0;padding:1px 7px;background:#fff;border:1px solid #fde68a;border-radius:4px;font-size:11px}
.cl-step1-foot{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap}
  .cl-grid{max-height:52vh;overflow:auto;display:flex;flex-direction:column;gap:12px;padding-right:4px}
  .cl-card{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;
    background:var(--surface);transition:.15s}
  .cl-card:hover{border-color:color-mix(in srgb,var(--primary) 32%,var(--border))}
  .cl-left{flex:none;width:238px;padding:13px 14px;background:var(--surface-2);
    border-right:1px solid var(--border-soft);display:flex;flex-direction:column;gap:8px}
  .cl-anchor{display:flex;align-items:center;gap:7px;font-size:var(--fs-body);font-weight:750;color:var(--text);line-height:1.4}
  .cl-anchor .ic{color:var(--primary);flex:none}
  .cl-cnt{font-size:var(--fs-cap);color:var(--faint);letter-spacing:.02em}
  .cl-raws{display:flex;flex-wrap:wrap;gap:5px}
  .cl-chip{font-size:var(--fs-cap);color:var(--muted);background:var(--surface);border:1px solid var(--border-soft);
    border-radius:var(--r-xs);padding:2px 7px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cl-right{flex:1;min-width:0;display:flex;flex-direction:column}
  .cl-row{display:flex;gap:8px;align-items:center;padding:8px 11px;border-bottom:1px solid var(--border-soft);
    transition:.12s}
  .cl-row:last-child{border-bottom:none}
  .cl-row:hover{background:var(--surface-2)}
  .cl-row.off{opacity:.45}
  .cl-row input[type=checkbox]{accent-color:var(--primary);flex:none;cursor:pointer;margin:0}
  .cl-foot{display:flex;justify-content:space-between;gap:10px;align-items:center;padding-top:4px}

/* ============ L6 完整报告 ============ */
.l6-cover{display:flex;align-items:flex-start;gap:18px;padding:22px 26px;border-radius:var(--r-lg);margin-bottom:16px;
  background:linear-gradient(135deg,#0e2a52 0%,#1A73E8 62%,#0D9488 135%);border:1px solid var(--border);position:relative;overflow:hidden}
.l6-cover::after{content:'';position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;
  background:radial-gradient(circle,rgba(96,165,250,.10),transparent 70%);pointer-events:none}
.l6-cover .lc-no{font-family:'JetBrains Mono',monospace;font-size:var(--fs-cap);letter-spacing:.14em;color:#93c5fd;
  border:1px solid rgba(147,197,253,.32);background:rgba(59,130,246,.10);border-radius:var(--r-xs);padding:3px 9px;display:inline-block}
.l6-cover h2{margin:9px 0 5px;font-size:var(--fs-h2);font-weight:800;color:#f1f5f9;letter-spacing:.01em}
.l6-cover .lc-sub{font-size:var(--fs-sm);color:#94a3b8;line-height:1.7;margin:0}
.l6-cover .lc-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}
.l6-cover .lc-chip{font-size:var(--fs-cap);color:#94a3b8;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  border-radius:var(--r-xs);padding:3px 9px}
.l6-cover .lc-chip b{color:#e2e8f0;font-weight:700}
.l6-cover .lc-right{margin-left:auto;text-align:right;flex:none;position:relative;z-index:1}
.l6-cover .lc-right .lc-issuer{font-size:var(--fs-cap);color:#64748b;line-height:1.85}
.l6-cover .lc-right .lc-issuer b{color:#cbd5e1;font-weight:700}
.l6-print-only{display:none}

/* 顶部操作工具栏 */
.l6-bar{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;padding:13px 18px;margin-bottom:16px}
.l6-bar .l6-brandtag{display:flex;align-items:center;gap:8px;padding:7px 13px;border-radius:var(--r-sm);
  background:var(--surface-2);border:1px solid var(--border);font-size:var(--fs-cap);color:var(--muted);align-self:flex-end}
.l6-bar .l6-brandtag b{color:var(--text);font-weight:750}
.l6-bar .l6-brandtag i{width:8px;height:8px;border-radius:var(--r-full);background:var(--brand-c, var(--primary));flex:none}
.l6-bar .l6-acts{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;align-self:flex-end}

/* 品牌心智盘点与行动机会大卡片 */
.l6-ai{padding:0;overflow:hidden}
.l6-ai-head{display:flex;align-items:center;gap:12px;padding:15px 20px;border-bottom:1px solid var(--border-soft);flex-wrap:wrap}
.l6-ai-head .l6-ai-title{display:flex;align-items:center;gap:9px;font-size:var(--fs-body);font-weight:750;color:var(--text)}
.l6-ai-head .l6-ai-title .ic{color:var(--primary)}
.l6-ai-tabs{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.l6-ai-tab{font-size:var(--fs-cap);font-weight:650;padding:6px 12px;border-radius:var(--r-sm);cursor:pointer;font-family:inherit;
  border:1px solid var(--border);background:var(--surface-2);color:var(--muted);transition:.14s;display:inline-flex;align-items:center;gap:5px}
.l6-ai-tab:hover{border-color:color-mix(in srgb,var(--primary) 40%,var(--border));color:var(--text)}
.l6-ai-tab.on{background:var(--primary-weak);border-color:color-mix(in srgb,var(--primary) 45%,transparent);color:var(--primary)}
.l6-ai-tab .cached{font-size:var(--fs-cap);color:var(--positive);font-weight:800}
.l6-ai-body{padding:18px 22px 20px}
.l6-headline{display:flex;gap:11px;align-items:flex-start;padding:13px 16px;border-radius:var(--r-md);
  background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--primary)}
.l6-headline .ic{color:var(--primary);flex:none;margin-top:2px}
.l6-headline p{margin:0;font-size:var(--fs-body);line-height:1.85;color:var(--text)}
.l6-bullets{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:9px}
.l6-bullets li{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-sm);line-height:1.8;color:var(--muted);
  padding:10px 13px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--border-soft)}
.l6-bullets li .l6-bno{flex:none;width:19px;height:19px;border-radius:var(--r-xs);display:grid;place-items:center;margin-top:2px;
  font-size:var(--fs-cap);font-weight:800;background:var(--primary-weak);color:var(--primary);font-family:'JetBrains Mono',monospace}
.l6-ai-foot{display:flex;align-items:center;gap:9px;margin-top:14px;font-size:var(--fs-cap);color:var(--faint);flex-wrap:wrap}
.l6-ai-empty{text-align:center;padding:30px 16px;color:var(--faint);font-size:var(--fs-sm);line-height:1.9}
.l6-ai-empty .ic{color:var(--faint);opacity:.55;margin-bottom:6px}
.l6-ai-busy{display:flex;align-items:center;justify-content:center;gap:9px;padding:30px 16px;color:var(--primary);font-size:var(--fs-sm);font-weight:650}
/* GEO 作战方案（篇章十一） */
.l6-sp{padding:0;overflow:hidden}
.l6-sp-head{display:flex;align-items:center;gap:12px;padding:15px 20px;border-bottom:1px solid var(--border-soft);flex-wrap:wrap}
.l6-sp-title{display:flex;align-items:center;gap:9px;font-size:var(--fs-body);font-weight:750;color:var(--text)}
.l6-sp-title .ic{color:var(--primary)}
.l6-sp-acts{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.l6-sp-note{font-size:var(--fs-cap);color:var(--muted);line-height:1.8;padding:12px 20px 0}
.l6-sp-sub{font-size:var(--fs-sm);font-weight:800;color:var(--text);margin:18px 20px 8px;display:flex;align-items:center;gap:8px}
.l6-sp-count{font-size:var(--fs-cap);font-weight:650;color:var(--primary);background:var(--primary-weak);border-radius:var(--r-xs);padding:2px 8px}
.l6-top3{margin:14px 20px 0;border:1px solid color-mix(in srgb,var(--primary) 30%,var(--border));border-radius:var(--r-sm);background:color-mix(in srgb,var(--primary) 5%,transparent);overflow:hidden}
.l6-top3-h{font-size:var(--fs-cap);font-weight:800;letter-spacing:.05em;color:var(--primary);padding:9px 14px 0}
.l6-top3-row{display:flex;flex-direction:column;gap:2px;padding:6px 14px 11px}
.l6-top3-item{display:flex;align-items:flex-start;gap:9px;font-size:var(--fs-sm);color:var(--text);line-height:1.7}
.l6-ex-top3{align-items:flex-start}
.l6-ex-top3-in{display:flex;flex-direction:column;gap:6px}
.l6-top3-src{font-size:var(--fs-cap);color:var(--faint);font-weight:600}
.l6-top3-list{margin:0;padding-left:18px;font-size:var(--fs-sm);color:var(--text);line-height:1.8}
.l6-camp{display:flex;flex-direction:column;gap:8px;padding:0 20px}
.l6-camp-item{border:1px solid var(--border-soft);border-radius:var(--r-sm);padding:10px 14px;font-size:var(--fs-sm);line-height:1.7}
.l6-camp-item b{color:var(--text)}
.l6-camp-cards{font-size:var(--fs-cap);color:var(--faint);margin-left:8px}
.l6-camp-why{font-size:var(--fs-cap);color:var(--muted);margin-top:3px}
.l6-bcards{display:flex;flex-direction:column;gap:12px;padding:0 20px}
.l6-bcard{border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;background:var(--surface)}
.l6-bc-head{display:flex;align-items:center;gap:9px;padding:10px 14px;background:var(--surface-2);flex-wrap:wrap;border-bottom:1px solid var(--border-soft)}
.l6-bc-scene{flex:none;font-size:var(--fs-cap);font-weight:800;padding:3px 10px;border-radius:var(--r-full);border:1px solid var(--border)}
.l6-bc-scene.sc-blue_ocean{color:var(--primary);background:var(--primary-weak);border-color:color-mix(in srgb,var(--primary) 35%,transparent)}
.l6-bc-scene.sc-red_sea{color:#dc2626;background:color-mix(in srgb,#dc2626 9%,transparent);border-color:color-mix(in srgb,#dc2626 30%,transparent)}
.l6-bc-scene.sc-swinging,.l6-bc-scene.sc-cross_engine{color:#d97706;background:color-mix(in srgb,#d97706 9%,transparent);border-color:color-mix(in srgb,#d97706 30%,transparent)}
.l6-bc-scene.sc-stable{color:#059669;background:color-mix(in srgb,#059669 9%,transparent);border-color:color-mix(in srgb,#059669 30%,transparent)}
.l6-bc-pb{font-size:var(--fs-sm);color:var(--text)}
.l6-bc-q{font-size:var(--fs-cap);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.l6-bc-ev{display:flex;flex-wrap:wrap;gap:6px;padding:9px 14px 0}
.l6-ev-chip{font-size:var(--fs-cap);color:var(--muted);background:var(--surface-3);border:1px solid var(--border-soft);border-radius:var(--r-xs);padding:2px 8px}
.l6-bc-rat{font-size:var(--fs-cap);color:var(--faint);line-height:1.7;padding:8px 14px 2px}
.l6-bcard table.l6-bc-acts{table-layout:fixed;margin:8px 14px 12px;width:calc(100% - 28px)}
.l6-bcard table.l6-bc-acts td{vertical-align:top;font-size:var(--fs-cap);line-height:1.6;word-break:break-word;overflow-wrap:break-word}
.l6-bc-owner{color:var(--faint);font-size:var(--fs-cap)}
.l6-road{padding:0 20px 4px}
.l6-road-row{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px}
.l6-road-ph{flex:1;min-width:140px;border:1px solid var(--border-soft);border-radius:var(--r-sm);padding:10px 12px;background:var(--surface-2)}
.l6-road-tag{font-size:var(--fs-cap);font-weight:800;color:var(--primary)}
.l6-road-ms{font-size:var(--fs-cap);color:var(--text);line-height:1.6;margin-top:4px}
.l6-road-links{font-size:var(--fs-cap);color:var(--faint);margin-top:4px}
.l6-strategy .l6-ai-foot{padding:0 20px 16px;margin-top:6px}
/* 批次D：动作状态流转 + 行动对账表 */
.l6-astat{border:1px solid var(--border);border-radius:var(--r-xs);background:var(--surface-2);color:var(--muted);cursor:pointer}
.l6-astat-txt{display:none;font-size:var(--fs-cap);font-weight:700;color:var(--muted)}
.l6-astat.st-doing{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 40%,transparent);background:var(--primary-weak)}
.l6-astat.st-done{color:var(--ok-fg,#059669);border-color:color-mix(in srgb,var(--ok-fg,#059669) 40%,transparent)}
.l6-astat.st-skipped{color:var(--faint)}
.l6-rec-tb{table-layout:fixed;width:100%}
.l6-rec-tb td{vertical-align:top;font-size:var(--fs-cap);line-height:1.6;word-break:break-word}
.l6-rec-st{font-size:var(--fs-cap);font-weight:700;padding:2px 8px;border-radius:var(--r-full);border:1px solid var(--border);color:var(--muted)}
.l6-rec-st.st-doing{color:var(--primary);background:var(--primary-weak)}
.l6-rec-st.st-done{color:var(--ok-fg,#059669)}
.l6-rec-st.st-skipped{color:var(--faint)}
.l6-rec-done{font-style:normal;color:var(--ok-fg,#059669);margin-left:4px}
/* L8 提案诊断报告（批次E） */
.l8-ch{display:flex;align-items:center;gap:11px;margin:26px 0 12px;break-inside:avoid}
.l8-ch .l8-ch-no{flex:none;width:30px;height:30px;border-radius:var(--r-sm);display:grid;place-items:center;font-weight:800;font-size:var(--fs-cap);color:#fff;background:var(--primary)}
.l8-ch h3{margin:0;font-size:var(--fs-h3);font-weight:800;color:var(--text)}
.l8-ch .l8-ch-en{font-size:var(--fs-cap);color:var(--faint);letter-spacing:.14em;text-transform:uppercase;font-weight:650}
.l8-ch .l8-ch-line{flex:1;height:1px;background:var(--border)}
.l8-headline{display:flex;gap:10px;align-items:flex-start;background:var(--surface-2);border-left:3px solid var(--primary);border-radius:0 var(--r-sm) var(--r-sm) 0;padding:14px 18px}
.l8-headline .ic{color:var(--primary);flex:none;margin-top:3px}
.l8-headline p{margin:0;font-size:var(--fs-body);line-height:1.85;color:var(--text)}
.l8-three{margin-top:14px;display:flex;flex-direction:column;gap:6px}
.l8-three-h{font-size:var(--fs-sm);font-weight:800;color:var(--text)}
.l8-three-item{display:flex;gap:9px;align-items:flex-start;font-size:var(--fs-sm);line-height:1.7}
.l8-src{font-size:var(--fs-cap);color:var(--primary);margin-top:2px}
.l8-board{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.l8-board-row{display:flex;align-items:center;gap:10px;font-size:var(--fs-sm)}
.l8-board-row.self{font-weight:800;color:var(--primary)}
.l8-board-rank{width:20px;text-align:center;color:var(--faint);font-size:var(--fs-cap)}
.l8-board-name{width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.l8-board-bar{flex:1;height:10px;background:var(--surface-3);border-radius:var(--r-full);overflow:hidden}
.l8-board-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),color-mix(in srgb,var(--primary) 55%,#fff));border-radius:var(--r-full)}
.l8-board-row.self .l8-board-bar span{background:var(--ok-fg,#059669)}
.l8-board-share{width:52px;text-align:right;color:var(--muted)}
.l8-pf{display:flex;flex-wrap:wrap;gap:10px}
.l8-pf-item{flex:1;min-width:150px;border:1px solid var(--border-soft);border-radius:var(--r-sm);padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.l8-pf-item b{font-size:var(--fs-cap);color:var(--muted);font-weight:700}
.l8-pf-item .mono{font-size:var(--fs-h3);font-weight:800;color:var(--text)}
.l8-pf-sub{font-size:var(--fs-cap);color:var(--faint)}
.l8-unlisted{margin-top:12px;font-size:var(--fs-cap);color:var(--muted);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.l8-unlisted .ic{color:var(--primary)}
.l8-bggrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.l8-bg-h{font-size:var(--fs-sm);font-weight:800;margin-bottom:8px}
.l8-bg-h.red{color:#dc2626}.l8-bg-h.blue{color:var(--primary)}
.l8-bg-q{border:1px solid var(--border-soft);border-radius:var(--r-sm);padding:10px 12px;margin-bottom:8px;background:var(--surface-2)}
.l8-bg-qt{font-size:var(--fs-sm);color:var(--text);line-height:1.6;font-weight:600}
.l8-bg-meta{font-size:var(--fs-cap);color:var(--faint);margin-top:4px}
.l8-bg-act{font-size:var(--fs-cap);color:var(--primary);margin-top:4px}
.l8-bg-empty{font-size:var(--fs-cap);color:var(--faint);padding:6px 0}
.l8-layers{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.l8-layer{display:inline-flex;gap:5px;align-items:center;font-size:var(--fs-cap);color:var(--muted);border:1px solid var(--border-soft);border-radius:var(--r-full);padding:3px 9px}
.l8-layer i{width:8px;height:8px;border-radius:50%;display:inline-block}
.l8-site{display:flex;gap:16px;margin-bottom:14px;flex-wrap:wrap}
.l8-site-score{flex:none;width:120px;border:1px solid var(--border);border-radius:var(--r-sm);padding:12px;text-align:center}
.l8-site-score .hv{font-size:var(--fs-h2);font-weight:800}
.l8-site-score.ok .hv{color:var(--ok-fg,#059669)}.l8-site-score.warn .hv{color:var(--warn-fg,#d97706)}.l8-site-score.bad .hv{color:var(--bad-fg,#dc2626)}
.l8-site-score .hs{font-size:var(--fs-cap);color:var(--faint)}
.l8-site-dims{flex:1;min-width:260px;display:flex;flex-direction:column;gap:8px}
.l8-dim{font-size:var(--fs-cap)}
.l8-dim b{color:var(--text);margin:0 6px}
.l8-dim-st{font-weight:800}.l8-dim-st.s-fail{color:#dc2626}.l8-dim-st.s-warn{color:#d97706}
.l8-dim-sc{color:var(--faint);float:right}
.l8-dim-fix{color:var(--muted);margin-top:2px;line-height:1.6}
.l8-gap-tb,.l8-pb-tb{table-layout:fixed;width:100%}
.l8-gap-tb td,.l8-pb-tb td{vertical-align:top;font-size:var(--fs-cap);line-height:1.6;word-break:break-word}
.l8-camps{margin-bottom:12px}
.l8-camp{font-size:var(--fs-sm);color:var(--text);line-height:1.7;padding:2px 0}
/* 批次五十三：蓝海 0→1 机制拆解 + 打法定位话术 */
.l8-z2o{margin-top:14px;border:1px solid color-mix(in srgb,var(--primary) 32%,var(--border));border-radius:var(--r-md);background:color-mix(in srgb,var(--primary) 5%,transparent);padding:14px 18px 16px}
.l8-z2o-h{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);font-weight:800;color:var(--primary)}
.l8-z2o-why{font-size:var(--fs-cap);color:var(--muted);line-height:1.85;margin-top:8px}
.l8-z2o-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}
.l8-z2o-step{display:flex;gap:8px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-sm);padding:10px 12px}
.l8-z2o-step b{font-size:var(--fs-cap);color:var(--text);display:block;margin-bottom:3px}
.l8-z2o-step div div{font-size:var(--fs-cap);color:var(--muted);line-height:1.65}
.l8-z2o-no{flex:none;font-size:var(--fs-cap);font-weight:800;color:var(--primary)}
.l8-z2o-flag{display:flex;align-items:center;gap:7px;margin-top:12px;font-size:var(--fs-cap);font-weight:750;color:var(--text);border-top:1px dashed color-mix(in srgb,var(--primary) 35%,var(--border));padding-top:10px}
.l8-z2o-flag .ic{color:var(--primary)}
.l8-pb-pos{font-size:var(--fs-cap);color:var(--primary);font-weight:700;margin-top:3px;line-height:1.55}
/* 批次五十六：跨期趋势章 */
.l6-ct-tb{table-layout:fixed;width:100%;margin-top:12px}
.l6-ct-tb th{white-space:nowrap}
.l6-ct-tb td{vertical-align:middle;font-size:var(--fs-cap);line-height:1.55}
.l6-ct-tb tr.now{background:var(--primary-weak)}
.l6-ct-date{color:var(--faint);margin-left:6px;font-size:var(--fs-cap)}
.l6-ct-ci{color:var(--faint);margin-left:4px;font-size:var(--fs-cap)}
.l6-ct-st{font-size:var(--fs-cap);font-weight:700;color:var(--warn-fg);margin-left:5px}
.l6-ct-warn{color:var(--muted)}
.l6-ct-ev{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:var(--fs-cap)}
.l6-ct-ev b{display:inline-flex;align-items:center;gap:5px;color:var(--text)}
.l6-ct-ev b .ic{color:var(--ok-fg,#059669)}
.l6-ct-ev-item{background:var(--surface-3);border:1px solid var(--border-soft);border-radius:var(--r-full);padding:2px 9px;color:var(--muted)}
/* 服务说明（批次五十八） */
.l6-ssvc{padding:14px 22px 12px;margin-bottom:16px}
.l6-ssvc-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--fs-sm);color:var(--text)}
.l6-ssvc-head b{font-weight:800}
.l6-ssvc-scope{font-size:var(--fs-cap);color:var(--muted)}
.l6-ssvc-scope b{color:var(--text);font-weight:700}
.l6-ssvc-list{margin:8px 0 0;padding-left:18px;font-size:var(--fs-cap);color:var(--muted);line-height:1.8}
.l6-ssvc-list li::marker{color:var(--primary)}
/* 批次五十七：投产台账 + 下期计划 */
.l6-ledg-form{display:grid;grid-template-columns:1fr 140px 1fr 110px 200px auto;gap:8px;margin-bottom:12px;align-items:center}
.l6-ledg-tb{table-layout:fixed;width:100%}
.l6-ledg-tb td{vertical-align:top;font-size:var(--fs-cap);line-height:1.6;word-break:break-word}
.l6-ledg-note{color:var(--faint);margin-top:2px}
.l6-ledg-st{font-size:var(--fs-cap);font-weight:700;padding:2px 8px;border-radius:var(--r-full);border:1px solid var(--border);color:var(--muted);white-space:nowrap}
.l6-ledg-st.ls-published{color:var(--primary);background:var(--primary-weak)}
.l6-ledg-st.ls-indexed{color:var(--ok-fg,#059669)}
.l6-ledg-act i{font-style:normal;font-size:var(--fs-cap);margin-left:5px;padding:1px 6px;border-radius:var(--r-full)}
.l6-np-item{display:flex;gap:10px;padding:8px 0;border-bottom:1px dashed var(--border-soft);align-items:flex-start}
.l6-np-item:last-child{border-bottom:none}
.l6-np-no{flex:none;width:22px;height:22px;border-radius:var(--r-xs);background:var(--primary-weak);color:var(--primary);display:grid;place-items:center;font-size:var(--fs-cap);font-weight:800}
.l6-np-item b{font-size:var(--fs-sm);color:var(--text)}
.l6-np-d{font-size:var(--fs-cap);color:var(--muted);line-height:1.6;margin-top:2px}
.l6-np-b{font-size:var(--fs-cap);color:var(--faint);margin-top:2px}
@media (max-width:1180px){.l8-z2o-steps{grid-template-columns:1fr 1fr}}

/* 8 大章节 */
.l6-chapter{break-inside:avoid;page-break-inside:avoid;margin-bottom:24px}
.l6-ch,.l7-ch{display:flex;align-items:center;gap:11px;margin:26px 0 12px;break-inside:avoid}
.l6-ch .l6-ch-no,.l7-ch .l7-ch-no{flex:none;width:30px;height:30px;border-radius:var(--r-sm);display:grid;place-items:center;
  background:var(--primary-weak);color:var(--primary);font-weight:800;font-size:var(--fs-body);font-family:'JetBrains Mono',monospace;
  border:1px solid color-mix(in srgb,var(--primary) 25%,transparent)}
.l6-ch h3{margin:0;font-size:var(--fs-h3);font-weight:800;color:var(--text);letter-spacing:.01em}
.l6-ch .l6-ch-en,.l7-ch .l7-ch-en{font-size:var(--fs-cap);color:var(--faint);letter-spacing:.14em;text-transform:uppercase;font-weight:650}
.l6-ch .l6-ch-line,.l7-ch .l7-ch-line{flex:1;height:1px;background:var(--border)}

/* L7 基线对齐报告：参照口径条（批次三十五修订——公平赛道与点名/全局口径强隔离） */
.l7-hero4{grid-template-columns:repeat(4,1fr)}
/* 批次四十三：红蓝海地图逐层题目清单 */
.l7-layer{margin-top:14px}
.l7-layer-head{display:flex;align-items:center;gap:8px;font-size:var(--fs-body);font-weight:700;color:var(--text);margin-bottom:8px}
.l7-layer-head i{width:10px;height:10px;border-radius:var(--r-full);flex:none}
/* 基线分层表仅呈现实测事实，问题与品牌名单分配主要宽度。 */
.l7-ocean-tb{table-layout:fixed}
.l7-ocean-tb tbody tr{cursor:default}
.l7-ocean-tb td{vertical-align:top;padding:10px 12px;word-break:break-word}
.l7-ocean-tb th{padding:10px 12px}
.l7-platform-scroll{max-width:100%;overflow-x:auto}
.l7-question-facts p{margin:0;line-height:1.6;color:var(--text)}
.l7-question-summary,.l7-other-brands{font-size:var(--fs-cap);line-height:1.6;color:var(--muted);margin-top:7px}
.l7-platform-summary{font-size:var(--fs-cap);line-height:1.6;color:var(--text);margin-top:7px;font-weight:650}
.l7-ocean-tb td.l7-platform-cell{text-align:center;vertical-align:middle;padding:10px 5px}
.l7-platform-cell b{font-variant-numeric:tabular-nums;display:block;font-size:var(--fs-sm)}
.l7-platform-state{display:block;font-size:var(--fs-cap);margin-top:5px;line-height:1.4}
.l7-platform-cell.is-swinging{background:#FFF7E6!important;color:#8A4B00!important}
.l7-platform-cell.is-mentioned{background:#EAF8F1!important;color:#086343!important}
.l7-platform-cell.is-absent{background:var(--surface-2);color:var(--muted)}
.l7-platform-cell.is-partial,.l7-platform-cell.is-unmeasured{color:var(--muted);background:var(--surface-3)}
.l7-sample-results{display:flex;flex-wrap:wrap;justify-content:center;gap:3px;margin-top:7px;font-size:10px;line-height:1.4}
.l7-sample-results span{border:1px solid currentColor;border-radius:4px;padding:1px 3px}
.l7-sample-results .is-hit{font-weight:650}
.l7-platform-negative{display:block;font-size:var(--fs-cap);color:var(--bad-fg);margin-top:5px}
@media(max-width:760px){.l7-ocean-tb{min-width:850px}}
@media print{.l7-platform-scroll{overflow:visible!important}.l7-ocean-tb{min-width:0!important;width:100%!important}.l7-ocean-tb td,.l7-ocean-tb th{padding:7px 4px;font-size:10px}.l7-ocean-tb tr{break-inside:avoid;page-break-inside:avoid}.l7-platform-cell{print-color-adjust:exact;-webkit-print-color-adjust:exact}.l7-platform-cell b{font-size:11px}.l7-platform-state,.l7-platform-summary,.l7-question-summary,.l7-other-brands{font-size:9px}.l7-sample-results{font-size:8px}}

.l7-comps{display:flex;flex-wrap:wrap;gap:4px}
.l7-comps .badge{padding:1.5px 8px;font-size:var(--fs-cap)}
.l7-refbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:10px 0 4px;padding:10px 14px;
  border:1px dashed var(--border);border-radius:var(--r-md);background:var(--surface-2);
  font-size:var(--fs-cap);color:var(--muted);line-height:1.6}
.l7-refbar b{color:var(--faint);font-weight:650;font-variant-numeric:tabular-nums}
.l7-ref-tag{flex:none;font-size:var(--fs-cap);font-weight:750;letter-spacing:.06em;color:var(--warn-fg,#B45309);
  border:1px solid rgba(245,158,11,.35);border-radius:var(--r-full);padding:2px 9px;background:rgba(245,158,11,.07)}
.l7-ref-div{flex:none;width:1px;height:14px;background:var(--border)}
@media print{.l7-refbar{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#F8FAFC!important;border-color:#CBD5E1!important}
  .l7-refbar b{color:#334155!important}.l7-ref-tag{color:#92400E!important;background:#FEF3C7!important;border-color:#FCD34D!important}
}

/* 第1章 执行摘要（结论先行指标带） */
.l6-exec{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);padding:16px 18px}
.l6-ex-row{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.l6-ex-cell{min-width:0;display:flex;flex-direction:column;gap:3px}
.l6-ex-cell .k{font-size:var(--fs-cap);color:var(--faint);font-weight:650;letter-spacing:.04em}
.l6-ex-cell .v{font-size:var(--fs-h2);font-weight:800;color:var(--text);font-family:'JetBrains Mono',monospace;line-height:1.25}
.l6-ex-cell .s{font-size:var(--fs-cap);color:var(--muted);line-height:1.55}
.l6-ex-note{display:flex;align-items:flex-start;gap:8px;margin-top:14px;padding:10px 13px;border-radius:var(--r-sm);
  background:var(--primary-weak);color:var(--text);font-size:var(--fs-cap);line-height:1.65}
.l6-ex-note .ic{color:var(--primary);flex:none;margin-top:2px}
@media (max-width:1100px){.l6-ex-row{grid-template-columns:repeat(3,1fr)}}
@media print{.l6-exec{break-inside:avoid}}

/* 第1章 数据健康度指标卡 */
.l6-hgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.l6-hcard{padding:14px 16px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--border)}
.l6-hcard .hh{display:flex;align-items:center;gap:7px;font-size:var(--fs-cap);color:var(--faint);font-weight:650}
.l6-hcard .hh i{width:8px;height:8px;border-radius:var(--r-full);flex:none}
.l6-hcard .hv{font-size:var(--fs-h2);font-weight:800;margin-top:8px;font-family:'JetBrains Mono',monospace;color:var(--text)}
.l6-hcard .hs{font-size:var(--fs-cap);color:var(--faint);margin-top:4px;line-height:1.6}
.l6-hcard.ok .hh i{background:var(--positive)} .l6-hcard.ok .hv{color:var(--ok-fg)}
.l6-hcard.warn .hh i{background:var(--warning)} .l6-hcard.warn .hv{color:var(--warn-fg)}
.l6-hcard.bad .hh i{background:var(--danger)} .l6-hcard.bad .hv{color:var(--bad-fg)}
.l6-hcard.na .hh i{background:var(--faint)} .l6-hcard.na .hv{color:var(--muted)}
/* KPI 卡等高化：卡片纵向 flex，迷你可视化（kbar 进度条 / kladder 评级阶梯）沉底填充，行内高度统一 */
.l6-hcard{display:flex;flex-direction:column}
.kviz{margin-top:auto;padding-top:10px}
.kbar{position:relative;height:6px;border-radius:var(--r-full);background:var(--hover)}
.kbar>span{position:absolute;left:0;top:0;bottom:0;min-width:3px;border-radius:var(--r-full);background:var(--faint)}
.l6-hcard.ok .kbar>span{background:var(--positive)}
.l6-hcard.warn .kbar>span{background:var(--warning)}
.l6-hcard.bad .kbar>span{background:var(--danger)}
.kbar i{position:absolute;top:-1.5px;bottom:-1.5px;width:1px;background:var(--faint);opacity:.55}
/* 商业评级四级阶梯：当前档高亮，已过档半透明 */
.kladder{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
.kladder .kstep{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
.kladder .kstep i{width:100%;height:5px;border-radius:var(--r-full);background:var(--hover)}
.kladder .kstep em{font-style:normal;font-size:var(--fs-cap);color:var(--faint);white-space:nowrap}
.kladder .kstep.done i{background:var(--brand-soft,var(--primary));opacity:.42}
.kladder .kstep.now i{background:var(--brand-soft,var(--primary))}
.kladder .kstep.now em{color:var(--text);font-weight:700}
/* 当前档位圈选强化（批次三十六：l7 北极星阶梯——一眼看出处于哪一阶段） */
.l7-hero4 .kladder .kstep.now em{border:1.5px solid var(--primary);border-radius:var(--r-full);padding:1px 8px;background:color-mix(in srgb,var(--primary) 8%,transparent)}
.l7-hero4 .kladder .kstep.done em{color:var(--muted)}
.l6-hcard.chart-cell{display:flex;flex-direction:column;break-inside:avoid;page-break-inside:avoid;overflow:hidden}
.l6-hcard.chart-cell .hh i{background:var(--primary)}
.l6-hcard.chart-cell .sov-chart{margin-top:8px}

/* 口径纪律声明框 */
.l6-declare{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:12px 15px;border-radius:var(--r-sm);
  background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--brand-soft,var(--primary));font-size:var(--fs-cap);line-height:1.8;color:var(--muted)}
.l6-declare .ic{color:var(--brand-soft,var(--primary));flex:none;margin-top:2px}
.l6-declare b{color:var(--text);font-weight:750}

/* 第2章 品牌事实库 */
.l6-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.l6-fact{padding:14px 16px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--border)}
.l6-fact .fk{font-size:var(--fs-cap);color:var(--faint);font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.l6-fact .fv{font-size:var(--fs-body);color:var(--text);font-weight:700;margin-top:6px;line-height:1.6;word-break:break-all}
.l6-fact .fv.mono-v{font-family:'JetBrains Mono',monospace;font-size:var(--fs-cap);font-weight:650}
.l6-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.l6-chip{font-size:var(--fs-cap);padding:3px 9px;border-radius:var(--r-xs);background:var(--surface-3);border:1px solid var(--border-soft);color:var(--muted)}
.l6-warnlist{margin-top:12px;padding:12px 15px;border-radius:var(--r-sm);background:var(--surface-2);
  border:1px solid var(--border);border-left:3px solid var(--warning)}
.l6-warnlist .wl-t{font-size:var(--fs-cap);font-weight:750;color:var(--warn-fg);display:flex;align-items:center;gap:7px}
.l6-warnlist ul{margin:8px 0 0;padding-left:18px;font-size:var(--fs-cap);line-height:1.9;color:var(--muted)}

/* 第4章 好感度仪表 + 标签频次 */
.l6-gauge-wrap{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.l6-score{flex:none;text-align:center;padding:18px 26px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--border)}
.l6-score .n{font-size:var(--fs-metric);font-weight:850;font-family:'JetBrains Mono',monospace;line-height:1.1}
.l6-score .u{font-size:var(--fs-cap);color:var(--faint);margin-top:5px;letter-spacing:.05em}
.l6-score .d{font-size:var(--fs-cap);color:var(--muted);margin-top:7px}
.l6-tags{display:flex;gap:6px;flex-wrap:wrap;align-content:flex-start;flex:1;min-width:220px}
.l6-tag{font-size:var(--fs-cap);padding:4px 11px;border-radius:var(--r-full);border:1px solid transparent;font-weight:650;line-height:1.45}
.l6-tag.pos{background:var(--ok-bg);color:var(--ok-fg);border-color:color-mix(in srgb,var(--positive) 30%,transparent)}
.l6-tag.neg{background:var(--bad-bg);color:var(--bad-fg);border-color:color-mix(in srgb,var(--danger) 30%,transparent)}
.l6-tag .cnt{opacity:.75;font-weight:750;margin-left:3px;font-family:'JetBrains Mono',monospace;font-size:var(--fs-cap)}

/* 第5章 双面信源卡 */
.l6-faces{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.l6-face{padding:15px 17px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--border)}
.l6-face .ft{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);font-weight:750;color:var(--text)}
.l6-face .fd{font-size:var(--fs-cap);color:var(--faint);margin-top:3px;line-height:1.6}
.l6-face .fn{display:flex;gap:16px;margin-top:11px;flex-wrap:wrap}
.l6-face .fn div{font-size:var(--fs-cap);color:var(--faint)}
.l6-face .fn b{display:block;font-size:var(--fs-h3);font-weight:800;color:var(--text);font-family:'JetBrains Mono',monospace;margin-top:2px}

/* 第7章 官网体检维度行 */
.l6-dims{display:flex;flex-direction:column;gap:8px}
.l6-dim{display:flex;gap:11px;align-items:flex-start;padding:11px 14px;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border-soft)}
.l6-dim .dn{flex:none;width:22px;height:22px;border-radius:var(--r-xs);display:grid;place-items:center;font-size:var(--fs-cap);font-weight:800;font-family:'JetBrains Mono',monospace}
.l6-dim .db{flex:1;min-width:0}
.l6-dim .dt{font-size:var(--fs-sm);font-weight:700;color:var(--text)}
.l6-dim .dd{font-size:var(--fs-cap);color:var(--muted);margin-top:3px;line-height:1.7}
.l6-dim .ds{flex:none;font-size:var(--fs-cap);font-weight:750;font-family:'JetBrains Mono',monospace;text-align:right;min-width:64px}
.l6-audit-page{padding:14px 16px;margin:10px 20px;border:1px solid var(--border-soft);border-radius:var(--r-sm);background:var(--surface-2);break-inside:avoid;page-break-inside:avoid}
.l6-audit-page h4{margin:0 0 7px;font-size:var(--fs-sm);color:var(--text)}
.l6-audit-page .l6-dims{margin-top:8px}

/* 第8章 抽样明细 */
.l6-samples .tb tr{cursor:pointer}
.l6-samples .tb tr.rowmain:hover{background:var(--hover)}
.l6-sdetail td{background:var(--surface);font-size:var(--fs-cap);color:var(--muted);line-height:1.8;padding:9px 12px 11px!important}
.l6-sdetail .sd-row{display:flex;gap:7px;align-items:baseline;flex-wrap:wrap;margin-top:3px}
.l6-sdetail .sd-k{flex:none;color:var(--faint);font-size:var(--fs-cap);min-width:66px}
.l6-sdetail a{color:var(--primary);text-decoration:none;word-break:break-all}
.l6-sdetail a:hover{text-decoration:underline}
.l6-expand-btn{font-size:var(--fs-cap);color:var(--primary);cursor:pointer;user-select:none;font-weight:650}

/* 基线报告仅 02/03 的 A4 排版；屏幕和其他章节沿用原样。 */
/* 批次一百零二：探针矩阵徽章——计数与状态上下堆叠，窄列不折行不截词 */
.l7-probe-table td:not(:first-child) .badge{flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:1px;padding:4px 8px;white-space:normal;max-width:100%}
.l7-probe-table td:not(:first-child) .badge::before{display:none}
.l7-probe-count{white-space:nowrap;font-weight:650}
.l7-probe-status{white-space:nowrap;font-size:10px;font-weight:500;opacity:.9}
.l7-probe-print-name{display:none}
@media print{
  .l7-print-chapter{break-before:page;page-break-before:always}
  .l7-print-chapter>.l7-ch{margin:0 0 12px;break-after:avoid;page-break-after:avoid}
  .l7-print-chapter>.card{break-inside:auto!important;page-break-inside:auto!important;overflow:visible!important}
  .l7-print-chapter table.tb{table-layout:fixed;width:100%;font-size:12px;line-height:1.6}
  .l7-print-chapter table.tb th{position:static;padding:8px 6px;font-size:11px;letter-spacing:0;white-space:normal;overflow-wrap:anywhere;backdrop-filter:none;-webkit-backdrop-filter:none}
  .l7-print-chapter table.tb td{padding:8px 6px;overflow-wrap:anywhere;word-break:normal}
  .l7-print-chapter table.tb tr{break-inside:avoid;page-break-inside:avoid}
  .l7-print-chapter .badge{display:inline-block;box-sizing:border-box;max-width:100%;padding:3px 5px;border-radius:6px;font-size:11px;letter-spacing:0;line-height:1.5;white-space:normal!important;overflow-wrap:anywhere}
  .l7-print-chapter .badge::before{display:none}
  .l7-question-table th:nth-child(1){width:4%!important}
  .l7-question-table th:nth-child(2){width:35%!important}
  .l7-question-table th:nth-child(3),.l7-question-table th:nth-child(4){width:9%!important}
  .l7-question-table th:nth-child(5),.l7-question-table th:nth-child(7){width:8%!important}
  .l7-question-table th:nth-child(6){width:17%!important}
  .l7-question-table th:nth-child(8){width:10%!important}
  .l7-question-table td:nth-child(2){vertical-align:top}
  .l7-question-table th{padding-left:3px!important;padding-right:3px!important}
  .l7-probe-screen-name{display:none}
  .l7-probe-print-name{display:inline}
  .l7-probe-table th{text-transform:none!important}
  .l7-print-chapter .l7-probe-table td{padding-top:4px;padding-bottom:4px}
  .l7-probe-table th:first-child{width:40%}
  .l7-probe-table th:not(:first-child){width:12%;text-align:center}
  .l7-probe-table td:not(:first-child){text-align:center}
  .l7-probe-table td:first-child>.badge{display:block;width:max-content;margin:2px 0 0!important;padding:1px 4px;font-size:10px;line-height:1.4}
  .l7-probe-count{display:block;font-variant-numeric:tabular-nums}
  .l7-probe-status{display:block;margin-top:3px;font-size:10.5px;font-weight:500}
  .l7-probe-evidence>.l6-note{font-size:11px;line-height:1.6;margin-top:12px}
}
@media (max-width:1180px){
  .l6-hgrid{grid-template-columns:repeat(2,1fr)}
  .l6-facts,.l6-faces{grid-template-columns:1fr}
}

@media (max-width:640px){
  html,body,#app,.layout,.shell,.content{width:100%;min-width:0;max-width:100%;}
  .layout{overflow-x:hidden}
  /* Narrow screens keep navigation in document flow, above the report. */
  .sidebar{position:relative;inset:auto;width:100%;border-right:0;border-bottom:1px solid var(--border)}
  .sidebar .brand{padding:10px 12px}
  .sidebar .nav{flex-direction:row;flex:none;overflow-x:auto;overflow-y:hidden;padding:8px;gap:4px}
  .sidebar .nav-cap,.sidebar .ind{display:none}
  .sidebar .nav-item{flex:none;width:auto;gap:7px;padding:10px}
  .sidebar .nv span{display:none}
  .sidebar .side-foot{padding:6px 10px;gap:2px}
  .sidebar .sys{padding:5px 2px}
  .shell{margin-left:0!important}
  .content{padding:12px!important;box-sizing:border-box}
  .topbar{height:auto;min-height:64px;padding:12px;flex-wrap:wrap;gap:10px}
  .topbar>.tb-left,.topbar>.tb-right{min-width:0;max-width:100%;flex-wrap:wrap}
  .topbar>.tb-right{margin-left:0}
  .home-top,.hm-head{align-items:stretch;flex-direction:column;min-width:0}
  .task-intro{align-items:flex-start;flex-direction:column;gap:5px}
  .task-intro .task-note{white-space:normal}
  .hm-brand{width:100%;}
  .hm-search{width:100%;min-width:0;box-sizing:border-box}
  .hm-title b,.hm-title span{white-space:normal;overflow-wrap:anywhere}
  .bm-grid{grid-template-columns:minmax(0,1fr);}
  .bm-card,.card,.insight,.kpi{min-width:0;max-width:100%;box-sizing:border-box}
  .grid-2,.grid-3,.tc-cols{grid-template-columns:minmax(0,1fr)!important}
  .chart-head{flex-wrap:wrap;min-width:0}
  .toolbar,.filters{flex-wrap:wrap;min-width:0}
  .toolbar .fld,.filters .fld,.filters .fld.wide{min-width:0;max-width:100%;}
  .l6-hgrid{grid-template-columns:minmax(0,1fr)}
  .l6-ex-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .l6-cover{overflow:hidden}
}

/* ============ 过渡 ============ */
.fade-enter-active,.fade-leave-active{transition:opacity .2s}
.fade-enter-from,.fade-leave-to{opacity:0}
.slide-enter-active,.slide-leave-active{transition:transform .28s cubic-bezier(.4,0,.2,1)}
.slide-enter-from,.slide-leave-to{transform:translateX(100%)}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:rgba(100,116,139,.32);border-radius:var(--r-sm)}
::-webkit-scrollbar-track{background:transparent}

/* ============ 打印报告抬头（平时隐藏） ============ */
.print-head{display:none}

@media print{
  .layout.print-website{page:website-diagnosis}
  @page website-diagnosis{
    @bottom-center{content:"YUNLEI·AI · 官网 AI 可读性诊断 · 第 " counter(page) " / " counter(pages) " 页"}
  }
  /* ---- V-01 纸面安全色覆盖：深色主题的浅色语义值在白纸上对比度仅 1.3:1，打印一律强制回落深色 ---- */
  :root{
    --text:#0F172A; --muted:#475569; --faint:#64748B; --ghost:#94A3B8;
    --bg:#FFFFFF; --surface:#FFFFFF; --surface-2:#FFFFFF; --surface-3:#FFFFFF;
    --border:#CBD5E1; --border-soft:#E2E8F0;
    --ok-fg:#065F46; --ok-bg:#F0FDF4;
    --warn-fg:#92400E; --warn-bg:#FFFBEB;
    --bad-fg:#9F1239;  --bad-bg:#FFF1F2;
    --kpi-sov:#4338CA; --kpi-top1:#047857; --kpi-align:#B45309; --kpi-halluc:#BE123C;
  }
  /* 深色主题下这些变量被 data-theme 覆盖，打印时需再次压回纸面安全值 */
  [data-theme="dark"]{
    --text:#0F172A; --muted:#475569; --faint:#64748B; --ghost:#94A3B8;
    --bg:#FFFFFF; --surface:#FFFFFF; --surface-2:#FFFFFF; --surface-3:#FFFFFF;
    --border:#CBD5E1; --border-soft:#E2E8F0;
    --ok-fg:#065F46; --ok-bg:#F0FDF4;
    --warn-fg:#92400E; --warn-bg:#FFFBEB;
    --bad-fg:#9F1239;  --bad-bg:#FFF1F2;
    --kpi-sov:#4338CA; --kpi-top1:#047857; --kpi-align:#B45309; --kpi-halluc:#BE123C;
  }
  .l6-hcard.ok,.l6-hcard.warn,.l6-hcard.bad,.l6-tag.pos,.l6-tag.neg,.l6-cover,.kbar>span,.kladder .kstep i{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  /* 批次二十三 P0-5：打印基底恒白——暗色主题下 surface 变量已被上面 :root/[data-theme=dark] 重置为白，
     但 html/body 的 background 简写含 --bg 渐变等场景仍可能透深色，强制压白杜绝「浅字深底/白字白纸」两类打印事故 */
  html,body{background:#FFFFFF!important}

  /* ---- V-02 页脚页码：@page 边距盒（Chrome 128+）+ 章节级兜底 ---- */
  @page{
    size:A4;
    margin:14mm 13mm 16mm;
    @bottom-center{
      content:"YUNLEI·AI · GEO 完整报告 · 机密   第 " counter(page) " / " counter(pages) " 页";
      font-size:var(--fs-cap); color:#64748B; letter-spacing:.05em;
    }
  }
  /* 兜底（不支持 @page 边距盒的浏览器）：每个章节自绘迷你页脚，保证任意一页被单独传阅时归属可考 */
  .l6-chapter::after{
    content:"YUNLEI·AI · GEO 完整报告 · 机密";
    display:block;margin-top:12px;padding-top:5px;
    border-top:1px solid #E2E8F0;
    font-size:var(--fs-cap);color:#475569;letter-spacing:.06em;text-align:center;
  }

  .sidebar,.topbar,.progress-wrap,.toast,.no-print,.drawer,.mask{display:none!important}
  .shell{margin-left:0}
  body{background:#fff}
  .card,.insight,.kpi{box-shadow:none;break-inside:avoid}

  /* ---- GEO 品牌可见度诊断报告抬头 ---- */
  .print-head{display:block;border-bottom:2.5px solid #1A73E8;padding:0 0 13px;margin:0 0 18px;break-inside:avoid;page-break-inside:avoid}
  .print-head .ph-top{display:flex;align-items:center;gap:12px;margin-bottom:13px}
  .print-head .ph-logo{flex:none;display:flex;align-items:center}
  .print-head .ph-logo img{height:30px;width:auto;display:block}
  .print-head .ph-brand{font-size:var(--fs-h2);font-weight:800;color:#0F172A;letter-spacing:.01em;line-height:1.25}
  .print-head .ph-sub{font-size:var(--fs-cap);color:#64748B;letter-spacing:.2em;text-transform:uppercase;margin-top:3px;font-weight:600}
  .print-head .ph-no{margin-left:auto;text-align:right;font-size:var(--fs-cap);color:#94A3B8;line-height:1.7;flex:none}
  .print-head .ph-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 24px}
  .print-head .ph-row{font-size:var(--fs-cap);color:#334155;display:flex;gap:7px;align-items:baseline;border-bottom:1px dotted #CBD5E1;padding-bottom:4px;min-width:0}
  .print-head .ph-k{color:#64748B;flex:none;font-size:var(--fs-cap)}
  .print-head .ph-v{font-weight:700;color:#0F172A;word-break:break-all;overflow:hidden;text-overflow:ellipsis}
  .print-legal-footer{display:block;margin-top:24px;padding-top:8px;border-top:1px solid #CBD5E1;color:#64748B;font-size:9pt;line-height:1.4;break-inside:avoid;page-break-inside:avoid}

  /* ---- 图表自适应纸面宽度，避免横向溢出 ---- */
  .chart-card{break-inside:avoid;page-break-inside:avoid;overflow:hidden;max-width:100%}
  .chart-card>div[_echarts_instance_]{width:100%!important;max-width:100%!important}
  .grid-2,.grid-3{max-width:100%}
  .table-wrap{max-height:none!important;overflow:visible!important}
  thead{display:table-header-group}
  tr,td,th{break-inside:avoid;page-break-inside:avoid}
  .content{padding:0!important}
  main.content>.card,main.content>.insight,main.content>.kpis{margin-top:14px}
  section{page-break-after:auto}
  a{color:#0F172A;text-decoration:none}

  /* ---- L6 完整报告：多页连续打印（10~20 页 A4 咨询交付稿） ---- */
  .l6-cover{-webkit-print-color-adjust:exact;print-color-adjust:exact;box-shadow:none}
  .l6-cover::after{display:none}
  .l6-bar,.l6-ai-tabs,.no-print{display:none!important}
  .l6-chapter{break-inside:avoid;page-break-inside:avoid;margin-bottom:24px}
  .l6-ch,.l7-ch{margin-top:18px}
  .l6-ch h3{font-size:var(--fs-body)}
  .l6-ai-body{padding:14px 16px}
  .l6-headline p{font-size:var(--fs-cap)}
  .l6-bullets li{font-size:var(--fs-cap);padding:8px 10px}
  .l6-hgrid{grid-template-columns:repeat(4,1fr)}
  .l6-hgrid.l7-hero4{grid-template-columns:repeat(4,1fr)}
  .l6-facts,.l6-faces{grid-template-columns:1fr 1fr}
  .l6-ai{break-inside:avoid}
  .l6-ssvc{break-inside:avoid;page-break-inside:avoid}
  .l6-bcard,.l6-camp-item,.l6-top3,.l6-road-ph{break-inside:avoid;page-break-inside:avoid}
  .l6-road-row{overflow:visible}
  .l6-astat{display:none!important}
  .l6-astat-txt{display:inline!important}
  .l6-print-only{display:block}
  /* 打印时展开全部抽样明细（不截断） */
  .l6-samples .table-wrap{max-height:none!important;overflow:visible!important}
}
@media (max-width:1180px){
  .kpis{grid-template-columns:repeat(2,1fr)}
  .grid-3,.grid-2{grid-template-columns:1fr}
  .task-grid{grid-template-columns:1fr}
  .ops-overview-grid{grid-template-columns:minmax(0,1fr)}
  .sandbox-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:700px){.sandbox-results{grid-template-columns:minmax(0,1fr)}}
/* V-26：尊重系统「减弱动态效果」偏好 —— 全局动画/过渡降到近零时长，
   常驻呼吸灯改为静态光晕，滚动回到即时跳转。 */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
  .dot{animation:none;box-shadow:0 0 0 3px rgba(16,185,129,.18)}
}
/* Evidence-first website diagnostics */
.wd-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.wd-controls label,.wd-compare-controls label{display:flex;flex-direction:column;gap:7px;font-size:var(--fs-cap);color:var(--muted);min-width:0}.wd-controls select{width:100%}.wd-advanced{margin:14px 0}.wd-advanced summary, .wd-issue summary,.wd-text summary,.wd-render summary{cursor:pointer;font-size:var(--fs-sm);color:var(--primary)}.wd-advanced textarea{display:block;width:100%;margin-top:8px}.wd-checkbox{display:flex;gap:8px;align-items:center;margin:12px 0;font-size:var(--fs-sm)}.wd-loading{margin-top:16px;padding:48px;text-align:center;color:var(--muted)}.wd-loading h3{margin:14px 0 8px}.wd-findings,.wd-pages,.wd-render,.wd-compare,.wd-drafts,.wd-observation{padding:22px 24px;min-width:0}.wd-pages,.wd-render,.wd-compare,.wd-drafts,.wd-observation{margin-top:16px}.wd-coverage{display:flex;flex-direction:column;align-items:center;margin:16px 0 6px}.wd-coverage b{font-size:var(--fs-h2)}.wd-coverage span{font-size:var(--fs-cap);color:var(--muted)}.wd-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.wd-status{padding:10px 12px;background:color-mix(in srgb,#F59E0B 10%,transparent);border:1px solid color-mix(in srgb,#F59E0B 30%,transparent);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--text);line-height:1.7;overflow-wrap:anywhere;margin:12px 0}.wd-issue{padding:16px 0;border-bottom:1px solid var(--border)}.wd-issue:last-of-type{border-bottom:0}.wd-issue-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.wd-issue-head .mono{margin-left:auto;font-size:var(--fs-cap);color:var(--muted)}.wd-tag{padding:3px 7px;border-radius:var(--r-xs);font-size:var(--fs-cap);font-weight:700}.wd-issue p{font-size:var(--fs-sm);line-height:1.75;margin:8px 0;overflow-wrap:anywhere}.wd-path,.wd-hash{font-size:var(--fs-cap);color:var(--faint);overflow-wrap:anywhere;margin-top:8px}.wd-fix{font-size:var(--fs-sm);line-height:1.7;color:var(--muted);margin-top:6px;overflow-wrap:anywhere}.wd-evidence{display:flex;flex-direction:column;gap:6px;background:var(--surface-2);padding:12px;border-radius:var(--r-sm);font-size:var(--fs-cap);overflow-wrap:anywhere;margin-top:8px}.wd-page-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.wd-page-tabs button{white-space:normal;max-width:100%;overflow-wrap:anywhere}.wd-page-tabs span{opacity:.7;font-size:var(--fs-cap)}.wd-page-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:var(--fs-cap);color:var(--muted);overflow-wrap:anywhere}.wd-text{margin-top:10px}.wd-text pre,.wd-render-text{white-space:pre-wrap;overflow-wrap:anywhere;max-height:250px;overflow:auto;padding:14px;background:var(--surface-2);font-size:var(--fs-sm);line-height:1.75}.wd-global{margin-top:20px;border-top:1px solid var(--border);padding-top:16px}.wd-bots{display:grid;gap:8px;margin:14px 0}.wd-bots>div{display:flex;flex-wrap:wrap;gap:10px;font-size:var(--fs-cap)}.wd-bots>div span{color:var(--muted)}.wd-compare-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:12px;align-items:end;margin-top:16px}.wd-comparison-result{padding-top:16px}.wd-diff-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.wd-diff-grid p{font-size:var(--fs-sm);overflow-wrap:anywhere}.wd-empty{padding:20px 0;font-size:var(--fs-sm);line-height:1.8;color:var(--muted)}.wd-draft-tabs{margin:16px 0}.wd-image-review{padding:12px 0;border-bottom:1px solid var(--border);font-size:var(--fs-sm);overflow-wrap:anywhere}.wd-image-review p{color:var(--muted);margin-top:7px}.wd-observation{display:flex;align-items:flex-start;gap:14px}.wd-observation>div{flex:1;min-width:0}.l5 .l5-top{grid-template-columns:minmax(240px,300px) minmax(0,1fr)}.l5 .l5-dim-list{padding:8px 0}.l5 .l5-llms-out{max-height:360px;white-space:pre-wrap;overflow-wrap:anywhere}.l5 .chart-head{flex-wrap:wrap;gap:14px}.l5 .l5-url-row input{min-width:0;flex:1}.l5 .l5-gauge .sect-sub{text-align:center;margin-top:10px}.l5 .l5-verdict{text-align:center}
/* Compact diagnostic report: gauge + eight rows, then input-page metrics and patches. */
.l5{--wd-good:#087F5B;--wd-blue:#1764C0;--wd-improve:#A65B00;--wd-critical:#D11F35;--wd-unknown:#596579;--wd-disc:#FFFDFA;--wd-track:#E8EDF2}
[data-theme="dark"] .l5{--wd-good:#55D6A0;--wd-blue:#79B5FF;--wd-improve:#FFC266;--wd-critical:#FF8491;--wd-unknown:#A7B4C8;--wd-disc:#121A29;--wd-track:#293348}
.l5 .l5-gauge-inner{background:var(--wd-disc)}
.wd-score-grade{font-weight:750;font-size:var(--fs-sm);margin-top:12px}
.wd-risk-badge,.wd-severity{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-cap);font-weight:700;line-height:1.5;border:1px solid color-mix(in srgb,currentColor 30%,transparent);background:color-mix(in srgb,currentColor 7%,transparent);border-radius:6px;padding:3px 7px}
.l5 .wd-risk-badge{margin-top:12px;max-width:100%}
.wd-status-legend{display:flex;gap:7px 12px;flex-wrap:wrap;margin:12px 0 4px;font-size:var(--fs-cap)}
.wd-status-legend span{display:inline-flex;gap:5px;align-items:center}.wd-status-legend i{height:7px;width:7px;border-radius:50%;background:currentColor}
.wd-dim-title{display:flex;gap:7px;align-items:center;flex-wrap:wrap;min-width:0}
.wd-score-separation{font-size:var(--fs-cap);line-height:1.65;color:var(--muted);text-align:center;margin-top:7px}
.l5 .wd-audit-card[data-severity="critical"]{border-left:3px solid var(--wd-critical);padding-left:10px}
@media print{.l5{--wd-good:#087F5B;--wd-blue:#1764C0;--wd-improve:#A65B00;--wd-critical:#D11F35;--wd-unknown:#596579;--wd-disc:#fff;--wd-track:#E8EDF2}.l5-gauge-ring{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
.l5 .l5-top{grid-template-columns:250px minmax(0,1fr);align-items:stretch}
.l5 .l5-gauge{padding:24px 18px;min-width:0}
.l5 .l5-gauge-ring{width:156px;height:156px}.l5 .l5-gauge-inner{width:124px;height:124px}
.l5 .l5-verdict{font-size:var(--fs-body);line-height:1.6}.l5-worst{width:100%;margin-top:18px}
.l5-worst-name{white-space:normal;overflow-wrap:anywhere;line-height:1.65}.l5-worst-row{align-items:flex-start}.l5-worst-dot{margin-top:7px}
.l5 .wd-coverage{margin-top:18px}.l5 .wd-coverage b{font-size:var(--fs-h3)}.l5 .wd-actions{justify-content:center}
.wd-dims-header{display:flex;align-items:flex-start;gap:10px}.wd-dims-header>.ic{color:var(--primary);flex:none;margin-top:2px}.wd-dims-header .sect-sub{margin-top:4px}
.l5 .wd-audit-grid{display:flex;flex-direction:column;padding:8px 0 0;gap:0;margin:0}
.wd-audit-card{min-width:0;overflow-wrap:anywhere;margin:0;border-radius:0;box-shadow:none}
.l5 .wd-audit-card{padding:12px 0}.l5 .l5-dim-head b{font-size:var(--fs-sm)}
.l5 .l5-dim-detail{font-size:var(--fs-cap);margin:5px 0 0;line-height:1.75;font-weight:400}.l5-dim-detail strong{font-weight:600;color:var(--text)}
.wd-card-evidence{margin-top:7px}.l5 .l5-fix-toggle{margin-top:0;font-size:var(--fs-cap);gap:7px;padding:7px 10px;line-height:1.65;list-style:none}
.l5-fix-toggle::-webkit-details-marker{display:none}.l5-fix-toggle>span{flex:1;min-width:0}.l5-fix-toggle>.ic{flex:none;color:var(--primary);margin-top:3px}.l5-fix-toggle{align-items:flex-start}
.wd-card-evidence[open] .chev{transform:rotate(180deg)}.wd-evidence-body{padding:10px 10px 2px;font-size:var(--fs-cap);line-height:1.75}.wd-evidence-body>p{margin:6px 0}
.wd-card-evidence pre,.wd-alt-candidate{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;margin:6px 0;max-height:220px;overflow:auto}
.wd-score-scope{font-size:var(--fs-cap);font-weight:400;color:var(--muted);margin-right:9px}.wd-partial-note{font-size:var(--fs-cap);color:var(--warn-fg);margin:5px 0}
.wd-score-method{font-size:var(--fs-cap);color:var(--muted);margin-top:8px;line-height:1.7}.wd-score-method summary{cursor:pointer}.wd-score-method p{margin-top:6px}
.wd-metrics-scope{font-size:var(--fs-cap);color:var(--muted);margin:16px 0 -5px}
.l5 .l5-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.wd-fact{min-width:0;overflow-wrap:anywhere}.l5 .l5-metric-vals{flex-wrap:wrap;gap:12px 18px}
.l5 .l5-mv em{font-size:var(--fs-h3)}.l5 .l5-metric-mode{font-size:var(--fs-sm);color:var(--primary);margin-top:10px}.l5 .l5-metric-mode+.l5-metric-vals{margin-top:8px}
.l5 .l5-metric-note{font-size:var(--fs-cap);margin:10px 0 0;line-height:1.7;color:var(--muted)}
.l5 .l5-bottom{grid-template-columns:minmax(0,1fr) minmax(320px,.43fr);align-items:stretch}
.wd-snapshot{padding:20px;min-width:0}.wd-snapshot .l5-term{margin:16px 0 0}.wd-snapshot .l5-term-bar span{overflow-wrap:anywhere;min-width:0}
.wd-snapshot blockquote{margin:0;max-height:300px;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.wd-snapshot .l5-alert{margin:12px 0}.wd-snapshot>.sect-sub{font-size:var(--fs-cap)}
.l5-bottom .wd-drafts{margin-top:0;padding:20px;min-width:0}.wd-drafts .sect-title{font-size:var(--fs-body)}.wd-drafts .sect-sub{font-size:var(--fs-cap)}.wd-drafts .l5-patch-hero{margin:12px 0;font-size:var(--fs-cap)}
.wd-generate{width:100%;justify-content:center}.wd-draft-tabs{display:flex;margin:12px 0;flex-wrap:wrap;gap:2px;height:auto;padding:3px}.wd-draft-tabs button{flex:1;min-width:80px;font-size:var(--fs-cap);white-space:normal;line-height:1.6;padding:5px 3px}
.wd-drafts .wd-empty{font-size:var(--fs-cap);padding:20px 12px;border:1px dashed var(--border);border-radius:var(--r-sm);text-align:center}
.wd-scope-note{margin-top:16px}.wd-technical-issues{margin-top:16px}
.wd-technical-panel{padding:16px 24px;margin-top:16px;overflow-wrap:anywhere;min-width:0}
.wd-technical-panel>summary{cursor:pointer;color:var(--muted);font-size:var(--fs-sm);line-height:1.7}.wd-technical-panel[open]>summary{margin-bottom:16px}
.wd-report-provenance dl{display:grid;grid-template-columns:140px minmax(0,1fr);gap:12px;font-size:var(--fs-cap);margin-top:20px}.wd-report-provenance dt{color:var(--muted)}.wd-report-provenance dd{margin:0;font-family:var(--mono);overflow-wrap:anywhere}
@media(max-width:1100px){.wd-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.l5 .l5-top{grid-template-columns:210px minmax(0,1fr)}.l5 .l5-bottom{grid-template-columns:minmax(0,1fr) minmax(300px,.65fr)}.wd-observation{flex-wrap:wrap}}
@media(max-width:800px){.l5 .l5-top,.l5 .l5-bottom{grid-template-columns:1fr}.l5 .l5-metrics{grid-template-columns:1fr}.l5 .wd-findings{padding:18px}.l5 .l5-dim-head{flex-wrap:wrap}.wd-metrics-scope{line-height:1.7}.l5-gauge .wd-actions{margin-bottom:0}}
@media(max-width:650px){.wd-controls,.wd-compare-controls,.wd-diff-grid{grid-template-columns:1fr}.l5-url-row{flex-direction:column}.l5-bar{padding:16px}.l5-bar-ico{display:none}.wd-pages,.wd-render,.wd-compare,.wd-drafts,.wd-observation,.wd-snapshot,.wd-technical-panel{padding:16px}.wd-page-meta .mono{width:100%}.wd-observation>div{flex-basis:80%}.wd-report-provenance dl{grid-template-columns:1fr;gap:6px}.wd-report-provenance dd{margin-bottom:10px}}
.wd-print-scope{display:none}
@media print{
  .l5 .wd-print-scope{display:block;font-size:11px;line-height:1.7;color:#334155;margin-top:12px;break-inside:avoid}
  .l5 .l5-gauge{display:grid;grid-template-columns:140px minmax(0,1fr);gap:3px 18px;padding:16px;align-items:center;break-inside:avoid}
  .l5 .l5-gauge>*{grid-column:2;margin-top:3px;text-align:left}
  .l5 .l5-gauge>.l5-gauge-ring{grid-column:1;grid-row:1 / 10;width:132px;height:132px;align-self:center}
  .l5 .l5-gauge-inner{width:110px;height:110px}
  .l5 .l5-gauge-num{font-size:38px}.l5 .l5-gauge-cap{font-size:10px}
  .l5 .l5-worst{padding-top:7px}.l5 .l5-worst-title{text-align:left;margin-bottom:3px}
  .l5 .l5-worst-row{padding:2px 0}.l5 .wd-score-separation{font-size:11px}
  .l5 .wd-findings{padding:14px 18px}.l5 .wd-dims-header .sect-sub{display:none}
  .l5 .wd-audit-card{padding:8px 0}.l5 .l5-fix-toggle>.chev{display:none}
  .l5 .wd-technical-panel,.l5 .wd-evidence-body,.l5 .wd-drafts,.l5 .wd-snapshot,.l5 .wd-render,.l5 .wd-compare,.l5 .wd-score-method,.l5 .l5-bar,.l5 .wd-observation{display:none!important}
  .l5 .wd-card-evidence>*:not(summary){display:none!important}
  .l5 .l5-bottom{display:none!important}

  .wd-controls,.wd-advanced,.l5-url-row{display:none!important}
  .l5 .l5-top{display:block!important}.l5 .l5-gauge{margin-bottom:16px}
  .l5 .wd-findings{break-inside:auto;page-break-inside:auto}.wd-audit-card,.l5-dim,.wd-image-review,.wd-fact,.wd-snapshot,.wd-observation,.wd-report-provenance{break-inside:avoid;page-break-inside:avoid}
  .l5 .wd-drafts{margin-top:16px;break-inside:auto}.l5 .l5-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .l5 .wd-fact{padding:10px}.l5 .l5-metric-head{font-size:11px}
  .l5 .l5-metric-vals{gap:6px 12px;margin-top:6px}.l5 .l5-mv em{font-size:18px}
  .l5 .l5-mv span,.l5 .l5-metric-note{font-size:10px;line-height:1.5}
  .l5 .l5-metric-note{margin-top:6px}.l5 .l5-metric-mode{font-size:11px;margin-top:6px}
  .l5 details:not([open]):not(.wd-card-evidence){display:none!important}.wd-card-evidence:not([open])>*:not(summary){display:none!important}
  .wd-card-evidence>summary{display:flex!important}.l5-fix-toggle{background:#EFF6FF!important;color:#1E293B!important}
  .wd-status,.wd-fix,.wd-path,.wd-hash,.wd-empty,.sect-sub,.wd-partial-note,.wd-score-method,.wd-metrics-scope{color:#334155!important}
  .wd-text pre,.l5 .l5-llms-out,.wd-card-evidence pre,.wd-snapshot blockquote{max-height:none;overflow:visible;color:#1E293B!important;background:#F8FAFC!important}
}

.wd-score-calculation{margin:12px 0;padding:12px;text-align:left;border:1px solid var(--border);border-radius:8px;font-size:12px;line-height:1.65;overflow-wrap:anywhere;color:var(--muted)}
.wd-score-calculation b{color:var(--text)}.wd-score-calculation p{margin:5px 0 0}
.wd-business-print{display:none}
@media print{
  .l5>:not(.wd-business-print){display:none!important}
  .l5>.wd-business-print{display:block!important}
  .wd-business-sheet{font-size:11px;line-height:1.55;color:#1e293b;break-inside:auto;padding:8px 0 0}
  .wd-business-sheet+.wd-business-sheet{break-before:page;page-break-before:always}
  .wd-business-sheet h2{font-size:20px;line-height:1.35;margin:6px 0 12px;color:#0f172a}
  .wd-business-sheet h3{font-size:12px;line-height:1.4;margin:12px 0 6px;color:#0f172a}
  .wd-business-sheet p{margin:5px 0;overflow-wrap:anywhere}
  .wd-paper-eyebrow{font-size:11px;letter-spacing:1px;color:#475569;border-bottom:2px solid #cbd5e1;padding:0 0 10px;margin-bottom:15px}
  .wd-paper-hero{display:grid;grid-template-columns:170px minmax(0,1fr);gap:20px;align-items:center;margin:15px 0}
  .wd-paper-hero h2{font-size:17px;margin:5px 0}.wd-paper-score{font-size:64px;line-height:1.1;font-weight:750}
  .wd-paper-warning{background:#fff7ed!important;border-left:3px solid #c2410c;padding:10px 12px;margin:12px 0;color:#7c2d12!important;break-inside:avoid}
  .wd-paper-warning.critical{background:#fff1f2!important;border-color:#d11f35;color:#9f1239!important}
  .wd-paper-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}
  .wd-paper-facts article{border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;break-inside:avoid}
  .wd-paper-facts h3{margin-top:0;font-size:11px}.wd-paper-facts b{font-size:16px;color:#0f172a}
  .wd-paper-priority{border-bottom:1px solid #e2e8f0;padding:8px 0;break-inside:avoid;page-break-inside:avoid}
  .wd-paper-dimension{padding:9px 0;border-bottom:1px solid #cbd5e1;break-inside:avoid;page-break-inside:avoid}
  .wd-paper-dimension h3{margin:0 0 6px;display:flex;justify-content:space-between;gap:12px}.wd-paper-dimension h3 span{font-size:11px;white-space:nowrap}
  .wd-paper-note{font-size:10px!important;color:#475569!important;line-height:1.5}
  .wd-paper-quote{margin:8px 0;padding:10px 12px;border-left:3px solid #94a3b8;background:#f8fafc!important;color:#334155!important;break-inside:avoid}
}
.website-business-report{padding:22px;overflow-wrap:anywhere}.wb-head{display:flex;gap:24px;align-items:center}.wb-score{font-size:52px;font-weight:800;line-height:1.2}.wb-head[data-band="blocked"],.wb-head[data-band="poor"]{color:var(--bad-fg)}.wb-head[data-band="excellent"]{color:var(--ok-fg)}.wb-head[data-band="good"]{color:#1764c0}.wb-head[data-band="improve"]{color:var(--warn-fg)}.wb-head[data-band="unknown"]{color:var(--muted)}.wb-facts{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.wb-facts>div{flex:1;min-width:150px;padding:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px}.wb-facts b{display:block;font-size:20px}.wb-dimension{border-top:1px solid var(--border);padding:12px 0;break-inside:avoid}.wb-dimension h4{margin:0 0 6px;display:flex;gap:12px;justify-content:space-between}.wb-dimension p{margin:5px 0;line-height:1.65}.wb-dimension [data-severity="critical"]{color:var(--bad-fg)}.wb-dimension [data-severity="good"]{color:var(--ok-fg)}.wb-dimension [data-severity="improve"]{color:var(--warn-fg)}
@media print{.engineering-attachment,.l6-audit-page,.wd-hash,.wd-technical-panel{display:none!important}.website-business-report{break-inside:auto!important;padding:12px}.wb-head,.wb-facts>div,.wb-dimension{break-inside:avoid;page-break-inside:avoid}.wb-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.wb-facts>div{min-width:0}.wb-score{font-size:42px}.wb-dimension p{font-size:11px}}
@media(max-width:640px){.wb-head{flex-wrap:wrap}.wb-facts{grid-template-columns:1fr}.wb-dimension{overflow-wrap:anywhere}}

/* A calm starting line is different from an operational or factual fault. */
.baseline-start{color:var(--primary)!important;border-color:var(--border)!important}
.baseline-start .hv{color:var(--primary)!important}
.engineering-attachment{margin:10px 0;padding:10px 12px;font-size:var(--fs-cap);line-height:1.8;overflow-wrap:anywhere;background:var(--surface-2);border-radius:8px}
.engineering-attachment summary{cursor:pointer;color:var(--muted)}
@media print{.engineering-attachment,.diag-details,.l6-ct-ci{display:none!important}}
