/* ============================================================
   HECIAN · 数据来源标签 · 全平台共享
   设计语言模板 v1 章 18 (Golden Rule #1)
   每个数字旁必有 data-source label · 视觉级别 = 与数字同级
   单一来源:从 M07 design-refs/.../kit.css 抽出 (D 档已落地)
   ============================================================ */

.src {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 8px 3px 7px; border-radius: var(--r-sm);
  font-family: var(--font-mono); font-size: 11px; font-variant-numeric: tabular-nums;
  letter-spacing: .01em; white-space: nowrap;
  border: 1px solid transparent; cursor: pointer;
  vertical-align: baseline;
  transition: background .15s ease, border-color .15s ease;
}
.src:hover { filter: brightness(.97); }
.src .src-kind {
  font-weight: 600; font-size: 10px; letter-spacing: .05em;
  padding-right: 5px; margin-right: 1px;
  border-right: 1px solid currentColor; opacity: .85;
}
.src .src-body { opacity: .8; }
.src-sm { padding: 2px 6px; font-size: 10px; }
.src-sm .src-kind { font-size: 9px; padding-right: 4px; }

/* 三态色 token 定义于 colors_and_type.css(--src-auto/--src-manual/--src-calc 是语义色,过重)
 * 这里用 chip 软色作背景 + 语义深色作文字,提升 specificity 到 0,0,2,0
 * 2026-05-12 · 第三方测试 P0-2 修复 · 全部硬编码改 var() · 颜色保持 + border 统一 --line */
.src.src-auto   { background: var(--accent-soft); color: var(--accent-ink); border-color: var(--line); }
.src.src-manual { background: var(--warn-soft);   color: var(--warn);       border-color: var(--line); }
.src.src-calc   { background: var(--chip);        color: var(--ink-2);      border-color: var(--line); }
/* 2026-05-28 · 第 5 态 mock · 演示数据(未接真实数据源)· 全局体检诚实化
 * 灰底 + 虚线框 · 视觉上明确区分"演示占位"与已接真的 auto/calc · jarvi 拍板一刀切诚实化 */
.src.src-mock   { background: var(--chip); color: var(--ink-3); border-color: var(--line); border-style: dashed; opacity: .92; }
/* 2026-05-13 · C 方案 第 4 态 ai · AI 大模型推算 (跟 calc 脚本聚合区分)
 * 2026-05-13 v2 · jarvi 反馈"颜色加深 + 加紫色虚线框" · border 紫实线 + outline 1.5px 紫深虚线 */
.src.src-ai     {
  background: var(--ai-soft); color: var(--ai-ink); border-color: var(--ai);
  outline: 1.5px dashed var(--ai-ink); outline-offset: 2px;
}

/* Popover on tap */
.src-pop {
  position: absolute; top: calc(100% + 6px); left: 0;
  z-index: 50; min-width: 240px; max-width: 300px;
  background: var(--panel); border: 1px solid var(--line);
  border-radius: var(--r-md); padding: 10px 12px 12px;
  box-shadow: 0 8px 24px rgba(26,29,26,.12);
  font-family: var(--font-sans);
}
.src-pop::before {
  content:''; position:absolute; top:-5px; left:14px;
  width:8px; height:8px; background:var(--panel);
  border-left:1px solid var(--line); border-top:1px solid var(--line);
  transform: rotate(45deg);
}
.src-pop-row { display:flex; gap:10px; font-size: 12px; padding: 4px 0; color: var(--ink-2); line-height:1.5; }
.src-pop-row .k-mono { flex-shrink:0; width:48px; padding-top:1px; }
.src-pop-close {
  position:absolute; top:6px; right:6px; width:22px; height:22px;
  background:transparent; border:0; color: var(--ink-4); cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; border-radius:4px;
}
.src-pop-close:hover { background: var(--chip); }

/* 2026-05-15 章 18.5 · ai 变体 popover 加 2 字段(重算 + 反馈)
 * 其他 3 态(auto/manual/calc)保持原 4 字段不变 · 向后兼容 */
.src-pop-action {
  margin-top: 8px; padding-top: 8px;
  border-top: 1px dashed var(--line);
  display: flex; gap: 8px;
}
.src-pop-action button {
  background: var(--accent-soft); color: var(--accent-ink);
  border: 1px solid var(--line); border-radius: var(--r-sm);
  padding: 4px 10px; font-size: 11px; cursor: pointer;
  display: inline-flex; align-items: center; gap: 4px;
  font-family: var(--font-mono);
}
.src-pop-action button:hover { filter: brightness(.97); }

.src-pop-feedback {
  margin-top: 6px; padding-top: 6px;
  border-top: 1px dashed var(--line);
  display: flex; flex-direction: column; gap: 5px;
}
.src-pop-feedback-row {
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.src-pop-feedback-thumb {
  background: transparent; border: 1px solid var(--line);
  border-radius: var(--r-sm); padding: 3px 7px; cursor: pointer;
  font-size: 12px; color: var(--ink-3);
}
.src-pop-feedback-thumb.active {
  background: var(--ai-soft); color: var(--ai-ink); border-color: var(--ai);
}
.src-pop-feedback-input {
  flex: 1; min-width: 120px; padding: 4px 8px; font-size: 11px;
  border: 1px solid var(--line); border-radius: var(--r-sm);
  background: var(--panel); color: var(--ink);
  font-family: inherit;
}
.src-pop-feedback-input:focus { outline: 1px solid var(--ai-ink); }
