/* ==========================================================================
   AI 外贸获客 · 融合版会话工作台（acq）
   2026-10-04 全新重写：融合「新版 Workspace」与「旧版外贸获客 Agent」，
   采用最新 AI Agent 会话形态 —— 对话流 + 工具调用可视化 + 实时步骤 + 线索卡片。

   设计原则：
     · 全部沿用 styles.css 的深色 token，不另起主题
     · 三栏响应式：<1180px 折成两栏，<860px 单栏（右栏变抽屉）
     · 所有状态可感知：运行中 / 完成 / 失败 / 被拦截，绝不用假进度
   ========================================================================== */

/* 兜底重置：<button> 默认文字为黑色（ButtonText），深色主题下会看不清。
   页面内所有 button 均未显式写 color 时会被此处兜住，避免逐个漏改。 */
.acq-root button,
.acq-root button:visited { color: var(--text); font-family: inherit; }

.acq-root {
  display: grid;
  /* 三栏宽度由 CSS 变量驱动，折叠即把对应列宽归零（配 transition 实现滑出/收起）。
     --acq-side-w / --acq-ctx-w 由 .acq-root[data-side]/[data-ctx] 切换。
     注意：.acq-rail / .acq-side-rail 是绝对定位的「边缘把手」，不占 grid 列。 */
  grid-template-columns: var(--acq-side-w, 264px) minmax(0, 1fr) var(--acq-ctx-w, 340px);
  gap: 0;
  position: relative;
  /* 固定视口高度：对话区自己内部滚动，输入框固定在底部。
     旧实现是 min-height: calc(100vh - 200px)（只有下限没有上限），
     消息一多就把容器顶高 → 整页跟着滚、顶栏和输入框都被推走，
     用户反馈「整个页面都随着对话的增加而变动」。
     现在高度锁死，滚动只发生在 .acq-msgs 内部。
     dvh 处理移动端地址栏伸缩；不支持的浏览器回落到 vh。 */
  height: calc(100vh - 132px);
  height: calc(100dvh - 132px);
  max-height: calc(100vh - 132px);
  max-height: calc(100dvh - 132px);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--bg-soft);
  transition: grid-template-columns .22s ease;
}
/* —— 折叠状态：右栏 / 左栏归零 —— */
.acq-root[data-ctx="closed"]  { --acq-ctx-w: 0px; }
.acq-root[data-side="closed"] { --acq-side-w: 0px; }
/* 折叠时隐藏面板本体（避免内容挤压变形），并去掉左边框 */
.acq-root[data-ctx="closed"] > .acq-ctx { display: none; }
.acq-root[data-side="closed"] > .acq-side { display: none; }
/* 把手是绝对定位浮在边缘，给中栏让出相应内边距，避免遮挡内容 */
.acq-root[data-ctx="closed"] > .acq-main  { padding-right: 44px; }
.acq-root[data-side="closed"] > .acq-main { padding-left: 40px; }

/* ---------------- 顶栏 ---------------- */
.acq-top {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--border);
  background: linear-gradient(180deg, var(--panel), var(--panel-2));
  flex-wrap: wrap;
}
.acq-brand {
  display: flex; align-items: center; gap: 9px;
  font-weight: 700; font-size: 15px; letter-spacing: .2px;
}
.acq-brand .acq-orb {
  width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  font-size: 14px; box-shadow: 0 0 0 3px rgba(43,217,160,.12);
}
.acq-brand .live {
  width: 7px; height: 7px; border-radius: 50%; background: var(--accent);
  box-shadow: 0 0 0 3px rgba(43,217,160,.18); animation: acqPulse 1.8s ease-in-out infinite;
}
@keyframes acqPulse { 0%,100%{opacity:1} 50%{opacity:.35} }
.acq-top .spacer { flex: 1 1 auto; }
.acq-ctl {
  background: var(--panel-2); color: var(--text);
  border: 1px solid var(--border); border-radius: 9px;
  padding: 5px 9px; font-size: 12px; outline: none; max-width: 210px;
}
.acq-ctl:focus { border-color: var(--accent); }
.acq-chip {
  font-size: 11px; padding: 3px 9px; border-radius: 999px;
  border: 1px solid var(--border); background: var(--panel-2); color: var(--muted);
  white-space: nowrap;
}
.acq-chip b { color: var(--text); }

/* ---------------- 左栏：会话与历史 ---------------- */
.acq-side {
  border-right: 1px solid var(--border); background: var(--panel);
  display: flex; flex-direction: column; min-width: 0;
}
.acq-side-head {
  padding: 10px 12px; border-bottom: 1px solid var(--border);
  display: flex; align-items: center; gap: 8px;
}
.acq-side-head .t { font-size: 12px; font-weight: 700; color: var(--muted); letter-spacing: .4px; }
.acq-new {
  margin: 10px 12px; padding: 8px 10px; border-radius: 10px; cursor: pointer;
  background: linear-gradient(135deg, rgba(43,217,160,.14), rgba(79,140,255,.12));
  border: 1px solid rgba(43,217,160,.3); color: var(--text);
  font-size: 12.5px; font-weight: 600; text-align: center; transition: .15s;
}
.acq-new:hover { filter: brightness(1.15); transform: translateY(-1px); }
.acq-list { flex: 1; overflow-y: auto; padding: 4px 8px 12px; }
.acq-sect {
  font-size: 11px; color: var(--muted); font-weight: 700; letter-spacing: .5px;
  padding: 12px 6px 6px; text-transform: uppercase; opacity: .75;
}
.acq-item {
  padding: 8px 10px; border-radius: 9px; cursor: pointer; font-size: 12.5px;
  color: var(--text); margin-bottom: 3px; border: 1px solid transparent;
  display: flex; gap: 7px; align-items: flex-start; line-height: 1.4;
  transition: background .12s;
}
.acq-item:hover { background: var(--panel-2); }
.acq-item.on { background: var(--panel-2); border-color: rgba(43,217,160,.35); }
.acq-item .ico { opacity: .8; flex: none; }
.acq-item .tx {
  flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
.acq-item .del {
  opacity: 0; color: var(--muted); font-size: 13px; padding: 0 2px; flex: none;
}
.acq-item:hover .del { opacity: .6; }
.acq-item .del:hover { opacity: 1; color: var(--danger); }
.acq-empty { padding: 14px 10px; font-size: 12px; color: var(--muted); opacity: .7; line-height: 1.6; }

/* ---------------- 中栏：对话流 ---------------- */
.acq-main { display: flex; flex-direction: column; min-width: 0; background: var(--bg);
  /* 中栏需要在 root 高度变化时自然撑开，避免消息区把输入栏挤出视口 */
  min-height: 0;
}
.acq-msgs {
  flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 20px 22px 8px;
  display: flex; flex-direction: column; gap: 16px; scroll-behavior: smooth;
}
.acq-row { display: flex; gap: 11px; max-width: 100%; }
.acq-row.me { flex-direction: row-reverse; }
.acq-av {
  width: 30px; height: 30px; border-radius: 9px; flex: none; display: grid; place-items: center;
  font-size: 14px; background: var(--panel-2); border: 1px solid var(--border);
}
.acq-row.ai .acq-av { background: linear-gradient(135deg, var(--accent), var(--accent-2)); border: none; }
.acq-bub {
  padding: 11px 14px; border-radius: 13px; font-size: 13.5px; line-height: 1.68;
  background: var(--panel); border: 1px solid var(--border); max-width: 82%;
  word-break: break-word;
}
.acq-row.me .acq-bub {
  background: linear-gradient(135deg, rgba(79,140,255,.2), rgba(79,140,255,.1));
  border-color: rgba(79,140,255,.35); max-width: 70%;
}
.acq-bub b { color: var(--accent); }
.acq-bub .k { color: var(--accent-2); font-weight: 600; }

/* AI 回复里的区块 */
.acq-blk { margin-top: 10px; }
.acq-blk:first-child { margin-top: 0; }

/* 意图解析条 */
.acq-intent {
  display: flex; flex-wrap: wrap; gap: 6px; padding: 9px 11px; border-radius: 10px;
  background: var(--panel-2); border: 1px solid var(--border); font-size: 12px;
}
.acq-intent .kv { color: var(--muted); }
.acq-intent .kv b { color: var(--text); font-weight: 600; }

/* 步骤（工具调用可视化） */
.acq-steps {
  border: 1px solid var(--border); border-radius: 11px; overflow: hidden;
  background: var(--panel);
}
.acq-steps-h {
  padding: 8px 11px; font-size: 12px; font-weight: 700; color: var(--muted);
  display: flex; align-items: center; gap: 7px; cursor: pointer; user-select: none;
  border-bottom: 1px solid var(--border); background: var(--panel-2);
}
.acq-steps-h .caret { transition: transform .18s; font-size: 10px; }
.acq-steps.fold .caret { transform: rotate(-90deg); }
.acq-steps.fold .acq-steps-b { display: none; }
.acq-steps-b { padding: 4px 0; }
.acq-step {
  display: flex; align-items: center; gap: 9px; padding: 7px 12px; font-size: 12.5px;
  border-left: 2px solid transparent; animation: acqIn .3s ease;
}
@keyframes acqIn { from { opacity: 0; transform: translateY(3px) } to { opacity: 1 } }
.acq-step .dot {
  width: 15px; height: 15px; border-radius: 50%; flex: none; display: grid; place-items: center;
  font-size: 9px; background: var(--panel-2); border: 1px solid var(--border); color: var(--muted);
}
.acq-step.run .dot {
  border-color: var(--warn); color: var(--warn);
  animation: acqSpin 1s linear infinite;
}
.acq-step.run { border-left-color: var(--warn); background: rgba(255,176,32,.05); }
.acq-step.ok .dot { background: rgba(43,217,160,.16); border-color: var(--accent); color: var(--accent); }
.acq-step.ok { border-left-color: var(--accent); }
.acq-step.err .dot { background: rgba(255,92,124,.16); border-color: var(--danger); color: var(--danger); }
.acq-step.err { border-left-color: var(--danger); }
.acq-step .nm { flex: 1; min-width: 0; }
.acq-step .ms { color: var(--muted); font-size: 11.5px; font-variant-numeric: tabular-nums; }
.acq-step .rs {
  font-size: 11px; padding: 1px 7px; border-radius: 999px;
  background: var(--panel-2); border: 1px solid var(--border); color: var(--muted);
}
@keyframes acqSpin { to { transform: rotate(360deg) } }

/* 进度条 */
.acq-prog { height: 3px; background: var(--panel-2); border-radius: 2px; overflow: hidden; margin-top: 8px; }
.acq-prog i { display: block; height: 100%; background: linear-gradient(90deg, var(--accent), var(--accent-2)); transition: width .4s ease; }

/* 线索卡片 */
.acq-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(238px, 1fr)); gap: 10px; }
.acq-card {
  border: 1px solid var(--border); border-radius: 12px; padding: 11px 12px;
  background: linear-gradient(180deg, var(--panel), var(--panel-2));
  animation: acqIn .35s ease backwards; position: relative; overflow: hidden;
}
.acq-card.gold { border-color: rgba(43,217,160,.42); box-shadow: 0 0 0 1px rgba(43,217,160,.1) inset; }
.acq-card.silver { border-color: rgba(79,140,255,.3); }
.acq-card .ch { display: flex; align-items: flex-start; gap: 7px; }
.acq-card .cn { font-weight: 700; font-size: 13.5px; line-height: 1.35; flex: 1; min-width: 0; }
.acq-card .flag { font-size: 15px; flex: none; }
.acq-card .meta { margin-top: 5px; font-size: 11.5px; color: var(--muted); line-height: 1.65; }
.acq-card .meta div { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acq-card .meta a { color: var(--accent-2); text-decoration: none; }
.acq-card .tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 7px; }
.acq-tag {
  font-size: 10.5px; padding: 2px 7px; border-radius: 999px;
  border: 1px solid var(--border); background: var(--panel-2); color: var(--muted);
}
.acq-tag.real { color: var(--accent); border-color: rgba(43,217,160,.35); background: rgba(43,217,160,.08); }
.acq-tag.guess { color: var(--warn); border-color: rgba(255,176,32,.32); background: rgba(255,176,32,.07); }
.acq-tag.src { color: var(--accent-2); border-color: rgba(79,140,255,.3); }
.acq-card .ops { display: flex; gap: 5px; margin-top: 9px; flex-wrap: wrap; }
.acq-op {
  font-size: 11px; padding: 3px 8px; border-radius: 7px; cursor: pointer;
  border: 1px solid var(--border); background: var(--panel-2); color: var(--text);
  transition: .13s;
}
.acq-op:hover { border-color: var(--accent); color: var(--accent); }
.acq-op.p { background: rgba(43,217,160,.13); border-color: rgba(43,217,160,.35); color: var(--accent); }

/* 汇总条 */
.acq-sum {
  display: flex; flex-wrap: wrap; gap: 12px; padding: 9px 12px; border-radius: 10px;
  background: var(--panel-2); border: 1px solid var(--border); font-size: 12px;
}
.acq-sum .s { color: var(--muted); }
.acq-sum .s b { color: var(--text); font-size: 13px; }
.acq-sum .s.good b { color: var(--accent); }
.acq-sum .s.warn b { color: var(--warn); }

/* 提示 / 错误 */
.acq-hints { padding: 9px 12px; border-radius: 10px; background: rgba(255,176,32,.08); border: 1px solid rgba(255,176,32,.28); font-size: 12px; line-height: 1.7; }
/* P0-C 诚实降级警示（2026-10-17）：联系挖掘通道熔断时告知结果可能不完整 */
.acq-degraded { padding: 9px 12px; border-radius: 10px; background: rgba(220,38,38,.10); border: 1px solid rgba(220,38,38,.45); color: #ffb3c0; font-size: 12px; line-height: 1.7; }
/* 2026-10-19 静默化：提示卡（替代红色报警框）。
   设计意图 —— 同样是「告诉用户发生了什么」，但用中性的信息色而不是告警色：
   用户看到的是「系统在跟我交代一句」，不是「系统坏了」。 */
.acq-note { padding: 10px 13px; border-radius: 10px; background: rgba(120,140,180,.10);
  border: 1px solid rgba(120,140,180,.26); color: var(--text-dim, #9aa6bd);
  font-size: 12.5px; line-height: 1.75; }
/* Agent 自主检索回执（2026-10-13）：让「Agent 自己换了几种打法」可见 */
.acq-autonomy { padding: 9px 12px; border-radius: 10px; background: rgba(80,150,255,.08); border: 1px solid rgba(80,150,255,.28); font-size: 12px; line-height: 1.7; }
.acq-auto-detail { display: block; margin-top: 4px; opacity: .82; font-size: 11.5px; }
/* 三入口计费回执（M4）：B/C 收「入场费 + 按条」，把每轮明细摆给用户看 */
.acq-charge { padding: 9px 12px; border-radius: 10px; background: rgba(180,120,255,.08); border: 1px solid rgba(180,120,255,.3); font-size: 12px; line-height: 1.7; }
.acq-charge-detail { display: block; margin-top: 4px; opacity: .82; font-size: 11.5px; }
.acq-err { padding: 9px 12px; border-radius: 10px; background: rgba(255,92,124,.09); border: 1px solid rgba(255,92,124,.3); color: var(--danger); font-size: 12.5px; }

/* 打字指示 */
.acq-typing { display: flex; gap: 4px; align-items: center; padding: 3px 0; }
.acq-typing i { width: 5px; height: 5px; border-radius: 50%; background: var(--muted); animation: acqBounce 1.2s infinite; }
.acq-typing i:nth-child(2) { animation-delay: .15s } .acq-typing i:nth-child(3) { animation-delay: .3s }
@keyframes acqBounce { 0%,60%,100% { transform: translateY(0); opacity: .4 } 30% { transform: translateY(-4px); opacity: 1 } }

/* ---------------- 输入区 ---------------- */
.acq-comp { border-top: 1px solid var(--border); padding: 10px 16px 12px; background: var(--panel);
  flex: none; }
.acq-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; }
.acq-chipbtn {
  font-size: 11.5px; padding: 3px 10px; border-radius: 999px; cursor: pointer;
  border: 1px dashed var(--border); background: transparent; color: var(--muted); transition: .13s;
}
.acq-chipbtn:hover { border-color: var(--accent); color: var(--accent); border-style: solid; }
.acq-inrow { display: flex; gap: 8px; align-items: flex-end; position: relative; }
.acq-inrow textarea {
  flex: 1; resize: none; min-height: 42px; max-height: 148px; padding: 10px 12px;
  border-radius: 11px; background: var(--panel-2); border: 1px solid var(--border);
  color: var(--text); font-size: 13.5px; font-family: inherit; line-height: 1.55; outline: none;
}
.acq-inrow textarea:focus { border-color: var(--accent); }
/* + 按钮：上传文件 / 选模式 / 选技能 / 选画像 / 选方案 */
.acq-add {
  flex: none; width: 42px; height: 42px; border-radius: 11px; cursor: pointer;
  background: var(--panel-2); border: 1px solid var(--border); color: var(--text);
  display: grid; place-items: center; font-size: 22px; font-weight: 300; transition: .13s;
  user-select: none;
}
.acq-add:hover { border-color: var(--accent); color: var(--accent); }
.acq-add.on { background: var(--accent); color: #06231a; border-color: var(--accent); }
/* 弹出菜单 */
.acq-addmenu {
  position: absolute; left: 0; bottom: 50px; min-width: 200px;
  background: var(--panel); border: 1px solid var(--border); border-radius: 11px;
  box-shadow: 0 12px 36px rgba(0,0,0,.36); padding: 5px; z-index: 50;
  display: none;
}
.acq-addmenu.on { display: block; animation: acqFadeIn .14s ease; }
@keyframes acqFadeIn { from { opacity: 0; transform: translateY(4px) } to { opacity: 1; transform: none } }
.acq-addmenu-i {
  padding: 9px 11px; border-radius: 8px; cursor: pointer; font-size: 12.5px;
  color: var(--text); transition: .12s; display: flex; align-items: center; gap: 8px;
}
.acq-addmenu-i:hover { background: var(--panel-2); color: var(--accent); }
.acq-addmenu-i b { color: var(--muted); font-weight: 400; font-size: 11.5px; margin-left: auto; }
.acq-addmenu-i:hover b { color: var(--accent); }
.acq-send {
  height: 42px; padding: 0 16px; border-radius: 11px; cursor: pointer; font-size: 13px; font-weight: 600;
  background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #06231a; border: none;
  transition: .15s; white-space: nowrap;
}
.acq-send:hover { filter: brightness(1.1); }
.acq-send.stop { background: var(--danger); color: #fff; }
.acq-foot { display: flex; justify-content: space-between; align-items: center; margin-top: 6px; font-size: 11px; color: var(--muted); gap: 8px; flex-wrap: wrap; }
.acq-foot-l { display: flex; gap: 8px; align-items: center; }
.acq-foot-r { font-size: 11px; color: var(--muted); }
/* 输入栏下方的"模型选择"小控件：跟 WorkBuddy 风格一致的小标签选择器 */
.acq-foot-sel { padding: 3px 8px; font-size: 11px; max-width: 180px; }
.acq-attach-tip { font-size: 11px; color: var(--accent); padding: 3px 8px; border-radius: 999px;
  background: rgba(43,217,160,.08); border: 1px solid rgba(43,217,160,.28); }

/* ---------------- 右栏：上下文面板 ---------------- */
.acq-ctx {
  border-left: 1px solid var(--border); background: var(--panel);
  display: flex; flex-direction: column; min-width: 0;
  /* 右栏也需要独立滚动，且高度跟中栏对齐 */
  min-height: 0;
}

/* ---------------- 右栏竖条把手（默认收起时可见） ----------------
   收起后右边缘留一条 44px 竖条，垂直排列 4 个 tab 图标；
   点任一图标 → 展开右栏并切到该 tab。绝对定位，不占 grid 列。 */
.acq-rail {
  display: none;                        /* 仅在 data-ctx="closed" 时显示 */
  position: absolute; top: 0; right: 0; bottom: 0; z-index: 5;
  flex-direction: column; align-items: center; gap: 2px;
  width: 44px; padding: 10px 0;
  border-left: 1px solid var(--border); background: var(--panel-2);
  box-sizing: border-box;
}
.acq-root[data-ctx="closed"] > .acq-rail { display: flex; }
.acq-rail-i {
  width: 34px; padding: 9px 0; border-radius: 9px; cursor: pointer;
  display: flex; flex-direction: column; align-items: center; gap: 3px;
  font-size: 15px; color: var(--muted); transition: .13s; user-select: none;
}
.acq-rail-i .lb { font-size: 9.5px; writing-mode: vertical-rl; letter-spacing: 1px; }
.acq-rail-i:hover { color: var(--text); background: var(--panel); }
.acq-rail-i.on { color: var(--accent); background: rgba(43,217,160,.10); }
.acq-rail-hd { margin-top: auto; font-size: 14px; color: var(--muted); cursor: pointer; padding: 8px 0; }
.acq-rail-hd:hover { color: var(--accent); }

/* 右栏抬头里的「收起」按钮 */
.acq-ctx-fold {
  flex: none; cursor: pointer; color: var(--muted); font-size: 13px;
  padding: 0 8px; line-height: 1; transition: .13s;
}
.acq-ctx-fold:hover { color: var(--accent); }

/* 左栏抬头的折叠按钮 */
.acq-side-fold {
  margin-left: auto; cursor: pointer; color: var(--muted); font-size: 13px;
  padding: 2px 6px; border-radius: 6px; transition: .13s;
}
.acq-side-fold:hover { color: var(--accent); background: var(--panel-2); }

/* 左栏收起后的窄把手（垂直显示「💬 会话」）。绝对定位，不占 grid 列。 */
.acq-side-rail {
  display: none; flex-direction: column; align-items: center; gap: 8px;
  position: absolute; top: 0; left: 0; bottom: 0; z-index: 5;
  width: 40px; padding: 12px 0; cursor: pointer; box-sizing: border-box;
  border-right: 1px solid var(--border); background: var(--panel-2);
  color: var(--muted); transition: .13s;
}
.acq-root[data-side="closed"] > .acq-side-rail { display: flex; }
.acq-side-rail:hover { color: var(--accent); }
.acq-side-rail .lb { font-size: 10px; writing-mode: vertical-rl; letter-spacing: 2px; }
.acq-side-rail .n {
  font-size: 10px; padding: 1px 6px; border-radius: 999px;
  background: var(--panel); border: 1px solid var(--border); color: var(--text);
}

.acq-tabs { display: flex; border-bottom: 1px solid var(--border); background: var(--panel-2);
  flex: none; align-items: center; }
.acq-tab {
  flex: 1; padding: 9px 4px; font-size: 11.5px; text-align: center; cursor: pointer;
  color: var(--muted); border-bottom: 2px solid transparent; transition: .13s; white-space: nowrap;
}
.acq-tab:hover { color: var(--text); }
.acq-tab.on { color: var(--accent); border-bottom-color: var(--accent); background: var(--panel); }
/* 滚动容器：必须设 min-height:0 才能在 flex 父级下正常出现滚动条 */
.acq-ctx-b { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 12px;
  /* 触屏滑动链：避免滚动条跳动 */
  overscroll-behavior: contain; }
.acq-pane { display: none; padding-bottom: 12px; }
.acq-pane.on { display: block; }

/* ICP 画像表单 */
.acq-f { margin-bottom: 10px; }
.acq-f label { display: block; font-size: 11.5px; color: var(--muted); margin-bottom: 4px; font-weight: 600; }
.acq-f input, .acq-f select, .acq-f textarea {
  width: 100%; padding: 7px 9px; border-radius: 8px; font-size: 12.5px;
  background: var(--panel-2); border: 1px solid var(--border); color: var(--text); outline: none;
  font-family: inherit;
}
.acq-f input:focus, .acq-f select:focus, .acq-f textarea:focus { border-color: var(--accent); }
.acq-btn {
  width: 100%; padding: 8px; border-radius: 9px; cursor: pointer; font-size: 12.5px; font-weight: 600;
  border: 1px solid var(--border); background: var(--panel-2); color: var(--text); transition: .14s;
  margin-bottom: 6px;
}
.acq-btn:hover { border-color: var(--accent); color: var(--accent); }
.acq-btn.p { background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #06231a; border: none; }
.acq-btn.d { color: var(--danger); border-color: rgba(255,92,124,.3); }
.acq-sec { font-size: 11px; font-weight: 700; color: var(--muted); letter-spacing: .5px; margin: 14px 0 7px; text-transform: uppercase; opacity: .75; }

/* 线索库表格 */
.acq-tb { width: 100%; border-collapse: collapse; font-size: 11.5px; }
.acq-tb th { text-align: left; padding: 6px 6px; color: var(--muted); font-weight: 600; border-bottom: 1px solid var(--border); position: sticky; top: 0; background: var(--panel); }
.acq-tb td { padding: 6px 6px; border-bottom: 1px solid var(--border); vertical-align: top; }
.acq-tb tr:hover td { background: var(--panel-2); }
.acq-tb .c { max-width: 118px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* 市场方案 / 进化看板 内容 */
.acq-md { font-size: 12.5px; line-height: 1.75; color: var(--text); }
.acq-md h1, .acq-md h2, .acq-md h3 { font-size: 13.5px; margin: 12px 0 6px; color: var(--accent); }
.acq-md ul { padding-left: 17px; margin: 6px 0; }
.acq-md li { margin-bottom: 4px; }
.acq-md p { margin: 6px 0; }
.acq-md b { color: var(--accent-2); }
.acq-md code { background: var(--panel-2); padding: 1px 5px; border-radius: 4px; font-size: 11.5px; }

/* 空态 */
.acq-welcome { text-align: center; padding: 44px 20px; }
.acq-welcome .em { font-size: 42px; margin-bottom: 12px; }
.acq-welcome h3 { font-size: 17px; margin: 0 0 8px; font-weight: 700; }
.acq-welcome p { font-size: 13px; color: var(--muted); line-height: 1.8; margin: 0 0 18px; }
/* 示例卡片：一行 4 个横排长方形（2026-10-05 用户要求）；窄屏自动降为 2 列 */
.acq-ex { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; max-width: 960px; margin: 0 auto; }
@media (max-width: 860px) { .acq-ex { grid-template-columns: repeat(2, 1fr); } }
.acq-exb {
  padding: 11px 12px; border-radius: 11px; border: 1px solid var(--border);
  background: var(--panel); cursor: pointer; text-align: left; transition: .15s; font-size: 12.5px;
  /* button 默认文字是黑色（ButtonText），深色主题下不可读 —— 必须显式指定前景色 */
  color: var(--text); font-family: inherit; appearance: none; -webkit-appearance: none;
}
.acq-exb:hover { border-color: var(--accent); transform: translateY(-2px); }
.acq-exb .ic { font-size: 17px; margin-bottom: 5px; }
/* 标题：加高对比浅色 + 轻微描边阴影，兼顾深色/浅色主题 */
.acq-exb .t { font-weight: 700; margin-bottom: 3px; color: var(--text); letter-spacing: .2px; }
.acq-exb .d { color: var(--muted); font-size: 11.5px; line-height: 1.5; }
/* 示例卡片：明确「可点即发」，解决"点了没反应"的困惑 */
.acq-ex-hint { font-size: 12px; color: var(--muted); margin: -8px 0 14px; }
.acq-ex-hint b { color: var(--accent); }
.acq-exb { display: block; position: relative; padding-bottom: 26px; }
.acq-exb .go { position: absolute; left: 12px; bottom: 8px; font-size: 11px;
  color: var(--accent); opacity: 0; transform: translateX(-4px); transition: .15s; }
.acq-exb:hover .go { opacity: 1; transform: none; }
.acq-exb.busy { border-color: var(--accent); background: var(--panel-2); pointer-events: none; }
.acq-exb.busy .go { opacity: 1; transform: none; color: var(--warn); }

/* 系统提示行（画像/方案切换留痕） */
.acq-row.sys { justify-content: center; }
.acq-row.sys .acq-bub { background: rgba(43,217,160,.08); border-color: rgba(43,217,160,.28);
  color: var(--accent); font-size: 12px; max-width: 78%; }

/* ================= 线索详情 · 右抽屉 ================= */
.acq-drawer { position: fixed; inset: 0; z-index: 200; pointer-events: none; }
.acq-drawer.on { pointer-events: auto; }
.acq-drawer-mask { position: absolute; inset: 0; background: rgba(6,10,18,.55);
  opacity: 0; transition: opacity .18s; }
.acq-drawer.on .acq-drawer-mask { opacity: 1; }
.acq-drawer-b {
  position: absolute; right: 0; top: 0; bottom: 0; width: 440px; max-width: 94vw;
  background: var(--panel); border-left: 1px solid var(--border);
  display: flex; flex-direction: column; transform: translateX(100%);
  transition: transform .22s cubic-bezier(.4,0,.2,1); box-shadow: var(--shadow);
}
.acq-drawer.on .acq-drawer-b { transform: none; }
.acq-drawer-h { display: flex; align-items: center; gap: 10px; padding: 13px 15px;
  border-bottom: 1px solid var(--border); flex: none; }
.acq-drawer-h b { flex: 1; font-size: 14px; min-width: 0; overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap; }
.acq-drawer-x { background: none; border: 1px solid var(--border); color: var(--muted);
  border-radius: 7px; width: 26px; height: 26px; cursor: pointer; flex: none; font-size: 12px; }
.acq-drawer-x:hover { color: var(--danger); border-color: var(--danger); }
.acq-drawer-c { flex: 1; overflow-y: auto; padding: 14px 15px 26px; }

.acq-dtags { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 9px; }
.acq-tag.bad { border-color: rgba(255,92,124,.4); color: var(--danger); }
.acq-dscore { height: 5px; border-radius: 4px; background: var(--panel-2); overflow: hidden; margin-bottom: 14px; }
.acq-dscore i { display: block; height: 100%; background: linear-gradient(90deg, var(--accent-2), var(--accent)); }
.acq-dsec { margin-bottom: 15px; }
.acq-dsec h4 { font-size: 12px; margin: 0 0 7px; color: var(--accent); font-weight: 700; letter-spacing: .02em; }
.acq-dkv-wrap { border: 1px solid var(--border); border-radius: 9px; overflow: hidden; }
.acq-dkv { display: flex; gap: 10px; padding: 7px 10px; font-size: 12px;
  border-bottom: 1px solid var(--border); align-items: flex-start; }
.acq-dkv:last-child { border-bottom: none; }
.acq-dkv .k { color: var(--muted); flex: none; width: 74px; font-size: 11.5px; }
.acq-dkv .v { flex: 1; min-width: 0; word-break: break-word; }
.acq-dkv .v a { word-break: break-all; }
.acq-dtext { font-size: 12px; line-height: 1.7; color: var(--text); opacity: .92; }
.acq-dul { margin: 0; padding-left: 17px; font-size: 12px; line-height: 1.75; }
.acq-ddm, .acq-dev { display: flex; align-items: center; gap: 8px; font-size: 12px; padding: 4px 0; }
.acq-ddm em, .acq-dev em { font-style: normal; color: var(--muted); font-size: 11px; }
.acq-dnote { font-size: 11.5px; line-height: 1.65; border-radius: 8px; padding: 8px 10px;
  margin-bottom: 14px; border: 1px solid var(--border); }
.acq-dnote.warn { background: rgba(255,176,32,.08); border-color: rgba(255,176,32,.3); color: var(--warn); }
.acq-dacts { display: flex; flex-wrap: wrap; gap: 7px; padding-top: 4px; }
.acq-btn {
  border: 1px solid var(--border); background: var(--panel-2); color: var(--text);
  border-radius: 8px; padding: 7px 11px; font-size: 12px; cursor: pointer; transition: .14s;
}
.acq-btn:hover { border-color: var(--accent); color: var(--accent); }
.acq-btn.p { background: var(--accent); color: #06231a; border-color: var(--accent); font-weight: 600; }
.acq-btn.p:hover { filter: brightness(1.08); color: #06231a; }
.acq-btn:disabled { opacity: .5; cursor: not-allowed; }

/* ================= 线索库：折叠行 ================= */
.acq-lbar { display: flex; align-items: center; gap: 6px; margin-bottom: 8px; }
.acq-mini { border: 1px solid var(--border); background: transparent; color: var(--muted);
  border-radius: 6px; padding: 3px 8px; font-size: 11px; cursor: pointer; }
.acq-mini:hover { color: var(--accent); border-color: var(--accent); }
.acq-lrow { border: 1px solid var(--border); border-radius: 8px; margin-bottom: 5px;
  overflow: hidden; background: var(--panel-2); }
.acq-lh { display: flex; align-items: center; gap: 7px; padding: 6px 8px; cursor: pointer; font-size: 12px; }
.acq-lh:hover { background: rgba(79,140,255,.07); }
.acq-lh .caret { color: var(--muted); font-size: 10px; transition: transform .16s; flex: none; }
.acq-lrow.on .acq-lh .caret { transform: rotate(90deg); }
.acq-lh .nm { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis;
  white-space: nowrap; font-weight: 600; }
.acq-lh .ct { color: var(--muted); font-size: 11px; flex: none; }
.acq-lh .sc { color: var(--accent); font-size: 11px; font-weight: 700; flex: none; }
/* 客户当地时间徽标（wt.js）：工作时间内绿 / 周末红 / 已下班灰 */
.acq-lh .acq-wt { color: var(--muted); font-size: 11px; flex: none; font-variant-numeric: tabular-nums; }
.acq-lh .acq-wt.on { color: #5fe3b6; }
.acq-lh .acq-wt.we { color: #ff9b9b; }
.acq-dkv .acq-wt { color: var(--muted); }
.acq-dkv .acq-wt.on { color: #5fe3b6; }
.acq-dkv .acq-wt.we { color: #ff9b9b; }
.acq-lb { display: none; padding: 0 8px 9px; }
.acq-lrow.on .acq-lb { display: block; }

/* 线索卡：可点查看详情 */
.acq-card .ch .exp { color: var(--muted); font-size: 11px; opacity: 0; transition: .15s; flex: none; }
.acq-card:hover .ch .exp { opacity: .9; color: var(--accent); }
.acq-card { cursor: pointer; }
.acq-card .ops .acq-op { cursor: pointer; }

/* 当前生效画像提示 */
.acq-prof-on { font-size: 12px; color: var(--accent); background: rgba(43,217,160,.08);
  border: 1px solid rgba(43,217,160,.28); border-radius: 8px; padding: 7px 9px; margin-bottom: 8px; }
.acq-prof-kv { display: flex; flex-direction: column; gap: 3px; font-size: 11.5px; color: var(--muted); }
.acq-prof-kv b { color: var(--text); }

/* ---------------- 响应式 ----------------
   小屏（≤1180px）三栏放不下：左右栏都以「覆盖式抽屉」呈现，
   此时竖条把手与窄把手隐藏（由页面内按钮/滑动手势切换）。 */
@media (max-width: 1180px) {
  .acq-root { grid-template-columns: 220px minmax(0, 1fr); }
  .acq-ctx { display: none; }
  .acq-ctx.show { display: flex; position: fixed; right: 0; top: 0; bottom: 0; width: 340px; z-index: 60; box-shadow: var(--shadow); }
  .acq-rail, .acq-side-rail { display: none !important; }
}
@media (max-width: 860px) {
  .acq-root { grid-template-columns: minmax(0, 1fr); }
  /* 手机：地址栏伸缩会让 100dvh 抖动，改用更保守的高度并允许内部滚动，
     但**仍然锁高度**——否则消息一多又把整页顶高（用户反馈的问题）。 */
  .acq-root {
    height: calc(100dvh - 104px);
    max-height: calc(100dvh - 104px);
  }
  .acq-side { display: none; }
  .acq-side.show { display: flex; position: fixed; left: 0; top: 0; bottom: 0; width: 264px; z-index: 60; box-shadow: var(--shadow); }
  .acq-bub { max-width: 92%; }
  .acq-row.me .acq-bub { max-width: 88%; }
  .acq-msgs { padding: 14px 12px 6px; }
}

/* 会话式回答（2026-10-17）：追问/澄清轮的直接答复——是"聊天"，不是"结果卡"。
   视觉上刻意区别于卡片区：浅蓝底、无表格、行距放宽，读起来像人在说话。 */
.acq-answer {
  padding: 12px 14px; border-radius: 12px;
  background: rgba(64,158,255,.07);
  border: 1px solid rgba(64,158,255,.24);
  font-size: 13px; line-height: 1.85;
}
.acq-answer-h {
  font-size: 11px; letter-spacing: .04em; opacity: .55;
  margin-bottom: 6px; font-weight: 600;
}
.acq-answer-b { color: var(--txt, #e8eefc); word-break: break-word; }

/* 回答里的工具轨迹（2026-10-17）：证明回答查了真实资料，而不是空口推理 */
.acq-answer-tools {
  margin-top: 8px; padding-top: 8px;
  border-top: 1px dashed rgba(64,158,255,.22);
  display: flex; flex-wrap: wrap; gap: 6px;
}
.acq-atool {
  font-size: 11px; padding: 2px 8px; border-radius: 999px;
  background: rgba(64,158,255,.12); border: 1px solid rgba(64,158,255,.26);
  opacity: .85;
}
.acq-atool.ng { background: rgba(255,120,120,.10); border-color: rgba(255,120,120,.28); }

/* ---- 落地校验 + 标注（2026-10-17）：让"哪里没出处"和"我来纠正"都在脸上 ---- */
.acq-gv {
  margin-top: 8px; padding: 8px 10px; border-radius: 8px;
  background: rgba(240, 173, 78, .10);
  border: 1px solid rgba(240, 173, 78, .35);
  font-size: 12px; line-height: 1.55;
}
.acq-gv-h { color: #b9770e; font-weight: 600; margin-bottom: 2px; }
.acq-gv-i { color: #8a6420; opacity: .95; }
.acq-anno {
  margin-top: 8px; display: flex; align-items: center; gap: 6px;
  font-size: 12px; flex-wrap: wrap;
}
.acq-anno-q { color: #7a869a; margin-right: 2px; }
.acq-anno-btn {
  border: 1px solid #d6dbe3; background: #fff; color: #4a5568;
  border-radius: 999px; padding: 2px 10px; font-size: 12px; cursor: pointer;
  transition: all .12s;
}
.acq-anno-btn:hover { border-color: #9aa7b8; color: #2d3748; }
.acq-anno-btn.ok:hover { border-color: #2f855a; color: #2f855a; background: #f0fff4; }
.acq-anno-btn.ng:hover { border-color: #c05621; color: #c05621; background: #fffaf0; }
.acq-anno-btn.hl:hover { border-color: #c53030; color: #c53030; background: #fff5f5; }
.acq-anno-btn[disabled] { opacity: .5; cursor: default; }
.acq-anno.done { color: #2f855a; opacity: .85; }
