/* ============================================================
   Rabbit Leads — AI Sales Intelligence Command Center 主题层
   （UIupdate.png 重构 · 仅 UI/UX，不改任何业务行为）
   规则：本文件最后加载，只做「覆盖」——不改 design-system.css /
   index.html 内联样式的任何旧规则；token 翻转 + 组件级覆盖。
   认证落地页（.lm/.reg-wrap/.fg-wrap）不受本文件影响。
   色板取自 UIupdate.png：深海军蓝底 + 科技蓝渐变 + 冷白文字。
   ============================================================ */

/* 双主题改造（2026-09-23）：token 单一来源已上移 theme.css（:root 浅色 +
   html[data-theme="dark"] 深色）。此处保留深色值作历史兜底，作用域收窄到
   深色；浅色主题不受本块影响。下方组件级深色覆盖 = 深色皮肤，浅色皮肤
   见 theme.css 的 html[data-theme="light"] 规则族。 */
html[data-theme="dark"]{
  /* 设计系统 token 翻转（design-system.css 同名 token 的深色值） */
  --bg:#050B18;
  --card:#0A1830;
  --card-2:#0D1F3D;
  --line:rgba(70,120,210,.22);
  --line-2:rgba(90,150,240,.38);
  --ink:#E8F1FF;
  --muted:#8FA6CC;
  --dim:#5F7196;
  --primary:#3D8BFF;
  --primary-2:#6FB1FF;
  --primary-weak:rgba(61,139,255,.12);
  --navy:#081020;
  --sbw:244px;
  --r:16px;
  /* 旧 token 桥（index.html 内联样式仍引用） */
  --bd:rgba(70,120,210,.22);
  --mut:#8FA6CC;
  --pri:#3D8BFF;
  --ok:#34D399;
  --bad:#F97066;
  /* 主题专属 */
  --grad:linear-gradient(135deg,#1E6FE8 0%,#38B6FF 100%);
  --glow:0 6px 24px rgba(30,111,232,.35);
  --panel-line:rgba(70,120,210,.22);
}

/* ---------- 基础 ---------- */
html{background:var(--bg)}
body{background:var(--bg);color:var(--ink)}
::selection{background:rgba(61,139,255,.35)}
*{scrollbar-width:thin;scrollbar-color:rgba(90,150,240,.25) transparent}
*::-webkit-scrollbar{width:9px;height:9px}
*::-webkit-scrollbar-thumb{background:rgba(90,150,240,.22);border-radius:99px;border:2px solid transparent;background-clip:content-box}
*::-webkit-scrollbar-thumb:hover{background:rgba(90,150,240,.4);border:2px solid transparent;background-clip:content-box}
a{color:var(--primary-2)}
hr{border:0;border-top:1px solid var(--line)}

/* 认证三页（登录/注册/找回）背景跟随主题 token（官网 2026-09-25 起随主题翻转；
   注册/找回仍为品牌固定浅色页，此规则对其无可见影响） */
.app:has(#v-login:not(.hidden)),
.app:has(#v-register:not(.hidden)),
.app:has(#v-forgot:not(.hidden)){background:var(--bg-page)}

/* ---------- 外壳 ---------- */
.app{background:var(--bg)}
.sidebar{
  background:#0B1526; /* 深色主题侧栏基准（--bg-sidebar）；浅色由 theme.css 皮肤覆盖为白 */
  border-right:1px solid rgba(132,160,200,.14);
}
.sidebar .brand{border-bottom:1px solid rgba(132,160,200,.14)}
/* 品牌文字：纯色高对比（浅色 #172033 / 深色 #EDF3FC），不再用渐变淡字 */
.logo-tx{background:none;color:var(--text-primary);font-weight:700;letter-spacing:.01em}
.logo-vx{color:var(--dim)}
.sidebar nav{flex:1;overflow-y:auto;padding:10px 12px}
#sidebar nav a{
  color:var(--muted);border-radius:12px;margin-bottom:2px;
  display:flex;align-items:center;gap:10px;padding:9px 12px;
}
/* 角色显隐入口（如 #nav-adminusers）：ID 选择器优先级压过 .hidden，须同权重救回 */
#sidebar nav a.hidden{display:none}
#sidebar nav a .ic{width:20px;height:20px;flex:none;display:inline-flex;color:var(--dim)}
#sidebar nav a:hover{background:rgba(61,139,255,.08);color:var(--ink)}
#sidebar nav a:hover .ic{color:var(--primary-2)}
#sidebar nav a.on{
  background:var(--brand-soft);color:var(--brand-primary);box-shadow:none;
}
#sidebar nav a.on .ic{color:var(--brand-primary)}
/* 一级导航：EN 主标签 + CN 副标签（UIupdate.png 双行样式） */
#sidebar nav a .nl{display:flex;flex-direction:column;line-height:1.2;min-width:0}
#sidebar nav a .nl b{font-size:13.5px;font-weight:700;letter-spacing:.2px}
#sidebar nav a .nl i{font-style:normal;font-size:10.5px;color:var(--dim);margin-top:1px}
#sidebar nav a.on .nl i{color:var(--text-secondary)}
/* 次级导航组 */
.nav-sep{font-size:10.5px;color:var(--dim);letter-spacing:.14em;padding:14px 12px 6px;text-transform:uppercase}
#sidebar nav a.nav-sec{padding:7px 12px;font-size:13px}
/* Coming Soon 导航项 */
#sidebar nav a.nav-soon{opacity:.62}
.nav-soon-chip{margin-left:auto;font-size:9px;font-weight:700;letter-spacing:.08em;color:#7FE3C0;
  background:rgba(52,211,153,.12);border:1px solid rgba(52,211,153,.3);border-radius:99px;padding:1px 7px}
#sidebar nav a.on .nav-soon-chip{color:#fff;background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.4)}
/* 侧栏底部吉祥物推广卡（静态品牌内容，无假数据） */
.promo{
  margin:12px;border:1px solid rgba(70,120,210,.22);border-radius:14px;
  background:linear-gradient(160deg,rgba(30,111,232,.16),rgba(56,182,255,.05));
  padding:12px;display:flex;gap:10px;align-items:center;cursor:pointer;
}
.promo img{width:52px;height:52px;object-fit:contain;flex:none}
.promo .pp-t{font-size:12px;font-weight:700;color:var(--ink);line-height:1.35}
.promo .pp-s{font-size:10.5px;color:var(--muted);margin-top:2px;line-height:1.4}
.promo:hover{border-color:var(--line-2)}

/* 顶栏 */
.topbar{
  background:rgba(5,11,24,.82);backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(70,120,210,.16);
}
.page-title{color:var(--ink)}
.page-sub{color:var(--dim)}
.userchip .uname{color:var(--ink)}
.userchip .uten{color:var(--dim)}
.userchip .avatar{background:var(--grad);color:#fff}
.credits-chip{background:rgba(61,139,255,.1);border:1px solid rgba(70,120,210,.35);color:#9CC2FF}
.credits-chip .ic{filter:none}
/* 顶栏全局搜索（真实行为：回车 → Leads 客户库检索） */
.gsearch{position:relative;display:flex;align-items:center;margin-right:10px;flex:1;max-width:460px}
.gsearch .gs-ic{position:absolute;left:11px;width:15px;height:15px;color:var(--dim);pointer-events:none}
.gsearch input{
  width:100%;background:rgba(13,31,61,.6);border:1px solid rgba(70,120,210,.25);
  border-radius:10px;padding:8px 12px 8px 33px;color:var(--ink);font-size:13px;
}
.gsearch input::placeholder{color:var(--dim)}
.gsearch input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(61,139,255,.15)}
.topbar .spacer{flex:1}
.gsearch + .spacer{display:none}
/* 有了搜索框后让 userchip 区推到右侧 */
.topbar{gap:8px}

main.content{max-width:1560px}

/* ---------- 通用组件 ---------- */
.card{background:var(--card);border:1px solid var(--panel-line);border-radius:var(--r);box-shadow:0 8px 30px rgba(2,8,20,.45)}
.card h3{color:var(--ink)}
.muted{color:var(--muted)}
.small{color:inherit}

input,select,textarea{
  background:rgba(13,31,61,.55);border:1px solid rgba(70,120,210,.28);color:var(--ink);
}
input::placeholder,textarea::placeholder{color:var(--dim)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(61,139,255,.14)}
select option{background:#0D1F3D;color:var(--ink)}
select.sr-select{background-image:none}
select.l-state{background:rgba(13,31,61,.55);border-color:rgba(70,120,210,.28);color:var(--ink)}

.btn{background:var(--grad);border:0;color:#fff;box-shadow:var(--glow)}
.btn:hover{filter:brightness(1.08)}
.btn:disabled,.btn[disabled]{opacity:.5;filter:none;box-shadow:none}
.sec,button.sec,.adm-sm.sec{background:rgba(13,31,61,.6);border:1px solid rgba(70,120,210,.3);color:#BFD4F5}
.sec:hover,button.sec:hover{border-color:var(--line-2);color:#fff;background:rgba(30,111,232,.14)}
.sec:disabled,button.sec:disabled{opacity:.45}
.mini-btn{background:rgba(13,31,61,.7);border:1px solid rgba(70,120,210,.3);color:#BFD4F5}
.mini-btn:hover{border-color:var(--line-2);color:#fff}

.tag{background:rgba(61,139,255,.12);border:1px solid rgba(70,120,210,.28);color:#9CC2FF}
.nav-count{background:var(--grad);color:#fff}

table{color:var(--ink)}
th{color:var(--dim);font-weight:600;border-bottom:1px solid var(--line)}
td{border-bottom:1px solid rgba(70,120,210,.13)}
tr.click{cursor:pointer}
tr.click:hover,tr.click:hover td{background:rgba(61,139,255,.06)}
tr.sel,tr.sel td{background:rgba(61,139,255,.1)}

.toast{background:#0D1F3D;border:1px solid var(--line-2);color:var(--ink);box-shadow:0 10px 34px rgba(2,8,20,.6)}
.toast.err{border-color:rgba(249,112,102,.5)}

.spin{border:2px solid rgba(90,150,240,.25);border-top-color:var(--primary)}

/* 徽章/状态（浅色 pastel → 深色半透明） */
.tbadge{border:1px solid transparent}
.tbadge.running{background:rgba(61,139,255,.12);color:#7FB4FF;border-color:rgba(61,139,255,.3)}
.tbadge.done{background:rgba(52,211,153,.12);color:#5EE0B0;border-color:rgba(52,211,153,.28)}
.tbadge.partial{background:rgba(247,184,74,.12);color:#F7C777;border-color:rgba(247,184,74,.3)}
.tbadge.paused,.tbadge.cancelled,.tbadge.empty{background:rgba(143,166,204,.1);color:var(--muted);border-color:rgba(143,166,204,.22)}
.tbadge.failed{background:rgba(249,112,102,.12);color:#F49B93;border-color:rgba(249,112,102,.3)}

.badge{background:rgba(143,166,204,.14);color:var(--muted)}
.badge.new,.badge.ok{background:rgba(52,211,153,.12);color:#5EE0B0}
.badge.old{background:rgba(143,166,204,.14);color:var(--muted)}
.badge.no{background:rgba(249,112,102,.12);color:#F49B93}

.stage{background:rgba(143,166,204,.1);color:var(--dim)}
.stage.done{background:rgba(52,211,153,.12);color:#5EE0B0}
.stage.run{background:rgba(61,139,255,.14);color:#7FB4FF}
.stage.skipped{background:rgba(143,166,204,.08);color:var(--dim)}

.grade{border:1px solid transparent}
.grade.g-a{background:rgba(52,211,153,.13);color:#5EE0B0;border-color:rgba(52,211,153,.3)}
.grade.g-b{background:rgba(61,139,255,.13);color:#7FB4FF;border-color:rgba(61,139,255,.3)}
.grade.g-c{background:rgba(247,184,74,.13);color:#F7C777;border-color:rgba(247,184,74,.3)}
.grade.g-d{background:rgba(143,166,204,.1);color:var(--muted);border-color:rgba(143,166,204,.22)}
.sbar{background:rgba(143,166,204,.15)}
.sbar i{background:var(--grad)}

.stag{border:1px solid transparent}
.stag.hot{background:rgba(249,112,102,.12);color:#F49B93;border-color:rgba(249,112,102,.3)}
.stag.wait{background:rgba(247,184,74,.12);color:#F7C777;border-color:rgba(247,184,74,.3)}
.stag.go{background:rgba(52,211,153,.12);color:#5EE0B0;border-color:rgba(52,211,153,.3)}
.stag.ok{background:rgba(52,211,153,.12);color:#5EE0B0;border-color:rgba(52,211,153,.3)}
.stag.dim{background:rgba(143,166,204,.1);color:var(--muted);border-color:rgba(143,166,204,.22)}
.stag.run{background:rgba(61,139,255,.13);color:#7FB4FF;border-color:rgba(61,139,255,.3)}

.triage-count{background:rgba(13,31,61,.6);border:1px solid var(--line)}
.triage-count b{color:var(--ink)}
.triage-count.tc-ok,.triage-count.verified{background:rgba(52,211,153,.08);border-color:rgba(52,211,153,.25)}
.triage-count.tc-partial,.triage-count.pending{background:rgba(247,184,74,.08);border-color:rgba(247,184,74,.25)}
.triage-count.tc-bad,.triage-count.rejected{background:rgba(249,112,102,.08);border-color:rgba(249,112,102,.25)}
.triage-count span{color:var(--muted)}

/* 搜索旅程（j-*） */
.j-cap{color:#BFD4F5}
.j-net{background:rgba(13,31,61,.6);border:1px solid var(--line)}
.j-net.warn{background:rgba(247,184,74,.08);border:1px solid rgba(247,184,74,.35);color:#F7C777}
.j-net.bad{background:rgba(249,112,102,.08);border:1px solid rgba(249,112,102,.35);color:#F49B93}
.j-banner{background:rgba(13,31,61,.6);border:1px solid var(--line)}
.j-banner.ok{background:rgba(52,211,153,.08);border:1px solid rgba(52,211,153,.3)}
.j-banner.bad{background:rgba(249,112,102,.08);border:1px solid rgba(249,112,102,.3)}
.j-banner.warn{background:rgba(247,184,74,.08);border:1px solid rgba(247,184,74,.32)}
.j-res{background:rgba(13,31,61,.55);border:1px solid var(--line)}
.j-res:hover{border-color:var(--line-2);background:rgba(30,111,232,.1)}

/* chips / 数字输入 */
.chips .chip{background:rgba(13,31,61,.55);border:1px solid rgba(70,120,210,.28);color:var(--muted)}
.chips .chip:hover{border-color:var(--line-2);color:var(--ink)}
.chips .chip.sel{background:var(--grad);border-color:transparent;color:#fff;font-weight:600}
.num-input{background:rgba(13,31,61,.55);border:1px solid rgba(70,120,210,.28);color:var(--ink)}

/* 草稿箱 / 联系人 / 证据 */
.draftbox{background:rgba(13,31,61,.55);border:1px solid var(--line);color:var(--ink)}
.av-c{background:var(--grad);color:#fff}
.rows .row-item{border-bottom:1px solid rgba(70,120,210,.13)}
.rows .row-item:hover{background:rgba(61,139,255,.06)}
.empty-hint{color:var(--dim)}

/* #ai-out / #fu-out 里的内联浅色提示卡（不改 JS 字符串，CSS 直接覆盖） */
#ai-out div[style],#fu-out div[style]{
  background:rgba(61,139,255,.08)!important;border:1px solid rgba(70,120,210,.3)!important;color:var(--ink)!important;
}
#ai-out div[style] .small,#fu-out div[style] .small{color:var(--muted)!important}
/* admin 页内联浅色 <pre>（诊断输出） */
.card pre[style],#adm-panel pre[style]{background:rgba(13,31,61,.7)!important;color:#BFD4F5!important;border:1px solid var(--line)}
.adm-test.run{background:rgba(247,184,74,.08);border:1px solid rgba(247,184,74,.3)}
.adm-hint{color:var(--dim)}

/* 复核页 */
.review-card{background:var(--card);border:1px solid var(--panel-line)}
.review-grid .review-field{background:rgba(13,31,61,.55);border:1px solid var(--line)}
.review-field .rf-k{color:var(--dim)}
.review-field .rf-v{color:var(--ink)}
.review-evidence{background:rgba(13,31,61,.5);border:1px solid var(--line)}
.review-evidence a{color:#7FB4FF}

/* 跟进页 */
.fu-hist{background:rgba(13,31,61,.55);border:1px solid var(--line)}
.fu-hist-snip{color:var(--muted)}
.fu-target{border-bottom:1px solid var(--line)}
.fu-row{border-bottom:1px solid rgba(70,120,210,.13)}
.fu-row:hover,.fu-row.on{background:rgba(61,139,255,.08)}

/* 会员卡（真实数据槽位） */
.mbr{background:linear-gradient(160deg,rgba(30,111,232,.18),rgba(13,31,61,.7));border:1px solid rgba(70,120,210,.3)}
.mbr .meter{background:rgba(143,166,204,.18)}
.mbr .meter i{background:var(--grad)}
.mbr .kv span{color:var(--muted)}
.mbr .kv b{color:var(--ink)}
.mbr .up{background:rgba(61,139,255,.14);border:1px solid rgba(70,120,210,.35);color:#9CC2FF}
.mbr .up:hover{border-color:var(--line-2);color:#fff}
.mbr .note{color:var(--dim)}

/* KPI / 漏斗 / 环形图（旧工作台·分析页组件的深色化） */
.kpi,.kpibtn{background:var(--card);border:1px solid var(--panel-line);color:var(--ink)}
.kpi .k-label,.kpibtn .k-label{color:var(--muted)}
.kpi:hover,.kpibtn:hover{border-color:var(--line-2)}
.fstep .fs-cap{color:var(--ink)}
.fstep .fs-num{color:var(--muted)}
.donut{background:conic-gradient(var(--primary) calc(var(--p)*1%),rgba(143,166,204,.18) 0)}
.donut i{background:var(--card)}

/* query 面板词面条（queries.js 内联浅色轨道） */
.qi-track{background:rgba(143,166,204,.16)}

/* ============================================================
   新组件：Overview 驾驶舱（v-overview）
   ============================================================ */
#ov-root{display:grid;grid-template-columns:minmax(0,1fr) 316px;gap:16px;align-items:start}
.ov-main{min-width:0;display:flex;flex-direction:column;gap:16px}
.ov-rail{display:flex;flex-direction:column;gap:14px;position:sticky;top:76px}

/* Hero 横幅 */
.ov-hero{
  position:relative;overflow:hidden;border-radius:var(--r);
  border:1px solid rgba(70,120,210,.28);
  background:
    radial-gradient(1200px 320px at 85% -40%,rgba(56,182,255,.22),transparent 60%),
    radial-gradient(800px 300px at 10% 120%,rgba(30,111,232,.25),transparent 60%),
    linear-gradient(120deg,#0A1B38 0%,#081226 55%,#0A1830 100%);
  padding:26px 28px;display:flex;align-items:center;gap:18px;
}
.ov-hero .oh-tx{flex:1;min-width:0}
.ov-hero h2{margin:0 0 6px;font-size:24px;letter-spacing:.5px;color:#fff}
.ov-hero h2 em{font-style:normal;background:linear-gradient(92deg,#6FB1FF,#38B6FF);-webkit-background-clip:text;background-clip:text;color:transparent}
.ov-hero p{margin:0;color:var(--muted);font-size:13px;max-width:520px}
.ov-hero .oh-acts{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.ov-hero .oh-img{width:190px;height:130px;object-fit:contain;flex:none;opacity:.9;filter:drop-shadow(0 8px 30px rgba(56,182,255,.35))}

/* KPI 五卡 */
.ov-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.ov-kpi{
  background:var(--card);border:1px solid var(--panel-line);border-radius:14px;
  padding:14px 15px;cursor:pointer;transition:border-color .15s,transform .15s;
}
.ov-kpi:hover{border-color:var(--line-2);transform:translateY(-1px)}
.ov-kpi .ok-top{display:flex;align-items:center;gap:8px}
.ov-kpi .ok-ic{width:30px;height:30px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;flex:none}
.ov-kpi .ok-label{font-size:11.5px;color:var(--muted);line-height:1.25}
.ov-kpi .ok-label b{display:block;color:var(--ink);font-size:12.5px}
.ov-kpi .ok-num{font-size:26px;font-weight:800;margin-top:10px;color:#fff;letter-spacing:.3px;font-variant-numeric:tabular-nums}
.ov-kpi .ok-sub{font-size:11px;color:var(--dim);margin-top:3px}
.ic-blue{background:rgba(61,139,255,.15);color:#7FB4FF}
.ic-green{background:rgba(52,211,153,.14);color:#5EE0B0}
.ic-amber{background:rgba(247,184,74,.14);color:#F7C777}
.ic-cyan{background:rgba(56,182,255,.14);color:#67D3FF}
.ic-violet{background:rgba(61,139,255,.15);color:#7FB4FF} /* 2026-09-25 去紫：别名蓝色族，仅兜底旧标记 */

/* Sales Pipeline */
.ov-card{background:var(--card);border:1px solid var(--panel-line);border-radius:var(--r);padding:16px 18px}
.ov-card .oc-head{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}
.ov-card .oc-head h3{margin:0;font-size:15px;color:var(--ink)}
.ov-card .oc-head .oc-sub{font-size:11.5px;color:var(--dim)}
.ov-card .oc-head .oc-more{margin-left:auto;font-size:12px;color:#7FB4FF;cursor:pointer;text-decoration:none}
.ov-card .oc-head .oc-more:hover{color:#9CC2FF}

.pipeline{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.pstep{
  position:relative;border:1px solid var(--line);border-radius:12px;
  background:rgba(13,31,61,.45);padding:12px 12px 11px;cursor:pointer;
  transition:border-color .15s;
}
.pstep:hover{border-color:var(--line-2)}
.pstep .ps-num{
  width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;background:rgba(61,139,255,.16);color:#7FB4FF;margin-bottom:8px;
}
.pstep .ps-name{font-size:13px;font-weight:700;color:var(--ink)}
.pstep .ps-cn{font-size:10.5px;color:var(--dim);margin-top:1px}
.pstep .ps-meta{font-size:11px;color:var(--muted);margin-top:7px}
.pstep.ps-done .ps-num{background:var(--grad);color:#fff}
.pstep.ps-active{border-color:rgba(61,139,255,.55);background:linear-gradient(160deg,rgba(30,111,232,.16),rgba(13,31,61,.5));box-shadow:0 0 0 1px rgba(61,139,255,.2)}
.pstep.ps-active .ps-num{background:var(--grad);color:#fff}
.pstep.ps-soon{cursor:default;opacity:.55;border-style:dashed;background:transparent}
.pstep.ps-soon:hover{border-color:var(--line)}
.ps-soon-chip{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.08em;color:#7FE3C0;
  background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.28);border-radius:99px;padding:1px 7px;margin-top:7px}

/* Company Intelligence 表 */
.ov-table{width:100%;border-collapse:collapse;font-size:13px}
.ov-table th{text-align:left;font-size:11px;letter-spacing:.06em;color:var(--dim);padding:7px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.ov-table td{padding:9px 10px;border-bottom:1px solid rgba(70,120,210,.12);white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.ov-table tr:hover td{background:rgba(61,139,255,.05)}
.ov-table .ov-score{display:inline-flex;align-items:center;gap:7px}

/* 右栏 */
.rail-card{background:var(--card);border:1px solid var(--panel-line);border-radius:var(--r);padding:15px 16px}
.rail-card .rc-title{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700;color:var(--ink);margin-bottom:11px}
.rail-card .rc-title .rc-ic{width:22px;height:22px;border-radius:7px;background:rgba(61,139,255,.15);display:inline-flex;align-items:center;justify-content:center;font-size:12px}

.cred-big{font-size:26px;font-weight:800;color:#fff;font-variant-numeric:tabular-nums}
.cred-meter{height:7px;border-radius:99px;background:rgba(143,166,204,.16);overflow:hidden;margin:9px 0 7px}
.cred-meter i{display:block;height:100%;background:var(--grad);border-radius:99px}
.cred-kv{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted);margin-top:3px}
.cred-kv b{color:var(--ink)}
.cred-btn{margin-top:11px;width:100%;text-align:center}

/* AI 助手卡（Assistant Chat P1：status 探针通过 = 真对话；未接通 = 灰 pill + 品牌卡） */
/* [hidden] 权威：卡片内 display 规则不得覆盖隐藏语义（未接通时输入框必须不可见） */
.ai-card [hidden]{display:none!important}
.ai-card{position:relative;overflow:hidden;background:linear-gradient(160deg,rgba(30,111,232,.2),rgba(13,31,61,.75));border:1px solid rgba(70,120,210,.3)}
.ai-card .ai-mascot{position:absolute;right:-14px;bottom:-16px;width:96px;opacity:.9;filter:drop-shadow(0 6px 18px rgba(56,182,255,.3))}
.ai-card .ai-bubble{
  position:relative;background:rgba(5,11,24,.55);border:1px solid rgba(70,120,210,.28);
  border-radius:12px;padding:10px 12px;font-size:12.5px;color:#D7E5FB;line-height:1.55;margin:4px 0 11px;max-width:88%;
}
.ai-card .ai-status{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;color:#5EE0B0;background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.28);border-radius:99px;padding:1px 8px;margin-left:auto}
.ai-card .ai-status i{width:6px;height:6px;border-radius:50%;background:#34D399;display:inline-block}
/* Assistant Chat P1：状态 pill 诚实三态（Online 仅在 /assistant/status 确认后） */
.ai-card .ai-status.off{color:var(--muted);background:rgba(143,166,204,.1);border-color:rgba(143,166,204,.25)}
.ai-card .ai-status.off i{background:var(--muted)}
.ai-card .ai-status.ai-wait{color:#F7C777;background:rgba(247,184,74,.1);border-color:rgba(247,184,74,.3)}
.ai-card .ai-status.ai-wait i{background:#F7B84A}
/* 接通后收起吉祥物，让位会话区（未接通保留品牌卡原样） */
.ai-card.chat-on .ai-mascot{display:none}
.ai-card.chat-on .ai-bubble{max-width:100%}
.ai-card .ai-msgs{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto;margin:2px 0 8px;padding-right:2px}
.ai-card .am{max-width:92%;padding:8px 11px;font-size:12.5px;line-height:1.55;border-radius:12px;white-space:pre-wrap;word-break:break-word}
.ai-card .ai-m-user{align-self:flex-end;color:#EAF2FF;border-radius:12px 12px 3px 12px;
  background:linear-gradient(135deg,rgba(30,111,232,.38),rgba(56,182,255,.24));border:1px solid rgba(90,150,240,.42)}
.ai-card .ai-m-bot{align-self:flex-start;color:#D7E5FB;border-radius:12px 12px 12px 3px;
  background:rgba(5,11,24,.55);border:1px solid rgba(70,120,210,.28)}
.ai-card .ai-m-bot .ai-m-err{color:#F49B93}
.ai-card .ai-m-bot .ai-retry{margin-left:8px}
.ai-card .ai-loading{display:inline-flex;gap:4px;align-items:center;padding:2px 0}
.ai-card .ai-loading i{width:5px;height:5px;border-radius:50%;background:#6FB1FF;animation:aiblink 1.2s ease-in-out infinite}
.ai-card .ai-loading i:nth-child(2){animation-delay:.2s}
.ai-card .ai-loading i:nth-child(3){animation-delay:.4s}
@keyframes aiblink{0%,80%,100%{opacity:.25}40%{opacity:1}}
.ai-card .ai-m-refs{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px;white-space:normal}
.ai-card .ai-ref{cursor:pointer;font-size:11px;line-height:18px;padding:1px 9px;border-radius:99px;
  background:rgba(61,139,255,.13);border:1px solid rgba(61,139,255,.38);color:#8FBBFF;max-width:100%;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-card .ai-ref:hover{background:rgba(61,139,255,.22);color:#BFD9FF}
.ai-card .ai-ref.task{background:rgba(143,166,204,.12);border-color:rgba(143,166,204,.3);color:#A9BCDD}
.ai-card .ai-ref.task:hover{background:rgba(143,166,204,.2)}
.ai-card .ai-input-row{display:flex;gap:7px}
.ai-card .ai-inp{flex:1;min-width:0;background:rgba(13,31,61,.6);border:1px solid rgba(70,120,210,.3);
  border-radius:10px;padding:8px 11px;font-size:12.5px;color:var(--ink)}
.ai-card .ai-inp:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px rgba(61,139,255,.14)}
.ai-card .ai-inp:disabled{opacity:.55}
.ai-card .ai-send{flex:none;width:38px;border-radius:10px;border:0;background:var(--grad);color:#fff;
  cursor:pointer;box-shadow:var(--glow);font-size:13px}
.ai-card .ai-send:hover{filter:brightness(1.08)}
.ai-card .ai-send:disabled{opacity:.5;box-shadow:none;cursor:default;filter:none}
.ai-acts{display:flex;flex-wrap:wrap;gap:7px}
.ai-acts .mini-btn{font-size:11.5px;padding:5px 10px;border-radius:9px}
.ai-note{font-size:10.5px;color:var(--dim);margin-top:9px}

/* 推荐洞察 / 快捷操作 / 今日任务 */
.ins-item{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:10px;cursor:pointer;border:1px solid transparent}
.ins-item:hover{background:rgba(61,139,255,.08);border-color:var(--line)}
.ins-item .ii-kw{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;color:var(--ink)}
.ins-item .ii-n{font-size:11px;color:var(--dim);flex:none}
.qa-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.qa-grid .mini-btn{padding:8px 6px;border-radius:10px;font-size:12px;text-align:center}
.todo-item{display:flex;align-items:flex-start;gap:9px;padding:8px 9px;border-radius:10px;cursor:pointer;border:1px solid transparent}
.todo-item:hover{background:rgba(61,139,255,.08);border-color:var(--line)}
.todo-item .td-dot{width:7px;height:7px;border-radius:50%;margin-top:5px;flex:none}
.todo-item .td-tx{flex:1;min-width:0;font-size:12.5px;color:var(--ink);line-height:1.4}
.todo-item .td-tx .td-sub{display:block;font-size:11px;color:var(--dim);margin-top:1px}
.dot-blue{background:#3D8BFF}.dot-green{background:#34D399}.dot-amber{background:#F7B84A}

/* 底排三卡 */
.ov-row3{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:12px}
.kind-row{display:flex;justify-content:space-between;font-size:12.5px;padding:6px 2px;border-bottom:1px dashed rgba(70,120,210,.14)}
.kind-row:last-child{border-bottom:0}
.kind-row span{color:var(--muted)}
.kind-row b{color:var(--ink);font-variant-numeric:tabular-nums}

/* ============================================================
   Outreach — Coming Soon（如实：能力未实现，无假数据）
   ============================================================ */
.soon-wrap{max-width:760px;margin:6vh auto 0;text-align:center}
.soon-card{
  background:var(--card);border:1px dashed rgba(90,150,240,.35);border-radius:20px;
  padding:48px 40px 40px;position:relative;overflow:hidden;
}
.soon-card::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(600px 200px at 50% -60px,rgba(56,182,255,.14),transparent 70%)}
.soon-card img{width:110px;height:110px;object-fit:contain;margin-bottom:6px}
.soon-card h2{margin:8px 0 4px;font-size:22px;color:#fff}
.soon-card h2 em{font-style:normal;background:linear-gradient(92deg,#6FB1FF,#38B6FF);-webkit-background-clip:text;background-clip:text;color:transparent}
.soon-chip-big{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.12em;color:#7FE3C0;
  background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.3);border-radius:99px;padding:3px 12px;margin-bottom:12px}
.soon-card p{color:var(--muted);font-size:13px;line-height:1.7;max-width:480px;margin:10px auto 0}
.soon-acts{display:flex;gap:10px;justify-content:center;margin-top:22px;flex-wrap:wrap}

/* ---------- 响应式 ---------- */
@media (max-width:1360px){
  .ov-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pipeline{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ov-row3{grid-template-columns:1fr 1fr}
}
@media (max-width:1120px){
  #ov-root{grid-template-columns:1fr}
  .ov-rail{position:static;flex-direction:row;flex-wrap:wrap}
  .ov-rail>.rail-card{flex:1 1 280px}
}
@media (max-width:1023px){
  .gsearch{display:none}
}

/* ---------- 全局加载/错误占位（analytics 等复用） ---------- */
.wk-loading,.wk-error{background:var(--card);border-color:var(--line);color:var(--muted)}
.wk-error h2{color:var(--ink)}
.num-input .vbtn{background:rgba(61,139,255,.12);color:var(--ink)}
.num-input .vbtn:hover{background:rgba(61,139,255,.24);color:#fff}
.nav-count.hidden{display:none}

/* ============================================================
   V1.2 终稿精修（2026-09-16 二轮）：导航中文主标题 · Journey 状态感 ·
   Leads 扫读 · 任务结果页层级 · Overview 细节 · 详情联系方式折叠
   ============================================================ */

/* ---------- 一级导航：中文主标题 + 英文辅助小字 ---------- */
#sidebar .nl b{font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--ink)}
#sidebar .nl i{font-style:normal;font-size:9px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--dim);margin-top:2px}
#sidebar a.on .nl b{color:#fff}
#sidebar a.on .nl i{color:rgba(255,255,255,.66)}
#sidebar a:hover .nl i{color:var(--muted)}

/* ---------- Discover · Search Journey 状态感（全部真实状态的可视强化，
            无任何假进度：脉冲只标记服务端 stages 的 active 真阶段） ---------- */
#f-journey .j-head h1{font-size:21px !important;font-weight:700;color:#fff;letter-spacing:.01em}
#j-elapsed{display:inline-block;padding:3px 10px;border-radius:99px;margin-top:4px;
  background:rgba(61,139,255,.1);border:1px solid rgba(61,139,255,.25);color:#9CC4FF !important;
  font-variant-numeric:tabular-nums}
#f-journey .j-num{font-size:44px !important;font-weight:800;color:#fff;
  text-shadow:0 0 24px rgba(61,139,255,.35);font-variant-numeric:tabular-nums}
#f-journey .j-den{color:var(--dim)}
.j-stages .stage{position:relative}
.j-stages .stage.active{border-color:rgba(61,139,255,.5);background:rgba(61,139,255,.12)}
.j-stages .stage.active .dot{background:#4FA3FF;animation:ckpulse 1.6s ease-in-out infinite}
.j-stages .stage.done{border-color:rgba(52,211,153,.35);background:rgba(52,211,153,.08)}
@keyframes ckpulse{0%,100%{box-shadow:0 0 0 0 rgba(79,163,255,.45)}50%{box-shadow:0 0 0 5px rgba(79,163,255,0)}}
#j-funnel{color:var(--muted) !important;line-height:1.9;letter-spacing:.01em}
.j-res{transition:border-color .15s ease}
.j-res:hover{border-color:rgba(90,150,240,.45)}
#j-newpill{position:fixed;left:50%;transform:translateX(-50%);bottom:26px;z-index:60;
  background:var(--grad);color:#fff;font-size:12.5px;font-weight:600;padding:8px 18px;
  border-radius:99px;box-shadow:0 8px 28px rgba(30,111,232,.45);cursor:pointer;border:0}

/* ---------- Leads：表格扫读 + 筛选/批量精修（结构不变） ---------- */
#l-bar,.l-bar{gap:8px;flex-wrap:wrap}
.l-ctl{height:34px}
#l-table{border-collapse:separate;border-spacing:0}
#l-table thead th{position:sticky;top:0;z-index:2;background:#0C1B36;
  box-shadow:0 1px 0 var(--line);font-size:11.5px;letter-spacing:.05em;color:var(--dim)}
:where(#l-table tbody tr:nth-child(even):not(.sel):not(:hover)) td{background:rgba(255,255,255,.016)}
#l-table tbody td{padding-top:9px;padding-bottom:9px;vertical-align:middle}
#l-table tbody td b{color:#EAF2FF}
#l-table .small.muted{font-size:11.5px}
#l-bulkbar:not(.hidden){border-color:rgba(61,139,255,.4);
  background:linear-gradient(90deg,rgba(61,139,255,.1),rgba(61,139,255,.03))}
#l-pageinfo{color:var(--dim);font-variant-numeric:tabular-nums}
select.l-state{font-size:12px}

/* ---------- 任务详情（任务中心 → 查看结果）：同壳层级精修 ---------- */
#v-results .card>.wk-eyebrow{letter-spacing:.16em;color:var(--dim)}
#v-results h1{font-size:20px;margin:4px 0 2px}
#v-results .table-wrap{border:1px solid var(--line);border-radius:12px}
#v-results thead th{position:sticky;top:0;background:#0C1B36;box-shadow:0 1px 0 var(--line)}

/* ---------- 客户详情：联系方式折叠块 ---------- */
.ch-more{margin-top:10px}
#d-contacts table td{padding:8px 10px;vertical-align:middle}
#d-contacts h2 span.small{font-weight:400}
#v-detail h2{font-size:16px;letter-spacing:.01em}

/* ---------- Overview：只做间距/字号/对齐精修（零新模块） ---------- */
.ov-kpi .ok-num{font-size:27px;letter-spacing:-.01em}
.ov-kpi{padding:15px 16px 13px}
.oc-head{align-items:baseline}
.oc-head h3{font-size:15px}
.ov-table td{padding:9px 10px}
.ov-table .muted{font-variant-numeric:tabular-nums}
.rail-card+.rail-card{margin-top:12px}
.ov-hero{padding:22px 26px}
.cred-big{letter-spacing:-.01em}

/* ---------- 1366–1440 宽度带保护：顶栏搜索收窄、卡片留白收紧 ---------- */
@media (max-width:1500px){
  .gsearch input{max-width:300px}
}
@media (max-width:1360px){
  .ov-hero{padding:18px 20px}
  #f-journey .j-num{font-size:38px !important}
}

/* ---- V1.2 补漏：任务详情说明块（legacy 内嵌 #r-detail background:#fafafa → 深色） ---- */
#r-detail{background:rgba(255,255,255,.03);border-color:var(--line)}

/* ======================================================================
   V3 · UIupdate.png 基线 1:1（Overview 首页轮）
   侧栏 EN 主/CN 副 · 顶栏筛选/铃 · Hero · KPI 砖 · 流程箭头 ·
   线索表(证据/意向真实列) · 分布四卡 · 右栏五卡。假数据不入样式：
   无假增量%、无假迷你柱、无假红点。
   ====================================================================== */

/* ---- 侧栏：EN 主标题 + CN 副标题（基线），条目加高 ---- */
#sidebar .nl{display:flex;flex-direction:column;gap:2px;line-height:1.2}
#sidebar .nl b{font-size:14.5px;font-weight:600;letter-spacing:.01em;color:var(--ink)}
#sidebar .nl i{font-size:11px;font-style:normal;letter-spacing:.02em;text-transform:none;color:var(--dim)}
#sidebar nav>a{padding:11px 12px}
#sidebar nav>a.on{background:var(--brand-soft);border-color:transparent}
#sidebar nav>a.on .nl b{color:var(--brand-primary)}
.nav-soon-chip{font-size:10px;padding:2px 8px;border-radius:999px;background:rgba(143,166,204,.12);border:1px solid rgba(143,166,204,.25);color:var(--dim);letter-spacing:.06em}

/* ---- 侧栏底部品牌块（替代会员卡+促销卡） ---- */
.side-brand{margin-top:auto;padding:14px 10px 12px;border-top:1px solid var(--line);text-align:left}
.sb-caps{font-size:9px;letter-spacing:.22em;color:var(--dim);line-height:1.7}
.sb-t{margin-top:8px;font-size:13.5px;font-weight:600;color:var(--text-secondary);line-height:1.5;cursor:pointer}
.sb-t:hover{color:var(--brand-primary)}
/* 吉祥物降权：缩小 + 去重投影（深浅主题都不再抢业务导航） */
.sb-mascot{display:block;width:118px;height:auto;margin:8px auto 4px;opacity:.92}
.sb-cr{font-size:10px;color:var(--dim);line-height:1.6;text-align:center}

/* ---- 顶栏：Overview 隐藏页题；筛选 chip + 下拉；铃 ---- */
body[data-view="overview"] .tb-title{display:none}
#credits[hidden]{display:none!important}
.tb-filters{display:flex;align-items:center;gap:8px;margin-left:12px}
.tbf{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.03);color:var(--ink);font-size:12.5px;cursor:pointer}
.tbf:hover{border-color:rgba(61,139,255,.45)}
.tbf svg{width:15px;height:15px;color:#7FB4FF}
.tbf .caret{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--dim)}
.tbf-flat{cursor:default;color:var(--ink)}
.tbf-wrap{position:relative}
.tbf-menu{position:absolute;top:40px;left:0;min-width:150px;background:#0D1B33;border:1px solid var(--line);border-radius:10px;padding:5px;box-shadow:0 14px 34px rgba(0,0,0,.5);z-index:60;max-height:300px;overflow:auto}
.tbf-item{display:block;width:100%;text-align:left;padding:7px 10px;border:0;border-radius:7px;background:none;color:var(--ink);font-size:12.5px;cursor:pointer}
.tbf-item:hover{background:rgba(61,139,255,.14)}
.tb-bell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin-left:6px;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.03);color:var(--muted);cursor:pointer}
.tb-bell svg{width:17px;height:17px}
.tb-bell:hover{color:var(--ink);border-color:rgba(61,139,255,.45)}

/* ---- Hero（基线：eyebrow + 大标题 + 副题 + 特性 chips + 右侧地球与文案） ---- */
#v-overview .ov-hero{padding:26px 28px;gap:18px}
.oh-eyebrow{font-size:10.5px;letter-spacing:.18em;color:#6EA8FF;margin-bottom:10px}
#v-overview .ov-hero h2{font-size:30px;font-weight:700;letter-spacing:.01em;margin:0 0 8px}
#v-overview .ov-hero h2 em{font-style:normal;color:#6EA8FF}
#v-overview .oh-sub{font-size:15px;color:var(--ink);opacity:.92;margin:0 0 14px}
.oh-chips{display:flex;flex-wrap:wrap;gap:8px}
.oh-chips span{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:5px 12px;background:rgba(255,255,255,.025)}
.oh-art{position:relative;flex:0 0 400px;align-self:stretch;min-height:150px;display:flex;align-items:center;justify-content:flex-end}
.oh-art img{width:100%;max-width:400px;border-radius:12px;opacity:.92}
.oh-art-tx{position:absolute;right:6px;bottom:2px;text-align:right}
.oh-art-tx b{display:block;font-size:15px;color:#EAF2FF;text-shadow:0 2px 10px rgba(0,0,0,.7);line-height:1.55}
.oh-art-tx i{display:block;font-style:normal;font-size:8.5px;letter-spacing:.2em;color:#9DB8E8;margin-top:5px}

/* ---- KPI 砖（基线：40px 渐变图标砖 + EN 主标 + CN 副标 + 大数字） ---- */
.ov-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
#v-overview .ov-kpi{padding:16px 16px 14px;display:flex;flex-direction:column;gap:14px}
.ok-top{display:flex;align-items:center;gap:10px}
/* KPI 图标砖（2026-09-25 降噪）：饱和渐变底 → 柔和着色底 + 同色 glyph */
.ok-ic{width:40px;height:40px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;font-size:18px;flex:0 0 auto}
.ok-ic.ic-blue{background:rgba(61,139,255,.14);color:#7FB4FF}
.ok-ic.ic-amber{background:rgba(247,184,74,.14);color:#F7C777}
.ok-ic.ic-cyan{background:rgba(56,182,255,.14);color:#67D3FF}
.ok-ic.ic-green{background:rgba(52,211,153,.14);color:#5EE0B0}
.ok-ic.ic-violet{background:rgba(61,139,255,.14);color:#7FB4FF}
.ok-label{display:flex;flex-direction:column;gap:1px;line-height:1.25}
.ok-label b{font-size:13px;font-weight:600;color:var(--ink)}
.ok-label span{font-size:11px;color:var(--dim)}
.ok-bot{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
#v-overview .ok-num{font-size:30px;line-height:1}
#v-overview .ok-sub{margin:0}

/* ---- 销售流程：步骤间箭头 ---- */
#v-overview .oc-head h3{font-size:15px}
#v-overview .oc-head h3>span{font-size:11.5px;font-weight:500;color:var(--dim);margin-left:6px;letter-spacing:.04em}
.pipeline{gap:30px}
.pstep{position:relative}
.pstep:not(:last-child)::after{content:'›';position:absolute;right:-22px;top:50%;transform:translateY(-50%);color:var(--dim);font-size:18px}
.pstep.ps-active{background:linear-gradient(135deg,rgba(61,139,255,.22),rgba(61,139,255,.08));border-color:rgba(61,139,255,.55);box-shadow:0 0 0 1px rgba(61,139,255,.2)}
.ps-num{width:26px;height:26px;border-radius:50%;background:rgba(61,139,255,.18);border:1px solid rgba(61,139,255,.4);color:#7FB4FF;display:inline-flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:600}
.pstep.ps-active .ps-num{background:#3D8BFF;color:#fff}
.ps-soon-chip{font-size:9.5px;letter-spacing:.08em;padding:2px 8px;border-radius:999px;background:rgba(143,166,204,.1);border:1px solid rgba(143,166,204,.22);color:var(--dim)}

/* ---- 卡头：CN 主 + EN 辅 + 工具区 ---- */
.oc-head h3 .oc-cnt{font-size:13px;color:var(--muted);font-weight:600;margin-left:2px}
.oc-tools{display:flex;align-items:center;gap:8px;margin-left:auto}
.oc-search{display:flex;align-items:center;gap:7px;height:32px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.03)}
.oc-search svg{width:14px;height:14px;color:var(--dim);flex:0 0 auto}
.oc-search input{border:0;background:none;outline:none;color:var(--ink);font-size:12.5px;width:200px}

/* ---- 线索表（真实证据/意向列） ---- */
.ov-table td{padding:10px 10px;vertical-align:middle}
.co-cell{display:flex;align-items:center;gap:9px;min-width:200px}
.co-av{width:28px;height:28px;border-radius:50%;background:rgba(61,139,255,.16);color:#9CC2FF;font-size:12.5px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.co-nm{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.co-cty{white-space:nowrap}
.sc-pill{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:22px;border-radius:7px;font-size:12.5px;font-weight:700;margin-right:6px}
.sc-pill.sb-hi{background:rgba(52,211,153,.14);color:#5EE0B0;border:1px solid rgba(52,211,153,.3)}
.sc-pill.sb-md{background:rgba(61,139,255,.14);color:#7FB4FF;border:1px solid rgba(61,139,255,.32)}
.sc-pill.sb-lo{background:rgba(247,184,74,.13);color:#F7C777;border:1px solid rgba(247,184,74,.3)}
.ov-table .grade{font-size:10px}
.ev-chip{display:inline-flex;align-items:center;font-size:10.5px;padding:2px 7px;border-radius:6px;border:1px solid rgba(61,139,255,.3);background:rgba(61,139,255,.09);color:#9CC0FF;margin-right:4px;white-space:nowrap}
.ev-chip.ev-more{border-color:var(--line);background:rgba(255,255,255,.04);color:var(--dim)}
.intent{font-size:12px;font-weight:600}
.intent.it-hi{color:#F97066}.intent.it-md{color:#F7B84A}.intent.it-lo{color:var(--dim)}
.st-chip{display:inline-flex;font-size:11px;padding:3px 9px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--muted);white-space:nowrap}
#ov-tbody tr{cursor:pointer}

/* ---- 分布四卡 ---- */
.ov-row4{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:14px}
.ov-row4 .ov-card{margin-top:0}
.bar-row{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:12px}
.bar-k{width:66px;flex:0 0 auto;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar-track{flex:1;height:7px;border-radius:99px;background:rgba(255,255,255,.05);overflow:hidden}
.bar-track i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#3D8BFF,#6EA8FF)}
.bar-v{width:64px;flex:0 0 auto;text-align:right;color:var(--dim);font-size:11px;white-space:nowrap}
.bar-v b{color:var(--ink);margin-right:4px}
.donut-wrap{display:flex;align-items:center;gap:14px}
.donut{position:relative;width:116px;height:116px;border-radius:50%;background:var(--donut,conic-gradient(var(--line) 0 100%));flex:0 0 auto}
.donut i{position:absolute;inset:20px;border-radius:50%;background:var(--card);display:flex;flex-direction:column;align-items:center;justify-content:center;font-style:normal}
.donut i b{font-size:17px;color:var(--ink)}
.donut i small{font-size:9px;color:var(--dim)}
.donut-lg{display:flex;flex-direction:column;gap:5px;font-size:11.5px;color:var(--muted);min-width:0}
.donut-lg div{white-space:nowrap}
.donut-lg div{display:flex;align-items:center;gap:6px}
.donut-lg b{margin-left:auto;color:var(--ink)}
.dg{width:9px;height:9px;border-radius:3px;display:inline-block}
.dg.c0{background:#3D8BFF}.dg.c1{background:#34D399}.dg.c2{background:#F7B84A}.dg.c3{background:#5B8CFF}.dg.c4{background:#F97066}.dg.c5{background:#8FA6CC}
.hist{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;height:118px;padding-top:8px}
.hist-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px}
.hist-col b{font-size:11px;color:var(--ink)}
.hist-col i{width:100%;max-width:38px;border-radius:6px 6px 3px 3px;background:linear-gradient(180deg,#6EA8FF,#2563EB);min-height:6px}
.hist-col span{font-size:9.5px;color:var(--dim)}
.act-row{display:flex;align-items:center;gap:9px;padding:7px 0;border-bottom:1px solid rgba(143,166,204,.08);cursor:pointer}
.act-row:last-child{border-bottom:0}
.act-tx{flex:1;min-width:0}
.act-tx b{display:block;font-size:12.5px;color:var(--ink);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.act-tx span{font-size:11px;color:var(--dim)}
.act-tm{font-size:11px;color:var(--dim);white-space:nowrap}

/* ---- 右栏 ---- */
.rc-title{display:flex;align-items:center;gap:7px}
.rc-title .oc-more{margin-left:auto}
.rc-en{font-size:10.5px;color:var(--dim);letter-spacing:.05em}
.ins-card{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:11px;padding:11px 12px;margin-top:9px;cursor:pointer;background:rgba(255,255,255,.02)}
.ins-card:hover{border-color:rgba(61,139,255,.45);background:rgba(61,139,255,.06)}
.ins-ic{width:34px;height:34px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;flex:0 0 auto}
.ins-card.ic0 .ins-ic{background:rgba(61,139,255,.14);color:#7FB4FF}
.ins-card.ic1 .ins-ic{background:rgba(52,211,153,.14);color:#5EE0B0}
.ins-card.ic2 .ins-ic{background:rgba(249,112,102,.14);color:#F49B93}
.ins-tx{min-width:0;display:flex;flex-direction:column;gap:3px}
.ins-tx .ii-kw{font-size:12.5px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ins-tx .ii-n{font-size:11px;color:var(--dim)}
.qa-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.qa-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.03);color:var(--ink);font-size:12.5px;cursor:pointer}
.qa-btn i{font-style:normal;color:#7FB4FF;font-size:14px}
.qa-btn:hover{border-color:rgba(61,139,255,.5);background:rgba(61,139,255,.08)}
.ai-flex{display:flex;align-items:flex-end;gap:10px;margin-top:10px}
.ai-flex .ai-bubble{flex:1;margin:0;border-radius:12px 12px 12px 4px}
.ai-flex .ai-bubble span{display:block;margin-top:6px;font-size:10px;color:var(--dim);letter-spacing:.04em}
.rail-card.ai-card{overflow:hidden}
.ai-card .ai-mascot{width:84px;height:auto !important;flex:0 0 auto;margin:0 -4px -6px 0}
.ai-status{font-size:10.5px;color:#5EE0B0;display:inline-flex;align-items:center;gap:5px;margin-left:2px}
.tagchip{font-size:10px;padding:2px 8px;border-radius:999px;white-space:nowrap;flex:0 0 auto}
.tagchip.tg-red{background:rgba(249,112,102,.13);color:#F49B93;border:1px solid rgba(249,112,102,.3)}
.tagchip.tg-amber{background:rgba(247,184,74,.12);color:#F7C777;border:1px solid rgba(247,184,74,.3)}
.tagchip.tg-gray{background:rgba(143,166,204,.1);color:var(--muted);border:1px solid rgba(143,166,204,.22)}
.tagchip.tg-blue{background:rgba(61,139,255,.12);color:#7FB4FF;border:1px solid rgba(61,139,255,.3)}
#v-overview .todo-item{align-items:flex-start}
#v-overview .todo-item .tagchip{margin-left:8px}
.cred-btn{width:100%;margin-top:10px}

/* ---- 响应式 ---- */
@media (max-width:1560px){
  .oh-art{flex-basis:320px}
}
@media (max-width:1360px){
  .tb-filters{display:none}
  .ov-kpis{grid-template-columns:repeat(3,1fr)}
  .ov-row4{grid-template-columns:1fr}
  .pipeline{flex-wrap:wrap;gap:14px}
  .pstep:not(:last-child)::after{display:none}
}

/* ================= V4 · 品牌素材（2026-09-25 重构：地球横幅已移除） =================
   hero-bg.webp 地球图已从 Hero/内容区全部撤下（设计纪律：不用夸张地球特效）。
   rabbit-hero/side/ai.webp = Hero 右视觉 / 侧栏标语块 / AI 助手卡（官方素材，
   装饰图 data-fade 淡入，加载前停留在深蓝底色，禁白屏/逐张闪现） */

/* Hero：安静的深蓝底 + 右侧极淡光晕，无照片背景 */
.ov-hero{position:relative;overflow:hidden;min-height:216px;
  background:radial-gradient(130% 170% at 80% -10%, #10234E 0%, #081431 48%, #060F24 100%)}
.ov-hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg, rgba(5,11,24,.16) 0%, rgba(5,11,24,0) 34%, rgba(5,11,24,.30) 100%)}
.ov-hero>*{position:relative;z-index:2}

/* Hero 右视觉：文案 + 半身兔（面朝左引荐文案），底边对齐 */
.ov-hero .oh-art{position:relative;flex:0 0 auto;display:flex;align-items:flex-end}
.ov-hero .oh-art-tx{position:static;text-align:right;padding:0 10px 12px 0}
.ov-hero .oh-rabbit{width:224px;height:auto !important;flex:none;display:block;margin:0 -2px -10px 0;
  filter:drop-shadow(0 14px 38px rgba(0,0,0,.6))}

/* data-fade 装饰图：加载完成淡入（未加载=容器深蓝底，无白框无跳位） */
img[data-fade]{opacity:0;transition:opacity .45s ease}
img[data-fade].bf-on{opacity:1}

/* 非 Overview 内容区顶部装饰光带已随地球横幅一并移除（2026-09-25） */
main.content{position:relative;z-index:0}

@media (max-width:1560px){ .ov-hero .oh-rabbit{width:196px} }
@media (max-width:1360px){ .ov-hero .oh-art-tx{display:none} }

/* ================= V6 · Skeleton 骨架 + 逐模块 hydrate（2026-09-17） =================
   纯 CSS shimmer，不新增任何视觉素材。Overview 骨架随 shell 立即出现，
   各模块数据独立到达后分别点亮；失败模块 = 诚实占位 + 重试。 */
.sk{position:relative;overflow:hidden;border-radius:8px;background:rgba(143,166,204,.10)}
.sk::after{content:"";position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(173,196,255,.13),transparent);
  animation:skSweep 1.5s ease-in-out infinite}
@keyframes skSweep{to{transform:translateX(100%)}}
@media (prefers-reduced-motion:reduce){.sk::after{animation:none}}
.ok-bot .sk-num{height:30px;width:88px;margin:10px 0 8px}
.ok-bot .sk-sub{height:12px;width:124px}
.ps-meta .sk-line{display:inline-block;height:12px;width:96px;border-radius:6px}
#ov-tbody td .sk{height:14px;margin:4px 0}
.sk-tr td{padding:9px 10px}
.sk-block{height:120px}
.sk-big{height:34px;width:112px;margin-bottom:10px}
.sk-meter{height:7px;border-radius:99px;margin:9px 0 8px}
.sk-row{height:44px;margin-bottom:9px}
.fail-hint{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:#ff9da6;font-size:12px;padding:10px 2px}
.fail-hint .mini-btn{cursor:pointer}
.psm-fail{color:#ff9da6}

/* ---- CI-P1: 行为过滤 chips + AI 资格卡第三行 + 联系证据链 ---- */
.l-bhvbar{margin-top:8px;align-items:center}
.l-bhv{cursor:pointer;opacity:.72}
.l-bhv.on{opacity:1;border-color:rgba(70,160,255,.55);color:#9CC2FF;background:rgba(61,139,255,.14)}
.l-qual{margin-top:3px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.qual-pill{display:inline-block;padding:1px 8px;border-radius:99px;font-size:11px;line-height:16px;background:rgba(143,166,204,.14);color:var(--muted)}
.qual-pill.ok{background:rgba(52,211,153,.12);color:#5EE0B0}
.qual-pill.warn{background:rgba(240,180,80,.14);color:#F0C674}
.qual-pill.no{background:rgba(249,112,102,.12);color:#F49B93}
.qual-pill.dim{opacity:.55}
/* 真实公司可能挂 90+ 条渠道证据（Legrand 实测 93）——卡内滚动，不撑爆详情页 */
#d-chain{max-height:600px;overflow:auto}
#d-chain table{margin-top:2px}
#d-chain td{vertical-align:top}

/* ================= 用户管理页 V6 视觉统一（2026-09-20 · 仅前端视觉） =================
   纪律：不碰 index.html 内联 / design-system.css 旧规则，只做作用域覆盖。
   深蓝两级层次：页面 #050B18 → 卡片 var(--card) → 表头带 #0C1B36 → hover 再微亮。
   语义色：superadmin 紫蓝 / owner 科技蓝 / member 蓝灰；红只用于危险（软描边）。 */

/* 输入/下拉：深蓝半透明 + 低亮度科技蓝描边（盖掉 design-system .adm-inp 白底） */
#v-adminusers .adm-inp, .mroot .adm-inp{
  background:rgba(13,31,61,.6);border:1px solid rgba(70,120,210,.3);color:var(--ink)}

/* 分割线：白硬线（index.html .tbl-sm td #f1f3f5 / th #eef0f2）→ 低亮度科技蓝 */
#v-adminusers .tbl-sm th, #v-adminusers .tbl-sm td,
.mroot .tbl-sm th, .mroot .tbl-sm td{border-bottom-color:rgba(70,120,210,.13)}

/* 表头带：降亮度 + 蓝灰小字，对齐 #l-table thead 范式 */
#v-adminusers .tbl-sm thead th, .mroot .tbl-sm thead th{
  background:#0C1B36;box-shadow:0 1px 0 var(--line);color:var(--dim);letter-spacing:.05em}

/* 行层次：斑马纹（极淡）+ hover 微亮；正文清晰、主字段（邮箱/数字）提亮 */
:where(#v-adminusers .tbl-sm tbody tr:nth-child(even)) td{background:rgba(255,255,255,.016)}
#v-adminusers .tbl-sm tbody tr:hover td{background:rgba(61,139,255,.06)}
#v-adminusers .tbl-sm td b, .mroot .tbl-sm td b{color:#EAF2FF}

/* 角色语义 tag（2026-09-25 去紫）：superadmin 反白 / owner 科技蓝 / member 低饱和蓝灰 */
.tag.ro-super{background:rgba(233,242,255,.10);border-color:rgba(233,242,255,.42);color:#EAF2FF;font-weight:700}
.tag.ro-owner{background:rgba(61,139,255,.13);border-color:rgba(61,139,255,.38);color:#8FBBFF}
.tag.ro-member{background:rgba(143,166,204,.12);border-color:rgba(143,166,204,.25);color:#A9BCDD}

/* 主操作：唯一高亮蓝走 V6 渐变（新建账号 pri / 弹窗主保存），
   选择器镜像 design-system 的 :not 链以保证 specificity 胜出 */
.adm-sm.pri:not(.sec):not(.warn), .mroot .card #m-save{
  background:var(--grad);border:0;color:#fff;box-shadow:var(--glow)}
.adm-sm.pri:not(.sec):not(.warn):hover, .mroot .card #m-save:hover{filter:brightness(1.08)}
.adm-sm.pri:not(.sec):not(.warn):disabled, .mroot .card #m-save:disabled{opacity:.5;filter:none;box-shadow:none}

/* 危险操作唯一红：实心大红 → 软红描边（覆盖 design-system .adm-sm.warn 实心 #F04438） */
#v-adminusers .adm-sm.warn, .mroot .adm-sm.warn{
  background:rgba(249,112,102,.1);border:1px solid rgba(249,112,102,.35);color:#F49B93}
#v-adminusers .adm-sm.warn:hover, .mroot .adm-sm.warn:hover{
  background:rgba(249,112,102,.18);border-color:rgba(249,112,102,.55);color:#FFB4AC}

/* ===== 最近活动（#j-acts）深色统一 + 状态可读性整改（2026-09-21 P1）=====
   根因：design-system .j-acts{background:#FAFCFE} 近白底在深色主题下未被
   覆盖，默认 li 文字继承 --ink(#E8F1FF 近白) → 近白叠近白不可见（~1.1:1），
   只有 .a-ok 深绿可见。此处按 cockpit 既有覆盖范式（.j-net/.j-banner 同款）
   统一深色卡片；状态色全部对深底 ≥4.5:1（WCAG AA），与 .tbadge 同套语义：
   ok=#34D399(≈8.9:1) run=#7FB4FF(≈7.7:1) warn=#F7C777(≈10:1) muted=#8FA6CC(≈5.6:1) */
.j-acts{background:rgba(13,31,61,.6);border:1px solid var(--line)}
.j-acts li{color:var(--ink)}
.j-acts li b{color:#EAF2FF}
/* 分隔线：design-system 硬灰 #eef0f2 → 低亮度科技蓝（与表格分隔线同源） */
.j-acts li{border-bottom:1px solid rgba(70,120,210,.13)}
.a-ok{color:var(--ok)}
.a-run{color:#7FB4FF}
.a-warn{color:#F7C777}
.a-skip{color:var(--muted)}
.j-acts details summary:hover{color:#CFE0FF}
.j-acts .mini-btn{background:rgba(61,139,255,.12);border:1px solid rgba(61,139,255,.35);color:#8FBBFF}
.j-acts .mini-btn:hover{background:rgba(61,139,255,.2)}
/* 阶段链 pending 态浅底遗留（#EEF2F7/#8A97AB）→ 深色未激活态；done/active
   已有 cockpit 覆盖，此处只补 pending 基态 */
.stage{background:rgba(70,120,210,.12);color:#A9BCDD;border:1px solid rgba(70,120,210,.2)}
/* 任务徽标新增「需人工处理」态：与 .a-warn 同族琥珀，浅色主题走 design-system */
.tbadge.review{background:rgba(247,184,74,.12);color:#F7C777;border-color:rgba(247,184,74,.3)}
