/**
 * 文件 input: 无
 * 文件 output: 选号虾面板 CSS（含可折叠操作工具卡样式 + API 直采状态条 6 态配色）
 * 文件 pos: 面板样式模板，由 panel-injector.js 加载注入
 *
 * 一旦我被更新，务必更新我的开头注释，以及所属的文件夹的 md
 *
 * 2026-06-09: R5 grid-3+grid-2 合并为 .xingtu-panel-grid（repeat(2,minmax(0,1fr))/gap 12px 14px/align-items end）
 * 2026-06-11: 新增 .footer-switches/.footer-switch-item —— footer-info 内常显录入开关组（内部版），不走 cpm-hover-switch
 * 2026-07-09: 新增 .qlp-help-icon，用于项目名称旁问号 hover 提示
 * 2026-07-10: 问号 tooltip 改为向右展开，右栏补稳定滚动条
 * 2026-07-17: legacy 右栏改为去重区独立滚动，操作工具固定留在可见区
 */

/* ========================================
   选号虾 面板样式
   基于 TailwindCSS 风格重构
   ======================================== */

html,
body {
  width: 100%;
  height: 100%;
  margin: 0;
  overflow: hidden;
  background: #f8f6f7;
}

body {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px 24px;
  box-sizing: border-box;
}

/* 原型按 Vibe 外部版注入面板展示：内部运营字段不占位，外部字段按原有元素类型自然排版。 */
#qingli-ai-filter-panel [data-internal-only="true"] {
  display: none !important;
}

#qingli-ai-filter-panel {
  --ql-primary: #e84a87;
  --ql-primary-hover: #d63d76;
  --ql-primary-light: #f8d7de;
  --ql-primary-fade: rgba(232, 74, 135, 0.1);
  --ql-surface-light: #ffffff;
  --ql-surface-dark: #2d1b22;
  --ql-background-light: #f8f6f7;
  --ql-border: #e5dcdf;
  --ql-border-dark: rgba(232, 74, 135, 0.2);
  --ql-text: #181114;
  --ql-text-secondary: #886371;
  --ql-text-disabled: #b0a0a8;
  --ql-danger: #ef4444;
  --ql-primary-lightest: #fef0f4;

  /* 阴影 & 圆角 */
  --ql-shadow:
    0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  --ql-shadow-lg:
    0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  --ql-radius: 14px;            /* chief 2026-06-17 胶囊化:panel 外层圆角 8→14 */
  --ql-radius-input: 10px;       /* input/select/textarea 6→10 */
  --ql-radius-card: 14px;        /* 容器卡片 8→14 */
  --ql-radius-pill: 9999px;      /* 全胶囊(segmented/chip) */

  font-family: "Inter", "Noto Sans", sans-serif;
  background-color: var(--ql-surface-light);
  border: 1px solid var(--ql-border);
  border-radius: var(--ql-radius);
  box-shadow: var(--ql-shadow-lg);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  width: min(100%, calc(100vw - 48px));
  height: min(620px, calc(100vh - 32px));
  max-height: calc(100vh - 32px);
  max-width: 100%;
  margin: 0;
  box-sizing: border-box;
}

/* 暗色模式支持 (通过 .dark 类控制，或后续根据系统偏好) */
#qingli-ai-filter-panel.dark {
  background-color: var(--ql-surface-dark);
  border-color: var(--ql-border-dark);
}

#qingli-ai-filter-panel * {
  box-sizing: border-box;
}

/* 滚动条样式 */
#qingli-ai-filter-panel ::-webkit-scrollbar {
  width: 3px;
  height: 3px;
}
#qingli-ai-filter-panel ::-webkit-scrollbar-track {
  background: transparent;
}
#qingli-ai-filter-panel ::-webkit-scrollbar-thumb {
  background-color: #e5dcdf;
  border-radius: 3px;
}
#qingli-ai-filter-panel ::-webkit-scrollbar-thumb:hover {
  background-color: #e84a87;
}

/* 顶部标题栏 */
#qingli-ai-filter-panel .panel-header {
  padding: 0 16px;
  height: 48px;
  border-bottom: 1px solid var(--ql-border);
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: white;
  flex-shrink: 0;
}

/* 采集状态点脉动动画：顶部状态条已删（2026-06-10，与 CTA 变身重复），
   keyframes 保留 —— CTA 变身的 .qingli-cta-status-dot 仍在用 */
@keyframes qingliAcsPulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}

#qingli-ai-filter-panel .panel-title-wrapper {
  display: flex;
  align-items: center;
  gap: 8px;
}

#qingli-ai-filter-panel .panel-icon {
  color: var(--ql-primary);
  font-size: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
}

#qingli-ai-filter-panel .panel-title {
  color: var(--ql-text);
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
}

#qingli-ai-filter-panel .panel-version {
  color: var(--ql-text-secondary);
  font-size: 12px;
  font-weight: 400;
  margin-left: 8px;
  opacity: 0.8;
}

#qingli-ai-filter-panel .panel-close-btn {
  width: 28px;
  height: 28px;
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ql-text-secondary);
  border: none;
  background: transparent;
  cursor: pointer;
  transition: background-color 0.2s;
}

#qingli-ai-filter-panel .panel-close-btn:hover {
  background-color: #f4f0f2;
}

/* 主体内容区 - 两栏布局 */
#qingli-ai-filter-panel .panel-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  height: 0;
  overflow: hidden;
}

@media (min-width: 768px) {
  #qingli-ai-filter-panel .panel-body {
    flex-direction: row;
    height: 0;
  }
}

/* 左侧：任务配置 */
#qingli-ai-filter-panel .left-col {
  flex: 1;
  min-height: 0;
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  overflow-y: auto;
  border-right: 1px solid var(--ql-border);
}

/* 右侧：结果去重 */
#qingli-ai-filter-panel .right-col {
  flex: 1;
  min-height: 0;
  height: 100%;
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-gutter: stable;
  background-color: #fff;
}

/* legacy 操作工具是筛号主操作，不能随右栏长表单滚出视口。
   API profile 会把工具移入 hidden parking，因此只收口 legacy 原始两栏。 */
#qingli-ai-filter-panel:not(.qingli-api-proto-panel) .right-col {
  overflow-y: hidden;
}

#qingli-ai-filter-panel:not(.qingli-api-proto-panel) .right-col > .dedup-section {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  scrollbar-gutter: stable;
}

#qingli-ai-filter-panel:not(.qingli-api-proto-panel) .right-col > .tools-card {
  flex: 0 0 auto;
}
#qingli-ai-filter-panel:not(.qingli-api-proto-panel) .right-col > .tools-card > .tools-card-body {
  display: flex !important;
  visibility: visible !important;
}

/* 三块 section 视觉分块：任务配置 / 条件筛选 / 结果去重统一浅色卡片语言 */
#qingli-ai-filter-panel #qingli-brief-section,
#qingli-ai-filter-panel .filter-config-section,
#qingli-ai-filter-panel .dedup-section {
  background-color: #faf7f8;
  border: 1px solid var(--ql-border);
  border-radius: var(--ql-radius-card);
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  box-shadow: 0 1px 2px rgba(24, 17, 20, 0.03);
}

/* 画像筛选保留白底独立层级，与外层灰底 section 形成层次（chief 2026-06-17） */
#qingli-ai-filter-panel .filter-config-section .portrait-inline {
  background: #fff;
  border: 1px solid var(--ql-border);
  border-radius: var(--ql-radius-card);
}

/* 去重引导锚点：包结果去重搜索、规则选择、排除 UID，不含下方操作工具 */
#qingli-ai-filter-panel .dedup-section {
  flex-shrink: 0;
}

#qingli-ai-filter-panel .dedup-section .tags-container {
  background-color: #faf7f8;
}

#qingli-ai-filter-panel .dedup-section .form-textarea {
  min-height: 76px;
  background-color: #fff;
}

/* 通用表单元素 */
#qingli-ai-filter-panel .form-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

#qingli-ai-filter-panel .field-label {
  color: var(--ql-text-secondary);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.025em;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

#qingli-ai-filter-panel .field-label.with-help {
  justify-content: flex-start;
  gap: 6px;
}

#qingli-ai-filter-panel .qlp-help-icon {
  position: relative;
  display: inline-flex;
  width: 14px;
  height: 14px;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  border: 1px solid var(--ql-border);
  border-radius: 999px;
  color: var(--ql-text-secondary);
  background: var(--ql-surface-light);
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  cursor: help;
}

#qingli-ai-filter-panel .qlp-help-icon:hover,
#qingli-ai-filter-panel .qlp-help-icon:focus-visible {
  border-color: var(--ql-primary);
  color: var(--ql-primary);
  outline: none;
}

#qingli-ai-filter-panel .qlp-help-icon::after {
  content: attr(data-tooltip);
  position: absolute;
  left: calc(100% + 8px);
  top: 50%;
  z-index: 100000;
  width: max-content;
  max-width: 320px;
  padding: 8px 10px;
  border-radius: 7px;
  background: var(--ql-surface-dark);
  color: var(--ql-surface-light);
  box-shadow: var(--ql-shadow-lg);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.55;
  pointer-events: none;
  text-align: left;
  transform: translate(4px, -50%);
  white-space: pre-line;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.14s ease, transform 0.14s ease, visibility 0.14s ease;
}

#qingli-ai-filter-panel .qlp-help-icon::before {
  content: '';
  position: absolute;
  left: calc(100% + 4px);
  top: 50%;
  z-index: 100001;
  width: 8px;
  height: 8px;
  background: var(--ql-surface-dark);
  pointer-events: none;
  transform: translate(4px, -50%) rotate(45deg);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.14s ease, transform 0.14s ease, visibility 0.14s ease;
}

#qingli-ai-filter-panel .qlp-help-icon:hover::after,
#qingli-ai-filter-panel .qlp-help-icon:hover::before,
#qingli-ai-filter-panel .qlp-help-icon:focus-visible::after,
#qingli-ai-filter-panel .qlp-help-icon:focus-visible::before {
  opacity: 1;
  visibility: visible;
}

#qingli-ai-filter-panel .qlp-help-icon:hover::after,
#qingli-ai-filter-panel .qlp-help-icon:focus-visible::after {
  transform: translate(0, -50%);
}

#qingli-ai-filter-panel .qlp-help-icon:hover::before,
#qingli-ai-filter-panel .qlp-help-icon:focus-visible::before {
  transform: translate(0, -50%) rotate(45deg);
}

#qingli-ai-filter-panel .input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}

#qingli-ai-filter-panel .form-input,
#qingli-ai-filter-panel .form-select,
#qingli-ai-filter-panel .form-textarea {
  width: 100%;
  border: 1px solid var(--ql-border);
  border-radius: var(--ql-radius-input);
  background-color: white;
  color: var(--ql-text);
  font-size: 13px;
  transition: all 0.2s;
  outline: none;
}

#qingli-ai-filter-panel .form-input:focus,
#qingli-ai-filter-panel .form-select:focus,
#qingli-ai-filter-panel .form-textarea:focus {
  border-color: var(--ql-primary);
  box-shadow: 0 0 0 1px var(--ql-primary);
}

#qingli-ai-filter-panel .form-input::placeholder,
#qingli-ai-filter-panel .form-textarea::placeholder {
  color: rgba(136, 99, 113, 0.6);
}

/* 特殊输入框样式 */
#qingli-ai-filter-panel .form-input {
  height: 32px;
  padding: 0 8px;
}
#qingli-ai-filter-panel .form-input.has-icon {
  padding-left: 32px;
}
#qingli-ai-filter-panel .input-icon-left {
  position: absolute;
  left: 10px;
  color: var(--ql-text-secondary);
  pointer-events: none;
  display: flex;
  align-items: center;
}
#qingli-ai-filter-panel .input-icon-right {
  position: absolute;
  right: 6px;
  color: var(--ql-text-secondary);
  pointer-events: none;
  display: flex;
  align-items: center;
}
#qingli-ai-filter-panel .input-prefix {
  position: absolute;
  left: 8px;
  color: var(--ql-text-secondary);
  pointer-events: none;
  display: flex;
  align-items: center;
  font-size: 13px;
}
#qingli-ai-filter-panel .form-input.has-prefix {
  padding-left: 24px;
}

#qingli-ai-filter-panel .form-textarea {
  resize: none;
  padding: 6px 8px;
  line-height: 1.4;
  min-height: 44px;
}

#qingli-ai-filter-panel .form-select {
  height: 32px;
  padding: 0 24px 0 6px;
  appearance: none;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
  background-position: right 0.5rem center;
  background-repeat: no-repeat;
  background-size: 1.5em 1.5em;
  cursor: pointer;
}

/* 基础筛选单 2 列网格（R5）：达人所属/返点/商单断更/画像 收成一个网格。
   align-items:end 让带 label 的格与 portrait 触发器底对齐。
   外部版隐藏达人所属+返点后剩 2 格，画像占满整行的 override 见 panel-script-user-scope.js。 */
#qingli-ai-filter-panel .xingtu-panel-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 14px;
  align-items: end;
}

/* 排除广告 hover 滑出 */
#qingli-ai-filter-panel .cpm-hover-switch {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: var(--ql-text-secondary);
}
#qingli-ai-filter-panel .form-group:hover .cpm-hover-switch,
#qingli-ai-filter-panel .cpm-hover-switch.pinned {
  max-height: 28px;
  opacity: 1;
  margin-top: 4px;
}

/* 画像内联表头里的摘要标签/角标（原触发器复用，常驻内联后仍展示已选摘要） */
#qingli-ai-filter-panel .portrait-trigger-label {
  flex: 1;
  font-size: 12px;
  color: var(--ql-text-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#qingli-ai-filter-panel .portrait-trigger-label.has-value {
  color: var(--ql-text);
  font-weight: 500;
}
#qingli-ai-filter-panel .portrait-trigger-badge {
  display: none;
  font-size: 10px;
  font-weight: 700;
  color: white;
  background: var(--ql-primary);
  border-radius: 9px;
  padding: 1px 6px;
  line-height: 1.4;
}
#qingli-ai-filter-panel .portrait-trigger-badge.show {
  display: inline-block;
}

/* Switch 开关 */
#qingli-ai-filter-panel .switch-label {
  position: relative;
  display: inline-block;
  width: 36px;
  height: 20px;
  cursor: pointer;
  flex-shrink: 0;
}
#qingli-ai-filter-panel .switch-input {
  display: none;
}
#qingli-ai-filter-panel .switch-slider {
  position: absolute;
  inset: 0;
  background: #ccc;
  border-radius: 10px;
  transition: all 0.2s;
}
#qingli-ai-filter-panel .switch-slider::before {
  content: '';
  position: absolute;
  left: 2px;
  top: 2px;
  width: 16px;
  height: 16px;
  background: white;
  border-radius: 50%;
  transition: all 0.2s;
}
#qingli-ai-filter-panel .switch-input:checked + .switch-slider {
  background: var(--ql-primary);
}
#qingli-ai-filter-panel .switch-input:checked + .switch-slider::before {
  transform: translateX(16px);
}

/* 画像筛选 常驻内联展开（chief 2026-06-16：原 fixed 浮层改 left-col 内联;2026-06-17 胶囊化 radius 8→14） */
#qingli-ai-filter-panel .portrait-inline {
  display: flex;
  flex-direction: column;
  width: 100%;
  background: #fff;
  border: 1px solid var(--ql-border);
  border-radius: var(--ql-radius-card);
  overflow: hidden;
}
#qingli-ai-filter-panel .portrait-inline-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: #fafbfc;
  border-bottom: 1px solid var(--ql-border);
}
#qingli-ai-filter-panel .portrait-inline-title {
  font-size: 12px;
  font-weight: 600;
  color: var(--ql-text);
  flex-shrink: 0;
}
#qingli-ai-filter-panel .portrait-inline-header .portrait-trigger-label {
  flex: 1;
}
#qingli-ai-filter-panel .portrait-inline-header .popover-reset-btn {
  height: 24px;
  padding: 0 10px;
  font-size: 11px;
  flex-shrink: 0;
}

/* 画像已选条件气泡 — chief 2026-06-17:挪进 portrait-inline-header 后用 --inline 修饰符紧凑显示 */
#qingli-ai-filter-panel .portrait-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
#qingli-ai-filter-panel .portrait-chips:empty {
  display: none;
}
#qingli-ai-filter-panel .portrait-chips--inline {
  flex: 1 1 auto;
  min-width: 0;
  flex-wrap: nowrap;
  overflow: hidden;
  margin-left: 6px;
  margin-right: auto;
}
#qingli-ai-filter-panel .portrait-chips--inline .portrait-chip {
  flex: 0 1 auto;
  max-width: 240px;
}
/* header 内有 chip 显示时,"未配置" label 自动隐藏(由 panel-script-popover.js 已清 textContent 控,
   多源合一:has() 兜底,空文本仍隐) */
#qingli-ai-filter-panel .portrait-inline-header .portrait-trigger-label:empty {
  display: none;
}
#qingli-ai-filter-panel .portrait-chip {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 3px 10px;
  font-size: 11px;
  line-height: 1.4;
  color: var(--ql-primary);
  background: var(--ql-primary-lightest);
  border: 1px solid var(--ql-primary-light);
  border-radius: 12px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Popover Tabs */
#qingli-ai-filter-panel .portrait-tabs {
  display: flex;
  border-bottom: 1px solid var(--ql-border);
}
#qingli-ai-filter-panel .portrait-tab {
  flex: 1;
  padding: 10px 0;
  text-align: center;
  font-size: 12px;
  cursor: pointer;
  position: relative;
  color: var(--ql-text-secondary);
  transition: color 0.15s;
  user-select: none;
}
#qingli-ai-filter-panel .portrait-tab:hover {
  color: var(--ql-primary);
}
#qingli-ai-filter-panel .portrait-tab.active {
  color: var(--ql-primary);
  font-weight: 600;
  border-bottom: 2px solid var(--ql-primary);
}
#qingli-ai-filter-panel .tab-dot {
  display: none;
  width: 6px;
  height: 6px;
  background: var(--ql-primary);
  border-radius: 50%;
  position: absolute;
  top: 6px;
  right: calc(50% - 28px);
}
#qingli-ai-filter-panel .tab-dot.show {
  display: block;
}

/* Popover 内的配置面板 */
#qingli-ai-filter-panel .portrait-config-panel {
  display: none;
  flex: 1;
  padding: 10px 12px;
  flex-direction: column;
  gap: 8px;
  overflow-y: auto;
  max-height: 300px;
}
#qingli-ai-filter-panel .portrait-config-panel.active {
  display: flex;
}
/* 多条件组之间的分隔线 */
#qingli-ai-filter-panel .config-group-wrapper + .config-group-wrapper {
  border-top: 1px dashed var(--ql-border);
  margin-top: 8px;
  padding-top: 12px;
}

/* Popover 底部 */
#qingli-ai-filter-panel .popover-reset-btn {
  padding: 0 12px;
  height: 30px;
  border: 1px solid var(--ql-border);
  border-radius: var(--ql-radius-pill);
  background: transparent;
  color: var(--ql-text-secondary);
  font-size: 12px;
  cursor: pointer;
  transition: all 0.15s;
}
#qingli-ai-filter-panel .popover-reset-btn:hover {
  background: #f9fafb;
  color: var(--ql-text);
}

/* 预设按钮组 */
#qingli-ai-filter-panel .config-presets {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
#qingli-ai-filter-panel .preset-chip input {
  display: none;
}
#qingli-ai-filter-panel .preset-chip span {
  display: inline-block;
  padding: 4px 10px;
  font-size: 12px;
  border-radius: 14px;
  border: 1px solid var(--ql-border);
  color: var(--ql-text-secondary);
  cursor: pointer;
  transition: all 0.15s;
  user-select: none;
}
#qingli-ai-filter-panel .preset-chip span:hover {
  border-color: var(--ql-primary-light);
  color: var(--ql-primary);
}
#qingli-ai-filter-panel .preset-chip input:checked + span {
  background: var(--ql-primary-lightest);
  border-color: var(--ql-primary);
  color: var(--ql-primary);
  font-weight: 500;
}

/* 自定义参数区 */
#qingli-ai-filter-panel .config-custom-params {
  display: none;
  gap: 6px;
  flex-direction: column;
  font-size: 12px;
  color: var(--ql-text-secondary);
}
#qingli-ai-filter-panel .config-custom-params.active {
  display: flex;
}
#qingli-ai-filter-panel .config-custom-params .custom-strategy {
  height: 28px;
  font-size: 12px;
}
#qingli-ai-filter-panel .config-custom-params .param-rank,
#qingli-ai-filter-panel .config-custom-params .param-ratio {
  display: none;
  align-items: center;
  gap: 6px;
}
#qingli-ai-filter-panel .config-custom-params .param-rank.active,
#qingli-ai-filter-panel .config-custom-params .param-ratio.active {
  display: flex;
}
#qingli-ai-filter-panel .param-input {
  width: 46px;
  height: 28px;
  border: 1px solid var(--ql-border);
  border-radius: var(--ql-radius-input);
  text-align: center;
  font-size: 13px;
  font-weight: 500;
  color: var(--ql-text);
  background: white;
  transition: all 0.15s;
}
#qingli-ai-filter-panel .param-input:focus {
  border-color: var(--ql-primary);
  outline: none;
  box-shadow: 0 0 0 2px rgba(232,76,136,0.1);
}

/* 人群选择区 */
#qingli-ai-filter-panel .config-pills-section {
  display: none;
  flex-direction: column;
  gap: 6px;
}
#qingli-ai-filter-panel .config-pills-section.active {
  display: flex;
}
#qingli-ai-filter-panel .config-pills-divider {
  border-top: 1px dashed var(--ql-border);
  margin: 2px 0;
}
#qingli-ai-filter-panel .config-pills-label {
  font-size: 11px;
  color: var(--ql-text-disabled);
  font-weight: 600;
}
#qingli-ai-filter-panel .config-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

/* pill 选项 */
#qingli-ai-filter-panel .pill-option {
  cursor: pointer;
  display: flex;
  align-items: center;
}
#qingli-ai-filter-panel .pill-option input {
  display: none;
}
#qingli-ai-filter-panel .pill-option span {
  padding: 4px 10px;
  font-size: 12px;
  border-radius: 14px;
  border: 1px solid var(--ql-border);
  color: var(--ql-text-secondary);
  transition: all 0.15s;
  user-select: none;
}
#qingli-ai-filter-panel .pill-option input:checked + span {
  background: var(--ql-primary-lightest);
  border-color: var(--ql-primary);
  color: var(--ql-primary);
}
#qingli-ai-filter-panel .pill-option span:hover {
  border-color: var(--ql-primary-light);
  color: var(--ql-primary-light);
}

/* 按钮样式 */
#qingli-ai-filter-panel .text-btn {
  color: var(--ql-primary);
  font-size: 10px;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  display: flex;
  align-items: center;
  opacity: 0.8;
  transition: opacity 0.2s;
}
#qingli-ai-filter-panel .text-btn:hover {
  text-decoration: underline;
  opacity: 1;
}

#qingli-ai-filter-panel .reset-btn {
  padding: 0 14px;
  height: 32px;
  border: 1px solid var(--ql-border);
  border-radius: var(--ql-radius-pill);
  background: transparent;
  color: var(--ql-text-secondary);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.2s;
}
#qingli-ai-filter-panel .reset-btn:hover {
  background-color: #f9fafb;
  color: var(--ql-text);
}

#qingli-ai-filter-panel .primary-btn {
  padding: 0 18px;
  height: 32px;
  border-radius: var(--ql-radius-pill);
  background-color: var(--ql-primary);
  color: white;
  border: none;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  box-shadow: 0 1px 2px 0 rgba(232, 74, 135, 0.2);
  transition: all 0.2s;
}
#qingli-ai-filter-panel .primary-btn:hover {
  background-color: var(--ql-primary-hover);
}
#qingli-ai-filter-panel .primary-btn:active {
  transform: scale(0.98);
}
#qingli-ai-filter-panel .primary-btn.loading {
  opacity: 0.7;
  cursor: wait;
}

/* 底部 CTA 变身（CTA-as-status，对齐原型 prototype.css:4809-4943）：采集时「条件筛号」按钮整颗变状态条样，
   是采集状态唯一展示出口；6 态配色对齐原型（采集中粉/完成绿/暂停红/接管黄），用真实 --ql-primary（#e84a87）做采集中粉；
   idle 态不带 --status 类，仍是原 .primary-btn。 */
#qingli-ai-filter-panel .primary-btn.qingli-cta-btn--status {
  justify-content: flex-start;
  gap: 8px;
  padding: 0 10px 0 12px;
  border-radius: 999px;
  border: 1px solid transparent;
  box-shadow: 0 2px 8px rgba(232, 74, 135, 0.14);
  font-weight: 700;
}
#qingli-ai-filter-panel .primary-btn.qingli-cta-btn--running {
  color: var(--ql-primary);
  background-color: #fff1f7;
  border-color: #ffc6dd;
}
#qingli-ai-filter-panel .primary-btn.qingli-cta-btn--running:hover {
  background-color: #ffe8f2;
}
#qingli-ai-filter-panel .primary-btn.qingli-cta-btn--paused {
  color: #dc2626;
  background-color: #fff1f1;
  border-color: #fecaca;
  box-shadow: 0 2px 8px rgba(220, 38, 38, 0.12);
}
#qingli-ai-filter-panel .primary-btn.qingli-cta-btn--paused:hover {
  background-color: #ffe7e7;
}
#qingli-ai-filter-panel .primary-btn.qingli-cta-btn--handoff {
  color: #b45309;
  background-color: #fff7e8;
  border-color: #f8d48b;
  box-shadow: 0 2px 8px rgba(180, 83, 9, 0.12);
}
#qingli-ai-filter-panel .primary-btn.qingli-cta-btn--done,
#qingli-ai-filter-panel .primary-btn.qingli-cta-btn--allDone {
  color: #15803d;
  background-color: #ecfdf3;
  border-color: #a7efbd;
  box-shadow: 0 2px 8px rgba(21, 128, 61, 0.12);
}
#qingli-ai-filter-panel .primary-btn.qingli-cta-btn--done:hover {
  background-color: #ddfbe8;
}
#qingli-ai-filter-panel .primary-btn.qingli-cta-btn--status:disabled,
#qingli-ai-filter-panel .primary-btn.qingli-cta-btn--status:disabled:hover {
  opacity: 1;
  cursor: not-allowed;
  background-color: #ecfdf3;
  color: #15803d;
  border-color: #a7efbd;
}
#qingli-ai-filter-panel .primary-btn.qingli-cta-btn--handoff:disabled,
#qingli-ai-filter-panel .primary-btn.qingli-cta-btn--handoff:disabled:hover {
  background-color: #fff7e8;
  color: #b45309;
  border-color: #f8d48b;
}
#qingli-ai-filter-panel .qingli-cta-status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
  flex: 0 0 auto;
  animation: qingliAcsPulse 1.5s ease-in-out infinite;
}
/* 仅采集中 dot 脉动，其余态静态圆点 */
#qingli-ai-filter-panel .qingli-cta-btn--running .qingli-cta-status-dot {
  animation: qingliAcsPulse 1.5s ease-in-out infinite;
}
#qingli-ai-filter-panel .primary-btn:not(.qingli-cta-btn--running) .qingli-cta-status-dot {
  animation: none;
}
#qingli-ai-filter-panel .qingli-cta-status-main {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: 1 1 auto;
  overflow: hidden;
}
#qingli-ai-filter-panel .qingli-cta-status-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 800;
}
#qingli-ai-filter-panel .qingli-cta-status-action {
  height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: var(--ql-primary);
  font-size: 12px;
  font-weight: 900;
  flex: 0 0 auto;
}
#qingli-ai-filter-panel .qingli-cta-btn--running .qingli-cta-status-action { background: var(--ql-primary); }
#qingli-ai-filter-panel .qingli-cta-btn--paused .qingli-cta-status-action { background: #dc2626; }
#qingli-ai-filter-panel .qingli-cta-btn--handoff .qingli-cta-status-action { background: #b45309; }
#qingli-ai-filter-panel .qingli-cta-btn--done .qingli-cta-status-action { background: #15803d; }
#qingli-ai-filter-panel .qingli-cta-btn--allDone .qingli-cta-status-action {
  color: #15803d;
  background: rgba(255, 255, 255, 0.64);
  border: 1px solid rgba(21, 128, 61, 0.22);
}

/* 标签容器 */
#qingli-ai-filter-panel .tags-container {
  width: 100%;
  height: 80px;
  background-color: rgba(248, 215, 222, 0.2);
  border: 1px solid var(--ql-border);
  border-radius: var(--ql-radius-input);
  padding: 6px;
  overflow-y: auto;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-content: flex-start;
}

#qingli-ai-filter-panel .project-tag {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 4px 0 10px;
  background-color: white;
  border: 1px solid rgba(232, 74, 135, 0.2);
  border-radius: var(--ql-radius-pill);
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  font-size: 12px;
  font-weight: 500;
  color: var(--ql-primary);
  max-width: 100%;
}

#qingli-ai-filter-panel .project-tag-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#qingli-ai-filter-panel .project-tag-close {
  margin-left: 4px;
  width: 16px;
  height: 16px;
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(232, 74, 135, 0.6);
  cursor: pointer;
  transition: all 0.2s;
}
#qingli-ai-filter-panel .project-tag-close:hover {
  color: var(--ql-primary);
  background-color: rgba(232, 74, 135, 0.1);
}

/* 分段控制器 (Radio Group) — chief 2026-06-17 胶囊化 */
#qingli-ai-filter-panel .segmented-control {
  display: flex;
  background-color: white;
  border: 1px solid var(--ql-border);
  border-radius: var(--ql-radius-pill);
  padding: 3px;
  gap: 2px;
}

#qingli-ai-filter-panel .segmented-label {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  height: 28px;
  border-radius: var(--ql-radius-pill);
  font-size: 12px;
  font-weight: 500;
  color: var(--ql-text-secondary);
  cursor: pointer;
  transition: all 0.2s;
  user-select: none;
}

#qingli-ai-filter-panel .segmented-label:hover {
  background-color: var(--ql-primary-light);
  color: var(--ql-primary);
}

#qingli-ai-filter-panel .segmented-input {
  display: none;
}

/* 分段控制器选中状态 - 整个方块粉色填充 */
#qingli-ai-filter-panel .segmented-label:has(.segmented-input:checked) {
  background: rgba(232, 74, 135, 0.15);
  color: #881337;
  font-weight: 600;
}

/* 操作工具卡：legacy 始终展开，不能再由标题点击或历史折叠态隐藏正文 */
#qingli-ai-filter-panel .tools-card {
  margin-top: 2px;
  border: 1px solid var(--ql-border);
  border-radius: var(--ql-radius-card);
  background: linear-gradient(180deg, #fff 0%, #fff7fa 100%);
  overflow: hidden;
}
#qingli-ai-filter-panel .tools-card-header {
  width: 100%;
  border: none;
  background: transparent;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  text-align: left;
  padding: 10px 12px;
  transition: background-color 0.15s ease;
}
#qingli-ai-filter-panel .tools-card-header:hover {
  background-color: rgba(232, 74, 135, 0.04);
}
#qingli-ai-filter-panel .tools-title-block {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
#qingli-ai-filter-panel .tools-title {
  color: var(--ql-text);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
}
#qingli-ai-filter-panel .tools-card-body {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  border-top: 1px dashed rgba(232, 74, 135, 0.22);
  padding: 10px 12px 12px;
}
#qingli-ai-filter-panel .tools-row {
  display: contents;
}
#qingli-ai-filter-panel .tools-row-label {
  display: none;
}
#qingli-ai-filter-panel .tools-row-content {
  display: contents;
}
#qingli-ai-filter-panel .tool-btn {
  height: 26px;
  padding: 0 10px;
  border: 1px solid #e8d7dd;
  border-radius: var(--ql-radius-input);
  background: white;
  color: var(--ql-text-secondary);
  font-size: 11px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
}
#qingli-ai-filter-panel .tool-btn:hover {
  border-color: var(--ql-primary-light);
  color: var(--ql-primary);
  box-shadow: 0 1px 3px rgba(232, 74, 135, 0.12);
}
#qingli-ai-filter-panel .tool-btn:active {
  transform: translateY(1px);
}
#qingli-ai-filter-panel .tool-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
#qingli-ai-filter-panel .tool-btn-primary {
  background: var(--ql-primary);
  color: white;
  border-color: var(--ql-primary);
}
#qingli-ai-filter-panel .tool-btn-primary:hover {
  background: var(--ql-primary-hover);
  color: white;
}
#qingli-ai-filter-panel .tool-select {
  height: 26px;
  min-width: 64px;
  padding: 0 22px 0 8px;
  border: 1px solid #e8d7dd;
  border-radius: var(--ql-radius-input);
  background: white;
  color: var(--ql-text);
  font-size: 11px;
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
  background-position: right 3px center;
  background-repeat: no-repeat;
  background-size: 1.2em 1.2em;
}
#qingli-ai-filter-panel .batch-status {
  font-size: 11px;
  color: var(--ql-text-secondary);
  white-space: nowrap;
}
#qingli-ai-filter-panel .batch-status.loading {
  color: var(--ql-primary);
}
#qingli-ai-filter-panel .batch-status.error {
  color: var(--ql-danger);
}
#qingli-ai-filter-panel .display-toggles-inline {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
#qingli-ai-filter-panel .toggle-item-inline {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: var(--ql-text-secondary);
  cursor: pointer;
  user-select: none;
}
#qingli-ai-filter-panel .toggle-item-inline input[type="checkbox"] {
  width: 13px;
  height: 13px;
  accent-color: var(--ql-primary);
  cursor: pointer;
  margin: 0;
}
#qingli-ai-filter-panel .tools-divider {
  width: 1px;
  height: 14px;
  background: var(--ql-border);
  flex-shrink: 0;
}
#qingli-ai-filter-panel .tools-group-label {
  font-size: 11px;
  color: var(--ql-text-secondary);
  font-weight: 500;
  white-space: nowrap;
}
#qingli-ai-filter-panel .hidden-count {
  font-size: 11px;
  color: var(--ql-primary);
  font-weight: 500;
  white-space: nowrap;
}

/* 底部栏 */
#qingli-ai-filter-panel .panel-footer {
  padding: 0 16px;
  height: 48px;
  border-top: 1px solid var(--ql-border);
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: white;
  flex-shrink: 0;
  position: sticky;
  bottom: 0;
  z-index: 2;
}

#qingli-ai-filter-panel .footer-info {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--ql-text-secondary);
}

#qingli-ai-filter-panel .footer-actions {
  display: flex;
  gap: 8px;
}

/* footer 录入开关组（内部版常显，title 即 tip）——禁用 cpm-hover-switch（hover 才展开会隐身） */
#qingli-ai-filter-panel .footer-switches {
  display: flex;
  align-items: center;
  gap: 14px;
}
#qingli-ai-filter-panel .footer-switch-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--ql-text-secondary);
  white-space: nowrap;
}

/* 错误提示 */
#qingli-ai-filter-panel .filter-error {
  color: var(--ql-danger);
  font-size: 12px;
  margin-top: 4px;
  display: none;
}

/* 历史记录下拉 */
#qingli-ai-filter-panel .history-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: white;
  border: 1px solid var(--ql-border);
  border-radius: var(--ql-radius-input);
  box-shadow: var(--ql-shadow-lg);
  z-index: 50;
  margin-top: 4px;
  display: none;
  max-height: 240px;
  flex-direction: column;
}
#qingli-ai-filter-panel .history-dropdown.show {
  display: flex;
}
#qingli-ai-filter-panel .history-header {
  padding: 8px 12px;
  border-bottom: 1px solid var(--ql-border);
  background: #f9fafb;
}
#qingli-ai-filter-panel .history-header label {
  cursor: pointer;
}
#qingli-ai-filter-panel .history-list {
  overflow-y: auto;
  flex: 1;
}
#qingli-ai-filter-panel .history-item {
  width: 100%;
  min-height: 38px;
  padding: 0 12px;
  cursor: pointer;
  border: 0;
  border-bottom: 1px solid #f3f4f6;
  display: flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  text-align: left;
  font-family: inherit;
}
#qingli-ai-filter-panel .history-item:hover {
  background-color: var(--ql-primary-fade);
}
#qingli-ai-filter-panel .history-item:last-child {
  border-bottom: 0;
}
#qingli-ai-filter-panel .history-item-row1 {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
}
#qingli-ai-filter-panel .history-item-id {
  color: var(--ql-primary);
  font-weight: 600;
  flex-shrink: 0;
}
#qingli-ai-filter-panel .history-item-time {
  color: var(--ql-text-muted);
  font-size: 11px;
  flex-shrink: 0;
}
#qingli-ai-filter-panel .history-item-user {
  color: var(--ql-text-secondary);
  font-size: 11px;
  margin-left: auto;
  flex-shrink: 0;
}
#qingli-ai-filter-panel .history-item-row2 {
  display: block;
  min-width: 0;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.35;
  color: var(--ql-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 搜索建议 */
#qingli-ai-filter-panel .suggestions {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: white;
  border: 1px solid var(--ql-border);
  border-radius: var(--ql-radius-input);
  box-shadow: var(--ql-shadow-lg);
  z-index: 50;
  margin-top: 4px;
  display: none;
  max-height: 360px;
  flex-direction: column;
}
#qingli-ai-filter-panel .suggestions.show {
  display: flex;
}
#qingli-ai-filter-panel .suggestion-item {
  padding: 5px 10px;
  font-size: 12px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  border-bottom: 1px solid #f3f4f6;
}
#qingli-ai-filter-panel .suggestion-item:last-child {
  border-bottom: none;
}
#qingli-ai-filter-panel .suggestion-item:hover {
  background-color: #f9fafb;
}
#qingli-ai-filter-panel .suggestion-item.selected {
  background-color: rgba(232, 74, 135, 0.05);
}
#qingli-ai-filter-panel .suggestion-check {
  font-size: 13px;
  flex-shrink: 0;
  width: 14px;
  color: var(--ql-primary);
}
#qingli-ai-filter-panel .suggestion-id {
  color: var(--ql-primary);
  font-weight: 600;
  flex-shrink: 0;
  font-size: 11px;
}
#qingli-ai-filter-panel .suggestion-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--ql-text);
}

/* 全选栏 - 对齐 history-header */
#qingli-ai-filter-panel .suggestions-header {
  padding: 8px 12px;
  border-bottom: 1px solid var(--ql-border);
  background: #f9fafb;
  display: flex;
  justify-content: flex-end;
  flex-shrink: 0;
}
#qingli-ai-filter-panel .suggestions-select-all {
  font-size: 12px;
  color: var(--ql-primary);
  cursor: pointer;
  font-weight: 500;
}
#qingli-ai-filter-panel .suggestions-select-all:hover {
  text-decoration: underline;
}

/* 列表滚动区 - 对齐 history-list */
#qingli-ai-filter-panel .suggestions-list {
  overflow-y: auto;
  flex: 1;
}

/* 底部计数 */
#qingli-ai-filter-panel .suggestions-footer {
  padding: 8px 12px;
  border-top: 1px solid var(--ql-border);
  background: #f9fafb;
  font-size: 11px;
  color: #999;
  text-align: center;
  flex-shrink: 0;
}

/* 已标注区域 */
#qingli-ai-filter-panel .marked-section {
  padding: 12px 16px;
  background-color: #fff1f2;
  border-top: 1px solid var(--ql-primary-light);
  display: none;
}
#qingli-ai-filter-panel .marked-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 500;
  color: #881337;
}
#qingli-ai-filter-panel .marked-total-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 18px;
  padding: 0 6px;
  border-radius: 9px;
  background: #e84a87;
  color: white;
  font-size: 11px;
  font-weight: 700;
  margin-left: 4px;
}
#qingli-ai-filter-panel .marked-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  max-height: 80px;
  overflow-y: auto;
}
#qingli-ai-filter-panel .marked-item {
  background: white;
  border: 1px solid rgba(232, 74, 135, 0.15);
  border-radius: 16px;
  padding: 5px 12px 5px 5px;
  font-size: 12px;
  display: flex;
  align-items: center;
  gap: 6px;
}
#qingli-ai-filter-panel .marked-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
#qingli-ai-filter-panel .marked-item-name {
  white-space: nowrap;
  color: var(--ql-text);
  font-weight: 500;
}
#qingli-ai-filter-panel .marked-item-fans {
  color: var(--ql-text-secondary);
  font-size: 11px;
}
#qingli-ai-filter-panel .marked-item-status {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
}
#qingli-ai-filter-panel .marked-item-status .status-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
}
/* 状态颜色 (emerald/amber/red 色系) */
#qingli-ai-filter-panel .marked-item-status.pass { color: #059669; }
#qingli-ai-filter-panel .marked-item-status.pass .status-dot { background-color: #059669; }
#qingli-ai-filter-panel .marked-item-status.pending { color: #d97706; }
#qingli-ai-filter-panel .marked-item-status.pending .status-dot { background-color: #d97706; }
#qingli-ai-filter-panel .marked-item-status.reject { color: #dc2626; }
#qingli-ai-filter-panel .marked-item-status.reject .status-dot { background-color: #dc2626; }

/* 统计 badge 样式 */
#qingli-ai-filter-panel .marked-stats-bar {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
#qingli-ai-filter-panel .stat-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border-radius: 9999px;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.2s;
  user-select: none;
}
#qingli-ai-filter-panel .stat-badge.pass { background: #ecfdf5; color: #059669; border: 1px solid #a7f3d0; }
#qingli-ai-filter-panel .stat-badge.pending { background: #fffbeb; color: #d97706; border: 1px solid #fde68a; }
#qingli-ai-filter-panel .stat-badge.reject { background: #fef2f2; color: #dc2626; border: 1px solid #fecaca; }
#qingli-ai-filter-panel .stat-badge:hover {
  opacity: 0.85;
}
/* badge 选中态加深 */
#qingli-ai-filter-panel .stat-badge.active.pass { background: #d1fae5; border-color: #6ee7b7; }
#qingli-ai-filter-panel .stat-badge.active.pending { background: #fef3c7; border-color: #fcd34d; }
#qingli-ai-filter-panel .stat-badge.active.reject { background: #fee2e2; border-color: #fca5a5; }
#qingli-ai-filter-panel .stat-num {
  font-weight: 700;
  font-size: 13px;
}
#qingli-ai-filter-panel .stat-label {
  font-weight: 500;
}

/* 名字链接样式 */
#qingli-ai-filter-panel a.marked-item-name {
  text-decoration: none;
  color: var(--ql-text);
  font-weight: 500;
  white-space: nowrap;
  cursor: pointer;
}
#qingli-ai-filter-panel a.marked-item-name:hover {
  color: #e84a87;
  text-decoration: underline;
}

/* 星图卡片右侧通过/待定/不通过按钮组（W6.3 后从 button-group-styles.js 迁入；prepend panel.css 让按钮 mount 出现即有样式） */
.xingtu-helper-operate-wrapper {
  width: 100%;
  min-width: 0;
}
.xingtu-helper-btn-mount {
  display: flex;
  justify-content: center;
  align-items: center;
  flex: 0 0 auto;
  margin-left: auto;
  align-self: center;
  min-width: 0;
  padding: 0;
  box-sizing: border-box;
}
.xingtu-helper-btn-group {
  display: flex;
  flex-wrap: nowrap;
  gap: 6px;
  justify-content: center;
  align-items: center;
  width: auto;
  min-width: 0;
  box-sizing: border-box;
}

.qlai-xingtu-page-status {
  position: fixed;
  top: 84px;
  right: 28px;
  z-index: 10030;
  display: flex;
  align-items: center;
  gap: 8px;
  max-width: 520px;
  padding: 8px 12px;
  border: 1px solid #e8e8ec;
  border-radius: 8px;
  background: rgb(255 255 255 / 96%);
  box-shadow: 0 4px 16px rgb(30 35 45 / 10%);
  color: #454550;
  font-size: 13px;
  pointer-events: auto;
}
.qlai-xingtu-page-status.is-failed {
  border-color: #ffd3da;
  color: #c9364e;
}
.qlai-xingtu-page-status button {
  padding: 0;
  border: 0;
  background: transparent;
  color: #e73570;
  cursor: pointer;
}
.xingtu-helper-btn {
  flex: 0 0 auto;
  padding: 9px 12px;
  border: none;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease;
  white-space: nowrap;
  min-width: 50px;
  box-sizing: border-box;
}
.xingtu-helper-btn-pass {
  background: #d1fae5;
  color: #047857;
  border: 1px solid #6ee7b7;
}
.xingtu-helper-btn-pass:hover {
  background: #a7f3d0;
  border-color: #34d399;
}
.xingtu-helper-btn-pending {
  background: #fef3c7;
  color: #b45309;
  border: 1px solid #fcd34d;
}
.xingtu-helper-btn-pending:hover {
  background: #fde68a;
  border-color: #fbbf24;
}
.xingtu-helper-btn-reject {
  background: #fee2e2;
  color: #b91c1c;
  border: 1px solid #fca5a5;
}
.xingtu-helper-btn-reject:hover {
  background: #fecaca;
  border-color: #f87171;
}
.xingtu-helper-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.xingtu-helper-btn-loading {
  position: relative;
  pointer-events: none;
}
.xingtu-helper-btn-loading::after {
  content: '';
  position: absolute;
  width: 12px;
  height: 12px;
  top: 50%;
  left: 50%;
  margin-left: -6px;
  margin-top: -6px;
  border: 2px solid transparent;
  border-top-color: white;
  border-radius: 50%;
  animation: xingtu-btn-spin 0.8s linear infinite;
}
@keyframes xingtu-btn-spin {
  to { transform: rotate(360deg); }
}
.xingtu-helper-status-text {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 9px 12px;
  font-size: 13px;
  font-weight: 500;
  border-radius: 4px;
  white-space: nowrap;
  box-sizing: border-box;
}
.xingtu-helper-status-text.status-pass {
  color: #047857;
  background: #d1fae5;
}
.xingtu-helper-status-text.status-pending {
  color: #b45309;
  background: #fef3c7;
}
.xingtu-helper-status-text.status-reject {
  color: #b91c1c;
  background: #fee2e2;
}
.xingtu-helper-status-text.status-dedup {
  color: #999;
  background: rgba(153, 153, 153, 0.1);
}
.xingtu-helper-status-text.status-filter-fail {
  color: #ff5722;
  background: rgba(255, 87, 34, 0.1);
}
.xingtu-helper-status-text.status-not-supported {
  color: #bbb;
  background: rgba(153, 153, 153, 0.08);
}
.xingtu-helper-status-text.status-not-in-library {
  color: #999;
  background: rgba(153, 153, 153, 0.15);
  font-size: 13px;
}
.xingtu-helper-btn-group.has-status .xingtu-helper-btn {
  display: none;
}
.xingtu-helper-btn-group.has-status[data-preview-expanded="true"] .xingtu-helper-status-text,
.xingtu-helper-btn-group.has-status:focus-within .xingtu-helper-status-text {
  display: none;
}
.xingtu-helper-btn-group.has-status[data-preview-expanded="true"] .xingtu-helper-btn,
.xingtu-helper-btn-group.has-status:focus-within .xingtu-helper-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.xingtu-helper-btn-group.is-marking .xingtu-helper-status-text {
  display: none !important;
}
.xingtu-helper-btn-group.is-marking .xingtu-helper-btn {
  display: none !important;
}
.xingtu-helper-btn-group.is-marking .xingtu-helper-btn.xingtu-helper-btn-loading {
  display: inline-flex !important;
}

/* 达人卡片标注 CSS（W6.3 之后 styles.js::getAuthorCardStyles 被砍，迁回 panel.css）
   覆盖：库内标签 / 返点状态 chip / 筛选结果 chip pass/fail/unknown / sddg 标签 / mcn 标签 / pass-fail tooltip / 头像 rejected ✕ */
.xingtu-helper-id {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  margin-top: 2px;
  position: relative;
  z-index: 10;
}
.xingtu-helper-loading {
  color: #999;
  background: rgba(153, 153, 153, 0.1);
  font-style: italic;
  padding: 2px 8px;
  border-radius: 4px;
}
.xingtu-helper-error {
  color: #ff4444;
  background: rgba(255, 68, 68, 0.1);
  padding: 2px 8px;
  border-radius: 4px;
}
.xingtu-helper-tag-library {
  display: inline-flex;
  align-items: center;
  padding: 2px 6px;
  border-radius: 3px;
  font-weight: 600;
  white-space: nowrap;
}
.xingtu-helper-tag-library.not-in-library {
  color: #999;
  background: rgba(153, 153, 153, 0.15);
}
.xingtu-helper-tag-library.no-return {
  color: #FAAD14;
  background: rgba(250, 173, 20, 0.1);
}
.xingtu-helper-tag-library.has-return {
  color: #52C41A;
  background: rgba(82, 196, 26, 0.1);
}
.xingtu-helper-tag-library.fail-return {
  color: #FF4444;
  background: rgba(255, 68, 68, 0.1);
}
.xingtu-helper-nickname-gray {
  color: #999 !important;
}
.xingtu-helper-recomm-tag {
  display: inline-block;
  font-size: 12px;
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 4px;
  color: #9c27b0;
  background: rgba(156, 39, 176, 0.15);
  font-weight: 600;
}
.xingtu-helper-card-dimmed {
  position: relative;
}
.xingtu-helper-card-dimmed::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0.35);
  pointer-events: none;
  z-index: 1;
}
.xingtu-helper-sddg-tag {
  display: inline-block;
  font-size: 12px;
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 4px;
  color: #e91e63;
  background: rgba(233, 30, 99, 0.15);
  font-weight: 600;
}
.xingtu-helper-filter-fail-tag {
  display: inline-block;
  font-size: 12px;
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 4px;
  color: #ff5722;
  background: rgba(255, 87, 34, 0.15);
  font-weight: 600;
}
.xingtu-helper-mcn-tag {
  display: inline-block;
  font-size: 12px;
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 600;
}
.xingtu-helper-mcn-yes {
  color: #ff9800;
  background: rgba(255, 152, 0, 0.15);
}
.xingtu-helper-mcn-no {
  color: #2196f3;
  background: rgba(33, 150, 243, 0.15);
}
.xingtu-helper-filter-tag {
  display: inline-flex;
  align-items: center;
  padding: 2px 6px;
  border-radius: 3px;
  font-weight: 600;
  white-space: nowrap;
  position: relative;
  z-index: 10;
}
.xingtu-helper-filter-tag.pass {
  background: rgba(82, 196, 26, 0.1);
  color: #52C41A;
}
.xingtu-helper-filter-tag.fail {
  background: rgba(255, 77, 79, 0.1);
  color: #FF4D4F;
}
.xingtu-helper-filter-tag.unknown {
  background: rgba(250, 173, 20, 0.1);
  color: #FAAD14;
}
.xingtu-helper-pass-group {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.xingtu-helper-pass-tooltip {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  bottom: auto;
  left: 0;
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: var(--ql-radius-input);
  padding: 6px 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.12);
  z-index: 99999;
  grid-template-columns: repeat(3, auto);
  gap: 4px 6px;
}
.xingtu-helper-pass-group:hover .xingtu-helper-pass-tooltip {
  display: grid;
}
.xingtu-helper-fail-fold-group {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.xingtu-helper-fail-tooltip {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  bottom: auto;
  left: 0;
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: var(--ql-radius-input);
  padding: 6px 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.12);
  z-index: 99999;
  grid-template-columns: repeat(2, auto);
  gap: 4px 8px;
}
.xingtu-helper-fail-fold-group:hover .xingtu-helper-fail-tooltip {
  display: grid;
}
.xingtu-helper-avatar-rejected {
  position: relative;
}
.xingtu-helper-avatar-rejected::after {
  content: '✕';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 20px;
  font-weight: 600;
  color: rgba(233, 30, 99, 0.7);
  text-shadow: 0 0 2px white, 0 0 2px white;
  pointer-events: none;
}
