/**
 * 通用待办任务工作台样式
 * 严格按照原型 HTML UI 规范（BOC-00-PLATFORM-001 §3.3）
 */

/* ==================== 工作台主容器 ==================== */

.tw-workbench {
  display: flex;
  flex-direction: row;
  width: 100%;
  height: 100%;
  background: #fff;
  overflow: hidden;
}

/* 左侧主区域 */
.main-area {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-width: 0;
}

/* 右侧内容面板（顶层，与 main-area 平级） */
.content-panel {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fff;
  border-left: 1px solid #e6e8eb;
  height: 100%;
  min-width: 200px;
}

/* ==================== 顶部页面头部 (.page-header) §3.3.1 ==================== */

.page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 20px;
  border-bottom: 1px solid #e6e8eb;
  flex-shrink: 0;
  background: #fff;
}

.page-header .ph-left {
  display: flex;
  align-items: center;
  gap: 12px;
}

.page-header .ph-title {
  font-size: 16px;
  font-weight: 600;
  color: #303133;
  display: flex;
  align-items: center;
  gap: 8px;
}

.page-header .ph-title::before {
  content: '';
  display: inline-block;
  width: 3px;
  height: 16px;
  background: var(--tw-text-link);
  border-radius: 1px;
}

.page-header .ph-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #f56c6c;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  padding: 1px 7px;
  border-radius: 10px;
  min-width: 18px;
}

.page-header .ph-breadcrumb {
  font-size: 12px;
  color: #909399;
  display: flex;
  align-items: center;
  gap: 4px;
}

.page-header .ph-breadcrumb {
  font-size: 12px;
  color: #909399;
  display: flex;
  align-items: center;
  gap: 4px;
}

.page-header .ph-breadcrumb span {
  cursor: pointer;
}

.page-header .ph-breadcrumb span:hover {
  color: var(--tw-text-link);
}

.page-header .ph-breadcrumb .current {
  color: #303133;
  font-weight: 500;
  cursor: default;
}

.ph-breadcrumb-sep {
  color: #c0c4cc;
  font-size: 12px;
}

.page-header .ph-right {
  display: flex;
  align-items: center;
  gap: 16px;
}

.page-header .ph-status {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #606266;
}

.page-header .ph-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
}

.page-header .ph-dot.online {
  background: #67c23a;
}

.page-header .ph-dot.running {
  background: #faad14;
  animation: ph-dot-pulse 1.2s ease-in-out infinite;
}

.page-header .ph-status.executing {
  color: #faad14;
}

@keyframes ph-dot-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(0.7); }
}

.page-header .ph-user {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--tw-text-link);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 600;
}

/* ==================== 任务列表 ==================== */

.tw-task-list {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #f0f2f5;
}

/* 列表工具栏 */
.list-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 20px;
  flex-shrink: 0;
  border-bottom: 1px solid #f0f2f5;
  background: #fff;
}

/* 统计药丸 */
.stat-pills {
  display: flex;
  gap: 8px;
}

.stat-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 14px;
  border-radius: 16px;
  font-size: 12px;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
  border: 1px solid #e6e8eb;
  background: #fff;
  user-select: none;
}

.stat-pill:hover {
  border-color: var(--tw-text-link);
}

.stat-pill.active {
  background: var(--tw-text-link);
  color: #fff;
  border-color: var(--tw-text-link);
}

.stat-pill .count {
  font-weight: 700;
}

.stat-pill .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
}

.stat-pill .dot.blue { background: var(--tw-text-link); }
.stat-pill .dot.green { background: #67c23a; }
.stat-pill .dot.orange { background: #e6a23c; }
.stat-pill .dot.red { background: #f56c6c; }
.stat-pill .dot.gray { background: #909399; }
.stat-pill.active .dot { background: #fff; }

/* 筛选栏 */
.filter-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 20px;
  border-bottom: 1px solid #f0f2f5;
  flex-shrink: 0;
  background: #fff;
}

.filter-label {
  font-size: 12px;
  color: #909399;
  white-space: nowrap;
}

.filter-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 12px;
  border-radius: 4px;
  font-size: 12px;
  color: #606266;
  background: #f5f7fa;
  border: 1px solid #e6e8eb;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
  user-select: none;
}

.filter-btn:hover {
  border-color: var(--tw-text-link);
  color: var(--tw-text-link);
}

.filter-btn.active {
  background: var(--tw-text-link);
  color: #fff;
  border-color: var(--tw-text-link);
}

/* 任务列表滚动区 */
.task-list-scroll {
  flex: 1;
  overflow-y: auto;
  padding: 8px 16px;
}

.task-list-scroll::-webkit-scrollbar {
  width: 6px;
}

.task-list-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.task-list-scroll::-webkit-scrollbar-thumb {
  background: #c0c4cc;
  border-radius: 3px;
}

.tw-task-list__loading,
.tw-task-list__empty {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  background: #f0f2f5;
}

.tw-task-list__items {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.tw-task-list__pagination {
  text-align: center;
  padding: 12px 0;
  font-size: 12px;
  color: #999;
}

/* ==================== 对话气泡式任务列表 ==================== */

.tw-chat-list-view {
  flex: 1;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #FAFAFA;
  overflow: hidden;
}

.tw-chat-list-view__conversation {
  flex: 1;
  overflow-y: auto;
  padding: 20px 24px;
}

.tw-chat-list-view__conversation::-webkit-scrollbar {
  width: 6px;
}
.tw-chat-list-view__conversation::-webkit-scrollbar-thumb {
  background: #c0c4cc;
  border-radius: 3px;
}

.tw-chat-list-view__loading {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}

.tw-chat-list-view__footer {
  padding: 8px 16px;
  border-top: 1px solid #E6E8EB;
  background: #fff;
  text-align: center;
}

.pagination-hint {
  font-size: 12px;
  color: #909399;
}

/* 聊天气泡 */
.chat-msg {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 16px;
  animation: bubbleFadeIn 0.3s ease;
}
.chat-msg.agent {
  flex-direction: row;
}

.chat-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--tw-brand-1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.chat-bubble {
  background: #fff;
  border: 1px solid #E6E8EB;
  border-radius: 12px;
  padding: 14px 18px;
  max-width: 520px;
  font-size: 14px;
  line-height: 1.6;
  color: #303133;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.chat-bubble.full-width {
  max-width: none;
  flex: 1;
  padding: 0;
  overflow: hidden;
}

.chat-bubble p {
  margin: 0 0 6px;
}
.chat-bubble p:last-child {
  margin-bottom: 0;
}

.chat-alert {
  color: #F56C6C;
}
.text-danger {
  color: #F56C6C;
}

/* 气泡内工具栏 */
.bubble-toolbar {
  padding: 12px 16px;
  border-bottom: 1px solid #E6E8EB;
}

/* 任务分组 */
.task-group {
  padding: 0 16px 12px;
}
.task-group + .task-group {
  border-top: 1px solid #f0f0f0;
  padding-top: 12px;
}

.task-group__header {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 0;
  font-size: 13px;
  font-weight: 500;
  color: #606266;
}
.task-group__header.urgent { color: #F56C6C; }
.task-group__header.normal { color: #E6A23C; }
.task-group__header.relaxed { color: #67C23A; }

.task-group__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #909399;
}
.task-group__header.urgent .task-group__dot {
  background: #F56C6C;
  animation: pulse 1.5s infinite;
}
.task-group__header.normal .task-group__dot { background: #E6A23C; }
.task-group__header.relaxed .task-group__dot { background: #67C23A; }

.task-group__count {
  background: #f0f0f0;
  border-radius: 10px;
  padding: 0 8px;
  font-size: 12px;
  color: #909399;
}

@keyframes bubbleFadeIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.5; }
}

/* ==================== 任务卡片 ==================== */

.tw-task-card {
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 8px;
  padding: 12px 16px;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.tw-task-card:hover {
  border-color: var(--tw-text-link);
  box-shadow: 0 2px 8px color-mix(in srgb, var(--tw-text-link) 15%, transparent);
  transform: translateY(-1px);
}

.tw-task-card__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.tw-task-card__title {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  min-width: 0;
}

.tw-task-card__meta {
  margin-top: 8px;
}

.tw-task-card__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid #f0f0f0;
}

/* ==================== 统计药丸 ==================== */

.tw-stat-pills {
  display: flex;
  flex-wrap: wrap;
}

/* ==================== 筛选栏 ==================== */

.tw-filter-bar {
  display: flex;
  align-items: center;
}

/* ==================== 执行视图 ==================== */

.tw-exec-view {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
}

/* 执行视图内容区：任务详情 + 对话 */
.tw-exec-view__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-height: 0;
}

/* 左右分栏布局：左侧聊天 + 右侧面板 */
.tw-exec-view__body {
  flex: 1;
  display: flex;
  overflow: hidden;
  min-height: 0;
  position: relative;
}

/* 左侧聊天区域 */
.tw-exec-view__chat {
  flex: 1;
  overflow: hidden;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

/* 任务专用消息容器 */
.tw-messages-container {
  flex: 1;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

/* 右侧内容面板 */
.tw-content-panel {
  width: 30%;
  min-width: 280px;
  max-width: none;
  display: flex;
  flex-direction: column;
  border-left: 1px solid #e8e8e8;
  background: #fff;
  overflow: hidden;
}

.tw-content-panel--collapsed {
  width: auto;
  min-width: auto;
  border-left: none;
}

/* 独立右侧面板（TaskExecView 内） */
.tw-exec-view__panel {
  flex-shrink: 0;
  overflow-y: auto;
  border-left: 1px solid #E6E8EB;
  background: #fff;
  height: 100%;
}

/* 拖拽调整手柄（与输入框拖拽条完全一致的交互） */
.tw-resize-handle {
  width: 6px;
  cursor: col-resize;
  background: transparent;
  flex-shrink: 0;
  position: relative;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s;
}

.tw-resize-handle:hover {
  background: color-mix(in srgb, var(--tw-text-link, #1B65B9) 8%, transparent);
}

.tw-resize-handle:active {
  background: color-mix(in srgb, var(--tw-text-link, #1B65B9) 15%, transparent);
}

/* 中央竖向指示条 —— 始终可见 */
.tw-resize-handle .resize-indicator {
  width: 3px;
  height: 40px;
  border-radius: 2px;
  background: #d9d9d9;
  transition: background 0.15s, height 0.15s;
}

.tw-resize-handle:hover .resize-indicator {
  background: var(--tw-text-link, #1B65B9);
  height: 56px;
}

/* 面板折叠/展开按钮 */
.tw-panel-toggle {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 48px;
  border: 1px solid #E6E8EB;
  border-right: none;
  border-radius: 8px 0 0 8px;
  background: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  color: #909399;
  z-index: 11;
  transition: all 0.2s;
}
.tw-panel-toggle:hover {
  background: var(--tw-brand-1);
  color: var(--tw-text-link);
}

/* ==================== 对话区域 ==================== */

.tw-conversation-area {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  padding: 20px;
  background: #fff;
  scroll-behavior: auto;
  min-height: 0;
}

/* 嵌入 ConversationInstance 时：去掉 padding，让子组件接管滚动和布局 */
.tw-conversation-area--embedded {
  padding: 0;
  overflow: hidden;
}

.tw-conversation-area--embedded > .chat-panel-with-sidebar {
  height: 100%;
  width: 100%;
  min-height: 0;
}

.tw-conversation-area--embedded .chat-main {
  min-width: 0;
}

.tw-conversation-area::-webkit-scrollbar {
  width: 6px;
}

.tw-conversation-area::-webkit-scrollbar-track {
  background: transparent;
}

.tw-conversation-area::-webkit-scrollbar-thumb {
  background: #c0c4cc;
  border-radius: 3px;
}

.tw-conversation-area__loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  color: #999;
  padding: 40px 0;
}

/* 消息样式 */
.tw-message {
  display: flex;
  gap: 10px;
  margin-bottom: 20px;
  animation: fadeInMsg 0.3s ease;
}

@keyframes fadeInMsg {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.tw-message--agent .tw-message__avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--tw-text-link), var(--tw-brand-7));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 16px;
}

.tw-message__content {
  max-width: 92%;
  background: #fff;
  border: 1px solid #e6e8eb;
  border-radius: 8px;
  padding: 14px 18px;
  font-size: 13px;
  line-height: 1.7;
  color: #303133;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

/* ==================== 交互区域（对话驱动模式）§7 ==================== */

.interaction-zone {
  border-top: 1px solid #e6e8eb; background: #fff;
  display: flex; flex-direction: column; flex-shrink: 0;
  overflow: hidden;
}

/* 拖拽手柄 */
.iz-resize-handle {
  height: 5px;
  cursor: ns-resize;
  flex-shrink: 0;
  position: relative;
  background: transparent;
  transition: background 0.15s;
}

.iz-resize-handle::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 36px;
  height: 3px;
  border-radius: 2px;
  background: #c0c4cc;
  opacity: 0;
  transition: opacity 0.15s;
}

.iz-resize-handle:hover { background: #f0f2f5; }
.iz-resize-handle:hover::after { opacity: 1; }

/* Tab 栏 */
.iz-tab-bar {
  display: flex; border-bottom: 1px solid #e6e8eb;
  background: #fafafa; flex-shrink: 0; padding: 10px 20px 0;
}

.iz-tab {
  padding: 10px 16px; font-size: 13px; font-weight: 500;
  color: #909399; cursor: pointer; border-bottom: 2px solid transparent;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease; user-select: none; position: relative;
}

.iz-tab:hover { color: #303133; }
.iz-tab.active { color: var(--tw-text-link); border-bottom-color: var(--tw-text-link); background: #fff; }

.iz-tab .tab-badge {
  display: inline-block; background: #f56c6c; color: #fff;
  font-size: 10px; padding: 0 5px; border-radius: 8px;
  margin-left: 4px; line-height: 16px;
}

/* 退出工作台操作栏 */
.interaction-actions {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 20px 0; border-top: 1px solid #f0f2f5; flex-shrink: 0;
}

.plain-btn {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 6px 14px; border-radius: 4px; font-size: 13px;
  cursor: pointer; transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
  background: #fff; color: #606266; border: 1px solid #e6e8eb;
  white-space: nowrap;
}

.plain-btn:hover { border-color: var(--tw-text-link); color: var(--tw-text-link); }

/* 输入区 */
.input-row {
  display: flex; align-items: flex-end; gap: 8px;
  padding: 8px 20px 12px; flex: 1; min-height: 0;
  width: 100%;
}
.input-row .input-container {
  flex: 1;
  min-width: 0;
}

.iz-textarea {
  flex: 1; border: 1px solid #e6e8eb; border-radius: 4px;
  padding: 8px 12px; font-size: 13px; font-family: inherit;
  resize: none; outline: none; line-height: 1.5;
  transition: border-color 0.2s;
  min-height: 38px; align-self: stretch;
  box-sizing: border-box;
}

.iz-textarea:focus { border-color: var(--tw-text-link); }

.iz-textarea::placeholder { color: #c0c4cc; }

/* 发送按钮 */
.send-btn {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 6px 16px; border-radius: 4px; font-size: 13px;
  cursor: pointer; transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
  background: var(--tw-text-link); color: #fff; border: 1px solid var(--tw-text-link);
  white-space: nowrap; flex-shrink: 0; align-self: flex-end;
}

.send-btn:hover { background: var(--tw-brand-7); border-color: var(--tw-brand-7); }
.send-btn:disabled { background: #c0c4cc; border-color: #c0c4cc; cursor: not-allowed; }

/* ==================== Agent 预填进度条 ==================== */

.agent-progress {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 16px; background: var(--tw-brand-1); flex-shrink: 0;
  border-bottom: 1px solid var(--tw-brand-2);
}

.ap-avatar {
  width: 24px; height: 24px; border-radius: 50%;
  background: linear-gradient(135deg, var(--tw-text-link), var(--tw-brand-7));
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 12px; flex-shrink: 0;
}

.ap-label {
  font-size: 12px; color: var(--tw-text-link); font-weight: 500;
  white-space: nowrap;
}

.ap-bar {
  flex: 1; height: 6px; background: var(--tw-brand-2); border-radius: 3px;
  overflow: hidden;
}

.ap-fill {
  height: 100%; background: var(--tw-text-link); border-radius: 3px;
  transition: width 0.3s;
}

.ap-pct {
  font-size: 12px; color: var(--tw-text-link); font-weight: 600;
  min-width: 36px; text-align: right;
}

.ap-btn {
  margin-left: auto; padding: 2px 10px;
  background: #fff; border: 1px solid var(--tw-brand-2); border-radius: 4px;
  font-size: 11px; color: var(--tw-text-link); cursor: pointer; white-space: nowrap;
}

.ap-btn:hover { border-color: var(--tw-text-link); }

.ap-percent {
  font-size: 12px; color: var(--tw-text-link); font-weight: 600;
  min-width: 36px; text-align: right;
}

/* ==================== 退回弹框 ==================== */

.tw-return-modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tw-return-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
}

.tw-return-modal__content {
  position: relative;
  background: #fff;
  border-radius: 12px;
  padding: 24px;
  width: 460px;
  max-width: 90vw;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
}

.tw-return-modal__content h3 {
  margin: 0 0 16px 0;
  font-size: 15px;
  font-weight: 600;
}

.tw-return-modal__actions {
  margin-top: 16px;
  display: flex;
  justify-content: flex-end;
}

/* ==================== 右侧面板 (.content-panel) §3.3.6 ==================== */

.tw-content-panel {
  display: flex;
  flex-direction: column;
  background: #fff;
  overflow: hidden;
  height: 100%;
}

.tw-content-panel--collapsed {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
}

/* --- 一、多标签管理栏 (.right-tabs-bar) --- */
.right-tabs-bar {
  display: flex;
  align-items: center;
  border-bottom: 1px solid #e6e8eb;
  background: #fafafa;
  flex-shrink: 0;
  position: relative;
}

.right-tabs-scroll {
  flex: 1;
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
  min-width: 0;
  display: flex;
}

.right-tabs-scroll::-webkit-scrollbar {
  height: 0;
}

.rtb-arrow {
  width: 28px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: none;
  cursor: pointer;
  color: #606266;
  font-size: 14px;
  flex-shrink: 0;
  z-index: 10;
  transition: color 0.2s ease, background-color 0.2s ease;
  user-select: none;
}

.rtb-arrow:hover {
  color: var(--tw-text-link);
  background: #f5f7fa;
}

.rtb-arrow.disabled {
  color: #c0c4cc;
  cursor: not-allowed;
}

.rtb-arrow.disabled:hover {
  background: transparent;
  color: #c0c4cc;
}

.rtb-arrow.left {
  border-right: 1px solid #e6e8eb;
}

.rtb-arrow.right {
  border-left: 1px solid #e6e8eb;
}

.right-tab {
  padding: 10px 16px;
  font-size: 13px;
  font-weight: 500;
  color: #909399;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
  user-select: none;
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  flex-shrink: 0;
}

.right-tab:hover {
  color: #303133;
}

.right-tab.active {
  color: var(--tw-text-link);
  border-bottom-color: var(--tw-text-link);
  background: #fff;
}

.right-tab .tab-close {
  display: inline-block;
  margin-left: 4px;
  font-size: 12px;
  color: #c0c4cc;
  cursor: pointer;
  line-height: 1;
}

.right-tab .tab-close:hover {
  color: #f56c6c;
}

/* --- 二、步骤导航 (.cp-step-nav) §8.3 --- */
.cp-step-nav {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 12px 16px;
  border-bottom: 1px solid #e6e8eb;
  background: #fff;
  flex-shrink: 0;
  overflow-x: auto;
}

.cp-step-nav::-webkit-scrollbar {
  height: 0;
}

.cp-step {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease;
  user-select: none;
  white-space: nowrap;
  flex-shrink: 0;
  border-radius: 4px;
}

.cp-step:hover {
  background: color-mix(in srgb, var(--tw-text-link) 6%, transparent);
}

.cp-step.active {
  background: var(--tw-brand-1);
}

.cp-step-circle {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 600;
  flex-shrink: 0;
  background: #e6e8eb;
  color: #909399;
}

.cp-step.done .cp-step-circle {
  background: #67c23a;
  color: #fff;
}

.cp-step.active .cp-step-circle {
  background: var(--tw-text-link);
  color: #fff;
}

.cp-step-name {
  font-size: 12px;
  font-weight: 500;
  color: #303133;
}

.cp-step.active .cp-step-name {
  color: var(--tw-text-link);
}

.cp-step.done .cp-step-name {
  color: #67c23a;
}

.cp-step-sep {
  width: 24px;
  height: 1px;
  background: #e6e8eb;
  flex-shrink: 0;
}

/* --- 三、面板内容标题头 (.cp-header) --- */
.cp-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid #e6e8eb;
  background: #fff;
  flex-shrink: 0;
}

.cp-header .cp-title {
  font-size: 14px;
  font-weight: 600;
  color: #303133;
  display: flex;
  align-items: center;
  gap: 6px;
}

.cp-header .cp-title::before {
  content: '';
  display: inline-block;
  width: 3px;
  height: 14px;
  background: var(--tw-text-link);
  border-radius: 1px;
}

.cp-header .cp-subtitle {
  font-size: 11px;
  color: #909399;
  margin-left: 8px;
  font-weight: 400;
}

.cp-sla-countdown {
  font-size: 12px;
  font-weight: 700;
  flex-shrink: 0;
}

/* --- 四、二级标签导航 (.cp-sub-tabs) --- */
.cp-sub-tabs {
  display: flex;
  border-bottom: 1px solid #e6e8eb;
  background: #fff;
  flex-shrink: 0;
  padding: 0;
}

.cp-sub-tab {
  padding: 10px 20px;
  font-size: 13px;
  font-weight: 500;
  color: #909399;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
  user-select: none;
  position: relative;
}

.cp-sub-tab:hover {
  color: #303133;
}

.cp-sub-tab.active {
  color: var(--tw-text-link);
  border-bottom-color: var(--tw-text-link);
  background: #fff;
}

/* --- 五、数据源提示 (.cp-data-source) --- */
.cp-data-source {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  background: var(--tw-brand-1);
  border-bottom: 1px solid var(--tw-brand-2);
  font-size: 12px;
  color: var(--tw-text-link);
  flex-shrink: 0;
}

.cp-data-source .ds-icon {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--tw-text-link);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  flex-shrink: 0;
  font-weight: 700;
  font-style: normal;
}

/* --- 六、面板内容区 (.cp-body) --- */
.cp-body {
  overflow-y: auto;
  flex: 1;
  min-height: 0;
  padding: 16px;
}

.cp-body::-webkit-scrollbar {
  width: 6px;
}

.cp-body::-webkit-scrollbar-track {
  background: transparent;
}

.cp-body::-webkit-scrollbar-thumb {
  background: #c0c4cc;
  border-radius: 3px;
}

/* 面板内容区段落样式 */
.rp-section {
  margin-bottom: 16px;
}

.rp-section-title {
  font-size: 13px;
  font-weight: 600;
  color: #303133;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
}

/* --- 七、底部操作栏 (.cp-actions-bar) §8.2.1 --- */
.cp-actions-bar {
  display: flex;
  gap: 4px;
  padding: 8px 10px;
  border-top: 1px solid #e6e8eb;
  background: #fafafa;
  flex-shrink: 0;
  justify-content: flex-end;
  flex-wrap: nowrap;
  overflow-x: auto;
}

.cp-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 12px;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
  border: 1px solid transparent;
  line-height: 1.4;
  white-space: nowrap;
  height: auto;
  min-height: 28px;
  flex-shrink: 0;
}

.cp-action-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.cp-action-btn.primary {
  background: var(--tw-text-link);
  color: #fff;
  border-color: var(--tw-text-link);
}

.cp-action-btn.primary:hover {
  background: var(--tw-brand-7);
}

.cp-action-btn.default {
  background: #fff;
  color: #606266;
  border-color: #e6e8eb;
}

.cp-action-btn.default:hover {
  border-color: var(--tw-text-link);
  color: var(--tw-text-link);
}

.cp-action-btn.success {
  background: #67c23a;
  color: #fff;
  border-color: #67c23a;
}

.cp-action-btn.success:hover {
  background: #7bc257;
}

.cp-action-btn.danger {
  background: #fff;
  color: #f56c6c;
  border-color: #f56c6c;
}

.cp-action-btn.danger:hover {
  background: #f56c6c;
  color: #fff;
}

.cp-action-btn.text {
  background: transparent;
  color: #909399;
  border: none;
}

.cp-action-btn.text:hover {
  color: var(--tw-text-link);
}

/* --- 内联操作面板（退回/转交/完成 等发起依然共享一套外壳） --- */
.cp-inline-panel {
  padding: 12px 14px;
  border-radius: 8px;
  border: 1px solid var(--border-default);
  background: var(--surface-card);
  animation: cp-inline-slide 0.2s ease-out;
}

@keyframes cp-inline-slide {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* 面板标题 */
.cp-inline-panel__title {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 6px;
}

/* 单个字段块 */
.cp-inline-panel__field {
  margin-bottom: 8px;
}

.cp-inline-panel__field:last-of-type {
  margin-bottom: 0;
}

.cp-inline-panel__field-label {
  font-size: 11px;
  color: var(--text-secondary);
  margin-bottom: 4px;
}

.cp-inline-panel__field-label--required::after {
  content: ' *';
  color: var(--tw-status-error, #f56c6c);
}

/* 共享：textarea */
.cp-inline-panel__textarea {
  width: 100%;
  border: 1px solid var(--border-default) !important;
  background: var(--surface-sidebar) !important;
  box-shadow: none !important;
  padding: 6px 8px !important;
  font-size: 12px;
  color: var(--text-primary);
  resize: none;
  border-radius: 4px;
}

.cp-inline-panel__textarea:focus {
  border-color: var(--tw-text-link) !important;
  box-shadow: none !important;
}

/* 共享：底部按钮行 */
.cp-inline-panel__actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px dashed var(--border-default);
}

.cp-inline-panel__actions .cp-action-btn {
  font-size: 12px;
  padding: 4px 14px;
  height: auto;
}

/* --- 统一卡片容器（替代内联卡片样式） --- */
.cp-card {
  background: var(--surface-card);
  border-radius: 8px;
  padding: 14px 16px;
  margin-bottom: 12px;
  border: 1px solid var(--border-default);
}

.cp-card-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.cp-card-title::before {
  content: '';
  display: inline-block;
  width: 3px;
  height: 14px;
  background: var(--tw-text-link);
  border-radius: 1px;
}

/* --- 键值对网格 --- */
.cp-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 24px;
}

.cp-info-grid-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  min-width: 0;
}

.cp-info-grid-label {
  color: var(--text-secondary);
  white-space: nowrap;
  flex-shrink: 0;
  min-width: 56px;
}

.cp-info-grid-value {
  color: var(--text-primary);
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* --- 提示/警告/信息区块 --- */
.cp-callout {
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 12px;
  line-height: 1.6;
  margin-bottom: 12px;
}

.cp-callout--warning {
  background: rgba(250, 173, 20, 0.08);
  border: 1px solid rgba(230, 162, 60, 0.19);
}

.cp-callout--info {
  background: var(--surface-sidebar);
  border: 1px solid var(--border-default);
}

.cp-callout--success {
  background: rgba(103, 194, 58, 0.08);
  border: 1px solid rgba(103, 194, 58, 0.4);
}

/* --- 全宽操作按钮 --- */
.cp-full-btn {
  width: 100%;
  margin-top: 8px;
  padding: 6px 12px;
  border: none;
  border-radius: 4px;
  font-size: 12px;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.cp-full-btn--primary {
  background: var(--tw-text-link);
  color: #fff;
}

.cp-full-btn--primary:hover {
  opacity: 0.85;
}

.cp-full-btn--warning {
  background: var(--tw-status-warning);
  color: #fff;
}

.cp-full-btn--warning:hover {
  opacity: 0.85;
}

/* --- 通用标签 --- */
.cp-tag {
  display: inline-flex;
  align-items: center;
  padding: 1px 8px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
}

.cp-tag--success {
  background: rgba(103, 194, 58, 0.1);
  color: #67c23a;
}

.cp-tag--warning {
  background: rgba(250, 173, 20, 0.1);
  color: #e6a23c;
}

.cp-tag--default {
  background: rgba(0, 0, 0, 0.04);
  color: #909399;
}

/* --- 文档行（替代内联 SimpleDocRow 样式） --- */
.cp-doc-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  background: var(--surface-sidebar);
  border-radius: 6px;
  margin-bottom: 6px;
}

.cp-doc-row:last-child {
  margin-bottom: 0;
}

.cp-doc-row__icon {
  width: 32px;
  height: 32px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 15px;
}

.cp-doc-row__icon--red { background: rgba(255, 77, 79, 0.10); color: #ff4d4f; }
.cp-doc-row__icon--green { background: rgba(82, 196, 26, 0.10); color: #52c41a; }
.cp-doc-row__icon--blue { background: rgba(24, 144, 255, 0.10); color: #1890ff; }

.cp-doc-row__info {
  flex: 1;
  min-width: 0;
}

.cp-doc-row__name {
  font-size: 12px;
  font-weight: 500;
  color: var(--text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cp-doc-row__meta {
  font-size: 11px;
  color: var(--text-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin-top: 2px;
}

/* --- 文档操作按钮（统一样式，icon-only） --- */
.doc-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  background: transparent;
  border: 1px solid var(--border-default);
  border-radius: 4px;
  cursor: pointer;
  color: var(--text-secondary);
  font-size: 14px;
  line-height: 1;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.doc-action-btn:hover {
  border-color: var(--tw-text-link);
  color: var(--tw-text-link);
  background: color-mix(in srgb, var(--tw-text-link) 5%, transparent);
}

.doc-action-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.doc-action-btn--primary {
  color: var(--tw-text-link);
  border-color: color-mix(in srgb, var(--tw-text-link) 30%, transparent);
}

.doc-action-btn--primary:hover {
  background: color-mix(in srgb, var(--tw-text-link) 10%, transparent);
  border-color: var(--tw-text-link);
}

[data-theme="dark"] .doc-action-btn {
  background: transparent;
  border-color: var(--border-default);
  color: var(--text-secondary);
}

[data-theme="dark"] .doc-action-btn:hover {
  border-color: var(--tw-text-link);
  color: var(--tw-text-link);
}

[data-theme="dark"] .doc-action-btn--primary {
  color: var(--tw-text-link);
  border-color: color-mix(in srgb, var(--tw-text-link) 40%, transparent);
}

/* --- 流转路径 --- */
.flow-path {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  padding: 10px;
  background: #f5f7fa;
  border-radius: 6px;
  margin-top: 8px;
}

.flow-node {
  font-size: 11px;
  color: #303133;
  padding: 3px 8px;
  border-radius: 4px;
  background: #fff;
  border: 1px solid #e6e8eb;
}

.flow-node.active {
  background: var(--tw-brand-1);
  border-color: var(--tw-text-link);
  color: var(--tw-text-link);
}

.flow-node.done {
  background: #f0f9eb;
  border-color: #67c23a;
  color: #67c23a;
}

.flow-node.skip {
  background: #f5f7fa;
  color: #c0c4cc;
  text-decoration: line-through;
}

.flow-arrow {
  color: #c0c4cc;
  font-size: 11px;
}

/* ==================== SOP标签 ==================== */

.tw-sop-tag,
.tc-sop-tag {
  display: inline-flex;
  align-items: center;
  padding: 1px 8px;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 500;
}

.tc-sop-tag.lead { background: var(--tw-brand-1); color: var(--tw-text-link); }
.tc-sop-tag.opp { background: #fdf6ec; color: #e6a23c; }
.tc-sop-tag.contract { background: #f0f9eb; color: #67c23a; }
.tc-sop-tag.customer { background: #f0ecff; color: #7b61ff; }
.tc-sop-tag.delivery { background: #ecfffe; color: #00b8d9; }

/* ==================== 新版任务卡片（原型 4 列布局） ==================== */

.tw-task-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #e6e8eb;
  border-radius: 8px;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
  position: relative;
  margin-bottom: 6px;
}

.tw-task-card:hover {
  border-color: var(--tw-text-link);
  box-shadow: 0 2px 8px color-mix(in srgb, var(--tw-text-link) 8%, transparent);
}

.tw-task-card.expanded {
  border-color: var(--tw-text-link);
  box-shadow: 0 2px 12px color-mix(in srgb, var(--tw-text-link) 12%, transparent);
}

.tw-task-card__main-row {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 18px;
}

/* 左侧紧急度边框 */
.tw-task-card.urgency-urgent {
  border-left: 3px solid #f56c6c;
}

.tw-task-card.urgency-normal {
  border-left: 3px solid #e6a23c;
}

.tw-task-card.urgency-relaxed {
  border-left: 3px solid #67c23a;
}

/* 紧急度列 */
.tc-urgency {
  width: 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  flex-shrink: 0;
}

.tc-urgency .urg-icon {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
}

.urg-icon-red { background: #fef0f0; color: #f56c6c; }
.urg-icon-orange { background: #fdf6ec; color: #e6a23c; }
.urg-icon-green { background: #f0f9eb; color: #67c23a; }
/* done 视角：已取消终态图标 */
.urg-icon.cancelled { background: #f4f5f7; color: #909399; }

.tc-urgency .urg-text {
  font-size: 9px;
  color: #909399;
}

/* 主体区 */
.tc-body {
  flex: 1;
  min-width: 0;
}

.tc-header-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 3px;
}

.tc-name {
  font-size: 13px;
  font-weight: 600;
  color: #303133;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tc-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  color: #909399;
}

.tc-meta .meta-item {
  display: flex;
  align-items: center;
  gap: 4px;
}

/* 处理状态标签 */
.status-tag {
  display: inline-flex;
  align-items: center;
  padding: 1px 8px;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.5px;
  line-height: 18px;
  background: color-mix(in srgb, currentColor 8%, transparent);
  flex-shrink: 0;
}

.status-tag.status-pending   { background: color-mix(in srgb, #e6a23c 10%, transparent); color: #e6a23c; }
.status-tag.status-processing { background: color-mix(in srgb, #409eff 10%, transparent); color: #409eff; }
.status-tag.status-completed { background: color-mix(in srgb, #67c23a 10%, transparent); color: #67c23a; }
.status-tag.status-cancelled { background: color-mix(in srgb, #909399 10%, transparent); color: #909399; }
.status-tag.status-draft     { background: color-mix(in srgb, #c0c4cc 10%, transparent); color: #c0c4cc; }
.status-tag.status-archived  { background: color-mix(in srgb, #909399 10%, transparent); color: #909399; }
.status-tag.status-returned  { background: color-mix(in srgb, #E6A23C 10%, transparent); color: #E6A23C; }

/* SLA列 */
.tc-sla {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  gap: 3px;
  flex-shrink: 0;
  white-space: nowrap;
  width: 75px;
  justify-content: flex-end;
}

.tc-sla .sla-time {
  font-size: 13px;
  font-weight: 700;
}

.tc-sla .sla-time-red { color: #f56c6c; }
.tc-sla .sla-time-orange { color: #e6a23c; }
.tc-sla .sla-time-green { color: #67c23a; }

.tc-sla .sla-label {
  font-size: 10px;
  color: #909399;
}

/* 操作区 */
.tc-actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
  justify-content: flex-end;
}

.tc-btn {
  height: 28px;
  padding: 0 12px;
  border-radius: 4px;
  font-size: 12px;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
  border: 1px solid transparent;
  white-space: nowrap;
  line-height: 26px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.tc-btn.primary {
  background: var(--tw-text-link);
  color: #fff;
  border-color: var(--tw-text-link);
}

.tc-btn.primary:hover {
  background: var(--tw-brand-7);
}

/* 描边按钮 — 统一风格 */
.tc-btn.outlined {
  background: transparent;
  color: #606266;
  border: 1px solid #dcdfe6;
}

.tc-btn.outlined:hover {
  color: var(--tw-text-link);
  border-color: var(--tw-text-link);
  background: color-mix(in srgb, var(--tw-text-link) 6%, transparent);
}

.tc-btn.outlined.danger {
  color: var(--tw-brand-7);
  border-color: var(--tw-brand-7);
}

.tc-btn.outlined.danger:hover {
  color: #fff;
  background: var(--tw-brand-7);
  border-color: var(--tw-brand-7);
}

/* 方案C: 退回/重新发送 橙色主按钮 */
.tc-btn.primary.return-btn {
  background: #E6A23C;
  border-color: #E6A23C;
}
.tc-btn.primary.return-btn:hover {
  background: #C98A2E;
  border-color: #C98A2E;
}

/* 纯文字按钮（兼容保留） */
.tc-btn.text {
  background: transparent;
  color: #909399;
  border: none;
}

.tc-btn.text:hover {
  color: var(--tw-text-link);
}

.tc-btn.text.danger {
  color: var(--tw-brand-7);
}

.tc-btn.text.danger:hover {
  color: var(--tw-brand-8);
  background: color-mix(in srgb, var(--tw-brand-1) 50%, transparent);
}

/* 草稿标识 */
.draft-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 1px 8px;
  border-radius: 10px;
  font-size: 10px;
  font-weight: 600;
  background: #fdf6ec;
  color: #e6a23c;
  border: 1px solid #f5dab1;
}

/* 归档标识 */
.archived-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 1px 8px;
  border-radius: 10px;
  font-size: 10px;
  font-weight: 600;
  background: #f4f4f5;
  color: #909399;
  border: 1px solid #dcdfe6;
}

/* 审批任务标识（对齐原型绿色"审批"标签） */
.review-tag {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 1px 8px;
  border-radius: 10px;
  font-size: 10px;
  font-weight: 600;
  background: #f0f9eb;
  color: #67c23a;
  border: 1px solid #c2e7b0;
}

/* 归档任务卡片 — 整体灰化 + 禁用交互 */
.task-card.archived {
  opacity: 0.7;
  border-left-color: #c0c4cc;
  background: #fafafa;
}
.task-card.archived:hover {
  box-shadow: none;
  transform: none;
}

/* ==================== 方案C: 退回状态卡片 ==================== */

.task-card.returned {
  border-left-color: #E6A23C;
  background: linear-gradient(135deg, rgba(230,162,60,0.02) 0%, transparent 60%);
}
.task-card.returned:hover {
  box-shadow: 0 2px 12px rgba(230,162,60,.12);
}

/* assignee-flow 组件：~~旧处理人~~ → 当前待办人 */
.assignee-flow {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: var(--tw-text-tertiary, #86909C);
  padding: 2px 8px;
  background: var(--tw-bg, #F5F6F8);
  border-radius: 10px;
  font-weight: 500;
}
.assignee-flow .af-arrow {
  color: var(--tw-text-link);
  font-size: 12px;
  font-weight: 700;
}
.assignee-flow .af-current {
  color: var(--tw-text-link);
  font-weight: 600;
}
.assignee-flow .af-prev {
  color: var(--tw-text-tertiary, #86909C);
  text-decoration: line-through;
  text-decoration-color: rgba(0,0,0,.2);
}

/* 退回提示条（展开区顶部） */
.returned-banner {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: color-mix(in srgb, #E6A23C 6%, transparent);
  border: 1px solid color-mix(in srgb, #E6A23C 15%, transparent);
  border-radius: 6px;
  margin-bottom: 10px;
  font-size: 12px;
  color: #E6A23C;
}
.returned-banner .rb-icon {
  font-size: 14px;
  flex-shrink: 0;
}
.returned-banner .rb-text {
  flex: 1;
}
.returned-banner .rb-text strong {
  font-weight: 600;
}
.returned-banner .rb-action {
  color: var(--tw-text-link);
  cursor: pointer;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* 方案C: 快捷操作按钮扩展 */
.tc-quick-btn.return-action {
  background: color-mix(in srgb, #E6A23C 8%, transparent);
  color: #E6A23C;
  border-color: #E6A23C;
}
.tc-quick-btn.return-action:hover {
  background: #E6A23C;
  color: #fff;
}
.tc-quick-btn.neutral {
  background: var(--tw-bg, #F5F6F8);
  color: var(--tw-text-secondary, #4E5969);
  border-color: #E5E6EB;
}
.tc-quick-btn.neutral:hover {
  border-color: var(--tw-text-link);
  color: var(--tw-text-link);
}

/* ==================== 方案C: 流转时间线 ==================== */

.flow-timeline {
  position: relative;
  padding: 4px 0 2px;
  margin-bottom: 10px;
}
.flow-timeline .tl-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  position: relative;
  padding-bottom: 14px;
  padding-left: 4px;
}
.flow-timeline .tl-item:last-child {
  padding-bottom: 0;
}
.flow-timeline .tl-item:last-child .tl-line {
  display: none;
}

.flow-timeline .tl-node {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  flex-shrink: 0;
  z-index: 1;
  position: relative;
  font-weight: 600;
  color: #fff;
}
.flow-timeline .tl-node.create    { background: #c0c4cc; }
.flow-timeline .tl-node.submit    { background: var(--tw-text-link, #1B65B9); }
.flow-timeline .tl-node.start     { background: #409eff; }
.flow-timeline .tl-node.complete  { background: #67c23a; }
.flow-timeline .tl-node.return    { background: #E6A23C; }
.flow-timeline .tl-node.resubmit  { background: var(--tw-text-link, #1B65B9); }
.flow-timeline .tl-node.transfer  { background: #7b61ff; }
.flow-timeline .tl-node.recall    { background: #909399; }
.flow-timeline .tl-node.cancel    { background: #909399; }
.flow-timeline .tl-node.waiting   {
  background: transparent;
  border: 2px dashed #C9CDD4;
  color: #C9CDD4;
}

.flow-timeline .tl-line {
  position: absolute;
  left: 15px;
  top: 22px;
  bottom: 0;
  width: 2px;
  background: #E5E6EB;
}
.flow-timeline .tl-line.return-line {
  background: #E6A23C;
  opacity: .4;
}
.flow-timeline .tl-line.transfer-line {
  background: #7b61ff;
  opacity: .3;
}

.flow-timeline .tl-content {
  flex: 1;
  min-width: 0;
  padding-top: 1px;
}
.flow-timeline .tl-header {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 2px;
}
.flow-timeline .tl-actor {
  font-size: 12px;
  font-weight: 600;
  color: var(--tw-text-primary, #1D2129);
}
.flow-timeline .tl-action {
  font-size: 12px;
  color: var(--tw-text-secondary, #4E5969);
}
.flow-timeline .tl-action .target {
  color: var(--tw-text-link);
  font-weight: 500;
}
.flow-timeline .tl-action .return-text {
  color: #E6A23C;
  font-weight: 500;
}
.flow-timeline .tl-action .transfer-text {
  color: #7b61ff;
  font-weight: 500;
}
.flow-timeline .tl-time {
  font-size: 11px;
  color: #C9CDD4;
  margin-left: auto;
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
}
.flow-timeline .tl-reason {
  margin-top: 4px;
  font-size: 12px;
  color: #E6A23C;
  background: color-mix(in srgb, #E6A23C 6%, transparent);
  padding: 6px 10px;
  border-radius: 6px;
  border-left: 3px solid #E6A23C;
  line-height: 1.5;
}
.flow-timeline .tl-reason .reason-label {
  font-weight: 600;
  margin-right: 4px;
}
.flow-timeline .tl-waiting-text {
  font-size: 12px;
  color: var(--tw-text-tertiary, #86909C);
  font-style: italic;
  padding-top: 2px;
}
.task-card.archived .tc-name {
  color: #909399;
  text-decoration: line-through;
}
.task-card.archived .tc-meta {
  opacity: 0.6;
}
.task-card.archived .urg-icon.grey {
  background: #f4f4f5;
  color: #909399;
}

/* 展开区域 */
.tc-expand {
  border-top: 1px solid #E6E8EB;
  padding: 12px 18px;
  animation: expandSlide 0.2s ease;
  background: #FAFAFA;
  border-radius: 0 0 8px 8px;
}

.tc-expand-summary {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}

.expand-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.expand-label {
  font-size: 11px;
  color: #909399;
  text-transform: uppercase;
}

.expand-value {
  font-size: 13px;
  color: #303133;
  font-weight: 500;
}

.tc-expand-sla {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.sla-detail {
  font-size: 14px;
  font-weight: 600;
}
.sla-detail-red { color: #F56C6C; }
.sla-detail-orange { color: #E6A23C; }
.sla-detail-green { color: #67C23A; }

.tc-expand-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

/* 处理情况区块 */
.tc-expand-result {
  margin: 10px 0;
  padding: 10px 12px;
  background: #F0F7FF;
  border-radius: 6px;
  border: 1px solid #D4E8FF;
}
.tc-expand-result .expand-label {
  margin-bottom: 8px;
  font-weight: 600;
  color: #606266;
}
.tc-expand-result .result-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 6px;
  font-size: 13px;
  line-height: 1.6;
}
.tc-expand-result .result-item:last-child {
  margin-bottom: 0;
}
.tc-expand-result .result-icon {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #67C23A;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  margin-top: 2px;
}
.tc-expand-result .result-text {
  font-weight: 600;
  color: #303133;
}
.tc-expand-result .result-label {
  flex-shrink: 0;
  color: #909399;
  font-size: 12px;
  min-width: 60px;
}
.tc-expand-result .result-value {
  color: #303133;
  font-size: 13px;
  word-break: break-all;
}
.tc-expand-result .result-output-data {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.tc-expand-result .output-data-entry {
  font-size: 12px;
  line-height: 1.5;
}
.tc-expand-result .output-data-key {
  color: #909399;
  margin-right: 4px;
}
.tc-expand-result .output-data-val {
  color: #303133;
}
.tc-expand-result .output-data-more {
  font-size: 11px;
  color: #C0C4CC;
  margin-top: 2px;
}
.tc-expand-result .result-attachments {
  margin: 0;
  padding: 0;
  list-style: none;
}
.tc-expand-result .result-attachments li {
  font-size: 12px;
  color: #606266;
  line-height: 1.8;
}

.tc-quick-btn {
  padding: 5px 14px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.15s;
  border: 1px solid;
}
.tc-quick-btn:hover {
  opacity: 0.85;
  transform: translateY(-1px);
}

.tc-quick-btn.approve {
  background: #F0F9EB;
  color: #67C23A;
  border-color: #67C23A;
}
.tc-quick-btn.reject {
  background: #FEF0F0;
  color: #F56C6C;
  border-color: #F56C6C;
}
.tc-quick-btn.supplement {
  background: #FDF6EC;
  color: #E6A23C;
  border-color: #E6A23C;
}
.tc-quick-btn.transfer {
  background: var(--tw-brand-1);
  color: var(--tw-text-link);
  border-color: var(--tw-text-link);
}

@keyframes expandSlide {
  from {
    opacity: 0;
    max-height: 0;
  }
  to {
    opacity: 1;
    max-height: 200px;
  }
}

/* ==================== 任务监控面板 ==================== */

.monitor-content {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.monitor-content .rp-section:last-child {
  margin-bottom: 0;
}

/* 输入输出查看器 */
.io-viewer {
  background: #f9f9f9;
  border: 1px solid #e8e8e8;
  border-radius: 6px;
  padding: 8px 12px;
  font-size: 12px;
}

.io-row {
  display: flex;
  align-items: flex-start;
  padding: 4px 0;
  border-bottom: 1px dashed #eee;
  gap: 8px;
}

.io-row:last-child {
  border-bottom: none;
}

.io-key {
  font-weight: 600;
  color: #606266;
  min-width: 80px;
  flex-shrink: 0;
}

.io-value {
  color: #303133;
  word-break: break-all;
  white-space: pre-wrap;
  flex: 1;
  min-width: 0;
}

/* 下一步处理卡片 */
.next-step-card {
  background: var(--tw-brand-1);
  border: 1px solid var(--tw-brand-2);
  border-radius: 6px;
  padding: 12px;
}

.ns-step-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

.ns-step-num {
  font-size: 13px;
  font-weight: 600;
  color: var(--tw-text-link);
}

.ns-step-executor {
  font-size: 12px;
  color: #606266;
  margin-bottom: 6px;
}

.ns-step-config {
  margin-top: 4px;
}

.ns-step-config .io-viewer {
  background: #fff;
  border-color: var(--tw-brand-2);
}

/* ==================== 任务对话 Tab 栏 ==================== */

.tw-task-tabs {
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 0 12px;
  border-bottom: 1px solid #e6e8eb;
  background: #fafafa;
  flex-shrink: 0;
  overflow-x: auto;
  min-height: 40px;
}

.tw-task-tabs::-webkit-scrollbar {
  height: 0;
}

.tw-task-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  font-size: 13px;
  color: #606266;
  background: #fff;
  border: 1px solid #e6e8eb;
  border-bottom: none;
  border-radius: 6px 6px 0 0;
  cursor: pointer;
  transition: all 0.2s;
  user-select: none;
  max-width: 200px;
  position: relative;
  bottom: -1px;
}

.tw-task-tab:hover {
  color: var(--tw-text-link);
  border-color: var(--tw-text-link);
}

.tw-task-tab--active {
  color: var(--tw-text-link);
  background: var(--tw-brand-1);
  border-color: var(--tw-text-link);
  font-weight: 500;
  z-index: 1;
}

.tw-task-tab__title {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tw-task-tab__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border: none;
  background: transparent;
  color: #c0c4cc;
  cursor: pointer;
  border-radius: 50%;
  font-size: 10px;
  line-height: 1;
  transition: all 0.2s;
  padding: 0;
}

.tw-task-tab__close:hover {
  color: #f56c6c;
  background: #fef0f0;
}

/* ==================== 操作历史 Tab (纯文本列表，参考 SOP 全貌) ==================== */

.history-tab-header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 12px;
}

.history-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.history-list-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 6px;
  border: 1px solid var(--border-default);
}

.history-list-item:hover {
  background: var(--tw-bg-tertiary);
}

.history-list-marker {
  flex-shrink: 0;
  width: 14px;
  font-size: 10px;
  line-height: 18px;
  text-align: center;
  color: var(--text-tertiary);
}

.history-list-marker--blue    { color: #1890ff; }
.history-list-marker--green   { color: #52c41a; }
.history-list-marker--red     { color: #ff4d4f; }
.history-list-marker--orange  { color: #fa8c16; }
.history-list-marker--purple  { color: #722ed1; }
.history-list-marker--cyan    { color: #13c2c2; }
.history-list-marker--gray    { color: var(--text-tertiary); }

.history-list-content {
  flex: 1;
  min-width: 0;
}

.history-list-main {
  font-size: 13px;
  color: var(--text-primary);
}

.history-list-action {
  font-weight: 500;
}

.history-list-meta {
  font-size: 11px;
  color: var(--text-tertiary);
  margin-top: 1px;
}

.history-list-note {
  font-size: 12px;
  color: var(--text-secondary);
  line-height: 1.5;
  margin-top: 2px;
}

/* ==================== SOP 全貌 Tab (.sop-flow-vertical) ==================== */

.sop-flow-vertical {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 16px;
}

.sop-flow-node {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 6px;
  background: #f5f7fa;
  border: 1px solid transparent;
  transition: all 0.2s;
}

.sop-flow-node--completed {
  background: #f0f9eb;
}

.sop-flow-node--current {
  background: var(--tw-brand-1);
  border: 1px solid var(--tw-brand-2);
}

.sop-flow-icon {
  font-size: 14px;
  flex-shrink: 0;
  width: 18px;
  text-align: center;
}

.sop-flow-node--completed .sop-flow-icon {
  color: #67c23a;
}

.sop-flow-node--current .sop-flow-icon {
  color: var(--tw-text-link);
}

.sop-flow-node--pending .sop-flow-icon {
  color: #c0c4cc;
}

.sop-flow-label {
  font-size: 13px;
  font-weight: 500;
  flex: 1;
  min-width: 0;
}

.sop-flow-node--completed .sop-flow-label {
  color: #67c23a;
}

.sop-flow-node--current .sop-flow-label {
  color: var(--tw-text-link);
}

.sop-flow-node--pending .sop-flow-label {
  color: #909399;
}

.sop-flow-sla {
  font-size: 11px;
  color: #f56c6c;
  font-weight: 600;
  flex-shrink: 0;
}

.sop-current-detail {
  padding: 12px;
  background: var(--tw-brand-1);
  border-radius: 6px;
  border: 1px solid var(--tw-brand-2);
}

/* ==================== 文档详情 Tab (.doc-card) ==================== */

.doc-card {
  background: #fff;
  border: 1px solid #e6e8eb;
  border-radius: 8px;
  padding: 12px 14px;
  margin-bottom: 8px;
  transition: all 0.2s;
}

.doc-card:hover {
  border-color: var(--tw-text-link);
  box-shadow: 0 2px 8px color-mix(in srgb, var(--tw-text-link) 8%, transparent);
}

.doc-card-header {
  display: flex;
  align-items: center;
  gap: 10px;
}

.doc-icon {
  width: 36px;
  height: 36px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  flex-shrink: 0;
}

.doc-icon.red {
  background: #fef0f0;
  color: #f56c6c;
}

.doc-icon.blue {
  background: var(--tw-brand-1);
  color: var(--tw-text-link);
}

.doc-icon.green {
  background: #f0f9eb;
  color: #67c23a;
}

.doc-info {
  flex: 1;
  min-width: 0;
}

.doc-name {
  font-size: 13px;
  font-weight: 500;
  color: #303133;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.doc-meta {
  font-size: 11px;
  color: #909399;
  margin-top: 2px;
}

.doc-actions {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}

/* ==================== 已完成任务视图 (.done-view) ==================== */

.done-view {
  padding: 0;
}

.dv-section {
  margin-bottom: 16px;
}

.dv-done-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  background: #f0f9eb;
  border-radius: 8px;
}

.dv-title {
  font-size: 13px;
  font-weight: 600;
  color: #303133;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.dv-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.dv-info-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 6px 8px;
  background: #f5f7fa;
  border-radius: 4px;
}

.dv-label {
  font-size: 11px;
  color: #909399;
}

.dv-value {
  font-size: 12px;
  color: #303133;
  font-weight: 500;
  word-break: break-all;
}

.dv-status-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 500;
}

.dv-status-badge.pass {
  background: #f0f9eb;
  color: #67c23a;
}

.dv-text {
  font-size: 12px;
  color: #606266;
  line-height: 1.6;
  padding: 8px;
  background: #f5f7fa;
  border-radius: 4px;
}

/* 操作历史时间线（已完成任务视图） */

.dv-timeline {
  padding-left: 12px;
  border-left: 2px solid #e6e8eb;
}

.dv-timeline-item {
  position: relative;
  padding: 6px 0 12px 12px;
}

.dv-timeline-item:last-child {
  padding-bottom: 0;
}

.dv-timeline-item::before {
  content: '';
  position: absolute;
  left: -17px;
  top: 10px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #c0c4cc;
  border: 2px solid #fff;
}

.dv-timeline-item:first-child::before {
  background: var(--tw-text-link);
}

.dv-time {
  font-size: 11px;
  color: #909399;
}

.dv-desc {
  font-size: 12px;
  color: #303133;
  font-weight: 500;
  margin-top: 2px;
}

.dv-user {
  font-size: 11px;
  color: #909399;
  margin-top: 1px;
}

/* ==================== 气泡内筛选 (.filter-row-v2) ==================== */

.filter-row-v2 {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px dashed #e6e8eb;
}

.filter-row-v2:last-child {
  border-bottom: none;
}

.filter-row-v2 .fr-label {
  font-size: 12px;
  font-weight: 600;
  color: #606266;
  white-space: nowrap;
  min-width: 56px;
}

.filter-row-v2 .fr-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  flex: 1;
}

.filter-row-v2 .fr-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 16px;
  border-radius: 4px;
  font-size: 12px;
  color: #606266;
  background: #f5f7fa;
  border: 1px solid #e6e8eb;
  cursor: pointer;
  transition: all 0.2s;
  user-select: none;
  white-space: nowrap;
}

.filter-row-v2 .fr-btn:hover {
  border-color: var(--tw-text-link);
  color: var(--tw-text-link);
  background: var(--tw-brand-1);
}

.filter-row-v2 .fr-btn.active {
  background: var(--tw-text-link);
  color: #fff;
  border-color: var(--tw-text-link);
}

/* ==================== 紧急任务区标题 (.urgent-header) ==================== */

.urgent-section {
  margin-bottom: 12px;
}

.urgent-header {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: #f56c6c;
  padding: 6px 0;
  margin-bottom: 8px;
}

.urgent-header .pulse {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #f56c6c;
  animation: pulseDot 1.5s infinite;
}

@keyframes pulseDot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.3); }
}

/* ==================== 普通任务分组标题 (.section-header) ==================== */

.section-header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
  color: #606266;
  padding: 8px 0 6px;
  margin-top: 4px;
}

.section-header .sh-count {
  color: #909399;
  font-weight: 400;
}

/* ==================== 打字指示器 (.typing-indicator) ==================== */

.typing-indicator {
  display: flex;
  gap: 4px;
  padding: 8px 0;
}

.typing-indicator span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #c0c4cc;
  animation: typingBounce 1.4s infinite;
}

.typing-indicator span:nth-child(2) {
  animation-delay: 0.2s;
}

.typing-indicator span:nth-child(3) {
  animation-delay: 0.4s;
}

@keyframes typingBounce {
  0%, 60%, 100% { transform: translateY(0); opacity: 0.4; }
  30% { transform: translateY(-6px); opacity: 1; }
}

/* ==================== 操作反馈块 (.action-feedback) ==================== */

.action-feedback {
  padding: 6px 10px;
  border-radius: 4px;
  font-size: 12px;
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
}

.action-feedback.success { background: #f0f9eb; color: #67c23a; }
.action-feedback.warning { background: #fdf6ec; color: #e6a23c; }
.action-feedback.error { background: #fef0f0; color: #f56c6c; }
.action-feedback.info { background: var(--tw-brand-1); color: var(--tw-text-link); }

/* ==================== 空状态 (.empty-state) ==================== */

.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 20px;
  color: #c0c4cc;
}

.empty-state .empty-icon {
  font-size: 48px;
  margin-bottom: 12px;
}

.empty-state .empty-text {
  font-size: 14px;
  color: #909399;
}

.empty-state .empty-desc {
  font-size: 12px;
  color: #c0c4cc;
  margin-top: 4px;
}

/* ==================== 消息时间戳 (.msg-time) ==================== */

.msg-time {
  font-size: 11px;
  color: #c0c4cc;
  margin-top: 4px;
}

/* ==================== 对话区域 (.conversation-area) ==================== */

.conversation-area {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 20px;
  background: #fafafa;
  scroll-behavior: smooth;
  min-height: 0;
}

.conversation-area::-webkit-scrollbar {
  width: 6px;
}

.conversation-area::-webkit-scrollbar-track {
  background: transparent;
}

.conversation-area::-webkit-scrollbar-thumb {
  background: #c0c4cc;
  border-radius: 3px;
}

/* ==================== 原型对齐：Agent 推荐卡片 hover ==================== */

.task-detail-content > div > div[style*="border: 1px solid #e6e8eb"]:hover {
  border-color: var(--tw-text-link) !important;
  transition: border-color 0.2s;
}

/* ==================== 原型对齐：操作栏 flexWrap 适配 ==================== */

.cp-action-btn.default {
  display: inline-flex;
  align-items: center;
}

/* ==================== 批量操作浮动工具栏 ==================== */

.batch-action-bar {
  position: sticky;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 16px;
  background: linear-gradient(to top, #fff 0%, #fff 80%, rgba(255,255,255,0.95) 100%);
  border-top: 1px solid #e6e8eb;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.06);
  z-index: 10;
  animation: bab-slide-up 0.2s ease-out;
}

@keyframes bab-slide-up {
  from { transform: translateY(100%); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}

.bab-info {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  color: #595959;
}

.bab-count strong {
  color: var(--tw-text-link);
  font-weight: 700;
}

.bab-text-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 8px;
  font-size: 12px;
  color: #595959;
  background: transparent;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.15s;
}

.bab-text-btn:hover {
  color: var(--tw-text-link);
  border-color: var(--tw-text-link);
  background: var(--tw-brand-1);
}

.bab-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.bab-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 16px;
  font-size: 13px;
  font-weight: 500;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
}

.bab-btn.primary {
  background: var(--tw-text-link);
  color: #fff;
}

.bab-btn.primary:hover:not(:disabled) {
  background: var(--tw-brand-7);
}

.bab-btn.danger {
  background: #fff;
  color: #F56C6C;
  border: 1px solid #F56C6C;
}

.bab-btn.danger:hover:not(:disabled) {
  background: #fff2f0;
}

.bab-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* ==========================================================================
   DARK MODE — 覆盖所有硬编码浅色值
   ========================================================================== */

[data-theme="dark"] .tw-workbench {
  background: var(--surface-base);
}

[data-theme="dark"] .content-panel {
  background: var(--surface-base);
  border-left-color: var(--border-default);
}

/* --- 页面头部 --- */
[data-theme="dark"] .page-header {
  background: var(--surface-base);
  border-bottom-color: var(--border-default);
}

[data-theme="dark"] .page-header .ph-title {
  color: var(--text-primary);
}

[data-theme="dark"] .page-header .ph-title::before {
  background: var(--tw-text-link);
}

[data-theme="dark"] .page-header .ph-badge {
  background: var(--tw-status-error);
  color: #fff;
}

[data-theme="dark"] .page-header .ph-breadcrumb {
  color: var(--text-secondary);
}

[data-theme="dark"] .page-header .ph-breadcrumb span:hover {
  color: var(--tw-text-link);
}

[data-theme="dark"] .page-header .ph-breadcrumb .current {
  color: var(--text-primary);
}

[data-theme="dark"] .ph-breadcrumb-sep {
  color: var(--text-tertiary);
}

[data-theme="dark"] .page-header .ph-status {
  color: var(--text-secondary);
}

[data-theme="dark"] .page-header .ph-dot.online {
  background: var(--tw-status-success);
}

[data-theme="dark"] .page-header .ph-dot.running {
  background: var(--tw-status-warning, #faad14);
}

[data-theme="dark"] .page-header .ph-status.executing {
  color: var(--tw-status-warning, #faad14);
}

[data-theme="dark"] .page-header .ph-user {
  background: var(--tw-text-link);
  color: #fff;
}

/* --- 任务列表 --- */
[data-theme="dark"] .tw-task-list {
  background: var(--tw-bg-tertiary);
}

[data-theme="dark"] .list-toolbar {
  background: var(--surface-base);
  border-bottom-color: var(--border-default);
}

[data-theme="dark"] .stat-pill {
  background: var(--surface-base);
  border-color: var(--border-default);
  color: var(--text-secondary);
}

[data-theme="dark"] .stat-pill:hover {
  border-color: var(--tw-text-link);
}

[data-theme="dark"] .stat-pill.active {
  background: var(--tw-text-link);
  color: #fff;
  border-color: var(--tw-text-link);
}

[data-theme="dark"] .filter-bar {
  background: var(--surface-base);
  border-bottom-color: var(--border-default);
}

[data-theme="dark"] .filter-label {
  color: var(--text-secondary);
}

[data-theme="dark"] .filter-btn {
  background: var(--tw-bg-tertiary);
  border-color: var(--border-default);
  color: var(--text-secondary);
}

[data-theme="dark"] .filter-btn:hover {
  border-color: var(--tw-text-link);
  color: var(--tw-text-link);
}

[data-theme="dark"] .filter-btn.active {
  background: var(--tw-text-link);
  color: #fff;
  border-color: var(--tw-text-link);
}

[data-theme="dark"] .fr-btn {
  background: var(--tw-bg-tertiary);
  color: var(--text-secondary);
}

[data-theme="dark"] .fr-btn:hover {
  background: color-mix(in srgb, var(--tw-text-link) 10%, transparent);
  color: var(--text-primary);
}

[data-theme="dark"] .fr-btn.active {
  background: var(--tw-text-link);
  color: #fff;
}

[data-theme="dark"] .filter-row-label {
  color: var(--text-secondary);
}

[data-theme="dark"] .task-list-scroll::-webkit-scrollbar-thumb {
  background: var(--tw-scrollbar-thumb);
}

[data-theme="dark"] .tw-task-list__loading,
[data-theme="dark"] .tw-task-list__empty {
  background: var(--tw-bg-tertiary);
}

[data-theme="dark"] .tw-task-list__pagination {
  color: var(--text-tertiary);
}

/* --- 对话气泡式列表 --- */
[data-theme="dark"] .tw-chat-list-view {
  background: var(--tw-bg-tertiary);
}

[data-theme="dark"] .tw-chat-list-view__conversation::-webkit-scrollbar-thumb {
  background: var(--tw-scrollbar-thumb);
}

[data-theme="dark"] .tw-chat-list-view__footer {
  background: var(--surface-base);
  border-top-color: var(--border-default);
}

[data-theme="dark"] .pagination-hint {
  color: var(--text-secondary);
}

[data-theme="dark"] .chat-avatar {
  background: color-mix(in srgb, var(--tw-text-link) 15%, transparent);
}

[data-theme="dark"] .chat-bubble {
  background: var(--surface-card);
  border-color: var(--border-default);
  color: var(--text-primary);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

[data-theme="dark"] .chat-alert,
[data-theme="dark"] .text-danger {
  color: var(--tw-status-error);
}

[data-theme="dark"] .bubble-toolbar {
  border-bottom-color: var(--border-default);
}

/* --- 任务分组 --- */
[data-theme="dark"] .task-group + .task-group {
  border-top-color: var(--border-default);
}

[data-theme="dark"] .task-group__header {
  color: var(--text-secondary);
}

[data-theme="dark"] .task-group__header.urgent { color: var(--tw-status-error); }
[data-theme="dark"] .task-group__header.normal { color: var(--tw-status-warning); }
[data-theme="dark"] .task-group__header.relaxed { color: var(--tw-status-success); }

[data-theme="dark"] .task-group__dot {
  background: var(--text-tertiary);
}

[data-theme="dark"] .task-group__header.urgent .task-group__dot {
  background: var(--tw-status-error);
}

[data-theme="dark"] .task-group__header.normal .task-group__dot { background: var(--tw-status-warning); }
[data-theme="dark"] .task-group__header.relaxed .task-group__dot { background: var(--tw-status-success); }

[data-theme="dark"] .task-group__count {
  background: var(--tw-bg-tertiary);
  color: var(--text-secondary);
}

/* --- 任务卡片 --- */
[data-theme="dark"] .tw-task-card {
  background: var(--surface-card);
  border-color: var(--border-default);
}

[data-theme="dark"] .tw-task-card:hover,
[data-theme="dark"] .tw-task-card.expanded {
  border-color: var(--tw-text-link);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

[data-theme="dark"] .tw-task-card__footer {
  border-top-color: var(--border-default);
}

/* --- 任务卡片新版 --- */
[data-theme="dark"] .tw-task-card.urgency-urgent { border-left-color: var(--tw-status-error); }
[data-theme="dark"] .tw-task-card.urgency-normal { border-left-color: var(--tw-status-warning); }
[data-theme="dark"] .tw-task-card.urgency-relaxed { border-left-color: var(--tw-status-success); }

[data-theme="dark"] .urg-icon-red { background: rgba(245, 108, 108, 0.15); color: var(--tw-status-error); }
[data-theme="dark"] .urg-icon-orange { background: rgba(230, 162, 60, 0.15); color: var(--tw-status-warning); }
[data-theme="dark"] .urg-icon-green { background: rgba(103, 194, 58, 0.15); color: var(--tw-status-success); }
[data-theme="dark"] .urg-icon.cancelled { background: rgba(144, 147, 153, 0.15); color: var(--text-tertiary); }

[data-theme="dark"] .tc-urgency .urg-text,
[data-theme="dark"] .tc-meta,
[data-theme="dark"] .tc-sla .sla-label,
[data-theme="dark"] .expand-label,
[data-theme="dark"] .doc-meta,
[data-theme="dark"] .dv-label {
  color: var(--text-secondary);
}

[data-theme="dark"] .tc-name,
[data-theme="dark"] .expand-value,
[data-theme="dark"] .doc-name,
[data-theme="dark"] .dv-value,
[data-theme="dark"] .dv-desc,
[data-theme="dark"] .io-value,
[data-theme="dark"] .rp-section-title {
  color: var(--text-primary);
}

[data-theme="dark"] .tc-sla .sla-time-red,
[data-theme="dark"] .sla-detail-red,
[data-theme="dark"] .urgent-header,
[data-theme="dark"] .sop-flow-sla {
  color: var(--tw-status-error);
}

[data-theme="dark"] .tc-sla .sla-time-orange,
[data-theme="dark"] .sla-detail-orange {
  color: var(--tw-status-warning);
}

[data-theme="dark"] .tc-sla .sla-time-green,
[data-theme="dark"] .sla-detail-green {
  color: var(--tw-status-success);
}

/* --- 按钮 --- */
[data-theme="dark"] .tc-btn.primary,
[data-theme="dark"] .cp-action-btn.primary,
[data-theme="dark"] .send-btn,
[data-theme="dark"] .bab-btn.primary {
  background: var(--tw-text-link);
  color: #fff;
  border-color: var(--tw-text-link);
}

[data-theme="dark"] .tc-btn.primary:hover,
[data-theme="dark"] .cp-action-btn.primary:hover,
[data-theme="dark"] .send-btn:hover {
  background: var(--tw-brand-7);
}

[data-theme="dark"] .tc-btn.text,
[data-theme="dark"] .cp-action-btn.text {
  color: var(--text-secondary);
}

[data-theme="dark"] .tc-btn.text:hover,
[data-theme="dark"] .cp-action-btn.text:hover {
  color: var(--tw-text-link);
}

[data-theme="dark"] .cp-action-btn.default {
  background: var(--surface-card);
  color: var(--text-secondary);
  border-color: var(--border-default);
}

[data-theme="dark"] .cp-action-btn.default:hover {
  border-color: var(--tw-text-link);
  color: var(--tw-text-link);
}

[data-theme="dark"] .cp-action-btn.success {
  background: var(--tw-status-success);
  color: #fff;
  border-color: var(--tw-status-success);
}

[data-theme="dark"] .cp-action-btn.danger {
  background: transparent;
  color: var(--tw-status-error);
  border-color: var(--tw-status-error);
}

[data-theme="dark"] .cp-action-btn.danger:hover {
  background: var(--tw-status-error);
  color: #fff;
}

[data-theme="dark"] .send-btn:disabled {
  background: var(--text-tertiary);
  border-color: var(--text-tertiary);
}

/* --- 草稿/标签 --- */
[data-theme="dark"] .draft-badge {
  background: rgba(230, 162, 60, 0.15);
  color: var(--tw-status-warning);
  border-color: rgba(230, 162, 60, 0.3);
}

/* --- 归档 --- */
[data-theme="dark"] .archived-badge {
  background: rgba(144, 147, 153, 0.15);
  color: var(--text-tertiary);
  border-color: rgba(144, 147, 153, 0.3);
}
[data-theme="dark"] .task-card.archived {
  background: var(--bg-secondary, #1e1e1e);
  border-left-color: var(--text-tertiary, #555);
}
[data-theme="dark"] .task-card.archived .tc-name {
  color: var(--text-tertiary);
}
[data-theme="dark"] .task-card.archived .urg-icon.grey {
  background: rgba(144, 147, 153, 0.15);
  color: var(--text-tertiary);
}

/* 方案C: 暗色模式 — 退回状态 */
[data-theme="dark"] .task-card.returned {
  background: linear-gradient(135deg, rgba(230,162,60,0.06) 0%, transparent 60%);
  border-left-color: var(--tw-status-warning, #E6A23C);
}
[data-theme="dark"] .task-card.returned:hover {
  box-shadow: 0 2px 12px rgba(230,162,60,.18);
}
[data-theme="dark"] .assignee-flow {
  background: var(--bg-secondary, #1e1e1e);
  color: var(--text-tertiary);
}
[data-theme="dark"] .returned-banner {
  background: rgba(230,162,60,0.08);
  border-color: rgba(230,162,60,0.2);
  color: var(--tw-status-warning, #E6A23C);
}
[data-theme="dark"] .tc-quick-btn.return-action {
  background: rgba(230,162,60,0.12);
  color: var(--tw-status-warning, #E6A23C);
  border-color: var(--tw-status-warning, #E6A23C);
}
[data-theme="dark"] .tc-quick-btn.return-action:hover {
  background: var(--tw-status-warning, #E6A23C);
  color: #fff;
}
[data-theme="dark"] .tc-quick-btn.neutral {
  background: var(--bg-secondary, #1e1e1e);
  color: var(--text-secondary);
  border-color: var(--border-default, #363636);
}
[data-theme="dark"] .flow-timeline .tl-node.create { background: #555; }
[data-theme="dark"] .flow-timeline .tl-node.waiting {
  border-color: #555;
  color: #555;
}
[data-theme="dark"] .flow-timeline .tl-line { background: #363636; }
[data-theme="dark"] .flow-timeline .tl-actor { color: var(--text-primary, #e0e0e0); }
[data-theme="dark"] .flow-timeline .tl-action { color: var(--text-secondary, #aaa); }
[data-theme="dark"] .flow-timeline .tl-time { color: #555; }
[data-theme="dark"] .flow-timeline .tl-reason {
  background: rgba(230,162,60,0.08);
  color: var(--tw-status-warning, #E6A23C);
}
[data-theme="dark"] .flow-timeline .tl-waiting-text { color: var(--text-tertiary, #888); }

[data-theme="dark"] .tc-sop-tag.lead,
[data-theme="dark"] .tw-sop-tag.lead {
  background: color-mix(in srgb, var(--tw-text-link) 15%, transparent);
  color: var(--tw-text-link);
}

[data-theme="dark"] .tc-sop-tag.opp {
  background: rgba(230, 162, 60, 0.15);
  color: var(--tw-status-warning);
}

[data-theme="dark"] .tc-sop-tag.contract {
  background: rgba(103, 194, 58, 0.15);
  color: var(--tw-status-success);
}

[data-theme="dark"] .tc-sop-tag.customer {
  background: rgba(123, 97, 255, 0.15);
  color: #9b8aff;
}

[data-theme="dark"] .tc-sop-tag.delivery {
  background: rgba(0, 184, 217, 0.15);
  color: #4dd0e1;
}

/* --- 展开区域 --- */
[data-theme="dark"] .tc-expand {
  background: var(--tw-bg-tertiary);
  border-top-color: var(--border-default);
}

[data-theme="dark"] .tc-expand-result {
  background: color-mix(in srgb, var(--tw-bg-tertiary) 80%, var(--tw-text-link) 8%);
  border-color: var(--border-default);
}
[data-theme="dark"] .tc-expand-result .expand-label {
  color: var(--tw-text-secondary);
}
[data-theme="dark"] .tc-expand-result .result-text,
[data-theme="dark"] .tc-expand-result .result-value,
[data-theme="dark"] .tc-expand-result .output-data-val {
  color: var(--tw-text-primary);
}
[data-theme="dark"] .tc-expand-result .result-label,
[data-theme="dark"] .tc-expand-result .output-data-key {
  color: var(--tw-text-secondary);
}
[data-theme="dark"] .tc-expand-result .result-attachments li {
  color: var(--tw-text-secondary);
}

/* --- 快捷按钮 --- */
[data-theme="dark"] .tc-quick-btn.approve {
  background: rgba(103, 194, 58, 0.12);
  color: var(--tw-status-success);
  border-color: var(--tw-status-success);
}

[data-theme="dark"] .tc-quick-btn.reject {
  background: rgba(245, 108, 108, 0.12);
  color: var(--tw-status-error);
  border-color: var(--tw-status-error);
}

[data-theme="dark"] .tc-quick-btn.supplement {
  background: rgba(230, 162, 60, 0.12);
  color: var(--tw-status-warning);
  border-color: var(--tw-status-warning);
}

[data-theme="dark"] .tc-quick-btn.transfer {
  background: color-mix(in srgb, var(--tw-text-link) 12%, transparent);
  color: var(--tw-text-link);
  border-color: var(--tw-text-link);
}

/* --- 右侧面板 --- */
[data-theme="dark"] .tw-content-panel {
  background: var(--surface-base);
  border-left-color: var(--border-default);
}

[data-theme="dark"] .tw-exec-view__panel {
  background: var(--surface-base);
  border-left-color: var(--border-default);
}

[data-theme="dark"] .tw-panel-toggle {
  background: var(--surface-base);
  border-color: var(--border-default);
  color: var(--text-secondary);
}

[data-theme="dark"] .tw-panel-toggle:hover {
  background: color-mix(in srgb, var(--tw-text-link) 10%, transparent);
  color: var(--tw-text-link);
}

[data-theme="dark"] .tw-resize-handle .resize-indicator {
  background: var(--text-tertiary);
}

/* --- Tab 栏 --- */
[data-theme="dark"] .right-tabs-bar,
[data-theme="dark"] .iz-tab-bar,
[data-theme="dark"] .cp-sub-tabs,
[data-theme="dark"] .tw-task-tabs {
  background: var(--tw-bg-tertiary);
  border-bottom-color: var(--border-default);
}

[data-theme="dark"] .right-tab,
[data-theme="dark"] .iz-tab,
[data-theme="dark"] .cp-sub-tab,
[data-theme="dark"] .tw-task-tab {
  color: var(--text-secondary);
}

[data-theme="dark"] .right-tab:hover,
[data-theme="dark"] .iz-tab:hover,
[data-theme="dark"] .cp-sub-tab:hover {
  color: var(--text-primary);
}

[data-theme="dark"] .right-tab.active,
[data-theme="dark"] .iz-tab.active,
[data-theme="dark"] .cp-sub-tab.active,
[data-theme="dark"] .tw-task-tab--active {
  color: var(--tw-text-link);
  border-bottom-color: var(--tw-text-link);
  background: var(--surface-base);
}

[data-theme="dark"] .tw-task-tab {
  background: var(--surface-card);
  border-color: var(--border-default);
}

[data-theme="dark"] .tw-task-tab:hover {
  color: var(--tw-text-link);
  border-color: var(--tw-text-link);
}

[data-theme="dark"] .right-tab .tab-close,
[data-theme="dark"] .tw-task-tab__close {
  color: var(--text-tertiary);
}

[data-theme="dark"] .right-tab .tab-close:hover,
[data-theme="dark"] .tw-task-tab__close:hover {
  color: var(--tw-status-error);
  background: rgba(245, 108, 108, 0.12);
}

[data-theme="dark"] .iz-tab .tab-badge {
  background: var(--tw-status-error);
  color: #fff;
}

[data-theme="dark"] .rtb-arrow {
  background: var(--surface-base);
  color: var(--text-secondary);
}

[data-theme="dark"] .rtb-arrow:hover {
  color: var(--tw-text-link);
  background: var(--tw-bg-tertiary);
}

[data-theme="dark"] .rtb-arrow.disabled {
  color: var(--text-tertiary);
}

[data-theme="dark"] .rtb-arrow.left {
  border-right-color: var(--border-default);
}

[data-theme="dark"] .rtb-arrow.right {
  border-left-color: var(--border-default);
}

/* --- 步骤导航 --- */
[data-theme="dark"] .cp-step-nav {
  background: var(--surface-base);
  border-bottom-color: var(--border-default);
}

[data-theme="dark"] .cp-step:hover {
  background: color-mix(in srgb, var(--tw-text-link) 10%, transparent);
}

[data-theme="dark"] .cp-step.active {
  background: color-mix(in srgb, var(--tw-text-link) 15%, transparent);
}

[data-theme="dark"] .cp-step-circle {
  background: var(--tw-bg-tertiary);
  color: var(--text-secondary);
}

[data-theme="dark"] .cp-step.done .cp-step-circle {
  background: var(--tw-status-success);
  color: #fff;
}

[data-theme="dark"] .cp-step.active .cp-step-circle {
  background: var(--tw-text-link);
  color: #fff;
}

[data-theme="dark"] .cp-step-name {
  color: var(--text-primary);
}

[data-theme="dark"] .cp-step.active .cp-step-name {
  color: var(--tw-text-link);
}

[data-theme="dark"] .cp-step.done .cp-step-name {
  color: var(--tw-status-success);
}

[data-theme="dark"] .cp-step-sep {
  background: var(--border-default);
}

/* --- 面板标题/内容 --- */
[data-theme="dark"] .cp-header {
  background: var(--surface-base);
  border-bottom-color: var(--border-default);
}

[data-theme="dark"] .cp-header .cp-title {
  color: var(--text-primary);
}

[data-theme="dark"] .cp-header .cp-title::before {
  background: var(--tw-text-link);
}

[data-theme="dark"] .cp-header .cp-subtitle {
  color: var(--text-secondary);
}

[data-theme="dark"] .cp-data-source {
  background: color-mix(in srgb, var(--tw-text-link) 10%, transparent);
  border-bottom-color: color-mix(in srgb, var(--tw-text-link) 30%, transparent);
  color: var(--tw-text-link);
}

[data-theme="dark"] .cp-data-source .ds-icon {
  background: var(--tw-text-link);
  color: #fff;
}

[data-theme="dark"] .cp-body::-webkit-scrollbar-thumb,
[data-theme="dark"] .tw-conversation-area::-webkit-scrollbar-thumb,
[data-theme="dark"] .conversation-area::-webkit-scrollbar-thumb {
  background: var(--tw-scrollbar-thumb);
}

/* --- 底部操作栏 --- */
[data-theme="dark"] .cp-actions-bar {
  background: var(--tw-bg-tertiary);
  border-top-color: var(--border-default);
}

/* --- 流转路径 --- */
[data-theme="dark"] .flow-path {
  background: var(--tw-bg-tertiary);
}

[data-theme="dark"] .flow-node {
  background: var(--surface-card);
  border-color: var(--border-default);
  color: var(--text-primary);
}

[data-theme="dark"] .flow-node.active {
  background: color-mix(in srgb, var(--tw-text-link) 15%, transparent);
  border-color: var(--tw-text-link);
  color: var(--tw-text-link);
}

[data-theme="dark"] .flow-node.done {
  background: rgba(103, 194, 58, 0.12);
  border-color: var(--tw-status-success);
  color: var(--tw-status-success);
}

[data-theme="dark"] .flow-node.skip {
  background: var(--tw-bg-tertiary);
  color: var(--text-tertiary);
}

[data-theme="dark"] .flow-arrow {
  color: var(--text-tertiary);
}

/* --- 对话区域 --- */
[data-theme="dark"] .tw-conversation-area,
[data-theme="dark"] .conversation-area {
  background: var(--surface-base);
}

[data-theme="dark"] .tw-conversation-area__loading {
  color: var(--text-tertiary);
}

[data-theme="dark"] .tw-message--agent .tw-message__avatar {
  background: linear-gradient(135deg, var(--tw-text-link), var(--tw-brand-7));
  color: #fff;
}

[data-theme="dark"] .tw-message__content {
  background: var(--surface-card);
  border-color: var(--border-default);
  color: var(--text-primary);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
}

/* --- 交互区域 --- */
[data-theme="dark"] .interaction-zone {
  background: var(--surface-base);
  border-top-color: var(--border-default);
}

[data-theme="dark"] .iz-resize-handle:hover {
  background: var(--tw-bg-tertiary);
}

[data-theme="dark"] .iz-resize-handle::after {
  background: var(--text-tertiary);
}

[data-theme="dark"] .iz-textarea {
  background: var(--surface-input);
  border-color: var(--border-default);
  color: var(--text-primary);
}

[data-theme="dark"] .iz-textarea:focus {
  border-color: var(--tw-text-link);
}

[data-theme="dark"] .iz-textarea::placeholder {
  color: var(--text-tertiary);
}

[data-theme="dark"] .interaction-actions {
  border-top-color: var(--border-default);
}

[data-theme="dark"] .plain-btn {
  background: var(--surface-card);
  color: var(--text-secondary);
  border-color: var(--border-default);
}

[data-theme="dark"] .plain-btn:hover {
  border-color: var(--tw-text-link);
  color: var(--tw-text-link);
}

/* --- Agent 预填进度条 --- */
[data-theme="dark"] .agent-progress {
  background: color-mix(in srgb, var(--tw-text-link) 10%, transparent);
  border-bottom-color: color-mix(in srgb, var(--tw-text-link) 30%, transparent);
}

[data-theme="dark"] .ap-label,
[data-theme="dark"] .ap-pct,
[data-theme="dark"] .ap-percent {
  color: var(--tw-text-link);
}

[data-theme="dark"] .ap-bar {
  background: color-mix(in srgb, var(--tw-text-link) 20%, transparent);
}

[data-theme="dark"] .ap-fill {
  background: var(--tw-text-link);
}

[data-theme="dark"] .ap-btn {
  background: var(--surface-card);
  border-color: color-mix(in srgb, var(--tw-text-link) 30%, transparent);
  color: var(--tw-text-link);
}

[data-theme="dark"] .ap-btn:hover {
  border-color: var(--tw-text-link);
}

/* --- 退回弹框 --- */
[data-theme="dark"] .tw-return-modal__content {
  background: var(--surface-card);
  color: var(--text-primary);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
}

/* --- IO 查看器 --- */
[data-theme="dark"] .io-viewer {
  background: var(--tw-bg-tertiary);
  border-color: var(--border-default);
}

[data-theme="dark"] .io-row {
  border-bottom-color: var(--border-default);
}

[data-theme="dark"] .io-key {
  color: var(--text-secondary);
}

[data-theme="dark"] .next-step-card {
  background: color-mix(in srgb, var(--tw-text-link) 10%, transparent);
  border-color: color-mix(in srgb, var(--tw-text-link) 30%, transparent);
}

[data-theme="dark"] .ns-step-num {
  color: var(--tw-text-link);
}

[data-theme="dark"] .ns-step-executor {
  color: var(--text-secondary);
}

[data-theme="dark"] .ns-step-config .io-viewer {
  background: var(--surface-card);
  border-color: color-mix(in srgb, var(--tw-text-link) 30%, transparent);
}

/* --- SOP 全貌 --- */
[data-theme="dark"] .sop-flow-node {
  background: var(--tw-bg-tertiary);
}

[data-theme="dark"] .sop-flow-node--completed {
  background: rgba(103, 194, 58, 0.1);
}

[data-theme="dark"] .sop-flow-node--current {
  background: color-mix(in srgb, var(--tw-text-link) 12%, transparent);
  border-color: color-mix(in srgb, var(--tw-text-link) 30%, transparent);
}

[data-theme="dark"] .sop-flow-node--completed .sop-flow-icon,
[data-theme="dark"] .sop-flow-node--completed .sop-flow-label {
  color: var(--tw-status-success);
}

[data-theme="dark"] .sop-flow-node--current .sop-flow-icon,
[data-theme="dark"] .sop-flow-node--current .sop-flow-label {
  color: var(--tw-text-link);
}

[data-theme="dark"] .sop-flow-node--pending .sop-flow-icon,
[data-theme="dark"] .sop-flow-node--pending .sop-flow-label {
  color: var(--text-tertiary);
}

[data-theme="dark"] .sop-current-detail {
  background: color-mix(in srgb, var(--tw-text-link) 10%, transparent);
  border-color: color-mix(in srgb, var(--tw-text-link) 30%, transparent);
}

/* --- 文档卡片 --- */
[data-theme="dark"] .doc-card {
  background: var(--surface-card);
  border-color: var(--border-default);
}

[data-theme="dark"] .doc-card:hover {
  border-color: var(--tw-text-link);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

[data-theme="dark"] .doc-icon.red {
  background: rgba(245, 108, 108, 0.15);
  color: var(--tw-status-error);
}

[data-theme="dark"] .doc-icon.blue {
  background: color-mix(in srgb, var(--tw-text-link) 15%, transparent);
  color: var(--tw-text-link);
}

[data-theme="dark"] .doc-icon.green {
  background: rgba(103, 194, 58, 0.15);
  color: var(--tw-status-success);
}

/* --- 已完成视图 --- */
[data-theme="dark"] .dv-done-banner {
  background: rgba(103, 194, 58, 0.1);
}

[data-theme="dark"] .dv-title {
  color: var(--text-primary);
}

[data-theme="dark"] .dv-info-item {
  background: var(--tw-bg-tertiary);
}

[data-theme="dark"] .dv-status-badge.pass {
  background: rgba(103, 194, 58, 0.15);
  color: var(--tw-status-success);
}

[data-theme="dark"] .dv-text {
  background: var(--tw-bg-tertiary);
  color: var(--text-secondary);
}

[data-theme="dark"] .dv-timeline {
  border-left-color: var(--border-default);
}

[data-theme="dark"] .dv-timeline-item::before {
  background: var(--text-tertiary);
  border-color: var(--surface-base);
}

[data-theme="dark"] .dv-timeline-item:first-child::before {
  background: var(--tw-text-link);
}

[data-theme="dark"] .dv-time,
[data-theme="dark"] .dv-user {
  color: var(--text-secondary);
}

/* --- 筛选行 v2 --- */
[data-theme="dark"] .filter-row-v2 {
  border-bottom-color: var(--border-default);
}

[data-theme="dark"] .filter-row-v2 .fr-label {
  color: var(--text-secondary);
}

[data-theme="dark"] .filter-row-v2 .fr-btn {
  background: var(--tw-bg-tertiary);
  border-color: var(--border-default);
  color: var(--text-secondary);
}

[data-theme="dark"] .filter-row-v2 .fr-btn:hover {
  border-color: var(--tw-text-link);
  color: var(--tw-text-link);
  background: color-mix(in srgb, var(--tw-text-link) 10%, transparent);
}

[data-theme="dark"] .filter-row-v2 .fr-btn.active {
  background: var(--tw-text-link);
  color: #fff;
  border-color: var(--tw-text-link);
}

/* --- 分组标题 --- */
[data-theme="dark"] .section-header {
  color: var(--text-secondary);
}

[data-theme="dark"] .section-header .sh-count {
  color: var(--text-tertiary);
}

[data-theme="dark"] .urgent-header {
  color: var(--tw-status-error);
}

[data-theme="dark"] .urgent-header .pulse {
  background: var(--tw-status-error);
}

/* --- 操作反馈 --- */
[data-theme="dark"] .action-feedback.success { background: rgba(103, 194, 58, 0.12); color: var(--tw-status-success); }
[data-theme="dark"] .action-feedback.warning { background: rgba(230, 162, 60, 0.12); color: var(--tw-status-warning); }
[data-theme="dark"] .action-feedback.error { background: rgba(245, 108, 108, 0.12); color: var(--tw-status-error); }
[data-theme="dark"] .action-feedback.info { background: color-mix(in srgb, var(--tw-text-link) 12%, transparent); color: var(--tw-text-link); }

/* --- 空状态 --- */
[data-theme="dark"] .empty-state {
  color: var(--text-tertiary);
}

[data-theme="dark"] .empty-state .empty-text {
  color: var(--text-secondary);
}

[data-theme="dark"] .empty-state .empty-desc {
  color: var(--text-tertiary);
}

/* --- 打字指示器/时间戳 --- */
[data-theme="dark"] .typing-indicator span {
  background: var(--text-tertiary);
}

[data-theme="dark"] .msg-time {
  color: var(--text-tertiary);
}

/* --- 操作历史 --- */
[data-theme="dark"] .history-list-item {
  border-color: var(--border-default);
}

[data-theme="dark"] .history-list-item:hover {
  background: var(--tw-bg-tertiary);
}

[data-theme="dark"] .history-list-marker--blue    { color: #4aa1ff; }
[data-theme="dark"] .history-list-marker--green   { color: #73d13d; }
[data-theme="dark"] .history-list-marker--red     { color: #ff7875; }
[data-theme="dark"] .history-list-marker--orange  { color: #ffa940; }
[data-theme="dark"] .history-list-marker--purple  { color: #b37feb; }
[data-theme="dark"] .history-list-marker--cyan    { color: #36cfc9; }
[data-theme="dark"] .history-list-marker--gray    { color: var(--text-tertiary); }

[data-theme="dark"] .history-list-note {
  color: var(--text-secondary);
}

/* --- 批量操作栏 --- */
[data-theme="dark"] .batch-action-bar {
  background: linear-gradient(to top, var(--surface-base) 0%, var(--surface-base) 80%, rgba(26, 27, 30, 0.95) 100%);
  border-top-color: var(--border-default);
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.2);
}

[data-theme="dark"] .bab-info {
  color: var(--text-secondary);
}

[data-theme="dark"] .bab-count strong {
  color: var(--tw-text-link);
}

[data-theme="dark"] .bab-text-btn {
  color: var(--text-secondary);
  border-color: var(--border-default);
}

[data-theme="dark"] .bab-text-btn:hover {
  color: var(--tw-text-link);
  border-color: var(--tw-text-link);
  background: color-mix(in srgb, var(--tw-text-link) 10%, transparent);
}

[data-theme="dark"] .bab-btn.danger {
  background: transparent;
  color: var(--tw-status-error);
  border-color: var(--tw-status-error);
}

[data-theme="dark"] .bab-btn.danger:hover:not(:disabled) {
  background: rgba(245, 108, 108, 0.12);
}

/* --- 原型对齐 --- */
[data-theme="dark"] .task-detail-content > div > div[style*="border: 1px solid #e6e8eb"]:hover {
  border-color: var(--tw-text-link) !important;
}

/* ==========================================================================
   PRD §3.3.8 — 线索 SOP 业务组件
   ========================================================================== */

/* 评估概览卡片 */
.assessment-overview {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 16px;
  background: #f5f7fa;
  border-radius: 8px;
  margin-bottom: 16px;
}

.score-big {
  font-size: 36px;
  font-weight: 700;
}
.score-big.green { color: #67c23a; }
.score-big.blue { color: #1b65b9; }
.score-big.orange { color: #e6a23c; }
.score-big.gray { color: #909399; }

.score-subtotal {
  font-size: 13px;
  color: #606266;
}
.score-subtotal strong {
  color: #303133;
  font-size: 16px;
}

/* 分级标签 */
.grade-tag {
  display: inline-flex;
  align-items: center;
  padding: 6px 16px;
  border-radius: 6px;
  font-size: 16px;
  font-weight: 700;
  margin-top: 6px;
}
.grade-tag.a { background: #67c23a; color: #fff; }
.grade-tag.b { background: #1b65b9; color: #fff; }
.grade-tag.c { background: #909399; color: #fff; }

/* 评分项 */
.score-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px dashed #e6e8eb;
}
.score-item:last-child { border-bottom: none; }

.score-label {
  font-size: 13px;
  color: #303133;
  min-width: 100px;
}

.score-bar {
  flex: 1;
  margin: 0 16px;
}
.score-bar .bar-bg {
  height: 8px;
  background: #f0f2f5;
  border-radius: 4px;
  overflow: hidden;
}
.score-bar .bar-fill {
  height: 100%;
  border-radius: 4px;
  transition: width 0.3s;
}
.score-bar .bar-fill.green { background: #67c23a; }
.score-bar .bar-fill.blue { background: #1b65b9; }
.score-bar .bar-fill.orange { background: #e6a23c; }
.score-bar .bar-fill.red { background: #f56c6c; }

.score-value {
  font-size: 13px;
  font-weight: 600;
  color: #303133;
  min-width: 30px;
  text-align: right;
}
.score-reason {
  font-size: 11px;
  color: #909399;
  margin-top: 4px;
}

/* 评分修改按钮 */
.score-edit-btn {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 2px 8px;
  border-radius: 3px;
  font-size: 11px;
  color: #1b65b9;
  background: #ecf5ff;
  border: 1px solid #b3d8ff;
  cursor: pointer;
  transition: all 0.2s;
  margin-left: 6px;
}
.score-edit-btn:hover {
  background: #1b65b9;
  color: #fff;
}

/* 内联评分编辑区 */
.score-edit-area {
  margin-top: 8px;
  padding: 8px;
  background: #f5f7fa;
  border-radius: 6px;
}
.score-edit-area .edit-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

/* 推荐责任人卡片 */
.assign-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px;
  background: #fff;
  border: 1px solid #e6e8eb;
  border-radius: 8px;
  margin-bottom: 12px;
}
.assign-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #ecf5ff;
  color: #1b65b9;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 600;
  flex-shrink: 0;
}
.assign-info { flex: 1; }
.assign-name {
  font-size: 14px;
  font-weight: 600;
  color: #303133;
}
.assign-meta {
  font-size: 12px;
  color: #909399;
  margin-top: 4px;
  display: flex;
  gap: 12px;
}
.assign-reason {
  font-size: 12px;
  color: #1b65b9;
  background: #ecf5ff;
  padding: 4px 8px;
  border-radius: 4px;
  margin-top: 6px;
  display: inline-block;
}

/* 快速通道条件卡片 */
.ft-condition-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  background: #fff;
  border: 1px solid #e6e8eb;
  border-radius: 6px;
  margin-bottom: 8px;
}
.ft-condition-card .ft-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  flex-shrink: 0;
}
.ft-icon.pass { background: #f0f9eb; color: #67c23a; }
.ft-icon.fail { background: #fef0f0; color: #f56c6c; }
.ft-condition-card .ft-label {
  font-size: 13px;
  color: #303133;
  flex: 1;
}
.ft-condition-card .ft-value {
  font-size: 12px;
  color: #606266;
}
.ft-condition-card .ft-result {
  font-size: 12px;
  font-weight: 600;
}
.ft-result.pass { color: #67c23a; }
.ft-result.fail { color: #f56c6c; }

/* 拜访策略卡片 */
.visit-strategy-card {
  padding: 16px;
  border-radius: 8px;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 16px;
}
.visit-strategy-card.a-level {
  background: linear-gradient(135deg, #fef0f0, #fff5f5);
  border: 1px solid #fbc4c4;
}
.visit-strategy-card.b-level {
  background: linear-gradient(135deg, #ecf5ff, #f5faff);
  border: 1px solid #b3d8ff;
}
.vs-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  flex-shrink: 0;
}
.vs-icon.red { background: #f56c6c; color: #fff; }
.vs-icon.blue { background: #1b65b9; color: #fff; }
.vs-info { flex: 1; }
.vs-title {
  font-size: 16px;
  font-weight: 700;
  color: #303133;
}
.vs-desc {
  font-size: 12px;
  color: #606266;
  margin-top: 4px;
}
.vs-sla {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
}
.sla-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 600;
}
.sla-badge.red { background: #f56c6c; color: #fff; }
.sla-badge.blue { background: #1b65b9; color: #fff; }

/* 客户画像卡片 */
.profile-card {
  padding: 14px;
  background: #f5f7fa;
  border-radius: 8px;
  margin-bottom: 16px;
}
.profile-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 10px;
}
.profile-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.profile-item .pi-label {
  font-size: 11px;
  color: #909399;
}
.profile-item .pi-value {
  font-size: 13px;
  color: #303133;
  font-weight: 500;
}

/* 商机信息卡片 */
.opp-info-card {
  padding: 14px;
  background: #fdf6ec;
  border: 1px solid #f5dab1;
  border-radius: 8px;
  margin-bottom: 16px;
}
.opp-code {
  font-size: 18px;
  font-weight: 700;
  color: #e6a23c;
  margin-bottom: 4px;
}

/* KCP 检查清单 */
.kcp-list {
  margin-top: 8px;
}
.kcp-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 6px;
  margin-bottom: 6px;
  font-size: 13px;
}
.kcp-item.pass { background: #f0f9eb; color: #67c23a; }
.kcp-item.fail { background: #fef0f0; color: #f56c6c; }
.kcp-item.pending { background: #f5f7fa; color: #909399; }
.kcp-icon {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  flex-shrink: 0;
}
.kcp-icon.pass { background: #67c23a; color: #fff; }
.kcp-icon.fail { background: #f56c6c; color: #fff; }
.kcp-icon.pending { background: #c0c4cc; color: #fff; }

/* 阻断提示横幅 */
.block-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: 6px;
  margin-bottom: 16px;
  background: #fef0f0;
  border: 1px solid #fbc4c4;
  font-size: 13px;
  color: #f56c6c;
}
.block-banner .bl-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #f56c6c;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  flex-shrink: 0;
}

/* 重复线索检测横幅 */
.dup-banner {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px 14px;
  border-radius: 6px;
  margin-bottom: 12px;
  background: #fdf6ec;
  border: 1px solid #f5dab1;
  font-size: 13px;
}
.dup-banner .dup-top {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.dup-banner .dup-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #e6a23c;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  flex-shrink: 0;
  margin-top: 1px;
}
.dup-banner .dup-body {
  flex: 1;
  min-width: 0;
}
.dup-banner .dup-title {
  font-weight: 600;
  color: #e6a23c;
}
.dup-banner .dup-desc {
  font-size: 12px;
  color: #909399;
  margin-top: 2px;
  line-height: 1.5;
}
.dup-banner .dup-actions {
  display: flex;
  gap: 8px;
  padding-left: 38px;
}
.dup-btn {
  padding: 4px 12px;
  border-radius: 4px;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.2s;
  border: 1px solid transparent;
}
.dup-btn.warn { background: #e6a23c; color: #fff; }
.dup-btn.warn:hover { background: #cf9236; }
.dup-btn.ghost { background: transparent; color: #909399; border-color: #e6e8eb; }
.dup-btn.ghost:hover { border-color: #e6a23c; color: #e6a23c; }

/* 通知模板区域 */
.notify-template {
  padding: 14px;
  background: #fef0f0;
  border: 1px solid #fbc4c4;
  border-radius: 8px;
  margin-top: 12px;
}
.notify-template .nt-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #f56c6c;
}

/* 提醒设置卡片 */
.reminder-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  background: #ecf5ff;
  border: 1px solid #b3d8ff;
  border-radius: 6px;
  margin-top: 12px;
}
.reminder-card .rm-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #1b65b9;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  flex-shrink: 0;
}

/* 业务线评估卡片 */
.biz-assess-card {
  padding: 12px;
  background: #f0ecff;
  border: 1px solid #d4c8f5;
  border-radius: 8px;
  margin-top: 8px;
}
.biz-assess-card .ba-title {
  font-size: 13px;
  font-weight: 600;
  color: #7b61ff;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
}

/* Agent 预填值标记 */
.agent-filled {
  background: #f0f9eb;
  padding: 1px 6px;
  border-radius: 3px;
  font-size: 11px;
  color: #67c23a;
  margin-left: 6px;
}
.human-modified {
  background: #fdf6ec;
  padding: 1px 6px;
  border-radius: 3px;
  font-size: 11px;
  color: #e6a23c;
  margin-left: 6px;
}
.agent-deviation {
  background: #fef0f0;
  padding: 1px 6px;
  border-radius: 3px;
  font-size: 11px;
  color: #f56c6c;
  margin-left: 6px;
}

/* 文字链接 */
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  color: #1b65b9;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  transition: color 0.2s;
  white-space: nowrap;
}
.text-link:hover {
  color: #3774b9;
  text-decoration: underline;
}

/* ==========================================================================
   PRD §3.3.8 业务组件 — 暗色模式
   ========================================================================== */

[data-theme="dark"] .assessment-overview {
  background: var(--tw-bg-tertiary);
}
[data-theme="dark"] .score-big.green { color: var(--tw-status-success); }
[data-theme="dark"] .score-big.blue { color: var(--tw-text-link); }
[data-theme="dark"] .score-big.orange { color: var(--tw-status-warning); }
[data-theme="dark"] .score-big.gray { color: var(--text-secondary); }
[data-theme="dark"] .score-subtotal { color: var(--text-secondary); }
[data-theme="dark"] .score-subtotal strong { color: var(--text-primary); }

[data-theme="dark"] .grade-tag.a { background: var(--tw-status-success); color: #fff; }
[data-theme="dark"] .grade-tag.b { background: var(--tw-text-link); color: #fff; }
[data-theme="dark"] .grade-tag.c { background: var(--text-tertiary); color: #fff; }

[data-theme="dark"] .score-item { border-bottom-color: var(--border-default); }
[data-theme="dark"] .score-label { color: var(--text-primary); }
[data-theme="dark"] .score-value { color: var(--text-primary); }
[data-theme="dark"] .score-reason { color: var(--text-secondary); }
[data-theme="dark"] .score-bar .bar-bg { background: var(--tw-bg-tertiary); }

[data-theme="dark"] .score-edit-btn {
  background: color-mix(in srgb, var(--tw-text-link) 15%, transparent);
  border-color: color-mix(in srgb, var(--tw-text-link) 30%, transparent);
  color: var(--tw-text-link);
}
[data-theme="dark"] .score-edit-btn:hover {
  background: var(--tw-text-link);
  color: #fff;
}

[data-theme="dark"] .score-edit-area {
  background: var(--tw-bg-tertiary);
}

[data-theme="dark"] .assign-card {
  background: var(--surface-card);
  border-color: var(--border-default);
}
[data-theme="dark"] .assign-avatar {
  background: color-mix(in srgb, var(--tw-text-link) 15%, transparent);
  color: var(--tw-text-link);
}
[data-theme="dark"] .assign-name { color: var(--text-primary); }
[data-theme="dark"] .assign-meta { color: var(--text-secondary); }
[data-theme="dark"] .assign-reason {
  background: color-mix(in srgb, var(--tw-text-link) 10%, transparent);
  color: var(--tw-text-link);
}

[data-theme="dark"] .ft-condition-card {
  background: var(--surface-card);
  border-color: var(--border-default);
}
[data-theme="dark"] .ft-icon.pass { background: rgba(103, 194, 58, 0.15); color: var(--tw-status-success); }
[data-theme="dark"] .ft-icon.fail { background: rgba(245, 108, 108, 0.15); color: var(--tw-status-error); }
[data-theme="dark"] .ft-condition-card .ft-label { color: var(--text-primary); }
[data-theme="dark"] .ft-condition-card .ft-value { color: var(--text-secondary); }
[data-theme="dark"] .ft-result.pass { color: var(--tw-status-success); }
[data-theme="dark"] .ft-result.fail { color: var(--tw-status-error); }

[data-theme="dark"] .visit-strategy-card.a-level {
  background: linear-gradient(135deg, rgba(245, 108, 108, 0.1), rgba(255, 245, 245, 0.05));
  border-color: rgba(245, 108, 108, 0.3);
}
[data-theme="dark"] .visit-strategy-card.b-level {
  background: linear-gradient(135deg, color-mix(in srgb, var(--tw-text-link) 10%, transparent), rgba(245, 250, 255, 0.05));
  border-color: color-mix(in srgb, var(--tw-text-link) 30%, transparent);
}
[data-theme="dark"] .vs-title { color: var(--text-primary); }
[data-theme="dark"] .vs-desc { color: var(--text-secondary); }

[data-theme="dark"] .profile-card {
  background: var(--tw-bg-tertiary);
}
[data-theme="dark"] .profile-item .pi-label { color: var(--text-secondary); }
[data-theme="dark"] .profile-item .pi-value { color: var(--text-primary); }

[data-theme="dark"] .opp-info-card {
  background: rgba(230, 162, 60, 0.1);
  border-color: rgba(230, 162, 60, 0.3);
}
[data-theme="dark"] .opp-code { color: var(--tw-status-warning); }

[data-theme="dark"] .kcp-item.pass { background: rgba(103, 194, 58, 0.1); color: var(--tw-status-success); }
[data-theme="dark"] .kcp-item.fail { background: rgba(245, 108, 108, 0.1); color: var(--tw-status-error); }
[data-theme="dark"] .kcp-item.pending { background: var(--tw-bg-tertiary); color: var(--text-secondary); }
[data-theme="dark"] .kcp-icon.pending { background: var(--text-tertiary); }

[data-theme="dark"] .block-banner {
  background: rgba(245, 108, 108, 0.1);
  border-color: rgba(245, 108, 108, 0.3);
  color: var(--tw-status-error);
}
[data-theme="dark"] .block-banner .bl-icon { background: var(--tw-status-error); }

[data-theme="dark"] .dup-banner {
  background: rgba(230, 162, 60, 0.1);
  border-color: rgba(230, 162, 60, 0.3);
}
[data-theme="dark"] .dup-banner .dup-title { color: var(--tw-status-warning); }
[data-theme="dark"] .dup-banner .dup-desc { color: var(--text-secondary); }
[data-theme="dark"] .dup-btn.warn { background: var(--tw-status-warning); }
[data-theme="dark"] .dup-btn.ghost { color: var(--text-secondary); border-color: var(--border-default); }
[data-theme="dark"] .dup-btn.ghost:hover { border-color: var(--tw-status-warning); color: var(--tw-status-warning); }

[data-theme="dark"] .notify-template {
  background: rgba(245, 108, 108, 0.08);
  border-color: rgba(245, 108, 108, 0.25);
}
[data-theme="dark"] .notify-template .nt-header { color: var(--tw-status-error); }

[data-theme="dark"] .reminder-card {
  background: color-mix(in srgb, var(--tw-text-link) 10%, transparent);
  border-color: color-mix(in srgb, var(--tw-text-link) 30%, transparent);
}

[data-theme="dark"] .biz-assess-card {
  background: rgba(123, 97, 255, 0.1);
  border-color: rgba(123, 97, 255, 0.3);
}
[data-theme="dark"] .biz-assess-card .ba-title { color: #9b8aff; }

[data-theme="dark"] .agent-filled {
  background: rgba(103, 194, 58, 0.15);
  color: var(--tw-status-success);
}
[data-theme="dark"] .human-modified {
  background: rgba(230, 162, 60, 0.15);
  color: var(--tw-status-warning);
}
[data-theme="dark"] .agent-deviation {
  background: rgba(245, 108, 108, 0.15);
  color: var(--tw-status-error);
}

[data-theme="dark"] .text-link {
  color: var(--tw-text-link);
}
[data-theme="dark"] .text-link:hover {
  color: var(--tw-brand-7);
}

/* ==================== PRD §3.3.4 — 任务生命周期叠加层 ==================== */

.task-lifecycle-overlay {
  flex-shrink: 0;
  padding: 8px 16px 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: var(--surface-base, #fff);
  border-bottom: 1px solid var(--border-default, #e6e8eb);
  max-height: 160px;
  overflow-y: auto;
}

.task-lifecycle-overlay::-webkit-scrollbar {
  width: 4px;
}
.task-lifecycle-overlay::-webkit-scrollbar-thumb {
  background: #c0c4cc;
  border-radius: 2px;
}

/* 单条生命周期事件 */
.task-lifecycle-event {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 12px;
  line-height: 1.5;
  animation: tle-slide-in 0.3s ease;
}

@keyframes tle-slide-in {
  from { opacity: 0; transform: translateX(-8px); }
  to { opacity: 1; transform: translateX(0); }
}

.tle-icon {
  flex-shrink: 0;
  font-size: 14px;
}

.tle-message {
  flex: 1;
  min-width: 0;
}

.tle-time {
  font-size: 11px;
  color: #c0c4cc;
  flex-shrink: 0;
  margin-left: auto;
}

/* 各类型颜色 */
.task-lifecycle-event.tle-loading {
  background: color-mix(in srgb, var(--tw-text-link) 8%, transparent);
  color: var(--tw-text-link);
}

.task-lifecycle-event.tle-prefill {
  background: rgba(103, 194, 58, 0.08);
  color: var(--tw-status-success, #67c23a);
}

.task-lifecycle-event.tle-reviewing {
  background: rgba(230, 162, 60, 0.08);
  color: var(--tw-status-warning, #e6a23c);
}

.task-lifecycle-event.tle-passed {
  background: rgba(103, 194, 58, 0.1);
  color: var(--tw-status-success, #67c23a);
  font-weight: 500;
}

.task-lifecycle-event.tle-failed {
  background: rgba(245, 108, 108, 0.08);
  color: var(--tw-status-error, #f56c6c);
  font-weight: 500;
}

/* 暗色模式 */
[data-theme="dark"] .task-lifecycle-overlay {
  background: var(--surface-base);
  border-bottom-color: var(--border-default);
}

[data-theme="dark"] .task-lifecycle-overlay::-webkit-scrollbar-thumb {
  background: var(--tw-scrollbar-thumb);
}

[data-theme="dark"] .task-lifecycle-event.tle-loading {
  background: color-mix(in srgb, var(--tw-text-link) 12%, transparent);
  color: var(--tw-text-link);
}

[data-theme="dark"] .task-lifecycle-event.tle-prefill {
  background: rgba(103, 194, 58, 0.12);
  color: var(--tw-status-success);
}

[data-theme="dark"] .task-lifecycle-event.tle-reviewing {
  background: rgba(230, 162, 60, 0.12);
  color: var(--tw-status-warning);
}

[data-theme="dark"] .task-lifecycle-event.tle-passed {
  background: rgba(103, 194, 58, 0.15);
  color: var(--tw-status-success);
}

[data-theme="dark"] .task-lifecycle-event.tle-failed {
  background: rgba(245, 108, 108, 0.12);
  color: var(--tw-status-error);
}

[data-theme="dark"] .tle-time {
  color: var(--text-tertiary);
}

/* ==================== 弹框组件暗色模式适配 ==================== */

/* 退回弹框 */
[data-theme="dark"] .tw-return-modal__content {
  background: var(--surface-card);
  color: var(--text-primary);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
}

[data-theme="dark"] .tw-return-modal__content h3 {
  color: var(--text-primary);
}

/* 弹框内 Ant Design Modal 暗色覆盖 */
[data-theme="dark"] .ant-modal-content {
  background: var(--surface-card) !important;
  color: var(--text-primary) !important;
}

[data-theme="dark"] .ant-modal-header {
  background: var(--surface-card) !important;
}

[data-theme="dark"] .ant-modal-title {
  color: var(--text-primary) !important;
}

[data-theme="dark"] .ant-modal-close-x {
  color: var(--text-secondary) !important;
}

[data-theme="dark"] .ant-select-selector {
  background: var(--tw-bg-tertiary) !important;
  color: var(--text-primary) !important;
  border-color: var(--border-default) !important;
}

[data-theme="dark"] .ant-input,
[data-theme="dark"] .ant-input-textarea {
  background: var(--tw-bg-tertiary) !important;
  color: var(--text-primary) !important;
  border-color: var(--border-default) !important;
}

/* ================================================================
   文档编辑器弹框 (DocEditorDialog) — 对标原型 doc-editor-overlay
   ================================================================ */

/* 全屏遮罩 */
.doc-editor-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: de-overlay-in 0.2s ease-out;
}

@keyframes de-overlay-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* 容器 */
.doc-editor-container {
  width: 95%;
  height: 85%;
  background: var(--bg-primary, #fff);
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.2);
  animation: de-container-in 0.25s ease-out;
}

@keyframes de-container-in {
  from { opacity: 0; transform: scale(0.97); }
  to { opacity: 1; transform: scale(1); }
}

/* Header */
.doc-editor-header {
  height: 48px;
  min-height: 48px;
  background: var(--tw-text-link, #1B65B9);
  color: #fff;
  display: flex;
  align-items: center;
  padding: 0 16px;
  justify-content: space-between;
  flex-shrink: 0;
}

.deh-left {
  font-size: 14px;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 8px;
}

.deh-right {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* Header 模式切换 Tabs */
.deh-mode-tabs {
  display: flex;
  gap: 4px;
}

.deh-mt {
  padding: 4px 10px;
  border-radius: 4px;
  font-size: 12px;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
  transition: all 0.15s;
}

.deh-mt:hover {
  background: rgba(255, 255, 255, 0.35);
}

.deh-mt.active {
  background: #fff;
  color: var(--tw-text-link, #1B65B9);
  font-weight: 600;
}

/* Header 文档修改/修订开关 */
.deh-doc-switches {
  display: flex;
  gap: 8px;
}

.deh-switch {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  user-select: none;
}

.deh-switch.disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.deh-switch-label {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.7);
  transition: color 0.15s;
}

.deh-switch-label.active {
  color: #fff;
  font-weight: 600;
}

.deh-switch-label.active-rev {
  color: #fff;
  font-weight: 600;
}

.deh-toggle {
  width: 28px;
  height: 16px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.3);
  position: relative;
  transition: background 0.2s;
}

.deh-toggle::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 2px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #fff;
  transition: transform 0.2s;
}

.deh-toggle.on {
  background: #67C23A;
}

.deh-toggle.on::after {
  transform: translateX(12px);
}

.deh-toggle.rev.on {
  background: #E6A23C;
}

/* 工具栏 */
.doc-editor-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 16px;
  border-bottom: 1px solid var(--border-default, #E6E8EB);
  background: var(--tw-bg-tertiary, #FAFAFA);
  flex-shrink: 0;
  min-height: 36px;
}

.det-version-info {
  font-size: 12px;
  color: var(--text-secondary, #909399);
  display: flex;
  align-items: center;
  gap: 4px;
}

.det-current-version {
  color: var(--tw-text-link, #1B65B9);
  font-weight: 600;
}

.det-current-version.clickable {
  cursor: pointer;
}

.det-current-version.clickable:hover {
  text-decoration: underline;
}

.det-version-input {
  width: 60px !important;
  font-weight: 600;
  text-align: center;
}

.det-kcp-check {
  font-size: 12px;
  color: var(--text-secondary, #909399);
}

.det-kcp-check .pass {
  color: #67C23A;
  margin-left: 4px;
}

.det-kcp-check .fail {
  color: #F56C6C;
  margin-left: 4px;
}

/* 主编辑区域 — 两栏布局 */
.doc-editor-main {
  flex: 1;
  display: flex;
  overflow: hidden;
  min-height: 0;
}

/* 左栏: 编辑区 */
.de-panel-edit {
  flex: 1;
  display: flex;
  flex-direction: column;
  background: var(--bg-primary, #fff);
  min-width: 300px;
  overflow: hidden;
}

.de-edit-header {
  padding: 8px 12px;
  border-bottom: 1px solid var(--border-default, #E6E8EB);
  font-size: 12px;
  font-weight: 600;
  color: var(--text-primary, #303133);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  flex-shrink: 0;
  background: var(--tw-bg-tertiary, #F5F7FA);
}

.de-eh-left {
  display: flex;
  align-items: center;
  gap: 8px;
}

.de-eh-right {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: var(--text-tertiary, #909399);
  font-weight: 400;
}

.de-edit-content {
  flex: 1;
  overflow: auto;
  padding: 16px;
  min-height: 0;
}

.de-edit-content::-webkit-scrollbar {
  width: 6px;
}

.de-edit-content::-webkit-scrollbar-track {
  background: transparent;
}

.de-edit-content::-webkit-scrollbar-thumb {
  background: var(--border-default, #C0C4CC);
  border-radius: 3px;
}

/* 只读模式 */
.de-readonly-view {
  color: var(--text-secondary, #909399);
}

/* Markdown 源码编辑 */
.de-source-editor {
  display: flex;
  flex-direction: column;
  font-family: 'Cascadia Code', 'Fira Code', monospace;
  font-size: 13px;
  line-height: 1.7;
  height: 100%;
  overflow: hidden;
}

.de-source-editor textarea {
  flex: 1;
  width: 100%;
  border: none;
  outline: none;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  background: transparent;
  resize: none;
  min-height: 0;
  color: var(--text-primary, #303133);
}

/* Word 编辑器 */
.de-word-editor {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.de-we-toolbar {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  border-bottom: 1px solid var(--border-default, #E6E8EB);
  background: var(--tw-bg-tertiary, #F5F7FA);
  flex-shrink: 0;
}

.de-we-toolbar button {
  padding: 4px 10px;
  border: 1px solid var(--border-default, #DCDFE6);
  border-radius: 3px;
  background: var(--bg-primary, #fff);
  cursor: pointer;
  font-size: 12px;
  color: var(--text-secondary, #606266);
  transition: all 0.15s;
}

.de-we-toolbar button:hover {
  border-color: var(--tw-text-link, #1B65B9);
  color: var(--tw-text-link, #1B65B9);
}

.de-we-sep {
  width: 1px;
  height: 16px;
  background: var(--border-default, #DCDFE6);
  margin: 0 4px;
}

.de-revision-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 2px 8px;
  border-radius: 10px;
  font-size: 10px;
  font-weight: 600;
  background: #F56C6C;
  color: #fff;
}

.de-we-content {
  flex: 1;
  overflow: auto;
  padding: 24px;
  font-family: 'Microsoft YaHei', 'SimSun', serif;
  font-size: 14px;
  line-height: 1.8;
  outline: none;
  color: var(--text-primary, #303133);
}

.de-we-content h1 {
  font-size: 22px;
  border-bottom: 2px solid var(--tw-text-link, #1B65B9);
  padding-bottom: 12px;
  margin-top: 0;
}

.de-we-content h2 {
  font-size: 16px;
  color: var(--tw-text-link, #1B65B9);
  margin-top: 20px;
  border-left: 3px solid var(--tw-text-link, #1B65B9);
  padding-left: 8px;
}

/* 版本对比视图 */
.de-version-compare {
  display: flex;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

.de-vc-panel {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.de-vc-header {
  padding: 8px 12px;
  border-bottom: 1px solid var(--border-default, #E6E8EB);
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--tw-bg-tertiary, #F5F7FA);
  flex-shrink: 0;
}

.de-vc-title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--text-primary, #303133);
}

.de-vc-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.de-vc-dot.original {
  background: #909399;
}

.de-vc-dot.modified {
  background: #67C23A;
}

.de-vc-badge {
  font-size: 11px;
  padding: 1px 8px;
  border-radius: 10px;
  font-weight: 600;
}

.de-vc-badge.original {
  background: #F5F7FA;
  color: #909399;
  border: 1px solid #DCDFE6;
}

.de-vc-badge.modified {
  background: #F0F9EB;
  color: #67C23A;
  border: 1px solid #B3E19D;
}

.de-vc-body {
  flex: 1;
  overflow: auto;
  padding: 16px;
  min-height: 0;
}

.de-vc-textarea {
  width: 100%;
  height: 100%;
  border: none;
  outline: none;
  font-family: 'Cascadia Code', 'Fira Code', monospace;
  font-size: 13px;
  line-height: 1.7;
  background: transparent;
  resize: none;
  color: var(--text-primary, #303133);
}

.de-vc-divider {
  width: 1px;
  background: var(--border-default, #E6E8EB);
  flex-shrink: 0;
}

/* 拖拽手柄 */
.de-resize-handle {
  width: 4px;
  cursor: col-resize;
  background: var(--border-default, #E6E8EB);
  flex-shrink: 0;
  transition: background 0.2s;
  position: relative;
  z-index: 10;
}

.de-resize-handle:hover,
.de-resize-handle.dragging {
  background: var(--tw-text-link, #1B65B9);
}

/* 右栏: Agent 对话 */
.de-panel-agent {
  width: 300px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  background: var(--bg-primary, #fff);
  border-left: 1px solid var(--border-default, #E6E8EB);
}

.de-agent-header {
  padding: 8px 12px;
  border-bottom: 1px solid var(--border-default, #E6E8EB);
  font-size: 12px;
  font-weight: 600;
  color: var(--text-primary, #303133);
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  background: var(--tw-bg-tertiary, #F5F7FA);
}

.de-agent-messages {
  flex: 1;
  overflow-y: auto;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 0;
}

.de-agent-messages::-webkit-scrollbar {
  width: 4px;
}

.de-agent-messages::-webkit-scrollbar-thumb {
  background: var(--border-default, #DCDFE6);
  border-radius: 2px;
}

/* Agent 对话消息 */
.de-chat-msg {
  display: flex;
  gap: 8px;
  max-width: 95%;
}

.de-chat-msg.agent {
  align-self: flex-start;
}

.de-chat-msg.user {
  align-self: flex-end;
  flex-direction: row-reverse;
}

.de-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 600;
  color: #fff;
  background: linear-gradient(135deg, var(--tw-text-link, #1B65B9), #3CA0F6);
}

.de-chat-msg.user .de-avatar {
  background: var(--tw-bg-tertiary, #E6E8EB);
  color: var(--text-secondary, #606266);
}

.de-bubble {
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.6;
  background: var(--tw-bg-tertiary, #F5F7FA);
  color: var(--text-primary, #303133);
  border: 1px solid var(--border-default, #E6E8EB);
}

.de-chat-msg.user .de-bubble {
  background: var(--tw-text-link, #1B65B9);
  color: #fff;
  border: none;
}

.de-typing {
  font-style: italic;
  color: var(--text-tertiary, #909399);
}

/* Agent 输入框 */
.de-agent-input {
  display: flex;
  gap: 6px;
  padding: 8px 12px;
  border-top: 1px solid var(--border-default, #E6E8EB);
  flex-shrink: 0;
}

.de-agent-input input {
  flex: 1;
  padding: 6px 10px;
  border: 1px solid var(--border-default, #DCDFE6);
  border-radius: 6px;
  font-size: 12px;
  outline: none;
  background: var(--bg-primary, #fff);
  color: var(--text-primary, #303133);
}

.de-agent-input input:focus {
  border-color: var(--tw-text-link, #1B65B9);
}

.de-agent-input button {
  padding: 6px 12px;
  border: none;
  border-radius: 6px;
  background: var(--tw-text-link, #1B65B9);
  color: #fff;
  cursor: pointer;
  font-size: 12px;
  transition: opacity 0.15s;
}

.de-agent-input button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* 底部操作区 */
.de-agent-actions {
  padding: 8px 12px;
  border-top: 1px solid var(--border-default, #E6E8EB);
  flex-shrink: 0;
}

.de-action-buttons {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.de-ab-row {
  display: flex;
  gap: 6px;
}

.de-ab-btn {
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 12px;
  cursor: pointer;
  border: 1px solid;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  flex: 1;
  transition: all 0.15s;
  white-space: nowrap;
}

.de-ab-btn.full {
  flex: 1;
}

.de-ab-btn.danger {
  background: #FEF0F0;
  color: #F56C6C;
  border-color: #FBC4C4;
}

.de-ab-btn.danger:hover:not(:disabled) {
  background: #F56C6C;
  color: #fff;
}

.de-ab-btn.success {
  background: #F0F9EB;
  color: #67C23A;
  border-color: #B3E19D;
}

.de-ab-btn.success:hover:not(:disabled) {
  background: #67C23A;
  color: #fff;
}

.de-ab-btn.primary {
  background: #ECF5FF;
  color: var(--tw-text-link, #1B65B9);
  border-color: #B3D8FF;
}

.de-ab-btn.primary:hover:not(:disabled) {
  background: var(--tw-text-link, #1B65B9);
  color: #fff;
}

.de-ab-btn.default {
  background: var(--bg-primary, #fff);
  color: var(--text-secondary, #606266);
  border-color: var(--border-default, #DCDFE6);
}

.de-ab-btn.default:hover:not(:disabled) {
  border-color: var(--tw-text-link, #1B65B9);
  color: var(--tw-text-link, #1B65B9);
}

.de-ab-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* 操作面板（退回/提交/分配） */
.de-action-panel {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.de-reason-label {
  font-size: 11px;
  color: var(--text-secondary, #606266);
  font-weight: 600;
}

.de-reason-textarea {
  width: 100%;
  min-height: 60px;
  max-height: 80px;
  padding: 6px 8px;
  border: 1px solid var(--border-default, #DCDFE6);
  border-radius: 6px;
  font-size: 12px;
  resize: none;
  outline: none;
  background: var(--bg-primary, #fff);
  color: var(--text-primary, #303133);
}

.de-reason-textarea:focus {
  border-color: var(--tw-text-link, #1B65B9);
}

.de-reason-buttons {
  display: flex;
  gap: 6px;
  justify-content: flex-end;
}

/* 分配执行人 */
.de-assignee-header {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-primary, #303133);
  display: flex;
  align-items: center;
  gap: 6px;
}

.de-assignee-desc {
  font-size: 11px;
  color: var(--text-tertiary, #909399);
  line-height: 1.5;
}

.de-assignee-cards {
  max-height: 200px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.de-assignee-card {
  display: flex;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid var(--border-default, #DCDFE6);
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.15s;
}

.de-assignee-card:hover {
  border-color: var(--tw-text-link, #1B65B9);
}

.de-assignee-card.recommended {
  border-color: #67C23A;
  background: #F0F9EB;
}

.de-assignee-card.selected {
  border-color: var(--tw-text-link, #1B65B9);
  background: #ECF5FF;
  box-shadow: 0 0 0 2px rgba(27, 101, 185, 0.15);
}

.de-ac-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--tw-text-link, #1B65B9), #3CA0F6);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 600;
  flex-shrink: 0;
}

.de-ac-info {
  flex: 1;
  min-width: 0;
}

.de-ac-name {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-primary, #303133);
  display: flex;
  align-items: center;
  gap: 4px;
}

.de-ac-role {
  font-size: 10px;
  font-weight: 400;
  color: var(--text-tertiary, #909399);
}

.de-ai-badge {
  font-size: 9px;
  padding: 0 4px;
  border-radius: 3px;
  background: #67C23A;
  color: #fff;
  font-weight: 600;
}

.de-ac-reason {
  font-size: 11px;
  color: var(--text-secondary, #606266);
  margin-top: 2px;
  line-height: 1.4;
}

.de-ac-stats {
  flex-shrink: 0;
  font-size: 10px;
  color: var(--text-tertiary, #909399);
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-align: right;
}

/* ================================================================
   文档审核弹框 (DocReviewDialog) — 三栏布局
   ================================================================ */

.doc-review-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: de-overlay-in 0.2s ease-out;
}

.doc-review-container {
  width: 95%;
  height: 85%;
  background: var(--bg-primary, #fff);
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.2);
}

.doc-review-header {
  height: 48px;
  min-height: 48px;
  background: var(--tw-text-link, #1B65B9);
  color: #fff;
  display: flex;
  align-items: center;
  padding: 0 16px;
  justify-content: space-between;
  flex-shrink: 0;
}

.drh-left {
  font-size: 14px;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 8px;
}

.doc-review-main {
  flex: 1;
  display: flex;
  overflow: hidden;
  min-height: 0;
}

/* 左栏: 文档目录 */
.dr-panel-list {
  width: 220px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--border-default, #E6E8EB);
}

.dr-list-header {
  padding: 8px 12px;
  font-size: 12px;
  font-weight: 600;
  background: var(--tw-bg-tertiary, #F5F7FA);
  border-bottom: 1px solid var(--border-default, #E6E8EB);
  color: var(--text-primary, #303133);
}

.dr-list-body {
  flex: 1;
  overflow-y: auto;
  padding: 8px;
}

.dr-list-item {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 10px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 12px;
  color: var(--text-primary, #303133);
  transition: all 0.15s;
}

.dr-list-item:hover {
  background: var(--tw-bg-tertiary, #F5F7FA);
}

.dr-list-item.active {
  background: #ECF5FF;
  border: 1px solid #B3D8FF;
}

.dr-item-name {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 中栏: 文档预览 */
.dr-panel-preview {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.dr-preview-header {
  padding: 8px 12px;
  border-bottom: 1px solid var(--border-default, #E6E8EB);
  background: var(--tw-bg-tertiary, #F5F7FA);
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 12px;
  font-weight: 600;
  color: var(--text-primary, #303133);
  flex-shrink: 0;
}

.dr-format-switch {
  display: flex;
  gap: 4px;
}

.dr-fmt {
  padding: 3px 10px;
  border-radius: 4px;
  font-size: 11px;
  cursor: pointer;
  background: var(--bg-primary, #fff);
  border: 1px solid var(--border-default, #DCDFE6);
  color: var(--text-secondary, #606266);
  transition: all 0.15s;
}

.dr-fmt.active {
  background: var(--tw-text-link, #1B65B9);
  color: #fff;
  border-color: var(--tw-text-link, #1B65B9);
}

.dr-preview-body {
  flex: 1;
  overflow: auto;
  padding: 20px;
  color: var(--text-primary, #303133);
}

/* 右栏: 审核操作 */
.dr-panel-review {
  width: 300px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  border-left: 1px solid var(--border-default, #E6E8EB);
}

.dr-review-header {
  padding: 8px 12px;
  font-size: 12px;
  font-weight: 600;
  background: var(--tw-bg-tertiary, #F5F7FA);
  border-bottom: 1px solid var(--border-default, #E6E8EB);
  color: var(--text-primary, #303133);
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

.dr-analysis {
  flex: 1;
  overflow-y: auto;
  padding: 12px;
}

.dr-dimension {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 0;
  font-size: 12px;
  color: var(--text-primary, #303133);
  border-bottom: 1px dashed var(--border-default, #E6E8EB);
}

.dr-dim-detail {
  font-size: 11px;
  color: var(--text-secondary, #606266);
  padding: 2px 0 8px 0;
  line-height: 1.5;
}

.dr-dimension .pass {
  color: #67C23A;
  font-weight: 600;
}

.dr-dimension .fail {
  color: #F56C6C;
  font-weight: 600;
}

.dr-conclusion {
  margin-top: 12px;
  padding: 10px 12px;
  background: #ECF5FF;
  border-radius: 6px;
  border: 1px solid #B3D8FF;
  font-size: 12px;
  color: var(--text-primary, #303133);
  line-height: 1.6;
}

.dr-actions {
  padding: 12px;
  border-top: 1px solid var(--border-default, #E6E8EB);
  flex-shrink: 0;
}

.dr-action-buttons {
  display: flex;
  gap: 8px;
}

/* ================================================================
   文档只读查看弹框 (DocViewDialog) — 两栏布局
   ================================================================ */

.doc-view-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: de-overlay-in 0.2s ease-out;
}

.doc-view-container {
  width: 90%;
  height: 80%;
  background: var(--bg-primary, #fff);
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.2);
}

.doc-view-header {
  height: 48px;
  min-height: 48px;
  background: #606266;
  color: #fff;
  display: flex;
  align-items: center;
  padding: 0 16px;
  justify-content: space-between;
  flex-shrink: 0;
}

.dvh-left {
  font-size: 14px;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 8px;
}

.dvh-right {
  display: flex;
  align-items: center;
  gap: 12px;
}

.dvh-format-switch {
  display: flex;
  gap: 4px;
}

.dvh-fmt {
  padding: 3px 10px;
  border-radius: 4px;
  font-size: 11px;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
  transition: all 0.15s;
}

.dvh-fmt.active {
  background: #fff;
  color: #606266;
  font-weight: 600;
}

.doc-view-main {
  flex: 1;
  display: flex;
  overflow: hidden;
  min-height: 0;
}

.dv-panel-preview {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.dv-preview-body {
  flex: 1;
  overflow: auto;
  padding: 24px;
  color: var(--text-primary, #303133);
}

.dv-panel-qc {
  width: 320px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  border-left: 1px solid var(--border-default, #E6E8EB);
}

.dv-qc-header {
  padding: 8px 12px;
  font-size: 12px;
  font-weight: 600;
  background: var(--tw-bg-tertiary, #F5F7FA);
  border-bottom: 1px solid var(--border-default, #E6E8EB);
  color: var(--text-primary, #303133);
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

.dv-qc-body {
  padding: 12px;
}

.dv-qc-section-title {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-primary, #303133);
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 4px;
}

.dv-qc-dimension {
  margin-bottom: 10px;
}

.dv-qc-dim-header {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
}

.dv-qc-dim-name {
  color: var(--text-primary, #303133);
  flex: 1;
}

.dv-qc-dim-score {
  font-weight: 600;
  font-size: 12px;
}

.dv-qc-dim-score.pass {
  color: #67C23A;
}

.dv-qc-dim-score.warn {
  color: #E6A23C;
}

.dv-qc-dim-score.fail {
  color: #F56C6C;
}

.dv-qc-dim-detail {
  font-size: 11px;
  color: var(--text-secondary, #606266);
  padding-left: 20px;
  line-height: 1.5;
  margin-top: 2px;
}

.dv-qc-conclusion,
.dv-qc-suggestion {
  padding: 12px;
  border-top: 1px solid var(--border-default, #E6E8EB);
}

.dv-qc-conclusion-text,
.dv-qc-suggestion-text {
  font-size: 12px;
  color: var(--text-primary, #303133);
  line-height: 1.6;
  margin-top: 6px;
}

/* ================================================================
   拜访记录弹框 (VisitRecordDialog) — 三栏布局
   ================================================================ */

.visit-record-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: de-overlay-in 0.2s ease-out;
}

.visit-record-container {
  width: 95%;
  height: 85%;
  background: var(--bg-primary, #fff);
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.2);
}

.visit-record-header {
  height: 48px;
  min-height: 48px;
  background: #67C23A;
  color: #fff;
  display: flex;
  align-items: center;
  padding: 0 16px;
  justify-content: space-between;
  flex-shrink: 0;
}

.vrh-left {
  font-size: 14px;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 8px;
}

.visit-record-main {
  flex: 1;
  display: flex;
  overflow: hidden;
  min-height: 0;
}

/* 左栏: 拜访计划 */
.vr-panel-plan {
  width: 280px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--border-default, #E6E8EB);
}

.vr-panel-header {
  padding: 8px 12px;
  font-size: 12px;
  font-weight: 600;
  background: var(--tw-bg-tertiary, #F5F7FA);
  border-bottom: 1px solid var(--border-default, #E6E8EB);
  color: var(--text-primary, #303133);
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

.vr-plan-body {
  flex: 1;
  overflow: auto;
  padding: 16px;
  color: var(--text-primary, #303133);
}

/* 中栏: 拜访记录 */
.vr-panel-record {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.vr-record-toolbar {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  border-bottom: 1px solid var(--border-default, #E6E8EB);
  background: var(--tw-bg-tertiary, #F5F7FA);
  flex-shrink: 0;
}

.vr-record-toolbar button {
  padding: 4px 10px;
  border: 1px solid var(--border-default, #DCDFE6);
  border-radius: 3px;
  background: var(--bg-primary, #fff);
  cursor: pointer;
  font-size: 12px;
  color: var(--text-secondary, #606266);
  display: flex;
  align-items: center;
  gap: 4px;
}

.vr-record-toolbar button:hover {
  border-color: var(--tw-text-link, #1B65B9);
  color: var(--tw-text-link, #1B65B9);
}

.vr-tb-sep {
  width: 1px;
  height: 16px;
  background: var(--border-default, #DCDFE6);
  margin: 0 4px;
}

.vr-record-body {
  flex: 1;
  overflow: auto;
  padding: 24px;
  font-size: 14px;
  line-height: 1.8;
  outline: none;
  color: var(--text-primary, #303133);
}

/* 右栏: Agent 对话 */
.vr-panel-agent {
  width: 300px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  border-left: 1px solid var(--border-default, #E6E8EB);
}

.vr-agent-header {
  padding: 8px 12px;
  font-size: 12px;
  font-weight: 600;
  background: var(--tw-bg-tertiary, #F5F7FA);
  border-bottom: 1px solid var(--border-default, #E6E8EB);
  color: var(--text-primary, #303133);
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

.vr-footer-actions {
  padding: 8px 12px;
  border-top: 1px solid var(--border-default, #E6E8EB);
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.vr-next-action {
  margin-bottom: 4px;
}

.vr-na-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--text-secondary, #606266);
  margin-bottom: 4px;
}

.vr-na-options {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.vr-na-radio {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--text-primary, #303133);
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 4px;
  transition: background 0.15s;
}

.vr-na-radio:hover {
  background: var(--tw-bg-tertiary, #F5F7FA);
}

.vr-na-radio.active {
  background: #ECF5FF;
  color: var(--tw-text-link, #1B65B9);
  font-weight: 500;
}

.vr-na-radio input[type="radio"] {
  accent-color: var(--tw-text-link, #1B65B9);
}

/* ================================================================
   预填 & KCP 弹框 (PrefillKcpDialog) — 两栏布局
   ================================================================ */

.prefill-kcp-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: de-overlay-in 0.2s ease-out;
}

.prefill-kcp-container {
  width: 90%;
  height: 80%;
  background: var(--bg-primary, #fff);
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.2);
}

.prefill-kcp-header {
  height: 48px;
  min-height: 48px;
  background: #E6A23C;
  color: #fff;
  display: flex;
  align-items: center;
  padding: 0 16px;
  justify-content: space-between;
  flex-shrink: 0;
}

.pkh-left {
  font-size: 14px;
  font-weight: 500;
}

.prefill-kcp-main {
  flex: 1;
  display: flex;
  overflow: hidden;
  min-height: 0;
}

.pk-panel-left {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  padding: 16px;
  min-width: 0;
}

.pk-section {
  margin-bottom: 16px;
}

.pk-section-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary, #303133);
  margin-bottom: 8px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--border-default, #E6E8EB);
}

.pk-field-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.pk-field-item {
  padding: 10px 12px;
  border: 1px solid var(--border-default, #E6E8EB);
  border-radius: 8px;
  background: var(--bg-primary, #fff);
}

.pk-fi-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 4px;
}

.pk-fi-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-primary, #303133);
}

.pk-fi-value {
  font-size: 13px;
  color: var(--text-primary, #303133);
  padding: 4px 0;
}

.pk-fi-source {
  font-size: 11px;
  color: var(--tw-text-link, #1B65B9);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 4px;
}

.pk-fi-source:hover {
  text-decoration: underline;
}

.pk-kcp-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.pk-kcp-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 12px;
}

.pk-kcp-item.pass {
  background: #F0F9EB;
  color: var(--text-primary, #303133);
}

.pk-kcp-item.fail {
  background: #FEF0F0;
  color: var(--text-primary, #303133);
}

.pk-kcp-item.pending {
  background: var(--tw-bg-tertiary, #F5F7FA);
  color: var(--text-primary, #303133);
}

.pk-kcp-summary {
  margin-top: 10px;
  padding: 8px 12px;
  background: var(--tw-bg-tertiary, #F5F7FA);
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  text-align: center;
}

.pk-submit-area {
  padding-top: 12px;
  border-top: 1px solid var(--border-default, #E6E8EB);
  margin-top: auto;
}

.pk-original-assignee {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary, #303133);
  padding: 8px 12px;
  background: #FEF0F0;
  border-radius: 6px;
}

.pk-candidate-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.pk-candidate-card {
  display: flex;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--border-default, #DCDFE6);
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.15s;
}

.pk-candidate-card:hover {
  border-color: var(--tw-text-link, #1B65B9);
}

.pk-candidate-card.selected {
  border-color: var(--tw-text-link, #1B65B9);
  background: #ECF5FF;
  box-shadow: 0 0 0 2px rgba(27, 101, 185, 0.15);
}

.pk-cc-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--tw-text-link, #1B65B9), #3CA0F6);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 600;
  flex-shrink: 0;
}

.pk-cc-info {
  flex: 1;
  min-width: 0;
}

.pk-cc-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary, #303133);
}

.pk-cc-meta {
  font-size: 11px;
  color: var(--text-tertiary, #909399);
  margin-top: 2px;
}

.pk-cc-reason {
  font-size: 11px;
  color: var(--text-secondary, #606266);
  margin-top: 4px;
  line-height: 1.4;
}

.pk-cc-load {
  flex-shrink: 0;
  font-size: 11px;
  color: var(--text-tertiary, #909399);
  display: flex;
  align-items: center;
}

.pk-panel-agent {
  width: 300px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  border-left: 1px solid var(--border-default, #E6E8EB);
}

/* ==================== SLA 倒计时动画 ==================== */

@keyframes pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
}

/* SLA 紧急状态闪烁指示器 */
.sla-critical-pulse {
  animation: pulse 1s ease-in-out infinite;
}

/* ==================== 工作台视觉微调补丁（2026-07） ====================
 * 原则：不改结构，仅优化 spacing / hover / 品牌色一致性 / 呼吸感
 * 覆盖范围：PageHeader / 聊天气泡 / 分组头 / 任务卡片 / 空态 / 批量操作栏
 */

/* ---- 1. PageHeader 精致化 ---- */
.tw-workbench .page-header {
  padding: 12px 24px;
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfd 100%);
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.03);
}

.tw-workbench .page-header .ph-title {
  font-size: 15px;
  letter-spacing: 0.3px;
}

.tw-workbench .page-header .ph-title::before {
  width: 3px;
  height: 14px;
  background: linear-gradient(180deg, var(--tw-text-link), var(--tw-brand-7, #1d4ed8));
  border-radius: 2px;
}

.tw-workbench .page-header .ph-badge {
  background: linear-gradient(135deg, #ff8787, #f56c6c);
  box-shadow: 0 2px 4px rgba(245, 108, 108, 0.35);
  padding: 2px 8px;
  font-size: 11px;
}

.tw-workbench .page-header .ph-status {
  padding: 4px 10px;
  border-radius: 12px;
  background: color-mix(in srgb, #67c23a 10%, transparent);
  color: #4c9c2a;
  font-weight: 500;
}

.tw-workbench .page-header .ph-status.executing {
  background: color-mix(in srgb, #faad14 12%, transparent);
  color: #b8770e;
}

.tw-workbench .page-header .ph-user {
  background: linear-gradient(135deg, var(--tw-text-link), var(--tw-brand-7, #1d4ed8));
  box-shadow:
    0 2px 6px color-mix(in srgb, var(--tw-text-link) 30%, transparent),
    0 0 0 1px color-mix(in srgb, var(--tw-text-link) 15%, transparent);
  border: 2px solid #fff;
}

/* ---- 2. 对话区背景 & 头像柔化 ---- */
.tw-chat-list-view {
  background: linear-gradient(180deg, #fafbfc 0%, #f4f6f9 100%);
  position: relative;
}

.tw-chat-list-view__conversation {
  padding: 24px 28px;
}

.tw-chat-list-view .chat-avatar {
  background: linear-gradient(135deg, #ffffff 0%, var(--tw-brand-1, #ecf5ff) 100%);
  box-shadow:
    0 2px 6px rgba(15, 23, 42, 0.06),
    0 0 0 1px color-mix(in srgb, var(--tw-text-link) 15%, transparent);
}

/* ---- 3. 聊天气泡阴影与圆角 ---- */
.tw-chat-list-view .chat-bubble {
  border-radius: 14px;
  border-color: rgba(230, 232, 235, 0.7);
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.04),
    0 2px 8px rgba(15, 23, 42, 0.04);
}

.tw-chat-list-view .chat-bubble.full-width {
  padding: 0;
  border-radius: 14px;
  overflow: hidden;
  box-shadow:
    0 2px 4px rgba(15, 23, 42, 0.04),
    0 8px 24px rgba(15, 23, 42, 0.06);
}

.tw-chat-list-view .chat-bubble.full-width > div:first-child {
  background: linear-gradient(180deg, #fbfcfd 0%, #ffffff 100%);
}

/* ---- 4. 筛选按钮（pill 风格） ---- */
.fr-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 14px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 500;
  color: #606266;
  background: #f4f5f7;
  border: 1px solid transparent;
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
  transition: transform 0.18s ease, color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.fr-btn:hover {
  transform: translateY(-1px);
  background: #eef0f4;
  color: #303133;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.06);
}

.fr-btn.active {
  background: var(--tw-text-link, #1b65b9);
  color: #fff;
  border-color: var(--tw-text-link, #1b65b9);
  box-shadow: 0 2px 8px color-mix(in srgb, var(--tw-text-link, #1b65b9) 25%, transparent);
}

/* ---- 筛选行容器 ---- */
.filter-rows {
  padding: 12px 16px 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.filter-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.filter-row-label {
  font-size: 12px;
  color: #909399;
  font-weight: 500;
  margin-right: 4px;
  flex-shrink: 0;
  min-width: 36px;
}

/* ---- 5. 分组标题（紧急 / 普通 / 宽裕） ---- */
.urgent-header,
.section-header {
  padding: 6px 10px;
  border-radius: 6px;
  margin-bottom: 6px;
}

.urgent-header {
  background: linear-gradient(90deg, color-mix(in srgb, #f56c6c 10%, transparent), transparent 70%);
  border-left: 3px solid #f56c6c;
}

.section-header {
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.02), transparent 70%);
  border-left: 3px solid #dcdfe6;
}

/* ---- 6. 任务卡片（补齐 .task-card 主样式） ---- */
.task-card {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px 10px 16px;
  background: #fff;
  border: 1px solid #eef0f2;
  border-radius: 8px;
  margin-bottom: 6px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: transform 0.18s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.task-card::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: #dcdfe6;
  transition: background 0.2s ease;
}

.task-card.urgent::before  { background: linear-gradient(180deg, #ff7875, #f56c6c); }
.task-card.normal::before  { background: linear-gradient(180deg, #ffc069, #e6a23c); }
.task-card.relaxed::before { background: linear-gradient(180deg, #95de64, #67c23a); }

.task-card:hover {
  border-color: color-mix(in srgb, var(--tw-text-link) 40%, transparent);
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
  transform: translateY(-1px);
}

.task-card.archived {
  transform: none !important;
  box-shadow: none !important;
}

/* ---- 7. 处理按钮 & 状态标签 ---- */
.tc-btn.primary {
  box-shadow: 0 2px 4px color-mix(in srgb, var(--tw-text-link) 25%, transparent);
  transition: transform 0.15s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.tc-btn.primary:hover {
  box-shadow: 0 3px 8px color-mix(in srgb, var(--tw-text-link) 40%, transparent);
  transform: translateY(-1px);
}

.tc-btn.primary:disabled {
  opacity: 0.6;
  box-shadow: none;
  transform: none;
}

.status-tag {
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.tc-sop-tag {
  padding: 2px 10px;
  border-radius: 10px;
  letter-spacing: 0.2px;
}

/* ---- 8. 空状态 ---- */
.empty-state {
  padding: 72px 20px;
}

.empty-state .empty-icon {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #f5f7fa 0%, var(--tw-brand-1, #ecf5ff) 100%);
  margin-bottom: 16px;
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.04);
}

.empty-state .empty-text {
  font-weight: 500;
  color: #606266;
  margin-bottom: 4px;
}

/* ---- 9. 批量操作浮动 Pill ---- */
.tw-bulk-action-bar {
  position: absolute;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px 8px 18px;
  background: linear-gradient(135deg, var(--tw-text-link), var(--tw-brand-7, #1d4ed8));
  color: #fff;
  border-radius: 999px;
  box-shadow:
    0 10px 28px color-mix(in srgb, var(--tw-text-link) 35%, transparent),
    0 2px 6px rgba(15, 23, 42, 0.12);
  font-size: 13px;
  z-index: 20;
  animation: bulkBarSlideIn 0.25s ease;
}

@keyframes bulkBarSlideIn {
  from { opacity: 0; transform: translate(-50%, 12px); }
  to   { opacity: 1; transform: translate(-50%, 0); }
}

.tw-bulk-action-bar .bulk-count {
  font-weight: 500;
  padding-right: 4px;
}

.tw-bulk-action-bar .bulk-btn {
  display: inline-flex;
  align-items: center;
  padding: 5px 14px;
  border-radius: 999px;
  border: 1px solid transparent;
  cursor: pointer;
  font-size: 12px;
  font-weight: 500;
  transition: transform 0.15s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.tw-bulk-action-bar .bulk-btn.primary {
  background: #fff;
  color: var(--tw-text-link);
}
.tw-bulk-action-bar .bulk-btn.primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.2);
}

.tw-bulk-action-bar .bulk-btn.ghost {
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.35);
}
.tw-bulk-action-bar .bulk-btn.ghost:hover {
  background: rgba(255, 255, 255, 0.28);
}

.tw-bulk-action-bar .bulk-btn.close {
  background: transparent;
  color: rgba(255, 255, 255, 0.85);
  padding: 5px 12px;
  border-color: rgba(255, 255, 255, 0.28);
}
.tw-bulk-action-bar .bulk-btn.close:hover {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
}

/* ---- 10. 微调补丁的深色模式覆盖 ---- */
[data-theme="dark"] .tw-workbench .page-header {
  background: linear-gradient(180deg, var(--surface-base) 0%, var(--surface-card, var(--surface-base)) 100%);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.35);
}

[data-theme="dark"] .tw-workbench .page-header .ph-badge {
  background: linear-gradient(135deg, #ff8787, var(--tw-status-error, #f56c6c));
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.35);
}

[data-theme="dark"] .tw-workbench .page-header .ph-status {
  background: color-mix(in srgb, var(--tw-status-success) 18%, transparent);
  color: var(--tw-status-success);
}

[data-theme="dark"] .tw-workbench .page-header .ph-status.executing {
  background: color-mix(in srgb, var(--tw-status-warning) 20%, transparent);
  color: var(--tw-status-warning);
}

[data-theme="dark"] .tw-workbench .page-header .ph-user {
  box-shadow:
    0 2px 6px color-mix(in srgb, var(--tw-text-link) 45%, transparent),
    0 0 0 1px color-mix(in srgb, var(--tw-text-link) 25%, transparent);
  border-color: var(--surface-base);
}

[data-theme="dark"] .tw-chat-list-view {
  background: var(--tw-bg-tertiary, var(--surface-base));
}

[data-theme="dark"] .tw-chat-list-view .chat-avatar {
  background: color-mix(in srgb, var(--tw-text-link) 18%, var(--surface-card));
  box-shadow:
    0 2px 6px rgba(0, 0, 0, 0.35),
    0 0 0 1px color-mix(in srgb, var(--tw-text-link) 30%, transparent);
}

[data-theme="dark"] .tw-chat-list-view .chat-bubble {
  border-color: var(--border-default);
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.25),
    0 2px 8px rgba(0, 0, 0, 0.28);
}

[data-theme="dark"] .tw-chat-list-view .chat-bubble.full-width {
  box-shadow:
    0 2px 4px rgba(0, 0, 0, 0.3),
    0 8px 24px rgba(0, 0, 0, 0.4);
}

[data-theme="dark"] .tw-chat-list-view .chat-bubble.full-width > div:first-child {
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--surface-card) 92%, #fff) 0%,
    var(--surface-card) 100%);
}

[data-theme="dark"] .fr-btn:hover {
  box-shadow: 0 2px 6px color-mix(in srgb, var(--tw-text-link) 30%, transparent);
}

[data-theme="dark"] .fr-btn.active {
  box-shadow: 0 2px 8px color-mix(in srgb, var(--tw-text-link) 45%, transparent);
}

[data-theme="dark"] .urgent-header {
  background: linear-gradient(90deg, color-mix(in srgb, var(--tw-status-error) 22%, transparent), transparent 70%);
  border-left-color: var(--tw-status-error);
}

[data-theme="dark"] .section-header {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.04), transparent 70%);
  border-left-color: var(--border-default);
}

[data-theme="dark"] .task-card {
  background: var(--surface-card);
  border-color: var(--border-default);
}

[data-theme="dark"] .task-card::before {
  background: var(--border-default);
}

[data-theme="dark"] .task-card:hover {
  border-color: color-mix(in srgb, var(--tw-text-link) 55%, transparent);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
}

[data-theme="dark"] .task-card.archived {
  background: color-mix(in srgb, var(--surface-card) 80%, #000);
}

[data-theme="dark"] .tc-btn.primary {
  box-shadow: 0 2px 4px color-mix(in srgb, var(--tw-text-link) 45%, transparent);
}

[data-theme="dark"] .tc-btn.primary:hover {
  box-shadow: 0 3px 8px color-mix(in srgb, var(--tw-text-link) 60%, transparent);
}

[data-theme="dark"] .status-tag {
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}

[data-theme="dark"] .empty-state .empty-icon {
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--surface-card) 92%, #fff) 0%,
    color-mix(in srgb, var(--tw-text-link) 18%, var(--surface-card)) 100%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}

[data-theme="dark"] .empty-state .empty-text {
  color: var(--text-primary);
}

[data-theme="dark"] .empty-state .empty-desc {
  color: var(--text-tertiary);
}

[data-theme="dark"] .tw-bulk-action-bar {
  box-shadow:
    0 10px 28px color-mix(in srgb, var(--tw-text-link) 55%, transparent),
    0 2px 6px rgba(0, 0, 0, 0.4);
}

/* ==================== 新建任务按钮 & 弹窗样式 ==================== */

.create-task-btn {
  padding: 4px 12px 8px;
  font-size: 12px;
  font-weight: 500;
  color: var(--tw-text-link);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: all 0.2s;
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 2px;
}

.create-task-btn:hover {
  color: var(--tw-brand-7, #1d4ed8);
  background: color-mix(in srgb, var(--tw-text-link) 6%, transparent);
  border-radius: 4px 4px 0 0;
}

/* AI 辅助填写区 */
.create-task-ai-zone {
  background: color-mix(in srgb, var(--tw-text-link) 4%, transparent);
  border: 1px solid color-mix(in srgb, var(--tw-text-link) 15%, transparent);
  border-radius: 8px;
  padding: 12px;
}

.create-task-ai-header {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--tw-text-link);
  margin-bottom: 8px;
}

.create-task-ai-input {
  display: flex;
  gap: 8px;
  align-items: flex-start;
}

.create-task-ai-input .ant-input {
  flex: 1;
}

/* 表单区 */
.create-task-form .ctf-field {
  margin-bottom: 14px;
}

.create-task-form .ctf-label {
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: var(--text-primary, #303133);
  margin-bottom: 4px;
}

.create-task-form .ctf-label.ctf-required::before {
  content: '*';
  color: #f56c6c;
  margin-right: 4px;
}

/* 附件区 */
.ctf-attachments {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ctf-att-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  background: var(--surface-sidebar, #f5f7fa);
  border-radius: 6px;
  font-size: 12px;
  border: 1px solid var(--border-default, #eef0f2);
}

.ctf-att-name {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text-primary, #303133);
}

.ctf-att-del {
  cursor: pointer;
  color: #909399;
  transition: color 0.2s;
}

.ctf-att-del:hover {
  color: #f56c6c;
}

/* 底部操作栏 */
.create-task-footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--border-default, #eef0f2);
}

/* ============================================
   任务详情面板统一样式 (cp-card / cp-card-title / cp-info-grid / cp-callout / cp-full-btn / cp-tag)
   ============================================ */

/* A1. 统一卡片容器 */
.cp-card {
  background: var(--surface-card, #fff);
  border-radius: 8px;
  padding: 14px 16px;
  margin-bottom: 12px;
  border: 1px solid var(--border-default, #eef0f2);
}

/* A2. 统一卡片标题（带蓝色左边缀） */
.cp-card-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary, #303133);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.cp-card-title::before {
  content: '';
  display: inline-block;
  width: 3px;
  height: 14px;
  background: var(--tw-text-link, #4096ff);
  border-radius: 1px;
}

/* A3. 键值对网格 */
.cp-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 24px;
}
.cp-info-grid-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
}
.cp-info-grid-label {
  color: var(--text-secondary, #909399);
  white-space: nowrap;
  flex-shrink: 0;
  min-width: 56px;
}
.cp-info-grid-value {
  color: var(--text-primary, #303133);
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* A4. 提示/警告区块 */
.cp-callout {
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 12px;
  line-height: 1.6;
}
.cp-callout--warning {
  background: rgba(250, 173, 20, 0.08);
  border: 1px solid rgba(230, 162, 60, 0.19);
}
.cp-callout--info {
  background: var(--surface-sidebar, #f5f7fa);
  border: 1px solid var(--border-default, #eef0f2);
}
.cp-callout--success {
  background: rgba(103, 194, 58, 0.08);
  border: 1px solid rgba(103, 194, 58, 0.4);
}

/* A5. 全宽操作按钮 */
.cp-full-btn {
  width: 100%;
  margin-top: 8px;
  padding: 6px 12px;
  border: none;
  border-radius: 4px;
  font-size: 12px;
  cursor: pointer;
}
.cp-full-btn--primary {
  background: var(--tw-text-link, #4096ff);
  color: #fff;
}
.cp-full-btn--warning {
  background: var(--tw-status-warning, #faad14);
  color: #fff;
}

/* A6. 通用标签 */
.cp-tag {
  display: inline-flex;
  align-items: center;
  padding: 1px 8px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
}
.cp-tag--success {
  background: rgba(103, 194, 58, 0.1);
  color: #67c23a;
}
.cp-tag--warning {
  background: rgba(250, 173, 20, 0.1);
  color: #e6a23c;
}
.cp-tag--default {
  background: rgba(0, 0, 0, 0.04);
  color: #909399;
}

/* 数据查看器（InputOutputViewer） */
.cp-data-viewer {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 16px;
  padding: 10px;
  background: var(--surface-sidebar, #f5f7fa);
  border-radius: 6px;
  border: 1px solid var(--border-default, #eef0f2);
}
.cp-data-viewer-item {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 8px 10px;
  background: var(--surface-card, #fff);
  border-radius: 5px;
  border: 1px solid var(--border-default, #eef0f2);
  font-size: 12px;
  position: relative;
}
.cp-data-viewer-key {
  color: var(--text-secondary, #909399);
  font-size: 11px;
  font-weight: 500;
}
.cp-data-viewer-val {
  color: var(--text-primary, #303133);
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 附件列表（AttachmentList） */
.cp-att-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px;
  background: var(--surface-sidebar, #f5f7fa);
  border-radius: 6px;
  border: 1px solid var(--border-default, #eef0f2);
}
.cp-att-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  background: var(--surface-card, #fff);
  border-radius: 5px;
  border: 1px solid var(--border-default, #eef0f2);
}
.cp-att-name {
  font-size: 12px;
  font-weight: 500;
  color: var(--text-primary, #303133);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cp-att-meta {
  font-size: 11px;
  color: var(--text-tertiary, #c0c4cc);
  margin-top: 2px;
}

/* SLA 升级记录 */
.cp-sla-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.cp-sla-item {
  padding: 8px 10px;
  border-radius: 6px;
}
.cp-sla-item--critical {
  background: rgba(255, 77, 79, 0.08);
  border: 1px solid rgba(255, 77, 79, 0.2);
}
.cp-sla-item--warning {
  background: rgba(250, 173, 20, 0.08);
  border: 1px solid rgba(250, 173, 20, 0.2);
}
.cp-sla-badge {
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 4px;
  display: inline-block;
}
.cp-sla-badge--critical {
  color: var(--tw-status-error, #ff4d4f);
  background: rgba(255, 77, 79, 0.15);
}
.cp-sla-badge--warning {
  color: var(--tw-status-warning, #faad14);
  background: rgba(250, 173, 20, 0.15);
}
