/* ============ 主题变量（语枢·智库 新设计） ============ */
:root {
  /* 主色 */
  --primary: #6357E8;
  --primary-2: #8B6FF0;
  --primary-grad: linear-gradient(135deg, #6357E8, #8B6FF0);
  --primary-soft: #E9E5FC;    /* 主色浅底：选中态/激活态/标签背景 */
  --primary-hover: #5247D6;   /* 主色加深一档：按钮 hover */
  --accent: #ED7A4D;          /* 橙色强调 */
  --accent-soft: #FFF1EA;
  --success: #2E9E6B;
  --success-soft: #EAF7F0;
  --text-success: #2E9E6B;    /* 达标/通过文字色 */
  --danger: #E7484F;
  --danger-soft: #FDECEC;

  /* 中性 */
  --bg: #F5F4FA;
  --bg-elev: #FFFFFF;
  --bg-soft: #F2F0FA;
  --text: #26223F;            /* ink */
  --text-soft: #4A4566;
  --text-mute: #9B95B5;
  --border: #EAE6F5;
  --line: #EAE6F5;

  /* 深色侧栏 */
  --sidebar-bg: #26223F;
  --sidebar-bg-2: #2F2A4D;
  --sidebar-text: #C9C3E8;
  --sidebar-text-2: #B7B1D6;
  --sidebar-mute: #8E88B0;

  --shadow: 0 6px 24px rgba(38, 34, 63, 0.08);
  --shadow-sm: 0 3px 10px rgba(38, 34, 63, 0.05);
  --shadow-lg: 0 12px 40px rgba(38, 34, 63, 0.16);
  --radius: 14px;
  --font: "Sarasa Gothic SC", "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif;
}
[data-theme="dark"] {
  --primary: #8B6FF0;
  --primary-2: #A98FF5;
  --primary-grad: linear-gradient(135deg, #6A5DF0, #9B82F5);
  --primary-soft: #2F2A58;
  --primary-hover: #9B82F5;
  --accent: #F5A06E;
  --accent-soft: #3a2a22;
  --success: #3FC08A;
  --success-soft: #1f3a2e;
  --text-success: #3FC08A;
  --danger: #FF6B72;
  --danger-soft: #3a2226;

  --bg: #16142A;
  --bg-elev: #211D3A;
  --bg-soft: #2A2548;
  --text: #ECEAF8;
  --text-soft: #C9C3E8;
  --text-mute: #8E88B0;
  --border: #322C52;
  --line: #322C52;
  --shadow: 0 6px 24px rgba(0, 0, 0, 0.35);
  --shadow-sm: 0 3px 10px rgba(0, 0, 0, 0.25);
  --shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.5);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { height: 100%; }
body {
  margin: 0;
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  font-size: 14px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

/* ============ 顶部栏 ============ */
.topbar {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 0 24px;
  height: 64px;
  flex: 0 0 64px;
  background: var(--bg-elev);
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
  z-index: 30;
}
.brand { display: flex; align-items: center; gap: 11px; white-space: nowrap; }
.brand-logo {
  width: 38px; height: 38px; border-radius: 11px;
  background: var(--primary-grad); display: flex; align-items: center; justify-content: center;
  font-size: 20px; box-shadow: 0 6px 16px rgba(99, 87, 232, 0.4);
}
.brand-name { font-size: 17px; font-weight: 800; letter-spacing: 0.5px; }
.brand-sub { font-size: 12px; color: var(--text-mute); }

.search-wrap {
  flex: 0 0 420px;
  display: flex; align-items: center; gap: 9px;
  background: var(--bg-soft); border: 1.5px solid transparent;
  border-radius: 11px; padding: 0 13px; height: 40px;
  transition: border-color 0.18s, background 0.18s;
}
.search-wrap:focus-within { border-color: var(--primary); background: var(--bg-elev); }
.search-icon { opacity: 0.6; display: inline-flex; align-items: center; }
#searchInput {
  flex: 1; border: none; background: transparent; outline: none;
  color: var(--text); font-size: 13.5px; font-family: inherit;
}
.search-clear {
  border: none; background: var(--text-mute); color: #fff;
  border-radius: 50%; width: 18px; height: 18px; cursor: pointer; font-size: 11px;
  display: flex; align-items: center; justify-content: center; padding: 0;
}
.topbar-actions { display: flex; align-items: center; gap: 12px; margin-left: auto; }

.icon-btn {
  border: 1px solid var(--border); background: var(--bg-soft);
  color: var(--text-soft); border-radius: 11px; width: 38px; height: 38px;
  cursor: pointer; font-size: 17px; transition: background 0.18s, color 0.18s;
}
.icon-btn:hover { background: var(--bg-soft); color: var(--primary); }

.btn {
  border: 1px solid var(--border); background: var(--bg-elev); color: var(--text);
  padding: 9px 16px; border-radius: 11px; cursor: pointer; font-size: 13px; font-family: inherit;
  transition: all 0.18s; white-space: nowrap; font-weight: 600;
}
.btn:hover { border-color: var(--primary); color: var(--primary); }
.btn-ghost { background: var(--bg-soft); border-color: transparent; }
.btn-primary { background: var(--primary-grad); border-color: transparent; color: #fff; box-shadow: 0 8px 20px rgba(99, 87, 232, 0.3); }
.btn-primary:hover { filter: brightness(1.05); color: #fff; transform: translateY(-1px); }
.btn-danger { background: var(--danger); border-color: var(--danger); color: #fff; }
.btn-sm { padding: 5px 12px; font-size: 12px; }
.link-btn {
  border: none; background: none; color: var(--primary);
  cursor: pointer; font-size: 12px; padding: 0;
}

/* ============ 商家条 ============ */
.merchant-bar {
  display: flex; gap: 8px; padding: 10px 24px; overflow-x: auto;
  background: var(--bg-elev); border-bottom: 1px solid var(--border);
  position: relative; z-index: 5; flex-wrap: wrap;
}
.merchant-chip {
  display: inline-flex; align-items: center; gap: 7px; height: 32px;
  padding: 0 14px; border-radius: 16px; cursor: pointer;
  border: 1px solid var(--border); background: var(--bg-soft);
  color: var(--text-mute); font-size: 13px; font-weight: 600; white-space: nowrap; transition: all 0.18s;
}
.merchant-chip .dot { width: 9px; height: 9px; border-radius: 50%; }
.merchant-chip:hover { background: #ECEAF6; color: var(--text-soft); }
.merchant-chip.active { background: #EFEDFE; border-color: transparent; color: var(--primary); }
.merchant-chip.active .dot { background: var(--primary) !important; box-shadow: 0 0 0 2px rgba(99,87,232,.15); }

/* FAQ 分类筛选条 */
.faq-category-bar { padding: 8px 24px; background: var(--bg-soft); }
.faq-cat-chip { height: 28px; font-size: 12px; }

/* ============ 布局 ============ */
.layout {
  display: flex; gap: 0; height: calc(100vh - 64px - 53px);
}
.sidebar {
  width: 232px; flex-shrink: 0; padding: 20px 14px;
  border-right: 1px solid var(--border);
  background: var(--sidebar-bg);
  overflow-y: auto; display: flex; flex-direction: column;
}
.sb-brand { display: flex; align-items: center; gap: 11px; padding: 4px 8px 20px; }
.sb-brand .ic {
  width: 38px; height: 38px; border-radius: 11px; background: var(--primary-grad);
  display: flex; align-items: center; justify-content: center; font-size: 20px;
  box-shadow: 0 6px 16px rgba(99, 87, 232, 0.5);
}
.sb-brand b { color: #fff; font-size: 16px; font-weight: 800; display: block; }
.sb-brand small { color: var(--sidebar-mute); font-size: 10.5px; }
.module-nav { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; }
.module-btn {
  display: flex; align-items: center; gap: 12px;
  padding: 11px 14px; border-radius: 11px; cursor: pointer;
  border: 1px solid transparent; background: transparent; color: var(--sidebar-text-2);
  font-size: 14px; text-align: left; transition: all 0.18s; font-family: inherit; font-weight: 600;
}
/* 统一图标位：全站 data-icon 由 SVG 填充，不使用 emoji */
.mi { display: inline-flex; align-items: center; justify-content: center; flex: none; line-height: 0; vertical-align: -3px; }
.mi .ic { display: block; }
.module-btn .mi { width: 20px; height: 20px; text-align: center; }
.module-btn em {
  margin-left: auto; font-style: normal; font-size: 11.5px;
  background: rgba(255,255,255,.1); color: var(--sidebar-text);
  border-radius: 9px; padding: 1px 8px; min-width: 22px; text-align: center;
}
.module-btn:hover { background: var(--sidebar-bg-2); color: #fff; }
.module-btn.active { background: linear-gradient(90deg, rgba(99,87,232,.32), rgba(99,87,232,.06)); color: #fff; }
.module-btn.active::before { content: ""; position: absolute; left: 0; top: 9px; bottom: 9px; width: 3.5px; border-radius: 3px; background: var(--primary-2); }
.module-btn.active { position: relative; }

.tag-filter { margin-top: 22px; }
.tag-filter-head {
  display: flex; justify-content: space-between; align-items: center;
  font-size: 12px; color: var(--text-mute); margin-bottom: 8px; padding: 0 4px;
}
.tag-list { display: flex; flex-wrap: wrap; gap: 6px; }
.tag {
  font-size: 12px; padding: 4px 10px; border-radius: 999px; cursor: pointer;
  border: 1px solid var(--border); background: var(--bg-soft); color: var(--text-soft);
  transition: all 0.15s;
}
.tag:hover { border-color: var(--primary); }
.tag.active { background: var(--accent); border-color: var(--accent); color: #fff; }

/* ============ 内容区 ============ */
.content { flex: 1; overflow-y: auto; padding: 22px 24px 32px; }
.content-head { display: flex; align-items: baseline; gap: 14px; margin-bottom: 16px; flex-wrap: wrap; }
.content-head h1 { font-size: 20px; margin: 0; font-weight: 800; color: var(--text); }
.result-meta { font-size: 13px; color: var(--text-mute); display: flex; gap: 10px; align-items: center; }
.active-filter {
  background: var(--primary-soft); color: var(--primary);
  padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 600;
}

/* 首页统计 */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 18px; }
.stat { background: var(--bg-elev); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px 18px; box-shadow: var(--shadow-sm); transition: box-shadow .2s, transform .2s; }
.stat:hover { box-shadow: var(--shadow); transform: translateY(-2px); }
.stat .n { font-size: 26px; font-weight: 800; color: var(--text); }
.stat .t { font-size: 12.5px; color: var(--text-mute); margin-top: 2px; }
.stat .bar { height: 4px; border-radius: 3px; background: var(--primary-grad); margin-top: 10px; opacity: .9; }
.stat.c2 .bar { background: linear-gradient(135deg, #3FAE6B, #6FD39B); }
.stat.c3 .bar { background: linear-gradient(135deg, #ED7A4D, #F5A06E); }
.stat.c4 .bar { background: linear-gradient(135deg, #4B7BEC, #7BA0F5); }

/* 标签筛选 */
.tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.tag-chip {
  height: 30px; padding: 0 13px; border-radius: 15px; font-size: 12.5px; font-weight: 600;
  background: #fff; border: 1px solid var(--border); color: var(--text-mute);
  cursor: pointer; transition: all .18s; display: inline-flex; align-items: center;
}
.tag-chip:hover { border-color: var(--primary); color: var(--primary); }
.tag-chip.active { background: var(--primary-grad); color: #fff; border-color: transparent; box-shadow: 0 4px 12px rgba(99,87,232,.25); }

.card-area {
  display: grid; gap: 16px;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  align-items: start;
}

/* ============ 卡片 ============ */
.card {
  background: var(--bg-elev); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 18px; box-shadow: var(--shadow-sm);
  display: flex; flex-direction: column; gap: 12px; transition: box-shadow 0.2s, transform 0.2s, border-color .2s;
}
.card:hover { box-shadow: var(--shadow); transform: translateY(-3px); border-color: #D9D2F2; }
.card-top { display: flex; align-items: center; gap: 9px; }
.merchant-tag {
  display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px;
  padding: 3px 9px; border-radius: 8px; font-weight: 600;
}
.merchant-tag .dot { width: 7px; height: 7px; border-radius: 50%; }
.mod-badge { font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: 8px; margin-left: auto; }
.mod-badge.ct-faq { background: #EFEDFE; color: var(--primary); }
.mod-badge.ct-train { background: var(--success-soft); color: var(--success); }
.mod-badge.ct-proc { background: var(--accent-soft); color: var(--accent); }
.card-edit-btn {
  margin-left: 8px; border: 1px solid var(--border); background: var(--bg-soft);
  color: var(--text-soft); border-radius: 6px; padding: 3px 8px; font-size: 12px;
  cursor: pointer; display: inline-flex; align-items: center; gap: 3px; font-family: inherit;
}
.card-edit-btn:hover { border-color: var(--primary); color: var(--primary); background: var(--bg-elev); }
.card h3 { margin: 0; font-size: 15.5px; line-height: 1.4; font-weight: 700; }
.card-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.card-tags .ct { font-size: 11px; color: var(--text-mute); background: var(--bg-soft); padding: 1px 7px; border-radius: 5px; }

/* FAQ 话术：聊天气泡风格 */
.question {
  font-size: 13px; color: var(--text-soft);
  background: var(--bg-soft); border-radius: 12px; padding: 10px 14px; line-height: 1.6;
}
.question b { color: var(--text); }
.script-box {
  background: var(--primary-grad); color: #fff; white-space: pre-wrap; line-height: 1.7;
  border-radius: 12px; padding: 12px 15px; font-size: 13.5px; border: none;
}

/* 培训资料 */
.media-box { border-radius: 10px; overflow: hidden; background: var(--bg-soft); }
.media-box img { width: 100%; display: block; }
.media-box video { width: 100%; display: block; border-radius: 10px; }
.media-box.media-thumb { position: relative; aspect-ratio: 16 / 10; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.media-box.media-thumb img,
.media-box.media-thumb video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 10px; }
.media-box.media-thumb::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,0); transition: background .12s; border-radius: 10px; pointer-events: none; }
.media-box.media-thumb:hover::after { background: rgba(0,0,0,.06); }
#trainingView .faq-detail-body { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; align-content: start; }
#trainingView .faq-detail-body .card { margin: 0; }
#trainingView .faq-detail-body .media-box.media-thumb { margin-bottom: 10px; }
.media-doc {
  padding: 12px 14px; font-size: 13px; white-space: pre-wrap; color: var(--text-soft); line-height: 1.7;
  background: var(--bg-soft); border-radius: 10px;
}
.media-type {
  display: inline-flex; align-items: center; gap: 5px; font-size: 12px;
  color: var(--primary); font-weight: 600;
}

/* 业务流程 */
.steps { display: flex; flex-direction: column; gap: 10px; margin-top: 2px; }
.step { display: flex; gap: 11px; align-items: flex-start; }
.step-num {
  flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%;
  background: var(--primary-grad); color: #fff; font-size: 12px;
  display: flex; align-items: center; justify-content: center; font-weight: 700;
}
.step-txt b { display: block; font-size: 13.5px; }
.step-txt span { font-size: 12.5px; color: var(--text-soft); }
.step-body { flex: 1; min-width: 0; }
.step-head { font-size: 14px; font-weight: 700; margin-bottom: 3px; color: var(--text); }
.step-desc { font-size: 12.5px; color: var(--text-soft); line-height: 1.6; margin-bottom: 8px; }
.step-script {
  background: var(--accent-soft); border: 1px solid #F6D9C9;
  border-left: 3px solid var(--accent); border-radius: 10px; padding: 10px 12px;
}
.ss-label { font-size: 11px; color: var(--accent); font-weight: 700; margin-bottom: 4px; }
.ss-text { font-size: 13px; color: var(--text); white-space: pre-wrap; line-height: 1.65; }
.ss-text.empty { color: var(--text-mute); font-size: 12px; }
.mini-copy { margin-top: 8px; padding: 6px 12px; font-size: 12px; }

/* 流程配图网格 */
.entry-images { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.entry-img {
  display: inline-block; width: 124px; border: 1px solid var(--border); border-radius: 10px;
  overflow: hidden; background: var(--bg-soft); text-decoration: none; transition: border-color .15s, transform .15s;
}
.entry-img:hover { border-color: var(--primary); transform: translateY(-2px); }
.entry-img img { width: 100%; height: 84px; object-fit: cover; display: block; }
.entry-img-cap {
  display: block; font-size: 11px; color: var(--text-mute); padding: 4px 6px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.proc-images { display: flex; flex-wrap: wrap; gap: 8px; }
.proc-img { position: relative; width: 104px; border: 1px solid var(--border); border-radius: 9px; overflow: hidden; background: var(--bg-soft); }
.proc-img img { width: 100%; height: 72px; object-fit: cover; display: block; }
.proc-img .cap { display: block; font-size: 10px; color: var(--text-mute); padding: 2px 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.proc-img .mini-btn.del { position: absolute; top: 3px; right: 3px; padding: 1px 6px; font-size: 11px; line-height: 1.4; background: rgba(231,72,79,.92); color: #fff; border: none; border-radius: 6px; cursor: pointer; }
.proc-img-empty { font-size: 12px; color: var(--text-mute); padding: 4px 0; }

/* 培训资料 lightbox（大图/视频查看） */
.tl-lightbox { position: fixed; inset: 0; background: rgba(0,0,0,.85); z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 40px 24px 24px; }
.tl-lightbox[hidden] { display: none; }
.tl-lightbox-inner { position: relative; background: var(--bg-elev); border-radius: 12px; max-width: 92vw; max-height: 88vh; overflow: auto; padding: 24px; box-shadow: var(--shadow-lg); min-width: 320px; }
.tl-lightbox-close { position: absolute; top: 10px; right: 14px; background: transparent; border: none; font-size: 26px; color: var(--text-mute); cursor: pointer; z-index: 2; }
.tl-lightbox-close:hover { color: var(--danger); }
.tl-lightbox-content h3 { margin: 0 0 12px; font-size: 15px; color: var(--text); }
.tl-lightbox-content img { max-width: 100%; height: auto; border-radius: 8px; display: block; }
.tl-lightbox-content video { max-width: 100%; max-height: 70vh; border-radius: 8px; display: block; }
.tl-lightbox-content .tl-doc { white-space: pre-wrap; line-height: 1.8; color: var(--text-soft); max-width: 800px; }
.tl-lightbox-desc { margin-top: 12px; font-size: 12px; color: var(--text-mute); white-space: pre-wrap; }

/* 复制按钮 */
.copy-btn {
  align-self: flex-start; display: inline-flex; align-items: center; gap: 6px;
  background: var(--primary); color: #fff; border: none; cursor: pointer;
  padding: 8px 15px; border-radius: 10px; font-size: 13px; font-weight: 600;
  transition: filter 0.15s; font-family: inherit;
}
.copy-btn:hover { filter: brightness(1.08); }
.copy-btn.copied { background: var(--success); }

/* 空状态 */
.empty-state { text-align: center; padding: 80px 20px; color: var(--text-mute); }
.empty-emoji { display: flex; align-items: center; justify-content: center; color: var(--text-mute); opacity: .55; margin-bottom: 10px; }

/* ============ Toast ============ */
.toast {
  position: fixed; bottom: 32px; left: 50%; transform: translateX(-50%);
  background: var(--text); color: var(--bg-elev); padding: 10px 20px;
  border-radius: 12px; font-size: 13px; z-index: 100; box-shadow: var(--shadow-lg);
  animation: toastIn 0.2s ease; font-weight: 600;
}
@keyframes toastIn { from { opacity: 0; transform: translate(-50%, 10px); } to { opacity: 1; } }

/* ============ 后台配置（全屏两栏布局） ============ */
.manage-panel {
  position: fixed; inset: 0; z-index: 60;
  background: var(--bg); display: flex; flex-direction: column;
}
.manage-layout {
  display: flex; flex: 1; height: 100vh; overflow: hidden;
}
.manage-sidebar {
  width: 240px; flex-shrink: 0; display: flex; flex-direction: column;
  background: var(--bg-elev); border-right: 1px solid var(--border);
  padding: 16px 14px;
}
.manage-brand {
  display: flex; align-items: center; gap: 10px;
  padding: 0 6px 16px; border-bottom: 1px solid var(--border);
  font-size: 17px; font-weight: 700; color: var(--text);
}
.manage-brand-icon { display: inline-flex; align-items: center; justify-content: center; color: var(--primary); }
.manage-brand .icon-btn { margin-left: auto; }
.manage-subnav {
  display: flex; flex-direction: column; gap: 6px;
  padding: 14px 0; flex: 1; overflow-y: auto;
}
.msub-btn {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px; border-radius: 10px; cursor: pointer;
  border: 1px solid transparent; background: transparent; color: var(--text-soft);
  font-size: 14px; text-align: left; transition: all 0.15s; font-family: inherit; font-weight: 600;
}
.msub-btn .mi { width: 18px; height: 18px; }
.msub-btn:hover { background: var(--bg-soft); }
.msub-btn.active { background: var(--primary-soft); color: var(--primary); font-weight: 700; }
.manage-userfoot {
  padding: 12px 6px 0; border-top: 1px solid var(--border);
  font-size: 12px; color: var(--text-mute);
}
.manage-main {
  flex: 1; min-width: 0; display: flex; flex-direction: column;
  overflow: hidden;
}
.msub-pane { display: none; flex-direction: column; height: 100%; overflow-y: auto; padding: 20px 24px; }
.msub-pane.active { display: flex; }
.manage-page-head {
  display: flex; justify-content: space-between; align-items: flex-start; gap: 16px;
  margin-bottom: 18px;
}
.manage-page-head h2 { margin: 0; font-size: 20px; color: var(--text); font-weight: 800; }
.manage-page-desc { margin: 4px 0 0; font-size: 13px; color: var(--text-mute); }
.manage-page-actions { display: flex; gap: 10px; flex-shrink: 0; }
.manage-card {
  background: var(--bg-elev); border: 1px solid var(--border);
  border-radius: 12px; padding: 18px 20px;
}
.manage-toolbar { display: flex; align-items: center; gap: 10px; margin-top: 14px; }
.manage-toolbar .mf-label { flex-shrink: 0; }
.manage-list { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.bulk-bar {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px;
  background: var(--bg-soft); margin-bottom: 4px;
}
.bulk-bar .bulk-check { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; font-size: 13px; color: var(--text); font-weight: 600; }
.bulk-bar .bulk-check input { width: 16px; height: 16px; cursor: pointer; }
.bulk-bar .bulk-count { flex: 1; font-size: 12px; color: var(--text-mute); }
.bulk-bar .mini-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.manage-item {
  display: flex; align-items: center; gap: 10px; padding: 12px 14px;
  border: 1px solid var(--border); border-radius: 10px; background: var(--bg-soft);
}
.manage-item .mi-check { width: 16px; height: 16px; cursor: pointer; flex-shrink: 0; }
.manage-item .mi-info { flex: 1; min-width: 0; }
.manage-item .mi-title { font-size: 14px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.manage-item .mi-sub { font-size: 12px; color: var(--text-mute); margin-top: 2px; }
.manage-item .mi-actions { display: flex; gap: 6px; flex-shrink: 0; }
.mini-btn {
  border: 1px solid var(--border); background: var(--bg-elev); color: var(--text-soft);
  border-radius: 6px; padding: 5px 9px; cursor: pointer; font-size: 12px; font-family: inherit;
}
.mini-btn:hover { border-color: var(--primary); color: var(--primary); }
.mini-btn.del:hover { border-color: var(--danger); color: var(--danger); }

/* 后台配置筛选 */
.manage-filters { display: flex; flex-direction: column; gap: 10px; }
.mf-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.mf-label { font-size: 12px; color: var(--text-mute); font-weight: 600; white-space: nowrap; }
.mf-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.mf-chip {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 5px 11px; border-radius: 999px; cursor: pointer;
  border: 1px solid var(--border); background: var(--bg-soft); color: var(--text-soft);
  font-size: 12.5px; transition: all .15s; white-space: nowrap; font-family: inherit;
}
.mf-chip:hover { border-color: var(--primary); }
.mf-chip.active { background: var(--primary); border-color: var(--primary); color: #fff; font-weight: 600; }
.manage-group { margin-bottom: 16px; }
.manage-group-head {
  display: flex; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 700;
  color: var(--text); padding: 10px 6px; border-bottom: 1px solid var(--border); margin-bottom: 8px;
}
.manage-group-head em {
  margin-left: auto; font-style: normal; font-size: 11px; color: var(--text-mute); font-weight: 400;
}
.manage-empty { color: var(--text-mute); font-size: 13px; padding: 30px 0; text-align: center; }
.mi-mod { font-weight: 600; }

/* 数据 */
.data-box p { font-size: 13px; color: var(--text-soft); line-height: 1.7; }
.data-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.code-block {
  background: var(--bg-soft); border: 1px solid var(--border); border-radius: 8px;
  padding: 12px; font-size: 12px; color: var(--text-soft); overflow-x: auto; white-space: pre;
}

/* 响应式：后台配置小屏 */
@media (max-width: 768px) {
  .manage-layout { flex-direction: column; }
  .manage-sidebar {
    width: 100%; flex-direction: row; align-items: center; padding: 10px 12px;
    border-right: none; border-bottom: 1px solid var(--border); overflow-x: auto;
  }
  .manage-brand { border-bottom: none; padding: 0; flex-shrink: 0; }
  .manage-subnav { flex-direction: row; padding: 0 0 0 10px; flex: 1; }
  .msub-btn { padding: 7px 10px; font-size: 13px; white-space: nowrap; }
  .manage-userfoot { display: none; }
  .msub-pane { padding: 14px 16px; }
}

/* ============ 弹窗 ============ */
.modal-overlay {
  position: fixed; inset: 0; background: rgba(15, 12, 30, 0.5); backdrop-filter: blur(4px); z-index: 80;
  display: flex; align-items: center; justify-content: center; padding: 20px;
}
.modal {
  background: var(--bg-elev); border-radius: var(--radius); width: 560px; max-width: 100%;
  max-height: 90vh; display: flex; flex-direction: column; box-shadow: var(--shadow-lg); border: 1px solid var(--border);
}
.modal-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: 16px 20px; border-bottom: 1px solid var(--border);
}
.modal-header h3 { margin: 0; font-size: 16px; font-weight: 800; }
.modal-body { padding: 18px 20px; overflow-y: auto; }
.modal-footer { padding: 14px 20px; border-top: 1px solid var(--border); display: flex; justify-content: flex-end; gap: 10px; }

.field { margin-bottom: 14px; }
.field label { display: block; font-size: 13px; color: var(--text-soft); margin-bottom: 5px; font-weight: 600; }
.field input:not([type="radio"]):not([type="checkbox"]), .field textarea, .field select {
  width: 100%; padding: 9px 12px; border-radius: 10px; border: 1.5px solid var(--border);
  background: var(--bg-soft); color: var(--text); font-size: 13.5px; outline: none; font-family: inherit;
}
.field textarea { min-height: 110px; resize: vertical; line-height: 1.6; }
.field input:not([type="radio"]):not([type="checkbox"]):focus, .field textarea:focus, .field select:focus { border-color: var(--primary); background: var(--bg-elev); }
.field-row { display: flex; gap: 12px; }
.field-row .field { flex: 1; }
.step-editor { display: flex; gap: 8px; margin-bottom: 8px; align-items: flex-start; }
.step-editor .si { width: 28px; flex-shrink: 0; text-align: center; padding-top: 9px; color: var(--primary); font-weight: 700; }
.step-editor .sf { flex: 1; }
.step-editor textarea { min-height: 50px; }
.add-step { font-size: 12px; color: var(--primary); cursor: pointer; background: none; border: 1px dashed var(--border); border-radius: 8px; padding: 7px; width: 100%; font-family: inherit; }
.add-step:hover { border-color: var(--primary); }

/* ============ 搜索高亮 ============ */
mark.hl {
  background: #ffe08a; color: #5a4500; border-radius: 3px;
  padding: 0 2px; font-weight: 700;
}
[data-theme="dark"] mark.hl { background: #6b5410; color: #ffe9a8; }

/* ============ 备份列表 ============ */
.backup-list { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.backup-item {
  display: flex; align-items: center; gap: 10px; padding: 8px 10px;
  border: 1px solid var(--border); border-radius: 10px; background: var(--bg-soft);
}
.backup-item .bi-info { flex: 1; min-width: 0; }
.backup-item .bi-name { font-size: 12.5px; font-weight: 600; word-break: break-all; }
.backup-item .bi-sub { font-size: 11px; color: var(--text-mute); }
.backup-item .bi-actions { display: flex; gap: 6px; flex-shrink: 0; }
.backup-item .mini-btn { text-decoration: none; display: inline-flex; align-items: center; }

/* ============ 登录 / 注册（左右分屏） ============ */
.auth-overlay {
  position: fixed; inset: 0; z-index: 1000;
  display: flex; align-items: stretch;
  background: var(--bg);
}
.auth-split { display: flex; width: 100%; height: 100%; }
.auth-brand-panel {
  flex: 0 0 46%; position: relative; overflow: hidden;
  background: radial-gradient(circle at 30% 20%, #3A2F6E, #26223F 70%);
  display: flex; flex-direction: column; justify-content: center; padding: 64px; color: #fff;
}
.auth-brand-panel::before, .auth-brand-panel::after { content: ""; position: absolute; border-radius: 50%; filter: blur(40px); opacity: .55; }
.auth-brand-panel::before { width: 320px; height: 320px; background: #8B6FF0; top: -80px; right: -60px; }
.auth-brand-panel::after { width: 260px; height: 260px; background: #ED7A4D; bottom: -60px; left: 40px; opacity: .4; }
.lb-logo {
  width: 64px; height: 64px; border-radius: 18px; background: var(--primary-grad);
  display: flex; align-items: center; justify-content: center; font-size: 32px;
  box-shadow: 0 8px 24px rgba(99, 87, 232, .5); position: relative; z-index: 1;
}
.lb-name { font-size: 30px; font-weight: 800; margin-top: 24px; letter-spacing: 1px; position: relative; z-index: 1; }
.lb-sub { font-size: 14px; color: #C9C3E8; margin-top: 8px; position: relative; z-index: 1; }
.lb-feats { margin-top: 48px; display: flex; flex-direction: column; gap: 18px; position: relative; z-index: 1; }
.lb-feat { display: flex; gap: 12px; align-items: flex-start; }
.lb-feat .ic { width: 34px; height: 34px; border-radius: 10px; background: rgba(255,255,255,.12); display: flex; align-items: center; justify-content: center; flex: 0 0 34px; }
.lb-feat b { font-size: 14.5px; font-weight: 700; color: #fff; display: block; }
.lb-feat small { font-size: 12.5px; color: #BDB6DC; }
.lb-ver { position: absolute; bottom: 28px; left: 64px; font-size: 12px; color: #8E88B0; z-index: 1; }
.auth-form-panel { flex: 1; display: flex; align-items: center; justify-content: center; padding: 40px; }
.lf-card { width: 380px; max-width: 100%; }
.lf-hi { font-size: 13px; color: var(--text-mute); letter-spacing: 2px; text-transform: uppercase; }
.lf-title { font-size: 28px; font-weight: 800; color: var(--text); margin: 8px 0 24px; }
.lf-tabs { display: flex; gap: 8px; background: var(--bg-soft); padding: 5px; border-radius: 12px; margin-bottom: 22px; }
.lf-tab { flex: 1; padding: 9px; border-radius: 9px; font-size: 14px; font-weight: 600; color: var(--text-mute); background: transparent; border: none; cursor: pointer; font-family: inherit; transition: .2s; }
.lf-tab.active { background: #fff; color: var(--primary); box-shadow: var(--shadow-sm); }
.lf-field { margin-bottom: 16px; }
.lf-field label { font-size: 12.5px; color: var(--text-mute); font-weight: 600; display: block; margin-bottom: 7px; }
.lf-input, .auth-form input {
  width: 100%; height: 46px; border: 1.5px solid var(--border); border-radius: 12px;
  padding: 0 14px; font-size: 14px; color: var(--text); background: #fff; font-family: inherit; transition: .2s;
  box-sizing: border-box;
}
.lf-input:focus, .auth-form input:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(99,87,232,.12); }
.lf-row { display: flex; align-items: center; justify-content: space-between; margin: 6px 0 22px; font-size: 13px; }
.lf-remember { display: flex; align-items: center; gap: 7px; color: var(--text-mute); }
.lf-remember input { width: 15px; height: 15px; accent-color: var(--primary); }
.lf-link { color: var(--primary); font-weight: 600; cursor: pointer; }
.btn-block { width: 100%; justify-content: center; padding: 12px; font-size: 15px; }
.auth-msg { color: var(--danger); font-size: 12.5px; min-height: 16px; text-align: center; margin-top: 12px; }
.auth-hint { font-size: 11.5px; color: var(--text-mute); line-height: 1.6; margin-top: 6px; }
.lf-demo { margin-top: 14px; text-align: center; font-size: 12.5px; color: var(--text-mute); }

/* ============ 顶栏用户态 ============ */
.user-chip {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--bg-soft); border: 1px solid var(--border);
  border-radius: 20px; padding: 4px 6px 4px 12px; font-size: 13px;
}
.user-chip .uc-name { font-weight: 600; }
.user-chip .uc-role {
  font-size: 11px; color: #fff; background: var(--primary);
  border-radius: 10px; padding: 1px 8px;
}

/* ============ 权限 / 项目配置 ============ */
.perm-box { border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; background: var(--bg-soft); }
.perm-row { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 14px; padding: 7px 0; }
.perm-row + .perm-row { border-top: 1px dashed var(--border); }
.perm-label { width: 72px; font-weight: 600; font-size: 13px; flex-shrink: 0; }
.perm-opt { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; color: var(--text-soft); cursor: pointer; }
/* 「用户-角色」专用：每行一个 role-opt，文字左 / radio 右，同一行垂直居中。
   仅作用于 .role-box，不改 .perm-opt、不改其他任何 radio（板块权限 / 指派客服 / 其他表单）。 */
.role-box { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: 10px; padding: 8px 12px; background: var(--bg-soft); }
.role-box > .role-opt { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; margin: 0; padding: 7px 0; font-size: 13px; color: var(--text-soft); cursor: pointer; }
.role-box > .role-opt + .role-opt { border-top: 1px dashed var(--border); }
.role-box > .role-opt > .role-text { flex: 1 1 auto; min-width: 0; line-height: 1.5; }
.role-box > .role-opt input[type="radio"] { -webkit-appearance: auto; appearance: auto; flex: 0 0 auto; width: 15px; height: 15px; margin: 0; padding: 0; border: none; border-radius: 0; background: transparent; accent-color: var(--primary); cursor: pointer; }
.role-box > .role-opt input[type="radio"]:disabled { cursor: not-allowed; opacity: .45; }
/* 「指派客服」专用：多列紧凑平铺，每格定宽，复选框不随长名字漂移（不影响账号管理的 perm-row） */
.perm-box.st-agents { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 6px 10px; padding: 10px 12px; }
.perm-box.st-agents > .perm-opt { display: flex; align-items: center; gap: 8px; padding: 4px 2px; margin: 0; min-width: 0; cursor: pointer; color: var(--text-soft); }
.perm-box.st-agents > .perm-opt input { flex-shrink: 0; margin: 0; cursor: pointer; width: 14px; height: 14px; }
.perm-box.st-agents > .perm-opt .perm-name { flex: 1; min-width: 0; display: flex; align-items: center; gap: 6px; min-width: 0; }
.perm-box.st-agents > .perm-opt .perm-name > b { flex: 1; min-width: 0; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-soft); }
.perm-box.st-agents > .perm-opt .perm-tag { flex-shrink: 0; font-size: 11px; line-height: 16px; padding: 0 6px; border-radius: 999px; background: var(--bg-elev); color: var(--text-mute); border: 1px solid var(--border); white-space: nowrap; }
.proj-box { display: flex; flex-wrap: wrap; gap: 8px 14px; border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; background: var(--bg-soft); }
.proj-opt { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; color: var(--text-soft); cursor: pointer; }
.proj-actions { margin-top: 8px; display: flex; gap: 12px; }

/* ============ 高亮 ============ */
mark.hl2 { background: #fff3a3; color: inherit; padding: 0 1px; border-radius: 3px; }
[data-theme="dark"] mark.hl2 { background: #7a6b1f; color: #fff6c2; }

/* ============ 管理员徽标 ============ */
.badge-admin { font-size: 12px; color: var(--success); font-weight: 600; }

/* ============ AI 整理 ============ */
.ai-box { max-width: 920px; }
.ai-box h3 { margin: 4px 0 6px; }
.ai-box > p { color: var(--text-mute); font-size: 13px; line-height: 1.7; margin-bottom: 14px; }
.ai-config { background: var(--bg-soft); border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; margin-bottom: 16px; }
.ai-config > label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 8px; }
.ai-key-row { display: flex; gap: 8px; }
.ai-key-row .mini-input { flex: 1; }
.ai-key-status { font-size: 12px; margin-top: 8px; color: var(--text-mute); }
.ai-upload { background: var(--bg-soft); border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; margin-bottom: 16px; }
.ai-file-row { display: flex; gap: 8px; align-items: center; margin-top: 10px; flex-wrap: wrap; }
.ai-file-row input[type="file"] { flex: 1; min-width: 200px; font-size: 13px; }
.ai-status { font-size: 13px; margin-top: 10px; color: var(--text); line-height: 1.6; }
.ai-preview { display: flex; flex-direction: column; gap: 12px; }
.ai-card { border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; background: var(--bg-elev); }
.ai-card-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.ai-card-head .ai-merch { margin-left: auto; max-width: 220px; }
.ai-commit-row { margin-top: 14px; display: flex; align-items: center; gap: 12px; }
.ai-commit-hint { font-size: 12px; color: var(--text-mute); }

/* ============ 响应式 ============ */
@media (max-width: 860px) {
  .layout { flex-direction: column; height: auto; }
  .sidebar { width: 100%; border-right: none; border-bottom: 1px solid var(--border); }
  .module-nav { flex-direction: row; flex-wrap: wrap; }
  .content { height: auto; }
  .brand-sub { display: none; }
  .user-chip .uc-name { display: none; }
  .stats { grid-template-columns: repeat(2, 1fr); }
  .auth-split { flex-direction: column; }
  .auth-brand-panel { flex: none; padding: 40px 28px; }
  .lb-feats { display: none; }
  .lb-ver { position: static; margin-top: 24px; }
}

/* 记住我 */
.remember-row { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-mute); margin: 2px 0 10px; cursor: pointer; }
.remember-row input { width: auto; margin: 0; }

/* 后台配置入口 */
.nav-divider { margin: 10px 4px; height: 1px; background: rgba(255,255,255,.08); }
.module-btn.manage-entry { border: 1px dashed var(--primary); background: rgba(99,87,232,.08); color: var(--primary-2); font-weight: 700; }
.module-btn.manage-entry:hover { background: var(--primary); color: #fff; }
.module-btn.manage-entry .gear { background: var(--primary); color: #fff; }
.module-btn.manage-entry:hover .gear { background: #fff; color: var(--primary); }

/* ============ 产品模块（配置 + 对比） ============ */
.p-thumb { width: 40px; height: 40px; border-radius: 8px; object-fit: cover; border: 1px solid var(--border); background: var(--bg-soft); flex-shrink: 0; }
.p-thumb-empty { display: flex; align-items: center; justify-content: center; font-size: 20px; }

/* 产品编辑弹窗 */
.p-img-row { display: flex; gap: 8px; }
.p-img-row input { flex: 1; }
.p-img-preview { margin-top: 8px; }
.p-img-preview img { max-width: 160px; max-height: 120px; border-radius: 8px; border: 1px solid var(--border); object-fit: cover; }
.p-point-row, .p-attr-row { display: flex; gap: 6px; margin-bottom: 6px; align-items: center; }
.p-point-row input { flex: 1; }
.p-attr-row .pa-key { flex: 0 0 38%; }
.p-attr-row .pa-val { flex: 1; }

/* 客服端产品对比视图 */
.product-compare { padding-bottom: 40px; }
.pc-filter-card { margin-bottom: 14px; }
.pc-sel-row { margin-top: 10px; }
.pc-selinfo { font-weight: 700; color: var(--primary); }
.pc-picker { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 12px; margin-bottom: 18px; }
.pc-pick { background: var(--bg-elev); border: 2px solid var(--border); border-radius: var(--radius); padding: 8px; cursor: pointer; transition: border-color .15s, box-shadow .15s, transform .15s; position: relative; }
.pc-pick:hover { border-color: var(--primary); transform: translateY(-2px); box-shadow: var(--shadow); }
.pc-pick.sel { border-color: var(--primary); background: var(--primary-soft); }
.pc-pick-thumb-wrap { position: relative; width: 100%; height: 60px; background: var(--bg-soft); border-radius: 8px; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.pc-pick-thumb-wrap img { max-width: 100%; max-height: 100%; object-fit: contain; }
.pc-thumb-empty { font-size: 13px; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; width: 100%; text-align: center; line-height: 1.3; padding: 8px; color: var(--text); box-sizing: border-box; }
.pc-name-main { font-size: 13px; font-weight: 600; line-height: 1.3; }
.pc-name-sub { font-size: 10px; color: var(--text-mute); margin-top: 3px; line-height: 1.3; }
.pc-head-img .pc-thumb-empty { font-size: 12px; }
.pc-head-img .pc-name-main { font-size: 12px; }
.pc-head-img .pc-name-sub { font-size: 10px; }
.pc-rec-thumb .pc-thumb-empty { font-size: 11px; }
.pc-rec-thumb .pc-name-main { font-size: 12px; }
.pc-rec-thumb .pc-name-sub { font-size: 9px; }
.pc-badge { position: absolute; top: 6px; left: 6px; width: 20px; height: 20px; border-radius: 50%; background: var(--primary); color: #fff; font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.pc-pick-name { display: none; }
.pc-pick-points { display: none; }

/* 产品对比搜索 */
.pc-search-row { margin-bottom: 14px; }
.pc-search-row .mini-input { max-width: 360px; }

/* v=20260904a 平台 / 店铺筛选行 */
.pc-scope-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.mini-select {
  height: 32px; padding: 0 10px; font-size: 13px; color: var(--text);
  background: var(--card, #fff); border: 1px solid var(--border, #e3e5e8);
  border-radius: 8px; cursor: pointer; max-width: 180px;
}
.mini-select:hover { border-color: var(--primary); }
.mini-select:focus { outline: none; border-color: var(--primary); }
.mini-select:disabled { opacity: 0.5; cursor: not-allowed; }
.pc-scope-hint { font-size: 12px; color: var(--text-mute, #999); }
.bulk-bar .mini-select { height: 28px; font-size: 12px; max-width: 200px; }

/* AI 控制区（对比 / 单产品） */
.pc-ai-compare-controls, .pc-ai-single-controls { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.pc-single-name { font-weight: 700; color: var(--primary); font-size: 14px; }

/* 对比表 */
.pc-table-card { overflow: hidden; }
.pc-table-scroll { overflow-x: auto; }
.pc-table { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 560px; }
.pc-table th, .pc-table td { border: 1px solid var(--border); padding: 10px 12px; text-align: left; vertical-align: top; }
.pc-table thead th { background: var(--bg-soft); font-weight: 600; }
.pc-table tbody th { background: var(--bg-soft); color: var(--text-soft); white-space: nowrap; width: 110px; font-weight: 500; }
.pc-table tbody td { color: var(--text); white-space: normal; }
.pc-table tbody td.hl { background: rgba(232, 116, 59, 0.08); color: var(--accent); font-weight: 600; }
.pc-th-label { width: 110px; }
.pc-th-prod { min-width: 150px; text-align: center !important; }
.pc-head-img { height: 72px; display: flex; align-items: center; justify-content: center; background: var(--bg-soft); border-radius: 8px; overflow: hidden; margin-bottom: 6px; }
.pc-head-img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.pc-head-name { font-size: 14px; font-weight: 700; margin-bottom: 6px; }
.pc-diff-tag { font-style: normal; font-size: 11px; background: var(--accent); color: #fff; border-radius: 4px; padding: 1px 6px; margin-left: 4px; }
.pc-cell-points { line-height: 1.9; }
.pc-point { display: inline-block; background: var(--primary-soft); color: var(--primary); border-radius: 6px; padding: 3px 9px; margin: 3px 6px 3px 0; font-size: 12px; white-space: normal; }
.pc-table-note { font-size: 12px; color: var(--text-mute); padding: 10px 14px; margin: 0; }
.pc-empty-card { padding: 20px; }

/* AI 对比结果 */
.pc-ai-card { margin-top: 18px; }
.pc-ai-controls { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 4px; }
.pc-ai-selected { display: flex; flex-wrap: wrap; gap: 8px; }
.pc-ai-chip { display: inline-flex; align-items: center; gap: 6px; background: var(--bg-soft); border: 1px solid var(--border); border-radius: 20px; padding: 5px 12px; font-size: 13px; color: var(--text); }
.pc-ai-chip::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--primary); }
.pcai-card { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.pcai-title { background: var(--primary-soft); color: var(--primary); font-weight: 700; font-size: 15px; padding: 12px 16px; }
.pcai-summary { padding: 12px 16px; border-bottom: 1px solid var(--border); background: var(--bg-soft); color: var(--text-soft); font-size: 13px; line-height: 1.8; }
.pcai-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 0; }
.pcai-col { padding: 12px 16px; }
.pcai-col + .pcai-col { border-left: 1px solid var(--border); }
.pcai-col-head { font-weight: 700; margin-bottom: 6px; color: var(--success); }
.pcai-col-head:last-child { color: var(--primary); }
.pcai-col ul { margin: 0; padding-left: 18px; }
.pcai-col li { line-height: 1.7; color: var(--text); }
.pcai-sec { border-top: 1px solid var(--border); padding: 12px 16px; }
.pcai-sec-head { font-weight: 700; margin-bottom: 6px; color: var(--text); }
.pcai-sec ul { margin: 0; padding-left: 18px; }
.pcai-sec li { line-height: 1.7; }
.pcai-para { margin: 0; line-height: 1.7; color: var(--text); }
.pcai-send { border-top: 2px dashed var(--border); padding: 14px 16px; background: var(--bg-soft); }
.pcai-send-head { font-weight: 700; margin-bottom: 8px; display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.pcai-send-text { background: var(--bg-elev); border: 1px solid var(--border); border-radius: 8px; padding: 12px 14px; font-size: 13px; line-height: 1.9; color: var(--text); white-space: normal; }

/* ============ 通用页签（产品对比/推荐、质检分析共用） ============ */
.qa-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin: 12px 0 14px; }
.qa-tab {
  border: 1px solid var(--border); background: var(--bg-elev); color: var(--text-soft);
  border-radius: 999px; padding: 7px 18px; font-size: 13px; font-weight: 600;
  font-family: inherit; cursor: pointer; transition: border-color .15s, color .15s, background .15s;
}
.qa-tab:hover { border-color: var(--primary); color: var(--primary); }
.qa-tab.active { background: var(--primary); border-color: var(--primary); color: #fff; }

/* ============ 产品推荐结果 ============ */
.pc-recommend { padding-bottom: 40px; }
.pc-rec-input textarea {
  width: 100%; box-sizing: border-box; resize: vertical; min-height: 120px; line-height: 1.7;
  border: 1px solid var(--border); background: var(--bg-soft); border-radius: 10px;
  padding: 12px 14px; font-size: 13px; color: var(--text); font-family: inherit; outline: none;
}
.pc-rec-input textarea:focus { border-color: var(--primary); background: var(--bg-elev); }
.pc-rec-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 12px; }
.pc-rec-hint { font-size: 12px; color: var(--text-mute); }
.pc-rec-result { margin-top: 16px; }
.pc-rec-result-card { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.pc-rec-item { display: flex; gap: 14px; padding: 14px 16px; border-bottom: 1px solid var(--border); background: var(--bg-elev); }
.pc-rec-item:last-child { border-bottom: none; }
.pc-rec-thumb { flex: 0 0 90px; width: 90px; height: 90px; background: var(--bg-soft); border-radius: 8px; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.pc-rec-thumb img { max-width: 100%; max-height: 100%; object-fit: contain; }
.pc-rec-main { flex: 1; min-width: 0; }
.pc-rec-name { font-weight: 700; font-size: 14px; color: var(--text); margin-bottom: 4px; }
.pc-rec-reason { font-size: 13px; color: var(--text-soft); line-height: 1.6; margin-bottom: 8px; }
.pc-rec-kps { display: flex; gap: 6px; flex-wrap: wrap; }
.pc-rec-kps span { font-size: 11.5px; color: var(--primary); background: var(--primary-soft); padding: 3px 10px; border-radius: 12px; }
.pc-rec-script { border-top: 2px dashed var(--border); padding: 14px 16px; background: var(--bg-soft); }
.pc-rec-script-head { font-weight: 700; margin-bottom: 8px; display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.pc-rec-script-text { background: var(--bg-elev); border: 1px solid var(--border); border-radius: 8px; padding: 12px 14px; font-size: 13px; line-height: 1.9; color: var(--text); }

@media (max-width: 768px) {
  .pcai-grid { grid-template-columns: 1fr; }
  .pcai-col + .pcai-col { border-left: none; border-top: 1px solid var(--border); }
  .pc-picker { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
}

/* ============ 产品 AI 批量录入弹窗 ============ */
.pai-tip { background: var(--primary-soft); color: var(--primary); padding: 10px 14px; border-radius: 8px; font-size: 13px; line-height: 1.7; margin-bottom: 14px; }
.pai-card { background: var(--bg-soft); border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; margin: 10px 0; }
.pai-check { display: flex; align-items: center; gap: 6px; font-weight: 600; margin-bottom: 6px; }
.pai-stats { font-size: 12px; color: var(--text-mute); margin-bottom: 8px; }
.pai-img { margin-top: 6px; }
.pai-img img { max-width: 140px; max-height: 100px; border-radius: 8px; border: 1px solid var(--border); object-fit: cover; }

/* 多文件上传 + 来源/冲突 */
.pai-file-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.pai-file-label { display: inline-flex; align-items: center; justify-content: center; cursor: pointer; user-select: none; }
.pai-hint { font-size: 12px; color: var(--text-mute); margin: 6px 0 4px; line-height: 1.6; }
.pai-drop-zone { border: 2px dashed var(--border); border-radius: 10px; padding: 14px; text-align: center; color: var(--text-mute); font-size: 13px; background: var(--bg-soft); margin-bottom: 10px; transition: border-color .15s, background .15s; }
.pai-drop-zone.pai-drag { border-color: var(--primary); background: var(--primary-soft); color: var(--primary); }
.pai-file-list { margin-top: 8px; }
.pai-file-empty { color: var(--text-mute); font-size: 13px; padding: 10px 0; margin: 0; }
.pai-file-item { display: flex; align-items: center; gap: 8px; padding: 6px 10px; background: var(--bg-soft); border-radius: 8px; margin: 4px 0; }
.pai-tag { font-size: 11px; padding: 2px 8px; border-radius: 4px; font-weight: 600; }
.pai-tag-img { background: rgba(232, 116, 59, 0.15); color: var(--accent); }
.pai-tag-tbl { background: var(--primary-soft); color: var(--primary); }
.pai-fname { flex: 1; font-size: 13px; color: var(--text); word-break: break-all; }
.pai-file-count { font-size: 12px; color: var(--text-mute); margin: 6px 0 0; }
.pai-summary { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 10px; padding: 8px 10px; background: var(--bg-soft); border-radius: 8px; }
.pai-source-chip { font-size: 12px; padding: 4px 10px; background: var(--bg-elev); border: 1px solid var(--border); border-radius: 999px; color: var(--text); }
.pai-source-chip em { font-style: normal; color: var(--text-mute); margin-left: 4px; }
.pai-mini-source { display: inline-block; font-size: 11px; padding: 1px 6px; background: var(--primary-soft); color: var(--primary); border-radius: 4px; margin-right: 4px; }
.pai-conflict-banner { background: rgba(232, 116, 59, 0.1); border: 1px solid var(--accent); color: var(--accent); padding: 10px 14px; border-radius: 8px; margin: 10px 0; font-size: 13px; }
.pai-conflicts { border-top: 2px dashed var(--accent); margin-top: 8px; padding-top: 10px; }
.pai-conflicts-head { font-weight: 700; color: var(--accent); margin-bottom: 6px; font-size: 13px; }
.pai-conflict-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; align-items: center; margin-bottom: 6px; }
.pai-conflict-key { min-width: 120px; font-weight: 600; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pai-conflict-row select { width: 100%; min-width: 0; max-width: 100%; }
.pai-conflict-tag { font-size: 11px; padding: 2px 8px; background: var(--accent); color: #fff; border-radius: 4px; font-weight: 600; white-space: nowrap; }

/* ---------- 产品功能配置对比表（类 WPS 图片样式） ---------- */
.pc-config-card { background: #fff; border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); margin-bottom: 18px; }
.pc-config-header { background: linear-gradient(135deg, #b08d57 0%, #c9a86c 100%); color: #fff; text-align: center; padding: 22px 16px; }
.pc-config-title { font-size: 22px; font-weight: 800; letter-spacing: 1px; margin-bottom: 6px; }
.pc-config-sub { font-size: 14px; opacity: 0.95; }
.pc-config-body { padding: 16px; background: #fff; }
.pc-config-table { width: 100%; border-collapse: collapse; font-size: 14px; table-layout: fixed; }
.pc-config-table thead th.pc-th-prod { width: auto; min-width: 120px; word-break: break-word; }
.pc-config-table th, .pc-config-table td { border: 1px solid #e8e0d5; padding: 12px 10px; text-align: center; vertical-align: middle; }
.pc-config-table thead th { background: #f8f4ee; color: #5d4a30; font-weight: 700; }
.pc-config-table thead th.pc-th-feature { width: 200px; min-width: 200px; }
.pc-config-table tbody th { background: #fdfbf7; color: #5d4a30; }
.pc-config-table tbody th.pc-feature-name { text-align: left; font-weight: 500; color: var(--text); padding-left: 16px; white-space: nowrap; }
.pc-config-table tbody td.pc-check-cell { font-size: 18px; color: #b08d57; font-weight: 700; }
.pc-rem-btn { margin-top: 6px; width: 22px; height: 22px; line-height: 20px; border: 1px solid var(--border); border-radius: 50%; background: #fff; color: var(--text-mute); font-size: 12px; cursor: pointer; transition: all .12s; }
.pc-rem-btn:hover { border-color: var(--danger, #e5484d); color: var(--danger, #e5484d); background: var(--danger-soft, #fde8e8); }
.pc-config-table tbody td.hl { background: rgba(232, 116, 59, 0.08); color: var(--accent); }
.pc-config-table .pc-diff-tag { display: inline-block; vertical-align: middle; font-style: normal; font-size: 11px; background: var(--accent); color: #fff; border-radius: 4px; padding: 1px 6px; margin-right: 8px; white-space: nowrap; }
.pc-group-row .pc-group-head { background: #f3eee6; color: #5d4a30; font-weight: 700; text-align: left; padding-left: 16px; font-size: 15px; }
.pc-empty-row { text-align: center; color: var(--text-mute); padding: 18px; }
.pc-config-note { font-size: 12px; color: var(--text-mute); padding: 10px 16px; margin: 0; background: #fdfbf7; border-top: 1px solid var(--border); }
.pc-basic-section { margin-top: 16px; padding-top: 16px; border-top: 1px solid #eee5d7; }
.pc-basic-section-title { font-size: 15px; font-weight: 700; color: #5d4a30; margin-bottom: 12px; }
.pc-basic-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.pc-basic-col { background: #fdfbf7; border: 1px solid #eee5d7; border-radius: 10px; padding: 12px; }
.pc-basic-col-head { font-weight: 700; color: var(--text); margin-bottom: 8px; font-size: 13px; }
.pc-basic-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.pc-basic-tag { display: inline-block; background: #fff; border: 1px solid #e0d6c6; border-radius: 6px; padding: 3px 8px; font-size: 12px; color: var(--text); }
.pc-basic-none { color: var(--text-mute); font-size: 12px; }

/* 适配暗黑主题 */
[data-theme="dark"] .pc-config-card { background: var(--bg-elev); border-color: var(--border); }
[data-theme="dark"] .pc-config-table th, [data-theme="dark"] .pc-config-table td { border-color: var(--border); }
[data-theme="dark"] .pc-config-table thead th, [data-theme="dark"] .pc-config-table tbody th { background: var(--bg-soft); color: var(--text); }
[data-theme="dark"] .pc-group-row .pc-group-head, [data-theme="dark"] .pc-config-note, [data-theme="dark"] .pc-basic-section, [data-theme="dark"] .pc-basic-col { background: var(--bg-soft); border-color: var(--border); }
[data-theme="dark"] .pc-basic-tag { background: var(--bg-elev); border-color: var(--border); color: var(--text); }

/* ============ SOP 左列表 + 右详情 ============ */
.sop-view { display: block; }
.sop-layout {
  display: flex;
  gap: 16px;
  height: calc(100vh - 210px);
  min-height: 440px;
}
.sop-list {
  flex: 0 0 340px;
  display: flex; flex-direction: column;
  background: var(--bg-elev);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
}
.sop-list-head { padding: 16px 18px; border-bottom: 1px solid var(--line); }
.sop-list-head h3 { font-size: 16px; font-weight: 800; color: var(--text); margin: 0 0 12px; }
.sop-list-head h3 span {
  font-size: 12px; font-weight: 700; color: var(--primary);
  background: var(--bg-soft); padding: 2px 9px; border-radius: 9px; margin-left: 8px;
}
.sop-search {
  width: 100%; box-sizing: border-box;
  border: 1.5px solid var(--border); background: var(--bg-soft);
  border-radius: 10px; padding: 8px 12px; font-size: 13px; color: var(--text);
  font-family: inherit; outline: none; transition: border-color .15s, background .15s;
}
.sop-search:focus { border-color: var(--primary); background: var(--bg-elev); }
.sop-list-items { flex: 1; overflow-y: auto; padding: 12px; }
.sop-pcard {
  padding: 13px 14px; border-radius: 12px; border: 1.5px solid var(--border);
  cursor: pointer; transition: background .15s, border-color .15s, transform .12s;
  background: var(--bg-elev); margin-bottom: 10px;
}
.sop-pcard:hover { background: var(--bg-soft); }
.sop-pcard.active { background: var(--bg-soft); border-color: var(--primary); position: relative; }
.sop-pcard.active::before {
  content: ""; position: absolute; left: 0; top: 12px; bottom: 12px; width: 4px;
  border-radius: 2px; background: var(--primary-grad);
}
.sop-pcard-top { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.sop-pcard-top .dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.sop-pcard-top .mer { font-size: 11.5px; color: var(--text-mute); font-weight: 600; }
.sop-pcard-top .badge { margin-left: auto; font-size: 10.5px; font-weight: 700; color: var(--primary); background: var(--bg-soft); padding: 2px 8px; border-radius: 8px; }
.sop-pcard h4 { font-size: 14px; font-weight: 800; color: var(--text); margin: 0 0 6px; line-height: 1.4; }
.sop-pcard p { font-size: 12px; color: var(--text-mute); line-height: 1.55; margin: 0 0 10px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sop-pcard-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.sop-pcard-tags span { font-size: 10.5px; color: var(--text-mute); background: var(--bg-soft); padding: 2px 8px; border-radius: 8px; }
.sop-detail { flex: 1; display: flex; flex-direction: column; background: var(--bg-elev); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.sop-detail-head { flex: 0 0 auto; background: var(--bg-elev); border-bottom: 1px solid var(--line); padding: 18px 22px; }
.sop-dh-top { display: flex; align-items: center; gap: 12px; }
.sop-dh-top h2 { font-size: 17px; font-weight: 800; color: var(--text); margin: 0; flex: 1; }
.sop-edit-btn { border: 1px solid var(--border); background: var(--bg-soft); color: var(--text-soft);
  border-radius: 10px; padding: 6px 12px; cursor: pointer; font-size: 12.5px; font-weight: 600; font-family: inherit; }
.sop-edit-btn:hover { border-color: var(--primary); color: var(--primary); }
.sop-dh-row { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.sop-dh-row .dot { width: 8px; height: 8px; border-radius: 50%; }
.sop-dh-row .mer { font-size: 12px; color: var(--text-mute); font-weight: 600; }
.sop-dh-row .tag { font-size: 11px; font-weight: 700; color: var(--primary); background: var(--bg-soft); padding: 3px 9px; border-radius: 8px; }
.sop-dh-row .badge { margin-left: auto; font-size: 12px; font-weight: 600; color: var(--text-mute); background: var(--bg-soft); padding: 5px 14px; border-radius: 14px; }
.sop-dh-row .mini-copy { margin-top: 0; }
.sop-dh-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.sop-dh-tags span { font-size: 11px; color: var(--text-mute); background: var(--bg-soft); padding: 2px 9px; border-radius: 8px; }
.sop-detail-body { flex: 1; overflow-y: auto; padding: 18px 22px 28px; }
.sop-step {
  background: var(--bg-elev); border: 1px solid var(--border); border-radius: var(--radius);
  padding: 15px 16px; margin-bottom: 12px; box-shadow: var(--shadow-sm);
  display: flex; gap: 15px;
}
.sop-step-num {
  flex: 0 0 30px; width: 30px; height: 30px; border-radius: 50%;
  background: var(--primary-grad); color: #fff; font-weight: 800; font-size: 14px;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 10px rgba(99, 87, 232, .25); flex-shrink: 0;
}
.sop-step-main { flex: 1; min-width: 0; }
.sop-step-main h3 { font-size: 14.5px; font-weight: 800; color: var(--text); margin: 0 0 6px; }
.sop-step-note { font-size: 12.5px; color: var(--text-soft); line-height: 1.6; margin-bottom: 10px; }
.sop-step-note.empty { color: var(--text-mute); }
.sop-step-note b { color: var(--text); font-weight: 700; }
.sop-step-script { background: var(--bg-soft); border-radius: 10px; padding: 10px 12px; }
.sop-step-script > b { font-size: 11px; font-weight: 700; color: var(--primary); display: block; margin-bottom: 4px; }
.sop-script-text { font-size: 12.5px; color: var(--text); line-height: 1.6; white-space: pre-wrap; word-break: break-word; }
.sop-step-script .mini-copy { margin-top: 8px; }
.sop-end { display: flex; align-items: center; gap: 8px; color: var(--success); font-weight: 700; font-size: 13px; margin-top: 4px; }
.sop-end .ed { width: 28px; height: 28px; border-radius: 50%; background: var(--success-soft); display: flex; align-items: center; justify-content: center; color: var(--success); }
.sop-empty { padding: 40px 20px; text-align: center; color: var(--text-mute); font-size: 13px; }

@media (max-width: 860px) {
  .sop-layout { flex-direction: column; height: auto; }
  .sop-list { flex: none; max-height: 38vh; }
}

/* ============ FAQ 话术库：左分类树 + 右卡片 ============ */
.faq-view { display: block; }
.faq-layout { display: flex; gap: 16px; height: calc(100vh - 210px); min-height: 440px; }
.faq-list { flex: 0 0 180px !important; display: flex; flex-direction: column; background: var(--bg-elev); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.faq-list-head { padding: 12px 14px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; }
.faq-list-head h3 { font-size: 16px; font-weight: 800; color: var(--text); margin: 0; }
.faq-list-head .mini-btn { padding: 5px 10px; font-size: 12px; background: var(--primary); color: #fff; border-color: var(--primary); }
.faq-list-head .mini-btn:hover { background: var(--primary-hover, var(--primary)); filter: brightness(1.05); }
.faq-count { font-size: 12px; font-weight: 700; color: var(--primary); background: var(--bg-soft); padding: 2px 9px; border-radius: 9px; margin-left: 8px; }
.faq-search-wrap { position: relative; margin: 10px 12px 6px; flex: 0 0 auto; }
.faq-search-wrap .mini-input { width: 100%; margin: 0; padding-right: 28px; box-sizing: border-box; }
.faq-search-clear { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; line-height: 18px; text-align: center; border: none; border-radius: 50%; background: var(--text-mute); color: #fff; font-size: 11px; cursor: pointer; opacity: .7; }
.faq-search-clear:hover { opacity: 1; }
.faq-tree-node.active { background: var(--primary-soft); color: var(--primary); font-weight: 700; box-shadow: inset 3px 0 0 var(--primary); }
.faq-list-items { flex: 1; overflow-y: auto; padding: 6px 8px 10px; }
.faq-tree-node { display: flex; align-items: center; gap: 6px; padding: 8px 9px; border-radius: 10px; cursor: pointer; color: var(--text-soft); font-size: 13.5px; transition: background .12s; user-select: none; }
.faq-tree-node:hover { background: var(--bg-soft); }
.faq-tree-node.active { background: var(--primary-soft); color: var(--primary); font-weight: 700; }
.faq-tree-node.has-children { font-weight: 600; }
.faq-tree-caret { width: 14px; font-size: 10px; color: var(--text-mute); flex-shrink: 0; text-align: center; }
.faq-tree-label { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.faq-tree-count { font-size: 11px; color: var(--text-mute); background: var(--bg-soft); padding: 1px 7px; border-radius: 7px; flex-shrink: 0; }
.faq-tree-node.active .faq-tree-count { color: var(--primary); }
.faq-tree-node.sub { padding-left: 22px; font-size: 13px; }
.faq-tree-node.sub .faq-tree-label::before { content: "└"; color: var(--text-mute); margin-right: 6px; }
.faq-tree-ops { display: none; gap: 2px; flex-shrink: 0; }
.faq-tree-node:hover .faq-tree-ops { display: flex; }
.faq-op { border: none; background: var(--bg-soft); color: var(--text-mute); width: 22px; height: 22px; border-radius: 6px; cursor: pointer; font-size: 12px; line-height: 1; display: flex; align-items: center; justify-content: center; transition: background .12s, color .12s; }
.faq-op:hover { background: var(--primary-soft); color: var(--primary); }
.faq-op.del:hover { background: var(--danger-soft, #fde8e8); color: var(--danger, #e5484d); }
.faq-detail { flex: 1; display: flex; flex-direction: column; background: var(--bg-elev); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.faq-detail-head { flex: 0 0 auto; padding: 18px 22px; border-bottom: 1px solid var(--line); }
.faq-dh-row { display: flex; align-items: center; gap: 12px; }
.faq-dh-row h2 { font-size: 17px; font-weight: 800; color: var(--text); margin: 0; flex: 1; }
.faq-detail-body { flex: 1; overflow-y: auto; padding: 18px 22px 28px; }

.faq-mgr { display: flex; flex-direction: column; gap: 14px; }
.faq-mgr-list { max-height: 56vh; overflow-y: auto; display: flex; flex-direction: column; gap: 6px; }
.faq-mgr-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 10px; border-radius: 9px; background: var(--bg-soft); }
.faq-mgr-row.sub { margin-left: 22px; background: transparent; padding-left: 6px; }
.faq-mgr-row.editing { background: var(--primary-soft); }
.faq-mgr-name { font-size: 14px; color: var(--text); flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.faq-mgr-ops { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.faq-mgr-ops .mini-btn { padding: 4px 9px; font-size: 12px; }
.faq-mgr-ops .mini-btn.danger { color: var(--danger, #e5484d); border-color: rgba(226,75,74,0.35); }
.faq-mgr-ops .mini-btn.danger:hover { background: var(--danger-soft, #fde8e8); }
.faq-mgr-input { flex: 1; min-width: 0; }
.faq-mgr-indent { color: var(--text-mute); margin-right: 4px; font-size: 12px; }
.faq-mgr-foot { display: flex; justify-content: flex-start; }

@media (max-width: 860px) {
  .faq-layout { flex-direction: column; height: auto; }
  .faq-list { flex: none; max-height: 38vh; }
}

/* ============ AI 用量统计视图 ============ */
.ai-usage-view { padding: 0 26px 30px; box-sizing: border-box; }
.ai-usage-body { display: flex; flex-direction: column; gap: 22px; }

.aiu-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.aiu-card {
  background: var(--bg-elev);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 16px 18px;
  box-shadow: 0 2px 10px rgba(99,87,232,0.05);
}
.aiu-cn { font-size: 12.5px; color: var(--text-mute); margin-bottom: 8px; }
.aiu-cv { font-size: 26px; font-weight: 800; color: var(--primary); letter-spacing: .5px; }

.aiu-section { background: var(--bg-elev); border: 1px solid var(--border); border-radius: 14px; padding: 16px 18px; }
.aiu-section h3 { margin: 0 0 12px; font-size: 14px; color: var(--text); font-weight: 700; }
.aiu-section h3 + .aiu-tags { margin-top: -4px; }
.aiu-section h3:not(:first-child) { margin-top: 16px; }

.aiu-merchants { display: flex; flex-direction: column; gap: 12px; }
.aiu-row { display: grid; grid-template-columns: 160px 1fr auto; align-items: center; gap: 12px; }
.aiu-name { font-size: 13px; color: var(--text-soft); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.aiu-bar { height: 12px; background: var(--bg-soft); border-radius: 8px; overflow: hidden; }
.aiu-bar > span { display: block; height: 100%; border-radius: 8px; background: var(--primary-grad); }
.aiu-val { font-size: 12px; color: var(--text-mute); white-space: nowrap; font-variant-numeric: tabular-nums; }

.aiu-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 4px; }
.aiu-tag {
  display: inline-block;
  font-size: 12px;
  color: var(--primary);
  background: var(--bg-soft);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 5px 12px;
  font-variant-numeric: tabular-nums;
}

.aiu-tip { font-size: 12px; color: var(--text-mute); line-height: 1.6; margin: 0; padding: 12px 14px; background: var(--accent-soft); border-radius: 10px; }
.ai-usage-empty, .ai-usage-loading { font-size: 13px; color: var(--text-mute); padding: 20px; text-align: center; }

@media (max-width: 860px) {
  .aiu-cards { grid-template-columns: repeat(2, 1fr); }
  .aiu-row { grid-template-columns: 110px 1fr; }
  .aiu-row .aiu-val { grid-column: 1 / -1; }
}

/* ============ 模拟接待考核 ============ */
.sim-view { padding: 0 26px 30px; box-sizing: border-box; display: flex; flex-direction: column; gap: 18px; }
.sim-view > .manage-page-head { margin-bottom: 0; }
.sim-loading, .sim-empty { font-size: 13px; color: var(--text-mute); padding: 22px; text-align: center; }

.sim-practice-card h3, .sim-task-card h3 { margin: 0 0 14px; font-size: 14px; color: var(--text); }
.sim-practice-card .mf-row, .sim-admin-form .mf-row { margin-bottom: 10px; }
.sim-practice-card .mini-input, .sim-admin-form .mini-input { max-width: 320px; }

.sim-task { display: flex; align-items: center; gap: 12px; padding: 12px 4px; border-bottom: 1px solid var(--border); }
.sim-task:last-child { border-bottom: none; }
.sim-task-main { flex: 1; min-width: 0; }
.sim-task-title { font-size: 13.5px; font-weight: 600; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sim-task-meta { font-size: 12px; color: var(--text-mute); margin-top: 3px; }
.sim-task-status { font-size: 12px; color: var(--text-mute); background: var(--bg-soft); padding: 4px 10px; border-radius: 999px; flex-shrink: 0; }
.sim-task.ok .sim-task-status { color: #fff; background: var(--primary-grad); }
.sim-task.run .sim-task-status { color: var(--accent); background: var(--accent-soft); }

.sim-scene-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; background: var(--bg-elev); border: 1px solid var(--border); border-radius: 14px; padding: 12px 16px; }
.sim-buyer { display: flex; align-items: center; gap: 10px; min-width: 0; }
.sim-buyer b { display: block; font-size: 13.5px; color: var(--text); }
.sim-buyer small { display: block; font-size: 12px; color: var(--text-mute); margin-top: 2px; }
.sim-round { font-size: 12px; color: var(--text-mute); background: var(--bg-soft); padding: 5px 12px; border-radius: 999px; flex-shrink: 0; }

.sim-avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--bg-soft); color: var(--text-soft); display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; flex-shrink: 0; }
.sim-avatar.lg { width: 42px; height: 42px; font-size: 16px; background: var(--primary-grad); color: #fff; }

.sim-chat { background: var(--bg-elev); border: 1px solid var(--border); border-radius: 14px; padding: 16px; display: flex; flex-direction: column; gap: 12px; max-height: 46vh; overflow-y: auto; }
.sim-msg { display: flex; gap: 10px; align-items: flex-start; }
.sim-msg.agent { flex-direction: row-reverse; }
.sim-bubble { max-width: 76%; background: var(--bg-soft); border: 1px solid var(--border); border-radius: 12px 12px 12px 4px; padding: 9px 13px; font-size: 13px; line-height: 1.7; color: var(--text); white-space: pre-wrap; word-break: break-word; }
.sim-msg.agent .sim-bubble { background: var(--primary-grad); border: none; color: #fff; border-radius: 12px 12px 4px 12px; }

.sim-checks { display: flex; flex-direction: column; gap: 8px; }
.sim-check { font-size: 12px; background: var(--bg-elev); border: 1px solid var(--border); border-radius: 10px; padding: 9px 13px; color: var(--text-soft); line-height: 1.7; }
.sim-check b { color: var(--text); margin-right: 6px; }
.sim-hits { color: var(--text-success, #1d9e75); }
.sim-misses { color: var(--accent); }
.sim-comment { color: var(--text-mute); }

.sim-input-row { display: flex; gap: 10px; }
.sim-input-row .mini-input { flex: 1; }

.sim-score-card { display: flex; gap: 24px; align-items: center; background: var(--bg-elev); border: 1px solid var(--border); border-radius: 14px; padding: 18px 20px; flex-wrap: wrap; }
.sim-score-total { text-align: center; flex-shrink: 0; }
.sim-score-num { font-size: 46px; font-weight: 800; color: var(--primary); line-height: 1; }
.sim-score-label { font-size: 12px; color: var(--text-mute); margin-top: 6px; }
.sim-dims { flex: 1; min-width: 240px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px 20px; }
.sim-dim-head { display: flex; justify-content: space-between; font-size: 12px; color: var(--text-soft); margin-bottom: 5px; }
.sim-dim-head b { color: var(--text); }
.sim-dim-bar { height: 8px; background: var(--bg-soft); border-radius: 6px; overflow: hidden; }
.sim-dim-bar > span { display: block; height: 100%; background: var(--primary-grad); border-radius: 6px; }

.sim-summary { font-size: 13px; color: var(--text-soft); line-height: 1.8; margin: 0; white-space: pre-wrap; }

.sim-result { display: flex; align-items: center; gap: 12px; padding: 12px 4px; border-bottom: 1px solid var(--border); cursor: pointer; }
.sim-result:last-child { border-bottom: none; }
.sim-result:hover .sim-task-title { color: var(--primary); }
.sim-result-score { font-size: 20px; font-weight: 800; flex-shrink: 0; }
.sim-result-score.pass { color: var(--text-success, #1d9e75); }
.sim-result-score.fail { color: var(--accent); }

.sim-modal-score { font-size: 14px; font-weight: 600; color: var(--text); margin-bottom: 12px; }
.sim-modal-score b { font-size: 26px; color: var(--primary); margin-right: 6px; }
.sim-modal-dims { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 18px; margin-bottom: 12px; }
.sim-modal-summary { font-size: 13px; color: var(--text-soft); line-height: 1.7; margin: 0 0 12px; white-space: pre-wrap; }
.sim-modal-checks { max-height: 34vh; overflow-y: auto; display: flex; flex-direction: column; gap: 8px; }

@media (max-width: 860px) {
  .sim-view { padding: 0 14px 24px; }
  .sim-dims, .sim-modal-dims { grid-template-columns: 1fr; }
  .sim-score-card { flex-direction: column; text-align: center; }
}

/* ============ FAQ 左分类 + 右话术卡片 ============ */
.faq-layout { grid-column: 1 / -1; display: flex; gap: 18px; align-items: stretch; }
.faq-cats { width: 180px; flex-shrink: 0; background: var(--bg-elev); border: 1px solid var(--border); border-radius: 14px; padding: 10px 8px; position: sticky; top: 12px; max-height: calc(100vh - 120px); overflow-y: auto; align-self: flex-start; }
.faq-cats-head { display: flex; align-items: center; justify-content: space-between; font-size: 12px; color: var(--text-mute); padding: 4px 10px 10px; font-weight: 600; }
.faq-add-cat { width: 22px; height: 22px; border-radius: 6px; border: 1px solid var(--border); background: var(--bg-soft); color: var(--primary); font-size: 15px; line-height: 1; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; font-weight: 600; font-family: inherit; padding: 0; }
.faq-add-cat:hover { background: var(--primary-grad); color: #fff; border-color: transparent; }
.faq-import-btn { width: auto; height: 22px; padding: 0 8px; font-size: 11px; font-weight: 600; white-space: nowrap; }
.faq-cats-head .faq-add-cat + .faq-import-btn { margin-left: 6px; }
.faq-cat { display: flex; justify-content: space-between; align-items: center; padding: 9px 12px; border-radius: 9px; font-size: 13px; color: var(--text-soft); cursor: pointer; margin-bottom: 3px; transition: background .15s; user-select: none; }
.faq-cat:hover { background: var(--bg-soft); color: var(--text); }
.faq-cat.active { background: var(--primary-grad); color: #fff; font-weight: 600; }
.faq-cat em { font-style: normal; font-size: 11.5px; color: var(--text-mute); background: var(--bg-soft); padding: 1px 8px; border-radius: 999px; }
.faq-cat.active em { background: rgba(255,255,255,.22); color: #fff; }
.faq-cat.unc { color: var(--text-mute); font-style: italic; }
.faq-list { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 14px; }

.note-box { margin-top: 10px; padding: 9px 12px; background: rgba(226,75,74,0.08); border: 1px solid rgba(226,75,74,0.25); border-radius: 9px; font-size: 13px; color: #A32D2D; line-height: 1.7; }
.note-box b { color: #791F1F; font-weight: 600; }

.faq-cat-badge { display: inline-block; margin-top: 10px; font-size: 11.5px; color: var(--primary); background: var(--bg-soft); border: 1px solid var(--border); padding: 3px 10px; border-radius: 999px; }

@media (max-width: 860px) {
  .faq-layout { flex-direction: column; }
  .faq-cats { width: auto; position: static; max-height: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 10px; }
  .faq-cats-head { display: none; }
  .faq-cat { width: auto; margin: 0; padding: 5px 10px; font-size: 12px; }
}

/* ============ 质检中心 ============ */
.qa-report-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.qa-score-row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-bottom: 14px; }
.qa-dim { background: var(--bg-soft); border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; }
.qa-dim.big { background: var(--primary-grad); border: none; }
.qa-dim.big .qa-dim-name, .qa-dim.big .qa-dim-num { color: #fff; }
.qa-dim-name { font-size: 11.5px; color: var(--text-mute); margin-bottom: 4px; }
.qa-dim-num { font-size: 22px; font-weight: 800; color: var(--primary); line-height: 1.1; }
.qa-dim-bar { height: 6px; background: var(--bg-elev); border-radius: 4px; overflow: hidden; margin-top: 6px; }
.qa-dim-bar > span { display: block; height: 100%; background: var(--primary-grad); border-radius: 4px; }
.qa-dim.big .qa-dim-bar > span { background: rgba(255,255,255,.6); }

.qa-section { margin-top: 16px; }
.qa-section h4 { margin: 0 0 10px; font-size: 13.5px; color: var(--text); }
.qa-summary { font-size: 13px; color: var(--text-soft); line-height: 1.8; margin: 0; white-space: pre-wrap; }
.qa-common { margin: 0; padding-left: 18px; font-size: 13px; color: var(--text-soft); line-height: 1.8; }
.qa-common li { margin-bottom: 4px; }

.qa-sg { display: flex; gap: 10px; padding: 10px 4px; border-bottom: 1px solid var(--border); align-items: flex-start; }
.qa-sg:last-child { border-bottom: none; }
.qa-sg-check { flex-shrink: 0; display: flex; align-items: center; gap: 5px; font-size: 12px; margin-top: 2px; }
.qa-sg-mod { font-size: 10.5px; font-weight: 600; padding: 2px 8px; border-radius: 999px; }
.qa-sg-mod.mod-faq { background: #EFEDFE; color: var(--primary); }
.qa-sg-mod.mod-process { background: var(--accent-soft); color: var(--accent); }
.qa-sg-mod.mod-training { background: var(--success-soft, #E1F5EE); color: var(--success, #0F6E56); }
.qa-sg-mod.mod-none { background: var(--accent-soft); color: #A32D2D; }
.qa-sg-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.qa-sg-title { font-size: 13.5px; font-weight: 600; color: var(--text); }
.qa-sg-main small { font-size: 12px; color: var(--text-mute); line-height: 1.6; }
.qa-sg-answer { font-size: 13px; color: var(--text-soft); background: var(--bg-soft); border-radius: 8px; padding: 7px 10px; line-height: 1.7; }
.qa-needinfo { font-size: 12.5px; color: #A32D2D; background: rgba(226,75,74,.08); border: 1px solid rgba(226,75,74,.25); border-radius: 8px; padding: 7px 10px; line-height: 1.6; }
.qa-committed { font-size: 11px; color: var(--success, #0F6E56); font-weight: 600; }
.qa-commit-row { margin-top: 10px; display: flex; align-items: center; gap: 10px; }
.qa-hint { font-size: 12px; color: var(--text-mute); }

.qa-dialog { border: 1px solid var(--border); border-radius: 10px; padding: 10px 13px; margin-bottom: 8px; background: var(--bg-elev); }
.qa-dialog-head { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }

/* ============ 质检中心：内部功能（KPI / 维度 / 建议 / 风险 / 经营表） ============ */
.qa-kpi-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 10px; margin: 12px 0; }
.qa-kpi { background: var(--bg-soft); border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; text-align: center; }
.qa-kpi-v { font-size: 22px; font-weight: 800; line-height: 1.2; }
.qa-kpi-l { font-size: 11.5px; color: var(--text-mute); margin-top: 4px; }

.qa-report-top { display: flex; gap: 20px; align-items: center; flex-wrap: wrap; margin-bottom: 16px; }
.qa-total { font-size: 40px; font-weight: 800; line-height: 1; min-width: 92px; text-align: center; }
.qa-total small { display: block; font-size: 11.5px; color: var(--text-mute); font-weight: 600; margin-top: 6px; }
.qa-dims { flex: 1; display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; min-width: 240px; }
.qa-dim-head { display: flex; justify-content: space-between; font-size: 12px; margin-bottom: 5px; color: var(--text-soft); }
.qa-dim-track { height: 6px; background: var(--bg-soft); border-radius: 4px; overflow: hidden; }
.qa-dim-fill { height: 100%; border-radius: 4px; transition: width .3s; }

.qa-sec { margin-top: 18px; }
.qa-sec h4 { margin: 0 0 8px; font-size: 13.5px; color: var(--text); }
.qa-warn { color: var(--danger); font-size: 12.5px; background: rgba(231,72,79,.07); border-radius: 8px; padding: 8px 10px; }
.qa-score { font-weight: 800; }

.qa-tag { display: inline-block; font-size: 11px; padding: 2px 8px; border-radius: 20px; background: var(--bg-soft); color: var(--text-mute); margin-right: 6px; }
.qa-tag.danger { background: rgba(231,72,79,.12); color: var(--danger); }
.qa-tag.warn { background: rgba(237,122,77,.14); color: var(--accent); }
.qa-tag.good { background: rgba(46,158,107,.12); color: var(--success); }

.qa-sug-list { display: flex; flex-direction: column; gap: 8px; }
.qa-sug { display: flex; gap: 10px; align-items: flex-start; border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; background: var(--bg-elev); cursor: pointer; }
.qa-sug.done { opacity: .62; background: var(--success-soft); }
.qa-sug.off { opacity: .5; text-decoration: line-through; }
.qa-sug-body { flex: 1; min-width: 0; }
.qa-sug-title { font-size: 13px; font-weight: 700; margin-bottom: 4px; }
.qa-sug-line { font-size: 12px; color: var(--text-soft); line-height: 1.6; }
.qa-sug-need { font-size: 11.5px; color: var(--accent); margin-top: 4px; }
.qa-sug-actions { display: flex; gap: 10px; margin-top: 10px; }

.qa-d-issue { font-size: 12.5px; color: var(--text-soft); margin: 4px 0; line-height: 1.6; }
.qa-evidence { font-size: 11.5px; color: var(--text-mute); background: var(--bg-soft); border-radius: 6px; padding: 4px 8px; margin-top: 3px; }
.qa-empty-inline { font-size: 12px; color: var(--text-mute); }
.qa-dialog.redline { border-color: rgba(231,72,79,.45); background: rgba(231,72,79,.04); }

.qa-risk-item { border: 1px solid var(--border); border-left: 3px solid var(--text-mute); border-radius: 8px; padding: 10px 12px; margin-bottom: 8px; background: var(--bg-elev); }
.qa-risk-item.high { border-left-color: var(--danger); }
.qa-risk-item.warn { border-left-color: var(--accent); }
.qa-risk-head { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; font-size: 13px; }
.qa-risk-detail { font-size: 12px; color: var(--text-mute); line-height: 1.6; }

.qa-biz-scroll { overflow-x: auto; }
.qa-biz-tb, .qa-cmp-tb, .qa-drill-tb, .qa-trend-tb { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.qa-biz-tb th, .qa-cmp-tb th, .qa-drill-tb th, .qa-trend-tb th { text-align: left; padding: 8px 10px; background: var(--bg-soft); color: var(--text-mute); font-weight: 600; white-space: nowrap; }
.qa-biz-tb td, .qa-cmp-tb td, .qa-drill-tb td, .qa-trend-tb td { padding: 8px 10px; border-top: 1px solid var(--border); }
.qa-cmp-tb th[data-sort] { cursor: pointer; user-select: none; }
.qa-cmp-tb th[data-sort]:hover { color: var(--primary); }
.qa-drill-tb tbody tr[data-drill] { cursor: pointer; }
.qa-drill-tb tbody tr[data-drill]:hover { background: var(--bg-soft); }
.qa-drill-row { padding: 6px 0; border-top: 1px dashed var(--border); }

.qa-problem-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; margin-top: 12px; }
.qa-problem-card { border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; background: var(--bg-elev); display: flex; justify-content: space-between; gap: 10px; }
.qa-pc-text { font-size: 12.5px; color: var(--text-soft); line-height: 1.6; }
.qa-pc-count { font-size: 12px; font-weight: 700; color: var(--accent); white-space: nowrap; }

.qa-sum-item { border: 1px solid var(--border); border-radius: 8px; padding: 8px 11px; margin-bottom: 7px; font-size: 12.5px; background: var(--bg-elev); }
.qa-sum-item div { color: var(--text-mute); font-size: 12px; margin-top: 3px; line-height: 1.6; }
.qa-rank-block { margin-bottom: 10px; font-size: 12.5px; }
.qa-rank-block ol { margin: 4px 0 0 18px; color: var(--text-soft); }

.qa-hist-item { display: flex; justify-content: space-between; align-items: center; gap: 12px; cursor: pointer; }
.qa-hist-item:hover { background: var(--bg-soft); }
.qa-hist-main { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.qa-hist-meta { font-size: 11.5px; color: var(--text-mute); }
.qa-hist-time { font-size: 11.5px; color: var(--text-mute); white-space: nowrap; }
.qa-dlg-idx { font-size: 12.5px; font-weight: 700; color: var(--text); }
.qa-dlg-score { font-size: 13px; font-weight: 800; padding: 1px 8px; border-radius: 999px; }
.qa-dlg-score.high { color: #0F6E56; background: #E1F5EE; }
.qa-dlg-score.mid { color: var(--accent); background: var(--accent-soft); }
.qa-dlg-score.low { color: #A32D2D; background: #FCEBEB; }
.qa-redline { font-size: 11px; color: #A32D2D; background: #FCEBEB; padding: 1px 8px; border-radius: 999px; font-weight: 700; }
.qa-dlg-preview { font-size: 12px; color: var(--text-mute); margin-bottom: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.qa-hl { font-size: 12px; color: #0F6E56; line-height: 1.6; }
.qa-issue { font-size: 12.5px; color: var(--text-soft); line-height: 1.6; margin-top: 4px; }
.qa-issue-type { display: inline-block; font-size: 10.5px; font-weight: 700; color: #A32D2D; background: #FCEBEB; padding: 1px 7px; border-radius: 999px; margin-right: 6px; }
.qa-issue small { display: block; color: var(--text-mute); }
.qa-noissue { font-size: 12px; color: #0F6E56; }
.qa-comment { font-size: 12px; color: var(--text-mute); margin-top: 6px; }
.qa-empty { font-size: 13px; color: var(--text-mute); padding: 12px; }

@media (max-width: 860px) {
  .qa-score-row { grid-template-columns: repeat(2, 1fr); }
}

/* ============ 业务配置中心 ============ */
.config-tabs { display: flex; gap: 6px; flex-wrap: wrap; padding: 0 0 14px; border-bottom: 1px solid var(--border); margin-bottom: 16px; }
.ctab { border: 1px solid var(--border); background: var(--bg-soft); color: var(--text-soft); padding: 7px 16px; border-radius: 999px; font-size: 13px; cursor: pointer; transition: all .15s; }
.ctab:hover { border-color: var(--primary); color: var(--primary); }
.ctab.active { background: var(--primary-grad); border-color: transparent; color: #fff; font-weight: 600; }

.cfg-summary { font-size: 12.5px; border-radius: 10px; padding: 9px 13px; margin-bottom: 14px; line-height: 1.6; }
.cfg-summary.ok { color: var(--success, #0F6E56); background: rgba(15,110,86,.08); border: 1px solid rgba(15,110,86,.22); }
.cfg-summary.warn { color: #9A6B12; background: rgba(243,156,18,.10); border: 1px solid rgba(243,156,18,.28); }

.cfg-grid { display: grid; grid-template-columns: minmax(300px, 380px) 1fr; gap: 18px; align-items: start; }
@media (max-width: 920px) { .cfg-grid { grid-template-columns: 1fr; } }

.cfg-form-wrap { border: 1px solid var(--border); border-radius: 14px; padding: 16px; background: var(--bg-elev, #fff); position: sticky; top: 16px; }
.cfg-form-head { font-size: 14px; font-weight: 700; color: var(--text); margin-bottom: 12px; }
.cfg-editing-tag { font-size: 12px; font-weight: 500; color: var(--primary); background: var(--primary-soft, rgba(99,87,232,.1)); padding: 1px 8px; border-radius: 999px; margin-left: 6px; }
.cfg-form .field { margin-bottom: 12px; }
.cfg-form-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 8px; }

.cfg-list-wrap { border: 1px solid var(--border); border-radius: 14px; padding: 14px; background: var(--bg-elev, #fff); min-height: 240px; }
.cfg-list-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; font-size: 13px; font-weight: 600; color: var(--text-soft); }
.cfg-list-head .mini-input { max-width: 220px; }
.cfg-list { display: flex; flex-direction: column; gap: 8px; }

.cfg-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; align-self: flex-start; margin-top: 6px; }
.cfg-dot.enabled { background: var(--success, #0F6E56); }
.cfg-dot.disabled { background: var(--text-mute); }
.cfg-disabled { opacity: .58; }

/* 数据目标编辑器 */
.dt-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 10px; }
.dt-std { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--text-mute); }
.dt-std input { width: 100%; padding: 7px 9px; border-radius: 8px; border: 1px solid var(--border); background: var(--bg-soft); color: var(--text); }
.dt-custom-head { font-size: 12.5px; color: var(--text-soft); margin: 6px 0; display: flex; align-items: center; gap: 10px; }
#dtCustom { display: flex; flex-direction: column; gap: 6px; }
.dt-row { display: grid; grid-template-columns: 1.3fr 1fr .7fr .8fr auto; gap: 6px; align-items: center; }
.dt-row input, .dt-row select { padding: 6px 8px; border-radius: 8px; border: 1px solid var(--border); background: var(--bg-soft); color: var(--text); font-size: 12px; }
.dt-row .dt-rm { padding: 4px 8px; }
.req { color: #E24B4A; margin-left: 2px; }

/* ============ 客户之声 ============ */
.voice-view { padding: 0 26px 30px; box-sizing: border-box; }
.voice-scope-box { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--text-soft); }
.voice-scope-box select { padding: 6px 10px; border-radius: 8px; border: 1px solid var(--border); background: var(--bg-soft); color: var(--text); }
.voice-scope-hint { font-size: 12px; color: var(--text-mute); }
.voice-kpis { display: flex; gap: 14px; margin-bottom: 18px; flex-wrap: wrap; }
.voice-kpi { background: var(--bg-elev); border: 1px solid var(--border); border-radius: 12px; padding: 14px 20px; min-width: 110px; text-align: center; }
.voice-kpi b { display: block; font-size: 26px; font-weight: 800; color: var(--primary); }
.voice-kpi span { font-size: 12px; color: var(--text-mute); }
.voice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 860px) { .voice-grid { grid-template-columns: 1fr; } }
.voice-card { min-height: 220px; }
.voice-loading, .voice-empty, .voice-error { font-size: 13px; color: var(--text-mute); padding: 18px; text-align: center; }
.voice-error { color: var(--accent); }
.voice-item { display: flex; align-items: flex-start; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--border); }
.voice-item:last-child { border-bottom: none; }
.voice-rank { width: 22px; height: 22px; border-radius: 50%; background: var(--bg-soft); color: var(--text-soft); font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.voice-item:first-child .voice-rank { background: var(--primary-grad); color: #fff; }
.voice-info { flex: 1; min-width: 0; }
.voice-q { font-size: 13px; color: var(--text); line-height: 1.6; word-break: break-word; white-space: normal; }
.voice-meta { width: 100%; font-size: 11.5px; color: var(--text-mute); margin-top: 4px; }
.voice-concern-item { display: flex; align-items: center; gap: 10px; padding: 8px 0; }
.voice-concern-name { width: 80px; font-size: 12.5px; color: var(--text-soft); flex-shrink: 0; }
.voice-concern-bar { flex: 1; height: 8px; background: var(--bg-soft); border-radius: 6px; overflow: hidden; }
.voice-concern-bar > span { display: block; height: 100%; background: var(--primary-grad); border-radius: 6px; }
.voice-concern-count { width: 60px; text-align: right; font-size: 12px; color: var(--text-mute); }
.voice-faq-item { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--border); }
.voice-faq-item:last-child { border-bottom: none; }
.voice-faq-q { flex: 1; font-size: 13px; color: var(--text); }
.voice-faq-meta { width: 120px; font-size: 12px; color: var(--text-mute); text-align: right; }

/* ===== 模拟接待（本次新增交互样式） ===== */
.sim-pick { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 860px) { .sim-pick { grid-template-columns: 1fr; } }
.field { margin-bottom: 12px; }
.field label { display: block; font-size: 12.5px; color: var(--text-soft); margin-bottom: 6px; }
.mf-input { width: 100%; padding: 9px 11px; border: 1px solid var(--border); border-radius: 9px; background: var(--bg-soft); color: var(--text); font-size: 13px; font-family: inherit; box-sizing: border-box; }
.mf-input:focus { outline: none; border-color: var(--primary); }
textarea.mf-input { line-height: 1.6; resize: vertical; }
.sim-role { font-size: 11px; color: var(--text-mute); margin-bottom: 4px; }
#simChecks { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.sim-check { display: flex; align-items: center; gap: 10px; font-size: 12px; background: var(--bg-elev); border: 1px solid var(--border); border-radius: 10px; padding: 8px 12px; color: var(--text-soft); flex-wrap: wrap; }
.sim-check-round { font-weight: 600; color: var(--text-soft); }
.sim-score { font-weight: 800; font-size: 14px; color: var(--text-soft); min-width: 24px; text-align: center; }
.sim-score.green { color: #0F6E56; }
.sim-score.orange { color: #C77A12; }
.sim-score.red { color: #E24B4A; }
.sim-check-comment { color: var(--text-mute); flex: 1; min-width: 160px; }
/* 每回合教练式辅导：问题 / 正确答案 / 做法 / 话术 */
.sim-coach { flex-basis: 100%; display: flex; flex-direction: column; gap: 6px; margin-top: 4px; padding-top: 8px; border-top: 1px dashed var(--border); }
.sim-coach-row { display: flex; gap: 8px; align-items: flex-start; font-size: 12px; line-height: 1.75; }
.sim-coach-label { flex-shrink: 0; width: 58px; color: var(--text-mute); font-weight: 600; }
.sim-coach-text { flex: 1; color: var(--text-soft); white-space: pre-wrap; word-break: break-all; }
.sim-coach-row.bad .sim-coach-text { color: #E24B4A; }
.sim-coach-row.script .sim-coach-text { background: var(--bg-soft); border-radius: 8px; padding: 7px 10px; color: var(--text); }
/* 总评里的逐回合明细 */
.sim-rounds { display: flex; flex-direction: column; gap: 10px; margin-top: 10px; }
.sim-round-card { background: var(--bg-elev); border: 1px solid var(--border); border-radius: 12px; padding: 12px 14px; }
.sim-round-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.sim-round-head .sim-check-comment { font-size: 12px; }
.sim-input-row textarea.mf-input { flex: 1; }
.voice-std-msg { font-size: 12.5px; color: var(--text-mute); margin-top: 8px; min-height: 16px; }
.sim-admin-list { display: flex; flex-direction: column; gap: 8px; }
.sim-admin-item { background: var(--bg-soft); border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; }
.sim-admin-item small { color: var(--text-mute); }

/* 考核复盘（主管看被指派人的成绩单 + 对话原文） */
.sim-review { max-width: 780px; }
.sim-review-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; transition: border-color .15s, background .15s; }
.sim-review-item:hover { border-color: var(--primary); background: var(--bg-elev); }
.sim-rev-who { font-weight: 600; font-size: 13px; margin-bottom: 2px; }
.sim-rev-arrow { flex-shrink: 0; font-size: 12px; color: var(--text-mute); }
.sim-review-item:hover .sim-rev-arrow { color: var(--primary); }
.sim-rev-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding-bottom: 10px; border-bottom: 1px solid var(--line); margin-bottom: 12px; }
.sim-rev-dir { font-size: 13px; color: var(--text-soft); }
.sim-rev-time { font-size: 12px; color: var(--text-mute); }
.sim-rev-scores { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 4px; }
.sim-rev-h { margin: 16px 0 8px; font-size: 13px; }
.sim-rev-sub { margin-left: 8px; font-size: 12px; font-weight: 400; color: var(--text-mute); }
.sim-review { display: flex; flex-direction: column; gap: 14px; }
.sim-review-chat { display: flex; flex-direction: column; gap: 10px; max-height: 340px; overflow-y: auto; padding: 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg-soft); }
.sim-rev-actions { display: flex; align-items: center; gap: 12px; padding-top: 8px; border-top: 1px dashed var(--border); }
.sim-rescore-btn { padding: 6px 12px; font-size: 12px; }
.sim-rescore-btn:disabled { opacity: .5; cursor: not-allowed; }
.sim-rescore-hint { font-size: 11px; color: var(--text-mute); }

/* ============ 考核管理（主管：任务 CRUD + 成绩复盘） ============ */
.exam-view { padding: 2px 0; }
.exam-tabs { display: flex; gap: 4px; margin-bottom: 14px; border-bottom: 1px solid var(--border); }
.exam-tab { padding: 8px 14px; font-size: 13px; background: none; border: none; border-bottom: 2px solid transparent; color: var(--text-mute); cursor: pointer; }
.exam-tab:hover { color: var(--text-soft); }
.exam-tab.active { color: var(--primary); border-bottom-color: var(--primary); font-weight: 600; }
.exam-task { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 12px 0; border-bottom: 1px dashed var(--border); }
.exam-task:last-child { border-bottom: 0; }
.exam-task-main { flex: 1; min-width: 0; }
.exam-task-title { font-size: 14px; font-weight: 600; color: var(--text); margin-bottom: 6px; }
.exam-task-meta { display: flex; flex-wrap: wrap; gap: 6px 12px; font-size: 12px; color: var(--text-mute); }
.exam-task-dir { margin-top: 6px; font-size: 12px; color: var(--text-soft); }
.exam-task-ops { display: flex; gap: 6px; flex-shrink: 0; }
.exam-task-ops .btn-sm.danger { color: var(--danger); }
.exam-task-ops .btn-sm.danger:hover { border-color: var(--danger); background: var(--danger-soft); }
.exam-tag { padding: 1px 8px; border-radius: 999px; background: var(--bg-elev); border: 1px solid var(--border); font-size: 11px; line-height: 16px; }
.exam-tag.green { color: #0F6E56; border-color: #0F6E56; }
.exam-tag.orange { color: #C77A12; border-color: #C77A12; }
.exam-tag.mute { color: var(--text-mute); }

/* SVG 图标按钮居中（全站以 SVG 替代 emoji/字符图标） */
.mini-btn, .icon-btn { display: inline-flex; align-items: center; justify-content: center; gap: 4px; }
.search-clear, .faq-search-clear, .pc-rem-btn { display: flex; align-items: center; justify-content: center; }
.mini-btn > svg, .icon-btn > svg, .search-clear > svg, .faq-search-clear > svg,
.pc-rem-btn > svg, .sop-end .ed > svg { display: block; }
.icon-btn > span { display: inline-flex; }

/* ============ 话术库（按产品 / 按场景 双维度速查） ============ */
#scriptView .faq-list { flex: 0 0 200px !important; }
.script-mode-tabs { display: flex; gap: 6px; padding: 10px 12px 0; }
.script-mode {
  flex: 1; padding: 6px 0; font-size: 12.5px; font-family: inherit; cursor: pointer;
  border: 1px solid var(--border); background: var(--bg-soft); color: var(--text-soft);
  border-radius: 9px; transition: background .12s, color .12s, border-color .12s;
}
.script-mode:hover { border-color: var(--primary); color: var(--primary); }
.script-mode.active { background: var(--primary-soft); border-color: var(--primary); color: var(--primary); font-weight: 700; }
.script-filters { display: flex; gap: 12px; padding: 8px 14px 2px; flex-wrap: wrap; }
.script-check { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--text-soft); cursor: pointer; user-select: none; }
.script-check input { width: 13px; height: 13px; accent-color: var(--primary); cursor: pointer; }

#scriptView .faq-detail-body { display: block; }
.sc-sub-count { font-size: 12px; font-weight: 600; color: var(--text-mute); margin-left: 8px; }
.sc-group { display: grid; grid-template-columns: repeat(auto-fill, minmax(268px, 1fr)); gap: 14px; margin-bottom: 24px; }
.sc-group-head {
  grid-column: 1 / -1; display: flex; align-items: center; gap: 8px;
  font-size: 13.5px; font-weight: 800; color: var(--text);
  padding-bottom: 8px; border-bottom: 1px solid var(--line);
}
.sc-group-head .sc-dim {
  font-size: 11px; font-weight: 700; color: var(--primary);
  background: var(--primary-soft); padding: 2px 8px; border-radius: 7px;
}
.sc-group-head em { font-style: normal; font-size: 11px; color: var(--text-mute); background: var(--bg-soft); padding: 1px 8px; border-radius: 8px; }
.sc-group .card { margin: 0; }
.script-card .mod-badge { margin-left: 0; background: var(--bg-soft); color: var(--text-soft); }
.script-card h3 { font-size: 14.5px; }
.sc-spacer { flex: 1; }
.sc-tag { font-size: 10.5px; font-weight: 700; padding: 2px 7px; border-radius: 6px; }
.sc-tag.hot { background: var(--accent-soft); color: var(--accent); }
.sc-tag.off { background: var(--bg-soft); color: var(--text-mute); text-decoration: line-through; }
.script-card .script-box { font-size: 13px; padding: 10px 13px; max-height: 168px; overflow-y: auto; }
.card-edit-btn.danger { margin-left: 0; }
.card-edit-btn.danger:hover { border-color: var(--danger, #e5484d); color: var(--danger, #e5484d); background: var(--danger-soft, #fde8e8); }

.sc-checkline { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-soft); cursor: pointer; margin-top: 4px; }
.sc-checkline input { width: 14px; height: 14px; accent-color: var(--primary); cursor: pointer; }
.sc-manage-stat { font-size: 13.5px; color: var(--text-soft); line-height: 1.8; }
.sc-manage-stat b { color: var(--primary); font-size: 15px; }
.sc-manage-actions { display: flex; gap: 10px; margin-top: 14px; }
.sc-manage-hint { font-size: 12px; color: var(--text-mute); margin-top: 6px; line-height: 1.6; }

.sc-imp-preview { margin-top: 12px; display: flex; flex-direction: column; gap: 6px; max-height: 180px; overflow-y: auto; }
.sc-imp-row { display: flex; gap: 8px; align-items: flex-start; background: var(--bg-soft); border-radius: 9px; padding: 7px 10px; font-size: 12px; }
.sc-imp-k { flex: 0 0 auto; max-width: 110px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; color: var(--primary); }
.sc-imp-v { flex: 1; color: var(--text-soft); line-height: 1.6; word-break: break-all; }

/* ---------- 产品卡片：参数在上 / 话术折叠 / 复制钉底 ---------- */
.pc-card-check { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-soft); cursor: pointer; user-select: none; }
.pc-card-check input { accent-color: var(--primary); cursor: pointer; }
.pc-card-count { font-size: 13px; color: var(--text-mute); margin-bottom: 12px; }
.pc-card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; align-items: start; }

.pc-prod-card { background: var(--bg-elev); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px; display: flex; flex-direction: column; gap: 12px; box-shadow: var(--shadow-sm); transition: box-shadow .15s, border-color .15s; }
.pc-prod-card:hover { border-color: var(--primary); box-shadow: var(--shadow); }

.pcp-head { display: flex; align-items: center; gap: 10px; }
.pcp-thumb { width: 44px; height: 44px; border-radius: 10px; object-fit: contain; background: var(--bg-soft); flex: 0 0 44px; }
.pcp-thumb-empty { display: flex; align-items: center; justify-content: center; font-size: 12px; color: var(--text-mute); text-align: center; line-height: 1.2; overflow: hidden; }
.pcp-headtext { min-width: 0; flex: 1; }
.pcp-name { font-size: 15px; font-weight: 500; color: var(--text); line-height: 1.3; word-break: break-all; }
.pcp-meta { font-size: 12px; color: var(--text-mute); margin-top: 3px; }

.pcp-attrs { display: flex; flex-direction: column; gap: 6px; }
.pcp-attr { display: flex; gap: 8px; font-size: 13px; line-height: 1.5; }
.pcp-k { flex: 0 0 68px; color: var(--text-mute); }
.pcp-v { flex: 1; color: var(--text-soft); word-break: break-word; }
.pcp-noattr { font-size: 12px; color: var(--text-mute); font-style: italic; }

.pcp-scripts { border-top: 1px dashed var(--border); padding-top: 10px; }
.pcp-sum { cursor: pointer; font-size: 13px; color: var(--primary); user-select: none; list-style: none; display: flex; align-items: center; gap: 6px; }
.pcp-sum::-webkit-details-marker { display: none; }
.pcp-sum::before { content: ""; width: 0; height: 0; border-left: 5px solid currentColor; border-top: 4px solid transparent; border-bottom: 4px solid transparent; transition: transform .15s; }
.pcp-scripts[open] .pcp-sum::before { transform: rotate(90deg); }
.pcp-script-list { margin-top: 10px; max-height: 320px; overflow-y: auto; display: flex; flex-direction: column; gap: 10px; padding-right: 4px; }
.pcp-script { background: var(--bg-soft); border-radius: 10px; padding: 8px 10px; }
.pcp-sc-head { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.pcp-scene { font-size: 11px; color: var(--primary); background: var(--primary-soft); border-radius: 5px; padding: 1px 6px; }
.pcp-hot { font-size: 11px; color: var(--accent); background: var(--accent-soft); border-radius: 5px; padding: 1px 6px; }
.pcp-sc-text { font-size: 13px; line-height: 1.6; color: var(--text-soft); white-space: pre-wrap; word-break: break-word; }

.pcp-foot { display: flex; gap: 8px; margin-top: auto; }
.pcp-foot .mini-btn { flex: 1; }

/* ---------- 话术中心：问答对 / 产品话术 页签 ---------- */
/* 两个视图共用这一段：页签固定高度，下方 .faq-layout 撑满剩余空间 */
#faqView, #scriptView { display: flex; flex-direction: column; }
#faqView > .faq-layout, #scriptView > .faq-layout { flex: 1 1 auto; min-height: 0; height: auto; }

.hc-tabs { display: flex; align-items: center; gap: 8px; padding: 10px 16px; border-bottom: 1px solid var(--border); background: var(--bg-elev); flex: 0 0 auto; }
.hc-tab {
  display: inline-flex; align-items: center; gap: 7px; padding: 7px 18px;
  border: 1px solid var(--border); background: var(--bg-elev); color: var(--text-soft);
  border-radius: 999px; font-size: 13px; font-weight: 600; font-family: inherit; cursor: pointer;
  transition: border-color .15s, color .15s, background .15s;
}
.hc-tab:hover { border-color: var(--primary); color: var(--primary); }
.hc-tab.active { background: var(--primary); border-color: var(--primary); color: #fff; }
.hc-tab em { font-style: normal; font-size: 12px; font-weight: 700; opacity: .8; }
.hc-tabs-hint { margin-left: auto; font-size: 12px; color: var(--text-mute); }

/* ============ 上下文搜索栏：范围 = 当前项目 + 当前板块 ============ */
.ctx-search {
  position: relative;
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 14px;
  padding: 0 13px;
  height: 44px;
  background: var(--bg-elev);
  border: 1.5px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--shadow-sm);
  transition: border-color 0.18s, box-shadow 0.18s;
}
.ctx-search:focus-within {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(99, 87, 232, 0.12);
}
.ctx-search-ico { display: inline-flex; align-items: center; opacity: 0.55; flex: 0 0 auto; }
.ctx-search #searchInput {
  flex: 1 1 auto;
  min-width: 0;
  border: none;
  background: transparent;
  outline: none;
  color: var(--text);
  font-size: 13.5px;
  font-family: inherit;
}
.ctx-search #searchInput::placeholder { color: var(--text-mute); }
.ctx-search #searchInput::-webkit-search-cancel-button { display: none; }
.ctx-search-scope {
  flex: 0 0 auto;
  font-size: 11.5px;
  color: var(--text-mute);
  background: var(--bg-soft);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 2px 9px;
  white-space: nowrap;
}

/* ============ 搜索历史浮层：最近搜索 + 高频搜索 ============ */
.sh-pop {
  position: fixed;
  z-index: 500;
  background: var(--bg-elev);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--shadow-lg);
  padding: 6px;
  max-height: 380px;
  overflow-y: auto;
  font-size: 13px;
}
.sh-empty {
  padding: 18px 12px;
  text-align: center;
  color: var(--text-mute);
  font-size: 12.5px;
  line-height: 1.7;
}
.sh-empty small { display: block; margin-top: 4px; opacity: 0.8; font-size: 11.5px; }
.sh-group + .sh-group { margin-top: 4px; border-top: 1px solid var(--border); padding-top: 6px; }
.sh-group-title {
  padding: 5px 10px 3px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.6px;
  color: var(--text-mute);
}
.sh-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 7px 10px;
  border: none;
  background: transparent;
  border-radius: 9px;
  cursor: pointer;
  color: var(--text-soft);
  font-size: 13px;
  font-family: inherit;
  text-align: left;
  transition: background 0.14s, color 0.14s;
}
.sh-item:hover { background: var(--bg-soft); color: var(--text); }
.sh-ico { display: inline-flex; align-items: center; opacity: 0.5; flex: 0 0 auto; }
.sh-q { flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sh-cnt {
  flex: 0 0 auto;
  font-style: normal;
  font-size: 11px;
  color: var(--text-mute);
  background: var(--bg-soft);
  border-radius: 999px;
  padding: 1px 7px;
}
.sh-del {
  flex: 0 0 auto;
  display: none;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  color: var(--text-mute);
  cursor: pointer;
}
.sh-item:hover .sh-del { display: inline-flex; }
.sh-del:hover { background: var(--border); color: var(--text); }
.sh-foot { border-top: 1px solid var(--border); margin-top: 6px; padding-top: 6px; }
.sh-clear-all {
  width: 100%;
  border: none;
  background: transparent;
  color: var(--text-mute);
  font-size: 12px;
  font-family: inherit;
  padding: 6px 10px;
  border-radius: 8px;
  cursor: pointer;
}
.sh-clear-all:hover { background: var(--bg-soft); color: var(--danger); }

/* ---- 模拟接待：本场出题基准 + 无资料警告（v=20260901h） ---- */
.sim-focus { color: var(--primary); }
.sim-focus-hint { margin-left: 8px; color: var(--text-mute); font-size: 12px; }
.sim-warn {
  margin: 0 0 12px;
  padding: 10px 14px;
  border-radius: 10px;
  background: rgba(255, 176, 32, .12);
  border: 1px solid rgba(255, 176, 32, .4);
  color: #E8A33D;
  font-size: 13px;
  line-height: 1.6;
}

/* 开考预检提示（v=20260901i） */
.sim-precheck {
  margin: 0 0 14px;
  padding: 10px 14px;
  border-radius: 10px;
  background: var(--bg-soft);
  border: 1px solid var(--border);
  font-size: 13px;
  line-height: 1.6;
  color: var(--text-mute);
}
.sim-precheck.ok { color: inherit; }
.sim-precheck.loading { opacity: .6; }

/* 账号角色与权限矩阵联动（v=20260901j） */
.perm-hint { margin-left: 6px; color: var(--text-mute); font-size: 12px; font-weight: 400; }
.perm-box.perm-locked { opacity: .5; }

/* 成绩看板（考核管理 → 成绩与复盘，v=20260901s） */
.sim-stats { margin-bottom: 4px; }
.sim-stat-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
.sim-chip { background: var(--bg-soft); border: 1px solid var(--border); border-radius: 999px; padding: 3px 10px; font-size: 12px; color: var(--text-soft); }
.sim-trend { display: flex; align-items: flex-end; gap: 6px; height: 96px; padding-top: 6px; }
.sim-trend-col { flex: 1; display: flex; flex-direction: column; align-items: center; height: 100%; min-width: 0; }
.sim-trend-barwrap { flex: 1; width: 100%; display: flex; align-items: flex-end; justify-content: center; }
.sim-trend-bar { width: 62%; max-width: 34px; min-height: 2px; background: var(--primary-grad); border-radius: 4px 4px 0 0; transition: height .2s; }
.sim-trend-val { font-size: 11px; color: var(--text-mute); margin-top: 5px; height: 14px; }
.sim-trend-lab { font-size: 11px; color: var(--text-mute); white-space: nowrap; }
.sim-weak-item { padding: 6px 0; border-bottom: 1px dashed var(--border); }
.sim-weak-item:last-child { border-bottom: 0; }
.sim-weak-name { width: 148px; font-weight: 600; color: var(--text-soft); }
/* 复用质检看板的 concern 条，但次数文案是「10 次 / 2 场」，60px 装不下 */
.sim-weak-item .voice-concern-count { width: 82px; flex: none; }
.sim-weak-sample { margin: 2px 0 2px 158px; font-size: 11.5px; line-height: 1.6; color: var(--text-mute); }
.sim-rank-tb { width: 100%; border-collapse: collapse; font-size: 13px; }
.sim-rank-tb th { text-align: left; font-weight: 600; font-size: 12px; color: var(--text-mute); padding: 6px 8px; border-bottom: 1px solid var(--border); }
.sim-rank-tb td { padding: 9px 8px; border-bottom: 1px dashed var(--border); color: var(--text-soft); }
.sim-rank-row { cursor: pointer; transition: background .15s; }
.sim-rank-row:hover { background: var(--bg-soft); }
.sim-rank-no { display: inline-block; width: 20px; height: 20px; line-height: 20px; text-align: center; border-radius: 6px; background: var(--bg-soft); color: var(--text-mute); font-size: 11px; margin-right: 8px; }
.sim-rank-btn { padding: 3px 10px; font-size: 12px; white-space: nowrap; }
@media (max-width: 720px) {
  .sim-weak-sample { margin-left: 0; }
  .sim-weak-name { width: 110px; }
}

/* 客服个人 AI 改善建议（v=20260902a） */
.sim-advice { margin-top: 2px; }
.sim-advice-idle { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.sim-advice-tip { font-size: 11.5px; color: var(--text-mute); line-height: 1.6; flex: 1; min-width: 200px; }
.sim-advice-loading, .sim-advice-err { font-size: 12.5px; color: var(--text-mute); padding: 6px 0; }
.sim-advice-err { color: var(--danger); }
.sim-advice-retry { margin-left: 8px; }
.sim-advice-sum { font-size: 13px; line-height: 1.75; color: var(--text-soft); background: var(--bg-soft); border: 1px solid var(--border); border-radius: 8px; padding: 9px 12px; }
.sim-advice-pri { margin: 8px 0 2px; font-size: 12.5px; color: var(--text-mute); }
.sim-advice-pri b { color: var(--primary); font-weight: 600; }
.sim-advice-item { padding: 8px 0; border-bottom: 1px dashed var(--border); }
.sim-advice-item:last-child { border-bottom: 0; }
.sim-advice-tag { font-size: 12.5px; font-weight: 600; color: var(--text-soft); }
.sim-advice-why { font-size: 12px; line-height: 1.7; color: var(--text-mute); margin: 3px 0 5px; }
.sim-advice-acts { margin: 0; padding-left: 18px; }
.sim-advice-acts li { font-size: 12px; line-height: 1.8; color: var(--text-soft); }
.sim-advice-script, .sim-advice-drill { margin-top: 6px; font-size: 12px; line-height: 1.7; color: var(--text-soft); background: var(--bg-soft); border-left: 2px solid var(--primary); border-radius: 0 6px 6px 0; padding: 6px 10px; }
.sim-advice-script span, .sim-advice-drill span { display: block; font-size: 11px; color: var(--text-mute); margin-bottom: 2px; }
.sim-advice-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px; font-size: 11.5px; color: var(--text-mute); }
.sim-advice-stale { margin-top: 6px; font-size: 11.5px; color: var(--danger); }

/* 模拟接待：我的考核任务（阶段四，v=20260902b） */
.sim-mytasks { margin-bottom: 16px; }
.sim-mytasks h3 { margin-bottom: 4px; }
.sim-task-reason { color: var(--text-mute); font-size: 11.5px; }

/* ============ 搜索历史：聚焦时下推展开（v=20260902e） ============
   搜索栏本身不变；聚焦后在下方展开两组标签，把下方内容顶下去（不是浮层遮挡）。
   历史搜索 = 最近搜过的词（时间倒序）；搜索最多 = 本账号在该「项目 × 板块」下搜得最多的词（次数倒序）。
   两组都只显示当前项目 + 当前板块自己的记录，切项目或换板块互不相通。 */
.sh-inline {
  margin-top: 8px;
  padding: 9px 11px 7px;
  background: var(--bg-soft);
  border: 1px solid var(--border);
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  animation: sh-drop 0.16s ease-out;
}
.sh-inline[hidden] { display: none; }
@keyframes sh-drop {
  from { opacity: 0; transform: translateY(-5px); }
  to   { opacity: 1; transform: translateY(0); }
}
.sh-row { display: flex; align-items: flex-start; gap: 8px; min-width: 0; }
.sh-row-label {
  flex: 0 0 auto;
  padding-top: 3px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.5px;
  color: var(--text-mute);
  white-space: nowrap;
}
.sh-chips {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding-bottom: 2px;
  scrollbar-width: thin;
}
.sh-chips::-webkit-scrollbar { height: 4px; }
.sh-chips::-webkit-scrollbar-thumb { background: var(--border); border-radius: 999px; }
.sh-chips::-webkit-scrollbar-track { background: transparent; }
.sh-chip {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: 230px;
  padding: 3px 8px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--bg-elev);
  color: var(--text-soft);
  font-size: 12px;
  font-family: inherit;
  line-height: 1.5;
  cursor: pointer;
  transition: border-color 0.14s, color 0.14s;
}
.sh-chip:hover { border-color: var(--primary); color: var(--primary); }
.sh-chip .sh-q { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sh-cnt {
  flex: 0 0 auto;
  font-style: normal;
  font-size: 10.5px;
  color: var(--text-mute);
  background: var(--bg-soft);
  border-radius: 999px;
  padding: 0 6px;
  line-height: 16px;
}
.sh-del {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 15px;
  height: 15px;
  margin-right: -3px;
  border-radius: 50%;
  color: var(--text-mute);
  opacity: 0;
  transition: opacity 0.14s, background 0.14s, color 0.14s;
}
.sh-chip:hover .sh-del { opacity: 1; }
.sh-del:hover { background: var(--border); color: var(--danger); }
.sh-inline .sh-empty {
  padding: 8px 4px;
  text-align: center;
  color: var(--text-mute);
  font-size: 12px;
  line-height: 1.6;
}
.sh-inline .sh-empty small { display: block; margin-top: 2px; opacity: 0.75; font-size: 11px; }
.sh-inline .sh-clear-all {
  align-self: flex-end;
  width: auto;
  border: none;
  background: transparent;
  color: var(--text-mute);
  font-size: 11.5px;
  font-family: inherit;
  padding: 2px 4px;
  border-radius: 6px;
  cursor: pointer;
}
.sh-inline .sh-clear-all:hover { color: var(--danger); background: var(--bg-elev); }

/* ================= v=20260905a 培训考试模块 ================= */
/* 列表卡片：沿用模拟接待的任务卡风格，保持全站视觉一致 */
.sim-task-card {
  display: flex; align-items: flex-start; gap: 14px;
  padding: 14px 16px; border: 1px solid var(--border);
  border-radius: 10px; margin-bottom: 10px; background: var(--card, #fff);
}
.sim-task-card:hover { border-color: var(--primary); }
.sim-task-desc { font-size: 12px; color: var(--text-mute); margin-top: 6px; line-height: 1.6; }
.sim-task-actions { display: flex; gap: 8px; flex-shrink: 0; flex-wrap: wrap; justify-content: flex-end; }
.tag-ok { color: #0f9d58; border-color: rgba(15, 157, 88, .35); background: rgba(15, 157, 88, .08); }
.tag-bad { color: #d93025; border-color: rgba(217, 48, 37, .35); background: rgba(217, 48, 37, .08); }
.form-row { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; flex-wrap: wrap; }
.form-row > label { min-width: 92px; font-size: 13px; color: var(--text-soft); font-weight: 600; }
.form-row .train-input, .form-row .train-textarea, .form-row .mini-select { flex: 1; min-width: 180px; }

/* 答题区 */
.train-take-head {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 16px; flex-wrap: wrap; margin-bottom: 16px;
}
.train-take-right { display: flex; align-items: center; gap: 10px; }
.train-timer {
  font-size: 14px; font-weight: 700; color: var(--text);
  background: var(--bg-soft); padding: 6px 14px; border-radius: 8px;
  font-variant-numeric: tabular-nums;
}
.train-timer-hot { color: #d93025; background: rgba(217, 48, 37, .1); }
.train-take-body { max-width: 860px; }
.train-q {
  border: 1px solid var(--border); border-radius: 10px;
  padding: 16px; margin-bottom: 14px; background: var(--card, #fff);
}
.train-q-head { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; flex-wrap: wrap; }
.train-q-no {
  width: 24px; height: 24px; border-radius: 6px; display: inline-flex;
  align-items: center; justify-content: center;
  background: var(--primary-grad); color: #fff; font-size: 12px; font-weight: 700;
}
.train-q-score { font-size: 12px; color: var(--text-mute); margin-left: auto; }
.train-q-stem { font-size: 14px; line-height: 1.7; color: var(--text); margin-bottom: 12px; white-space: pre-wrap; }
.train-q-body { display: flex; flex-direction: column; gap: 8px; }
.train-opt {
  display: flex; align-items: center; gap: 8px; padding: 9px 12px;
  border: 1px solid var(--border); border-radius: 8px; cursor: pointer;
  font-size: 13.5px; color: var(--text); transition: border-color .15s, background .15s;
}
.train-opt:hover { border-color: var(--primary); background: var(--bg-soft); }
.train-opt input { cursor: pointer; }
.train-input, .train-textarea {
  width: 100%; padding: 9px 12px; font-size: 13.5px; font-family: inherit;
  color: var(--text); background: var(--card, #fff);
  border: 1px solid var(--border); border-radius: 8px; box-sizing: border-box;
}
.train-input:focus, .train-textarea:focus { outline: none; border-color: var(--primary); }
.train-textarea { resize: vertical; line-height: 1.6; }
/* 流程排序：点击依次编号 */
.train-order { display: flex; flex-direction: column; gap: 8px; }
.train-order-item {
  display: flex; align-items: center; gap: 10px; padding: 10px 12px;
  border: 1px solid var(--border); border-radius: 8px; cursor: pointer;
  background: var(--card, #fff); font-size: 13.5px; color: var(--text);
  text-align: left; font-family: inherit; transition: border-color .15s, background .15s;
}
.train-order-item:hover { border-color: var(--primary); }
.train-order-item.picked { border-color: var(--primary); background: var(--bg-soft); }
.train-order-no {
  width: 22px; height: 22px; border-radius: 50%; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--primary-grad); color: #fff; font-size: 12px; font-weight: 700;
}
.train-order-item:not(.picked) .train-order-no { background: var(--border); }
.train-hint { font-size: 12px; color: var(--text-mute); line-height: 1.6; }
.train-submit-bar { display: flex; justify-content: flex-end; padding: 16px 0 40px; }
.train-opt-edit { margin-bottom: 6px; }

/* 成绩弹窗 */
.train-result { text-align: center; padding: 12px 0 4px; }
.train-result-score { font-size: 52px; font-weight: 800; line-height: 1.1; font-variant-numeric: tabular-nums; }
.train-result-score.ok { color: #0f9d58; }
.train-result-score.bad { color: #d93025; }
.train-result-score span { font-size: 18px; margin-left: 4px; font-weight: 600; }
.train-result-meta { font-size: 13px; color: var(--text-soft); margin-top: 8px; }
.train-result-wrong { font-size: 12.5px; color: var(--text-mute); margin-top: 10px; }

/* 复盘明细 */
.train-review { max-height: 60vh; overflow-y: auto; }
.train-review-item {
  border: 1px solid var(--border); border-radius: 8px;
  padding: 12px 14px; margin-bottom: 10px; background: var(--bg-soft);
}
.train-review-item.ok { border-left: 3px solid #0f9d58; }
.train-review-item.bad { border-left: 3px solid #d93025; }
.train-review-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; font-size: 12.5px; }
.train-review-stem { font-size: 13.5px; color: var(--text); line-height: 1.65; margin-bottom: 8px; }
.train-review-row { font-size: 12.5px; color: var(--text-soft); line-height: 1.7; }

/* 多选容器（选题 / 指派） */
.train-pick { max-height: 220px; overflow-y: auto; border: 1px solid var(--border); border-radius: 8px; padding: 10px; width: 100%; }
.train-pick-item {
  display: flex; align-items: center; gap: 8px; padding: 5px 4px;
  font-size: 13px; color: var(--text); cursor: pointer;
}
.train-pick-item:hover { background: var(--bg-soft); }

/* ============ v=20260906a 培训：总览看板 / 学习计划 / SOP 训练 / 认证 / 通知 / 打字 / 审计 ============ */

/* --- 顶栏通知铃铛 --- */
.train-bell { position: relative; }
.train-bell-dot {
  position: absolute; top: 2px; right: 2px; min-width: 16px; height: 16px; padding: 0 4px;
  border-radius: 8px; background: var(--danger); color: #fff; font-size: 11px; line-height: 16px;
  text-align: center; font-style: normal; font-weight: 600;
}
.train-badge {
  display: inline-block; min-width: 16px; padding: 0 5px; margin-left: 4px; border-radius: 8px;
  background: var(--danger); color: #fff; font-size: 11px; font-style: normal; text-align: center;
}

/* --- 看板 --- */
.train-kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; margin-bottom: 16px; }
.train-kpi {
  padding: 14px 16px; border: 1px solid var(--border); border-radius: 10px;
  background: var(--bg-soft);
}
.train-kpi-v { font-size: 22px; font-weight: 700; color: var(--text); line-height: 1.2; }
.train-kpi-l { margin-top: 4px; font-size: 13px; color: var(--text-soft); }
.train-kpi-s { margin-top: 2px; font-size: 12px; color: var(--text-mute); }
.train-board-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 14px; }
.train-sec { margin: 18px 0 10px; font-size: 14px; font-weight: 600; color: var(--text); }
.train-hint-inline { font-size: 12px; color: var(--text-mute); }

/* --- 进度条 --- */
.train-bar { height: 6px; border-radius: 3px; background: var(--bg-soft); overflow: hidden; margin: 8px 0; }
.train-bar > i { display: block; height: 100%; background: var(--primary); border-radius: 3px; transition: width .25s; }

/* --- 学习计划 --- */
.train-plan-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.train-plan-items { display: flex; flex-direction: column; gap: 6px; margin: 8px 0; }
.train-plan-item {
  display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 6px;
  font-size: 13px; color: var(--text-soft); cursor: pointer;
}
.train-plan-item:hover { background: var(--bg-soft); }
.train-plan-item.is-done { color: var(--text-mute); text-decoration: line-through; }
.train-req, .train-optional { margin-left: auto; font-size: 11px; font-style: normal; }
.train-req { color: var(--danger); }
.train-optional { color: var(--text-mute); }

/* --- 编辑器里的动态行 --- */
.train-plan-editor, #tspSteps { display: flex; flex-direction: column; gap: 8px; }
.train-plan-row, .train-sop-row { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.train-plan-row .train-input { flex: 1 1 180px; }
.train-sop-row { padding: 8px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg-soft); }
.train-sop-row .train-input { flex: 1 1 160px; }
.train-sop-row-no { flex: 0 0 52px; font-size: 13px; font-weight: 600; color: var(--text-soft); }
.train-req-lab { font-size: 12px; color: var(--text-soft); display: flex; align-items: center; gap: 4px; }

/* --- SOP 训练 --- */
.train-scene { margin-bottom: 12px; }
.train-scene-box {
  padding: 12px 14px; border-left: 3px solid var(--primary); border-radius: 8px;
  background: var(--primary-soft); font-size: 13px; color: var(--text-soft); line-height: 1.7;
}
.train-scene-box > b { display: block; margin-bottom: 4px; color: var(--text); }
.train-q.is-ok { border-color: var(--success); }
.train-q.is-bad { border-color: var(--danger); }
.train-sop-say { display: flex; gap: 8px; margin: 6px 0; font-size: 13px; color: var(--text-soft); }
.train-sop-say > b { flex: 0 0 auto; color: var(--text); }
.train-sop-fb {
  display: flex; gap: 8px; margin: 8px 0; padding: 8px 10px; border-radius: 6px; font-size: 13px;
}
.train-sop-fb.ok { background: var(--success-soft); color: var(--text-success); }
.train-sop-fb.bad { background: var(--danger-soft); color: var(--danger); }
.train-sop-fb > b { flex: 0 0 auto; }
.train-sop-acts { display: flex; align-items: center; gap: 10px; margin-top: 6px; }

/* --- 通知 / 站内信 --- */
.train-notify { padding: 10px 12px; border-bottom: 1px solid var(--border); }
.train-notify.unread { background: var(--primary-soft); }
.train-notify-h { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; }
.train-notify-h > b { color: var(--text); }
.train-notify-h > span { color: var(--text-mute); font-size: 12px; }
.train-notify-b { margin-top: 4px; font-size: 13px; color: var(--text-soft); line-height: 1.6; }

/* --- 打字测试 --- */
.train-typing-sample {
  padding: 12px 14px; border: 1px dashed var(--border); border-radius: 8px; background: var(--bg-soft);
  font-size: 14px; line-height: 1.9; color: var(--text); margin-bottom: 12px;
}
.train-typing-stat { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 8px; font-size: 13px; color: var(--text-soft); }
.train-typing-stat b { color: var(--primary); font-size: 15px; }

/* --- 审计日志 --- */
.train-audit-row {
  display: grid; grid-template-columns: 150px 90px 110px 1fr; gap: 8px; padding: 7px 4px;
  border-bottom: 1px solid var(--border); font-size: 12px; color: var(--text-soft);
}
.train-audit-at { color: var(--text-mute); }
.train-audit-who { color: var(--text); font-weight: 600; }
.train-audit-act { color: var(--primary); }
.train-audit-tgt { color: var(--text-mute); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 720px) {
  .train-audit-row { grid-template-columns: 1fr; }
}

/* ============ v=20260906a 模拟接待：平台皮肤（一套渲染器 + 主题变量） ============ */
.sim-skin-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; font-size: 13px; color: var(--text-soft); }
.sim-skin-bar .mini-select { margin-left: 6px; }

.sim-skin {
  background: var(--sk-page-bg, var(--bg-elev));
  border-color: var(--sk-line, var(--border));
  padding: 0;
}
.sim-skin-head {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 14px; background: var(--sk-head-bg, var(--primary));
  color: var(--sk-head-fg, #fff); font-size: 13px; font-weight: 600;
  border-radius: 13px 13px 0 0;
  position: sticky; top: 0; z-index: 2;
}
.sim-skin-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: rgba(255, 255, 255, .55); flex: 0 0 auto;
}
.sim-skin-msgs { display: flex; flex-direction: column; gap: 12px; padding: 14px; }
.sim-skin .sim-bubble {
  background: var(--sk-buyer-bg, var(--bg-soft));
  color: var(--sk-buyer-fg, var(--text));
  border-color: var(--sk-line, var(--border));
  border-radius: var(--sk-radius, 12px);
}
.sim-skin .sim-msg.agent .sim-bubble {
  background: var(--sk-agent-bg, var(--primary));
  color: var(--sk-agent-fg, #fff);
  border: none;
  border-radius: var(--sk-radius, 12px);
}
.sim-skin .sim-role { color: var(--text-mute); }
.sim-skin #simChecks { padding: 0 14px 14px; }

/* v=20260906a 补：静态扫描发现的 2 个缺样式类 */
/* 指派给：人多时排成网格并可滚动，避免把弹窗撑爆 */
.train-assign {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 2px 10px; width: 100%; max-height: 200px; overflow-y: auto;
  border: 1px solid var(--border); border-radius: 8px; padding: 8px 10px;
}
/* 皮肤头部平台名：单行截断，长名字不撑破标题栏 */
.sim-skin-name {
  font-weight: 600; letter-spacing: .3px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* ============ v=20260906c 模拟接待：平台工作台（左会话 + 右买家卡 + 工具栏） ============ */
/* 一套结构 + 每平台一份变量；默认隐藏头像，只有工作台里才显示，原生皮肤外观零变化 */
.sim-avatar { display: none; }
.sim-wb {
  display: flex; flex-direction: column;
  border: 1px solid var(--sk-line, var(--border)); border-radius: 14px;
  background: var(--sk-page-bg, var(--bg-elev)); overflow: hidden;
}
.sim-wb-head {
  display: flex; align-items: center; gap: 10px; padding: 10px 14px;
  background: var(--sk-head-bg, var(--primary)); color: var(--sk-head-fg, #fff);
}
.sim-wb-logo {
  width: 28px; height: 28px; border-radius: 6px; flex: 0 0 auto;
  background: rgba(255, 255, 255, .22);
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 600;
}
.sim-wb-headmain { flex: 1 1 auto; min-width: 0; }
.sim-wb-shop { font-size: 13px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sim-wb-sub { font-size: 11.5px; opacity: .85; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sim-wb-badges { display: flex; gap: 6px; flex: 0 0 auto; }
.sim-wb-badge { font-size: 11px; padding: 2px 8px; border-radius: 999px; background: rgba(255, 255, 255, .2); white-space: nowrap; }

.sim-wb-body { display: flex; align-items: stretch; min-height: 0; }
.sim-wb-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.sim-wb-main .sim-skin-msgs { flex: 1 1 auto; max-height: 46vh; overflow-y: auto; }
.sim-wb-main #simChecks { padding: 0 14px 14px; max-height: 30vh; overflow-y: auto; }
.sim-wb-side {
  width: 232px; flex: 0 0 232px; padding: 12px;
  border-left: 1px solid var(--sk-line, var(--border));
  background: var(--sk-side-bg, var(--bg-soft));
  display: flex; flex-direction: column; gap: 10px;
  max-height: 76vh; overflow-y: auto;
}

.sim-wb .sim-avatar {
  display: flex; width: 30px; height: 30px; border-radius: 8px; flex: 0 0 auto;
  align-items: center; justify-content: center;
  font-size: 13px; font-weight: 600;
  background: var(--sk-avatar-bg, var(--primary)); color: var(--sk-avatar-fg, #fff);
}
.sim-msgcol { display: flex; flex-direction: column; min-width: 0; max-width: 76%; }
.sim-wb .sim-msg.buyer .sim-msgcol { align-items: flex-start; }
.sim-wb .sim-msg.agent .sim-msgcol { align-items: flex-end; }

.sim-wb-card {
  background: var(--sk-card-bg, var(--bg-soft));
  border: 1px solid var(--sk-line, var(--border));
  border-radius: 10px; padding: 10px 12px;
}
.sim-wb-buyer { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.sim-wb-avatar {
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--sk-avatar-bg, var(--primary)); color: var(--sk-avatar-fg, #fff);
  display: flex; align-items: center; justify-content: center;
  font-size: 17px; font-weight: 600;
}
.sim-wb-nick { font-size: 13px; font-weight: 600; color: var(--sk-buyer-fg, var(--text)); }
.sim-wb-id { font-size: 11px; color: var(--sk-muted, var(--text-mute)); }
.sim-wb-cardtitle {
  display: flex; justify-content: space-between; align-items: center;
  font-size: 11.5px; font-weight: 600; color: var(--sk-muted, var(--text-mute)); margin-bottom: 6px;
}
.sim-wb-cardhint { font-weight: 400; font-size: 11px; }
.sim-wb-row { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; padding: 3px 0; }
.sim-wb-k { flex: 0 0 auto; color: var(--sk-muted, var(--text-mute)); }
.sim-wb-v { color: var(--sk-buyer-fg, var(--text)); text-align: right; word-break: break-word; }

.sim-wb-goodslist { display: flex; flex-direction: column; gap: 6px; }
.sim-wb-goods {
  text-align: left; font-size: 12px; padding: 6px 8px; border-radius: 6px; cursor: pointer;
  border: 1px solid var(--sk-line, var(--border));
  background: var(--sk-buyer-bg, var(--bg-elev)); color: var(--sk-buyer-fg, var(--text));
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.sim-wb-goods:hover { border-color: var(--sk-accent, var(--primary)); color: var(--sk-accent, var(--primary)); }
.sim-wb-empty { font-size: 11.5px; color: var(--sk-muted, var(--text-mute)); padding: 4px 0; }

.sim-wb-tools {
  display: flex; align-items: center; gap: 6px; padding: 6px 10px;
  border-top: 1px solid var(--sk-line, var(--border));
  background: var(--sk-tool-bg, var(--bg-soft));
}
.sim-wb-tool {
  font-size: 12px; padding: 3px 10px; border-radius: 6px; cursor: pointer;
  border: 1px solid transparent; background: transparent; color: var(--sk-muted, var(--text-soft));
}
.sim-wb-tool:hover {
  color: var(--sk-accent, var(--primary)); border-color: var(--sk-line, var(--border));
  background: var(--sk-buyer-bg, var(--bg-elev));
}
.sim-wb-toolstip { margin-left: auto; font-size: 11px; color: var(--sk-muted, var(--text-mute)); }
.sim-wb-pop {
  display: flex; flex-wrap: wrap; gap: 4px; padding: 8px;
  max-height: 180px; overflow-y: auto;
  border-top: 1px solid var(--sk-line, var(--border));
  background: var(--sk-buyer-bg, var(--bg-elev));
}
.sim-wb-popitem {
  flex: 1 1 100%; display: flex; flex-direction: column; gap: 2px;
  text-align: left; font-size: 12px; padding: 6px 8px; border-radius: 6px; cursor: pointer;
  border: 1px solid transparent; background: transparent; color: var(--sk-buyer-fg, var(--text));
}
.sim-wb-popitem:hover { background: var(--sk-card-bg, var(--bg-soft)); border-color: var(--sk-line, var(--border)); }
.sim-wb-popitem b { font-size: 11.5px; color: var(--sk-accent, var(--primary)); }
.sim-wb-popitem span { font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sim-wb-emoji { font-size: 18px; padding: 4px 6px; border: none; background: transparent; cursor: pointer; border-radius: 6px; }
.sim-wb-emoji:hover { background: var(--sk-card-bg, var(--bg-soft)); }

.sim-wb-input {
  padding: 10px; border-top: 1px solid var(--sk-line, var(--border));
  background: var(--sk-page-bg, var(--bg-elev));
}
.sim-wb-input .mf-input { background: var(--sk-input-bg, var(--bg-elev)); }

@media (max-width: 980px) {
  .sim-wb-side { display: none; }
}

/* ===== v=20260906d 千牛工作台三栏（左买家列表 + 中会话 + 右客户信息） =====
   结构照抄千牛客户端，数据来源全部真实；仅 qianniu 皮肤启用，其余皮肤不受影响 */
.qn-wb {
  --qn: #1677ff;
  --qn-line: #e5e6eb;
  --qn-text: #1f2329;
  --qn-muted: #8a9099;
  --qn-chat-bg: #f2f3f5;
  --qn-hover: #f2f3f5;
  --qn-agent-bg: #eaf2ff;
  --qn-agent-bd: #c6e0ff;
  --qn-agent-fg: #1f2329;
  --qn-buyer-bg: #fef3e6;
  --qn-buyer-bd: #f5d9a6;
  --qn-buyer-fg: #1f2329;
  display: grid;
  grid-template-columns: 288px minmax(0, 1fr) 300px;
  height: calc(100vh - 200px);
  min-height: 620px;
  position: relative;
  border: 1px solid var(--qn-line);
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
  font-size: 12px;
  color: var(--qn-text);
}

/* ---------- 左栏：店铺 + 标签页 + 入口 + 买家分组 ---------- */
.qn-side {
  display: flex; flex-direction: row; min-height: 0;
  background: #fff; border-right: 1px solid var(--qn-line);
}
.qn-nav {
  flex: 0 0 auto; width: 48px; display: flex; flex-direction: column; align-items: center;
  gap: 2px; padding: 10px 0 8px; background: #1677ff; overflow-y: auto;
}
.qn-nav-item {
  display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 6px; border: none; background: transparent;
  color: rgba(255,255,255,.85); cursor: pointer; transition: background .15s, color .15s;
}
.qn-nav-item:hover { background: rgba(255,255,255,.14); color: #fff; }
.qn-nav-item.active { background: rgba(255,255,255,.22); color: #fff; }
.qn-list {
  flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; min-height: 0;
}
.qn-shop {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 12px; border-bottom: 1px solid var(--qn-line);
}
.qn-shop-logo {
  flex: 0 0 auto; width: 30px; height: 30px; border-radius: 4px;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 14px; font-weight: 600;
}
.qn-shop-main { flex: 1 1 auto; min-width: 0; }
.qn-shop-name {
  font-size: 13px; font-weight: 600; line-height: 1.3;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.qn-shop-state { display: flex; align-items: center; gap: 4px; font-size: 11px; color: var(--qn-muted); }
.qn-dot { width: 6px; height: 6px; border-radius: 50%; background: #00b42a; display: inline-block; }
.qn-shop-badge {
  flex: 0 0 auto; font-size: 11px; padding: 2px 6px; border-radius: 3px;
  background: #eaf2ff; color: var(--qn); border: 1px solid #c6e0ff;
}
.qn-tabs { display: flex; gap: 2px; padding: 8px 8px 0; }
.qn-tab {
  flex: 1 1 0; min-width: 0; padding: 5px 2px; font-size: 11px;
  border: none; background: transparent; color: var(--qn-muted);
  border-radius: 3px; cursor: pointer;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.qn-tab:hover { background: var(--qn-hover); }
.qn-tab.active { background: var(--qn); color: #fff; font-weight: 600; }
.qn-links { display: flex; flex-direction: column; padding: 8px 12px 4px; gap: 2px; }
.qn-link {
  text-align: left; border: none; background: transparent; cursor: pointer;
  font-size: 11.5px; color: #4e5969; padding: 3px 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.qn-link:hover { color: var(--qn); }
.qn-search { padding: 6px 12px 10px; }
.qn-search input {
  width: 100%; box-sizing: border-box; padding: 6px 8px; font-size: 11.5px;
  border: 1px solid var(--qn-line); border-radius: 4px; background: #f7f8fa; color: var(--qn-text);
}
.qn-search input:focus { outline: none; border-color: var(--qn); background: #fff; }
.qn-entries {
  display: flex; flex-direction: column;
  border-top: 1px solid var(--qn-line); border-bottom: 1px solid var(--qn-line); padding: 4px 0;
}
.qn-entry {
  text-align: left; border: none; background: transparent; cursor: pointer;
  font-size: 12px; color: #4e5969; padding: 7px 12px;
}
.qn-entry:hover { background: var(--qn-hover); }
.qn-entry.active { color: var(--qn); font-weight: 600; background: #eaf2ff; }
.qn-groups { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.qn-group { border-bottom: 1px solid #f2f3f5; }
.qn-group-hd {
  display: flex; align-items: center; gap: 4px;
  padding: 7px 12px; font-size: 12px; font-weight: 600; color: #4e5969;
  background: #f7f8fa; cursor: pointer; user-select: none;
}
.qn-group.open .qn-group-hd { background: #f2f3f5; }
.qn-arrow { font-size: 9px; color: var(--qn-muted); }
.qn-group-n { font-weight: 400; color: var(--qn-muted); }
.qn-buyers { display: flex; flex-direction: column; }
.qn-buyer {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 12px; cursor: pointer; border-bottom: 1px solid #f7f8fa;
}
.qn-buyer:hover { background: var(--qn-hover); }
.qn-buyer.active { background: #eaf2ff; box-shadow: inset 3px 0 0 var(--qn); }
.qn-buyer-av {
  flex: 0 0 auto; width: 28px; height: 28px; border-radius: 4px;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 13px; font-weight: 600;
}
.qn-buyer-main { flex: 1 1 auto; min-width: 0; }
.qn-buyer-nick {
  font-size: 12px; color: var(--qn-text); line-height: 1.3;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  display: flex; align-items: center; gap: 4px;
}
.qn-now {
  flex: 0 0 auto; font-size: 10px; padding: 0 4px; border-radius: 2px;
  background: var(--qn); color: #fff; font-weight: 400;
}
.qn-buyer-last {
  font-size: 11px; color: var(--qn-muted); line-height: 1.3; margin-top: 1px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.qn-buyer-time { flex: 0 0 auto; font-size: 10.5px; color: #a9aeb8; }
.qn-empty { padding: 14px 12px; font-size: 11.5px; color: var(--qn-muted); text-align: center; }

/* ---------- 中栏：会话 ---------- */
.qn-main { display: flex; flex-direction: column; min-height: 0; min-width: 0; background: var(--qn-chat-bg); }
.qn-main-hd {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 14px; background: #fff; border-bottom: 1px solid var(--qn-line); flex: 0 0 auto;
}
.qn-main-av {
  flex: 0 0 auto; width: 26px; height: 26px; border-radius: 4px;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 12px; font-weight: 600;
}
.qn-main-nick { flex: 0 0 auto; font-size: 14px; font-weight: 600; }
.qn-main-sub {
  flex: 1 1 auto; min-width: 0; font-size: 11.5px; color: var(--qn-muted);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.qn-main-acts { flex: 0 0 auto; display: flex; gap: 10px; }
.qn-mact { font-size: 15px; cursor: pointer; opacity: .55; }
.qn-mact:hover { opacity: 1; }
.qn-chat {
  flex: 1 1 auto; min-height: 0; overflow-y: auto;
  padding: 14px; display: flex; flex-direction: column; gap: 12px;
}
/* 气泡靠顶自然排布，下方留白 —— 与真实客户端新会话一致 */
.qn-chat .sim-msg { display: flex; gap: 8px; align-items: flex-start; }
.qn-chat .sim-msg.agent { flex-direction: row-reverse; }
.qn-chat .sim-avatar {
  display: flex !important; flex: 0 0 auto;
  width: 30px; height: 30px; border-radius: 4px;
  align-items: center; justify-content: center;
  color: #fff; font-size: 13px; font-weight: 600;
}
.qn-chat .sim-avatar.buyer { background: #c9cdd4; }
.qn-chat .sim-avatar.agent { background: var(--qn); }
.qn-chat .sim-msgcol { max-width: 68%; }
.qn-chat .sim-msg.agent .sim-msgcol { align-items: flex-end; }
.qn-chat .sim-role { font-size: 11px; color: var(--qn-muted); margin-bottom: 3px; }
.qn-chat .sim-bubble {
  padding: 8px 11px; border-radius: 4px; font-size: 13px; line-height: 1.6;
  background: var(--qn-buyer-bg); color: var(--qn-text); border: 1px solid var(--qn-buyer-bd);
  word-break: break-word; white-space: pre-wrap;
}
.qn-chat .sim-msg.agent .sim-bubble { background: var(--qn-agent-bg); color: var(--qn-agent-fg); border-color: var(--qn-agent-bd); }
.qn-checks { flex: 0 0 auto; max-height: 150px; overflow-y: auto; padding: 0 14px 10px; }
.qn-checks:empty { display: none; }
.qn-notice {
  flex: 0 0 auto; padding: 7px 14px; font-size: 11.5px; color: var(--qn-muted);
  background: #fafbfc; border-top: 1px solid var(--qn-line);
}
.qn-tools {
  flex: 0 0 auto; display: flex; align-items: center; gap: 2px;
  padding: 5px 10px; background: #fff; border-top: 1px solid var(--qn-line);
}
.qn-tool {
  border: none; background: transparent; cursor: pointer;
  font-size: 15px; line-height: 1; padding: 5px 7px; border-radius: 4px;
}
.qn-tool:hover { background: var(--qn-hover); }
.qn-tool.off { opacity: .3; cursor: not-allowed; }
.qn-tool.off:hover { background: transparent; }
.qn-toolstip { margin-left: auto; font-size: 11px; color: var(--qn-muted); }
/* 快捷面板在工具栏下发流式展开（不浮层，避免遮挡输入框） */
.qn-pop {
  max-height: 200px; overflow-y: auto; flex: 0 0 auto;
  border-top: 1px solid var(--qn-line); background: #fff;
}
.qn-input { flex: 0 0 auto; background: #fff; border-top: 1px solid var(--qn-line); padding: 6px 10px 10px; }
.qn-input .mf-input {
  width: 100%; box-sizing: border-box; resize: none;
  border: none; background: transparent; font-size: 13px; line-height: 1.6; padding: 4px 2px;
}
.qn-input .mf-input:focus { outline: none; }
.qn-input-btns { display: flex; justify-content: flex-end; gap: 8px; margin-top: 4px; }
.qn-btn {
  padding: 5px 16px; font-size: 12px; border-radius: 4px; cursor: pointer;
  border: 1px solid var(--qn-line); background: #fff; color: #4e5969;
}
.qn-btn:hover { border-color: var(--qn); color: var(--qn); }
.qn-btn.primary { background: var(--qn); border-color: var(--qn); color: #fff; }
.qn-btn.primary:hover { opacity: .9; color: #fff; }

/* ---------- 右栏：客户信息 ---------- */
.qn-info {
  display: flex; flex-direction: column; min-height: 0; overflow-y: auto;
  background: #fff; border-left: 1px solid var(--qn-line);
}
.qn-info-hd {
  display: flex; align-items: center; justify-content: space-between;
  padding: 9px 12px; border-bottom: 1px solid var(--qn-line); flex: 0 0 auto;
}
.qn-info-title { font-size: 13px; font-weight: 600; }
.qn-info-more { color: var(--qn-muted); cursor: pointer; letter-spacing: 1px; }
.qn-cust { display: flex; gap: 9px; padding: 12px; flex: 0 0 auto; }
.qn-cust-av {
  flex: 0 0 auto; width: 40px; height: 40px; border-radius: 5px;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 17px; font-weight: 600;
}
.qn-cust-main { flex: 1 1 auto; min-width: 0; }
.qn-cust-nick {
  display: flex; align-items: center; gap: 5px; font-size: 13.5px; font-weight: 600; line-height: 1.4;
}
.qn-cust-badge {
  flex: 0 0 auto; font-size: 10px; font-weight: 400; padding: 1px 5px; border-radius: 2px;
  background: #e8f3ff; color: #1a73e8; border: 1px solid #c6e0ff;
}
.qn-cust-tag {
  margin-top: 3px; font-size: 11.5px; color: #7c3aed; background: #f5f0ff;
  border: 1px solid #e4d9ff; border-radius: 2px; padding: 1px 5px; display: inline-block; max-width: 100%;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.qn-info-rows { padding: 0 12px 10px; flex: 0 0 auto; }
.qn-info-row { display: flex; gap: 8px; font-size: 12px; padding: 4px 0; }
.qn-info-k { flex: 0 0 62px; color: var(--qn-muted); }
.qn-info-v { flex: 1 1 auto; min-width: 0; color: var(--qn-text); word-break: break-word; }
.qn-info-v.muted { color: #c0c4cc; }
.qn-tagsbar {
  display: flex; flex-wrap: wrap; gap: 5px; padding: 0 12px 10px; flex: 0 0 auto;
}
.qn-tagchip {
  font-size: 11px; padding: 2px 7px; border-radius: 10px;
  background: #f2f3f5; color: #4e5969; border: 1px solid var(--qn-line);
}
.qn-acts {
  display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 0 12px 12px; flex: 0 0 auto;
}
.qn-act {
  padding: 6px 4px; font-size: 11.5px; cursor: pointer; border-radius: 3px;
  border: 1px solid var(--qn-line); background: #fff; color: #4e5969;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.qn-act:hover { border-color: var(--qn); color: var(--qn); background: #eaf2ff; }
.qn-tabs2 {
  display: flex; gap: 0; padding: 0 12px; border-bottom: 1px solid var(--qn-line); flex: 0 0 auto;
}
.qn-tab2 {
  flex: 1 1 0; padding: 6px 4px; font-size: 12px; cursor: pointer;
  border: none; border-bottom: 2px solid transparent; background: transparent; color: var(--qn-muted);
}
.qn-tab2:hover { color: var(--qn-text); }
.qn-tab2.active { color: var(--qn); font-weight: 600; border-bottom-color: var(--qn); }
.qn-tabbody { padding: 10px 12px; flex: 0 0 auto; }
.qn-goods { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.qn-goods-item {
  display: flex; flex-direction: column; gap: 4px; padding: 0; cursor: pointer;
  border: none; background: transparent; text-align: center;
}
.qn-goods-pic {
  width: 100%; aspect-ratio: 1 / 1; border-radius: 3px; background: #f2f3f5;
  border: 1px solid var(--qn-line); display: flex; align-items: center; justify-content: center;
  font-size: 15px; font-weight: 600; color: #a9aeb8;
}
.qn-goods-item:hover .qn-goods-pic { border-color: var(--qn); color: var(--qn); background: #eaf2ff; }
.qn-goods-name {
  font-size: 10.5px; color: #4e5969; line-height: 1.3;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.qn-pager { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 8px; }
.qn-page {
  border: 1px solid var(--qn-line); background: #fff; color: #4e5969;
  width: 20px; height: 20px; line-height: 1; border-radius: 3px; cursor: pointer; font-size: 12px;
}
.qn-page:disabled { opacity: .35; cursor: not-allowed; }
.qn-page-n { font-size: 11px; color: var(--qn-muted); }
.qn-footlist, .qn-histlist { display: flex; flex-direction: column; gap: 4px; }
.qn-foot-item, .qn-hist-item {
  display: flex; align-items: center; gap: 8px; font-size: 11.5px; padding: 5px 0;
  border-bottom: 1px solid #f7f8fa;
}
.qn-foot-t, .qn-hist-t { flex: 0 0 auto; color: var(--qn-muted); font-size: 11px; }
.qn-foot-d { flex: 1 1 auto; min-width: 0; color: #4e5969; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qn-hist-m {
  flex: 0 0 auto; font-size: 10px; padding: 1px 5px; border-radius: 2px;
  background: #f2f3f5; color: #4e5969;
}
.qn-hist-s { flex: 0 0 auto; font-size: 11px; font-weight: 600; }
.qn-hist-s.muted { color: #c0c4cc; font-weight: 400; }
.qn-hist-s.good { color: #00b42a; }
.qn-hist-s.mid { color: #ff7d00; }
.qn-hist-s.bad { color: #f53f3f; }
.qn-mine { margin-top: auto; padding: 10px 12px 14px; border-top: 1px solid var(--qn-line); flex: 0 0 auto; }
.qn-mine-hd { font-size: 12px; font-weight: 600; margin-bottom: 6px; color: #4e5969; }
.qn-mine-row { display: flex; align-items: center; gap: 6px; font-size: 11.5px; padding: 3px 0; }
.qn-mine-k { flex: 0 0 52px; color: var(--qn-muted); }
.qn-mine-v {
  flex: 1 1 auto; min-width: 0; color: var(--qn-text); font-family: ui-monospace, Consolas, monospace;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.qn-mini {
  flex: 0 0 auto; font-size: 10.5px; padding: 1px 6px; cursor: pointer; border-radius: 2px;
  border: 1px solid var(--qn-line); background: #fff; color: #4e5969;
}
.qn-mini:hover { border-color: var(--qn); color: var(--qn); }

@media (max-width: 1180px) {
  .qn-wb { grid-template-columns: 248px minmax(0, 1fr) 260px; }
}
@media (max-width: 980px) {
  .qn-wb { grid-template-columns: 228px minmax(0, 1fr); }
  .qn-info { display: none; }
}

/* ==================================================================
   v=20260906e 千牛工作台精细化
   1) 全部图标改线性 SVG（不再用 emoji）  2) 气泡加尖角/时间/已读态
   3) 会话时间分隔 + 回合分隔 + 正在输入动画  4) 左栏折叠/星标/徽章
   5) 右栏客户卡统计块   6) 滚动条与过渡
   ================================================================== */

/* ---------- 图标 ---------- */
.qn-ico { display: block; flex: 0 0 auto; }

/* ---------- 左栏：筛选 tab / 搜索 / 分组折叠 ---------- */
.qn-tabs { padding: 8px 8px 6px; gap: 3px; }
.qn-tab {
  display: inline-flex; align-items: center; justify-content: center; gap: 4px;
  padding: 4px 7px; font-size: 11.5px; border-radius: 3px;
  border: 1px solid var(--qn-line); background: #fff; color: #4e5969;
  transition: background .15s, color .15s, border-color .15s;
}
.qn-tab i {
  font-style: normal; font-size: 10px; min-width: 15px; padding: 0 3px;
  border-radius: 7px; background: #f2f3f5; color: var(--qn-muted); line-height: 14px;
}
.qn-tab.active { background: var(--qn); border-color: var(--qn); color: #fff; font-weight: 600; }
.qn-tab.active i { background: rgba(255, 255, 255, .26); color: #fff; }

.qn-search { position: relative; padding: 4px 12px 8px; }
.qn-search .qn-ico { position: absolute; left: 20px; top: 50%; transform: translateY(-60%); color: #a9aeb8; pointer-events: none; }
.qn-search input { padding-left: 28px !important; }

.qn-shop-badge {
  flex: 0 0 auto; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px;
  background: var(--qn); color: #fff; font-size: 10.5px; font-weight: 600;
  display: flex; align-items: center; justify-content: center;
}

.qn-group-hd { cursor: pointer; user-select: none; }
.qn-group-name { flex: 1 1 auto; min-width: 0; }
.qn-arrow { display: inline-flex; color: var(--qn-muted); transition: transform .18s ease; }
.qn-group.open .qn-arrow { transform: rotate(0deg); }
.qn-group:not(.open) .qn-arrow { transform: rotate(-90deg); }
.qn-group .qn-buyers { display: none; }
.qn-group.open .qn-buyers { display: flex; flex-direction: column; }
.qn-group-n {
  flex: 0 0 auto; font-size: 10px; color: #fff; background: #c9cdd4;
  min-width: 15px; padding: 0 4px; border-radius: 7px; text-align: center; line-height: 14px;
}

/* 买家行：星标 + 次数徽章 */
.qn-buyer { align-items: center; padding: 7px 12px 7px 10px; gap: 8px; transition: background .14s; }
.qn-buyer-av { width: 32px; height: 32px; }
.qn-buyer-line { display: flex; align-items: center; gap: 4px; min-width: 0; }
.qn-buyer-nick {
  flex: 0 1 auto; font-size: 12px; font-weight: 600;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.qn-buyer-n {
  flex: 0 0 auto; font-size: 9.5px; color: #fff; background: #c9cdd4;
  min-width: 14px; padding: 0 3px; border-radius: 7px; text-align: center; line-height: 13px;
}
.qn-buyer-right { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.qn-buyer-star {
  border: none; background: transparent; padding: 0; line-height: 1; cursor: pointer;
  color: #dcdfe5; opacity: 0; transition: opacity .14s, color .14s, transform .14s;
}
.qn-buyer:hover .qn-buyer-star { opacity: 1; }
.qn-buyer-star:hover { color: #ffb400; transform: scale(1.15); }
.qn-buyer-star.on { opacity: 1; color: #ffb400; }
.qn-buyer.cur .qn-buyer-last { color: var(--qn); }
.qn-now {
  flex: 0 0 auto; font-size: 9.5px; font-weight: 400; padding: 0 4px;
  border-radius: 2px; background: var(--qn); color: #fff; line-height: 13px;
}

/* ---------- 中栏头部：进度条 + 图标按钮 ---------- */
.qn-main-hd { padding: 8px 14px; gap: 9px; background: #fff; }
.qn-main-av { width: 30px; height: 30px; }
.qn-main-id { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.qn-main-nick { display: flex; align-items: center; gap: 5px; }
.qn-main-lv {
  font-size: 10px; font-weight: 400; padding: 0 4px; line-height: 14px;
  border-radius: 2px; background: #eaf2ff; color: var(--qn); border: 1px solid #c6e0ff;
}
.qn-prog { flex: 0 0 auto; display: flex; align-items: center; gap: 6px; }
.qn-prog-bar {
  width: 66px; height: 4px; border-radius: 2px; background: #f2f3f5;
  overflow: hidden; display: block;
}
.qn-prog-bar i { display: block; height: 100%; background: var(--qn); transition: width .35s ease; }
.qn-prog-n { font-size: 11px; color: var(--qn-muted); font-variant-numeric: tabular-nums; }
.qn-main-acts { gap: 2px; }
.qn-mact {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; border-radius: 4px; border: none; background: transparent;
  color: #4e5969; cursor: pointer; opacity: .6; transition: opacity .14s, background .14s;
}
.qn-mact:hover { opacity: 1; background: #f2f3f5; color: var(--qn); }

/* ---------- 会话区：时间分隔 / 回合分隔 ---------- */
/* 气泡自带左右内边距，容器只留纵向间距（覆盖 d 版的 padding:14px + gap:12px） */
.qn-chat { padding: 8px 0 12px; gap: 4px; }
.qn-daybar, .qn-roundbar {
  display: flex; justify-content: center; margin: 10px 0 6px;
}
.qn-daybar span, .qn-roundbar span {
  font-size: 10.5px; color: #a9aeb8; background: rgba(0, 0, 0, .04);
  padding: 2px 8px; border-radius: 9px;
}
.qn-roundbar { margin: 4px 0 2px; }
.qn-roundbar span { background: transparent; color: #c0c4cc; }

/* ---------- 气泡：尖角 + 时间 + 已读 ---------- */
.qn-msg { display: flex; gap: 8px; align-items: flex-start; padding: 3px 16px; }
.qn-msg.cont { padding-top: 0; }
.qn-msg.agent { flex-direction: row-reverse; }
.qn-msg-av {
  flex: 0 0 auto; width: 30px; height: 30px; border-radius: 4px; color: #fff;
  font-size: 13px; font-weight: 600; display: flex; align-items: center; justify-content: center;
}
.qn-msg.cont .qn-msg-av { visibility: hidden; height: 0; }
.qn-msg-col { display: flex; flex-direction: column; gap: 3px; max-width: 66%; min-width: 0; }
.qn-msg.agent .qn-msg-col { align-items: flex-end; }
.qn-msg-meta {
  display: flex; align-items: center; gap: 6px;
  font-size: 10.5px; color: #a9aeb8; padding: 0 2px;
}
.qn-msg-t { font-variant-numeric: tabular-nums; }
.qn-msg-line { display: flex; align-items: flex-end; gap: 6px; max-width: 100%; }
.qn-msg.agent .qn-msg-line { flex-direction: row-reverse; }
.qn-msg-bubble {
  position: relative; padding: 8px 11px; border-radius: 4px;
  background: var(--qn-buyer-bg); border: 1px solid var(--qn-buyer-bd); color: var(--qn-buyer-fg);
  font-size: 13px; line-height: 1.6; word-break: break-word; white-space: pre-wrap;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
}
/* 尖角：两层三角做出带边框的效果 */
.qn-msg-bubble::before, .qn-msg-bubble::after {
  content: ""; position: absolute; top: 9px; width: 0; height: 0;
  border: 6px solid transparent;
}
.qn-msg.buyer .qn-msg-bubble::before { left: -12px; border-right-color: var(--qn-buyer-bd); }
.qn-msg.buyer .qn-msg-bubble::after { left: -10px; border-right-color: var(--qn-buyer-bg); }
.qn-msg.agent .qn-msg-bubble {
  background: var(--qn-agent-bg); border-color: var(--qn-agent-bd); color: var(--qn-agent-fg);
  box-shadow: 0 1px 2px rgba(22, 119, 255, .12);
}
.qn-msg.agent .qn-msg-bubble::before { right: -12px; border-left-color: var(--qn-agent-bd); }
.qn-msg.agent .qn-msg-bubble::after { right: -10px; border-left-color: var(--qn-agent-bg); }
.qn-msg-read { flex: 0 0 auto; font-size: 10px; color: #c0c4cc; padding-bottom: 2px; }
.qn-msg-read.on { color: #00b42a; }

/* 正在输入：三点跳动 */
.qn-typing {
  display: flex; align-items: center; gap: 4px; padding: 11px 13px; min-width: 52px;
}
.qn-typing i {
  width: 5px; height: 5px; border-radius: 50%; background: #c0c4cc; display: block;
  animation: qnBlink 1.3s ease-in-out infinite;
}
.qn-typing i:nth-child(2) { animation-delay: .18s; }
.qn-typing i:nth-child(3) { animation-delay: .36s; }
@keyframes qnBlink {
  0%, 60%, 100% { opacity: .28; transform: translateY(0); }
  30% { opacity: 1; transform: translateY(-3px); }
}

/* ---------- 空态 ---------- */
.qn-blank {
  flex: 1 1 auto; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 7px; padding: 40px 20px; color: var(--qn-muted); user-select: none;
}
.qn-blank-ico {
  width: 78px; height: 78px; border-radius: 50%; background: #fff;
  border: 1px solid var(--qn-line); color: #dcdfe5;
  display: flex; align-items: center; justify-content: center; margin-bottom: 4px;
}
.qn-blank-t { font-size: 15px; font-weight: 600; color: #4e5969; }
.qn-blank-s { font-size: 12px; color: var(--qn-muted); }
.qn-blank-hint {
  display: flex; align-items: center; gap: 5px; margin-top: 10px;
  font-size: 11px; color: #a9aeb8; background: #fff; border: 1px solid var(--qn-line);
  border-radius: 4px; padding: 5px 10px; max-width: 420px; text-align: left;
}
.qn-blank-hint .qn-ico { color: #ffb400; }

/* ---------- 工具栏 ---------- */
.qn-tools { gap: 1px; padding: 3px 8px; }
.qn-tool {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 26px; border-radius: 4px; border: none; background: transparent;
  color: #4e5969; cursor: pointer; transition: background .14s, color .14s;
}
.qn-tool:hover { background: #f2f3f5; color: var(--qn); }
.qn-tool.off { opacity: .28; }
.qn-tool.off:hover { background: transparent; color: #4e5969; }
.qn-tool-send { color: var(--qn); }
.qn-toolsep { width: 1px; height: 15px; background: var(--qn-line); margin: 0 5px; }

/* ---------- 输入区 ---------- */
.qn-input-btns { align-items: center; }
.qn-count { margin-right: auto; font-size: 11px; color: #c0c4cc; font-variant-numeric: tabular-nums; }
.qn-btn {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 4px 12px; font-size: 12px; border-radius: 3px; cursor: pointer;
  border: 1px solid var(--qn-line); background: #fff; color: #4e5969;
  transition: background .14s, color .14s, border-color .14s;
}
.qn-btn.primary { background: var(--qn); border-color: var(--qn); color: #fff; font-weight: 500; }
.qn-btn.primary:hover { background: #ff8124; border-color: #ff8124; color: #fff; }

/* ---------- 右栏：客户卡 + 统计块 ---------- */
.qn-info-title, .qn-info-more { display: inline-flex; align-items: center; gap: 5px; }
.qn-info-more { color: var(--qn-muted); border: none; background: transparent; cursor: pointer; padding: 2px; }
.qn-cust-id {
  margin-top: 2px; font-size: 11px; color: var(--qn-muted);
  font-family: ui-monospace, Consolas, monospace;
}
.qn-cust-stat {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px;
  margin: 0 12px 10px; background: var(--qn-line); border: 1px solid var(--qn-line); border-radius: 4px;
  overflow: hidden; flex: 0 0 auto;
}
.qn-stat {
  display: flex; flex-direction: column; align-items: center; gap: 1px;
  padding: 7px 2px; background: #fafbfc;
}
.qn-stat b { font-size: 14px; font-weight: 600; color: var(--qn-text); line-height: 1.2; }
.qn-stat span { font-size: 10px; color: var(--qn-muted); }
.qn-goods-sub {
  font-size: 9.5px; color: #a9aeb8; line-height: 1.3;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%;
}
.qn-goods-pic { position: relative; overflow: hidden; }
.qn-goods-pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.qn-page { display: inline-flex; align-items: center; justify-content: center; padding: 0; }
.qn-page:first-of-type .qn-ico { transform: rotate(90deg); }
.qn-page:last-of-type .qn-ico { transform: rotate(-90deg); }
.qn-page:disabled { opacity: .3; }

/* ---------- 滚动条 ---------- */
.qn-chat, .qn-groups, .qn-info, .qn-checks, .sim-wb-pop {
  scrollbar-width: thin; scrollbar-color: #d9dde3 transparent;
}
.qn-chat::-webkit-scrollbar, .qn-groups::-webkit-scrollbar,
.qn-info::-webkit-scrollbar, .qn-checks::-webkit-scrollbar, .sim-wb-pop::-webkit-scrollbar { width: 6px; height: 6px; }
.qn-chat::-webkit-scrollbar-thumb, .qn-groups::-webkit-scrollbar-thumb,
.qn-info::-webkit-scrollbar-thumb, .qn-checks::-webkit-scrollbar-thumb, .sim-wb-pop::-webkit-scrollbar-thumb {
  background: #d9dde3; border-radius: 3px;
}
.qn-chat::-webkit-scrollbar-thumb:hover, .qn-groups::-webkit-scrollbar-thumb:hover,
.qn-info::-webkit-scrollbar-thumb:hover { background: #c0c4cc; }
.qn-chat::-webkit-scrollbar-track, .qn-groups::-webkit-scrollbar-track,
.qn-info::-webkit-scrollbar-track, .qn-checks::-webkit-scrollbar-track { background: transparent; }

/* ========================================================================
   v=20260906i 京东咚咚真实工作台（左侧竖导航 / 顶指标栏 / 中聊天 / 右客服助手）
   ========================================================================= */

.jd-wb {
  display: flex; flex-direction: column;
  height: calc(100vh - 200px); min-height: 620px;
  border-radius: 10px; overflow: hidden;
  box-shadow: 0 6px 24px rgba(0, 0, 0, .08);
  background: #f4f4f4; color: #333;
  font-size: 13px;
}
.jd-topbar {
  display: flex; align-items: center; gap: 12px;
  height: 48px; padding: 0 12px;
  background: #fff; border-bottom: 1px solid #e5e5e5;
  flex: 0 0 auto;
}
.jd-topbar-user {
  display: flex; align-items: center; gap: 6px; flex: 0 0 auto;
}
.jd-topbar-av {
  width: 24px; height: 24px; border-radius: 50%;
  background: #2d7cff; color: #fff; font-size: 11px;
  display: flex; align-items: center; justify-content: center;
}
.jd-topbar-name { font-weight: 500; color: #333; }
.jd-topbar-status {
  font-size: 11px; color: #52c41a; background: #f6ffed; border: 1px solid #b7eb8f;
  padding: 0 5px; border-radius: 3px;
}
.jd-topbar-tag {
  font-size: 11px; color: #999; border: 1px solid #e5e5e5;
  padding: 0 5px; border-radius: 3px;
}
.jd-topbar-heart { color: #ff4d4f; display: flex; }
.jd-topbar-search {
  flex: 0 1 280px; display: flex; align-items: center; gap: 6px;
  background: #f4f4f4; border: 1px solid #e5e5e5; border-radius: 4px;
  padding: 0 8px; height: 28px;
}
.jd-topbar-search input {
  border: none; background: transparent; outline: none; flex: 1;
  font-size: 12px; color: #333;
}
.jd-topbar-metrics {
  flex: 1 1 auto; display: flex; justify-content: flex-end; gap: 18px;
  margin-left: auto;
}
.jd-metric { text-align: center; }
.jd-metric-k { display: block; font-size: 11px; color: #999; }
.jd-metric-v { display: block; font-size: 12px; color: #333; font-weight: 500; }
.jd-topbar-acts { display: flex; align-items: center; gap: 6px; margin-left: 12px; }
.jd-topbar-act {
  width: 24px; height: 24px; display: flex; align-items: center; justify-content: center;
  border: none; background: transparent; color: #999; border-radius: 3px; cursor: pointer;
}
.jd-topbar-act:hover { background: #f2f3f5; color: #333; }
.jd-topbar-act.close:hover { background: #ff4d4f; color: #fff; }

.jd-body {
  flex: 1 1 auto; display: grid;
  grid-template-columns: 64px 1fr 320px;
  min-height: 0;
}
.jd-side {
  display: flex; min-height: 0; background: #fff;
  border-right: 1px solid #e5e5e5;
}
.jd-nav {
  width: 64px; flex: 0 0 64px;
  background: #f7f8fa; border-right: 1px solid #e5e5e5;
  display: flex; flex-direction: column; align-items: center;
  padding: 10px 0; gap: 4px;
}
.jd-nav-avatar {
  width: 34px; height: 34px; border-radius: 50%;
  background: #2d7cff; color: #fff; border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.jd-nav-items { flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; margin-top: 8px; }
.jd-nav-item {
  width: 56px; padding: 8px 0; border: none; background: transparent;
  color: #666; display: flex; flex-direction: column; align-items: center; gap: 2px;
  border-radius: 4px; cursor: pointer; font-size: 11px;
}
.jd-nav-item:hover { background: #eef1f5; color: #333; }
.jd-nav-item.active { color: #2d7cff; background: #eaf2ff; }
.jd-nav-label { font-size: 10px; }
.jd-nav-bottom {
  width: 32px; height: 32px; border-radius: 50%;
  background: #e1251b; color: #fff; border: none; font-weight: 700;
  cursor: pointer; font-size: 13px;
}

.jd-list {
  flex: 1 1 auto; min-width: 0;
  display: flex; flex-direction: column; min-height: 0;
}
.jd-side-hd {
  display: flex; align-items: center; gap: 8px; padding: 8px;
  border-bottom: 1px solid #f0f0f0; font-size: 11px; color: #666;
}
.jd-side-hd button {
  border: none; background: transparent; color: #666; cursor: pointer;
  display: flex; align-items: center; gap: 2px; font-size: 11px;
}
.jd-side-hd button:hover { color: #2d7cff; }
.jd-group { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.jd-group-hd {
  display: flex; align-items: center; gap: 4px;
  padding: 8px; font-size: 12px; color: #666; cursor: pointer;
}
.jd-group-n { color: #999; margin-left: 2px; }
.jd-arrow { display: inline-flex; color: #999; transform: rotate(-90deg); }
.jd-group.open .jd-arrow { transform: rotate(0deg); }
.jd-buyers { display: flex; flex-direction: column; }
.jd-buyer {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 10px; cursor: pointer;
}
.jd-buyer:hover { background: #f7f8fa; }
.jd-buyer.active { background: #eaf2ff; }
.jd-buyer-av {
  width: 32px; height: 32px; border-radius: 50%;
  color: #fff; font-size: 12px;
  display: flex; align-items: center; justify-content: center; flex: 0 0 auto;
}
.jd-buyer-main { flex: 1 1 auto; min-width: 0; }
.jd-buyer-nick {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 12px; color: #333; margin-bottom: 2px;
}
.jd-buyer-time { font-size: 10px; color: #999; }
.jd-buyer-tag {
  font-size: 10px; color: #ff4d4f; background: #fff1f0;
  border: 1px solid #ffa39e; padding: 0 3px; border-radius: 2px; margin-left: 4px;
}
.jd-buyer-last {
  font-size: 11px; color: #999; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.jd-side-bottom {
  padding: 8px; border-top: 1px solid #f0f0f0; font-size: 11px; color: #999;
}
.jd-side-msg {
  border: none; background: transparent; color: #666; cursor: pointer;
  display: flex; align-items: center; gap: 2px; font-size: 11px; padding: 0 0 4px;
}
.jd-side-ver { text-align: center; }

.jd-main {
  display: flex; flex-direction: column; min-width: 0;
  background: #fff;
}
.jd-main-hd {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 12px; border-bottom: 1px solid #f0f0f0;
}
.jd-main-id {
  display: flex; align-items: center; gap: 8px;
}
.jd-main-av {
  width: 32px; height: 32px; border-radius: 50%;
  color: #fff; font-size: 12px;
  display: flex; align-items: center; justify-content: center;
}
.jd-main-name { font-weight: 500; color: #333; font-size: 14px; }
.jd-main-sub { color: #999; font-size: 12px; }
.jd-main-acts { display: flex; gap: 6px; }
.jd-mact {
  width: 28px; height: 28px; border: 1px solid #e5e5e5; border-radius: 4px;
  background: #fff; color: #666; display: flex; align-items: center; justify-content: center;
  cursor: pointer;
}
.jd-mact:hover { color: #2d7cff; border-color: #2d7cff; }

.jd-product {
  display: flex; gap: 10px; padding: 10px 12px;
  background: #fafafa; border-bottom: 1px solid #f0f0f0;
}
.jd-product-pic {
  width: 48px; height: 48px; border-radius: 4px;
  background: #e5e5e5; color: #999; font-size: 12px;
  display: flex; align-items: center; justify-content: center; flex: 0 0 auto;
}
.jd-product-info { flex: 1 1 auto; min-width: 0; }
.jd-product-name {
  font-size: 12px; color: #333; line-height: 1.5;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.jd-product-row { display: flex; align-items: center; gap: 8px; margin-top: 4px; }
.jd-product-price { color: #e1251b; font-weight: 600; font-size: 13px; }
.jd-product-copy {
  font-size: 11px; color: #2d7cff; border: 1px solid #2d7cff;
  background: #fff; border-radius: 3px; padding: 1px 6px; cursor: pointer;
}
.jd-meta {
  text-align: center; padding: 6px 0; font-size: 11px; color: #999;
  border-bottom: 1px solid #f0f0f0;
}

.jd-chat {
  flex: 1 1 auto; min-height: 0; overflow-y: auto;
  padding: 12px; background: #fff;
}
.jd-msg { margin-bottom: 14px; }
.jd-msg.system { text-align: center; margin: 10px 0; }
.jd-msg-system {
  display: inline-block; background: #f2f3f5; color: #666;
  padding: 8px 14px; border-radius: 4px; font-size: 12px; line-height: 1.6;
  text-align: left;
}
.jd-msg-head {
  display: flex; align-items: center; gap: 6px;
  margin-bottom: 4px; font-size: 11px; color: #999;
}
.jd-msg.buyer .jd-msg-head { justify-content: flex-start; }
.jd-msg.agent .jd-msg-head { justify-content: flex-end; }
.jd-msg-body {
  display: flex; align-items: flex-end; gap: 6px;
}
.jd-msg.buyer .jd-msg-body { justify-content: flex-start; }
.jd-msg.agent .jd-msg-body { justify-content: flex-end; flex-direction: row-reverse; }
.jd-read { font-size: 10px; color: #999; display: flex; align-items: center; gap: 2px; }
.jd-msg-bubble {
  max-width: 70%; padding: 8px 11px; border-radius: 4px;
  background: #fff; border: 1px solid #e5e5e5; color: #333;
  font-size: 13px; line-height: 1.6; word-break: break-word; white-space: pre-wrap;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.jd-msg.agent .jd-msg-bubble { border-color: #c6e0ff; }

.jd-emojis {
  display: flex; gap: 4px; padding: 6px 12px;
  background: #fff; border-top: 1px solid #f0f0f0;
  overflow-x: auto;
}
.jd-emoji {
  width: 26px; height: 26px; font-size: 15px;
  border: none; background: transparent; cursor: pointer; border-radius: 3px;
  display: flex; align-items: center; justify-content: center;
}
.jd-emoji:hover { background: #f2f3f5; }

.jd-tools {
  display: flex; align-items: center; gap: 4px;
  padding: 6px 12px; border-top: 1px solid #f0f0f0; background: #fff;
}
.jd-tool {
  width: 28px; height: 28px; border: none; background: transparent;
  color: #666; border-radius: 3px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.jd-tool:hover { background: #f2f3f5; color: #333; }
.jd-tool.off { opacity: .45; }
.jd-toolsep { flex: 1 1 auto; }

.jd-input {
  padding: 8px 12px 12px; border-top: 1px solid #f0f0f0; background: #fff;
}
.jd-input textarea {
  width: 100%; border: none; resize: none; outline: none;
  font-size: 13px; line-height: 1.6; color: #333; background: transparent;
}
.jd-input-btns {
  display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin-top: 6px;
}
.jd-count { font-size: 11px; color: #999; }
.jd-btn {
  padding: 5px 14px; border-radius: 4px; border: 1px solid #e5e5e5;
  background: #fff; color: #333; font-size: 12px; cursor: pointer;
}
.jd-btn:hover { border-color: #2d7cff; color: #2d7cff; }
.jd-btn.primary {
  background: #2d7cff; color: #fff; border-color: #2d7cff;
}
.jd-btn.primary:hover { background: #1a6eff; }

.jd-aside {
  display: flex; flex-direction: column; min-height: 0;
  background: #fff; border-left: 1px solid #e5e5e5;
}
.jd-tabs {
  display: flex; align-items: center; gap: 2px;
  padding: 8px; border-bottom: 1px solid #f0f0f0; overflow-x: auto;
}
.jd-tab {
  flex: 0 0 auto; padding: 4px 8px; border: none; background: transparent;
  color: #666; font-size: 12px; cursor: pointer; border-radius: 3px;
}
.jd-tab:hover { color: #2d7cff; }
.jd-tab.active { color: #2d7cff; background: #eaf2ff; }
.jd-tab-icon {
  width: 22px; height: 22px; border: none; background: transparent;
  color: #999; display: flex; align-items: center; justify-content: center;
  margin-left: auto; cursor: pointer;
}
.jd-info-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; }

.jd-userinfo { padding: 12px; border-bottom: 1px solid #f0f0f0; }
.jd-user-hd {
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 10px;
}
.jd-user-name { font-weight: 500; color: #333; font-size: 14px; }
.jd-user-rate {
  font-size: 10px; color: #fff; background: #52c41a; padding: 1px 5px; border-radius: 3px;
}
.jd-user-plus {
  font-size: 10px; color: #fff; background: #722ed1; padding: 1px 5px; border-radius: 3px;
}
.jd-user-set {
  margin-left: auto; font-size: 11px; color: #2d7cff; cursor: pointer;
}
.jd-user-rows { display: flex; flex-direction: column; gap: 6px; }
.jd-user-row { display: flex; font-size: 12px; }
.jd-user-k { color: #999; width: 70px; flex: 0 0 auto; }
.jd-user-v { color: #333; }
.jd-user-btns {
  display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px;
}
.jd-user-btn {
  flex: 1 1 calc(50% - 6px); padding: 5px 0;
  border: 1px solid #2d7cff; color: #2d7cff; background: #fff;
  border-radius: 4px; font-size: 12px; cursor: pointer;
}
.jd-user-btn:hover { background: #eaf2ff; }

.jd-orders-tabs {
  display: flex; gap: 12px; padding: 10px 12px 0;
  border-bottom: 1px solid #f0f0f0;
}
.jd-orders-tab {
  border: none; background: transparent; color: #666; font-size: 12px;
  padding-bottom: 8px; cursor: pointer; border-bottom: 2px solid transparent;
}
.jd-orders-tab.active { color: #2d7cff; border-bottom-color: #2d7cff; }
.jd-orders-filters {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  padding: 8px 12px; font-size: 11px; color: #666;
}
.jd-orders-filter.active { color: #2d7cff; }
.jd-orders-search {
  width: 80px; border: 1px solid #e5e5e5; border-radius: 3px;
  padding: 2px 6px; font-size: 11px; outline: none;
}
.jd-empty {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 30px 12px; color: #999; font-size: 12px;
}
.jd-empty-dog { font-size: 40px; margin-bottom: 6px; }
.jd-order-empty { padding: 20px; text-align: center; color: #999; font-size: 12px; }

@media (max-width: 1180px) {
  .jd-body { grid-template-columns: 64px minmax(0, 1fr) 260px; }
}
@media (max-width: 980px) {
  .jd-body { grid-template-columns: 64px minmax(0, 1fr); }
  .jd-aside { display: none; }
}

/* ========================================================================
   v=20260906g 抖音飞鸽真实工作台（顶店铺栏 / 左会话列表 / 中聊天 / 右订单）
   ========================================================================= */

.dy-wb {
  display: flex;
  flex-direction: column;
  height: calc(100vh - 200px);
  min-height: 620px;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 6px 24px rgba(0, 0, 0, .08);
  background: #fff;
}

/* ---------- 顶部店铺栏 ---------- */
.dy-topbar {
  height: 50px;
  background: #F6F7F9;
  border-bottom: 1px solid #E5E6EB;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 12px;
  flex-shrink: 0;
}
.dy-topbar-left {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.dy-top-new {
  width: 26px; height: 26px; border-radius: 6px;
  border: 1px solid #D5D8DE; background: #fff;
  color: #5A6068; display: flex; align-items: center; justify-content: center;
  cursor: pointer; flex-shrink: 0;
}
.dy-topbar-tabs {
  display: flex; align-items: center; gap: 4px;
}
.dy-top-tab {
  display: flex; align-items: center; gap: 6px;
  padding: 5px 10px; border-radius: 6px 6px 0 0;
  border: 1px solid transparent; border-bottom: 0;
  background: transparent; cursor: pointer;
  font-size: 12.5px; color: #5A6068;
}
.dy-top-tab.active {
  background: #fff; border-color: #E5E6EB;
  color: #1F2330; font-weight: 600;
}
.dy-top-tab-av {
  width: 18px; height: 18px; border-radius: 4px;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 9px; font-weight: 600;
}
.dy-top-tab-name {
  max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dy-topbar-search {
  flex: 1; max-width: 420px; margin: 0 16px;
  display: flex; align-items: center; gap: 6px;
  background: #fff; border: 1px solid #E5E6EB; border-radius: 6px;
  padding: 0 8px; height: 32px;
}
.dy-topbar-search-ico { color: #9A9FA8; display: flex; }
.dy-topbar-search input {
  flex: 1; border: 0; outline: none; font-size: 12.5px; color: #1F2330; min-width: 0;
  background: transparent;
}
.dy-topbar-search-go {
  background: transparent; border: 0; color: var(--sk-accent);
  font-size: 12px; cursor: pointer; padding: 2px 4px;
}
.dy-topbar-acts {
  display: flex; align-items: center; gap: 2px;
}
.dy-topbar-act {
  width: 28px; height: 28px; border-radius: 6px;
  border: 0; background: transparent; color: #5A6068;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
}
.dy-topbar-act:hover { background: #E5E6EB; }
.dy-topbar-act.close:hover { background: #FFE5E5; color: #E5462B; }

/* ---------- 三栏 body ---------- */
.dy-body {
  flex: 1; min-height: 0;
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr) 320px;
}

/* ---------- 左栏：会话列表 ---------- */
.dy-side {
  background: #fff;
  border-right: 1px solid #F0F1F4;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.dy-side-hd {
  padding: 10px 12px;
  border-bottom: 1px solid #F0F1F4;
}
.dy-side-tip {
  font-size: 11.5px; color: #5A6068; margin-bottom: 8px;
  display: flex; align-items: center; gap: 4px;
}
.dy-side-tip-ico { color: var(--sk-accent); display: flex; }
.dy-side-link { color: var(--sk-accent); text-decoration: none; margin-left: 4px; }
.dy-side-search {
  display: flex; align-items: center; gap: 6px;
  background: #F5F6F8; border-radius: 6px; padding: 6px 8px;
}
.dy-side-search input {
  flex: 1; border: 0; background: transparent; outline: none;
  font-size: 12px; color: #1F2330; min-width: 0;
}
.dy-side-search-ico { color: #9A9FA8; display: flex; }
.dy-side-tabs {
  display: flex; padding: 8px 12px 0; gap: 16px;
  border-bottom: 1px solid #F0F1F4; flex-shrink: 0;
}
.dy-side-tab {
  background: transparent; border: 0; padding: 6px 0;
  font-size: 12.5px; color: #5A6068; cursor: pointer; position: relative;
}
.dy-side-tab.active { color: #1F2330; font-weight: 600; }
.dy-side-tab.active::after {
  content: ""; position: absolute; left: 50%; bottom: -1px; transform: translateX(-50%);
  width: 26px; height: 2px; background: var(--sk-accent); border-radius: 1px;
}
.dy-side-groups {
  flex: 1; overflow: auto; padding: 4px 0 12px;
}
.dy-group { border-bottom: 1px solid transparent; }
.dy-group-hd {
  display: flex; align-items: center; gap: 6px; padding: 8px 12px;
  font-size: 12px; color: #5A6068; cursor: pointer;
}
.dy-group-hd:hover { background: #FAFAFB; }
.dy-arrow { display: flex; transition: transform .15s ease; color: #B3B7BE; }
.dy-group.open > .dy-group-hd .dy-arrow { transform: rotate(180deg); }
.dy-group-n { color: #9A9FA8; margin-left: 2px; }
.dy-buyers { padding: 2px 8px 6px; }
.dy-buyer {
  display: flex; gap: 8px; align-items: center; padding: 8px;
  border-radius: 8px; cursor: pointer; transition: background .15s ease;
  position: relative;
}
.dy-buyer:hover { background: #F5F6F8; }
.dy-buyer.active { background: #E8F1FF; }
.dy-buyer-av {
  width: 32px; height: 32px; border-radius: 6px; color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 600; flex-shrink: 0;
}
.dy-buyer-main { flex: 1; min-width: 0; }
.dy-buyer-nick {
  font-size: 12.5px; font-weight: 600; color: #1F2330;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dy-buyer-last {
  font-size: 11.5px; color: #8A8F98;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 2px;
}
.dy-buyer-time { font-size: 10.5px; color: #B3B7BE; flex-shrink: 0; }
.dy-now {
  font-size: 9.5px; padding: 1px 5px; border-radius: 8px;
  background: var(--sk-accent); color: #fff;
  margin-left: 4px; vertical-align: 1px;
}
.dy-empty { padding: 20px 12px; font-size: 12px; color: #8A8F98; text-align: center; }

/* ---------- 中间主会话区 ---------- */
.dy-main {
  background: #FAFAFB;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.dy-main-hd {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 16px; border-bottom: 1px solid #F0F1F4;
  background: #fff; flex-shrink: 0;
}
.dy-main-av {
  width: 36px; height: 36px; border-radius: 8px;
  color: #fff; display: flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 600;
}
.dy-main-id { flex: 1; min-width: 0; }
.dy-main-nick {
  display: flex; align-items: center; gap: 6px;
  flex-wrap: wrap;
}
.dy-main-name { font-size: 14px; font-weight: 700; color: #1F2330; }
.dy-note {
  background: transparent; border: 0;
  font-size: 11px; color: var(--sk-accent); padding: 2px 6px; border-radius: 4px;
  display: inline-flex; align-items: center; gap: 3px; cursor: pointer;
}
.dy-note:hover { background: rgba(45, 124, 255, .08); }
.dy-warn {
  background: transparent; border: 0; width: 24px; height: 24px;
  border-radius: 4px; color: #8A8F98; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.dy-warn:hover { background: #F0F1F4; }
.dy-main-sub {
  font-size: 11.5px; color: #8A8F98;
  margin-top: 3px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.dy-spend { font-weight: 500; color: #5A6068; }
.dy-spend b { color: #E22E1F; font-weight: 700; }
.dy-main-acts {
  display: flex; gap: 2px; flex-shrink: 0;
}
.dy-mact {
  background: transparent; border: 0; width: 30px; height: 30px;
  border-radius: 6px; cursor: pointer; color: #5A6068;
  display: flex; align-items: center; justify-content: center;
}
.dy-mact:hover { background: #F0F1F4; }

/* 聊天气泡（真实飞鸽：买家蓝色左，客服白色右） */
.dy-chat {
  flex: 1; min-height: 0; overflow: auto;
  padding: 16px 18px; background: #FAFAFB;
  scroll-behavior: smooth;
}
.dy-daybar {
  text-align: center; margin: 8px 0 14px;
}
.dy-daybar span {
  background: rgba(0, 0, 0, .04); color: #8A8F98; font-size: 11px;
  padding: 3px 10px; border-radius: 999px;
}
.dy-msg {
  display: flex; gap: 8px; margin-bottom: 16px; align-items: flex-start;
}
.dy-msg.buyer { flex-direction: row; }
.dy-msg.agent { flex-direction: row-reverse; }
.dy-msg.cont { margin-top: -8px; }
.dy-msg-head {
  display: flex; gap: 8px; align-items: center;
  font-size: 11px; color: #8A8F98; margin-bottom: 4px;
}
.dy-msg.agent .dy-msg-head { justify-content: flex-end; }
.dy-msg-who { color: #5A6068; font-weight: 600; }
.dy-msg-time { color: #B3B7BE; }
.dy-msg-body {
  max-width: min(520px, 70%);
  display: flex; align-items: flex-end; gap: 6px;
}
.dy-msg.agent .dy-msg-body { flex-direction: row-reverse; }
.dy-msg-bubble {
  padding: 9px 13px; border-radius: 12px;
  font-size: 13.5px; line-height: 1.6;
  word-break: break-word;
}
.dy-msg.buyer .dy-msg-bubble {
  background: #EAF2FF; color: #1F2330;
}
.dy-msg.agent .dy-msg-bubble {
  background: #fff; color: #1F2330;
  border: 1px solid #E5E6EB;
}
.dy-read {
  font-size: 10.5px; color: #8A8F98; white-space: nowrap; margin-bottom: 2px;
  display: inline-flex; align-items: center; gap: 3px;
}
.dy-read svg { opacity: .9; }
.dy-read.muted { color: #B3B7BE; }
.dy-msg.system {
  justify-content: center; margin: 10px 0;
}
.dy-msg-system {
  background: rgba(0, 0, 0, .04); color: #8A8F98;
  font-size: 11px; padding: 4px 12px; border-radius: 999px;
}

/* 空态 */
.dy-blank {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-height: 60vh; gap: 12px; color: #5A6068;
}
.dy-blank-pic {
  width: 78px; height: 78px; border-radius: 50%;
  background: #fff; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .06);
  color: var(--sk-accent);
}
.dy-blank-h { font-size: 14px; font-weight: 600; color: #1F2330; }
.dy-blank-s { font-size: 12.5px; color: #8A8F98; }
.dy-blank-tip {
  margin-top: 12px;
  background: rgba(45, 124, 255, .08); color: var(--sk-accent);
  border-radius: 999px; padding: 6px 14px;
  font-size: 11.5px;
}

/* 检查项 */
.dy-checks { padding: 6px 18px; }

/* 底部工具栏 */
.dy-tools {
  display: flex; align-items: center; gap: 6px;
  padding: 8px 16px 0; background: #fff;
  border-top: 1px solid #F0F1F4; flex-shrink: 0;
}
.dy-tool {
  width: 30px; height: 30px; border-radius: 6px;
  border: 0; background: transparent; color: #5A6068;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
}
.dy-tool:hover { background: #F0F1F4; }
.dy-tool.off { opacity: .45; }
.dy-tool.off:hover { background: transparent; }

/* 输入区 */
.dy-input {
  border-top: 1px solid #F0F1F4; padding: 10px 16px 14px;
  background: #fff; flex-shrink: 0;
}
.dy-input textarea {
  width: 100%; resize: vertical; min-height: 60px; max-height: 180px;
  border: 0; border-radius: 0;
  padding: 4px 0; font-size: 13.5px; line-height: 1.5;
  font-family: inherit; outline: none;
  background: transparent;
}
.dy-input-btns {
  display: flex; align-items: center; justify-content: flex-end; gap: 10px;
  margin-top: 6px;
}
.dy-count { font-size: 11px; color: #B3B7BE; margin-right: auto; }
.dy-btn {
  background: #fff; color: #5A6068;
  border: 1px solid #E5E6EB; border-radius: 6px;
  padding: 6px 14px; font-size: 12.5px; cursor: pointer;
}
.dy-btn.primary {
  background: var(--sk-accent); color: #fff; border-color: var(--sk-accent);
}
.dy-btn:hover:not(.primary) { background: #F5F6F8; }
.dy-btn.primary:hover { filter: brightness(1.07); }

/* ---------- 右栏 ---------- */
.dy-aside {
  background: var(--sk-page-bg);
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.dy-info {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
.dy-tabs {
  display: flex; align-items: center; gap: 4px;
  padding: 0 12px;
  background: #fff; border-bottom: 1px solid #F0F1F4;
  flex-shrink: 0;
}
.dy-tab {
  background: transparent; border: 0; padding: 12px 10px 11px;
  font-size: 13px; color: #5A6068; cursor: pointer;
  position: relative;
}
.dy-tab.active { color: var(--sk-accent); font-weight: 600; }
.dy-tab.active::after {
  content: ""; position: absolute; left: 50%; bottom: -1px; transform: translateX(-50%);
  width: 24px; height: 2px; background: var(--sk-accent); border-radius: 1px;
}
.dy-tab-icon {
  margin-left: auto; background: transparent; border: 0;
  width: 28px; height: 28px; border-radius: 6px; cursor: pointer;
  color: #8A8F98; display: flex; align-items: center; justify-content: center;
}
.dy-tab-icon:hover { background: #F0F1F4; color: #5A6068; }
.dy-info-body {
  flex: 1; overflow: auto; padding: 12px; background: #FAFAFB;
}

/* 智能客服切换条 */
.dy-smart {
  display: flex; align-items: center; gap: 8px;
  background: #fff; border-radius: 8px; padding: 10px 12px;
  margin-bottom: 8px; box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
  font-size: 12.5px;
}
.dy-smart-h { color: #8A8F98; }
.dy-smart-mid {
  color: #1F2330; font-weight: 600; flex: 1; min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dy-smart-toggle { color: #8A8F98; display: flex; }

/* 状态过滤器 */
.dy-filter {
  display: flex; align-items: center; gap: 4px; margin-bottom: 8px;
  background: #fff; border-radius: 8px; padding: 6px 8px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .04); flex-wrap: wrap;
}
.dy-filter-tab {
  background: transparent; border: 0; padding: 5px 8px;
  font-size: 11.5px; color: #5A6068; cursor: pointer;
  border-radius: 4px; white-space: nowrap;
}
.dy-filter-tab.active { background: var(--sk-accent); color: #fff; }
.dy-filter-n { font-size: 10px; opacity: .7; margin-left: 2px; }
.dy-filter-re, .dy-filter-search {
  margin-left: auto; background: transparent; border: 0;
  width: 26px; height: 26px; border-radius: 4px; cursor: pointer;
  color: #8A8F98; display: flex; align-items: center; justify-content: center;
}
.dy-filter-search { margin-left: 2px; }
.dy-filter-re:hover, .dy-filter-search:hover { background: #F0F1F4; }

/* 订单卡片（紧凑折叠式） */
.dy-orders { display: flex; flex-direction: column; gap: 10px; }
.dy-order {
  background: #fff; border-radius: 10px; padding: 12px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
  font-size: 12.5px;
}
.dy-order-hd {
  display: flex; align-items: center; gap: 6px;
  padding-bottom: 8px; border-bottom: 1px dashed #EFEFF1;
  font-size: 11.5px; color: #5A6068; flex-wrap: wrap;
}
.dy-order-tag {
  padding: 2px 6px; border-radius: 4px; font-size: 11px;
}
.dy-order-tag.ok { background: rgba(45, 124, 255, .12); color: var(--sk-accent); }
.dy-order-tag.light { background: #F5F6F8; color: #5A6068; }
.dy-order-no {
  margin-left: auto; color: #8A8F98;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11.5px;
}
.dy-order-copy {
  background: transparent; border: 0; color: #B3B7BE;
  width: 20px; height: 20px; border-radius: 4px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
}
.dy-order-copy:hover { background: #F0F1F4; color: #5A6068; }
.dy-order-body {
  display: flex; gap: 10px; padding: 10px 0;
}
.dy-order-pic {
  width: 44px; height: 44px; border-radius: 6px;
  background: linear-gradient(135deg, #F0F1F4, #E5E6EB);
  display: flex; align-items: center; justify-content: center;
  font-weight: 600; color: #5A6068; flex-shrink: 0;
}
.dy-order-info { flex: 1; min-width: 0; }
.dy-order-name {
  font-size: 12.5px; color: #1F2330; font-weight: 500;
  margin-bottom: 4px; line-height: 1.4;
}
.dy-order-attrs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.dy-order-spec, .dy-order-code {
  font-size: 11px; color: #8A8F98;
}
.dy-order-spec::before { content: "规格 "; color: #B3B7BE; }
.dy-order-code::before { content: "编码 "; color: #B3B7BE; }
.dy-order-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.dy-order-tag2 {
  font-size: 10.5px; color: var(--sk-accent);
  background: rgba(45, 124, 255, .08); padding: 1px 6px; border-radius: 3px;
}
.dy-order-btns {
  display: flex; gap: 6px; padding: 8px 0;
  border-top: 1px dashed #EFEFF1; border-bottom: 1px dashed #EFEFF1;
}
.dy-order-act {
  background: var(--sk-accent); color: #fff; border: 0;
  border-radius: 4px; padding: 4px 10px;
  font-size: 11.5px; cursor: pointer;
}
.dy-order-act.light {
  background: transparent; color: var(--sk-accent);
  border: 1px solid var(--sk-accent);
}
.dy-order-pay {
  padding-top: 10px;
  font-size: 12px; color: #5A6068;
}
.dy-price { color: #E22E1F; font-weight: 700; font-size: 16px; margin-left: 4px; }
.dy-pay-tip { font-size: 11px; color: #8A8F98; margin-left: 4px; }
.dy-order-meta { padding-top: 8px; display: flex; flex-direction: column; gap: 4px; }
.dy-meta-row { display: flex; gap: 8px; font-size: 11.5px; }
.dy-k { color: #8A8F98; flex: 0 0 60px; }
.dy-v { color: #1F2330; flex: 1; min-width: 0; word-break: break-all; }
.dy-meta-pay { color: #8A8F98; }
.dy-tag-ok {
  font-size: 10.5px; color: #2BA471;
  background: rgba(43, 164, 113, .1); padding: 1px 5px; border-radius: 3px;
}
.dy-order-empty { padding: 30px 12px; text-align: center; color: #8A8F98; font-size: 12.5px; }

/* 商品网格 */
.dy-goods { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.dy-goods-item {
  background: #fff; border-radius: 8px; padding: 8px;
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  border: 1px solid transparent; cursor: pointer; transition: all .15s ease;
}
.dy-goods-item:hover { border-color: var(--sk-accent); transform: translateY(-2px); }
.dy-goods-pic {
  width: 56px; height: 56px; border-radius: 6px;
  background: linear-gradient(135deg, #F0F1F4, #E5E6EB);
  display: flex; align-items: center; justify-content: center;
  font-weight: 600; color: #5A6068;
}
.dy-goods-name {
  font-size: 11.5px; color: #1F2330;
  width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  text-align: center;
}

/* 短语列表 */
.dy-phrase { display: flex; flex-direction: column; gap: 6px; }
.dy-phrase-item {
  background: #fff; border: 0; padding: 8px 10px;
  border-radius: 6px; text-align: left; cursor: pointer;
  display: flex; flex-direction: column; gap: 2px;
  transition: background .15s ease;
}
.dy-phrase-item:hover { background: rgba(45, 124, 255, .06); }
.dy-phrase-t { font-size: 12.5px; font-weight: 600; color: #1F2330; }
.dy-phrase-c {
  font-size: 11.5px; color: #8A8F98;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* 会话搜索 */
.dy-search-box { display: flex; gap: 6px; margin-bottom: 12px; }
.dy-search-input {
  flex: 1; padding: 7px 10px; border: 1px solid #E5E6EB; border-radius: 6px;
  font-size: 12.5px; outline: none;
}
.dy-search-input:focus { border-color: var(--sk-accent); }
.dy-search-go {
  background: var(--sk-accent); color: #fff; border: 0;
  border-radius: 6px; padding: 6px 12px; font-size: 12.5px; cursor: pointer;
}

/* 滚动条 */
.dy-side-groups::-webkit-scrollbar, .dy-chat::-webkit-scrollbar,
.dy-info-body::-webkit-scrollbar, .dy-buyers::-webkit-scrollbar,
.dy-body::-webkit-scrollbar {
  width: 6px; height: 6px;
}
.dy-side-groups::-webkit-scrollbar-thumb, .dy-chat::-webkit-scrollbar-thumb,
.dy-info-body::-webkit-scrollbar-thumb, .dy-buyers::-webkit-scrollbar-thumb,
.dy-body::-webkit-scrollbar-thumb {
  background: #D5D8DE; border-radius: 3px;
}
.dy-side-groups::-webkit-scrollbar-thumb:hover, .dy-chat::-webkit-scrollbar-thumb:hover,
.dy-info-body::-webkit-scrollbar-thumb:hover, .dy-buyers::-webkit-scrollbar-thumb:hover,
.dy-body::-webkit-scrollbar-thumb:hover {
  background: #B3B7BE;
}

/* 自适应 */
@media (max-width: 1280px) {
  .dy-body { grid-template-columns: 200px minmax(0, 1fr) 280px; }
}
@media (max-width: 1080px) {
  .dy-body { grid-template-columns: 180px minmax(0, 1fr); }
  .dy-aside { display: none; }
  .dy-topbar-search { display: none; }
}
@media (max-width: 760px) {
  .dy-body { grid-template-columns: 1fr; }
  .dy-side { display: none; }
  .dy-main-hd { flex-wrap: wrap; }
}

/* ========================================================================
   v=20260906n 拼多多商家真实工作台（左侧白灰导航 / 顶指标栏 / 中聊天 / 右订单）
   ========================================================================= */

.pdd-wb {
  display: flex; flex-direction: column;
  height: calc(100vh - 200px); min-height: 620px;
  border-radius: 10px; overflow: hidden;
  box-shadow: 0 6px 24px rgba(0, 0, 0, .08);
  background: #f5f5f5; color: #333;
  font-size: 13px;
}
.pdd-topbar {
  display: flex; align-items: center; gap: 0;
  height: 46px; flex: 0 0 46px;
  background: #fff; color: #333;
  border-bottom: 1px solid #f0f0f0;
  padding: 0 12px;
}
.pdd-metric {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-width: 110px; padding: 0 14px; border-right: 1px solid #f0f0f0;
}
.pdd-metric:last-of-type { border-right: none; }
.pdd-metric-k { font-size: 11px; color: #999; }
.pdd-metric-v { font-size: 14px; font-weight: 600; }
.pdd-topbar-expand {
  margin-left: auto; background: transparent; border: none; color: #666;
  font-size: 12px; cursor: pointer; display: inline-flex; align-items: center; gap: 2px;
}
.pdd-topbar-expand .qn-ico { transform: rotate(180deg); }
.pdd-topbar-acts { display: flex; align-items: center; gap: 6px; margin-left: 12px; }
.pdd-topbar-act {
  width: 26px; height: 26px; border: none; background: transparent; color: #666;
  display: flex; align-items: center; justify-content: center; cursor: pointer; border-radius: 4px;
}
.pdd-topbar-act:hover { background: #f5f5f5; }
.pdd-topbar-act.close:hover { background: #ff4d4f; color: #fff; }

.pdd-body {
  display: flex; flex: 1 1 auto; min-height: 0;
}
.pdd-side {
  display: flex; flex: 0 0 auto;
  width: 316px; min-width: 0;
  border-right: 1px solid #f0f0f0;
}
.pdd-nav {
  width: 56px; flex: 0 0 56px;
  display: flex; flex-direction: column; align-items: center;
  background: #fff; color: #666;
  border-right: 1px solid #f0f0f0;
  padding: 8px 0;
}
.pdd-nav-avatar {
  width: 34px; height: 34px; border-radius: 50%;
  border: none; background: #f0f0f0; color: #666;
  display: flex; align-items: center; justify-content: center; cursor: pointer; margin-bottom: 10px;
}
.pdd-nav-items { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.pdd-nav-item {
  width: 40px; height: 40px; border: none; border-radius: 8px;
  background: transparent; color: #666;
  display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.pdd-nav-item:hover, .pdd-nav-item.active { background: #fff1f0; color: #E22E1F; }
.pdd-nav-bottom {
  width: 32px; height: 32px; border-radius: 50%;
  border: none; background: #f0f0f0; color: #666;
  display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.pdd-list {
  flex: 1 1 auto; min-width: 0;
  display: flex; flex-direction: column;
  background: #fff;
}
.pdd-side-hd {
  display: flex; align-items: center; gap: 6px;
  padding: 8px;
}
.pdd-search {
  flex: 1; display: flex; align-items: center;
  border: 1px solid #e0e0e0; border-radius: 4px; overflow: hidden; background: #fafafa;
}
.pdd-search-ico { display: flex; padding: 0 6px; color: #999; }
.pdd-search input {
  flex: 1; border: none; background: transparent; padding: 5px 0; font-size: 12px; outline: none;
}
.pdd-search-btn {
  border: none; border-left: 1px solid #e0e0e0; background: #fff; color: #666;
  font-size: 12px; padding: 0 8px; cursor: pointer;
}
.pdd-search-plus {
  width: 28px; height: 28px; border: 1px solid #e0e0e0; border-radius: 4px;
  background: #fff; color: #999; display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.pdd-tabs {
  display: flex; align-items: center; gap: 4px;
  padding: 0 8px 8px; border-bottom: 1px solid #f0f0f0;
}
.pdd-tab {
  flex: 1; padding: 5px 0; border: none; border-radius: 4px;
  background: transparent; color: #666; font-size: 12px; cursor: pointer; position: relative;
}
.pdd-tab.active { background: #f5f5f5; color: #333; font-weight: 500; }
.pdd-tab-dot {
  position: absolute; top: 2px; right: 4px;
  min-width: 14px; height: 14px; line-height: 14px; text-align: center;
  background: #ff4d4f; color: #fff; font-size: 10px; border-radius: 7px; padding: 0 3px;
}
.pdd-groups {
  flex: 1 1 auto; min-height: 0; overflow-y: auto;
}
.pdd-group { border-bottom: 1px solid #f5f5f5; }
.pdd-group-hd {
  display: flex; align-items: center; gap: 4px;
  padding: 8px 10px; font-size: 12px; color: #666; cursor: pointer;
}
.pdd-group-hd .pdd-arrow { display: inline-flex; color: #999; transform: rotate(-90deg); }
.pdd-group.open .pdd-arrow { transform: rotate(0deg); }
.pdd-group-name { flex: 1; }
.pdd-refresh {
  border: none; background: transparent; color: #2d7cff; font-size: 11px; cursor: pointer;
  display: inline-flex; align-items: center; gap: 2px;
}
.pdd-group-n { color: #999; margin-left: 2px; }
.pdd-group-body { padding: 0 8px 6px; }
.pdd-buyer {
  display: flex; align-items: center; gap: 8px;
  padding: 7px 8px; border-radius: 4px; cursor: pointer;
}
.pdd-buyer:hover { background: #f7f7f7; }
.pdd-buyer.active { background: #fff1f0; }
.pdd-buyer-av {
  width: 32px; height: 32px; border-radius: 50%;
  color: #fff; font-size: 12px;
  display: flex; align-items: center; justify-content: center; flex: 0 0 auto;
}
.pdd-buyer-main { flex: 1; min-width: 0; }
.pdd-buyer-nick {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 12px; color: #333; margin-bottom: 2px;
}
.pdd-buyer-time { font-size: 10px; color: #999; }
.pdd-buyer-tag {
  font-size: 10px; color: #ff4d4f; background: #fff1f0;
  border: 1px solid #ffa39e; padding: 0 3px; border-radius: 2px; margin-left: 4px;
}
.pdd-buyer-last {
  font-size: 11px; color: #999; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.pdd-main {
  flex: 1 1 auto; min-width: 0;
  display: flex; flex-direction: column;
  background: #fff;
}
.pdd-main-hd {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 14px; border-bottom: 1px solid #f0f0f0;
}
.pdd-main-id { display: flex; align-items: center; gap: 8px; }
.pdd-main-av {
  width: 34px; height: 34px; border-radius: 50%;
  color: #fff; font-size: 13px;
  display: flex; align-items: center; justify-content: center;
}
.pdd-main-name { font-size: 14px; color: #333; font-weight: 500; }
.pdd-main-note {
  border: none; background: transparent; color: #999; font-size: 12px; cursor: pointer;
  display: inline-flex; align-items: center; gap: 2px;
}
.pdd-main-acts { display: flex; align-items: center; gap: 6px; }
.pdd-mact {
  width: 28px; height: 28px; border: none; border-radius: 4px;
  background: transparent; color: #999; display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.pdd-mact:hover { background: #f5f5f5; color: #E22E1F; }

.pdd-banner {
  display: flex; align-items: center; gap: 6px;
  margin: 0 14px; padding: 7px 10px;
  background: #FFFBE6; border: 1px solid #FFE58F; border-radius: 4px;
  color: #D48806; font-size: 12px;
}
.pdd-banner-ico { color: #FAAD14; display: inline-flex; }
.pdd-banner-link {
  border: none; background: transparent; color: #2d7cff; font-size: 12px; cursor: pointer; margin-left: 4px;
}
.pdd-banner-close {
  margin-left: auto; border: none; background: transparent; color: #999; cursor: pointer; display: inline-flex;
}

.pdd-chat {
  flex: 1 1 auto; min-height: 0; overflow-y: auto;
  padding: 10px 14px; background: #f5f5f5;
}
.pdd-chat-end {
  text-align: center; color: #999; font-size: 12px; margin: 6px 0 14px;
}
.pdd-chat-day {
  text-align: center; color: #999; font-size: 11px; margin: 10px 0;
}
.pdd-msg { margin-bottom: 14px; }
.pdd-msg.system { display: flex; justify-content: center; }
.pdd-msg-system {
  display: inline-block; max-width: 70%;
  padding: 6px 12px; border-radius: 4px;
  background: #e8e8e8; color: #666; font-size: 12px; line-height: 1.5;
  text-align: center;
}
.pdd-msg-meta {
  display: flex; align-items: center; gap: 6px;
  margin-bottom: 4px; font-size: 11px; color: #999;
}
.pdd-msg-body { display: flex; align-items: flex-end; gap: 6px; }
.pdd-msg-bubble {
  max-width: 70%; padding: 9px 12px; border-radius: 4px;
  font-size: 13px; line-height: 1.6; word-break: break-word;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.pdd-msg.agent { padding-right: 20%; }
.pdd-msg.agent .pdd-msg-meta { justify-content: flex-start; }
.pdd-msg.agent .pdd-msg-body { justify-content: flex-start; }
.pdd-msg.agent .pdd-msg-bubble {
  background: #E6F2FF; border: 1px solid #C2E0FF; color: #151515;
}
.pdd-msg.buyer { padding-left: 20%; }
.pdd-msg.buyer .pdd-msg-meta { justify-content: flex-end; }
.pdd-msg.buyer .pdd-msg-body { justify-content: flex-end; }
.pdd-msg.buyer .pdd-msg-bubble {
  background: #fff; border: 1px solid #e0e0e0; color: #151515;
}
.pdd-read { font-size: 11px; color: #999; }

.pdd-tools {
  display: flex; align-items: center; gap: 4px;
  padding: 6px 14px; border-top: 1px solid #f0f0f0; border-bottom: 1px solid #f0f0f0;
  background: #fff;
}
.pdd-tool {
  width: 32px; height: 32px; border: none; border-radius: 4px;
  background: transparent; color: #666; display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.pdd-tool:hover { background: #f5f5f5; color: #E22E1F; }

.pdd-compliance {
  display: flex; align-items: center; gap: 6px;
  padding: 6px 14px; background: #FFF1F0; border-bottom: 1px solid #FFCCC7;
  color: #CF1322; font-size: 12px;
}
.pdd-compliance-ico { display: inline-flex; }
.pdd-compliance b { font-weight: 500; }
.pdd-compliance-link {
  border: none; background: transparent; color: #2d7cff; font-size: 12px; cursor: pointer; margin-left: 4px;
}
.pdd-compliance-close {
  margin-left: auto; border: none; background: transparent; color: #999; cursor: pointer; display: inline-flex;
}

.pdd-input {
  padding: 8px 14px 10px; background: #fff;
}
.pdd-input-hint {
  display: flex; align-items: center; gap: 6px;
  padding: 5px 8px; margin-bottom: 6px;
  background: #FFFBE6; border: 1px solid #FFE58F; border-radius: 4px;
  color: #D48806; font-size: 11px; line-height: 1.4;
}
.pdd-input-hint-ico {
  width: 14px; height: 14px; border-radius: 50%;
  background: #FAAD14; color: #fff; font-size: 10px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; flex: 0 0 auto;
}
.pdd-input textarea {
  width: 100%; border: none; resize: none; outline: none;
  font-size: 13px; line-height: 1.5; background: transparent;
}
.pdd-input-btns {
  display: flex; justify-content: flex-end; gap: 8px; margin-top: 6px;
}
.pdd-btn {
  padding: 5px 14px; border: 1px solid #d9d9d9; border-radius: 4px;
  background: #fff; color: #666; font-size: 13px; cursor: pointer;
}
.pdd-btn.primary {
  background: #E22E1F; border-color: #E22E1F; color: #fff;
}
.pdd-btn.primary:hover { background: #c41e14; }

.pdd-aside {
  width: 320px; flex: 0 0 320px; min-width: 0;
  display: flex; flex-direction: column;
  background: #fff; border-left: 1px solid #f0f0f0;
}
.pdd-tabs2 {
  display: flex; align-items: center;
  border-bottom: 1px solid #f0f0f0;
}
.pdd-tab2 {
  flex: 1; padding: 10px 0; border: none; border-bottom: 2px solid transparent;
  background: transparent; color: #666; font-size: 12px; cursor: pointer;
}
.pdd-tab2.active { color: #E22E1F; border-bottom-color: #E22E1F; font-weight: 500; }
.pdd-info-body {
  flex: 1; min-height: 0; overflow-y: auto;
  padding: 10px;
}
.pdd-subtabs {
  display: flex; gap: 8px; margin-bottom: 10px;
}
.pdd-subtab {
  flex: 1; padding: 5px 0; border: 1px solid #e0e0e0; border-radius: 4px;
  background: #fff; color: #666; font-size: 12px; cursor: pointer;
}
.pdd-subtab.active { background: #E22E1F; border-color: #E22E1F; color: #fff; }
.pdd-filters {
  display: flex; flex-wrap: wrap; gap: 6px 10px;
  margin-bottom: 10px; font-size: 12px; color: #666;
}
.pdd-filter { cursor: pointer; }
.pdd-filter.active { color: #E22E1F; font-weight: 500; }
.pdd-order {
  border: 1px solid #f0f0f0; border-radius: 6px; overflow: hidden;
  margin-bottom: 10px;
}
.pdd-order-status {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 10px; background: #fafafa; border-bottom: 1px solid #f5f5f5;
  font-size: 12px;
}
.pdd-order-tag {
  color: #ff4d4f; font-weight: 500;
}
.pdd-order-date { color: #999; }
.pdd-order-goods {
  display: flex; gap: 8px; padding: 10px;
}
.pdd-order-pic {
  width: 56px; height: 56px; border-radius: 4px;
  background: #f0f0f0; color: #999; font-size: 11px;
  display: flex; align-items: center; justify-content: center; flex: 0 0 auto;
}
.pdd-order-info { flex: 1; min-width: 0; }
.pdd-order-name {
  font-size: 12px; color: #333; line-height: 1.4;
  overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  margin-bottom: 4px;
}
.pdd-order-row {
  display: flex; justify-content: space-between; align-items: center;
  font-size: 12px; margin-bottom: 4px;
}
.pdd-order-price { color: #151515; font-weight: 500; }
.pdd-order-num { color: #999; }
.pdd-order-service { font-size: 11px; }
.pdd-service-off { color: #999; background: #f5f5f5; padding: 1px 4px; border-radius: 2px; }
.pdd-order-fee {
  padding: 8px 10px; border-top: 1px solid #f5f5f5; font-size: 12px; color: #666;
}
.pdd-fee-row {
  display: flex; justify-content: space-between; margin-bottom: 3px;
}
.pdd-fee-total { color: #ff4d4f; font-weight: 500; }
.pdd-order-no {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 10px; border-top: 1px solid #f5f5f5; font-size: 12px; color: #999;
}
.pdd-order-remark {
  border: 1px solid #e0e0e0; border-radius: 4px; background: #fff; color: #666;
  font-size: 11px; padding: 2px 8px; cursor: pointer;
}
.pdd-order-logi {
  padding: 6px 10px; border-top: 1px dashed #f0f0f0;
  font-size: 11px; color: #999;
}
.pdd-order-btns {
  display: flex; gap: 8px; padding: 8px 10px; border-top: 1px solid #f5f5f5;
}
.pdd-order-btn {
  flex: 1; padding: 5px 0; border: 1px solid #e0e0e0; border-radius: 4px;
  background: #fff; color: #666; font-size: 12px; cursor: pointer;
}
.pdd-order-btn:hover { border-color: #E22E1F; color: #E22E1F; }
.pdd-order-foot {
  text-align: center; color: #999; font-size: 11px; padding: 10px 0;
}
.pdd-empty {
  text-align: center; color: #999; font-size: 12px; padding: 30px 0;
}
.pdd-checks {
  max-height: 120px; overflow-y: auto;
  padding: 8px 14px; background: #fff;
}

/* 拼多多滚动条 */
.pdd-groups, .pdd-chat, .pdd-info-body, .pdd-checks {
  scrollbar-width: thin; scrollbar-color: #d9dde3 transparent;
}
.pdd-groups::-webkit-scrollbar, .pdd-chat::-webkit-scrollbar,
.pdd-info-body::-webkit-scrollbar, .pdd-checks::-webkit-scrollbar { width: 6px; height: 6px; }
.pdd-groups::-webkit-scrollbar-thumb, .pdd-chat::-webkit-scrollbar-thumb,
.pdd-info-body::-webkit-scrollbar-thumb, .pdd-checks::-webkit-scrollbar-thumb {
  background: #d9dde3; border-radius: 3px;
}

/* 自适应 */
@media (max-width: 1280px) {
  .pdd-side { width: 286px; }
  .pdd-aside { width: 280px; flex: 0 0 280px; }
}
@media (max-width: 1080px) {
  .pdd-aside { display: none; }
  .pdd-side { width: 260px; }
}
@media (max-width: 760px) {
  .pdd-side { display: none; }
  .pdd-topbar-metric:nth-child(n+3) { display: none; }
}

/* ========================================================================
   v=20260906l 快手商家工作台（左侧蓝导航 / 顶指标栏 / 中聊天 / 右订单）
   ========================================================================= */

.ks-wb {
  display: flex; flex-direction: column;
  height: calc(100vh - 200px); min-height: 620px;
  border-radius: 10px; overflow: hidden;
  box-shadow: 0 6px 24px rgba(0, 0, 0, .08);
  background: #f5f7fa; color: #333;
  font-size: 13px;
}
.ks-topbar {
  display: flex; align-items: center; gap: 0;
  height: 46px; flex: 0 0 46px;
  background: #2E64FF; color: #fff;
  padding: 0 12px;
}
.ks-topbar-metric {
  display: flex; align-items: center; gap: 6px;
  min-width: 140px; padding: 0 16px; border-right: 1px solid rgba(255,255,255,.15);
}
.ks-topbar-metric:last-of-type { border-right: none; }
.ks-topbar-k { font-size: 12px; color: rgba(255,255,255,.85); }
.ks-topbar-v { font-size: 13px; font-weight: 500; }
.ks-topbar-link { color: #fff; text-decoration: underline; cursor: pointer; }
.ks-topbar-acts { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.ks-topbar-act {
  width: 26px; height: 26px; border: none; background: transparent; color: #fff;
  display: flex; align-items: center; justify-content: center; cursor: pointer; border-radius: 4px;
}
.ks-topbar-act:hover { background: rgba(255,255,255,.15); }
.ks-topbar-act.close:hover { background: #ff4d4f; }

.ks-body { display: flex; flex: 1 1 auto; min-height: 0; }
.ks-side {
  display: flex; flex: 0 0 auto;
  width: 316px; min-width: 0;
  border-right: 1px solid #e5e8ef;
}
.ks-nav {
  width: 56px; flex: 0 0 56px;
  display: flex; flex-direction: column; align-items: center;
  background: #2E64FF; color: rgba(255,255,255,.85);
  padding: 8px 0;
}
.ks-nav-avatar {
  width: 34px; height: 34px; border-radius: 50%;
  border: none; background: rgba(255,255,255,.2); color: #fff;
  display: flex; align-items: center; justify-content: center; cursor: pointer; margin-bottom: 10px;
}
.ks-nav-items { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.ks-nav-item {
  width: 48px; border: none; border-radius: 8px;
  background: transparent; color: rgba(255,255,255,.85);
  display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: pointer;
  padding: 6px 0; font-size: 11px; gap: 2px;
}
.ks-nav-item:hover, .ks-nav-item.active { background: rgba(255,255,255,.15); color: #fff; }
.ks-nav-bottom {
  width: 32px; height: 32px; border-radius: 50%;
  border: none; background: rgba(255,255,255,.15); color: #fff;
  display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.ks-list {
  flex: 1 1 auto; min-width: 0;
  display: flex; flex-direction: column;
  background: #fff;
}
.ks-side-hd {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 12px; border-bottom: 1px solid #f0f0f0;
}
.ks-search {
  flex: 1 1 auto; display: flex; align-items: center; gap: 6px;
  background: #f5f7fa; border-radius: 4px; padding: 0 8px; height: 30px;
}
.ks-search-ico { color: #999; display: inline-flex; }
.ks-search input {
  flex: 1 1 auto; border: none; background: transparent; outline: none;
  font-size: 12px; color: #333;
}
.ks-tabs {
  display: flex; align-items: center; gap: 0; padding: 0 12px; border-bottom: 1px solid #f0f0f0;
}
.ks-tab {
  flex: 1 1 auto; padding: 10px 0; border: none; border-bottom: 2px solid transparent;
  background: transparent; color: #666; font-size: 13px; cursor: pointer; text-align: center;
}
.ks-tab.active { color: #2E64FF; border-bottom-color: #2E64FF; font-weight: 500; }
.ks-batch {
  display: flex; align-items: center; gap: 4px;
  padding: 6px 12px; border: none; border-bottom: 1px solid #f0f0f0;
  background: #fff; color: #666; font-size: 12px; cursor: pointer; text-align: left;
}
.ks-batch:hover { color: #2E64FF; }
.ks-groups { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 4px 0; }
.ks-group { border-bottom: 1px solid #f5f5f5; }
.ks-group-hd {
  display: flex; align-items: center; gap: 6px;
  padding: 8px 12px; cursor: pointer;
}
.ks-arrow { color: #999; display: inline-flex; transition: transform .2s; }
.ks-group.open .ks-arrow { transform: rotate(90deg); }
.ks-group-name { flex: 1 1 auto; color: #333; font-size: 13px; }
.ks-group-n { color: #999; font-size: 12px; }
.ks-group-body { padding: 0 0 6px; }
.ks-buyer {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 12px; cursor: pointer;
}
.ks-buyer:hover { background: #f5f7fa; }
.ks-buyer.active { background: #EAF2FF; box-shadow: inset 3px 0 0 #2E64FF; }
.ks-buyer-av {
  width: 34px; height: 34px; border-radius: 50%;
  color: #fff; font-size: 13px; display: flex; align-items: center; justify-content: center;
  flex: 0 0 auto;
}
.ks-buyer-main { flex: 1 1 auto; min-width: 0; }
.ks-buyer-nick {
  display: flex; align-items: center; gap: 4px; flex-wrap: wrap;
  font-size: 13px; color: #333; font-weight: 500;
}
.ks-buyer-tag {
  font-size: 10px; color: #2E64FF; background: #EAF2FF;
  padding: 1px 4px; border-radius: 2px; font-weight: 400;
}
.ks-tag-new { color: #FF7A45; background: #FFF2E8; }
.ks-tag-sys { color: #999; background: #f5f5f5; }
.ks-buyer-last { font-size: 12px; color: #999; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ks-buyer-time { flex: 0 0 auto; font-size: 11px; color: #999; }

.ks-main {
  flex: 1 1 auto; min-width: 0;
  display: flex; flex-direction: column;
  background: #fff;
}
.ks-main-hd {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 14px; border-bottom: 1px solid #f0f0f0;
}
.ks-main-id { display: flex; align-items: center; gap: 8px; }
.ks-main-av {
  width: 34px; height: 34px; border-radius: 50%;
  color: #fff; font-size: 13px;
  display: flex; align-items: center; justify-content: center;
}
.ks-main-namebox { display: flex; flex-direction: column; gap: 2px; }
.ks-main-name { font-size: 14px; color: #333; font-weight: 500; }
.ks-main-status { font-size: 11px; color: #999; display: flex; align-items: center; gap: 4px; }
.ks-status-dot { width: 6px; height: 6px; border-radius: 50%; background: #52C41A; }
.ks-status-aux { color: #2E64FF; }
.ks-main-tag {
  font-size: 11px; color: #2E64FF; background: #EAF2FF;
  padding: 2px 6px; border-radius: 2px; margin-left: 6px;
}
.ks-main-acts { display: flex; align-items: center; gap: 6px; }
.ks-mact {
  width: 28px; height: 28px; border: none; border-radius: 4px;
  background: transparent; color: #999; display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.ks-mact:hover { background: #f5f5f5; color: #2E64FF; }

.ks-chat {
  flex: 1 1 auto; min-height: 0; overflow-y: auto;
  padding: 10px 14px; background: #f5f7fa;
}
.ks-chat-end { text-align: center; color: #999; font-size: 12px; margin: 6px 0 14px; }
.ks-card {
  background: #fff; border-radius: 4px; border: 1px solid #e5e8ef;
  margin-bottom: 14px; overflow: hidden;
}
.ks-card-hd {
  display: flex; align-items: center; gap: 6px;
  padding: 8px 12px; border-bottom: 1px solid #f0f0f0;
  color: #333; font-size: 13px;
}
.ks-card-ico { color: #2E64FF; display: inline-flex; }
.ks-card-status { margin-left: auto; color: #52C41A; font-size: 12px; }
.ks-card-body { padding: 10px 12px; }
.ks-card-row { font-size: 12px; color: #666; margin-bottom: 8px; }
.ks-order-mini {
  display: flex; align-items: center; gap: 8px;
}
.ks-order-mini-pic {
  width: 44px; height: 44px; border-radius: 4px;
  background: #f5f5f5; display: flex; align-items: center; justify-content: center;
  font-size: 11px; color: #999; flex: 0 0 auto;
}
.ks-order-mini-info { flex: 1 1 auto; min-width: 0; }
.ks-order-mini-name { font-size: 12px; color: #333; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ks-order-mini-row { font-size: 11px; color: #999; margin-top: 2px; }

.ks-msg { margin-bottom: 14px; }
.ks-msg.system { display: flex; justify-content: center; }
.ks-msg-system {
  display: inline-block; max-width: 70%;
  padding: 6px 12px; border-radius: 4px;
  background: #e8e8e8; color: #666; font-size: 12px; line-height: 1.5;
  text-align: center;
}
.ks-msg-meta {
  display: flex; align-items: center; gap: 6px;
  margin-bottom: 4px; font-size: 11px; color: #999;
}
.ks-msg-body { display: flex; align-items: flex-end; gap: 6px; }
.ks-msg-bubble {
  max-width: 70%; padding: 9px 12px; border-radius: 4px;
  font-size: 13px; line-height: 1.6; word-break: break-word;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.ks-msg-av {
  width: 28px; height: 28px; border-radius: 50%;
  color: #fff; font-size: 11px; display: flex; align-items: center; justify-content: center;
  flex: 0 0 auto;
}
.ks-msg.buyer { padding-left: 0; }
.ks-msg.buyer .ks-msg-meta { justify-content: flex-start; }
.ks-msg.buyer .ks-msg-body { justify-content: flex-start; }
.ks-msg.buyer .ks-msg-bubble { background: #fff; border: 1px solid #e0e0e0; color: #151515; }
.ks-msg.agent { padding-right: 0; }
.ks-msg.agent .ks-msg-meta { justify-content: flex-end; }
.ks-msg.agent .ks-msg-body { justify-content: flex-end; }
.ks-msg.agent .ks-msg-bubble { background: #EAF2FF; border: 1px solid #C2E0FF; color: #151515; }

.ks-tools {
  display: flex; align-items: center; justify-content: space-between;
  padding: 6px 14px; border-top: 1px solid #f0f0f0; border-bottom: 1px solid #f0f0f0;
  background: #fff;
}
.ks-tools-left { display: flex; align-items: center; gap: 4px; }
.ks-tool {
  width: 32px; height: 32px; border: none; border-radius: 4px;
  background: transparent; color: #666; display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.ks-tool:hover { background: #f5f5f5; color: #2E64FF; }
.ks-smart {
  display: flex; align-items: center; gap: 4px;
  border: none; background: transparent; color: #2E64FF; font-size: 12px; cursor: pointer;
}
.ks-checks {
  max-height: 120px; overflow-y: auto;
  padding: 8px 14px; background: #fff;
}
.ks-input {
  padding: 10px 14px; background: #fff;
}
.ks-input textarea {
  width: 100%; resize: none; border: none; outline: none;
  font-size: 13px; line-height: 1.6; background: transparent;
}
.ks-input-btns {
  display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin-top: 8px;
}
.ks-btn {
  padding: 5px 14px; border-radius: 4px; border: 1px solid #d9d9d9;
  background: #fff; color: #666; font-size: 12px; cursor: pointer;
}
.ks-btn.primary { background: #2E64FF; border-color: #2E64FF; color: #fff; }
.ks-btn.primary:hover { background: #1a4fd8; }

.ks-aside {
  width: 340px; flex: 0 0 340px; min-width: 0;
  display: flex; flex-direction: column;
  background: #fff; border-left: 1px solid #e5e8ef;
}
.ks-info { display: flex; flex-direction: column; height: 100%; }
.ks-tabs2 {
  display: flex; align-items: center; gap: 0;
  border-bottom: 1px solid #f0f0f0; flex: 0 0 auto;
}
.ks-tab2 {
  flex: 1 1 auto; padding: 10px 0; border: none; border-bottom: 2px solid transparent;
  background: transparent; color: #666; font-size: 13px; cursor: pointer; text-align: center;
}
.ks-tab2.active { color: #2E64FF; border-bottom-color: #2E64FF; font-weight: 500; }
.ks-info-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.ks-stats {
  display: grid; grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 1px; background: #f0f0f0; border-bottom: 1px solid #f0f0f0;
}
.ks-stat {
  background: #fff; padding: 8px 6px; text-align: center;
  display: flex; flex-direction: column; gap: 2px;
}
.ks-stat-k { font-size: 11px; color: #999; }
.ks-stat-v { font-size: 13px; color: #333; font-weight: 500; }
.ks-note {
  padding: 8px 12px; font-size: 12px; color: #666;
  border-bottom: 1px solid #f0f0f0; line-height: 1.5;
}
.ks-order {
  padding: 10px 12px; border-bottom: 1px solid #f0f0f0;
}
.ks-order-hd {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 12px; color: #666; margin-bottom: 8px;
}
.ks-order-no { display: flex; align-items: center; gap: 4px; }
.ks-order-cancel { border: none; background: transparent; color: #999; cursor: pointer; }
.ks-order-status-bar {
  display: flex; align-items: center; gap: 6px; margin-bottom: 8px;
}
.ks-order-status {
  font-size: 12px; color: #52C41A; background: #F6FFED; border: 1px solid #B7EB8F;
  padding: 1px 5px; border-radius: 2px;
}
.ks-order-dist {
  font-size: 12px; color: #2E64FF; background: #EAF2FF;
  padding: 1px 5px; border-radius: 2px;
}
.ks-order-goods {
  display: flex; align-items: flex-start; gap: 8px; margin-bottom: 8px;
}
.ks-order-pic {
  width: 50px; height: 50px; border-radius: 4px;
  background: #f5f5f5; display: flex; align-items: center; justify-content: center;
  font-size: 11px; color: #999; flex: 0 0 auto;
}
.ks-order-info { flex: 1 1 auto; min-width: 0; }
.ks-order-name { font-size: 13px; color: #333; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ks-order-spec { font-size: 11px; color: #999; margin-top: 2px; }
.ks-order-service { font-size: 11px; color: #2E64FF; margin-top: 2px; }
.ks-order-row { display: flex; align-items: center; justify-content: space-between; margin-top: 4px; }
.ks-order-price { color: #151515; font-weight: 500; }
.ks-order-num { color: #999; }
.ks-order-fee { border-top: 1px dashed #f0f0f0; padding-top: 8px; }
.ks-fee-row { display: flex; align-items: center; justify-content: space-between; font-size: 12px; color: #666; margin-bottom: 4px; }
.ks-fee-total { color: #E22E1F; font-weight: 500; font-size: 14px; }
.ks-order-section { border-top: 1px dashed #f0f0f0; padding-top: 8px; margin-top: 8px; }
.ks-section-title { font-size: 12px; color: #333; font-weight: 500; margin-bottom: 6px; }
.ks-section-row { display: flex; align-items: center; justify-content: space-between; font-size: 12px; color: #666; margin-bottom: 4px; }
.ks-section-row a { color: #2E64FF; cursor: pointer; margin-left: 4px; }
.ks-empty { text-align: center; color: #999; font-size: 12px; padding: 30px 0; }

/* 快手滚动条 */
.ks-groups, .ks-chat, .ks-info-body, .ks-checks {
  scrollbar-width: thin; scrollbar-color: #d9dde3 transparent;
}
.ks-groups::-webkit-scrollbar, .ks-chat::-webkit-scrollbar,
.ks-info-body::-webkit-scrollbar, .ks-checks::-webkit-scrollbar { width: 6px; height: 6px; }
.ks-groups::-webkit-scrollbar-thumb, .ks-chat::-webkit-scrollbar-thumb,
.ks-info-body::-webkit-scrollbar-thumb, .ks-checks::-webkit-scrollbar-thumb {
  background: #d9dde3; border-radius: 3px;
}

/* 自适应 */
@media (max-width: 1280px) {
  .ks-side { width: 286px; }
  .ks-aside { width: 300px; flex: 0 0 300px; }
}
@media (max-width: 1080px) {
  .ks-aside { display: none; }
  .ks-side { width: 260px; }
}
@media (max-width: 760px) {
  .ks-side { display: none; }
}

/* ==========================================================================
   v=20260910a 模拟接待：考核 / 练习 双页签切换
   考核 = 正式任务 + 计入团队看板；练习 = 不限次 + 成绩单单独记录
   ========================================================================== */
.sim-pick-head { align-items: flex-start; }
.sim-mode-tabs {
  display: inline-flex; gap: 4px; flex: 0 0 auto;
  padding: 4px; border-radius: 999px;
  background: var(--bg-soft); border: 1px solid var(--border);
}
.sim-mode-tab {
  padding: 7px 20px; border: none; border-radius: 999px;
  background: transparent; color: var(--text-mute);
  font-size: 13px; font-family: inherit; cursor: pointer; transition: all .15s;
}
.sim-mode-tab:hover { color: var(--text-soft); }
.sim-mode-tab.active { background: var(--primary-grad); color: #fff; font-weight: 600; }
.sim-res-tabs { margin-bottom: 16px; }

/* ========================================================================
   v=20260911a 任务完成情况明细（主管下发练习 / 考核后逐人查看）
   ========================================================================= */
.sim-detail-head {
  padding: 12px 14px; margin-bottom: 12px;
  border: 1px solid var(--border); border-radius: 10px;
  background: var(--bg-soft);
}
.sim-detail-title { font-size: 15px; font-weight: 600; color: var(--text); margin-bottom: 4px; }
.sim-detail-sum { margin-top: 8px; font-size: 13px; color: var(--text-soft); }
.sim-detail-sum b { color: var(--primary); font-size: 15px; }
.sim-detail-row {
  display: grid; grid-template-columns: 150px 190px 1fr;
  gap: 10px; align-items: center;
  padding: 10px 12px; margin-bottom: 8px;
  border: 1px solid var(--border); border-radius: 10px;
  background: var(--bg-elev);
}
.sim-detail-row.todo { background: var(--bg-soft); }
.sim-detail-row.todo .sim-detail-name { color: var(--text-mute); }
.sim-detail-name { font-size: 13px; font-weight: 600; color: var(--text); }
.sim-detail-flag { display: block; margin-top: 2px; font-size: 11px; color: var(--text-mute); }
.sim-detail-stat { font-size: 13px; color: var(--text-soft); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sim-detail-stat b { color: var(--text); }
.sim-detail-none { color: var(--text-mute); font-size: 12px; }
.sim-detail-time { font-size: 11px; color: var(--text-mute); }
.sim-detail-items { display: flex; flex-wrap: wrap; gap: 6px; }
.sim-detail-item {
  padding: 4px 10px; border: 1px solid var(--border); border-radius: 999px;
  background: var(--bg-elev); color: var(--text-soft);
  font-size: 12px; font-family: inherit; cursor: pointer; transition: all .15s;
}
.sim-detail-item:hover { border-color: var(--primary); color: var(--primary); background: var(--primary-soft); }

/* ===== v=20260914a 工具箱 · 城市等级话术 ===== */
.city-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 860px) { .city-grid { grid-template-columns: 1fr; } }
.city-card { min-height: 240px; }
.city-tool-view textarea {
  width: 100%; box-sizing: border-box; background: var(--bg-soft); color: var(--text);
  border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px;
  font-size: 13px; line-height: 1.7; font-family: inherit; resize: vertical; outline: none;
}
.city-tool-view textarea:focus { border-color: var(--primary); }
.city-input { min-height: 150px; }
.city-actions { display: flex; align-items: center; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.city-quick { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.city-quick-label { font-size: 12px; color: var(--text-mute); }
.city-chip {
  padding: 4px 10px; border: 1px solid var(--border); border-radius: 999px;
  background: var(--bg-elev); color: var(--text-soft); font-size: 12px;
  font-family: inherit; cursor: pointer; transition: all .15s;
}
.city-chip:hover { border-color: var(--primary); color: var(--primary); background: var(--primary-soft); }
.city-results { display: flex; flex-direction: column; gap: 12px; max-height: 620px; overflow-y: auto; }
.city-res-row { border: 1px solid var(--border); border-radius: 12px; padding: 12px 14px; background: var(--bg-soft); }
.city-res-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.city-res-in { font-size: 13px; font-weight: 600; color: var(--text); word-break: break-all; }
.city-badge {
  flex: none; padding: 3px 10px; border: 1px solid var(--border); border-radius: 999px;
  font-size: 12px; font-weight: 600; white-space: nowrap;
}
.city-res-script {
  margin-top: 8px; font-size: 13px; line-height: 1.8; color: var(--text-soft);
  background: var(--bg-elev); border-radius: 8px; padding: 10px 12px; white-space: pre-wrap; word-break: break-all;
}
.city-res-foot { margin-top: 8px; display: flex; justify-content: flex-end; }
.city-cfg-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.city-tiers { display: flex; flex-direction: column; gap: 14px; margin-top: 12px; }
.city-tier { border: 1px solid var(--border); border-radius: 12px; padding: 12px 14px; background: var(--bg-soft); }
.city-tier-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.city-color { width: 30px; height: 30px; padding: 0; border: 1px solid var(--border); border-radius: 8px; background: none; cursor: pointer; }
.city-tier-name { width: 180px; flex: none; }
.city-tier-key { font-size: 12px; color: var(--text-mute); font-family: ui-monospace, Menlo, Consolas, monospace; }
.city-tier-count { font-size: 12px; color: var(--text-mute); }
.city-tier-move { margin-left: auto; display: flex; gap: 6px; }
.city-tier-label { display: block; margin: 10px 0 6px; font-size: 12px; color: var(--text-mute); }
.city-cities { min-height: 90px; }
.city-fallback { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 16px; }
@media (max-width: 860px) { .city-fallback { grid-template-columns: 1fr; } }
.city-fb-item { border: 1px dashed var(--border); border-radius: 12px; padding: 12px 14px; }

/* ============ v=20260917e 统一接待查询入口 + 场景卡管理 ============ */
.reception-view, .scenario-mgr-view { display: block; }
.reception-search-card { background: var(--bg-elev); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px; box-shadow: var(--shadow-sm); margin-bottom: 16px; }
.reception-search-row { display: flex; align-items: center; gap: 10px; }
.reception-search-ico { color: var(--text-mute); flex: none; }
.reception-input { flex: 1; border: 1px solid var(--border); border-radius: 10px; padding: 11px 14px; font-size: 14px; background: var(--bg); color: var(--text); }
.reception-input:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft); }
.reception-filters { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 12px; }
.reception-hint { color: var(--text-mute); font-size: 12px; margin-left: auto; }
.reception-results { display: grid; gap: 12px; }
.reception-card { background: var(--bg-elev); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 16px; box-shadow: var(--shadow-sm); }
.reception-card-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.rc-source { font-size: 12px; font-weight: 600; padding: 2px 9px; border-radius: 999px; background: var(--primary-soft); color: var(--primary-hover); }
.rc-source-scenario { background: var(--primary-soft); color: var(--primary-hover); }
.rc-source-script { background: var(--accent-soft); color: var(--accent); }
.rc-source-process { background: var(--success-soft); color: var(--text-success); }
.rc-source-faq { background: #E6F0FF; color: #3A6EA5; }
.rc-source-product { background: #F0EAFE; color: #6A4FC0; }
.rc-title { font-weight: 600; color: var(--text); font-size: 15px; }
.rc-match { margin-left: auto; font-size: 12px; color: var(--text-mute); }
.reception-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.rc-tag { font-size: 11px; padding: 2px 8px; border-radius: 6px; background: var(--bg-soft); color: var(--text-soft); }
.rc-verify { font-size: 12px; color: var(--accent); background: var(--accent-soft); padding: 6px 10px; border-radius: 8px; margin: 6px 0; }
.rc-vars { font-size: 12px; color: var(--text-soft); padding: 4px 0; }
.reception-snippet { color: var(--text-soft); font-size: 14px; line-height: 1.7; white-space: pre-wrap; margin: 4px 0; }
.reception-scope { font-size: 12px; color: var(--text-mute); margin-top: 4px; }
.reception-actions { display: flex; gap: 10px; margin-top: 10px; }
.rc-internal-box { color: var(--text-soft); line-height: 1.8; white-space: pre-wrap; }

.scenario-mgr-view .scenario-toolbar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 12px; }
.scenario-list { display: grid; gap: 12px; }
.scenario-item { background: var(--bg-elev); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 16px; box-shadow: var(--shadow-sm); }
.scenario-item.deleted { opacity: .6; }
.scenario-item-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
/* 批量操作（纯增量 v=20260918c） */
.sc-batch-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 12px; margin-bottom: 10px; border: 1px solid var(--line, #e3e6ee); border-radius: 10px; background: var(--panel, #f7f8fc); }
.sc-batch-n { font-weight: 600; }
.sc-batch-tip { color: #8a8f9d; font-size: 12px; }
.sc-sel, .sc-sel-all { display: inline-flex; align-items: center; cursor: pointer; }
.sc-src { color: #8a8f9d; font-size: 12px; max-width: 320px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.confirm-batch-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 12px; margin-bottom: 10px; border: 1px solid var(--line, #e3e6ee); border-radius: 10px; background: var(--panel, #f7f8fc); }
.sc-status { font-size: 12px; font-weight: 600; padding: 2px 9px; border-radius: 999px; }
.sc-status-draft { background: var(--bg-soft); color: var(--text-mute); }
.sc-status-pending { background: #FFF6E0; color: #B8860B; }
.sc-status-published { background: var(--success-soft); color: var(--text-success); }
.sc-status-disabled { background: var(--danger-soft); color: var(--danger); }
.sc-title { font-weight: 600; color: var(--text); font-size: 15px; }
.sc-type { font-size: 12px; color: var(--text-mute); background: var(--bg-soft); padding: 1px 8px; border-radius: 6px; }
.sc-flag { font-size: 11px; padding: 1px 8px; border-radius: 6px; background: #FFF6E0; color: #B8860B; }
.sc-flag.del { background: var(--danger-soft); color: var(--danger); }
.scenario-item-meta { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--text-mute); margin: 8px 0; }
.scenario-item-body { display: grid; gap: 8px; }
.sc-block b { display: block; font-size: 12px; color: var(--text-mute); margin-bottom: 2px; }
.sc-text { color: var(--text-soft); font-size: 13px; line-height: 1.7; white-space: pre-wrap; }
.scenario-item-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }

.sc-modal { display: grid; gap: 12px; }
.sc-field { display: flex; flex-direction: column; gap: 4px; }
.sc-field > label { font-size: 12px; color: var(--text-mute); }
.sc-row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
.sc-check { flex-direction: row; align-items: center; gap: 6px; font-size: 13px; color: var(--text-soft); }
@media (max-width: 720px) { .sc-row { grid-template-columns: 1fr; } }

/* 通用导入弹窗 */
.import-step { display: grid; gap: 14px; }
.import-row { display: flex; align-items: center; gap: 10px; }
.import-map { display: grid; gap: 8px; border-top: 1px dashed var(--border); padding-top: 12px; }
.import-map-title { font-size: 13px; color: var(--text-soft); font-weight: 600; }
.import-map-row { display: grid; grid-template-columns: 130px 1fr; align-items: center; gap: 10px; }
.import-map-row label { font-size: 13px; color: var(--text-soft); }
.import-preview { max-height: 240px; overflow: auto; border: 1px solid var(--border); border-radius: 10px; }
.import-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.import-table th, .import-table td { border-bottom: 1px solid var(--border); padding: 6px 8px; text-align: left; color: var(--text-soft); }
.import-table th { background: var(--bg-soft); position: sticky; top: 0; }
.import-status { font-size: 13px; color: var(--text-success); min-height: 18px; }

/* ============ v=20260917g 待确认口径面板 ============ */
.confirm-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; margin-top: 10px; }
.confirm-item { border: 1px solid var(--border); border-left: 3px solid var(--accent); border-radius: 12px; padding: 12px 14px; background: #fff; }
.confirm-item.resolved { border-left-color: var(--text-success); opacity: .72; }
.confirm-item-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.cf-theme { font-weight: 600; color: var(--text); }
.cf-status { font-size: 12px; padding: 2px 8px; border-radius: 999px; }
.cf-status-open { background: var(--accent-soft); color: var(--accent); }
.cf-status-ok { background: #E6F7EE; color: var(--text-success); }
.cf-row { font-size: 13px; color: var(--text-2); margin: 4px 0; line-height: 1.5; }
.cf-row b { color: var(--text); margin-right: 6px; }
.confirm-item-actions { margin-top: 8px; }

/* ===== v=20260918a 培训课纲面板 ===== */
.train-course-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--border, #e3e3e8);border-radius:10px;margin-bottom:10px;background:#fff;}
.train-course-main{flex:1;min-width:0;}
.train-course-title{font-weight:600;font-size:14px;}
.train-course-meta{font-size:12px;color:#8a8a99;margin-top:2px;}
.train-course-desc{font-size:12px;color:#5a5a66;margin-top:4px;line-height:1.5;}
.course-detail .cd-row{display:flex;gap:10px;padding:5px 0;border-bottom:1px dashed #eee;font-size:13px;}
.course-detail .cd-k{width:72px;color:#8a8a99;flex:none;}
.course-detail .cd-v{flex:1;}
.course-scen{padding:8px 10px;border:1px solid #eee;border-radius:8px;margin-bottom:8px;background:#fafafe;}
.course-scen .cs-title{font-weight:600;font-size:13px;}
.course-scen .cs-meta{font-size:12px;color:#8a8a99;margin-top:2px;}
.course-scen .cs-buyer{font-size:12px;color:#5a5a66;margin-top:2px;}
.course-link-list{max-height:50vh;overflow:auto;}
.course-link-opt{display:block;padding:6px 8px;border-radius:6px;font-size:13px;}
.course-link-opt:hover{background:#f3f4f8;}
.course-link-opt .cl-meta{color:#8a8a99;font-size:12px;}

/* ===== v=20260918d 商品主数据 / 知识关联（纯增量追加） ===== */
.p-tip { font-size:12px; line-height:1.6; color:#6b7280; margin-bottom:6px; }
.p-src-box { font-size:12px; line-height:1.7; color:#4b5563; background:#f9fafb; border:1px solid #e5e7eb; border-radius:6px; padding:8px 10px; }
.p-src-box div { word-break:break-all; }
.p-ref-box { max-height:150px; overflow:auto; border:1px solid #e5e7eb; border-radius:6px; padding:6px 8px; background:#fff; }
.p-ref-item { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:5px 2px; font-size:13px; border-bottom:1px dashed #f0f1f3; }
.p-ref-item:last-child { border-bottom:none; }
.p-ref-status { flex:none; font-size:11px; color:#6b7280; background:#f3f4f6; border-radius:4px; padding:1px 6px; }
.p-ref-empty { font-size:12px; color:#9ca3af; padding:6px 2px; }
.sc-prod-tip { font-size:12px; line-height:1.6; color:#6b7280; margin-bottom:6px; }
.sc-prod-tip code { background:#f3f4f6; border-radius:3px; padding:1px 4px; font-size:11px; }
.sc-prod-box { max-height:170px; overflow:auto; border:1px solid #e5e7eb; border-radius:6px; padding:6px 8px; background:#fff; }
.sc-prod-item { display:flex; align-items:center; gap:6px; padding:4px 2px; font-size:13px; cursor:pointer; }
.sc-prod-item input { flex:none; }
.sc-prod-sku { font-size:11px; color:#6b7280; background:#f3f4f6; border-radius:4px; padding:1px 6px; }
.sc-prod-empty { font-size:12px; color:#9ca3af; padding:6px 2px; }

/* ===== v=20260918f 通用规格变体（SPU → SKU）后台维护（纯增量追加） ===== */
.pv-block { border:1px solid #e5e7eb; border-radius:8px; padding:10px 12px; margin:8px 0; background:#fcfcfd; }
.pv-head { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
.pv-idx { font-weight:600; font-size:13px; color:#374151; flex:none; }
.pv-head .pv-label { flex:1; min-width:140px; }
.pv-head .pv-status { flex:none; width:auto; }
.pv-head .del { flex:none; }
.pv-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; margin-bottom:8px; }
.pv-grid label { display:flex; flex-direction:column; gap:3px; font-size:12px; color:#6b7280; }
.pv-src { font-size:11px; color:#9ca3af; margin-bottom:8px; word-break:break-all; }
.pv-attrs-label { font-size:12px; color:#6b7280; margin-bottom:4px; }
.pv-attrs .p-attr-row { background:#fff; }
.pa-dup { background:#fff4e5 !important; box-shadow:0 0 0 1px #f0a020 inset; }
.pa-dup .pa-key { color:#c05600; }
.pv-ref { font-size:11px; color:#b45309; background:#fffbeb; border:1px solid #fde68a; border-radius:4px; padding:3px 6px; margin-top:6px; }
.pv-empty { font-size:12px; color:#6b7280; background:#f9fafb; border:1px dashed #e5e7eb; border-radius:6px; padding:10px 12px; line-height:1.7; }
.mi-sub .varcount { color:#2563eb; font-weight:600; }

/* v=20260918g 知识编辑弹窗「渲染预览」 */
.sc-preview-box { border-top:1px dashed var(--border); margin-top:10px; padding-top:10px; }
.sc-preview-box .mini-btn { font-size:12px; padding:2px 9px; margin-left:6px; border:1px solid var(--border); border-radius:6px; background:var(--bg-soft); color:var(--text-soft); cursor:pointer; }
.sc-preview-box .mini-btn:hover { background:var(--primary-soft); color:var(--primary); }
.sc-preview-row { display:flex; gap:10px; margin-top:6px; }
.sc-preview-col { flex:1; min-width:0; }
.sc-preview-h { font-size:12px; color:var(--text-mute); margin-bottom:4px; }
.sc-pre { white-space:pre-wrap; word-break:break-word; background:var(--bg-soft); border:1px solid var(--border); border-radius:8px; padding:8px 10px; font-size:13px; line-height:1.7; margin:0; min-height:42px; font-family:inherit; color:var(--text); }
.sc-preview-warn { background:var(--danger-soft); border:1px solid var(--danger); color:var(--danger); border-radius:8px; padding:6px 10px; font-size:12px; margin-bottom:6px; }

/* ================= v=20260918h 售后处理中心（通用模块） ================= */
.as-view { padding: 18px 0 40px; }
.as-toolbar { display:flex; align-items:center; gap:10px; margin:12px 0 14px; flex-wrap:wrap; }
.as-search { flex:1 1 320px; min-width:220px; padding:9px 14px; border:1px solid var(--border); border-radius:10px; background:var(--bg-elev); color:var(--text); font-size:14px; font-family:inherit; }
.as-search:focus { outline:none; border-color:var(--primary); }
.as-hint { font-size:12px; color:var(--text-mute); }
.as-quick { margin-bottom:14px; }
.as-quick-title { font-size:12px; color:var(--text-mute); margin-bottom:8px; }
.as-quick-list { display:flex; flex-wrap:wrap; gap:8px; }
.as-quick-btn { padding:7px 14px; border:1px solid var(--border); border-radius:999px; background:var(--bg-elev); color:var(--text-soft); font-size:13px; cursor:pointer; font-family:inherit; }
.as-quick-btn:hover { border-color:var(--primary); color:var(--primary); background:var(--primary-soft); }
.as-quick-add { border-style:dashed; }
.as-body { display:grid; grid-template-columns:300px 1fr; gap:16px; align-items:start; }
@media (max-width: 900px) { .as-body { grid-template-columns:1fr; } }
.as-side { background:var(--bg-elev); border:1px solid var(--border); border-radius:var(--radius); padding:12px; }
.as-side-title { font-size:12px; color:var(--text-mute); margin:10px 0 8px; font-weight:600; }
.as-cats { display:flex; flex-direction:column; gap:4px; }
.as-cat { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:8px 10px; border-radius:9px; cursor:pointer; font-size:13px; color:var(--text-soft); }
.as-cat:hover { background:var(--bg-soft); }
.as-cat.active { background:var(--primary-soft); color:var(--primary); font-weight:600; }
.as-count { font-size:11px; color:var(--text-mute); }
.as-list { margin-top:4px; max-height:430px; overflow:auto; display:flex; flex-direction:column; gap:4px; }
.as-item { padding:9px 10px; border-radius:9px; cursor:pointer; border:1px solid transparent; }
.as-item:hover { background:var(--bg-soft); }
.as-item.active { background:var(--primary-soft); border-color:var(--primary); }
.as-item-title { font-size:13px; color:var(--text); line-height:1.45; }
.as-item-meta { margin-top:4px; display:flex; gap:6px; flex-wrap:wrap; }
.as-tag { font-size:11px; padding:1px 7px; border-radius:6px; background:var(--bg-soft); color:var(--text-mute); }
.as-tag-high { background:var(--danger-soft); color:var(--danger); font-weight:600; }
.as-tag-status { background:var(--accent-soft); color:var(--accent); }
.as-tag-match { background:var(--primary-soft); color:var(--primary); }
.as-detail { background:var(--bg-elev); border:1px solid var(--border); border-radius:var(--radius); padding:18px; min-height:320px; }
.as-detail-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.as-detail-head h3 { margin:0; font-size:17px; color:var(--text); }
.as-badge { font-size:11px; padding:2px 9px; border-radius:999px; background:var(--bg-soft); color:var(--text-mute); }
.as-badge-high { background:var(--danger-soft); color:var(--danger); font-weight:600; }
.as-badge-status { background:var(--accent-soft); color:var(--accent); }
.as-edit-btn { margin-left:auto; }
.as-alert { background:var(--danger-soft); color:var(--danger); border-radius:10px; padding:10px 12px; font-size:13px; margin-bottom:12px; line-height:1.6; }
.as-escalate-path { background:var(--bg-soft); border:1px dashed var(--border); border-radius:10px; padding:10px 12px; font-size:13px; color:var(--text); margin:-4px 0 12px; line-height:1.6; }
.as-escalate-path b { color:var(--primary); }
.as-block { margin-bottom:14px; }
.as-block-title { font-size:13px; font-weight:700; color:var(--text); margin-bottom:7px; display:flex; align-items:center; gap:8px; }
.as-ul { margin:0; padding-left:18px; }
.as-ul li { font-size:13px; color:var(--text-soft); line-height:1.7; }
.as-flow { display:flex; flex-direction:column; gap:2px; }
.as-flow-item { display:flex; align-items:flex-start; gap:9px; padding:7px 10px; background:var(--bg-soft); border-radius:9px; }
.as-step-n { flex:0 0 20px; height:20px; line-height:20px; text-align:center; border-radius:50%; background:var(--primary); color:#fff; font-size:11px; font-weight:700; }
.as-flow-text { font-size:13px; color:var(--text-soft); line-height:1.6; }
.as-flow-arrow { text-align:center; color:var(--text-mute); font-size:13px; line-height:1; }
.as-block-evi .as-ul li::marker { color:var(--primary); }
.as-block-pro .as-ul li { color:var(--danger); }
.as-block-reply .as-reply { background:var(--bg-soft); border-radius:10px; padding:12px; font-size:13px; color:var(--text); line-height:1.75; white-space:pre-wrap; }
.as-copy { margin-left:auto; padding:2px 10px; font-size:12px; }
.as-admin-btns { display:flex; gap:8px; flex-wrap:wrap; }
.as-form { display:flex; flex-direction:column; gap:10px; }
.as-form label { display:flex; flex-direction:column; gap:5px; font-size:12px; color:var(--text-mute); }
.as-form select, .as-form textarea { padding:8px 10px; border:1px solid var(--border); border-radius:9px; background:var(--bg-elev); color:var(--text); font-size:13px; font-family:inherit; }
.as-form-actions { display:flex; gap:8px; }
.as-empty { color:var(--text-mute); font-size:13px; padding:20px; text-align:center; }
/* v=20260919b 售后二级切换与知识点 */
.as-tabs { display:flex; gap:6px; margin-bottom:14px; border-bottom:1px solid var(--border); padding-bottom:0; }
.as-tab { padding:9px 20px; border:none; background:transparent; color:var(--text-mute); font-size:14px; cursor:pointer; font-family:inherit; border-bottom:2px solid transparent; margin-bottom:-1px; border-radius:8px 8px 0 0; }
.as-tab:hover { color:var(--text); background:var(--bg-soft); }
.as-tab.active { color:var(--primary); font-weight:700; border-bottom-color:var(--primary); }
.as-pane { animation:asFade .15s ease; }
@keyframes asFade { from { opacity:.4; } to { opacity:1; } }
.as-klist { display:flex; flex-direction:column; gap:7px; max-height:62vh; overflow:auto; }
.as-kitem { padding:10px 12px; border:1px solid var(--border); border-radius:10px; background:var(--bg-elev); cursor:pointer; }
.as-kitem:hover { border-color:var(--primary); background:var(--primary-soft); }
.as-kitem.active { border-color:var(--primary); background:var(--primary-soft); }
.as-kitem .as-item-title { font-size:13px; color:var(--text); font-weight:600; }
.as-note { background:var(--bg-soft); border-radius:10px; padding:11px 13px; font-size:13px; color:var(--text-soft); line-height:1.75; white-space:pre-wrap; }
.as-block-risk .as-note { background:var(--danger-soft); color:var(--danger); }
.as-rel { display:flex; flex-wrap:wrap; gap:7px; }
.as-rel-btn { padding:6px 12px; border:1px solid var(--border); border-radius:999px; background:var(--bg-elev); color:var(--primary); font-size:12px; cursor:pointer; font-family:inherit; }
.as-rel-btn:hover { border-color:var(--primary); background:var(--primary-soft); }
.as-rel-tag { padding:4px 10px; border-radius:999px; background:var(--bg-soft); color:var(--text-mute); font-size:12px; }
.as-src { margin-top:10px; font-size:12px; color:var(--text-mute); }
.as-src summary { cursor:pointer; color:var(--text-soft); }
.as-src-body { padding:8px 0 0; line-height:1.6; }
.ak-points { display:flex; flex-direction:column; gap:6px; margin-top:4px; }
.ak-pt-row { display:flex; gap:5px; align-items:center; }
.ak-pt-row .as-input { flex:1; }
.ak-pt-input { padding:7px 10px; border:1px solid var(--border); border-radius:8px; background:var(--bg-elev); color:var(--text); font-size:13px; font-family:inherit; }
.ak-pt-row .btn { padding:3px 9px; font-size:12px; }
.as-block-rel { margin-top:6px; }

/* v=20260919d 统一知识层卡片元信息（内容类型 / 状态 / 来源） */
.card-ka-meta{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 2px}
.card-ka-meta .ka-tag{font-size:12px;line-height:1.6;padding:1px 8px;border-radius:999px;background:rgba(127,127,127,.12);color:var(--muted,#8b8b8b);border:1px solid rgba(127,127,127,.18)}
.card-ka-meta .ka-st{background:rgba(52,152,219,.10);color:#3d7ea6;border-color:rgba(52,152,219,.22)}
.card-ka-meta .ka-src{background:rgba(127,127,127,.08)}

/* ================= v=20260919e P2-1 新版话术中心 ================= */
.faqv2{display:flex;flex-direction:column;gap:10px;height:100%;min-height:0}
.faqv2-top{display:flex;flex-direction:column;gap:8px}
.faqv2-searchwrap{position:relative;display:flex;align-items:center;gap:8px}
.faqv2-input{flex:1;min-width:0;padding:10px 12px;border:1px solid var(--border,#e3e6ea);border-radius:10px;background:var(--panel,#fff);color:var(--text,#222);font-size:14px}
.faqv2-input:focus{outline:none;border-color:var(--accent,#4a7cf7)}
.faqv2-clear{padding:8px 12px;border:1px solid var(--border,#e3e6ea);border-radius:10px;background:transparent;color:var(--muted,#8b8b8b);cursor:pointer;font-size:13px}
.faqv2-quick{display:flex;flex-wrap:wrap;gap:8px}
.f2quick{padding:5px 14px;border-radius:999px;border:1px solid var(--border,#e3e6ea);background:transparent;color:var(--muted,#8b8b8b);font-size:13px;cursor:pointer}
.f2quick.active{background:var(--accent,#4a7cf7);border-color:var(--accent,#4a7cf7);color:#fff}
.faqv2-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.faqv2-select{padding:6px 10px;border:1px solid var(--border,#e3e6ea);border-radius:8px;background:var(--panel,#fff);color:var(--text,#222);font-size:13px;max-width:200px}
.faqv2-count{font-size:13px;color:var(--muted,#8b8b8b)}
.faqv2-spacer{flex:1}
.faqv2-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px;flex:1;min-height:0}
.faqv2-side{border:1px solid var(--border,#e3e6ea);border-radius:12px;padding:10px;overflow:auto;background:var(--panel,#fff)}
.faqv2-side-head{font-size:13px;font-weight:600;color:var(--muted,#8b8b8b);margin-bottom:8px}
.f2cat{display:flex;align-items:center;gap:6px;padding:7px 10px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--text,#222)}
.f2cat:hover{background:rgba(127,127,127,.08)}
.f2cat.active{background:rgba(74,124,247,.12);color:var(--accent,#4a7cf7);font-weight:600}
.f2cat.sub{padding-left:26px;font-size:12.5px;color:var(--muted,#8b8b8b)}
.f2cat-caret{width:12px;color:var(--muted,#8b8b8b)}
.f2cat-n{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.f2cat-c{font-size:12px;color:var(--muted,#8b8b8b)}
.faqv2-main{display:flex;flex-direction:column;gap:10px;min-height:0;overflow:auto}
.faqv2-bulkbar{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px dashed var(--border,#e3e6ea);border-radius:10px;font-size:13px}
.f2bulk-n{color:var(--muted,#8b8b8b)}
.faqv2-list{display:flex;flex-direction:column;gap:10px}
.f2card{position:relative;border:1px solid var(--border,#e3e6ea);border-radius:12px;padding:14px 14px 12px;background:var(--panel,#fff)}
.f2chk{position:absolute;top:12px;right:12px}
.f2card-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.f2title{margin:0;font-size:15px;font-weight:600;color:var(--text,#222);flex:1;min-width:0}
.f2tag{font-size:12px;padding:2px 8px;border-radius:999px;background:rgba(127,127,127,.12);color:var(--muted,#8b8b8b)}
.f2tag.f2none{background:rgba(230,162,60,.14);color:#b8860b}
.f2tag.f2st-published,.f2tag.f2st-published_legacy{background:rgba(46,160,67,.12);color:#2ea043}
.f2tag.f2st-pending{background:rgba(230,162,60,.14);color:#b8860b}
.f2tag.f2st-disabled{background:rgba(127,127,127,.14);color:#888}
.f2row{display:flex;gap:8px;margin:4px 0;font-size:13.5px;line-height:1.65}
.f2row .f2lab{flex:none;color:var(--muted,#8b8b8b);font-size:12.5px;padding-top:1px}
.f2row .f2val{color:var(--text,#222);white-space:pre-wrap;word-break:break-word}
.f2row-dim .f2val{color:var(--muted,#8b8b8b)}
.f2row-a .f2val{background:rgba(127,127,127,.05);border-radius:8px;padding:8px 10px;flex:1}
.f2risk{margin:8px 0 2px;padding:8px 10px;border-radius:8px;background:rgba(230,162,60,.10);border:1px solid rgba(230,162,60,.24)}
.f2risk-item{font-size:12.5px;line-height:1.7;color:#a9701a}
.f2links{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px}
.f2chip{padding:3px 10px;border-radius:999px;border:1px solid var(--border,#e3e6ea);background:transparent;color:var(--accent,#4a7cf7);font-size:12.5px;cursor:pointer}
.f2chip:hover{background:rgba(74,124,247,.08)}
.f2src{margin-top:8px;font-size:12px;color:var(--muted,#8b8b8b)}
.f2actions{display:flex;gap:8px;margin-top:10px}
.f2empty{padding:36px 16px;text-align:center;border:1px dashed var(--border,#e3e6ea);border-radius:12px}
.f2empty-t{font-size:15px;font-weight:600;color:var(--text,#222);margin-bottom:6px}
.f2empty-h{font-size:13px;color:var(--muted,#8b8b8b);margin-bottom:14px}
.f2empty-a{display:flex;gap:8px;justify-content:center}
.faqv2-pager{display:flex;align-items:center;gap:8px;justify-content:center;padding:6px 0 2px;flex-wrap:wrap}
.f2pg{padding:5px 12px;border:1px solid var(--border,#e3e6ea);border-radius:8px;background:transparent;color:var(--text,#222);font-size:13px;cursor:pointer}
.f2pg:disabled{opacity:.45;cursor:default}
.f2pager-info{font-size:12.5px;color:var(--muted,#8b8b8b)}
@media (max-width:960px){.faqv2-layout{grid-template-columns:1fr}.faqv2-side{max-height:200px}}

/* ============ v=20260919f P2-2 新版业务流程（processV2） ============ */
.pv2{display:flex;flex-direction:column;gap:12px}
.pv2-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pv2-searchwrap{display:flex;align-items:center;gap:8px;flex:1;min-width:260px}
.pv2-input{flex:1;padding:9px 12px;border:1px solid var(--border,#e3e6ea);border-radius:10px;background:var(--bg-elev,#fff);color:var(--text,#222);font-size:13.5px}
.pv2-input:focus{outline:none;border-color:var(--accent,#4a7cf7)}
.pv2-clear{padding:7px 12px;border:1px solid var(--border,#e3e6ea);border-radius:8px;background:transparent;color:var(--muted,#8b8b8b);font-size:12.5px;cursor:pointer}
.pv2-quick{display:flex;gap:6px}
.pv2qb{padding:7px 14px;border:1px solid var(--border,#e3e6ea);border-radius:999px;background:transparent;color:var(--text-soft,#555);font-size:12.5px;cursor:pointer}
.pv2qb:hover{background:rgba(74,124,247,.06)}
.pv2qb.active{background:var(--accent,#4a7cf7);border-color:var(--accent,#4a7cf7);color:#fff}
.pv2-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pv2-select{padding:7px 10px;border:1px solid var(--border,#e3e6ea);border-radius:8px;background:var(--bg-elev,#fff);color:var(--text,#222);font-size:12.5px}
.pv2-count{font-size:12.5px;color:var(--muted,#8b8b8b)}
.pv2-spacer{flex:1}
.pv2-layout{display:grid;grid-template-columns:300px 1fr;gap:14px;align-items:start}
.pv2-side{display:flex;flex-direction:column;gap:8px;border:1px solid var(--border,#e3e6ea);border-radius:12px;padding:10px;background:var(--bg-elev,#fff)}
.pv2-side-head{font-size:12px;font-weight:700;color:var(--muted,#8b8b8b);letter-spacing:.5px}
.pv2-cats{display:flex;flex-direction:column;gap:2px;max-height:230px;overflow-y:auto}
.pv2cat{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--text,#222)}
.pv2cat:hover{background:var(--bg-soft,#f5f6f8)}
.pv2cat.active{background:rgba(74,124,247,.12);color:var(--accent,#4a7cf7);font-weight:600}
.pv2cat .pv2cat-n{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv2cat .pv2cat-c{font-size:11.5px;color:var(--muted,#8b8b8b)}
.pv2cat.sub{padding-left:22px;font-size:12.5px}
.pv2cat .pv2cat-caret{width:12px;color:var(--muted,#8b8b8b);font-size:10px}
.pv2-list{display:flex;flex-direction:column;gap:8px;max-height:420px;overflow-y:auto;padding-top:4px;border-top:1px solid var(--border,#e3e6ea)}
.pv2card{border:1px solid var(--border,#e3e6ea);border-radius:10px;padding:9px 10px;cursor:pointer;background:transparent}
.pv2card:hover{border-color:var(--accent,#4a7cf7)}
.pv2card.active{border-color:var(--accent,#4a7cf7);background:rgba(74,124,247,.08)}
.pv2card-t{font-size:13.5px;font-weight:600;color:var(--text,#222);margin-bottom:3px;line-height:1.35}
.pv2card-m{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:11.5px;color:var(--muted,#8b8b8b)}
.pv2badge{padding:1px 7px;border-radius:999px;background:var(--bg-soft,#f5f6f8);color:var(--text-soft,#555);font-size:11px}
.pv2badge.st-published{background:#eaf7f0;color:#2e9e6b}
.pv2badge.st-pending{background:#fff4e5;color:#b7791f}
.pv2badge.st-disabled{background:#f1f1f3;color:#8b8b8b}
.pv2-pager{display:flex;align-items:center;gap:6px;justify-content:center;padding:4px 0;flex-wrap:wrap}
.pv2pg{padding:4px 10px;border:1px solid var(--border,#e3e6ea);border-radius:8px;background:transparent;color:var(--text,#222);font-size:12.5px;cursor:pointer}
.pv2pg:disabled{opacity:.45;cursor:default}
.pv2-main{min-height:200px}
.pv2-detail{border:1px solid var(--border,#e3e6ea);border-radius:12px;padding:16px 18px;background:var(--bg-elev,#fff)}
.pv2-empty{padding:30px 14px;text-align:center;border:1px dashed var(--border,#e3e6ea);border-radius:12px;color:var(--muted,#8b8b8b);font-size:13.5px}
.pv2-dtitle{font-size:18px;font-weight:700;color:var(--text,#222);margin:0 0 6px;line-height:1.35}
.pv2-dmeta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--muted,#8b8b8b);margin-bottom:8px}
.pv2-dacts{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.pv2-nav{display:flex;gap:6px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--border,#e3e6ea);border-bottom:1px solid var(--border,#e3e6ea);margin-bottom:12px}
.pv2navb{padding:4px 10px;border:1px solid var(--border,#e3e6ea);border-radius:999px;background:transparent;color:var(--text-soft,#555);font-size:12px;cursor:pointer}
.pv2navb:hover{border-color:var(--accent,#4a7cf7);color:var(--accent,#4a7cf7)}
.pv2-sec{margin-bottom:14px}
.pv2-sec-t{font-size:13px;font-weight:700;color:var(--text,#222);margin-bottom:6px;display:flex;align-items:center;gap:6px}
.pv2-sec-t .n{font-size:11.5px;color:var(--muted,#8b8b8b);font-weight:500}
.pv2-step{display:flex;gap:10px;padding:10px 0;border-bottom:1px dashed var(--border,#e3e6ea)}
.pv2-step-num{flex:0 0 24px;height:24px;border-radius:50%;background:var(--accent,#4a7cf7);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}
.pv2-step-main{flex:1;min-width:0}
.pv2-step-h{font-size:13.5px;font-weight:600;color:var(--text,#222);margin-bottom:3px}
.pv2-step-d{font-size:12.5px;color:var(--text-soft,#555);margin-bottom:4px}
.pv2-script{margin-top:6px;padding:9px 11px;background:var(--bg-soft,#f5f6f8);border-radius:8px;font-size:13px;color:var(--text,#222);line-height:1.6}
.pv2-script-b{margin-top:5px}
.pv2-ul{margin:0;padding-left:18px;font-size:12.5px;color:var(--text-soft,#555);line-height:1.75}
.pv2-box{padding:10px 12px;border-radius:10px;font-size:12.5px;line-height:1.7}
.pv2-box.evidence{background:var(--bg-soft,#f5f6f8);color:var(--text-soft,#555)}
.pv2-box.escalate{background:#fff4e5;color:#8a5a00;border:1px solid #ffe0b2}
.pv2-box.risk{background:#fdecec;color:#a03035;border:1px solid #f8c9cb}
.pv2-box.verify{background:#eef4ff;color:#2c4d8a;border:1px solid #cfe0ff}
.pv2-chips{display:flex;gap:6px;flex-wrap:wrap}
.pv2chip{padding:3px 10px;border-radius:999px;border:1px solid var(--border,#e3e6ea);background:transparent;color:var(--accent,#4a7cf7);font-size:12.5px;cursor:pointer}
.pv2chip:hover{background:rgba(74,124,247,.08)}
.pv2chip.dim{color:var(--muted,#8b8b8b);cursor:default}
.pv2-none{font-size:12.5px;color:var(--muted,#8b8b8b)}
.pv2-more{margin-top:10px;border-top:1px dashed var(--border,#e3e6ea);padding-top:8px}
.pv2-more summary{font-size:12.5px;color:var(--muted,#8b8b8b);cursor:pointer}
.pv2-more .pv2src{font-size:12px;color:var(--muted,#8b8b8b);margin-top:6px;line-height:1.7}
.pv2-end{margin-top:12px;font-size:12.5px;color:var(--muted,#8b8b8b);text-align:center}
.pv2-branch{display:flex;gap:8px;align-items:flex-start;padding:6px 0;font-size:12.5px;color:var(--text-soft,#555)}
.pv2-branch .c{flex:1}
.pv2-branch .to{font-size:12px;color:var(--accent,#4a7cf7)}
/* ==================== v=20260920d 业务流程 V2：步骤↔话术绑定 ==================== */
.pv2-tag{display:inline-block;font-size:11px;font-weight:600;padding:1px 8px;border-radius:999px;background:var(--accent-soft,#FFF1EA);color:var(--accent,#ED7A4D);margin-left:2px}
/* 流程通用话术：整段流程适用，置于步骤之前，与「步骤话术」视觉区分（橙色左条） */
.pv2-generic{border:1px solid var(--border,#e3e6ea);border-left:3px solid var(--accent,#ED7A4D);border-radius:10px;padding:10px 12px;background:var(--bg-elev,#fff)}
.pv2-generic .pv2-sec-t{color:var(--accent,#ED7A4D)}
/* 步骤内嵌话术标题 */
.pv2-ss-t{font-size:11.5px;font-weight:700;color:var(--accent,#ED7A4D);margin:9px 0 3px}
/* 分支内嵌话术 */
.pv2-branch-reply{margin-top:6px;padding:8px 10px;background:var(--bg-soft,#f5f6f8);border:1px dashed var(--border,#e3e6ea);border-radius:8px}
.pv2-branch-reply .pv2-script{margin-top:4px}
/* 编辑器：每步（标题 + 话术） */
.pv2-steprow{display:grid;grid-template-columns:54px 1fr 46px;grid-template-areas:"head title del" ". reply del";gap:5px 8px;align-items:start;padding:8px 0;border-bottom:1px dashed var(--border,#e3e6ea)}
.pv2-sr-head{grid-area:head;font-size:12px;font-weight:700;color:var(--text-mute,#9B95B5);padding-top:7px}
.pv2-sr-title{grid-area:title}
.pv2-sr-reply{grid-area:reply}
.pv2-steprow .pv2-rowdel{grid-area:del;align-self:start;margin-top:2px}
/* 编辑器：分支（条件行 + 分支话术） */
.pv2-branchrow{display:flex;flex-direction:column;gap:6px;padding:8px 0;border-bottom:1px dashed var(--border,#e3e6ea)}
.pv2-brline{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.pv2-breply{width:100%}

@media (max-width:960px){.pv2-layout{grid-template-columns:1fr}.pv2-list{max-height:260px}}

/* ==================== v=20260920a P2-3 培训资料 V2（客服知识学习中心） ====================
   双模式：知识查询（默认） / 学习路径。仅对开启 trainingV2 的项目生效。 */
.tv2{display:flex;flex-direction:column;gap:12px;padding:2px}
.tv2-tabs{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border,#EAE6F5);padding-bottom:0}
.tv2-tab{padding:8px 18px;border:none;background:transparent;font-size:14px;font-weight:600;color:var(--text-mute,#9B95B5);
  cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:.15s}
.tv2-tab:hover{color:var(--text-soft,#4A4566)}
.tv2-tab.active{color:var(--primary,#6357E8);border-bottom-color:var(--primary,#6357E8)}
.tv2-tabs-hint{font-size:12.5px;color:var(--text-mute,#9B95B5);margin-left:6px}
.tv2-searchwrap{position:relative;flex:1;max-width:560px}
.tv2-input{width:100%;padding:9px 62px 9px 13px;border:1px solid var(--border,#EAE6F5);border-radius:10px;
  background:var(--bg-elev,#fff);font-size:13.5px;color:var(--text,#26223F);outline:none}
.tv2-input:focus{border-color:var(--primary,#6357E8);box-shadow:0 0 0 3px var(--primary-soft,#E9E5FC)}
.tv2-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:none;background:transparent;
  color:var(--text-mute,#9B95B5);font-size:12.5px;cursor:pointer;padding:4px 6px;border-radius:6px}
.tv2-clear:hover{background:var(--bg-soft,#F2F0FA)}
.tv2-chip{padding:5px 14px;border-radius:999px;border:1px solid var(--border,#EAE6F5);background:var(--bg-elev,#fff);
  font-size:12.5px;color:var(--text-soft,#4A4566);cursor:pointer;transition:.15s}
.tv2-chip:hover{border-color:var(--primary,#6357E8)}
.tv2-chip.active{background:var(--primary-soft,#E9E5FC);border-color:var(--primary,#6357E8);color:var(--primary,#6357E8);font-weight:600}
.tv2-top,.tv2-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tv2-bar{gap:8px}
.tv2-select{padding:6px 10px;border:1px solid var(--border,#EAE6F5);border-radius:8px;background:var(--bg-elev,#fff);
  font-size:12.5px;color:var(--text-soft,#4A4566)}
.tv2-count{font-size:12.5px;color:var(--text-mute,#9B95B5)}
.tv2-spacer{flex:1}
.tv2-layout{display:grid;grid-template-columns:288px minmax(0,1fr);gap:14px;align-items:start}
.tv2-side{background:var(--bg-elev,#fff);border:1px solid var(--border,#EAE6F5);border-radius:12px;padding:10px 11px}
.tv2-side-head{font-size:12.5px;font-weight:600;color:var(--text-soft,#4A4566);margin-bottom:8px}
.tv2-cats{display:flex;flex-direction:column;gap:2px;max-height:290px;overflow:auto;margin-bottom:8px}
.tv2-cat,.tv2-sub{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;border-radius:8px;
  font-size:13px;color:var(--text-soft,#4A4566);cursor:pointer;transition:.12s}
.tv2-cat:hover,.tv2-sub:hover{background:var(--bg-soft,#F2F0FA)}
.tv2-cat.active,.tv2-sub.active{background:var(--primary-soft,#E9E5FC);color:var(--primary,#6357E8);font-weight:600}
.tv2-cat em,.tv2-sub em{font-style:normal;font-size:11.5px;color:var(--text-mute,#9B95B5)}
.tv2-subs{padding-left:12px}
.tv2-list{display:flex;flex-direction:column;gap:8px;max-height:420px;overflow:auto}
.tv2-card{border:1px solid var(--border,#EAE6F5);border-radius:10px;padding:9px 11px;background:var(--bg-elev,#fff);cursor:pointer;transition:.14s}
.tv2-card:hover{border-color:var(--primary,#6357E8);box-shadow:0 2px 10px rgba(99,87,232,.09)}
.tv2-card.cur{border-color:var(--primary,#6357E8);background:var(--primary-soft,#E9E5FC)}
.tv2-card-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:5px}
.tv2-card-title{margin:0 0 4px;font-size:13.5px;font-weight:600;color:var(--text,#26223F);line-height:1.5}
.tv2-card-sum{margin:0 0 6px;font-size:12.5px;color:var(--text-soft,#4A4566);line-height:1.6}
.tv2-card-kp{margin:0 0 6px;padding-left:16px;font-size:12px;color:var(--text-mute,#9B95B5);line-height:1.6}
.tv2-card-kp li{margin-bottom:1px}
.tv2-card-rel{display:flex;gap:10px;font-size:11.5px;color:var(--text-mute,#9B95B5)}
.tv2-tag{padding:1px 8px;border-radius:999px;font-size:11px;background:var(--bg-soft,#F2F0FA);color:var(--text-soft,#4A4566)}
.tv2-tag.risk{background:var(--danger-soft,#FDECEC);color:var(--danger,#E7484F);font-weight:600}
.tv2-st{padding:1px 8px;border-radius:999px;font-size:11px;background:var(--bg-soft,#F2F0FA);color:var(--text-mute,#9B95B5)}
.tv2-st.st-published,.tv2-st.st-published_legacy{background:var(--success-soft,#EAF7F0);color:var(--success,#2E9E6B)}
.tv2-st.st-pending{background:#FFF4E5;color:#8A5A00}
.tv2-st.st-disabled{background:var(--danger-soft,#FDECEC);color:var(--danger,#E7484F)}
.tv2-empty{padding:22px 12px;text-align:center;font-size:12.5px;color:var(--text-mute,#9B95B5)}
.tv2-pager{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:8px}
.tv2-page{border:1px solid var(--border,#EAE6F5);background:var(--bg-elev,#fff);border-radius:8px;padding:4px 12px;
  font-size:12.5px;color:var(--text-soft,#4A4566);cursor:pointer}
.tv2-page[disabled]{opacity:.45;cursor:not-allowed}
.tv2-pageinfo{font-size:12px;color:var(--text-mute,#9B95B5)}
.tv2-main{background:var(--bg-elev,#fff);border:1px solid var(--border,#EAE6F5);border-radius:12px;padding:14px 16px;min-height:400px}
.tv2-det-head{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;border-bottom:1px solid var(--border,#EAE6F5);padding-bottom:10px;margin-bottom:10px}
.tv2-det-title{font-size:16px;font-weight:700;color:var(--text,#26223F);flex:1;min-width:200px;line-height:1.45}
.tv2-det-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--text-mute,#9B95B5)}
.tv2-det-act{display:flex;gap:6px;flex-wrap:wrap}
.tv2-prog{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-mute,#9B95B5);margin-bottom:10px}
.tv2-pbtn{padding:3px 12px;border-radius:999px;border:1px solid var(--border,#EAE6F5);background:var(--bg-elev,#fff);
  font-size:12px;color:var(--text-soft,#4A4566);cursor:pointer}
.tv2-pbtn.active{background:var(--primary-soft,#E9E5FC);border-color:var(--primary,#6357E8);color:var(--primary,#6357E8);font-weight:600}
.tv2-box{margin-bottom:10px;padding:10px 12px;border-radius:10px;border:1px solid var(--border,#EAE6F5);background:var(--bg-elev,#fff)}
.tv2-box.risk{background:var(--danger-soft,#FDECEC);border-color:#F8C9CB;color:#A03035}
.tv2-box.collapsed{background:var(--bg-soft,#F2F0FA)}
.tv2-box.collapsed summary{font-size:12.5px;color:var(--text-mute,#9B95B5);cursor:pointer}
.tv2-box-h{font-size:12.5px;font-weight:700;color:var(--text-soft,#4A4566);margin-bottom:5px}
.tv2-box.risk .tv2-box-h{color:#A03035}
.tv2-body{font-size:13px;line-height:1.75;color:var(--text-soft,#4A4566);white-space:normal}
.tv2-body.note{color:#8A5A00}
.tv2-body.src{font-size:12px;color:var(--text-mute,#9B95B5)}
.tv2-kp{margin:0;padding-left:20px;font-size:13px;line-height:1.8;color:var(--text,#26223F)}
.tv2-risk-list{margin:0;padding-left:20px;font-size:13px;line-height:1.8;color:#A03035}
.tv2-chips{display:flex;gap:6px;flex-wrap:wrap}
.tv2-chip-btn{padding:4px 11px;border-radius:999px;border:1px solid var(--border,#EAE6F5);background:var(--bg-elev,#fff);
  font-size:12.5px;color:var(--primary,#6357E8);cursor:pointer}
.tv2-chip-btn:hover{background:var(--primary-soft,#E9E5FC)}
.tv2-q{padding:3px 10px;border-radius:8px;background:var(--bg-soft,#F2F0FA);font-size:12px;color:var(--text-soft,#4A4566)}
.tv2-files{margin:0;padding-left:18px;font-size:12.5px;color:var(--text-soft,#4A4566);line-height:1.8}
.tv2-files em{font-style:normal;font-size:11px;color:var(--text-mute,#9B95B5);margin-left:6px}
.tv2-path-bar{display:flex;align-items:center;gap:8px}
.tv2-path-info{font-size:12.5px;color:var(--text-mute,#9B95B5)}
.tv2-path{display:flex;flex-direction:column;gap:10px}
.tv2-chapter{border:1px solid var(--border,#EAE6F5);border-radius:12px;background:var(--bg-elev,#fff);padding:11px 13px}
.tv2-ch-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:7px}
.tv2-ch-head h4{margin:0;font-size:14px;font-weight:700;color:var(--text,#26223F)}
.tv2-ch-prog{font-size:12px;color:var(--text-mute,#9B95B5)}
.tv2-ch-items{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:3px}
.tv2-ch-items li{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-soft,#4A4566)}
.tv2-ch-idx{width:20px;height:20px;flex:0 0 20px;border-radius:6px;background:var(--bg-soft,#F2F0FA);
  color:var(--text-mute,#9B95B5);font-size:11px;display:flex;align-items:center;justify-content:center}
.tv2-link{border:none;background:transparent;color:var(--primary,#6357E8);font-size:13px;cursor:pointer;text-align:left;padding:0}
.tv2-link:hover{text-decoration:underline}
.tv2-ch-st{font-size:11.5px;padding:1px 8px;border-radius:999px;background:var(--bg-soft,#F2F0FA);color:var(--text-mute,#9B95B5)}
.tv2-ch-st.st-view{background:var(--primary-soft,#E9E5FC);color:var(--primary,#6357E8)}
.tv2-ch-st.st-done{background:var(--success-soft,#EAF7F0);color:var(--success,#2E9E6B)}
.tv2-f{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;flex:1;min-width:0}
.tv2-f>span{font-size:12.5px;font-weight:600;color:var(--text-soft,#4A4566)}
.tv2-row{display:flex;gap:10px;flex-wrap:wrap}
.tv2-fin{width:100%;padding:7px 10px;border:1px solid var(--border,#EAE6F5);border-radius:8px;font-size:13px;
  color:var(--text,#26223F);background:var(--bg-elev,#fff);box-sizing:border-box;font-family:inherit}
.tv2-fta{width:100%;padding:7px 10px;border:1px solid var(--border,#EAE6F5);border-radius:8px;font-size:13px;
  color:var(--text,#26223F);background:var(--bg-elev,#fff);resize:vertical;box-sizing:border-box;font-family:inherit;line-height:1.6}
.tv2-inline{display:flex;gap:8px;align-items:center}
.tv2-tip{font-size:12px;color:var(--text-mute,#9B95B5);line-height:1.7;margin:2px 0 10px}
.tv2-kpbox{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow:auto}
.tv2-kprow{display:flex;gap:8px;align-items:flex-start}
.tv2-kpin{flex:1;padding:6px 9px;border:1px solid var(--border,#EAE6F5);border-radius:8px;font-size:13px;
  resize:vertical;box-sizing:border-box;font-family:inherit;line-height:1.6}
.tv2-kpbtns{display:flex;flex-direction:column;gap:2px}
.tv2-chrow{border:1px solid var(--border,#EAE6F5);border-radius:10px;padding:9px;margin-bottom:8px;background:var(--bg-elev,#fff)}
.tv2-chrow-head{display:flex;gap:6px;align-items:center;margin-bottom:6px}
.tv2-chname{flex:1;padding:6px 9px;border:1px solid var(--border,#EAE6F5);border-radius:8px;font-size:13px;
  box-sizing:border-box;font-family:inherit}
.tv2-multisel{width:100%;min-height:110px;border:1px solid var(--border,#EAE6F5);border-radius:8px;font-size:12.5px;padding:4px}
@media (max-width:960px){
  .tv2-layout{grid-template-columns:1fr}
  .tv2-list{max-height:250px}
  .tv2-det-head{flex-direction:column}
}

/* ==================== v=20260920c P2-4 产品 V2（productV2，默认关闭） ==================== */
.pdv2 { display: flex; flex-direction: column; gap: 14px; }
.pdv2-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.pdv2-head h2 { margin: 0; font-size: 20px; font-weight: 700; }
.pdv2-desc { margin: 4px 0 0; color: var(--muted, #8a8f9a); font-size: 13px; }
.pdv2-count { color: var(--muted, #8a8f9a); font-size: 13px; white-space: nowrap; }
.pdv2-top { display: flex; gap: 10px; }
.pdv2-searchwrap { position: relative; flex: 1; }
.pdv2-input { width: 100%; padding: 10px 12px; border: 1px solid var(--border, #e6e8ee); border-radius: 10px; background: var(--bg-soft, #f7f8fa); font-size: 14px; }
.pdv2-input:focus { outline: none; border-color: var(--primary, #6357E8); background: #fff; }
.pdv2-clear { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); border: 0; background: transparent; color: var(--muted, #8a8f9a); cursor: pointer; font-size: 12px; }
.pdv2-bar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pdv2-select { max-width: 180px; padding: 7px 10px; border: 1px solid var(--border, #e6e8ee); border-radius: 8px; background: #fff; font-size: 13px; }
.pdv2-layout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 16px; align-items: start; }
.pdv2-main { min-width: 0; }
.pdv2-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(196px, 1fr)); gap: 12px; }
.pdv2-card { border: 1px solid var(--border, #e6e8ee); border-radius: 12px; overflow: hidden; background: #fff; cursor: pointer; transition: box-shadow .15s, border-color .15s; display: flex; flex-direction: column; }
.pdv2-card:hover { box-shadow: 0 4px 14px rgba(0,0,0,.08); }
.pdv2-card.active { border-color: var(--primary, #6357E8); box-shadow: 0 0 0 2px var(--primary-soft, #E9E5FC); }
.pdv2-card-media { height: 96px; background: var(--bg-soft, #f7f8fa); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.pdv2-card-img { width: 100%; height: 100%; object-fit: cover; }
.pdv2-card-thumb { font-size: 22px; font-weight: 700; color: var(--muted, #8a8f9a); }
.pdv2-card-body { padding: 10px; display: flex; flex-direction: column; gap: 6px; }
.pdv2-card-title { font-size: 14px; font-weight: 600; line-height: 1.35; }
.pdv2-card-sub { font-size: 12px; color: var(--muted, #8a8f9a); }
.pdv2-card-spec { font-size: 12px; color: var(--text-2, #5b6070); }
.pdv2-card-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.pdv2-card-foot { display: flex; gap: 8px; font-size: 12px; }
.pdv2-vn { color: var(--primary, #6357E8); }
.pdv2-an { color: var(--muted, #8a8f9a); }
.pdv2-chip { display: inline-block; padding: 2px 7px; border-radius: 999px; background: var(--primary-soft, #E9E5FC); color: var(--primary, #6357E8); font-size: 11px; }
.pdv2-chip.use { background: var(--accent-soft, #FFF1EA); color: var(--accent, #ED7A4D); }
.pdv2-pager { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; padding-top: 4px; }
.pdv2-pgbtn { min-width: 32px; padding: 5px 9px; border: 1px solid var(--border, #e6e8ee); border-radius: 8px; background: #fff; cursor: pointer; font-size: 12px; }
.pdv2-pgbtn.active { background: var(--primary, #6357E8); color: #fff; border-color: var(--primary, #6357E8); }
.pdv2-pgbtn:disabled { opacity: .45; cursor: not-allowed; }
.pdv2-pgdots { color: var(--muted, #8a8f9a); }
.pdv2-detail { border: 1px solid var(--border, #e6e8ee); border-radius: 12px; background: #fff; padding: 14px; max-height: calc(100vh - 220px); overflow: auto; position: sticky; top: 12px; }
.pdv2-det-head { padding-bottom: 10px; border-bottom: 1px solid var(--border, #e6e8ee); margin-bottom: 10px; }
.pdv2-det-title { font-size: 16px; font-weight: 700; }
.pdv2-det-sub { margin-top: 4px; font-size: 12px; color: var(--muted, #8a8f9a); }
.pdv2-box { margin-bottom: 12px; }
.pdv2-box-t { font-size: 12px; font-weight: 700; color: var(--muted, #8a8f9a); margin-bottom: 6px; letter-spacing: .3px; }
.pdv2-box-b { font-size: 13px; }
.pdv2-kv { width: 100%; border-collapse: collapse; }
.pdv2-kv th { text-align: left; font-weight: 500; color: var(--muted, #8a8f9a); padding: 3px 8px 3px 0; width: 96px; vertical-align: top; font-size: 12px; }
.pdv2-kv td { padding: 3px 0; vertical-align: top; }
.pdv2-var-list { display: flex; flex-direction: column; gap: 8px; }
.pdv2-var { border: 1px solid var(--border, #e6e8ee); border-radius: 8px; padding: 8px; background: var(--bg-soft, #f7f8fa); }
.pdv2-var-h { font-size: 13px; font-weight: 600; margin-bottom: 4px; }
.pdv2-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.pdv2-rel { margin: 0; padding-left: 18px; }
.pdv2-rel li { margin-bottom: 3px; }
.pdv2-body { line-height: 1.6; }
.pdv2-dim { color: var(--muted, #8a8f9a); font-size: 12px; }
.pdv2-empty { padding: 28px 12px; text-align: center; color: var(--muted, #8a8f9a); font-size: 13px; grid-column: 1 / -1; }
.pdv2-st { display: inline-block; padding: 1px 6px; border-radius: 999px; font-size: 11px; }
.pdv2-st.enabled { background: var(--success-soft, #EAF7F0); color: var(--success, #2E9E6B); }
.pdv2-st.disabled { background: var(--danger-soft, #FDECEC); color: var(--danger, #E7484F); }

/* ============ v=20260920f P2-4B：产品对比 / 规则推荐 / AI分析 / 管理员维护 ============ */
.pdv2-tabs { display: flex; gap: 6px; margin: 0 0 12px; border-bottom: 1px solid var(--border, #E6E8EB); padding-bottom: 8px; }
.pdv2-tab { border: 1px solid var(--border, #E6E8EB); background: transparent; color: var(--text, #1f2329); border-radius: 8px 8px 0 0; padding: 7px 14px; font-size: 13px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.pdv2-tab.active { background: var(--accent-soft, #FFF4E6); border-color: var(--accent, #E8912A); color: var(--accent, #E8912A); font-weight: 600; }
.pdv2-badge { background: var(--accent, #E8912A); color: #fff; border-radius: 999px; font-size: 11px; padding: 0 6px; min-width: 16px; text-align: center; }
.pdv2-panel { margin-top: 8px; }
.pdv2-batch { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 10px; border: 1px dashed var(--border, #E6E8EB); border-radius: 8px; margin-bottom: 10px; }
.pdv2-batch-t { font-size: 12px; color: var(--muted, #8a8f9a); }
.pdv2-batch .pdv2-input { min-width: 180px; }
.pdv2-card-ops { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-top: 6px; }
.pdv2-sel { font-size: 12px; color: var(--muted, #8a8f9a); display: inline-flex; align-items: center; gap: 4px; }
.pdv2-det-ops { display: flex; align-items: center; gap: 8px; margin: 8px 0; }
.mini-btn.danger { color: var(--danger, #E7484F); border-color: var(--danger-soft, #FDECEC); }

/* 产品对比 */
.pdv2-cmp-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.pdv2-cmp-count { font-size: 13px; font-weight: 600; }
.pdv2-cmp-actions { display: flex; gap: 6px; }
.pdv2-cmp-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
.pdv2-chip.cmp { display: inline-flex; align-items: center; gap: 6px; background: var(--accent-soft, #FFF4E6); color: var(--accent, #E8912A); border: 1px solid var(--accent, #E8912A); }
.pdv2-chip-x { border: none; background: transparent; color: inherit; cursor: pointer; font-size: 13px; line-height: 1; padding: 0 2px; }
.pdv2-cmp-body { margin-top: 6px; }
.pdv2-cmp-wrap { overflow-x: auto; border: 1px solid var(--border, #E6E8EB); border-radius: 8px; }
.pdv2-cmp-tb { width: 100%; border-collapse: collapse; font-size: 13px; }
.pdv2-cmp-tb th, .pdv2-cmp-tb td { border-bottom: 1px solid var(--border, #E6E8EB); padding: 8px 10px; text-align: left; vertical-align: top; }
.pdv2-cmp-k { width: 150px; color: var(--muted, #8a8f9a); font-weight: 500; background: var(--bg-soft, #FAFBFC); }
.pdv2-cmp-h { background: var(--bg-soft, #FAFBFC); cursor: pointer; }
.pdv2-cmp-h:hover { color: var(--accent, #E8912A); }
.pdv2-cmp-sub { font-size: 12px; color: var(--accent, #E8912A); margin-top: 2px; font-weight: 500; }
.pdv2-cmp-g td { background: var(--bg-soft, #FAFBFC); font-size: 12px; font-weight: 600; color: var(--text, #1f2329); }
/* 差异轻量高亮：仅淡色底 + 左侧细条，不用强色，避免阅读负担（需求九） */
.pdv2-cmp-row.diff .pdv2-cmp-c.d { background: var(--accent-soft, #FFF7EC); }
.pdv2-cmp-row.diff .pdv2-cmp-c.d:first-of-type { box-shadow: inset 2px 0 0 var(--accent, #E8912A); }

/* 规则推荐 */
.pdv2-rec-need { display: flex; flex-direction: column; gap: 4px; margin-bottom: 10px; }
.pdv2-rec-cond { display: flex; flex-direction: column; gap: 10px; }
.pdv2-cond-g { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.pdv2-cond-t { font-size: 12px; color: var(--muted, #8a8f9a); min-width: 62px; }
.pdv2-cond { border: 1px solid var(--border, #E6E8EB); background: #fff; border-radius: 999px; padding: 4px 12px; font-size: 12px; cursor: pointer; color: var(--text, #1f2329); }
.pdv2-cond.active { background: var(--accent-soft, #FFF4E6); border-color: var(--accent, #E8912A); color: var(--accent, #E8912A); font-weight: 600; }
.pdv2-rec-actions { display: flex; gap: 8px; margin: 12px 0; }
.pdv2-rec-sum { font-size: 12px; color: var(--muted, #8a8f9a); margin-bottom: 8px; display: flex; align-items: center; gap: 6px; }
.pdv2-tag.rule { background: var(--success-soft, #EAF7F0); color: var(--success, #2E9E6B); border-radius: 999px; padding: 1px 8px; font-size: 11px; font-weight: 600; }
.pdv2-rec-card { border: 1px solid var(--border, #E6E8EB); border-radius: 8px; padding: 12px; margin-bottom: 10px; }
.pdv2-rec-h { font-size: 14px; font-weight: 600; margin-bottom: 6px; }
.pdv2-rec-v { color: var(--accent, #E8912A); font-size: 13px; font-weight: 500; }
.pdv2-rec-why { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 8px; }
.pdv2-rec-why-t { font-size: 12px; color: var(--muted, #8a8f9a); }
.pdv2-rec-ops { display: flex; gap: 8px; }
.pdv2-rec-ai { margin-top: 14px; border-top: 1px dashed var(--border, #E6E8EB); padding-top: 12px; }
.pdv2-note { background: var(--bg-soft, #FAFBFC); border-left: 3px solid var(--border, #E6E8EB); padding: 8px 10px; font-size: 12px; line-height: 1.6; margin-bottom: 8px; border-radius: 0 6px 6px 0; }
.pdv2-note.warn { background: var(--danger-soft, #FDECEC); border-left-color: var(--danger, #E7484F); color: var(--danger, #E7484F); }
/* AI 分析：与规则推荐视觉区分（需求二十九） */
.pdv2-ai { border: 1px dashed var(--accent, #E8912A); border-radius: 8px; padding: 10px 12px; margin-top: 10px; background: var(--accent-soft, #FFF9F0); }
.pdv2-ai-tag { font-size: 11px; font-weight: 700; color: var(--accent, #E8912A); letter-spacing: .3px; }
.pdv2-ai-sum { margin-top: 6px; font-size: 13px; line-height: 1.7; }
.pdv2-ai-b { margin-top: 8px; }
.pdv2-ai-t { font-size: 12px; font-weight: 600; color: var(--muted, #8a8f9a); margin-bottom: 4px; }
.pdv2-ai-b ul { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.7; }

/* 管理员维护 */
.pdv2-mgr { display: flex; flex-direction: column; gap: 8px; }
.pdv2-mgr-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pdv2-mgr-row label { font-size: 12px; color: var(--muted, #8a8f9a); min-width: 76px; }
.pdv2-mgr-row .pdv2-input { flex: 1 1 160px; min-width: 120px; }
@media (max-width: 1100px) {
  .pdv2-layout { grid-template-columns: minmax(0, 1fr); }
  .pdv2-detail { position: static; max-height: none; }
}

/* v=20260922a P2-角色验收01-修复：无写权限的管理按钮永久隐藏（CSS 兜底，防止后续渲染改回 hidden=false） */
.perm-hidden { display: none !important; }

/* v=20260922a 售后：中文分类标签与详情分类行（需求三十六） */
.as-tag.as-tag-cat { background: rgba(59,130,246,.12); color: #2563eb; }
.as-detail-cat { margin: 6px 0 2px; font-size: 12px; color: #64748b; }

/* ===== v=20260923a P3.5-01B：产品对比自助选品区样式 ===== */
.pdv2-cmp-pick { margin: 12px 0; padding: 14px; border: 1px solid var(--border, #e6e8ee); border-radius: 12px; background: var(--bg-soft, #f7f8fa); }
.pdv2-cmp-pick-t { font-size: 14px; font-weight: 600; margin-bottom: 10px; }
.pdv2-cmp-pick-t .pdv2-dim { font-weight: 400; margin-left: 4px; }
.pdv2-cmp-filters { margin: 10px 0; }
.pdv2-cmp-cand { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; margin-top: 6px; }
.pdv2-ccard { border: 1px solid var(--border, #e6e8ee); border-radius: 12px; background: #fff; display: flex; flex-direction: column; justify-content: space-between; transition: box-shadow .15s, border-color .15s; }
.pdv2-ccard:hover { box-shadow: 0 4px 14px rgba(0,0,0,.08); border-color: var(--primary, #6357E8); }
.pdv2-ccard-body { padding: 10px; display: flex; flex-direction: column; gap: 6px; cursor: pointer; }
.pdv2-ccard-title { font-size: 14px; font-weight: 600; line-height: 1.35; }
.pdv2-ccard-sub { font-size: 12px; color: var(--muted, #8a8f9a); }
.pdv2-ccard-spec { font-size: 12px; color: var(--text-2, #5b6070); }
.pdv2-ccard-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.pdv2-ccard-foot { display: flex; gap: 8px; font-size: 12px; align-items: center; }
.pdv2-ccard-ops { padding: 0 10px 10px; }
.pdv2-ccard-add { width: 100%; }
.pdv2-st.added { background: var(--success-soft, #EAF7F0); color: var(--success, #2E9E6B); }
.pdv2-varpick { display: flex; flex-direction: column; gap: 10px; }
.pdv2-var-row { display: flex; align-items: center; gap: 8px; font-size: 14px; padding: 6px 8px; border: 1px solid var(--border, #e6e8ee); border-radius: 8px; cursor: pointer; }
.pdv2-var-row:hover { background: var(--bg-soft, #f7f8fa); }
.pdv2-varpick-ops { display: flex; gap: 8px; justify-content: flex-end; margin-top: 4px; }
@media (max-width: 720px) {
  .pdv2-cmp-cand { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
  .pdv2-cmp-filters { gap: 6px; }
}

/* ================= v=20260924a P3.5-02B｜知识管理（原场景卡管理升级） =================
   类前缀统一 km-*，与既有 sc-* / manage-* / faq2-* / pv2* / pdv2* 完全隔离，杜绝样式互相覆盖。
   默认：列表模式 + 服务端分页 + 左树中列表右详情；窄屏详情自动变抽屉。 */
.km-view { display: flex; flex-direction: column; gap: 12px; padding: 14px 18px 24px; }
.km-view .manage-page-head { flex-wrap: wrap; gap: 10px; }
.km-scope {
  font-size: 12px; color: var(--text-soft); background: var(--bg-soft);
  border: 1px solid var(--border); border-radius: 999px; padding: 4px 12px; white-space: nowrap;
}
.km-main { padding: 14px 16px 16px; }
.km-ph { padding: 22px 0; text-align: center; color: var(--text-mute); font-size: 13px; }

/* ---------- 统计卡 ---------- */
.km-stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); gap: 8px; }
.km-stat {
  display: flex; flex-direction: column; align-items: flex-start; gap: 2px;
  padding: 9px 12px; border: 1px solid var(--border); border-radius: 12px;
  background: var(--bg-elev); cursor: pointer; transition: border-color .15s, box-shadow .15s;
  font-family: inherit; text-align: left;
}
.km-stat:hover { border-color: var(--primary); box-shadow: var(--shadow-sm); }
.km-stat.active { border-color: var(--primary); background: var(--primary-soft); }
.km-stat-v { font-size: 20px; font-weight: 700; color: var(--text); line-height: 1.2; }
.km-stat-n { font-size: 12px; color: var(--text-mute); }
.km-stat-warn .km-stat-v { color: var(--danger); }
.km-stat-warn2 .km-stat-v { color: var(--accent); }

/* ---------- 搜索 / 筛选 / 治理 ---------- */
.km-search-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.km-search-row .km-search { flex: 1 1 320px; min-width: 220px; }
.km-hint { font-size: 12px; color: var(--text-mute); }
.km-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.km-filters .mini-select { max-width: 160px; }
.km-gov {
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px;
  margin-top: 10px; padding: 8px 10px; border-radius: 10px;
  background: var(--bg-soft); border: 1px dashed var(--border);
}
.km-gov-label { font-size: 12px; color: var(--text-soft); font-weight: 600; margin-right: 2px; }
.km-gov-btn {
  display: inline-flex; align-items: center; gap: 6px; cursor: pointer; font-family: inherit;
  padding: 4px 10px; border-radius: 999px; border: 1px solid var(--border);
  background: var(--bg-elev); color: var(--text-soft); font-size: 12px;
}
.km-gov-btn em { font-style: normal; font-weight: 700; color: var(--text); }
.km-gov-btn:hover { border-color: var(--accent); }
.km-gov-btn.active { border-color: var(--accent); background: var(--accent-soft); color: var(--accent); }
.km-gov-tip { font-size: 11px; color: var(--text-mute); margin-left: auto; }

/* ---------- 主体三栏 ---------- */
.km-body { display: grid; grid-template-columns: 220px minmax(0, 1fr) 380px; gap: 12px; margin-top: 12px; align-items: start; }
.km-tree {
  max-height: 620px; overflow: auto; border: 1px solid var(--border);
  border-radius: 12px; background: var(--bg-elev); padding: 6px;
}
.km-tree-head { font-size: 12px; color: var(--text-mute); padding: 4px 8px 8px; }
.km-tree-item {
  display: flex; align-items: center; gap: 6px; padding: 6px 8px;
  border-radius: 8px; cursor: pointer; font-size: 13px;
}
.km-tree-item:hover { background: var(--bg-soft); }
.km-tree-item.active { background: var(--primary-soft); color: var(--primary); font-weight: 600; }
.km-tree-arrow { width: 12px; text-align: center; color: var(--text-mute); font-size: 11px; flex: 0 0 12px; }
.km-tree-arrow-none { cursor: default; }
.km-tree-name { flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.km-tree-n { font-size: 11px; color: var(--text-mute); }
.km-tree-sub { padding-left: 22px; font-size: 12px; }

.km-center { min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.km-batch {
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px;
  padding: 8px 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg-soft);
}
.km-batch-n { font-size: 12px; color: var(--text-soft); }
.km-batch-n b { color: var(--text); }
.km-batch-tip, .km-tip { font-size: 12px; color: var(--text-mute); }
.km-batch-warn { font-size: 12px; color: var(--danger); }
.km-chk-all { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--text-soft); }

/* ---------- 列表（行式，绝不铺全量卡片） ---------- */
.km-list { border: 1px solid var(--border); border-radius: 12px; background: var(--bg-elev); overflow: hidden; }
.km-row {
  display: grid; grid-template-columns: 30px 76px 84px minmax(220px, 1.6fr) minmax(120px, .8fr) 92px 70px 108px 108px;
  gap: 8px; align-items: center; padding: 9px 12px; border-bottom: 1px solid var(--line); font-size: 13px;
}
.km-row:last-child { border-bottom: none; }
.km-row-head { background: var(--bg-soft); color: var(--text-mute); font-size: 12px; padding: 7px 12px; }
.km-row:not(.km-row-head):hover { background: var(--bg-soft); }
.km-c-title { min-width: 0; }
.km-title { cursor: pointer; color: var(--text); font-weight: 600; display: inline; }
.km-title:hover { color: var(--primary); text-decoration: underline; }
.km-tags { display: inline-flex; flex-wrap: wrap; gap: 4px; margin-left: 6px; }
.km-c-cat, .km-c-src, .km-c-time, .km-c-rel { color: var(--text-soft); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.km-c-op { display: flex; gap: 4px; flex-wrap: wrap; }
.km-tag { font-size: 11px; padding: 1px 6px; border-radius: 999px; border: 1px solid transparent; white-space: nowrap; }
.km-tag-p3 { background: var(--danger-soft); color: var(--danger); border-color: var(--danger); }
.km-tag-nc { background: var(--accent-soft); color: var(--accent); border-color: var(--accent); }
.km-tag-risk { background: var(--danger-soft); color: var(--danger); }
.km-tag-score { background: var(--primary-soft); color: var(--primary); }
.km-tag-ro { background: var(--bg-soft); color: var(--text-mute); border-color: var(--border); }
.km-readonly { font-size: 11px; color: var(--text-mute); }
.km-st { font-size: 11px; padding: 1px 7px; border-radius: 999px; background: var(--bg-soft); color: var(--text-soft); white-space: nowrap; }
.km-st-published, .km-st-published_legacy { background: var(--success-soft); color: var(--text-success); }
.km-st-pending { background: var(--accent-soft); color: var(--accent); }
.km-st-disabled, .km-st-disabled_legacy { background: var(--bg-soft); color: var(--text-mute); }
.km-st-draft { background: var(--primary-soft); color: var(--primary); }

/* ---------- 空 / 错 / 加载 ---------- */
.km-empty { padding: 40px 16px; text-align: center; }
.km-empty-title { font-size: 15px; font-weight: 600; color: var(--text); }
.km-empty-sub { font-size: 13px; color: var(--text-mute); margin: 6px 0 12px; }
.km-err .km-empty-title { color: var(--danger); }

/* ---------- 分页 ---------- */
.km-pager { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.km-pg-info { font-size: 12px; color: var(--text-soft); margin-right: 4px; }
.km-pg.active { background: var(--primary-soft); border-color: var(--primary); color: var(--primary); }
.km-pg-gap { color: var(--text-mute); padding: 0 2px; }

/* ---------- 详情面板 / 抽屉 ---------- */
.km-detail {
  position: sticky; top: 8px; max-height: 720px; overflow: auto;
  border: 1px solid var(--border); border-radius: 12px; background: var(--bg-elev); padding: 14px 16px 18px;
}
.km-d-head { display: flex; align-items: flex-start; gap: 8px; justify-content: space-between; }
.km-d-head h3 { margin: 0 0 8px; font-size: 16px; line-height: 1.5; }
.km-d-close { flex: 0 0 auto; }
.km-d-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.km-d-kind { font-size: 11px; padding: 1px 7px; border-radius: 999px; background: var(--bg-soft); color: var(--text-soft); }
.km-d-cat, .km-d-upd { font-size: 12px; color: var(--text-mute); margin-bottom: 4px; }
.km-d-block { margin-top: 12px; }
.km-d-h { font-size: 12px; font-weight: 700; color: var(--text-soft); margin-bottom: 4px; }
.km-d-body { font-size: 13px; line-height: 1.75; color: var(--text); background: var(--bg-soft); border-radius: 10px; padding: 8px 10px; white-space: pre-wrap; word-break: break-word; }
.km-d-risk .km-d-body { background: var(--danger-soft); color: var(--danger); }
.km-d-inline { margin-top: 10px; font-size: 12px; color: var(--text-soft); }
.km-d-inline b { display: block; margin-bottom: 4px; color: var(--text); font-size: 12px; }
.km-chip { display: inline-block; margin: 0 4px 4px 0; padding: 1px 8px; border-radius: 999px; background: var(--primary-soft); color: var(--primary); }
.km-d-ref { display: flex; align-items: baseline; gap: 8px; padding: 3px 0; border-bottom: 1px dashed var(--line); }
.km-d-ref:last-child { border-bottom: none; }
.km-d-tech { font-size: 11px; color: var(--text-mute); }
.km-d-link { cursor: pointer; color: var(--primary); }
.km-d-link:hover { text-decoration: underline; }
.km-d-bad { color: var(--danger); }
.km-d-none { color: var(--text-mute); }
.km-d-tech-box { margin-top: 14px; border-top: 1px solid var(--border); padding-top: 8px; }
.km-d-tech-box summary { cursor: pointer; font-size: 12px; color: var(--text-soft); }
.km-d-tech-row { display: flex; gap: 8px; font-size: 11px; padding: 3px 0; }
.km-d-tech-row span { flex: 0 0 92px; color: var(--text-mute); }
.km-d-tech-row code { flex: 1 1 auto; background: var(--bg-soft); border-radius: 6px; padding: 1px 6px; word-break: break-all; }
.km-d-actions { margin-top: 12px; }
.km-mask { display: none; }

/* ---------- 批量 Dry Run / 结果 ---------- */
.km-batch-form { display: flex; flex-direction: column; gap: 10px; }
.km-dry-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.km-dry { border: 1px dashed var(--border); border-radius: 10px; padding: 10px; background: var(--bg-soft); font-size: 13px; }
.km-dry-empty, .km-dry-err { color: var(--text-mute); }
.km-dry-err { color: var(--danger); }
.km-dry-stat { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 8px; }
.km-dry-stat .ok b { color: var(--text-success); }
.km-dry-stat .bad b { color: var(--danger); }
.km-dry-row { margin-top: 8px; }
.km-dry-row > b { display: block; font-size: 12px; color: var(--text-soft); margin-bottom: 4px; }
.km-dry-kv { display: flex; flex-wrap: wrap; gap: 6px; }
.km-dry-kv span, .km-dry-kv code { font-size: 11px; background: var(--bg-elev); border: 1px solid var(--border); border-radius: 6px; padding: 1px 6px; }
.km-dry-bad { display: flex; gap: 8px; align-items: baseline; padding: 3px 0; border-bottom: 1px dashed var(--line); font-size: 12px; }
.km-dry-bad code { flex: 0 0 130px; color: var(--text-mute); word-break: break-all; }
.km-dry-bad span { flex: 1 1 auto; color: var(--danger); }

/* ---------- 疑似重复 / 分类管理 ---------- */
.km-dup-list { display: flex; flex-direction: column; gap: 12px; max-height: 60vh; overflow: auto; }
.km-dup { border: 1px solid var(--border); border-radius: 10px; padding: 10px; }
.km-dup-head { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; color: var(--text-soft); margin-bottom: 6px; }
.km-dup-item { display: flex; align-items: center; gap: 8px; padding: 5px 0; border-top: 1px dashed var(--line); }
.km-dup-title { flex: 1 1 auto; font-size: 13px; }
.km-dup-meta { flex: 0 0 auto; font-size: 11px; color: var(--text-mute); }
.km-cat-form { display: flex; flex-direction: column; gap: 10px; }
.km-cat-add { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.km-cat-body { max-height: 46vh; overflow: auto; border: 1px solid var(--border); border-radius: 10px; padding: 6px; }
.km-cat-row { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 8px; }
.km-cat-row + .km-cat-row { border-top: 1px dashed var(--line); }
.km-cat-row.off { opacity: .55; }
.km-cat-row b { min-width: 90px; }
.km-cat-n { font-size: 11px; color: var(--text-mute); }
.km-cat-ops { margin-left: auto; display: flex; gap: 4px; }
.km-cat-sub { padding-left: 24px; font-size: 12px; }

/* ---------- 窄屏：详情改为抽屉 ---------- */
@media (max-width: 1240px) {
  .km-body { grid-template-columns: 190px minmax(0, 1fr); }
  .km-detail {
    position: fixed; right: 0; top: 0; bottom: 0; width: min(430px, 92vw); z-index: 60;
    max-height: none; border-radius: 0; box-shadow: var(--shadow-lg); animation: kmSlideIn .18s ease-out;
  }
  .km-mask { display: block; position: fixed; inset: 0; background: rgba(38, 34, 63, .45); z-index: 55; }
}
@keyframes kmSlideIn { from { transform: translateX(24px); opacity: .6; } to { transform: translateX(0); opacity: 1; } }
@media (max-width: 860px) {
  .km-body { grid-template-columns: minmax(0, 1fr); }
  .km-tree { max-height: 220px; }
  .km-row { grid-template-columns: 28px 70px minmax(160px, 1.4fr) 100px; }
  .km-c-type, .km-c-cat, .km-c-rel, .km-c-time { display: none; }
}

/* ============ v=20260924b UI 热修：后台「用户-权限」选择控件对齐（仅作用域内生效） ============
   根因：.field input{width:100%;padding;border;background} 与 .field label{display:block}
   会命中 .field 内的 radio / checkbox，导致圆圈被拉成整行宽、label 变块级、文字被挤到下一行。
   已在上游把 radio/checkbox 从 .field input 中排除；此处只给「账号权限弹窗」补上固定尺寸与行内布局，
   文本框 / 密码框 / select / textarea 仍保持 width:100%。 */
.perm-box .perm-opt,
.proj-box .proj-opt {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 0;
  max-width: 100%;
  font-weight: 400;
  line-height: 1.4;
}
.perm-box input[type="radio"],
.perm-box input[type="checkbox"],
.proj-box input[type="radio"],
.proj-box input[type="checkbox"] {
  -webkit-appearance: auto;
  appearance: auto;
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  color: var(--text);
  accent-color: var(--primary);
  cursor: pointer;
}
.perm-box input[type="radio"]:disabled,
.perm-box input[type="checkbox"]:disabled,
.proj-box input[type="radio"]:disabled,
.proj-box input[type="checkbox"]:disabled { cursor: not-allowed; }
/* 防御层：任何 .field 内「包着 radio/checkbox 的 label」都保持行内居中（旧缓存 DOM 也对齐）。
   显式排除 .role-opt，避免影响角色行既有的 gap / justify-content。 */
.field label:has(> input[type="radio"]):not(.role-opt),
.field label:has(> input[type="checkbox"]):not(.role-opt) {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  font-weight: 400;
}
/* 指派客服（st-agents）保持既有外观：本轮对其零变化（尺寸仍走其专用规则） */
.perm-box.st-agents > .perm-opt input { background: var(--bg-soft); border: 0; color: var(--text); accent-color: auto; }
/* 角色行：三行上下间距完全一致（首行补透明分隔线，抵消相邻行的 border-top） */
.role-box > .role-opt:first-child { border-top: 1px dashed transparent; }

/* ===== v=20260929a P3.5-03B：变更记录 / Diff / 操作记录（只读） ===== */
.km-hist .km-d-h{margin-bottom:8px}
.km-hi{border:1px solid rgba(148,163,184,.28);border-radius:8px;padding:8px 10px;margin-bottom:8px}
.km-hi-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;cursor:pointer;font-size:13px}
.km-hi-ver{font-weight:700;color:#0ea5e9;min-width:34px}
.km-hi-time{color:#64748b}
.km-hi-user{font-weight:600}
.km-hi-act{background:#f1f5f9;border-radius:4px;padding:1px 6px}
.km-hi-more{margin-left:auto;color:#0ea5e9;font-size:12px}
.km-hi-badge{background:#fff7ed;color:#c2410c;border:1px solid #fdba74;border-radius:4px;padding:1px 6px;font-size:12px}
.km-hi-batch{color:#0ea5e9;text-decoration:underline;cursor:pointer;font-size:12px}
.km-hi-v1tag{background:#f1f5f9;color:#64748b;border-radius:4px;padding:1px 6px;font-size:12px}
.km-hi-v1{opacity:.85}
.km-hi-body{margin-top:8px;border-top:1px dashed rgba(148,163,184,.4);padding-top:8px}
.km-hi-loading,.km-hi-none,.km-hi-err{color:#64748b;font-size:13px;padding:6px 0}
.km-hi-err{color:#b91c1c}
.km-hi-tip{color:#94a3b8;font-size:12px}
.km-df{border-left:3px solid #cbd5e1;padding:6px 8px;margin-bottom:6px;background:#f8fafc;border-radius:0 6px 6px 0}
.km-df-high{border-left-color:#f59e0b;background:#fffbeb}
.km-df-badge{margin-top:4px;color:#c2410c;font-size:12px}
.km-df-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px}
.km-df-k{font-weight:600;color:#334155;min-width:70px}
.km-df-b{color:#b91c1c;text-decoration:line-through;background:#fee2e2;border-radius:3px;padding:0 4px}
.km-df-a{color:#15803d;background:#dcfce7;border-radius:3px;padding:0 4px}
.km-df-arrow{color:#94a3b8}
.km-df-line{font-size:13px;margin-top:4px}
.km-df-add span{color:#15803d;background:#dcfce7;border-radius:3px;padding:0 4px;margin-right:4px}
.km-df-del span{color:#b91c1c;background:#fee2e2;border-radius:3px;padding:0 4px;margin-right:4px}
.km-df-lines{margin-top:6px;background:#fff;border:1px solid rgba(148,163,184,.25);border-radius:6px;padding:6px}
.km-ladd{color:#15803d;background:#dcfce7;border-radius:3px;padding:1px 4px;margin:1px 0}
.km-ldel{color:#b91c1c;background:#fee2e2;text-decoration:line-through;border-radius:3px;padding:1px 4px;margin:1px 0}
.km-lkeep{color:#475569;padding:1px 4px;margin:1px 0}
.km-df-warn{color:#b45309;font-size:12px;margin-top:4px}
.km-modal{position:fixed;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;z-index:9999}
.km-modal-box{background:#fff;border-radius:10px;padding:14px;width:560px;max-width:92vw;max-height:84vh;overflow:auto}
.km-modal-wide{width:900px}
.km-modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.km-batch-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;font-size:13px;margin-bottom:10px}
.km-batch-grid span{color:#64748b;margin-right:6px}
.km-batch-ids{margin-top:6px;max-height:220px;overflow:auto}
.km-audit-bar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.km-audit-bar input,.km-audit-bar select{padding:4px 6px;border:1px solid #cbd5e1;border-radius:6px;font-size:13px}
.km-audit-tb{width:100%;border-collapse:collapse;font-size:13px}
.km-audit-tb th,.km-audit-tb td{border-bottom:1px solid #e2e8f0;padding:5px 6px;text-align:left}
.km-audit-tb th{color:#64748b;font-weight:600}
.km-audit-pager{margin-top:8px;font-size:13px;color:#475569}
