/* ============================================================================
   老板CRM管理 · 界面样式（2026-09-19 改版：去掉"搜企业"，改成"粘贴录线索"）
   ----------------------------------------------------------------------------
   前缀一律 crm-（站内唯一），**独立文件、在 style.css 之后加载**（站内铁律：
   改别人的样式不动公共 css）。

   🔴 2026-09-19 换配色（用户原话：「红色主题也很难看」）。原来是"朱红作行动色"，
      问题不在好不好看，而在**语义位冲突**：
        ① 红色在界面语言里已经被"错误 / 危险 / 删除 / 逾期"占用。它同时当品牌行动色，
           用户就对红脱敏了 —— 真有逾期时反而不扎眼；
        ② 市面 CRM（销售易 / 纷享销客 / HubSpot / Pipedrive）主色基本都在蓝—靛—青区间，
           红只出现在"逾期 / 失败 / 删除"；
        ③ 那个 #16327a → #2b5ce6 的标题栏渐变是"血色"，压迫感很强，一进页面就沉。
      现在：**主色靛蓝 #2b5ce6**；**红只留给三处语义正确的地方** —— 逾期标记、删除/危险、
      以及「A 级重点」徽标（那是"最热"，本来就该扎眼）。
   🔴 设计约束（逐条想过的，不是随手写的）：
     ① **这是手机功能**：老板九成时间在手机上用。所有可点区域 ≥44px，
        横向列表能滑就滑，底部批量条要让开 TabBar（实测 74px）。
     ② **一屏只讲一件事**：找客户 / 管名单 / 跟客户 —— 三个视图，各自整屏，
        绝不在同一屏堆两层信息（这是"一看就懂"的根本）。
     ③ **信息密度分两层**：列表行只给"名字 + 意向 + 电话"，其余进详情页。
        老板扫名单时眼球只找两样东西：**这家是谁、能不能联系上**。
     ④ 含 absolute 装饰物的容器一律 position:relative（否则撑宽 document，
        手机端整页缩成 77% —— 站内踩过的坑）。
     ⑤ hidden 必须 !important 兜底（display:grid/flex 会盖掉 hidden）。
   ========================================================================== */

.subpanel#sub-crm {
  --crm-brand: #2b5ce6;
  --crm-brand-dk: #1e47c4;
  --crm-brand-lt: #eef2fe;
  --crm-danger: #dc2626;
  --crm-danger-lt: #fef2f2;
  --crm-danger-bd: #c7d6fb;
  --crm-gold: #b45309;
  --crm-gold-lt: #fffbeb;
  --crm-ink: #101828;
  --crm-ink2: #475467;
  --crm-ink3: #98a2b3;
  --crm-line: #eaecf0;
  --crm-bg: #f7f8fa;
  --crm-card: #ffffff;
  --crm-shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 4px 14px rgba(16, 24, 40, .05);
  --crm-shadow-lg: 0 8px 28px rgba(16, 24, 40, .12);
  padding-bottom: 88px;
  background: var(--crm-bg);
  color: var(--crm-ink);
}
#sub-crm [hidden] { display: none !important; }
#sub-crm * { -webkit-tap-highlight-color: transparent; box-sizing: border-box; }
#sub-crm .crm-view { padding: 0 12px 20px; }

/* ---------------------------------------------------------------- Tab 栏 */
/* 放在三个视图**之外**（见 crm.js 的 tabsHtml 注释）。不 sticky —— 站内
   .sub-topbar 已经是顶部栏，两块都 sticky 会叠在一起；宁可不吸顶也不打架。 */
#sub-crm .crm-tabs {
  display: flex; gap: 8px; padding: 10px 12px 12px;
}
#sub-crm .crm-tab {
  flex: 1; min-height: 42px; border: 1px solid var(--crm-line); border-radius: 12px;
  background: #fff; font-family: inherit; font-size: 14px; font-weight: 600;
  color: var(--crm-ink2); cursor: pointer;
  display: flex; align-items: center; justify-content: center; gap: 6px;
  transition: all .14s ease;
}
#sub-crm .crm-tab:active { transform: scale(.985); }
#sub-crm .crm-tab.on {
  background: var(--crm-brand); border-color: var(--crm-brand); color: #fff;
  box-shadow: 0 2px 9px rgba(217, 45, 32, .24);
}
#sub-crm .crm-tab-n {
  font-size: 11px; font-weight: 700; background: #f2f4f7; color: var(--crm-ink2);
  border-radius: 999px; padding: 1px 7px; min-width: 19px; text-align: center;
  font-variant-numeric: tabular-nums;
}
#sub-crm .crm-tab.on .crm-tab-n { background: rgba(255, 255, 255, .26); color: #fff; }

/* ---------------------------------------------------------------- 顶部 */
#sub-crm .crm-head {
  position: relative;
  margin: 0 -12px 14px;
  padding: 16px 16px 18px;
  background:
    radial-gradient(120% 90% at 88% -10%, rgba(255, 255, 255, .28) 0%, rgba(255, 255, 255, 0) 62%),
    linear-gradient(122deg, #1e47c4 0%, #2b5ce6 46%, #4f7cf0 100%);
  color: #fff;
  overflow: hidden;
}
#sub-crm .crm-head::after {
  content: '';
  position: absolute; right: -46px; top: -54px;
  width: 168px; height: 168px; border-radius: 50%;
  background: radial-gradient(circle at 34% 34%, rgba(255, 255, 255, .30), rgba(255, 255, 255, 0) 68%);
  pointer-events: none;
}
#sub-crm .crm-head-t { font-size: 20px; font-weight: 700; letter-spacing: .2px; }
#sub-crm .crm-head-d { margin-top: 5px; font-size: 12.5px; line-height: 1.6; opacity: .92; max-width: 32em; }
#sub-crm .crm-head-gains { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 11px; }
#sub-crm .crm-gain {
  font-size: 11.5px; padding: 4px 9px; border-radius: 999px;
  background: rgba(255, 255, 255, .18); border: 1px solid rgba(255, 255, 255, .26);
  white-space: nowrap;
}

/* ---------------------------------------------------------------- 通用块 */
#sub-crm .crm-sec {
  position: relative;
  background: var(--crm-card);
  border: 1px solid var(--crm-line);
  border-radius: 14px;
  padding: 14px;
  margin-bottom: 12px;
  box-shadow: var(--crm-shadow);
}
#sub-crm .crm-sec-h {
  display: flex; align-items: center; justify-content: space-between;
  gap: 8px; margin-bottom: 10px;
}
#sub-crm .crm-sec-t { font-size: 13.5px; font-weight: 700; color: var(--crm-ink); display: flex; align-items: center; gap: 6px; }
#sub-crm .crm-sec-n { font-size: 11px; font-weight: 500; color: var(--crm-ink3); }
#sub-crm .crm-sec-x {
  font-size: 11.5px; color: var(--crm-ink2); background: none; border: 0;
  padding: 6px 4px; cursor: pointer; font-family: inherit;
}

/* ---------------------------------------------------------------- 胶囊选择 */
#sub-crm .crm-chips { display: flex; flex-wrap: wrap; gap: 7px; }
#sub-crm .crm-chip {
  border: 1px solid var(--crm-line); background: #fff; color: var(--crm-ink2);
  border-radius: 999px; padding: 9px 13px; font-size: 13px; font-family: inherit;
  cursor: pointer; white-space: nowrap; min-height: 38px;
  transition: all .13s ease;
}
#sub-crm .crm-chip:active { transform: scale(.96); }
#sub-crm .crm-chip.on {
  background: var(--crm-brand); border-color: var(--crm-brand); color: #fff;
  font-weight: 600; box-shadow: 0 2px 8px rgba(217, 45, 32, .24);
}
#sub-crm .crm-chip.on.gold { background: var(--crm-gold); border-color: var(--crm-gold); box-shadow: 0 2px 8px rgba(180, 83, 9, .24); }
#sub-crm .crm-kw {
  width: 100%; height: 42px; margin-top: 9px; border: 1px solid var(--crm-line);
  border-radius: 11px; padding: 0 12px; font-size: 13.5px; font-family: inherit;
  background: #fcfcfd; color: var(--crm-ink);
}
#sub-crm .crm-kw:focus { outline: none; border-color: var(--crm-brand); background: #fff; }

/* 行业 chips 折叠 */
#sub-crm .crm-ind-more {
  margin-top: 8px; width: 100%; height: 38px; border: 1px dashed var(--crm-line);
  border-radius: 11px; background: #fff; color: var(--crm-ink2);
  font-family: inherit; font-size: 12.5px; cursor: pointer;
}

/* ---------------------------------------------------------------- 主按钮 */
#sub-crm .crm-go {
  width: 100%; height: 50px; margin-top: 12px; border: 0; border-radius: 13px;
  font-family: inherit; font-size: 16px; font-weight: 700; color: #fff; cursor: pointer;
  background: linear-gradient(135deg, #4f7cf0, #2b5ce6);
  box-shadow: 0 3px 14px rgba(217, 45, 32, .28);
  display: flex; align-items: center; justify-content: center; gap: 8px;
}
#sub-crm .crm-go:active { transform: scale(.99); }
#sub-crm .crm-go[disabled] { opacity: .62; }
#sub-crm .crm-go-note { margin-top: 8px; font-size: 11.5px; color: var(--crm-ink3); text-align: center; line-height: 1.5; }

/* ---------------------------------------------------------------- 悬浮批量条 */
#sub-crm .crm-dock {
  position: fixed; left: 0; right: 0; bottom: 74px; z-index: 60;
  padding: 0 12px; pointer-events: none;
}
#sub-crm .crm-dock-in {
  pointer-events: auto; max-width: 620px; margin: 0 auto;
  display: flex; align-items: center; gap: 9px;
  background: rgba(16, 24, 40, .96); color: #fff;
  border-radius: 15px; padding: 10px 12px; box-shadow: var(--crm-shadow-lg);
  backdrop-filter: blur(8px);
}
#sub-crm .crm-dock-n { font-size: 13px; font-weight: 600; white-space: nowrap; }
#sub-crm .crm-dock-n b { color: #c7d6fb; }
#sub-crm .crm-dock-b {
  margin-left: auto; display: flex; gap: 7px; flex-wrap: wrap; justify-content: flex-end;
}
#sub-crm .crm-dbtn {
  border: 0; border-radius: 10px; padding: 9px 13px; font-family: inherit;
  font-size: 13px; font-weight: 650; cursor: pointer; white-space: nowrap;
  background: rgba(255, 255, 255, .13); color: #fff;
}
#sub-crm .crm-dbtn.pri { background: linear-gradient(135deg, #4f7cf0, #2b5ce6); }
#sub-crm .crm-dbtn.danger { background: #1e47c4; }

/* ---------------------------------------------------------------- 统计 + 漏斗 */
#sub-crm .crm-stat { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
#sub-crm .crm-stat-c {
  text-align: center; padding: 11px 4px; border-radius: 12px;
  background: #fcfcfd; border: 1px solid var(--crm-line);
}
#sub-crm .crm-stat-v { font-size: 19px; font-weight: 750; color: var(--crm-ink); line-height: 1.15; font-variant-numeric: tabular-nums; }
#sub-crm .crm-stat-v.red { color: var(--crm-danger); }
#sub-crm .crm-stat-v.gold { color: var(--crm-gold); }
#sub-crm .crm-stat-k { margin-top: 3px; font-size: 11px; color: var(--crm-ink3); }

#sub-crm .crm-funnel { margin-top: 4px; }
#sub-crm .crm-fn-row { display: flex; align-items: center; gap: 9px; margin-bottom: 6px; }
/* 🔴 原来 54px 装不下「🆕 新线索」→ 文字被挤成两行（"新线/索"），
   手机截图一眼就看出来了。72px + 不换行 = 一行放下最长的那一档。 */
#sub-crm .crm-fn-k { width: 72px; flex: 0 0 72px; font-size: 12px; color: var(--crm-ink2); white-space: nowrap; }
#sub-crm .crm-fn-track { flex: 1; height: 22px; border-radius: 7px; background: #f2f4f7; overflow: hidden; }
#sub-crm .crm-fn-bar {
  height: 100%; border-radius: 7px; min-width: 3px;
  background: linear-gradient(90deg, #93c5fd, #60a5fa);
  transition: width .4s cubic-bezier(.4, 0, .2, 1);
}
#sub-crm .crm-fn-bar.s1 { background: linear-gradient(90deg, #60a5fa, #2563eb); }
#sub-crm .crm-fn-bar.s2 { background: linear-gradient(90deg, #a78bfa, #7c3aed); }
#sub-crm .crm-fn-bar.s3 { background: linear-gradient(90deg, #4ade80, #16a34a); }
#sub-crm .crm-fn-bar.s4 { background: linear-gradient(90deg, #e2e8f0, #cbd5e1); }
#sub-crm .crm-fn-v { width: 44px; flex: 0 0 44px; text-align: right; font-size: 12px; font-weight: 650; color: var(--crm-ink); font-variant-numeric: tabular-nums; }
#sub-crm .crm-fn-conv { margin-top: 9px; font-size: 11.5px; color: var(--crm-ink3); line-height: 1.6; }
#sub-crm .crm-fn-conv b { color: var(--crm-brand); font-weight: 700; }

/* ---------------------------------------------------------------- 勾选框 / 空状态 */
/* 🔴 这几条是**名单卡与识别预览共用**的（.crm-tick 同时用在 .crm-lead 和 .crm-pv 里）。
   2026-09-19 改版删"搜索相关样式"时把整段删掉了 → .crm-tick 宽度变成 0，
   在真机上是「勾选框消失、点不到」，UI 测试报的是 "element is not visible"。
   **删样式块前先确认里面的类没有被别处共用。** */
#sub-crm .crm-tick {
  flex: 0 0 21px; width: 21px; height: 21px; margin-top: 2px; border-radius: 7px;
  border: 1.5px solid #d0d5dd; background: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; color: #fff; line-height: 1;
}
#sub-crm .crm-lead.on .crm-tick,
#sub-crm .crm-pv.on .crm-tick { background: var(--crm-brand); border-color: var(--crm-brand); }

#sub-crm .crm-empty { text-align: center; padding: 30px 18px; color: var(--crm-ink3); }
#sub-crm .crm-empty-ico { font-size: 34px; opacity: .75; }
#sub-crm .crm-empty-t { margin-top: 10px; font-size: 14.5px; font-weight: 650; color: var(--crm-ink2); }
#sub-crm .crm-empty-d { margin-top: 6px; font-size: 12.5px; line-height: 1.65; }
#sub-crm .crm-notel { font-size: 11.5px; color: var(--crm-ink3); }

/* ---------------------------------------------------------------- 名单卡 */
#sub-crm .crm-lead {
  position: relative; display: flex; gap: 11px; padding: 13px; margin-bottom: 9px;
  background: #fff; border: 1px solid var(--crm-line); border-radius: 14px;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04); cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease;
}
#sub-crm .crm-lead:active { transform: scale(.99); }
#sub-crm .crm-lead.on { border-color: var(--crm-brand); background: var(--crm-brand-lt); }
#sub-crm .crm-lead.stale { border-left: 3px solid var(--crm-danger); }
#sub-crm .crm-lead-b { flex: 1; min-width: 0; }
#sub-crm .crm-lead-n {
  font-size: 14.5px; font-weight: 650; color: var(--crm-ink); line-height: 1.4;
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
#sub-crm .crm-lead-m { margin-top: 4px; font-size: 12px; color: var(--crm-ink3); line-height: 1.5; }
#sub-crm .crm-lead-t { margin-top: 7px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
#sub-crm .crm-lead-note {
  margin-top: 7px; font-size: 12.5px; color: var(--crm-ink2); line-height: 1.55;
  background: #fcfcfd; border-left: 2px solid var(--crm-line); padding: 5px 9px; border-radius: 0 8px 8px 0;
  overflow: hidden; text-overflow: ellipsis; display: -webkit-box;
  -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
#sub-crm .crm-warn { font-size: 11.5px; color: var(--crm-danger); font-weight: 600; }

/* 意向等级徽章 */
#sub-crm .crm-lv {
  display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px;
  font-weight: 700; padding: 3px 9px; border-radius: 999px; white-space: nowrap;
}
#sub-crm .crm-lv.lvA { background: var(--crm-danger-lt); color: #1e47c4; border: 1px solid var(--crm-danger-bd); }
#sub-crm .crm-lv.lvB { background: #fffbeb; color: #b45309; border: 1px solid #fde68a; }
#sub-crm .crm-lv.lvC { background: #eff6ff; color: #1d4ed8; border: 1px solid #bfdbfe; }
#sub-crm .crm-lv.lvD { background: #f2f4f7; color: #667085; border: 1px solid #e4e7ec; }
#sub-crm .crm-lv.lvNone { background: #f2f4f7; color: #98a2b3; border: 1px dashed #d0d5dd; }
#sub-crm .crm-stg {
  display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px;
  padding: 3px 9px; border-radius: 999px; background: #f2f4f7; color: var(--crm-ink2);
  border: 1px solid #e4e7ec; white-space: nowrap;
}
#sub-crm .crm-tag {
  display: inline-flex; align-items: center; font-size: 11.5px; padding: 3px 9px;
  border-radius: 999px; background: var(--crm-gold-lt); color: var(--crm-gold);
  border: 1px solid #fde68a; white-space: nowrap;
}

/* ---------------------------------------------------------------- 详情页 */
#sub-crm .crm-d-top {
  position: relative; padding: 16px; border-radius: 14px; margin-bottom: 12px;
  background: linear-gradient(128deg, #16327a 0%, #1e47c4 52%, #2b5ce6 100%);
  color: #fff; overflow: hidden;
}
#sub-crm .crm-d-top::after {
  content: ''; position: absolute; right: -40px; bottom: -60px;
  width: 150px; height: 150px; border-radius: 50%;
  background: radial-gradient(circle at 40% 40%, rgba(255, 255, 255, .22), rgba(255, 255, 255, 0) 70%);
}
#sub-crm .crm-d-name { font-size: 18px; font-weight: 750; line-height: 1.35; }
#sub-crm .crm-d-meta { margin-top: 7px; font-size: 12.5px; opacity: .92; line-height: 1.55; display: flex; flex-wrap: wrap; gap: 4px 12px; }
#sub-crm .crm-d-badges { margin-top: 11px; display: flex; flex-wrap: wrap; gap: 6px; }
#sub-crm .crm-d-badges .crm-lv, #sub-crm .crm-d-badges .crm-stg {
  background: rgba(255, 255, 255, .18); color: #fff; border-color: rgba(255, 255, 255, .3);
}

/* 联系动作区 */
#sub-crm .crm-act { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
#sub-crm .crm-act-b {
  display: flex; flex-direction: column; align-items: center; gap: 5px;
  padding: 12px 4px; border-radius: 12px; border: 1px solid var(--crm-line);
  background: #fff; font-family: inherit; font-size: 12.5px; font-weight: 600;
  color: var(--crm-ink2); cursor: pointer; text-decoration: none; min-height: 62px;
  justify-content: center;
}
#sub-crm .crm-act-b i { font-size: 18px; font-style: normal; line-height: 1; }
#sub-crm .crm-act-b:active { background: #fcfcfd; }
#sub-crm .crm-act-b.pri { border-color: #a6f4c5; background: #ecfdf3; color: #067647; }
#sub-crm .crm-act-b.wx { border-color: #a6f4c5; background: #f0fdf4; color: #15803d; }
#sub-crm .crm-act-b[disabled] { opacity: .45; }
#sub-crm .crm-tel-list { margin-top: 10px; display: flex; flex-direction: column; gap: 6px; }
#sub-crm .crm-tel-item {
  display: flex; align-items: center; gap: 8px; padding: 9px 11px;
  background: #fcfcfd; border: 1px solid var(--crm-line); border-radius: 10px;
  font-size: 13.5px; font-variant-numeric: tabular-nums;
}
#sub-crm .crm-tel-item b { flex: 1; font-weight: 650; color: var(--crm-ink); letter-spacing: .3px; }
#sub-crm .crm-tel-item button, #sub-crm .crm-tel-item a {
  font-family: inherit; font-size: 12px; font-weight: 600; cursor: pointer;
  border-radius: 8px; padding: 6px 10px; border: 1px solid var(--crm-line);
  background: #fff; color: var(--crm-ink2); text-decoration: none;
}
#sub-crm .crm-tel-item a.dial { border-color: #a6f4c5; background: #ecfdf3; color: #067647; }

/* 备注 */
#sub-crm .crm-note {
  width: 100%; min-height: 76px; resize: vertical; border: 1px solid var(--crm-line);
  border-radius: 11px; padding: 10px 12px; font-family: inherit; font-size: 13.5px;
  line-height: 1.6; background: #fcfcfd; color: var(--crm-ink);
}
#sub-crm .crm-note:focus { outline: none; border-color: var(--crm-brand); background: #fff; }
#sub-crm .crm-save-hint { margin-top: 6px; font-size: 11.5px; color: var(--crm-ink3); text-align: right; }

/* 标签编辑 */
#sub-crm .crm-tag-wrap { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
#sub-crm .crm-tag-add {
  border: 1px dashed #d0d5dd; background: #fff; color: var(--crm-ink3);
  border-radius: 999px; padding: 4px 11px; font-family: inherit; font-size: 12px; cursor: pointer;
}
#sub-crm .crm-tag .x { margin-left: 5px; opacity: .6; cursor: pointer; }

/* 跟进 */
#sub-crm .crm-fu-row { display: grid; grid-template-columns: 1fr 1fr auto; gap: 8px; }
#sub-crm .crm-fu-row select, #sub-crm .crm-fu-row input {
  height: 42px; border: 1px solid var(--crm-line); border-radius: 11px; padding: 0 10px;
  font-family: inherit; font-size: 13.5px; background: #fcfcfd; color: var(--crm-ink); min-width: 0;
}
#sub-crm .crm-fu-row select:focus, #sub-crm .crm-fu-row input:focus { outline: none; border-color: var(--crm-brand); background: #fff; }
#sub-crm .crm-fu-add {
  border: 0; border-radius: 11px; padding: 0 15px; font-family: inherit; font-size: 13.5px;
  font-weight: 650; color: #fff; background: linear-gradient(135deg, #4f7cf0, #2b5ce6); cursor: pointer;
}
#sub-crm .crm-tl { margin-top: 12px; }
#sub-crm .crm-tl-i { position: relative; padding: 0 0 14px 20px; border-left: 2px solid var(--crm-line); }
#sub-crm .crm-tl-i:last-child { border-left-color: transparent; padding-bottom: 0; }
#sub-crm .crm-tl-i::before {
  content: ''; position: absolute; left: -6px; top: 3px; width: 10px; height: 10px;
  border-radius: 50%; background: var(--crm-brand); border: 2px solid #fff;
  box-shadow: 0 0 0 1px var(--crm-line);
}
#sub-crm .crm-tl-h { font-size: 12.5px; font-weight: 650; color: var(--crm-ink); display: flex; align-items: center; gap: 7px; }
#sub-crm .crm-tl-at { font-size: 11.5px; color: var(--crm-ink3); font-weight: 500; }
#sub-crm .crm-tl-b { margin-top: 3px; font-size: 12.5px; color: var(--crm-ink2); line-height: 1.55; }
#sub-crm .crm-tl-x { margin-left: auto; background: none; border: 0; color: var(--crm-ink3); cursor: pointer; font-size: 12px; }

/* AI 话术 */
#sub-crm .crm-biz {
  width: 100%; min-height: 62px; resize: vertical; border: 1px solid var(--crm-line);
  border-radius: 11px; padding: 10px 12px; font-family: inherit; font-size: 13.5px;
  line-height: 1.6; background: #fcfcfd; color: var(--crm-ink);
}
#sub-crm .crm-biz:focus { outline: none; border-color: var(--crm-brand); background: #fff; }
#sub-crm .crm-script-btn {
  width: 100%; height: 48px; margin-top: 10px; border: 0; border-radius: 12px;
  font-family: inherit; font-size: 15px; font-weight: 700; color: #fff; cursor: pointer;
  background: linear-gradient(135deg, #b45309, #d97706);
  box-shadow: 0 3px 12px rgba(180, 83, 9, .26);
  display: flex; align-items: center; justify-content: center; gap: 7px;
}
#sub-crm .crm-script-btn[disabled] { opacity: .6; }
#sub-crm .crm-sc { margin-top: 10px; }
#sub-crm .crm-sc-c {
  border: 1px solid var(--crm-line); border-radius: 12px; padding: 12px;
  margin-bottom: 8px; background: #fff;
}
#sub-crm .crm-sc-h {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  font-size: 12.5px; font-weight: 700; color: var(--crm-ink); margin-bottom: 7px;
}
#sub-crm .crm-sc-copy {
  font-family: inherit; font-size: 11.5px; font-weight: 600; color: var(--crm-brand);
  background: var(--crm-brand-lt); border: 1px solid #c7d6fb; border-radius: 999px;
  padding: 5px 11px; cursor: pointer;
}
#sub-crm .crm-sc-b { font-size: 13.5px; line-height: 1.72; color: var(--crm-ink); white-space: pre-wrap; word-break: break-word; }
#sub-crm .crm-sc-b.typing::after { content: '▍'; color: var(--crm-brand); animation: crmBlink .9s steps(2) infinite; }
@keyframes crmBlink { 50% { opacity: 0; } }

/* 手动新增表单 */
#sub-crm .crm-form { display: flex; flex-direction: column; gap: 9px; }
#sub-crm .crm-form label { font-size: 12.5px; font-weight: 600; color: var(--crm-ink2); display: block; margin-bottom: 5px; }
#sub-crm .crm-form input, #sub-crm .crm-form textarea {
  width: 100%; border: 1px solid var(--crm-line); border-radius: 11px;
  padding: 11px 12px; font-family: inherit; font-size: 14px; background: #fcfcfd; color: var(--crm-ink);
}
#sub-crm .crm-form input:focus, #sub-crm .crm-form textarea:focus { outline: none; border-color: var(--crm-brand); background: #fff; }

/* 弹层 */
#sub-crm .crm-mask {
  position: fixed; inset: 0; background: rgba(16, 24, 40, .45); z-index: 90;
  display: flex; align-items: flex-end; justify-content: center;
  animation: crmFade .16s ease;
}
@keyframes crmFade { from { opacity: 0; } }
#sub-crm .crm-sheet {
  width: 100%; max-width: 560px; background: #fff; border-radius: 18px 18px 0 0;
  padding: 16px 16px 24px; box-shadow: var(--crm-shadow-lg);
  animation: crmUp .22s cubic-bezier(.4, 0, .2, 1); max-height: 84vh; overflow-y: auto;
}
@keyframes crmUp { from { transform: translateY(18px); opacity: .6; } }
#sub-crm .crm-sheet-h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
#sub-crm .crm-sheet-t { font-size: 15.5px; font-weight: 700; color: var(--crm-ink); }
#sub-crm .crm-sheet-x { background: none; border: 0; font-size: 21px; color: var(--crm-ink3); cursor: pointer; line-height: 1; padding: 0 4px; }
#sub-crm .crm-opt {
  display: flex; align-items: center; gap: 10px; padding: 13px 12px; border-radius: 12px;
  border: 1px solid var(--crm-line); margin-bottom: 8px; cursor: pointer; background: #fff;
  font-size: 14px; color: var(--crm-ink); font-family: inherit; width: 100%; text-align: left;
}
#sub-crm .crm-opt.on { border-color: var(--crm-brand); background: var(--crm-brand-lt); font-weight: 650; }
#sub-crm .crm-opt-d { font-size: 11.5px; color: var(--crm-ink3); margin-top: 2px; font-weight: 400; }

/* toast */
#sub-crm .crm-toast {
  position: fixed; left: 50%; bottom: 150px; transform: translateX(-50%) translateY(8px);
  background: rgba(16, 24, 40, .94); color: #fff; font-size: 13.5px; line-height: 1.5;
  padding: 11px 17px; border-radius: 12px; z-index: 120; max-width: 82vw; text-align: center;
  opacity: 0; pointer-events: none; transition: opacity .2s ease, transform .2s ease;
  box-shadow: var(--crm-shadow-lg);
}
#sub-crm .crm-toast.on { opacity: 1; transform: translateX(-50%) translateY(0); }

/* 加载骨架 */
#sub-crm .crm-load { display: flex; align-items: center; justify-content: center; gap: 9px; padding: 26px; color: var(--crm-ink3); font-size: 13px; }
#sub-crm .crm-spin {
  width: 17px; height: 17px; border: 2px solid var(--crm-line);
  border-top-color: var(--crm-brand); border-radius: 50%; animation: crmSpin .7s linear infinite;
}
@keyframes crmSpin { to { transform: rotate(360deg); } }

/* 合规提示 */
#sub-crm .crm-legal {
  margin: 14px 2px 0; font-size: 11px; line-height: 1.65; color: var(--crm-ink3);
  padding: 10px 12px; border-radius: 11px; background: #fcfcfd; border: 1px solid var(--crm-line);
}

/* ---------------------------------------------------------------- 加线索 · 粘贴识别 */
#sub-crm .crm-mode { margin: 0 0 12px; padding: 0 12px; }
#sub-crm .crm-head--add { margin-bottom: 12px; }
#sub-crm .crm-paste {
  width: 100%; min-height: 148px; resize: vertical;
  border: 1px solid var(--crm-line); border-radius: 12px; padding: 12px;
  font-family: inherit; font-size: 13.5px; line-height: 1.7;
  background: #fcfcfd; color: var(--crm-ink);
}
#sub-crm .crm-paste:focus { outline: none; border-color: var(--crm-brand); background: #fff; }
#sub-crm .crm-paste-foot {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; margin-top: 10px; flex-wrap: wrap;
}
#sub-crm .crm-parse-btn {
  min-height: 44px; padding: 0 18px; border: 0; border-radius: 12px;
  font-family: inherit; font-size: 14.5px; font-weight: 700; color: #fff; cursor: pointer;
  background: linear-gradient(135deg, #4f7cf0, #2b5ce6);
  box-shadow: 0 2px 10px rgba(217, 45, 32, .24);
}
#sub-crm .crm-parse-btn[disabled] { opacity: .62; }

/* 识别结果预览 */
#sub-crm .crm-pv {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 11px 12px; margin-bottom: 7px;
  border: 1px solid var(--crm-line); border-radius: 12px; background: #fff;
  cursor: pointer; transition: border-color .13s ease, background .13s ease;
}
#sub-crm .crm-pv.on { border-color: var(--crm-brand); background: var(--crm-brand-lt); }
/* 没认到名称的 → 黄底，提示老板补一下（绝不假装认全了） */
#sub-crm .crm-pv.weak { border-color: #fde68a; background: #fffbeb; }
#sub-crm .crm-pv.editing { display: block; border-color: var(--crm-brand); background: #fff; cursor: default; }
#sub-crm .crm-pv-b { flex: 1; min-width: 0; }
#sub-crm .crm-pv-n {
  font-size: 14px; font-weight: 650; color: var(--crm-ink); line-height: 1.4;
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
#sub-crm .crm-pv-m { margin-top: 3px; font-size: 12px; color: var(--crm-ink3); line-height: 1.5; }
#sub-crm .crm-pv-x {
  flex: 0 0 auto; font-family: inherit; font-size: 12px; font-weight: 600;
  color: var(--crm-ink2); background: #f2f4f7; border: 0; border-radius: 8px;
  padding: 6px 11px; cursor: pointer;
}
#sub-crm .crm-pv-e { display: flex; flex-direction: column; gap: 7px; }
#sub-crm .crm-in {
  width: 100%; height: 40px; border: 1px solid var(--crm-line); border-radius: 10px;
  padding: 0 11px; font-family: inherit; font-size: 13.5px; background: #fcfcfd; color: var(--crm-ink);
}
#sub-crm .crm-in:focus { outline: none; border-color: var(--crm-brand); background: #fff; }
#sub-crm .crm-pv-eb { display: flex; gap: 8px; }

/* 没认出来的原文 */
#sub-crm .crm-bad { border-color: #fde68a; background: #fffbeb; }
#sub-crm .crm-bad-list {
  max-height: 132px; overflow-y: auto; background: #fff; border: 1px solid #fde68a;
  border-radius: 10px; padding: 9px 11px; margin-bottom: 11px;
}
#sub-crm .crm-bad-i {
  font-size: 12px; line-height: 1.7; color: #78350f;
  border-bottom: 1px dashed #fde68a; padding: 3px 0; word-break: break-all;
}
#sub-crm .crm-bad-i:last-child { border-bottom: 0; }
#sub-crm .crm-ai-btn {
  width: 100%; min-height: 46px; border: 0; border-radius: 12px;
  font-family: inherit; font-size: 14.5px; font-weight: 700; color: #fff; cursor: pointer;
  background: linear-gradient(135deg, #b45309, #d97706);
  box-shadow: 0 3px 12px rgba(180, 83, 9, .24);
}
#sub-crm .crm-ai-btn[disabled] { opacity: .62; }

/* 底部"加进我的线索"条（sticky，跟着滚动停在下沿） */
#sub-crm .crm-addbar {
  position: sticky; bottom: 0; z-index: 30;
  display: flex; align-items: center; gap: 10px;
  margin: 0 -12px; padding: 11px 12px calc(11px + env(safe-area-inset-bottom, 0px));
  background: rgba(247, 248, 250, .97); border-top: 1px solid var(--crm-line);
  backdrop-filter: blur(8px);
}
#sub-crm .crm-addbar-n { font-size: 12.5px; color: var(--crm-ink2); white-space: nowrap; }
#sub-crm .crm-addbar-n b { color: var(--crm-brand); font-size: 15px; font-weight: 750; }
#sub-crm .crm-go--sm { flex: 1; margin-top: 0; height: 46px; font-size: 15px; }
/* 小屏微调 */
@media (max-width: 359px) {
  #sub-crm .crm-stat { grid-template-columns: repeat(2, 1fr); }
  #sub-crm .crm-act { grid-template-columns: repeat(3, 1fr); gap: 6px; }
}
@media (min-width: 768px) {
  #sub-crm .crm-view { max-width: 720px; margin: 0 auto; }
  #sub-crm .crm-head { margin-left: 0; margin-right: 0; border-radius: 16px; }
}

/* ==================== 首屏瘦身：标题条 + 加线索入口（2026-09-19 重排） ====================
   原 hero 是「大标题 + 一整句说明 + 三枚卖点徽标」，占了首屏近三分之一；
   而老板打开最想看的是"今天该跟谁"。现在压成一条：
   **左边「我的线索」，右边就是「＋ 加线索」** ——
   原来那个入口埋在列表区的小标题里，得先知道往下滚才找得到。 */
#sub-crm .crm-head--slim {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  margin: 10px 14px 0; padding: 12px 14px; border-radius: 13px;
}
#sub-crm .crm-head--slim .crm-head-t { font-size: 16px; }
#sub-crm .crm-head-x {
  flex: 0 0 auto; font-family: inherit; font-size: 12.5px; font-weight: 600;
  padding: 6px 13px; border-radius: 999px; cursor: pointer;
  color: #fff; background: rgba(255, 255, 255, .18);
  border: 1px solid rgba(255, 255, 255, .55);
  -webkit-tap-highlight-color: transparent;
}
#sub-crm .crm-head-x:active { background: rgba(255, 255, 255, .34); }
