/* ============================================================
   诸葛盒子 v2.0 — Design System (jQuery + LayUI, 1:1 wiseteam3)
   Palette / spacing / radius / shadows derived from wiseteam3.
   ============================================================ */

:root {
  /* Core wiseteam3 tokens */
  --wt-bg: #f7f8fa;
  --wt-bg-chat: #fcfcfc;
  --wt-bg-secondary: #f6f6f6;
  --wt-bg-hover: #fafbfc;
  --wt-surface: #ffffff;

  --wt-ink: #18181a;
  --wt-ink-secondary: #464c5e;
  --wt-muted: #858b9c;
  --wt-muted-light: #757f9c;

  --wt-border: #e3e7f1;
  --wt-border-light: #f2f3f7;
  --wt-border-dark: #e5e7eb;

  --wt-accent: #18181a;
  --wt-accent-hover: #303030;
  --wt-link: #1a71ff;

  --wt-green: #22c55e;
  --wt-green-bg: #e9f7ef;
  --wt-green-text: #2cb360;
  --wt-blue: #1a71ff;
  --wt-blue-bg: #e8f0ff;
  --wt-orange: #ff7f00;
  --wt-orange-bg: #fff2e5;
  --wt-red: #d20b0b;
  --wt-red-bg: #fce7e7;
  --wt-danger: #d20b0b; /* alias of --wt-red — several pages reference it */
  --wt-yellow-bg: #fff8e8;
  --wt-yellow-text: #6f4500;

  /* Layout */
  --wt-sidebar-width: 220px;
  --wt-sidebar-collapsed: 72px;
  --wt-header-height: 56px;

  /* Radius */
  --wt-radius-xs: 6px;
  --wt-radius-sm: 8px;
  --wt-radius: 10px;
  --wt-radius-md: 12px;
  --wt-radius-lg: 14px;
  --wt-radius-xl: 20px;

  /* Shadows */
  --wt-shadow-sm: 0 1px 2px rgba(24, 24, 26, 0.03);
  --wt-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  --wt-shadow-card: 0 0 6px rgba(0, 0, 0, 0.05);
  --wt-shadow-lg: 0 16px 30px rgba(0, 0, 0, 0.10);
  --wt-shadow-composer: 0 6px 24px rgba(24, 24, 26, 0.08);
  --wt-shadow-dropdown: 0 16px 15px rgba(0, 0, 0, 0.10);
  --wt-shadow-toast: 0 12px 32px rgba(0, 0, 0, 0.12);

  --wt-transition: .18s ease;
}

* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; }
body {
  font-family: "Inter", "IBM Plex Sans", "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;
  background: var(--wt-bg);
  color: var(--wt-ink);
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
#app { height: 100%; }
a { color: var(--wt-link); text-decoration: none; }
a:hover { opacity: .9; }

::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #9ca3af; }
::-webkit-scrollbar-track { background: transparent; }

/* ============================================================
   Layout shell
   ============================================================ */
.wt-shell { display: flex; height: 100%; }

.wt-sidebar {
  width: var(--wt-sidebar-width); flex-shrink: 0; background: var(--wt-surface);
  color: var(--wt-muted); display: flex; flex-direction: column;
  border-right: 1px solid var(--wt-border-light);
  transition: width var(--wt-transition); overflow: hidden;
}
.wt-sidebar.collapsed { width: var(--wt-sidebar-collapsed); }

.wt-sidebar-brand {
  display: flex; align-items: center; gap: 10px;
  padding: 0 16px; height: var(--wt-header-height);
  color: var(--wt-ink); font-weight: 600; font-size: 17px; flex-shrink: 0;
  border-bottom: 1px solid var(--wt-border-light);
}
.wt-sidebar-brand .logo { width: 28px; height: 28px; flex-shrink: 0; }
.wt-sidebar-brand .logo img { width: 100%; height: 100%; object-fit: contain; }
.wt-sidebar.collapsed .wt-sidebar-brand .label,
.wt-sidebar.collapsed .wt-nav-group-title { display: none; }

.wt-nav { flex: 1; overflow-y: auto; padding: 8px 0; }
.wt-nav-group { margin-bottom: 2px; }
.wt-nav-group-title {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 16px 4px; font-size: 11px; letter-spacing: .04em;
  color: var(--wt-muted); font-weight: 500;
  cursor: pointer; user-select: none;
  transition: color 0.2s ease;
}
.wt-nav-group-title:hover { color: var(--wt-ink); }
.wt-nav-group-title .chevron {
  width: 0; height: 0;
  border-left: 4px solid var(--wt-muted);
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  transition: transform 0.25s ease;
}
.wt-nav-group-title:hover .chevron { border-left-color: var(--wt-ink); }
.wt-nav-group.expanded .wt-nav-group-title .chevron { transform: rotate(90deg); }
.wt-nav-group-items {
  max-height: 0; overflow: hidden;
  opacity: 0;
  transition: max-height 0.28s ease, opacity 0.2s ease;
}
/* R36：收起组的子项虽被裁剪不可见，但其盒模型仍会拦截点击（曾实测盖住
   下一组标题的命中区）。宽栏收起态禁用其指针事件；窄栏（.collapsed）
   子项是强制可见的图标入口，必须保持可点。 */
.wt-sidebar:not(.collapsed) .wt-nav-group:not(.expanded) .wt-nav-group-items { pointer-events: none; }
.wt-nav-group.expanded .wt-nav-group-items {
  max-height: 1000px; opacity: 1;
}

/* Two-level nav sub-menu (e.g. 数字员工管理 → 助手管理 / 虚拟员工管理) */
.wt-nav-sub { margin-bottom: 2px; }
.wt-nav-sub-head {
  display: flex; align-items: center; gap: 8px;
  margin: 0 10px; padding: 6px 10px; cursor: pointer;
  color: var(--wt-muted); font-size: 14px;
  border-radius: var(--wt-radius-md); height: 34px;
  transition: var(--wt-transition); user-select: none;
}
.wt-nav-sub-head .icon { width: 18px; height: 18px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.wt-nav-sub-head .icon img, .wt-nav-sub-head .icon svg { width: 16px; height: 16px; }
.wt-nav-sub-head:hover { background: var(--wt-border-light); color: var(--wt-ink); }
.wt-nav-sub-head .chevron {
  margin-left: auto; width: 0; height: 0;
  border-left: 4px solid var(--wt-muted);
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  transition: transform 0.25s ease;
}
.wt-nav-sub-head:hover .chevron { border-left-color: var(--wt-ink); }
.wt-nav-sub.expanded .wt-nav-sub-head .chevron { transform: rotate(90deg); }
.wt-nav-sub-items {
  max-height: 0; overflow: hidden;
  opacity: 0;
  transition: max-height 0.28s ease, opacity 0.2s ease;
}
.wt-nav-sub.expanded .wt-nav-sub-items {
  max-height: 400px; opacity: 1;
}
.wt-nav-item-sub {
  margin: 0 10px 0 26px; padding: 5px 10px;
  font-size: 13px; height: 30px; color: var(--wt-muted);
}
.wt-nav-item-sub::before {
  content: ""; display: inline-block; width: 4px; height: 4px;
  border-radius: 50%; background: var(--wt-muted); opacity: .5; margin-right: 8px;
  vertical-align: middle; flex-shrink: 0;
}
.wt-nav-item-sub.active::before { background: var(--wt-ink); opacity: 1; }
.wt-sidebar.collapsed .wt-nav-sub-head .label,
.wt-sidebar.collapsed .wt-nav-sub-head .chevron { display: none; }
.wt-sidebar.collapsed .wt-nav-sub-items { max-height: none; opacity: 1; overflow: visible; }
.wt-sidebar.collapsed .wt-nav-item-sub { margin: 2px 8px; }
.wt-sidebar.collapsed .wt-nav-item-sub::before { display: none; }

.wt-nav-item {
  display: flex; align-items: center; gap: 8px;
  margin: 0 10px; padding: 6px 10px; cursor: pointer;
  color: var(--wt-muted); font-size: 14px;
  border-radius: var(--wt-radius-md); height: 34px;
  transition: var(--wt-transition); user-select: none;
}
.wt-nav-item .icon { width: 18px; height: 18px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.wt-nav-item .icon img, .wt-nav-item .icon svg { width: 16px; height: 16px; }
.wt-nav-item:hover { background: var(--wt-border-light); color: var(--wt-ink); }
/* R60：当前页高亮加强——accent 左侧竖条 + 浅蓝底 + 加粗（原来与 hover
   同灰，分不清"我在哪"） */
/* 20261003（老板反馈：菜单高亮字体不要绿色）：active 字色脱离
   --wt-accent（R191-5 按钮体系把它定为青绿 #009688，菜单跟着变绿了）
   ——改 ink 黑色粗体；左侧竖条保留 accent 作定位标 */
.wt-nav-item.active {
  background: var(--wt-blue-bg, #eef4ff);
  color: var(--wt-ink, #18181a);
  font-weight: 700;
  box-shadow: inset 3px 0 0 var(--wt-accent, #1a71ff);
}
/* 子菜单当前项同口径：黑粗（原无 active 文字色，靠小圆点变色不够醒目） */
.wt-nav-item-sub.active {
  color: var(--wt-ink, #18181a);
  font-weight: 700;
}
.wt-sidebar.collapsed .wt-nav-item { justify-content: center; margin: 2px 8px; padding: 6px 0; }
.wt-sidebar.collapsed .wt-nav-item .label { display: none; }
.wt-sidebar.collapsed .wt-nav-group-items { max-height: none; opacity: 1; overflow: visible; }

.wt-nav-badge {
  margin-left: auto; background: var(--wt-red); color: #fff;
  border-radius: 999px; font-size: 10px; padding: 0 5px; line-height: 15px; min-width: 15px; text-align: center;
}
.wt-sidebar.collapsed .wt-nav-badge { display: none; }

.wt-sidebar-footer {
  padding: 8px 12px; border-top: 1px solid var(--wt-border-light); flex-shrink: 0;
}
.wt-sidebar-toggle {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  width: 100%; height: 32px; border-radius: var(--wt-radius);
  border: 0.5px solid var(--wt-border); background: var(--wt-surface);
  color: var(--wt-muted); font-size: 13px; cursor: pointer;
}
.wt-sidebar-toggle:hover { background: var(--wt-bg-secondary); color: var(--wt-ink); }
.wt-sidebar.collapsed .wt-sidebar-toggle .label { display: none; }

.wt-main { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.wt-header {
  height: var(--wt-header-height); background: var(--wt-surface);
  border-bottom: 1px solid var(--wt-border-light);
  display: flex; align-items: center; padding: 0 24px; gap: 12px;
  flex-shrink: 0;
}
.wt-header .title { font-size: 16px; font-weight: 500; color: var(--wt-ink-secondary); }
.wt-header .desc { font-size: 14px; color: var(--wt-muted); margin-left: 8px; }
.wt-header .spacer { flex: 1; }
.wt-header-actions { display: flex; align-items: center; gap: 10px; }

.wt-content { flex: 1; overflow: auto; padding: 32px 48px 43px; }
.wt-content.no-pad { padding: 0; }
@media (max-width: 900px) { .wt-content { padding: 20px 16px; } }

/* Header user dropdown */
.wt-user-menu {
  display: flex; align-items: center; gap: 10px; cursor: pointer;
  padding: 4px 6px 4px 4px; border-radius: var(--wt-radius-md);
}
.wt-user-menu:hover { background: var(--wt-bg-secondary); }
.wt-user-avatar {
  width: 32px; height: 32px; border-radius: 50%;
  background: #eef1fb; color: #7e96dc; font-size: 14px; font-weight: 500;
  display: flex; align-items: center; justify-content: center;
}
.wt-user-info { display: flex; flex-direction: column; line-height: 1.25; }
.wt-user-info .name { font-size: 13px; color: var(--wt-ink); font-weight: 500; }
.wt-user-info .role { font-size: 11px; color: var(--wt-muted); }

/* ============================================================
   Buttons —— R112 统一按钮体系（对齐 layui 设计语言：38px 高、
   2px 圆角、主/次/危险三级清晰层级）。全站所有"操作"必须用
   .wt-btn*，禁止再用链接/裸文本冒充按钮。主色沿用品牌 accent
   保持全站视觉一致（如需 layui 经典绿改 --wt-accent 一处即可）。
   ============================================================ */
.wt-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 5px;
  height: 38px; padding: 0 18px; border-radius: 2px;
  font-size: 14px; cursor: pointer; border: 1px solid #d2d2d2;
  transition: background .15s, border-color .15s, color .15s;
  white-space: nowrap; user-select: none; box-sizing: border-box;
  background: #fff; color: #555;
}
.wt-btn:hover { border-color: var(--wt-accent); color: var(--wt-accent); }
.wt-btn-primary { background: var(--wt-accent); border-color: var(--wt-accent); color: #fff; }
.wt-btn-primary:hover { background: var(--wt-accent-hover); border-color: var(--wt-accent-hover); color: #fff; }
.wt-btn-outline {
  background: var(--wt-surface); border-color: var(--wt-border);
  color: var(--wt-ink-secondary);
}
.wt-btn-outline:hover { border-color: #cbd3e6; color: var(--wt-ink); }
.wt-btn-danger { background: #ff5722; border-color: #ff5722; color: #fff; }
.wt-btn-danger:hover { background: #e64a19; border-color: #e64a19; color: #fff; }
.wt-btn-ghost { background: transparent; border-color: transparent; color: var(--wt-muted); }
.wt-btn-ghost:hover { background: var(--wt-bg-secondary); color: var(--wt-ink); border-color: transparent; }
.wt-btn-sm { height: 30px; padding: 0 10px; font-size: 12px; }
.wt-btn-lg { height: 42px; padding: 0 25px; font-size: 16px; }
.wt-btn-icon { width: 30px; height: 30px; padding: 0; }
.wt-btn[disabled], .wt-btn.disabled { opacity: .6; cursor: not-allowed; }

/* ============================================================
   Inputs / selects / forms
   ============================================================ */
.wt-field { margin-bottom: 16px; }
.wt-field label { display: block; font-size: 13px; color: var(--wt-ink-secondary); margin-bottom: 5px; }
.wt-field .req { color: var(--wt-red); margin-left: 2px; }
.wt-field .hint { font-size: 12px; color: var(--wt-muted); margin-top: 4px; }

/* Avatar picker (create/edit digital employee) */
.wt-avatar-picker {
  display: flex; flex-wrap: wrap; gap: 8px;
  /* R35 C1：头像库扩至 40 款，网格限高滚动防弹窗过长 */
  max-height: 236px; overflow-y: auto;
}
.wt-avatar-picker .cell {
  position: relative; cursor: pointer; border-radius: 50%;
  padding: 2px; border: 2px solid transparent;
  transition: border-color 0.2s ease, transform 0.15s ease;
}
.wt-avatar-picker .cell:hover { transform: scale(1.06); }
.wt-avatar-picker .cell.selected { border-color: var(--wt-accent); }
.wt-avatar-picker .cell input { position: absolute; opacity: 0; pointer-events: none; }
.wt-avatar-picker .cell img {
  width: 44px; height: 44px; border-radius: 50%; object-fit: cover;
  border: 1px solid var(--wt-border); display: block;
}

.wt-input, .wt-textarea, .wt-select {
  width: 100%; border: 0.5px solid var(--wt-border); background: var(--wt-surface);
  border-radius: var(--wt-radius); font-size: 14px; color: var(--wt-ink);
  transition: var(--wt-transition); font-family: inherit;
}
.wt-input { height: 34px; padding: 0 12px; }
/* R112：textarea 误用 .wt-input 时不得被单行高度压扁（评论区捡词
   等 49 处实测只剩 1.5 行）——高度交还 rows 属性并补多行排版 */
textarea.wt-input {
  height: auto; min-height: 72px; padding: 8px 12px;
  line-height: 1.6; resize: vertical;
}
.wt-textarea { padding: 10px 12px; min-height: 88px; resize: vertical; line-height: 1.6; }
.wt-select { height: 34px; padding: 0 24px 0 12px; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23858b9c' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 10px center; }
.wt-input:focus, .wt-textarea:focus, .wt-select:focus {
  outline: none; border-color: var(--wt-accent);
}
.wt-input::placeholder, .wt-textarea::placeholder { color: #b0b8c8; }

.wt-input-lg { height: 44px; padding: 0 16px; font-size: 14px; }

.wt-search {
  display: flex; align-items: center; gap: 8px;
  height: 34px; overflow: hidden; border-radius: var(--wt-radius);
  border: 0.5px solid var(--wt-border); background: var(--wt-surface); padding: 0 12px;
}
.wt-search:focus-within { border-color: var(--wt-accent); }
.wt-search input { border: 0; background: transparent; flex: 1; height: 100%; outline: none; font-size: 13px; color: var(--wt-ink); }
.wt-search input::placeholder { color: var(--wt-muted); }

/* ============================================================
   Tables
   ============================================================ */
.wt-table-wrap { overflow-x: auto; border-radius: var(--wt-radius-lg); border: 1px solid var(--wt-border-light); }
.wt-table { width: 100%; border-collapse: collapse; background: var(--wt-surface); font-size: 12px; }
.wt-table th, .wt-table td { padding: 12px 16px; text-align: left; }
.wt-table th { background: var(--wt-border-light); font-weight: 500; color: var(--wt-ink-secondary); white-space: nowrap; }
.wt-table td { color: var(--wt-muted); border-bottom: 1px solid var(--wt-border-light); }
.wt-table tbody tr:last-child td { border-bottom: 0; }
.wt-table tbody tr:hover td { background: var(--wt-bg-hover); }
.wt-table .ops { display: flex; gap: 6px; flex-wrap: nowrap; }
.wt-table-empty { text-align: center; padding: 56px 20px; color: var(--wt-muted); font-size: 13px; }

/* ============================================================
   Cards / panels
   ============================================================ */
.wt-card {
  background: var(--wt-surface); border-radius: var(--wt-radius-lg);
  border: 1px solid var(--wt-border-light); overflow: hidden;
}
.wt-card-pad { padding: 16px; }
.wt-card-header {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 16px; border-bottom: 1px solid var(--wt-border-light);
}
.wt-card-header .title { font-weight: 600; font-size: 15px; color: var(--wt-ink); }
.wt-card-header .actions { margin-left: auto; display: flex; gap: 8px; align-items: center; }

/* Simple titled card body blocks (license/subscription page etc.) */
.wt-card-title {
  font-weight: 600; font-size: 14px; color: var(--wt-ink);
  padding: 12px 16px; border-bottom: 1px solid var(--wt-border-light);
}
.wt-card-body { padding: 16px; }

/* Callout banners — attention-level alert boxes */
.wt-callout {
  border-radius: var(--wt-radius); padding: 10px 14px; font-size: 13px;
  line-height: 1.7; border: 1px solid transparent;
}
.wt-callout-danger { background: var(--wt-red-bg); border-color: #f3b6b6; color: var(--wt-red); }
.wt-callout-warn { background: var(--wt-orange-bg, #fdf3e7); border-color: #f5d3a8; color: var(--wt-orange, #b05e0a); }
.wt-callout-info { background: var(--wt-blue-bg, #e8f1fd); border-color: #bcd4f5; color: var(--wt-blue, #1d5fbf); }
/* C-2：记忆确认清单卡片（"已记住 N 条信息"） */
.wt-callout-success { background: #eaf7ee; border-color: #b7dfc3; color: #1f7a3d; }

.wt-toolbar { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; flex-wrap: wrap; }
.wt-toolbar .spacer { flex: 1; }

/* Stat cards (wiseteam3) */
.wt-stat {
  display: flex; align-items: center; gap: 16px;
  height: 100px; flex: 1; flex-basis: 220px;
  border-radius: var(--wt-radius-xl); background: var(--wt-bg-secondary); padding: 20px 32px;
}
.wt-stat.green { background: var(--wt-green-bg); }
.wt-stat .value { font-size: 34px; font-weight: 600; color: var(--wt-ink); line-height: 1; }
.wt-stat .label { font-size: 14px; color: var(--wt-ink-secondary); margin-top: 6px; }
.wt-stat .sub { font-size: 12px; color: var(--wt-muted); margin-top: 2px; }
.wt-stat-grid { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 24px; }

/* Small stat card */
.wt-stat-sm { background: var(--wt-bg-secondary); border-radius: var(--wt-radius-lg); padding: 12px 16px; min-width: 140px; }
.wt-stat-sm .value { font-size: 26px; font-weight: 600; color: var(--wt-ink); }
.wt-stat-sm .label { font-size: 12px; color: var(--wt-muted); margin-top: 2px; }

/* ============================================================
   Tags / badges / status
   ============================================================ */
.wt-tag {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 2px 8px; border-radius: 999px; font-size: 10px;
  line-height: 1.5; font-weight: 500;
}
.wt-tag-gray   { background: var(--wt-border-light); color: var(--wt-muted); }
.wt-tag-green  { background: var(--wt-green-bg); color: var(--wt-green-text); }
.wt-tag-blue   { background: var(--wt-blue-bg); color: var(--wt-blue); }
.wt-tag-orange { background: var(--wt-orange-bg); color: var(--wt-orange); }
.wt-tag-red    { background: var(--wt-red-bg); color: var(--wt-red); }

.wt-status {
  display: inline-flex; align-items: center; gap: 6px;
  border-radius: 999px; padding: 4px 12px; font-size: 10px; line-height: 1;
}
.wt-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; }
.wt-status.green  { background: var(--wt-green-bg); color: var(--wt-green-text); }
.wt-status.green::before  { background: var(--wt-green-text); }
.wt-status.blue   { background: var(--wt-blue-bg); color: var(--wt-blue); }
.wt-status.blue::before   { background: var(--wt-blue); }
.wt-status.orange { background: var(--wt-orange-bg); color: var(--wt-orange); }
.wt-status.orange::before { background: var(--wt-orange); }
.wt-status.gray   { background: var(--wt-border-light); color: var(--wt-muted); }
.wt-status.gray::before   { background: var(--wt-muted); }
.wt-status.red    { background: var(--wt-red-bg); color: var(--wt-red); }
.wt-status.red::before    { background: var(--wt-red); }

.wt-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 4px; }
.wt-dot.green { background: var(--wt-green); }
.wt-dot.amber { background: #f59e0b; }
.wt-dot.red   { background: var(--wt-red); }
.wt-dot.gray  { background: var(--wt-muted); }

/* ============================================================
   Login page (wiseteam3 marketing landing)
   ============================================================ */
.wt-login-wrap {
  height: 100%; display: flex; background: var(--wt-surface); overflow: hidden;
}
/* R64-5：登录页改白底（用户反馈不要蓝底）；左右分区以细边线分隔 */
.wt-login-left {
  flex: 1; display: flex; flex-direction: column; justify-content: space-between;
  padding: 32px 48px 48px; min-width: 0;
  background: var(--wt-surface);
  border-right: 1px solid var(--wt-border-light);
}
.wt-login-left .top img { border-radius: 7px; }
.wt-login-left .top { display: flex; align-items: center; gap: 8px; font-size: 17px; font-weight: 600; color: var(--wt-ink); }
.wt-login-left .top img { width: 28px; height: 28px; }
.wt-login-hero {
  max-width: 560px; margin: auto 0;
}
.wt-login-hero .eyebrow {
  display: inline-block; border-radius: var(--wt-radius);
  border: 0.5px solid var(--wt-border); background: var(--wt-bg-secondary);
  padding: 6px 20px; font-size: 14px; color: var(--wt-ink-secondary); margin-bottom: 24px;
}
.wt-login-hero h1 {
  font-size: 54px; font-weight: 600; line-height: 1.15;
  letter-spacing: 1.08px; color: var(--wt-ink); margin: 0 0 24px;
}
.wt-login-hero p { font-size: 16px; line-height: 1.7; color: var(--wt-muted-light); max-width: 480px; }
.wt-login-preview {
  margin-top: 32px; max-width: 720px;
}
.wt-login-preview img { width: 100%; border-radius: var(--wt-radius-lg); box-shadow: var(--wt-shadow-lg); }

.wt-login-right {
  width: 420px; flex-shrink: 0; display: flex; align-items: center; justify-content: center;
  padding: 40px; background: var(--wt-bg);
}
.wt-login-card {
  width: 320px; background: var(--wt-surface); border-radius: var(--wt-radius-lg);
  padding: 28px; box-shadow: var(--wt-shadow-card);
  animation: wt-fade-in .4s ease;
}
.wt-login-card .brand { text-align: center; margin-bottom: 24px; }
.wt-login-card .brand .logo {
  width: 48px; height: 48px; border-radius: var(--wt-radius); margin: 0 auto 12px;
  background: var(--wt-accent); display: flex; align-items: center; justify-content: center;
}
.wt-login-card .brand .logo img { width: 28px; height: 28px; filter: brightness(0) invert(1); }
.wt-login-card .brand h1 { font-size: 20px; margin: 0; color: var(--wt-ink); }
.wt-login-card .brand p { color: var(--wt-muted); font-size: 13px; margin: 4px 0 0; }

.wt-login-form .wt-field { margin-bottom: 16px; }
/* R155（P3-5）：专业术语悬停提示样式（title tooltip 由浏览器原生渲染） */
.wt-term { border-bottom: 1px dashed #94a3b8; cursor: help; }
.wt-login-form input {
  width: 100%; height: 44px; border: 1px solid var(--wt-border); border-radius: var(--wt-radius);
  padding: 0 16px; font-size: 14px; transition: var(--wt-transition);
}
.wt-login-form input:focus { outline: none; border-color: var(--wt-accent); }
.wt-login-form input.error { border-color: #f54a45; }

.wt-login-form button[type=submit] {
  width: 120px; height: 40px; border-radius: var(--wt-radius);
  background: var(--wt-accent); color: #fff; border: 0; font-size: 16px; cursor: pointer;
  margin-top: 8px;
}
.wt-login-form button[type=submit]:hover { background: var(--wt-accent-hover); }
.wt-login-form button[type=submit]:disabled { opacity: .5; cursor: not-allowed; }

.wt-login-demo {
  margin-top: 20px; padding: 12px; border-radius: var(--wt-radius);
  background: var(--wt-bg-secondary); font-size: 12px; color: var(--wt-muted-light);
}
.wt-login-demo b { color: var(--wt-ink); cursor: pointer; }
.wt-login-demo b:hover { text-decoration: underline; }

@keyframes wt-fade-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 960px) {
  .wt-login-left { display: none; }
  .wt-login-right { width: 100%; }
}

/* ============================================================
   Chat workspace (wiseteam3)
   ============================================================ */
.wt-chat { display: flex; height: 100%; background: var(--wt-bg-chat); }

/* Chat sidebar */
.wt-chat-sidebar {
  width: 260px; flex-shrink: 0; border-right: 1px solid var(--wt-border-light);
  display: flex; flex-direction: column; background: var(--wt-surface);
}
.wt-chat-sidebar .head { padding: 12px; border-bottom: 1px solid var(--wt-border-light); }
.wt-chat-sidebar .head .title { font-size: 13px; font-weight: 500; color: var(--wt-ink); margin-bottom: 8px; }
/* 员工多时限高滚动，避免把"最近会话"挤出可视区。
   注意：不能用 % —— 父容器 #wt-chat-agents 高度为 auto，百分比无法解析，
   必须用视口单位（vh 始终有确定值）。 */
.wt-chat-agent-list {
  padding: 8px; border-bottom: 1px solid var(--wt-border-light);
  max-height: 40vh; overflow-y: auto; min-height: 84px;
}
.wt-chat-agent-list::-webkit-scrollbar { width: 4px; }
.wt-chat-agent-list::-webkit-scrollbar-thumb { background: var(--wt-border); border-radius: 2px; }
.wt-chat-agent {
  display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: var(--wt-radius-md);
  cursor: pointer; margin-bottom: 2px; transition: var(--wt-transition);
}
.wt-chat-agent:hover { background: var(--wt-bg-secondary); }
.wt-chat-agent.active { background: var(--wt-border-light); }
.wt-chat-agent .avatar {
  width: 34px; height: 34px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--wt-bg-secondary); color: var(--wt-ink); font-size: 14px; font-weight: 600;
}
.wt-chat-agent .avatar-img { object-fit: cover; border: 1px solid var(--wt-border); }
.wt-chat-agent .info { min-width: 0; flex: 1; }
.wt-chat-agent .name { font-size: 13px; font-weight: 500; color: var(--wt-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wt-chat-agent .sub { font-size: 11px; color: var(--wt-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.wt-chat-session-list { flex: 1; overflow-y: auto; padding: 6px; }
.wt-chat-session-list .sec-label { padding: 6px 8px 2px; font-size: 11px; color: var(--wt-muted); }
.wt-chat-session {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 10px; border-radius: var(--wt-radius-md); cursor: pointer; margin-bottom: 2px;
  transition: var(--wt-transition);
}
.wt-chat-session:hover { background: var(--wt-bg-secondary); }
.wt-chat-session.active { background: var(--wt-border-light); }
.wt-chat-session .avatar {
  width: 30px; height: 30px; border-radius: 50%; flex-shrink: 0; object-fit: cover;
  border: 1px solid var(--wt-border);
}
.wt-chat-session .info { min-width: 0; flex: 1; }
.wt-chat-session .t { font-size: 13px; color: var(--wt-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wt-chat-session .s { font-size: 11px; color: var(--wt-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wt-chat-session .ops { display: none; gap: 2px; flex-shrink: 0; }
.wt-chat-session:hover .ops { display: flex; }
.wt-chat-session .ops .op {
  width: 22px; height: 22px; display: flex; align-items: center; justify-content: center;
  border-radius: 6px; color: var(--wt-muted); cursor: pointer;
}
.wt-chat-session .ops .op:hover { background: var(--wt-border-light); color: var(--wt-ink); }
.wt-chat-session .ops .op[data-op=del]:hover img { filter: invert(18%) sepia(92%) saturate(5000%) hue-rotate(350deg); }

.wt-chat-main { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.wt-chat-header {
  height: 56px; border-bottom: 1px solid #f4f4f4;
  display: flex; align-items: center; padding: 0 24px; gap: 10px; flex-shrink: 0;
  background: var(--wt-bg-chat);
}
.wt-chat-header .title { font-size: 14px; color: var(--wt-ink); display: flex; align-items: center; gap: 8px; }
.wt-chat-header .title input {
  border: 0; background: transparent; font-size: 14px; color: var(--wt-ink);
  border-bottom: 1px dashed transparent; padding: 0;
}
.wt-chat-header .title input:hover { border-bottom-color: var(--wt-border); }
.wt-chat-header .sub { font-size: 10px; color: var(--wt-muted); }
.wt-chat-messages { flex: 1; overflow-y: auto; padding: 22px 0 62px; }
.wt-chat-empty {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  height: 100%; color: var(--wt-muted); gap: 10px;
}
.wt-chat-empty .emoji { font-size: 48px; }
/* R18：问候区数字员工头像（替代 👋 emoji） */
.wt-chat-empty .agent-ava {
  width: 76px; height: 76px; border-radius: 50%; object-fit: cover;
  background: var(--wt-bg-secondary);
  box-shadow: 0 4px 16px rgba(24, 24, 26, .12);
}

.wt-msg { max-width: 820px; margin: 0 auto 20px; padding: 0 24px; display: flex; gap: 12px; }
.wt-msg.user { justify-content: flex-end; }
/* R35 A4：系统轻提示行（自主判断等）——居中灰字小胶囊，随消息流滚动 */
.wt-sys-hint-row { margin: 0 auto 14px; }
.wt-sys-hint {
  font-size: 12px; color: var(--wt-muted, #6b7280);
  background: var(--wt-bg-secondary, #f3f4f6);
  border-radius: 12px; padding: 4px 14px;
  max-width: 86%; text-align: center; line-height: 1.6;
}
.wt-msg .avatar {
  width: 32px; height: 32px; border-radius: 8px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; color:#fff; font-size: 14px; font-weight: 600;
  background: var(--wt-accent);
}
.wt-msg.assistant .avatar { background: #8b5cf6; }
.wt-msg .avatar-img {
  border-radius: 50%; object-fit: cover;
  border: 1px solid var(--wt-border);
}
.wt-msg.user .avatar { order: 2; }
.wt-msg .bubble-wrap { min-width: 0; flex: 1; }
.wt-msg.assistant .bubble-wrap { max-width: min(680px, 92%); }
.wt-msg.user .bubble-wrap { max-width: min(680px, 92%); margin-left: auto; }
.wt-msg .who { font-size: 12px; color: var(--wt-muted); margin-bottom: 4px; }
.wt-msg.user .who { text-align: right; }
.wt-msg .bubble {
  padding: 14px 18px; border-radius: var(--wt-radius-lg);
  font-size: 14px; line-height: 1.75; word-wrap: break-word;
}
.wt-msg.user .bubble { background: var(--wt-bg-secondary); color: var(--wt-ink); }
.wt-msg.assistant .bubble {
  background: var(--wt-surface); color: var(--wt-ink);
  border: 0.5px solid var(--wt-border); box-shadow: var(--wt-shadow-sm);
}
.wt-msg .bubble p { margin: 0 0 8px; }
.wt-msg .bubble p:last-child { margin-bottom: 0; }
.wt-msg .bubble code { background: rgba(0,0,0,.06); padding: 1px 5px; border-radius: 4px; font-size: 13px; }
.wt-msg .bubble pre { background: #1f2937; color: #e5e7eb; padding: 12px; border-radius: 8px; overflow-x: auto; margin: 8px 0; font-size: 13px; }
.wt-msg .bubble pre code { background: transparent; padding: 0; }

.wt-msg .actions-bar { margin-top: 8px; display: flex; gap: 8px; }
.wt-msg.user .actions-bar { justify-content: flex-end; }
.wt-msg .actions-bar .act {
  width: 28px; height: 28px; border-radius: var(--wt-radius-sm);
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; color: var(--wt-muted); cursor: pointer;
}
.wt-msg .actions-bar .act:hover { background: var(--wt-bg-secondary); color: var(--wt-ink); }
/* 点赞/点踩激活态：蓝色高亮，图标着色 */
.wt-msg .actions-bar .act-feedback.active {
  background: #dbeafe; color: #1d4ed8;
}
.wt-msg .actions-bar .act-feedback.active img { filter: invert(30%) sepia(80%) saturate(2000%) hue-rotate(215deg) brightness(95%); }
.wt-msg .actions-bar .act-feedback[data-rating="down"].active {
  background: #fee2e2; color: #b91c1c;
}
.wt-msg .actions-bar .act-feedback[data-rating="down"].active img { filter: invert(35%) sepia(70%) saturate(2500%) hue-rotate(335deg) brightness(95%); }

/* ── 聊天附件 ─────────────────────────────────── */
/* 消息内附件卡片（图片缩略图 / 文件标签） */
.wt-attachments { margin-top: 8px; display: flex; gap: 8px; flex-wrap: wrap; }
.wt-att {
  display: inline-flex; flex-direction: column; gap: 4px; text-decoration: none;
  border: 1px solid var(--wt-border-light); border-radius: 8px; padding: 6px;
  background: var(--wt-bg); max-width: 180px;
}
.wt-att-img img { width: 140px; height: 100px; object-fit: cover; border-radius: 6px; }
.wt-att .name { font-size: 12px; color: var(--wt-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wt-att .size { font-size: 11px; color: var(--wt-muted); }
.wt-att:hover { border-color: var(--wt-primary, #4f7cff); }
/* 输入框上方的附件预览条 */
.wt-attach-bar {
  display: flex; flex-wrap: wrap; gap: 8px; padding: 8px 12px 0;
  max-height: 120px; overflow: auto;
}
.wt-attach-chip {
  display: inline-flex; align-items: center; gap: 6px; position: relative;
  border: 1px solid var(--wt-border-light); border-radius: 8px;
  padding: 4px 26px 4px 6px; background: var(--wt-bg); font-size: 12px;
}
.wt-attach-chip img { width: 32px; height: 32px; object-fit: cover; border-radius: 4px; }
.wt-attach-chip .ic { font-size: 18px; }
.wt-attach-chip .nm { max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wt-attach-chip .rm {
  position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
  cursor: pointer; width: 16px; height: 16px; line-height: 15px; text-align: center;
  border-radius: 50%; background: var(--wt-bg-secondary); color: var(--wt-muted); font-size: 12px;
}
.wt-attach-chip .rm:hover { background: #fee2e2; color: #b91c1c; }

/* ── M7: 回复正文里的办公文件卡片 ─────────────── */
.wt-filecard {
  display: inline-flex; align-items: center; gap: 8px;
  border: 1px solid var(--wt-border-light); border-radius: 8px;
  padding: 6px 10px; margin: 4px 0; background: var(--wt-bg);
  max-width: 100%; vertical-align: middle;
}
.wt-filecard-icon {
  flex: none; width: 30px; height: 30px; border-radius: 6px; color: #fff;
  font-size: 10px; font-weight: 700; text-transform: uppercase;
  display: inline-flex; align-items: center; justify-content: center;
}
.wt-fc-doc { background: #2563eb; }
.wt-fc-xls { background: #16a34a; }
.wt-fc-ppt { background: #ea580c; }
.wt-fc-file { background: #64748b; }
.wt-filecard-name {
  font-size: 13px; color: var(--wt-ink); text-decoration: none;
  max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.wt-filecard-name:hover { text-decoration: underline; }
.wt-filecard-dl {
  flex: none; font-size: 12px; color: #fff; text-decoration: none;
  background: var(--wt-primary, #4f7cff); border-radius: 6px; padding: 3px 10px;
}
.wt-filecard-dl:hover { opacity: .85; }

/* ── M9: 协同任务执行进度面板 ─────────────────── */
.co-run-log {
  height: 100%; overflow-y: auto; padding: 12px 16px;
  font-size: 13px; line-height: 1.9; background: var(--wt-bg);
}
.co-run-line { border-bottom: 1px dashed var(--wt-border-light, #eee); padding: 2px 0; }
.co-run-line:last-child { border-bottom: none; }
.co-run-line.muted { color: var(--wt-muted); }
.co-run-line.ok { color: #16a34a; }
.co-run-line.err { color: #dc2626; }

/* ── @ 提及 ───────────────────────────────────── */
.wt-mention-bar {
  display: flex; align-items: center; gap: 8px; margin: 8px 12px 0;
  padding: 4px 10px; border-radius: 8px; background: #eff6ff; color: #1e40af;
  font-size: 12px; border: 1px solid #dbeafe;
}
.wt-mention-bar .rm { cursor: pointer; margin-left: auto; font-weight: 600; padding: 0 4px; }
.wt-mention-bar .rm:hover { color: #b91c1c; }
.wt-mention-pop {
  position: absolute; bottom: 100%; left: 8px; z-index: 30;
  background: var(--wt-bg); border: 1px solid var(--wt-border-light);
  border-radius: 8px; box-shadow: 0 4px 16px rgba(0,0,0,.12);
  min-width: 200px; max-height: 240px; overflow: auto; padding: 4px;
}
.wt-mention-pop .item {
  display: flex; align-items: center; gap: 8px; padding: 6px 8px;
  border-radius: 6px; cursor: pointer; font-size: 13px;
}
.wt-mention-pop .item:hover { background: var(--wt-bg-secondary); }
.wt-mention-pop .item img { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; }

/* ── 群聊 ─────────────────────────────────────── */
/* 会话列表里的叠放头像 */
.wt-group-avatars { display: flex; align-items: center; position: relative; width: 36px; height: 36px; }
.wt-group-avatars img {
  width: 24px; height: 24px; border-radius: 50%; object-fit: cover;
  border: 2px solid var(--wt-bg); position: relative; margin-left: -8px;
}
.wt-group-avatars img:first-child { margin-left: 0; }
.wt-group-avatars span { width: 36px; height: 36px; border-radius: 8px; background: var(--wt-bg-secondary); }
/* R35 A5：会话列表群聊头像——30px 槽位内 2×2 网格（微信式），替代
   24px 叠串（总宽 56px 超出槽位、压到标题）。仅会话列表作用域，
   头部小头像串 wt-group-avatars-sm 不受影响 */
.wt-chat-session .wt-group-avatars {
  width: 30px; height: 30px; border-radius: 8px; overflow: hidden;
  display: grid; grid-template-columns: 1fr 1fr; gap: 1px;
  padding: 2px; box-sizing: border-box; background: var(--wt-bg-secondary);
  border: 1px solid var(--wt-border);
}
.wt-chat-session .wt-group-avatars img {
  width: 100%; height: 100%; border-radius: 50%; object-fit: cover;
  margin-left: 0; border: none; position: static; min-width: 0;
}
/* header 里的成员小头像串 */
.wt-group-avatars-sm { display: inline-flex; align-items: center; vertical-align: middle; }
.wt-group-avatars-sm img {
  width: 20px; height: 20px; border-radius: 50%; object-fit: cover;
  border: 2px solid var(--wt-bg); margin-left: -6px;
}
.wt-group-avatars-sm img:first-child { margin-left: 0; }
/* 建群弹窗：成员选择 */
.wt-group-member {
  display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
  border: 1px solid var(--wt-border-light); border-radius: 8px;
  padding: 4px 10px 4px 4px; font-size: 13px; user-select: none;
}
.wt-group-member img { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; }
.wt-group-member .nm { max-width: 110px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wt-group-member.sel { border-color: #4f7cff; background: #eff6ff; }
/* 建群弹窗：模式选项 */
.wt-mode-option {
  display: block; cursor: pointer; padding: 10px 12px;
  border: 1px solid var(--wt-border-light); border-radius: 8px; user-select: none;
}
.wt-mode-option.sel { border-color: #4f7cff; background: #eff6ff; }

/* Citations */
.wt-citations { margin-top: 10px; display: flex; gap: 6px; flex-wrap: wrap; }
.wt-citation {
  font-size: 12px; padding: 5px 9px; border-radius: var(--wt-radius-sm);
  border: 1px solid var(--wt-border); background: var(--wt-bg-hover);
  color: var(--wt-ink-secondary); cursor: pointer;
}
.wt-citation:hover { border-color: var(--wt-accent); }

/* Trace panel */
.wt-trace {
  margin: 8px 0 10px; border: 0.5px solid var(--wt-border); border-radius: var(--wt-radius);
  background: var(--wt-bg-hover); font-size: 12px;
}
.wt-trace .head { padding: 8px 12px; display: flex; align-items: center; gap: 8px; cursor: pointer; color: var(--wt-ink-secondary); }
.wt-trace .head .label { font-weight: 500; }
.wt-trace .body { padding: 4px 12px 10px; color: var(--wt-muted); }
.wt-trace .line { padding: 3px 0; display: flex; gap: 8px; }
.wt-trace .line .ico { width: 16px; flex-shrink:0; }
.wt-trace .line.running .ico { color: #f59e0b; }
.wt-trace .line.done .ico { color: var(--wt-green-text); }

/* Composer */
.wt-chat-composer {
  padding: 6px 24px 20px; flex-shrink: 0; background: var(--wt-bg-chat);
}
/* R24 收尾：composer 上方的提示条（待续/排队/挂接技能）与对话列对齐
   （820px 居中，同 .composer-box），不再左侧顶格 */
/* R36.2：附件条与 @ 提及条同款对齐（用户反馈：附件预览不应左侧顶格） */
#wt-continuation-bar, #wt-queue-bar, #wt-skill-bar,
#wt-attach-bar, #wt-mention-bar {
  max-width: 820px; margin-left: auto; margin-right: auto;
}
.wt-chat-composer .composer-box {
  position: relative; display: flex; flex-direction: column; gap: 10px;
  max-width: 820px; margin: 0 auto;
  border: 0.5px solid var(--wt-accent); border-radius: var(--wt-radius-lg);
  background: var(--wt-surface); padding: 12px;
  box-shadow: var(--wt-shadow-composer);
}
/* R18：输入框左侧当前数字员工头像（绝对定位，不参与 flex 换行） */
.wt-chat-composer .composer-box .composer-ava {
  position: absolute; left: 14px; top: 15px;
  width: 28px; height: 28px; border-radius: 50%; object-fit: cover;
  background: var(--wt-bg-secondary);
}
.wt-chat-composer .composer-box.with-ava textarea { padding-left: 40px; }
.wt-chat-composer .composer-top { display: flex; align-items: center; gap: 8px; }
.wt-chat-composer textarea {
  resize: none; border: 0; background: transparent; padding: 0;
  font-size: 14px; line-height: 1.7; color: var(--wt-ink);
  min-height: 48px; max-height: 200px; font-family: inherit; outline: none;
}
.wt-chat-composer .composer-bottom { display: flex; align-items: center; justify-content: space-between; }
.wt-chat-composer .composer-left { display: flex; align-items: center; gap: 8px; position: relative; }
.wt-chat-composer .composer-right { display: flex; align-items: center; gap: 8px; }
.wt-chat-composer .model-select {
  height: 32px; border-radius: var(--wt-radius-sm); border: 1px solid var(--wt-border);
  background: var(--wt-surface); padding: 0 24px 0 12px; font-size: 12px; color: var(--wt-muted);
  appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23858b9c' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 8px center;
}
.wt-chat-composer .send-btn {
  width: 36px; height: 36px; border-radius: var(--wt-radius);
  background: var(--wt-accent); color: #fff; border: 0; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.wt-chat-composer .send-btn:hover { background: var(--wt-accent-hover); }
.wt-chat-composer .send-btn:disabled { opacity: .4; cursor: not-allowed; }
.wt-chat-composer .attach-btn {
  width: 32px; height: 32px; border-radius: var(--wt-radius-sm);
  border: 1px solid var(--wt-border); background: var(--wt-surface); color: var(--wt-ink-secondary);
  display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.wt-chat-composer .attach-btn:hover { background: var(--wt-bg-secondary); }

/* ＋ 弹出式附件菜单（参考 legalhigh InputBar，桌面端为按钮上方弹层） */
.wt-plus-menu {
  position: absolute; bottom: calc(100% + 8px); left: 0; z-index: 30;
  min-width: 148px; padding: 6px;
  background: var(--wt-surface); border: 1px solid var(--wt-border);
  border-radius: var(--wt-radius); box-shadow: 0 8px 24px rgba(24,24,26,.14);
}
.wt-plus-menu .item {
  display: flex; align-items: center; gap: 8px; padding: 8px 12px;
  border-radius: var(--wt-radius-sm); font-size: 13px; color: var(--wt-ink);
  cursor: pointer; white-space: nowrap;
}
.wt-plus-menu .item:hover { background: var(--wt-bg-secondary); }
.wt-plus-menu .item .ic { font-size: 14px; line-height: 1; }

/* 录音弹窗（参考 legalhigh RecordModal） */
.wt-record-modal {
  position: fixed; inset: 0; z-index: 1200;
  background: rgba(0,0,0,.55);
  display: flex; align-items: center; justify-content: center; padding: 32px;
}
.wt-record-modal .panel {
  width: 100%; max-width: 400px; text-align: center;
  background: var(--wt-surface); border-radius: 20px; padding: 32px 28px 24px;
  animation: wt-rec-in .25s ease;
}
@keyframes wt-rec-in { from { opacity: 0; transform: scale(.92); } to { opacity: 1; transform: scale(1); } }
.wt-record-modal .mic-icon {
  width: 84px; height: 84px; border-radius: 50%; margin: 0 auto 20px;
  background: var(--wt-accent); position: relative;
  display: flex; align-items: center; justify-content: center;
}
.wt-record-modal .mic-icon.recording::before {
  content: ''; position: absolute; inset: 0; border-radius: 50%;
  background: var(--wt-red, #dc2626);
  animation: wt-rec-pulse 1s ease-in-out infinite;
}
@keyframes wt-rec-pulse { 0% { transform: scale(1); opacity: .6; } 100% { transform: scale(1.5); opacity: 0; } }
.wt-record-modal .mic-icon.recording { background: var(--wt-red, #dc2626); }
.wt-record-modal .timer {
  font-size: 38px; font-weight: 300; color: var(--wt-ink);
  font-variant-numeric: tabular-nums; margin-bottom: 4px;
}
.wt-record-modal .timer.recording, .wt-record-modal .mic-icon.recording + .timer { color: var(--wt-red, #dc2626); }
.wt-record-modal .status { font-size: 13px; color: var(--wt-muted); margin-bottom: 14px; }
.wt-record-modal .transcript {
  min-height: 44px; max-height: 120px; overflow: auto; margin-bottom: 20px;
  padding: 10px 12px; border-radius: var(--wt-radius-sm);
  background: var(--wt-bg-secondary); font-size: 13px; line-height: 1.7;
  color: var(--wt-ink); text-align: left; word-break: break-all;
}
.wt-record-modal .transcript:empty::before {
  content: '（语音内容将实时显示在这里）'; color: var(--wt-muted);
}
.wt-record-modal .actions { display: flex; justify-content: center; gap: 14px; }
.wt-record-modal .rec-btn {
  padding: 9px 26px; border-radius: 22px; border: 0; font-size: 13px;
  cursor: pointer; transition: all .2s;
}
.wt-record-modal .rec-btn:active { opacity: .85; }
.wt-record-modal .rec-btn.cancel {
  background: rgba(220,38,38,.08); color: var(--wt-red, #dc2626);
}
.wt-record-modal .rec-btn.send {
  background: var(--wt-accent); color: #fff; box-shadow: 0 4px 12px rgba(220,38,38,.18);
}
.wt-record-modal .rec-btn.send:hover { background: var(--wt-accent-hover, var(--wt-accent)); }

.wt-typing-dots span { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--wt-muted); margin: 0 1px; animation: wt-blink 1.4s infinite both; }
.wt-typing-dots span:nth-child(2) { animation-delay: .2s; }
.wt-typing-dots span:nth-child(3) { animation-delay: .4s; }
@keyframes wt-blink { 0%,80%,100% { opacity: .2; } 40% { opacity: 1; } }

/* Missing model banner */
.wt-model-missing {
  display: flex; align-items: center; gap: 8px;
  border-radius: var(--wt-radius-md); border: 1px solid #f3d28b;
  background: var(--wt-yellow-bg); color: var(--wt-yellow-text);
  padding: 10px 14px; font-size: 13px; margin-bottom: 8px;
}

/* ============================================================
   Employee / agent cards (wiseteam3 gallery)
   ============================================================ */
.wt-employee-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 24px;
}
.wt-employee-card {
  position: relative; background: var(--wt-surface); border: 1px solid #f6f6f6;
  border-radius: var(--wt-radius-xl); padding: 12px 10px;
  transition: box-shadow var(--wt-transition); cursor: pointer;
}
.wt-employee-card:hover { box-shadow: var(--wt-shadow-lg); }
.wt-employee-card .card-banner {
  height: 68px; background: var(--wt-bg-secondary); border-radius: 18px;
  margin-top: 34px; position: relative;
}
.wt-employee-card .card-avatar {
  position: absolute; left: 50%; bottom: 0; transform: translate(-50%, 50%);
  width: 80px; height: 94px; display: flex; align-items: flex-end; justify-content: center;
}
.wt-employee-card .card-avatar img { max-width: 100%; max-height: 100%; object-fit: contain; }
.wt-employee-card .card-more {
  position: absolute; top: 12px; right: 12px; width: 28px; height: 28px;
  border-radius: var(--wt-radius); border: 0; background: transparent; color: var(--wt-muted);
  cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.wt-employee-card .card-more:hover { background: var(--wt-bg-secondary); }
.wt-employee-card .card-body { text-align: center; padding-top: 54px; }
.wt-employee-card .name { font-size: 12px; font-weight: 700; color: var(--wt-ink); }
.wt-employee-card .role { font-size: 10px; color: var(--wt-muted); margin-top: 2px; }
.wt-employee-card .online {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 10px; color: var(--wt-green-text); margin-top: 6px;
}
.wt-employee-card .card-desc {
  font-size: 12px; color: var(--wt-muted); line-height: 1.5;
  margin: 10px 8px 0; min-height: 36px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.wt-employee-card .card-stats {
  display: flex; margin-top: 14px; border: 0.5px solid var(--wt-border); border-radius: var(--wt-radius);
}
.wt-employee-card .card-stats .cell {
  flex: 1; text-align: center; padding: 8px 0; border-right: 0.5px solid var(--wt-border);
}
.wt-employee-card .card-stats .cell:last-child { border-right: 0; }
.wt-employee-card .card-stats .cell .v { font-size: 12px; font-weight: 600; color: var(--wt-ink); }
.wt-employee-card .card-stats .cell .k { font-size: 10px; color: var(--wt-muted); margin-top: 2px; }

/* ============================================================
   Dashboard hero / tabs
   ============================================================ */
.wt-dashboard-hero {
  display: flex; align-items: flex-end; gap: 20px;
  margin: -8px -48px 24px; padding: 24px 48px;
  background: var(--wt-surface); border-bottom: 1px solid var(--wt-border-light);
}
@media (max-width: 900px) {
  .wt-dashboard-hero { margin: -12px -16px 20px; padding: 16px; }
}
.wt-dashboard-hero .avatar-img {
  width: 136px; height: 160px; flex-shrink: 0; display: flex; align-items: flex-end; justify-content: center;
}
.wt-dashboard-hero .avatar-img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.wt-dashboard-hero .info { flex: 1; min-width: 0; padding-bottom: 4px; }
.wt-dashboard-hero .name { font-size: 22px; font-weight: 600; color: var(--wt-ink); }
.wt-dashboard-hero .meta { display: flex; align-items: center; gap: 10px; margin-top: 6px; flex-wrap: wrap; }
.wt-dashboard-hero .summary { font-size: 14px; line-height: 1.7; color: var(--wt-muted-light); max-width: 720px; margin-top: 10px; }
.wt-dashboard-hero .hero-actions { display: flex; gap: 10px; margin-top: 14px; }
.wt-hero-action-btn {
  display: inline-flex; align-items: center; gap: 6px;
  height: 32px; padding: 0 14px; border-radius: var(--wt-radius-lg);
  border: 0.5px solid var(--wt-border); background: var(--wt-surface);
  color: var(--wt-muted); font-size: 12px;
  box-shadow: 0 6px 6px rgba(0,0,0,.05); cursor: pointer;
}
.wt-hero-action-btn:hover { color: var(--wt-ink); border-color: #cbd3e6; }

/* 员工档案切换条（我 ↔ 数字员工） */
.dash-view-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 10px 4px 4px; border-radius: 999px;
  border: 1px solid var(--wt-border-light); background: var(--wt-surface);
  transition: border-color .15s, background .15s;
}
.dash-view-chip:hover { border-color: #cbd3e6; }
.dash-view-chip.active {
  border-color: var(--wt-accent); background: rgba(37,99,235,.06);
  box-shadow: 0 0 0 1px var(--wt-accent) inset;
}
.dash-view-chip .wt-avatar { width: 28px; height: 28px; font-size: 12px; flex: none; }

.wt-tabs-underline { display: flex; gap: 24px; border-bottom: 1px solid var(--wt-border-light); margin-bottom: 20px; }
.wt-tabs-underline .tab {
  padding: 8px 4px; font-size: 14px; color: #8b94aa; cursor: pointer;
  border-bottom: 2px solid transparent; margin-bottom: -1px;
}
.wt-tabs-underline .tab:hover { color: var(--wt-ink); }
.wt-tabs-underline .tab.active { color: var(--wt-ink); border-bottom-color: var(--wt-accent); font-weight: 500; }

/* ============================================================
   Kanban
   ============================================================ */
.wt-kanban { display: flex; gap: 14px; overflow-x: auto; padding-bottom: 8px; min-height: 420px; }
.wt-kanban-col { flex: 0 0 268px; border: 0.5px solid var(--wt-border); border-radius: var(--wt-radius-lg); display: flex; flex-direction: column; background: var(--wt-bg); }
.wt-kanban-col .col-head { padding: 11px 14px; display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: 13px; color: var(--wt-ink-secondary); }
.wt-kanban-col .col-body { flex: 1; padding: 4px 8px 10px; overflow-y: auto; min-height: 60px; }
.wt-kanban-col.drag-over { outline: 2px dashed var(--wt-accent); outline-offset: -2px; }
.wt-kanban-card {
  background: var(--wt-surface); border-radius: var(--wt-radius); padding: 11px 13px; margin-bottom: 8px;
  box-shadow: var(--wt-shadow-sm); cursor: grab; border: 1px solid var(--wt-border-light);
}
.wt-kanban-card:hover { box-shadow: var(--wt-shadow); }
.wt-kanban-card.dragging { opacity: .4; }
.wt-kanban-card .t { font-size: 13px; font-weight: 500; color: var(--wt-ink); margin-bottom: 4px; }
.wt-kanban-card .d { font-size: 12px; color: var(--wt-muted); }

/* ============================================================
   Platform / plaza cards
   ============================================================ */
.wt-plaza-col {
  flex: 1; min-width: 180px; display: flex; flex-direction: column;
  border: 0.5px solid var(--wt-border); border-radius: var(--wt-radius-lg); padding: 14px 12px;
  background: var(--wt-surface);
}
.wt-plaza-col .col-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.wt-plaza-col .col-title { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; color: var(--wt-ink); }
.wt-plaza-col .col-count { font-size: 12px; color: var(--wt-muted); }
.wt-plaza-col .filters { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.wt-plaza-filter {
  border-radius: 20px; border: 0.5px solid var(--wt-border); padding: 2px 8px;
  font-size: 10px; color: var(--wt-muted); cursor: pointer;
}
.wt-plaza-filter:hover, .wt-plaza-filter.active { color: var(--wt-ink); border-color: var(--wt-accent); }
.wt-plaza-divider { height: 1px; background: var(--wt-border); margin: 8px 0; }

.wt-resource-card {
  height: 112px; border: 0.5px solid #f6f6f6; border-radius: var(--wt-radius-lg);
  background: var(--wt-surface); padding: 10px; margin-bottom: 8px; cursor: pointer;
}
.wt-resource-card:hover { box-shadow: var(--wt-shadow); }
.wt-resource-card .top { display: flex; gap: 8px; margin-bottom: 6px; }
.wt-resource-card .icon-tile { width: 32px; height: 32px; border-radius: var(--wt-radius); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.wt-resource-card .icon-tile img { width: 18px; height: 18px; }
.wt-resource-card .title { font-size: 12px; font-weight: 500; color: var(--wt-ink); }
.wt-resource-card .meta { font-size: 10px; margin-top: 2px; }
.wt-resource-card .desc { font-size: 11px; color: var(--wt-muted); line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.wt-resource-card .pills { display: flex; gap: 4px; margin-top: 6px; }

/* ============================================================
   Modals / layer overrides
   ============================================================ */
.wt-modal-body { padding: 20px 24px; }
.wt-modal-footer {
  display: flex; align-items: center; justify-content: flex-end; gap: 8px;
  background: var(--wt-surface); padding: 12px 24px; border-top: 1px solid var(--wt-border-light);
}

/* LayUI layer skinning */
.layui-layer { border-radius: var(--wt-radius-lg) !important; box-shadow: var(--wt-shadow-lg) !important; }
.layui-layer-title { border-radius: var(--wt-radius-lg) var(--wt-radius-lg) 0 0 !important; border-bottom: 1px solid var(--wt-border-light) !important; font-size: 15px !important; font-weight: 600 !important; color: var(--wt-ink) !important; background: var(--wt-surface) !important; }
.layui-layer-setwin .layui-layer-close { color: var(--wt-muted) !important; }
.layui-layer-setwin .layui-layer-close:hover { color: var(--wt-ink) !important; }

/* Toast (centered pill)
   20261002-一期：z-index 提到 layui 层之上（layui-layer 默认 ~19891014，
   原 99999 被弹窗遮罩盖住——弹窗内 toast 看不清的实 bug 根治） */
.wt-toast {
  position: fixed; top: 24px; left: 50%; transform: translateX(-50%); z-index: 99999999;
  display: flex; align-items: center; gap: 8px;
  border-radius: var(--wt-radius-lg); padding: 10px 24px;
  font-size: 14px; box-shadow: var(--wt-shadow-toast);
  animation: wt-toast-in .25s ease;
}
.wt-toast.success { border: 1px solid #96d9b0; background: var(--wt-green-bg); color: #018434; }
.wt-toast.error { border: 1px solid #f38989; background: var(--wt-red-bg); color: var(--wt-red); }
.wt-toast.info { border: 1px solid var(--wt-border); background: var(--wt-surface); color: var(--wt-ink-secondary); }
@keyframes wt-toast-in { from { opacity: 0; transform: translate(-50%, -8px); } to { opacity: 1; transform: translate(-50%, 0); } }

/* ============================================================
   Misc helpers
   ============================================================ */
.wt-empty { text-align: center; padding: 56px 20px; color: var(--wt-muted); }
.wt-empty .emoji { font-size: 42px; margin-bottom: 8px; }
.wt-flex { display: flex; align-items: center; gap: 10px; }
.wt-flex.wrap { flex-wrap: wrap; }
.wt-flex.between { justify-content: space-between; }
.wt-flex.col { flex-direction: column; align-items: stretch; gap: 0; }
.wt-mt-8 { margin-top: 8px; } .wt-mt-12 { margin-top: 12px; } .wt-mt-16 { margin-top: 16px; } .wt-mt-24 { margin-top: 24px; }
.wt-mb-8 { margin-bottom: 8px; } .wt-mb-12 { margin-bottom: 12px; } .wt-mb-16 { margin-bottom: 16px; } .wt-mb-24 { margin-bottom: 24px; }
.wt-muted { color: var(--wt-muted); } .wt-secondary { color: var(--wt-ink-secondary); }
.wt-mono { font-family: ui-monospace, "Cascadia Code", "Source Code Pro", monospace; }
.wt-ellipsis { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.wt-progress { height: 8px; background: var(--wt-bg-secondary); border-radius: 4px; overflow: hidden; }
.wt-progress .bar { height: 100%; background: var(--wt-accent); transition: width .3s; }
.wt-progress .bar.success { background: var(--wt-green); }
.wt-progress .bar.warning { background: #f59e0b; }
.wt-progress .bar.danger { background: var(--wt-red); }

.wt-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.wt-grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.wt-grid-4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }
.wt-link { color: var(--wt-link); cursor: pointer; }
.wt-link:hover { text-decoration: underline; }
/* C-5（N4-09）：操作列标准化 —— 真实 button 元素 + 链接外观，
   可被 JS/自动化稳定定位（button[data-act=...]），且键盘可访问 */
.wt-link-btn { appearance: none; background: none; border: none; padding: 0;
  color: var(--wt-link); cursor: pointer; font-size: inherit; font-family: inherit; line-height: inherit; }
.wt-link-btn:hover { text-decoration: underline; }
.wt-link-btn.danger { color: var(--wt-red); }

.wt-skeleton { background: linear-gradient(90deg,#eee 25%,#f5f5f5 50%,#eee 75%); background-size: 200% 100%; animation: wt-shimmer 1.4s infinite; border-radius: 6px; }
@keyframes wt-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

.wt-avatar { width: 36px; height: 36px; border-radius: 9px; display:flex; align-items:center; justify-content:center; color:#fff; font-weight:600; flex-shrink:0; }
.wt-avatar.sm { width: 28px; height: 28px; font-size: 12px; border-radius: 7px; }
.wt-avatar.lg { width: 48px; height: 48px; font-size: 18px; }

/* markdown */
.wt-md h1,.wt-md h2,.wt-md h3,.wt-md h4,.wt-md h5,.wt-md h6 { margin: 12px 0 6px; }
.wt-md h4 { font-size: 15px; } .wt-md h5 { font-size: 14px; } .wt-md h6 { font-size: 13px; }
.wt-md ul,.wt-md ol { padding-left: 22px; margin: 6px 0; }
.wt-md li { margin: 2px 0; }
.wt-md blockquote { border-left: 3px solid var(--wt-border); margin: 6px 0; padding: 2px 12px; color: var(--wt-muted); }
.wt-md del { color: var(--wt-muted); }
.wt-md hr { border: none; border-top: 1px solid var(--wt-border); margin: 10px 0; }
.wt-md table { width: 100%; border-collapse: collapse; font-size: 13px; margin: 8px 0; }
.wt-md th, .wt-md td { border: 1px solid var(--wt-border); padding: 6px 10px; }
.wt-md th { background: var(--wt-border-light); }

/* ============================================================
   新手向导 Onboarding wizard (WT.Onboarding) — wt-ob-*
   ============================================================ */

/* sidebar footer now stacks help + collapse buttons */
.wt-sidebar-footer { display: flex; flex-direction: column; gap: 6px; }

/* full-screen overlay — above layui layers (19891014) and toasts (99999) */
.wt-ob-overlay {
  position: fixed; inset: 0; z-index: 19999999;
  background: rgba(24, 24, 26, 0.55);
  display: flex; align-items: center; justify-content: center;
  padding: 24px; animation: wt-ob-fade .2s ease;
}
@keyframes wt-ob-fade { from { opacity: 0; } }

.wt-ob-card {
  width: 100%; max-width: 560px; max-height: calc(100vh - 48px);
  background: var(--wt-surface); border-radius: var(--wt-radius-xl);
  box-shadow: var(--wt-shadow-lg); display: flex; flex-direction: column;
  overflow: hidden; animation: wt-ob-pop .22s ease;
}
@keyframes wt-ob-pop { from { opacity: 0; transform: translateY(12px) scale(.98); } }

/* step progress dots */
.wt-ob-dots { display: flex; gap: 8px; justify-content: center; padding: 22px 0 0; }
.wt-ob-dot {
  width: 8px; height: 8px; border-radius: 999px; background: var(--wt-border);
  transition: all .18s ease;
}
.wt-ob-dot.done { background: var(--wt-muted-light); }
.wt-ob-dot.active { background: var(--wt-ink); width: 22px; }

.wt-ob-body { padding: 20px 32px 8px; overflow-y: auto; }

/* footer: skip link + prev/next buttons */
.wt-ob-foot { display: flex; align-items: center; gap: 10px; padding: 16px 32px 22px; }
.wt-ob-foot .gap { flex: 1; }
.wt-ob-skip { color: var(--wt-muted); font-size: 13px; cursor: pointer; }
.wt-ob-skip:hover { color: var(--wt-ink); text-decoration: underline; }
.wt-ob-btn {
  height: 34px; padding: 0 18px; border-radius: var(--wt-radius);
  font-size: 13px; cursor: pointer; border: 1px transparent; font-family: inherit;
}
.wt-ob-btn.primary { background: var(--wt-accent); color: #fff; }
.wt-ob-btn.primary:hover { background: var(--wt-accent-hover); }
.wt-ob-btn.ghost { background: var(--wt-surface); border-color: var(--wt-border); color: var(--wt-ink-secondary); }
.wt-ob-btn.ghost:hover { background: var(--wt-bg-secondary); }

/* step 0 — welcome */
.wt-ob-welcome { text-align: center; padding: 8px 0 12px; }
.wt-ob-logo {
  width: 64px; height: 64px; margin: 4px auto 12px; border-radius: 18px;
  background: var(--wt-bg-secondary); display: flex; align-items: center; justify-content: center;
}
.wt-ob-logo img { width: 40px; height: 40px; object-fit: contain; }
.wt-ob-hello { font-size: 20px; font-weight: 600; color: var(--wt-ink); }
.wt-ob-tagline { margin-top: 6px; color: var(--wt-muted); }
.wt-ob-badges { margin-top: 14px; }
.wt-ob-badge {
  display: inline-block; padding: 3px 12px; border-radius: 999px;
  font-size: 12px; background: var(--wt-bg-secondary); color: var(--wt-muted-light);
}
.wt-ob-badge.admin { background: var(--wt-blue-bg); color: var(--wt-link); }
.wt-ob-note { margin-top: 14px; font-size: 12px; color: var(--wt-muted); }

/* step 1 — checklist rows */
.wt-ob-subtitle { font-size: 15px; font-weight: 600; margin-bottom: 4px; }
.wt-ob-sub { font-size: 12px; color: var(--wt-muted); margin-bottom: 12px; }
.wt-ob-check {
  display: flex; align-items: center; gap: 12px; padding: 12px 14px;
  border: 1px solid var(--wt-border-light); border-radius: var(--wt-radius);
  margin-bottom: 8px; background: var(--wt-surface);
}
.wt-ob-check .mark {
  width: 24px; height: 24px; border-radius: 999px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 700;
}
.wt-ob-check .mark.ok { background: var(--wt-green-bg); color: var(--wt-green-text); }
.wt-ob-check .mark.no { background: var(--wt-bg-secondary); color: var(--wt-muted-light); }
.wt-ob-check .mark.wait { background: var(--wt-bg-secondary); color: var(--wt-muted); animation: wt-ob-blink 1s infinite; }
@keyframes wt-ob-blink { 50% { opacity: .35; } }
.wt-ob-check .info { flex: 1; min-width: 0; }
.wt-ob-check .info .t { font-weight: 600; font-size: 13px; }
.wt-ob-check .info .t .s { font-weight: 400; font-size: 12px; margin-left: 6px; }
.wt-ob-check.st-ok .info .t .s { color: var(--wt-green-text); }
.wt-ob-check.st-pending .info .t .s { color: var(--wt-muted); }
.wt-ob-check .info .d { font-size: 12px; color: var(--wt-muted); margin-top: 2px; }
.wt-ob-mini {
  flex-shrink: 0; height: 28px; padding: 0 12px; border-radius: var(--wt-radius-xs);
  border: 1px solid var(--wt-border); background: var(--wt-surface);
  color: var(--wt-link); font-size: 12px; cursor: pointer; font-family: inherit;
}
.wt-ob-mini:hover { background: var(--wt-blue-bg); border-color: var(--wt-link); }

/* step 2 — feature cards */
.wt-ob-feature {
  display: flex; gap: 14px; align-items: flex-start; padding: 12px 14px;
  border: 1px solid var(--wt-border-light); border-radius: var(--wt-radius);
  margin-bottom: 8px;
}
.wt-ob-feature .emoji { font-size: 22px; line-height: 1.2; flex-shrink: 0; }
.wt-ob-feature .t { font-weight: 600; }
.wt-ob-feature .d { font-size: 12px; color: var(--wt-muted); margin-top: 2px; }

/* step 3 — done */
.wt-ob-done { text-align: center; padding: 10px 0 16px; }
.wt-ob-done .big { font-size: 44px; }
.wt-ob-done .t { font-size: 18px; font-weight: 600; margin-top: 6px; }
.wt-ob-done .d { color: var(--wt-muted); margin-top: 8px; font-size: 13px; }

/* floating pill shown while the wizard is minimized (“去完成”跳转期间) */
.wt-ob-pill {
  position: fixed; right: 20px; bottom: 20px; z-index: 19999998;
  height: 38px; padding: 0 16px; border-radius: 999px; border: 0;
  background: var(--wt-accent); color: #fff; font-size: 13px; cursor: pointer;
  font-family: inherit; box-shadow: var(--wt-shadow-toast);
}
.wt-ob-pill:hover { background: var(--wt-accent-hover); }

/* ── M5: mobile usability (chat-first) ──────────────────────────────
   The admin console stays desktop-first, but the CHAT workspace (the page
   employees actually use on a phone) must be usable at 375px.
   S2-4: fixed selectors to match the ACTUAL class names in chat.js
   (.wt-chat, .wt-chat-sidebar, #wt-composer) — the old selectors were
   dead code that matched nothing. */
@media (max-width: 768px) {
  /* Two-pane chat collapses: agent/session sidebar becomes scrollable top */
  .wt-chat { flex-direction: column; }
  .wt-chat-sidebar {
    width: auto !important; min-width: 0 !important; max-height: 180px;
    overflow-y: auto; border-right: 0 !important; border-bottom: 1px solid var(--wt-border-light);
  }
  .wt-chat-main { min-width: 0; }
  .wt-msg { gap: 8px; }
  .wt-msg .bubble-wrap { max-width: calc(100% - 44px); }
  #wt-composer { min-height: 44px; }

  /* Compact stat grids & toolbars */
  .wt-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wt-toolbar { gap: 6px; }

  /* Kanban already scrolls horizontally; keep forms readable */
  .wt-card-header, .wt-card-pad { padding: 10px 12px; }
}

/* 375px narrow phone breakpoint */
@media (max-width: 375px) {
  .wt-chat-sidebar { max-height: 120px; }
  .wt-msg .bubble-wrap { max-width: calc(100% - 36px); }
  .wt-stat-grid { grid-template-columns: 1fr; }
}

/* Inline error boxes (skills/tools/general-skills test-run output) */
.wt-err {
  color: var(--wt-red); background: var(--wt-red-bg);
  border: 1px solid #f3b6b6; border-radius: var(--wt-radius);
  padding: 8px 12px; font-size: 12px; margin-top: 8px;
}
/* Ghost danger button (departments delete) */
.wt-btn-danger-ghost {
  background: transparent; color: var(--wt-red);
  border: 1px solid #f3b6b6;
}
.wt-btn-danger-ghost:hover { background: var(--wt-red-bg); }

/* MCP 新建/编辑弹窗：示例模板说明行 + 测试连接结果行 */
.wt-mcp-tpl-desc { font-size: 12px; color: var(--wt-muted); margin-top: 6px; line-height: 1.5; }
.wt-mcp-test-row { display: flex; align-items: flex-start; gap: 10px; margin: -8px 0 16px; }
.wt-mcp-test-row .wt-btn { flex-shrink: 0; }
#mcp-test-out { font-size: 12px; line-height: 28px; word-break: break-all; min-height: 28px; }

/* ── P1.1: model setup wizard ───────────────────────────────────── */
.su-step { padding: 18px 0; border-top: 1px solid var(--wt-border-light); }
.su-step:first-child { border-top: 0; padding-top: 4px; }
.su-step-title { font-weight: 600; font-size: 14px; margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
.su-no {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--wt-accent); color: #fff; font-size: 12px;
}
.su-providers { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.su-provider {
  border: 1px solid var(--wt-border-light); border-radius: var(--wt-radius-lg);
  padding: 12px 14px; cursor: pointer; transition: border-color .15s, box-shadow .15s;
  background: var(--wt-surface);
}
.su-provider:hover { border-color: var(--wt-accent); }
.su-provider.active { border-color: var(--wt-accent); box-shadow: 0 0 0 2px rgba(26,113,255,.18); }
.su-p-name { font-weight: 600; font-size: 13px; margin-bottom: 4px; }
.su-register {
  margin-top: 12px; padding: 12px 14px; border-radius: var(--wt-radius-lg);
  background: var(--wt-bg-alt, #f7f8fa); border: 1px dashed var(--wt-border-light);
}
.su-price { font-size: 14px; line-height: 1.7; }
.su-price b { color: var(--wt-accent); font-size: 16px; }

/* ── P1.2: mobile-entry QR modal / setup reminder chip ─────────── */
.wt-reminder-bar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 19891014;
  text-align: center; font-size: 13px; padding: 6px 12px;
  background: #fff7e6; color: #8a5a00; border-bottom: 1px solid #f5d3a8;
}
.wt-reminder-bar a { color: #1a71ff; text-decoration: underline; margin-left: 6px; }
.wt-reminder-bar .dismiss { float: right; cursor: pointer; padding: 0 6px; }

/* P1.2: mobile add-to-homescreen hint — desktop hidden, phones show */
.wt-mobile-hint { display: none; }
@media (max-width: 768px) {
  .wt-mobile-hint {
    display: block; margin-top: 12px; padding: 8px 10px;
    background: var(--wt-blue-bg, #e8f0ff); color: var(--wt-blue, #1d5fbf);
    border-radius: 8px; font-size: 12px; line-height: 1.6;
  }
  .wt-login-card { padding: 18px !important; }
  .wt-login-left { display: none; } /* marketing pane off on phones */
  .wt-login-wrap { min-height: 100vh; }
}

/* ── P2-b: boss daily brief (mobile-first) ───────────────────────── */
.bb-wrap { max-width: 560px; margin: 0 auto; }
.bb-date { text-align: center; font-weight: 600; color: var(--wt-muted); margin-bottom: 12px; }
.bb-card {
  background: var(--wt-surface); border: 1px solid var(--wt-border-light);
  border-radius: var(--wt-radius-lg); padding: 18px 20px; margin-bottom: 12px;
}
.bb-label { font-size: 13px; color: var(--wt-muted); }
.bb-value { font-size: 30px; font-weight: 700; margin: 4px 0 2px; letter-spacing: -.5px; }
.bb-sub { font-size: 13px; color: var(--wt-muted); }
.bb-foot { text-align: center; font-size: 12px; color: var(--wt-muted); padding: 8px 0 24px; }
@media (max-width: 768px) {
  .bb-value { font-size: 26px; }
  .wt-content { padding: 12px !important; }
}


/* ════════════════════════════════════════════════════════════
   诸葛军师 AI 智慧向导（guide.js / guide-assistant.js）
   ════════════════════════════════════════════════════════════ */
.gt-wrap{display:flex;flex-direction:column;height:calc(100vh - 56px);max-width:860px;margin:0 auto;background:var(--bg-card,#fff)}
/* R65-A7：建队八幕进度条（断点续课——离开再回来一眼看到走到哪幕） */
.gt-acts{display:flex;gap:4px;padding:10px 20px;border-bottom:1px solid var(--border,#e8e8e8);overflow-x:auto;scrollbar-width:none}
.gt-act{flex:1;min-width:64px;display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:8px;font-size:11.5px;color:var(--text-3,#999);white-space:nowrap;cursor:default;position:relative}
.gt-act .n{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--border,#ddd);display:flex;align-items:center;justify-content:center;font-size:10.5px;flex-shrink:0}
.gt-act.done{color:var(--text-2,#666)}
.gt-act.done .n{background:#22c55e;border-color:#22c55e;color:#fff}
.gt-act.cur{color:var(--primary,#1a71ff);background:rgba(26,113,255,.07)}
.gt-act.cur .n{border-color:var(--primary,#1a71ff);color:var(--primary,#1a71ff);font-weight:700}
.gt-act:not(:last-child)::after{content:"";flex:1;height:1px;background:var(--border,#eee);margin:0 4px}
.gt-act.done:not(:last-child)::after{background:#22c55e}
.gt-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border,#e8e8e8)}
.gt-title{display:flex;align-items:center;gap:12px}
.gt-logo{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#1a71ff,#7c3aed);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700}
.gt-title b{font-size:16px}
.gt-sub{display:block;font-size:12px;color:var(--text-3,#999);margin-top:2px}
/* 20260929（老板反馈）：待命状态=状态徽标（圆点+文案）；重新开始=layui 红色警告按钮 */
.gt-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2,#666);cursor:pointer}
.gt-status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}
.gt-header .layui-btn{border-radius:6px}
/* 20260929（老板反馈③）：数字员工的 🧭 工作台直达徽标（聊天列表+档案卡） */
.wt-wb-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;
  margin-left:4px;border-radius:5px;background:var(--wt-accent-soft,#eef2ff);font-size:11px;
  cursor:pointer;text-decoration:none;vertical-align:1px;flex:none}
.wt-wb-badge:hover{background:var(--wt-accent,#4f46e5);filter:brightness(1.06)}
.gt-msgs{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:14px}
.gt-msg{display:flex;gap:10px;max-width:86%}
.gt-msg-user{align-self:flex-end}
.gt-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#1e3a8a,#e8590c);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.gt-avatar img{width:28px;height:28px;border-radius:50%;object-fit:cover}
.gt-avatar-ghost{background:var(--bg-body,#f5f6f8);color:var(--text-2,#666)}
.gt-bubble{padding:10px 14px;border-radius:12px;line-height:1.7;font-size:14px;word-break:break-word}
.gt-msg-ai .gt-bubble{background:var(--bg-body,#f5f6f8);border-top-left-radius:4px}
.gt-msg-user .gt-bubble{background:var(--primary,#1a71ff);color:#fff;border-top-right-radius:4px}
.gt-md p{margin:.4em 0}
.gt-md ul,.gt-md ol{padding-left:1.3em;margin:.4em 0}
.gt-md code{background:rgba(0,0,0,.06);padding:1px 5px;border-radius:4px;font-size:.92em}
.gt-md table{border-collapse:collapse;margin:.5em 0}
.gt-md th,.gt-md td{border:1px solid var(--border,#e8e8e8);padding:4px 10px;font-size:13px}
.gt-tool{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:10px;background:rgba(26,113,255,.07);border:1px solid rgba(26,113,255,.25);color:var(--primary,#1a71ff);font-size:13px;font-weight:500}
.gt-tool-err{background:rgba(245,63,63,.07);border-color:rgba(245,63,63,.3);color:#e5484d}
.gt-tool-ico{font-weight:700}
.gt-tool-dur{font-size:11px;opacity:.55;font-weight:400}
/* R24 收尾：诸葛军师工具卡片折叠分组（默认收起，头部=实时进度条） */
.gt-toolgrp{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.gt-toolgrp-head{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:10px;background:rgba(26,113,255,.07);border:1px solid rgba(26,113,255,.25);color:var(--primary,#1a71ff);font-size:13px;font-weight:500;cursor:pointer;user-select:none;max-width:100%}
.gt-toolgrp-head:hover{filter:brightness(.96)}
.gt-toolgrp-chev{font-size:11px;opacity:.6}
.gt-toolgrp-body{display:flex;flex-direction:column;gap:6px;margin-top:6px;padding-left:10px;border-left:2px solid rgba(26,113,255,.15)}
.gt-toolgrp-err .gt-toolgrp-head{background:rgba(245,63,63,.07);border-color:rgba(245,63,63,.3);color:#e5484d}
.gt-toolgrp-errbadge{font-size:11px;padding:0 6px;border-radius:8px;background:rgba(245,63,63,.12);font-weight:600}
/* R24 收尾：知识库文档悬浮预览卡片（懒加载内容摘要） */
#kb-doc-tip{position:fixed;z-index:99999;max-width:380px;background:var(--wt-surface,#fff);border:1px solid var(--wt-border-light,#e8e8e8);border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,.14);padding:12px 14px;font-size:12.5px;pointer-events:auto;display:none}
#kb-doc-tip .t{font-weight:600;font-size:13px;margin-bottom:4px;display:flex;align-items:center;gap:6px;word-break:break-all}
#kb-doc-tip .m{color:var(--wt-muted,#999);font-size:11.5px;margin-bottom:8px}
#kb-doc-tip .p{color:var(--wt-text,#555);line-height:1.65;white-space:pre-wrap;word-break:break-word;max-height:170px;overflow:hidden}
.gt-navtip{align-self:center;padding:8px 18px;border-radius:999px;background:rgba(124,58,237,.08);color:#7c3aed;font-size:13px;font-weight:500;animation:gtPulse 1.2s ease-in-out infinite}
.gt-done{align-self:center;padding:10px 20px;border-radius:999px;background:rgba(38,166,91,.08);color:#26a65b;font-size:13px;font-weight:600}
.gt-err{color:#e5484d}
@keyframes gtPulse{0%,100%{opacity:.75}50%{opacity:1}}
.gt-typing{display:inline-flex;gap:4px;padding:14px}
.gt-typing span{width:6px;height:6px;border-radius:50%;background:var(--text-3,#aaa);animation:gtBlink 1.2s infinite}
.gt-typing span:nth-child(2){animation-delay:.2s}
.gt-typing span:nth-child(3){animation-delay:.4s}
@keyframes gtBlink{0%,80%,100%{opacity:.25}40%{opacity:1}}
.gt-inputbar{display:flex;gap:10px;padding:14px 20px;border-top:1px solid var(--border,#e8e8e8);background:var(--bg-card,#fff)}
.gt-inputbar textarea{flex:1;resize:none;border:1px solid var(--border,#d9d9d9);border-radius:10px;padding:10px 14px;font-size:14px;font-family:inherit;outline:none;max-height:120px}
.gt-inputbar textarea:focus{border-color:var(--primary,#1a71ff)}
/* ── 全局悬浮助手 ── */
/* N-07: z-index 需高于 layui 弹窗层(19891014+)，否则任何弹窗的透明遮罩
   会盖住悬浮球/抽屉，导致关闭按钮"点不动"。仅低于新手向导全屏层。 */
/* R63-A 品牌重塑：诸葛军师头像悬浮球（玄青→朱砂，六边形徽记色系）*/
#gt-fab{position:fixed;right:24px;bottom:28px;z-index:19999998;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#1e3a8a,#e8590c);color:#fff;font-size:22px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 20px rgba(30,58,138,.35);transition:transform .18s}
#gt-fab img{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.85)}
#gt-fab:hover{transform:scale(1.08)}
#gt-fab.gt-fab-active{transform:scale(.96)}
#gt-fab .gt-fab-tip{position:absolute;right:66px;white-space:nowrap;background:var(--bg-card,#fff);color:var(--text-1,#333);border:1px solid var(--border,#e8e8e8);padding:4px 12px;border-radius:8px;font-size:12px;opacity:0;pointer-events:none;transition:opacity .18s}
#gt-fab:hover .gt-fab-tip{opacity:1}
#gt-drawer{position:fixed;right:24px;bottom:98px;z-index:19999998;width:400px;max-width:calc(100vw - 48px);height:min(560px,calc(100vh - 140px));background:var(--bg-card,#fff);border:1px solid var(--border,#e8e8e8);border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.15);display:flex;flex-direction:column;transform:translateY(16px) scale(.98);opacity:0;pointer-events:none;transition:all .2s ease}
#gt-drawer.gt-d-open{transform:none;opacity:1;pointer-events:auto}
.gt-d-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border,#e8e8e8)}
.gt-d-logo{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#1e3a8a,#e8590c);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;overflow:hidden}
.gt-d-logo img{width:30px;height:30px;border-radius:50%;object-fit:cover}
.gt-d-title{font-weight:600;font-size:14px;flex:1}
.gt-d-title small{display:block;font-weight:400;font-size:11px;color:var(--text-3,#999)}
.gt-d-close{border:none;background:none;font-size:20px;color:var(--text-3,#999);cursor:pointer;padding:4px 8px}
.gt-d-close:hover{color:var(--text-1,#333)}
.gt-d-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.gt-d-m{display:flex;max-width:92%}
.gt-d-m-user{align-self:flex-end}
.gt-d-bubble{padding:8px 12px;border-radius:12px;font-size:13px;line-height:1.65;word-break:break-word}
.gt-d-m-ai .gt-d-bubble{background:var(--bg-body,#f5f6f8);border-top-left-radius:4px}
.gt-d-m-user .gt-d-bubble{background:var(--primary,#1a71ff);color:#fff;border-top-right-radius:4px}
.gt-d-md p{margin:.3em 0}
.gt-d-md ul,.gt-d-md ol{padding-left:1.2em;margin:.3em 0}
.gt-d-tool{background:rgba(26,113,255,.07);border:1px solid rgba(26,113,255,.25);color:var(--primary,#1a71ff);font-size:12px;font-weight:500}
.gt-d-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border,#e8e8e8)}
.gt-d-input input{flex:1;border:1px solid var(--border,#d9d9d9);border-radius:10px;padding:9px 12px;font-size:13px;outline:none}
.gt-d-input input:focus{border-color:var(--primary,#1a71ff)}
.gt-d-input button{border:none;background:var(--primary,#1a71ff);color:#fff;border-radius:10px;padding:0 16px;font-size:13px;cursor:pointer}
.gt-d-input button:hover{filter:brightness(1.08)}

/* ════════════════════════════════════════════════════════════
   SOP 技能向导 · 滚动条收敛（配合 skill-wizard.js）
   原则：只保留最外层一个明显滚动条，内层可滚动但隐藏滚动条。
   ════════════════════════════════════════════════════════════ */
/* 细滚动条：向导主滚动区（.wz-body）——唯一可见的滚动条 */
.wt-scroll-slim {
  scrollbar-width: thin;                                   /* Firefox */
  scrollbar-color: rgba(148, 163, 184, 0.45) transparent;  /* Firefox */
}
.wt-scroll-slim::-webkit-scrollbar { width: 6px; height: 6px; }
.wt-scroll-slim::-webkit-scrollbar-track { background: transparent; }
.wt-scroll-slim::-webkit-scrollbar-thumb {
  background: rgba(148, 163, 184, 0.45);
  border-radius: 3px;
}
.wt-scroll-slim::-webkit-scrollbar-thumb:hover {
  background: rgba(100, 116, 139, 0.7);
}
.wt-scroll-slim::-webkit-scrollbar-corner { background: transparent; }

/* 隐藏滚动条但保留滚动能力：向导内层嵌套滚动容器
   （工具箱 / 画布积木列表 / 预览区） */
.wt-scroll-hide {
  scrollbar-width: none;      /* Firefox */
  -ms-overflow-style: none;   /* IE / 旧 Edge */
}
.wt-scroll-hide::-webkit-scrollbar {
  display: none;              /* Chrome / Safari / Edge */
  width: 0; height: 0;
}

/* ── 定时任务：频率多选按钮组（周几 / 几号）────────────────────── */
.st-pick {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 30px; height: 26px; padding: 0 9px;
  border: 1px solid var(--wt-border); border-radius: 6px;
  background: var(--wt-surface); color: var(--wt-ink-secondary);
  font-size: 12px; cursor: pointer; user-select: none;
  transition: var(--wt-transition);
}
.st-pick:hover { border-color: #cbd3e6; color: var(--wt-ink); }
.st-pick.on {
  background: var(--wt-accent); border-color: var(--wt-accent); color: #fff;
}


/* ═══ 诸葛军师菜单项（R60：去常亮蓝底，与普通菜单一致 + 小徽章点缀；
   原蓝底胶囊太醒目，每次都容易被误认为当前页面） ═══════════ */
.wt-nav-item.wt-nav-guide .label { font-weight: 600; }
.wt-nav-item.wt-nav-guide .label::after {
  content: "助理";
  font-size: 9px; font-weight: 600; line-height: 1;
  color: #7c3aed; background: #f1e7ff;
  border: 1px solid #d6bcfa; border-radius: 6px;
  padding: 2px 4px; margin-left: 6px; vertical-align: 1px;
}
.wt-sidebar.collapsed .wt-nav-item.wt-nav-guide .label::after { display: none; }
.wt-nav-item.wt-nav-guide.active { box-shadow: inset 3px 0 0 var(--wt-accent, #1a71ff); }
.wt-sidebar.collapsed .wt-nav-item.wt-nav-guide { border-radius: 8px; }

/* 诸葛军师情境卡 */
.gt-context-card {
  margin: 10px 14px;
  padding: 12px 14px;
  background: linear-gradient(135deg, #eff6ff 0%, #e0f2fe 100%);
  border: 1px solid #93c5fd;
  border-radius: 10px;
}
.gt-context-card .gt-ctx-head { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: #1e40af; margin-bottom: 6px; }
.gt-context-card .gt-ctx-detail { font-size: 12.5px; color: #475569; margin-bottom: 10px; line-height: 1.5; }
.gt-context-card .gt-ctx-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.gt-context-card .gt-ctx-btn {
  padding: 6px 14px; border-radius: 6px; font-size: 12.5px; cursor: pointer;
  border: none;
}
.gt-context-card .gt-ctx-btn.primary { background: #3b82f6; color: #fff; }
.gt-context-card .gt-ctx-btn.primary:hover { background: #2563eb; }
.gt-context-card .gt-ctx-btn.ghost { background: #fff; color: #3b82f6; border: 1px solid #93c5fd; }

/* 聊天追问提示 chips（R23 批次二） */
.wt-suggest-chips { display: flex; gap: 8px; flex-wrap: wrap; padding: 6px 0 2px; }
.wt-suggest-wrap { max-width: 820px; margin: 0 auto; padding: 0 24px; }
.wt-suggest-chip {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 5px 12px; border-radius: 16px;
  background: #f0f9ff; border: 1px solid #bae6fd; color: #0369a1;
  font-size: 12.5px; cursor: pointer; transition: all .15s;
  max-width: 280px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.wt-suggest-chip:hover { background: #e0f2fe; border-color: #7dd3fc; }
.wt-suggest-chips-title { font-size: 11.5px; color: #94a3b8; padding: 2px 0 0; }

/* R162：军师向导消息操作排（赞/踩/记笔记/存知识库）+ 猜你想回复条 */
/* .gt-msg 是 flex 行（头像+气泡）：开 wrap 让操作排 flex-basis:100%
   换行独占一行，否则挤在气泡右侧 */
.gt-msg { flex-wrap: wrap; }
.gt-msg-actions {
  display: flex; gap: 10px; align-items: center;
  flex-basis: 100%; padding: 2px 0 8px 44px;
}
.gt-msg-act {
  cursor: pointer; font-size: 12px; line-height: 1; opacity: .45;
  transition: opacity .15s, transform .15s; user-select: none;
}
.gt-msg-act:hover { opacity: 1; transform: scale(1.15); }
.gt-msg-act.on { opacity: 1; transform: scale(1.1); }
#gt-suggest { border-top: 1px dashed #e2e8f0; }
.gt-sug-title { font-size: 11.5px; color: #94a3b8; margin-bottom: 5px; }
.gt-sug-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.gt-sug-chip {
  padding: 5px 12px; border-radius: 16px; max-width: 300px;
  background: #f0f9ff; border: 1px solid #bae6fd; color: #0369a1;
  font-size: 12.5px; cursor: pointer; transition: all .15s;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.gt-sug-chip:hover { background: #e0f2fe; border-color: #7dd3fc; }
.gt-kb-pick {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 9px 12px; border: 1.5px solid var(--wt-border-light, #e5e7eb);
  border-radius: 8px; margin-bottom: 6px; cursor: pointer; font-size: 13px;
}
.gt-kb-pick .gt-kb-dot {
  width: 15px; height: 15px; border-radius: 50%;
  border: 2px solid var(--wt-border, #d1d5db); flex-shrink: 0; transition: all .15s;
}
.gt-kb-pick.on { border-color: var(--wt-primary, #4f46e5); }
.gt-kb-pick.on .gt-kb-dot {
  border-color: var(--wt-primary, #4f46e5);
  background: var(--wt-primary, #4f46e5);
}

/* 破冰快捷标签 */
.wt-quick-prompts { display: flex; gap: 8px; overflow-x: auto; padding: 8px 16px; }
.wt-quick-prompt {
  flex-shrink: 0; padding: 6px 14px; border-radius: 16px;
  background: #fff; border: 1px solid #e2e8f0; color: #475569;
  font-size: 12.5px; cursor: pointer; white-space: nowrap;
}
.wt-quick-prompt:hover { border-color: #3b82f6; color: #3b82f6; }

/* R43 L4：折叠子组首访提示点——从未展开过的折叠组头部脉冲小圆点 */
.wt-nav-sub.wt-sub-hint .wt-nav-sub-head .label { position: relative; }
.wt-nav-sub.wt-sub-hint .wt-nav-sub-head .label::after {
  content: ""; position: absolute; right: -10px; top: 50%;
  width: 6px; height: 6px; margin-top: -3px; border-radius: 50%;
  background: #f59e0b; animation: wt-sub-hint-pulse 1.6s ease-out infinite;
}
@keyframes wt-sub-hint-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(245, 158, 11, .45); }
  70%  { box-shadow: 0 0 0 7px rgba(245, 158, 11, 0); }
  100% { box-shadow: 0 0 0 0 rgba(245, 158, 11, 0); }
}

/* ============================================================
   R112：品牌和产品——品牌选择卡与"新建品牌"虚线卡（醒目化：
   原 .*-new 入口是灰字无框，视觉上不像可点按钮）
   ============================================================ */
.bc-brand-card {
  flex: 1 1 200px; max-width: 260px; padding: 12px 14px;
  border: 1px solid var(--wt-border-light, #e5e7eb); border-radius: 10px;
  background: var(--wt-surface, #fff); transition: border-color .15s, box-shadow .15s;
}
.bc-brand-card:hover { border-color: var(--wt-accent, #4f46e5); }
.bc-brand-cur { border-color: var(--wt-accent, #4f46e5); box-shadow: 0 0 0 1px var(--wt-accent, #4f46e5) inset; }
.bc-new-card {
  border: 1.5px dashed var(--wt-accent, #4f46e5); color: var(--wt-accent, #4f46e5) !important;
  font-weight: 600; min-height: 58px; display: flex; align-items: center; justify-content: center;
}
.bc-new-card:hover { background: rgba(79, 70, 229, .05); }

/* ============================================================
   R113-补：.wt-tab 切换组件（选题池/内容资产库等视图切换——
   原本无定义渲染成浏览器裸按钮，视觉上"像坏了"）
   ============================================================ */
.wt-tab {
  display: inline-flex; align-items: center; gap: 4px;
  height: 32px; padding: 0 14px; border-radius: 6px 6px 0 0;
  border: 1px solid transparent; border-bottom: none;
  background: transparent; color: var(--wt-ink-secondary, #475569);
  font-size: 13px; cursor: pointer; transition: all .15s;
}
.wt-tab:hover { color: var(--wt-accent, #181214); }
.wt-tab.active {
  background: var(--wt-surface, #fff); color: var(--wt-accent, #181214);
  font-weight: 600; border-color: var(--wt-border-light, #e5e7eb);
  box-shadow: 0 1px 0 var(--wt-surface, #fff);
}

/* R129③：常驻军师胶囊——窄屏隐藏（H5/移动端底部导航已有军师入口） */
@media (max-width: 768px) { #wt-guide-capsule { display: none !important; } }

/* R176：候选池发现任务进度卡 spinner（邮件爬虫可视化） */
@keyframes ep-spin-rot { to { transform: rotate(360deg); } }
.ep-spin { animation: ep-spin-rot 1s linear infinite; }

/* ═══ R191-5：按钮配色体系（layui 标准，老板拍板色值 20261001）═══
   青绿 rgb(0,150,136)   #009688  默认——主要操作/确认/提交
   蓝色 rgb(30,159,255)   #1E9FFF  百搭——信息/查看/次级操作
   黄色 rgb(255,184,0)    #FFB800  暖色——注意/待审/建议
   红色 rgb(255,87,34)    #FF5722  警告——删除/不可逆/拦截
   ═══════════════════════════════════════════════════════════════ */

/* 主色改 layui 蓝（原 #18181a 近黑色太难看） */
:root {
  --wt-accent: #009688;
  --wt-accent-hover: #009688;
}
.wt-btn-primary { background: #009688; border-color: #009688; }
.wt-btn-primary:hover { background: #26a69a; border-color: #26a69a; }

/* layui 同款语义色按钮 */
.wt-btn-success { background: #009688; border-color: #009688; color: #fff; }
.wt-btn-success:hover { background: #26a69a; border-color: #26a69a; color: #fff; }

.wt-btn-warm { background: #FFB800; border-color: #FFB800; color: #fff; }
.wt-btn-warm:hover { background: #ffc833; border-color: #ffc833; color: #fff; }

.wt-btn-danger { background: #FF5722; border-color: #FF5722; color: #fff; }
.wt-btn-danger:hover { background: #ff7043; border-color: #ff7043; color: #fff; }
/* 20261005 老板拍板：红底按钮字体必须恒白——!important 管住组合类
   （ghost+danger / outline+danger）与历史内联 color 覆盖，今后新组合
   也不会再出"红底深红字" */
.wt-btn-danger,
.wt-btn-danger:hover { color: #fff !important; }

/* 蓝色 #1E9FFF——信息/查看/AI 辅助填空（20261002 选题中心 AI 优化按钮） */
.wt-btn-info { background: #1E9FFF; border-color: #1E9FFF; color: #fff; }
.wt-btn-info:hover { background: #47b0ff; border-color: #47b0ff; color: #fff; }
.wt-btn-outline-info { background: transparent; border-color: #1E9FFF; color: #1E9FFF; }
.wt-btn-outline-info:hover { background: rgba(30,159,255,.08); }

/* outline 系列也配语义色 */
.wt-btn-outline-primary { background: transparent; border-color: #009688; color: #009688; }
.wt-btn-outline-primary:hover { background: rgba(0,150,136,.08); }

.wt-btn-outline-success { background: transparent; border-color: #009688; color: #009688; }
.wt-btn-outline-success:hover { background: rgba(0,150,136,.08); }

.wt-btn-outline-warm { background: transparent; border-color: #FFB800; color: #c78d00; }
.wt-btn-outline-warm:hover { background: rgba(255,184,0,.08); }

/* 20261002：图文创建区-出镜形象卡片选中态 */
.gp-asset-picked { border-color: var(--wt-accent, #009688) !important; background: var(--wt-blue-bg, #eef4ff); }
.gp-asset-picked::after {
  content: "✓ 已选"; position: absolute; top: 10px; right: 10px;
  background: var(--wt-accent, #009688); color: #fff; font-size: 10px;
  padding: 2px 8px; border-radius: 10px; z-index: 1;
}
