/* ============================================================
   Eva GDS for AI 2.0 · 本项目改根层
   047 是规范自带的 token 层，048 是规范自带的组件层；
   这一层只放「把本项目既有变量接到 GDS token 上」的改根声明。

   加载顺序：本文件在 vendor/eva-legacy.css（index.html 第 29 行）
   之后加载，:root 与 :root 同特异度、后来者胜，因此不需要 !important，
   也不构成 AGENTS.md「修改应落在哪一层」禁止的「靠更高优先级掩盖旧规则」。
   ============================================================ */

:root {
  /* ------------------------------------------------------------
     1) 品牌主色改根（结论 1）
     vendor 里 --semi-color-primary 的胜出声明就在 :root 上，
     值为 var(--wk-brand-primary)；而 --wk-brand-primary 原本指向
     --wk-brand-black(#1c1c23)。所以只改这一族即可带动整个 Semi
     主色，无需逐条覆盖 .semi-* 规则。
     ------------------------------------------------------------ */
  --wk-brand-primary: var(--eva-action-primary);          /* #1563eb */
  --wk-brand-primary-hover: var(--eva-action-primary-hover);
  --wk-brand-from: var(--wk-brand-primary);
  --wk-brand-to: var(--wk-brand-primary);
  --wk-brand-accent: var(--wk-brand-primary);
  --wk-brand-gradient: var(--wk-brand-primary);
  --wk-brand-gradient-hover: var(--wk-brand-primary-hover);
  --wk-brand-gradient-subtle: var(--eva-action-primary-08);
  --wk-brand-primary-ring: var(--eva-action-primary-20);
  --wk-brand-glow: var(--eva-action-primary-20);
  /* vendor 里被 3 处读取却从未定义，导致那几条 background 直接失效 */
  --wk-brand-primary-bg: var(--eva-action-primary-08);

  /* GDS 只给了主色一档，hover／ring／subtle 由主色派生 */
  --eva-action-primary-hover: #1255ca;      /* [D] #1563eb 明度 -14% */
  --eva-action-primary-08: rgba(21, 99, 235, 0.08);
  --eva-action-primary-20: rgba(21, 99, 235, 0.2);

  /* ------------------------------------------------------------
     刻意「不」改根的一族 —— 这是本次改根里最大的回归面控制点。
     --wk-brand-tint-03/04/06/08/10/12/15/35 与 --wk-brand-black /
     --wk-brand-black-hover / --wk-brand-dark-tab 都是
     rgba(28,28,35,α) 的中性灰罩层与墨色，用在 hover 底、分隔线、
     深色页签上。把它们也刷成蓝，会让全应用每一个 hover 面泛蓝。
     黑该是黑的地方保持黑，只有主色槽位变蓝。
     ------------------------------------------------------------ */

  /* ------------------------------------------------------------
     2) 骨架尺寸变量补定义（结论 3）
     --topbar-height 被 prototype 里 10 处 fixed 浮层读取，却从未
     被任何地方定义，全部回退到 2.6rem = 41.6px；而真实标题栏
     .app-titlebar 高 var(--titlebar-height)=36px，加运行时 border-b
     的 1px，底边在 37px —— 所有浮层低了 4.6px。
     这里按 vendor 自己的 --titlebar-height 推导，不再写死数值。
     ------------------------------------------------------------ */
  --topbar-height: calc(var(--titlebar-height, 36px) + 1px);

  /* 020-mode-layer.js 的 syncDriveLeft() 会以行内样式写入实测值，
     这里的定义只用于首帧之前，替掉散落的 260px 字面回退。 */
  --eva-drive-left: var(--eva-sidebar-w);
}

/* ============================================================
   3) 字族名重定向（结论 1）
   Inter 优先的字体栈被字面写进 vendor 的 165 条规则（几乎全是
   .semi-*），没有任何变量接缝。但全库唯一的 @font-face 是
   KaTeX_AMS —— Inter 从未被 @font-face 加载过，只在本机装了
   Inter 时才生效。因此把 Inter 这个字族名解析到 PingFang SC，
   即可让那 165 条规则一并换字，且不动任何选择器、不靠特异度压制。
   本机没有 PingFang SC 时 local() 落空，浏览器继续沿原 fallback
   链走，Windows 行为零变化。
   ============================================================ */
@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 400;
  src: local("PingFang SC"), local("PingFangSC-Regular");
}
@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 500;
  src: local("PingFang SC Medium"), local("PingFangSC-Medium");
}
@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 600;
  src: local("PingFang SC Semibold"), local("PingFangSC-Semibold");
}
@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 700;
  src: local("PingFang SC Semibold"), local("PingFangSC-Semibold");
}

/* 非 Semi 文本（body 直接继承的那部分）走 GDS 字体栈 */
body {
  font-family: var(--eva-font-sans);
}

/* Legacy project scopes define their own Semi palette. Adapt every scope,
   including portalled controls, so hover/active cannot fall back to black. */
body, .collab-frame, .collab-list-page, .collab-empty {
  --semi-color-primary: var(--eva-action-primary);
  --semi-color-primary-hover: var(--eva-action-primary-hover);
  --semi-color-primary-active: var(--eva-action-primary-hover);
}

/* GDS all-page adaptation: shared semantic palette.
   Product layout, status colors and AI identity geometry retain their owners.
   Body scope also supplies the same tokens to portalled controls. */
body {
  --semi-color-text-0: var(--eva-text-primary);
  --semi-color-text-1: var(--eva-text-secondary);
  --semi-color-text-2: var(--eva-text-secondary-accessible);
  --semi-color-text-3: var(--eva-text-muted);
  --semi-color-bg-0: var(--eva-surface-primary);
  --semi-color-bg-1: var(--eva-surface-primary);
  --semi-color-border: var(--eva-border-faint);
  --semi-color-fill-0: var(--eva-surface-subtle);
  --semi-color-fill-1: var(--eva-overlay-hover);
  --semi-color-primary-light-default: var(--eva-action-primary-08);
  --semi-border-radius-small: var(--eva-radius-control);
  --semi-border-radius-medium: var(--eva-radius-control);
  --color-bg-2: var(--eva-surface-primary);
  --bg-2: var(--eva-surface-subtle);
  --color-border-2: var(--eva-border-faint);
  --wk-text-primary: var(--eva-text-primary);
  --wk-text-secondary: var(--eva-text-secondary);
  --wk-icon-muted: var(--eva-text-secondary-accessible);
  --wk-font-sans: var(--eva-font-sans);
  --text-primary: var(--eva-text-primary);
  --text-tertiary: var(--eva-text-muted);
  color: var(--eva-text-primary);
}

/* Repository edition identifier in the shared client titlebar. */
.eva-edition-badge {
  display: inline-flex;
  align-items: center;
  flex: none;
  padding: var(--eva-space-0-5) var(--eva-space-2);
  border-radius: var(--eva-radius-chip);
  background: var(--eva-action-primary);
  color: var(--eva-text-inverse);
  font-weight: var(--eva-fw-semibold);
  white-space: nowrap;
}

/* 会话头底边线：vendor 写死 1px solid #EBEDF0，是不在 token 体系内的野值，
 * 实测浅色 ΔL*=6.3、暗色下更是变成一条近白亮线。它与栏分界、Tab 基线同属
 * 「区域分界」，故统一收编到 --eva-rail-divider（= border/subtle）。
 * 这里不分模式：别名本身随 057 的暗色重指自动跟随，一处声明两模式生效。
 * 特异度与 vendor 的 .ch-head 相同，靠后加载取胜。 */
.ch-head { border-bottom-color: var(--eva-rail-divider); }

/* ============================================================
   浮层契约：Semi Dropdown 全局对齐 Eva 阶梯（暗色抬升、hover 变亮）
   ------------------------------------------------------------
   之前各实例各自打补丁（.eva-account-menu 有完整令牌化，IM 中栏 + 菜单等
   裸实例走 Semi 默认），暗色下裸实例面板 = --semi-color-bg-3 → #4a4a4a，
   比其悬浮的中栏 #222 亮两档、比自家 item hover 底 #1a1a1a 还亮——浮层
   层级语言错乱（同族问题见 057 遮罩翻转注释）。
   这里立全局契约，一次覆盖现有与将来的所有 Dropdown：
   · 面板 = surface/primary（暗 #242424：比中栏亮一档的抬升面；浅 = 白，不变）
   · 投影 = floating + hairline，统一由 Dropdown 外壳承载，暗色读取同名 token
   · 选项 hover = 白 6% 罩（暗）；浅色维持 vendor fill-0（与 6% 黑等值，不动）
   · 圆角对齐账户菜单参考实现：面板 chip、选项 key
   · 菜单四周留白 + 选项水平内边距收窄：vendor 的 .semi-dropdown-menu 只有
     上下 4px、左右 0，选项盒子贴到面板边——hover 高亮矩形因此顶到圆角内壁，
     视觉「出界」。account-menu 早已手动补过（menu padding 6px + item
     padding 0 10px），这里把同一节奏下放为全局默认，账户菜单等定制实例
     用自己的规则覆盖，不受影响。
   特异度：body 前缀 (0,1,1) 压过 vendor (0,1,0)；vendor 在所有 prototype
   之后加载，同分必输，故不加 body 的同分规则一律无效。
   ============================================================ */
body .semi-dropdown-wrapper {
  background: var(--eva-surface-primary);
  border-radius: var(--eva-radius-chip);
  box-shadow: var(--eva-shadow-floating), var(--eva-shadow-hairline);
  backdrop-filter: none;
}
body .semi-dropdown-wrapper .semi-dropdown-menu { padding: 6px; }
body .semi-dropdown-wrapper .semi-dropdown-item { border-radius: var(--eva-radius-key); padding: 8px 10px; }
body .semi-dropdown-wrapper .semi-dropdown-item-active:hover,
body .semi-dropdown-wrapper .semi-dropdown-item-active:focus-visible { background: var(--eva-overlay-hover); }
/* 日期选择同属操作浮层：沿用王岩确立的 Dropdown 面板表面与抬升层级。
   Semi DatePicker 用 Popover 承载；这里仅替换外壳，不改日历内部行为。 */
body .semi-popover-wrapper:has(.semi-datepicker) {
  background: var(--eva-surface-primary);
  border-radius: var(--eva-radius-chip);
  box-shadow: var(--eva-shadow-floating), var(--eva-shadow-hairline);
  backdrop-filter: none;
}
:root[data-theme="dark"] .semi-dropdown-item:not(.semi-dropdown-item-active):hover,
:root[data-theme="dark"] .semi-dropdown-item:focus-visible { background-color: var(--eva-overlay-hover); }

/* —— 浮层契约第二族：wk-contextmenus 右键菜单（组件独立，视觉同节奏）——
 * .wk-contextmenus 是自研右键菜单（009-5 EvaSharedContextMenus：右键坐标
 * 定位/键盘导航/子菜单，Semi Dropdown 为锚点定位组件给不了），不并入 Semi。
 * 视觉契约与 Dropdown 族一致：6px 四周留白、key 圆角、白 6% hover。
 * vendor 原值：menu padding 0（hover 矩形贴边出界）、li padding 0 16px、
 * li:hover #f2f3f5（野值）。浅色 #f2f3f5 与 6% 黑近乎等值，属收编非改观感。 */
.wk-contextmenus { padding: 6px; border-radius: var(--eva-radius-chip); }
.wk-contextmenus ul { border-radius: var(--eva-radius-key); }
.wk-contextmenus li { padding: 0 10px; border-radius: var(--eva-radius-key); }
.wk-contextmenus li:hover, .wk-contextmenus li:focus-visible { background-color: var(--eva-overlay-hover); }
.wk-contextmenus .wk-ctx-sep { margin: 4px 6px; }
