/* ============================================================
 * 句芒 Gitea 品牌 · theme-goumang（git.gomros.cn）
 *
 * ⚠️ 本文件不含任何色值/圆角/阴影/时长字面量——变量值一律 var(--*)
 *    引用同目录 tokens.css / motion.css（docs/23 设计令牌生成器第 4/5 产物，
 *    与官网/Keycloak 同源）。变更令牌值请改 packages/ts/ui-kit/tokens/tokens.json
 *    后重跑 node scripts/gen/generate-design-tokens.mjs，勿手工编辑任何副本。
 *
 * 映射对象：Gitea 1.24 的 --color-* 主题变量体系（在 gitea-light 基准上叠加覆盖，
 * 未覆盖的变量继承 gitea-light 默认）。本域恒浅色（2026-09-25 定案，与官网系列
 * 同口径）。暗色由主站主题偏好 cookie 经 custom/header.tmpl 首帧脚本驱动
 * html[data-theme]（docs/40 §十五补遗 4.4，用户在主站 appearance 设置即同步）；
 * 启用方式见 docker-compose.goumang.yml 的 GITEA__ui__THEMES 与 custom 目录 bind mount。
 * ============================================================ */

/* ⚠️ @import 必须居首：Gitea 主题机制只 link 本文件，令牌/动效副本
 *    不会被页面加载——须由本文件显式导入，否则全部 var() 落空样式失效。 */
@import url("tokens.css");
@import url("motion.css");

:root {
  /* ── 品牌主色：句芒蓝五档 + color-mix 派生（docs/23 color.brand / 派生色规则）── */
  --color-primary: var(--brand-blue);
  --color-primary-contrast: var(--white);
  --color-primary-hover: var(--brand-blue-mid);
  --color-primary-active: var(--brand-blue-deep);
  --color-primary-dark-1: var(--brand-blue-mid);
  --color-primary-dark-2: var(--brand-blue-deep);
  --color-primary-dark-3: var(--brand-blue-deeper);
  --color-primary-dark-4: color-mix(in srgb, var(--brand-blue-deeper) 82%, var(--black));
  --color-primary-light-1: var(--brand-blue-bright);
  --color-primary-light-2: color-mix(in srgb, var(--brand-blue-bright) 80%, var(--white));
  --color-primary-light-3: color-mix(in srgb, var(--brand-blue-bright) 58%, var(--white));
  --color-primary-light-4: color-mix(in srgb, var(--brand-blue-bright) 38%, var(--white));
  --color-primary-light-5: color-mix(in srgb, var(--brand-blue-bright) 24%, var(--white));
  --color-primary-light-6: color-mix(in srgb, var(--brand-blue-bright) 14%, var(--white));
  --color-primary-light-7: color-mix(in srgb, var(--brand-blue-bright) 8%, var(--white));
  --color-primary-alpha-10: color-mix(in srgb, var(--brand-blue) 10%, transparent);
  --color-primary-alpha-15: color-mix(in srgb, var(--brand-blue) 15%, transparent);
  --color-primary-alpha-20: color-mix(in srgb, var(--brand-blue) 20%, transparent);
  --color-primary-alpha-30: color-mix(in srgb, var(--brand-blue) 30%, transparent);
  --color-primary-alpha-40: color-mix(in srgb, var(--brand-blue) 40%, transparent);
  --color-primary-alpha-50: color-mix(in srgb, var(--brand-blue) 50%, transparent);
  --color-primary-alpha-60: color-mix(in srgb, var(--brand-blue) 60%, transparent);
  --color-primary-alpha-70: color-mix(in srgb, var(--brand-blue) 70%, transparent);
  --color-primary-alpha-80: color-mix(in srgb, var(--brand-blue) 80%, transparent);
  --color-primary-alpha-90: color-mix(in srgb, var(--brand-blue) 90%, transparent);

  /* ── 表面：官网同源底色（docs/23 color.surface，暗夜白块禁令同口径）── */
  --color-body: var(--bg);
  --color-card: var(--card);
  --color-box-body: var(--card);
  --color-box-header: var(--surface-brand-weak);
  --color-menu: var(--card);
  --color-secondary-bg: var(--surface-brand-weak);
  --color-timeline: var(--surface-brand-weak);
  --color-widget: var(--card);

  /* ── 文字：ink 三档（docs/23 color.neutral）── */
  --color-text-dark: var(--ink);
  --color-text: var(--ink);
  --color-text-light: var(--ink-soft);
  --color-text-light-1: var(--ink-soft);
  --color-text-light-2: var(--muted);
  --color-text-light-3: var(--muted-soft);

  /* ── 边框/分隔：line 族 ── */
  --color-secondary: var(--line);
  --color-secondary-dark-1: var(--line-strong);
  --color-secondary-dark-2: var(--line-strong);
  --color-secondary-dark-3: color-mix(in srgb, var(--line-strong) 80%, var(--muted));
  --color-secondary-dark-4: color-mix(in srgb, var(--line-strong) 65%, var(--muted));
  --color-light: var(--surface-brand-weak);
  --color-light-1: color-mix(in srgb, var(--line) 60%, var(--white));
  --color-light-2: var(--line);
  --color-light-3: var(--line-strong);
  --color-light-4: var(--line-strong);
  --color-light-border: var(--line-strong);

  /* ── 状态色：docs/23 color.status ── */
  --color-green: var(--success);
  --color-green-contrast: var(--white);
  --color-red: var(--danger);
  --color-red-contrast: var(--white);
  --color-yellow: var(--warning);
  --color-yellow-contrast: var(--white);
  --color-blue: var(--info);
  --color-blue-contrast: var(--white);
  --color-orange: var(--warning);
  --color-orange-contrast: var(--white);
  --color-purple: var(--accent-violet);
  --color-purple-contrast: var(--white);
  --color-teal: var(--accent-teal);
  --color-teal-contrast: var(--white);

  /* ── 链接与代码高亮基色 ── */
  --color-link: var(--brand-blue);
  --color-markdown-code-bg: var(--surface-brand-weak);

  /* ── 圆角：C 端标度（docs/23 radius.web；Gitea 全局圆角变量）── */
  --border-radius: var(--r-xs);
  --border-radius-medium: var(--r-sm);
  --border-radius-large: var(--r-md);

  /* ── 字体：与官网同源字栈（docs/23 font.family）── */
  --fonts-proportional: var(--font-body);
  --fonts-monospace: var(--font-mono);

  /* ── gitea-light 未映射变量全量收口（docs/40 §十五补遗 4.6）：gitea-light 基准
     CSS 在本域并不加载（只链 theme-goumang.css），未映射变量即「未定义」——
     边框回退 currentColor（深色下发白浅色下发黑，2026-09-25 用户实测输入框）。
     全部经令牌/派生收口，零字面量；走 var() 间接引用者随暗色自动翻转。 ── */
  --color-accent: var(--brand-blue-bright);
  --color-small-accent: color-mix(in srgb, var(--brand-blue-bright) 14%, var(--white));
  --color-caret: var(--ink);
  --color-placeholder-text: var(--muted-soft);
  --color-input-text: var(--ink);
  --color-input-background: var(--card);
  --color-input-toggle-background: var(--line);
  --color-input-border: var(--line);
  --color-input-border-hover: var(--line-strong);
  --color-nav-text: var(--ink);
  --color-footer: var(--color-nav-bg);
  --color-nav-bg: var(--bg);
  --color-nav-hover-bg: var(--surface-brand-weak);
  --color-secondary-nav-bg: var(--surface-brand-weak);
  --color-button: var(--surface-brand-weak);
  --color-secondary-button: var(--line-strong);
  --color-secondary-hover: var(--line-strong);
  --color-secondary-active: var(--brand-blue-mid);
  --color-secondary-light-1: color-mix(in srgb, var(--line) 88%, var(--white));
  --color-secondary-light-2: color-mix(in srgb, var(--line) 78%, var(--white));
  --color-secondary-light-3: color-mix(in srgb, var(--line) 66%, var(--white));
  --color-secondary-light-4: color-mix(in srgb, var(--line) 55%, var(--white));
  --color-secondary-dark-5: color-mix(in srgb, var(--line-strong) 88%, var(--black));
  --color-secondary-dark-6: color-mix(in srgb, var(--line-strong) 76%, var(--black));
  --color-secondary-dark-7: color-mix(in srgb, var(--line-strong) 64%, var(--black));
  --color-secondary-dark-8: color-mix(in srgb, var(--line-strong) 52%, var(--black));
  --color-secondary-dark-9: color-mix(in srgb, var(--line-strong) 40%, var(--black));
  --color-secondary-dark-10: color-mix(in srgb, var(--line-strong) 28%, var(--black));
  --color-secondary-dark-11: color-mix(in srgb, var(--line-strong) 16%, var(--black));
  --color-secondary-dark-12: color-mix(in srgb, var(--line-strong) 8%, var(--black));
  --color-secondary-dark-13: var(--black);
  --color-secondary-alpha-10: color-mix(in srgb, var(--line) 10%, transparent);
  --color-secondary-alpha-20: color-mix(in srgb, var(--line) 20%, transparent);
  --color-secondary-alpha-30: color-mix(in srgb, var(--line) 30%, transparent);
  --color-secondary-alpha-40: color-mix(in srgb, var(--line) 40%, transparent);
  --color-secondary-alpha-50: color-mix(in srgb, var(--line) 50%, transparent);
  --color-secondary-alpha-60: color-mix(in srgb, var(--line) 60%, transparent);
  --color-secondary-alpha-70: color-mix(in srgb, var(--line) 70%, transparent);
  --color-secondary-alpha-80: color-mix(in srgb, var(--line) 80%, transparent);
  --color-secondary-alpha-90: color-mix(in srgb, var(--line) 90%, transparent);
  --color-label-text: var(--ink);
  --color-label-bg: color-mix(in srgb, var(--muted) 28%, transparent);
  --color-label-hover-bg: color-mix(in srgb, var(--muted) 55%, transparent);
  --color-label-active-bg: var(--muted);
  --color-markup-table-row: color-mix(in srgb, var(--brand-blue) 4%, transparent);
  --color-markup-code-block: color-mix(in srgb, var(--brand-blue) 6%, transparent);
  --color-markup-code-inline: color-mix(in srgb, var(--brand-blue) 7%, transparent);
  --color-code-bg: var(--surface-brand-weak);
  --color-box-body-highlight: color-mix(in srgb, var(--brand-blue) 8%, var(--card));
  --color-hover: color-mix(in srgb, var(--ink) 5%, transparent);
  --color-active: color-mix(in srgb, var(--ink) 9%, transparent);
  --color-light: color-mix(in srgb, var(--ink) 3%, transparent);
  --color-light-border: color-mix(in srgb, var(--ink) 12%, transparent);
  --color-light-mimic-enabled: color-mix(in srgb, var(--black) 5%, transparent);
  --color-reaction-bg: color-mix(in srgb, var(--ink) 5%, transparent);
  --color-reaction-hover-bg: var(--color-primary-light-5);
  --color-reaction-active-bg: var(--color-primary-light-6);
  --color-primary-dark-5: color-mix(in srgb, var(--brand-blue-deeper) 60%, var(--black));
  --color-primary-dark-6: color-mix(in srgb, var(--brand-blue-deeper) 35%, var(--black));
  --color-primary-dark-7: color-mix(in srgb, var(--brand-blue-deeper) 18%, var(--black));
  --color-tooltip-bg: color-mix(in srgb, var(--navy) 94%, transparent);
  --color-tooltip-text: var(--white);
  --color-overlay-backdrop: color-mix(in srgb, var(--navy) 75%, transparent);
  --color-shadow: color-mix(in srgb, var(--navy) 15%, transparent);
  --color-shadow-opaque: var(--line-strong);
  --color-editor-line-highlight: var(--surface-brand);
  --color-project-column-bg: var(--surface-brand-weak);
  --color-expand-button: color-mix(in srgb, var(--brand-blue) 25%, var(--card));
  --color-git: var(--warning);
  --color-gold: var(--brand-yellow);
  --color-grey: var(--muted);
  --color-grey-light: var(--muted-soft);
  --color-highlight-bg: color-mix(in srgb, var(--brand-yellow) 28%, transparent);
  --color-highlight-fg: var(--brand-yellow);
  --color-red-badge: var(--danger);
  --color-red-badge-bg: color-mix(in srgb, var(--danger) 10%, transparent);
  --color-red-badge-hover-bg: color-mix(in srgb, var(--danger) 30%, transparent);
  --color-green-badge: var(--success);
  --color-green-badge-bg: color-mix(in srgb, var(--success) 10%, transparent);
  --color-green-badge-hover-bg: color-mix(in srgb, var(--success) 30%, transparent);
  --color-yellow-badge: var(--warning);
  --color-yellow-badge-bg: color-mix(in srgb, var(--warning) 10%, transparent);
  --color-yellow-badge-hover-bg: color-mix(in srgb, var(--warning) 30%, transparent);
  --color-orange-badge: var(--warning);
  --color-orange-badge-bg: color-mix(in srgb, var(--warning) 10%, transparent);
  --color-orange-badge-hover-bg: color-mix(in srgb, var(--warning) 30%, transparent);
  --color-violet: var(--accent-violet);
  --color-teal: var(--accent-teal);
  --color-olive: var(--brand-green);
  --color-brown: var(--warning);
  --color-black: var(--ink);
  --color-console-bg: var(--navy);
  --color-console-fg: var(--white);
  --color-console-fg-subtle: var(--on-dark-muted);
  --color-console-border: var(--line-strong);
  --color-console-hover-bg: var(--navy-2);
  --color-console-active-bg: var(--navy-3);
  --color-console-menu-bg: var(--navy-2);
  --color-console-menu-border: var(--line-strong);
  --color-ansi-black: var(--navy);
  --color-ansi-red: var(--danger);
  --color-ansi-green: var(--success);
  --color-ansi-yellow: var(--warning);
  --color-ansi-blue: var(--info);
  --color-ansi-magenta: var(--accent-violet);
  --color-ansi-cyan: var(--accent-teal);
  --color-ansi-white: var(--white);
  --color-ansi-bright-black: var(--muted);
  --color-ansi-bright-red: var(--danger-deep);
  --color-ansi-bright-green: var(--success-deep);
  --color-ansi-bright-yellow: color-mix(in srgb, var(--warning) 80%, var(--white));
  --color-ansi-bright-blue: color-mix(in srgb, var(--info) 80%, var(--white));
  --color-ansi-bright-magenta: color-mix(in srgb, var(--accent-violet) 80%, var(--white));
  --color-ansi-bright-cyan: color-mix(in srgb, var(--accent-teal) 80%, var(--white));
  --color-ansi-bright-white: var(--white);
}

/* ── 表单控件边框色基准（docs/40 §十五补遗 4.6）：Gitea 1.24 采用 Tailwind 式
   通用重置（* { border-color: currentcolor }），未显式设色的边框一律随文字色——
   深色下发白、浅色下发黑（2026-09-25 用户实测项目搜索框）。统一收敛到边框令牌
   （--line 随主题翻转：浅色浅灰、深色深蓝灰）；focus 态交由 Gitea 自身规则覆盖。 ── */
input,
textarea,
select,
.ui.input,
.ui.selection.dropdown {
  border-color: var(--line) !important;
}

.ui.input input,
.ui.input > input {
  border-color: var(--line) !important;
}

.ui.input.focus input,
.ui.input input:focus {
  border-color: var(--brand-blue-mid);
}

/* ── 顶栏：对齐主站 SiteHeader——毛玻璃白 + 细线（--card 82% + blur 18px），
   logo 三色 SVG，链接 ink-soft / hover 品牌蓝 ── */
#navbar {
  background: color-mix(in srgb, var(--card) 82%, transparent);
  backdrop-filter: blur(18px) saturate(1.4);
  -webkit-backdrop-filter: blur(18px) saturate(1.4);
  border-bottom: 1px solid var(--line);
}

#navbar #navbar-logo img {
  height: 40px;
  width: auto;
}

#navbar .item {
  color: var(--ink-soft);
}

#navbar a.item:hover,
#navbar .active.item {
  color: var(--brand-blue);
}

/* Help 项跳 docs.gitea.com 外站，与产品无关——隐藏（含页脚 Gitea 宣传链接） */
#navbar a.item[href*="docs.gitea.com"] {
  display: none !important;
}

footer a[href*="gitea.com"] {
  display: none !important;
}

/* ── 代码块：浅蓝底 + 细边框 + 圆角，与页面表面分层（此前纯白融入背景）── */
/* 代码块（docs/40 §十五补遗 4.5 回归）：外层 pre 容器承担底色/边框/圆角。
   ⚠️ 1.24 结构为 pre.code-block > code.chroma——若把 .chroma 一并纳入边框/底色
   规则，外框内框双描边套娃（2026-09-25 用户实测），内层收敛为透明无边框。 */
.markdown .code-block,
.markdown pre.chroma,
.code-block {
  background: var(--surface-brand-weak) !important;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
}

.markdown code.chroma {
  background: transparent;
  border: 0;
  border-radius: 0;
}

.code-view .lines-code {
  background: var(--surface-brand-weak) !important;
}

/* ── 品牌首页（custom/templates/home.tmpl）── */
.gom-hero {
  background: var(--surface-brand-weak);
  border-bottom: 1px solid var(--line);
  padding: 72px 0 64px;
  text-align: center;
}

.gom-hero__logo {
  margin-bottom: 16px;
}

.gom-hero h1 {
  font-size: var(--fs-hero);
  color: var(--ink);
  margin-bottom: 12px;
}

.gom-hero__desc {
  color: var(--muted);
  max-width: 640px;
  margin: 0 auto 28px;
}

.gom-hero__cta .ui.button {
  border-radius: var(--r-pill);
}

.gom-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--space-4);
  padding: var(--space-6) 0;
}

.gom-card {
  display: block;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: var(--space-5);
  color: var(--ink);
  transition: border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}

.gom-card:hover {
  border-color: var(--brand-blue);
  transform: translateY(-3px);
  box-shadow: var(--shadow-card);
}

.gom-card h3 {
  margin-bottom: var(--space-2);
  color: var(--ink);
}

.gom-card p {
  color: var(--muted);
  font-size: var(--fs-sm);
}

/* ── 焦点环：官网 C 端惯例（品牌蓝半透明 outline）── */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--brand-blue) 35%, transparent);
  outline-offset: -1px;
}

/* ── 动效（docs/31 纪律延伸至 git 域，docs/40 §十五补遗 4）：
   时长/曲线一律 var(--dur-*)/var(--ease-*)，基元来自 motion.css 副本
   （生成管线第 5 产物）。只统一 hover/聚焦过渡与自家落地页进场，
   不碰 Fomantic JS 驱动的显隐时序（dropdown/modal 自带 transition，
   叠加 CSS animation 会双重动画竞争）。 ── */
.ui.button {
  transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease),
    border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}

.ui.label {
  transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease),
    border-color var(--dur-fast) var(--ease);
}

.ui.dropdown .menu > .item {
  transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

/* 品牌落地页（自家 home.tmpl 类，无 Fomantic 竞争）：区块进场 + 卡片级联
   （≤4 项依次落位，docs/31 §四 范式 7 的克制档） */
.gom-hero > * {
  animation: gm-rise-in var(--dur-mid) var(--ease-out) backwards;
}

.gom-hero > *:nth-child(2) { animation-delay: var(--dur-fast); }
.gom-hero > *:nth-child(3) { animation-delay: calc(var(--dur-fast) * 2); }

.gom-cards .gom-card {
  animation: gm-rise-in var(--dur-mid) var(--ease-out) backwards;
}

.gom-cards .gom-card:nth-child(2) { animation-delay: var(--dur-fast); }
.gom-cards .gom-card:nth-child(3) { animation-delay: calc(var(--dur-fast) * 2); }
.gom-cards .gom-card:nth-child(4) { animation-delay: calc(var(--dur-fast) * 3); }

/* ── 暗色（docs/23 §九.7 + docs/40 §十五补遗 4.4）：由主站主题偏好 cookie 经
   custom/header.tmpl 首帧脚本驱动 html[data-theme]，令牌副本的 dark 块随之命中。
   面板/文字随令牌自然翻转（此前「亮面板例外」实为伪需求——不可读的根因是文字
   翻浅叠在被强制成亮色的面板上），本块只补 gitea-light 字面量残留变量的暗色语义。
   升级回归清单见 docs/40 §十五补遗 4。 ── */

:root[data-theme='dark'] {
  --is-dark-theme: true;
  color-scheme: dark;

  /* 悬停/高亮：gitea-light 为黑基 alpha，暗底不可见 → 白基 */
  --color-light: color-mix(in srgb, var(--white) 4%, transparent);
  --color-light-border: color-mix(in srgb, var(--white) 12%, transparent);
  --color-hover: color-mix(in srgb, var(--white) 6%, transparent);
  --color-hover-opaque: var(--surface-brand-weak);
  --color-active: color-mix(in srgb, var(--white) 10%, transparent);
  --color-reaction-bg: color-mix(in srgb, var(--white) 6%, transparent);

  /* 输入/按钮：gitea-light 白底字面量 → 跟随表面层 */
  --color-input-background: var(--bg);
  --color-input-toggle-background: var(--line-strong);
  --color-button: var(--surface-brand-weak);
  --color-expand-button: color-mix(in srgb, var(--brand-blue) 30%, var(--card));
  --color-box-body-highlight: color-mix(in srgb, var(--brand-blue) 12%, var(--card));

  /* 导航/页脚面（#navbar 由上方规则直改已自动跟随） */
  --color-nav-bg: var(--card);
  --color-secondary-nav-bg: var(--bg);
  --color-nav-hover-bg: color-mix(in srgb, var(--line) 45%, var(--card));

  /* primary 亮端补全：暗色下向卡片色收敛（亮块 5–7 向白色收敛） */
  --color-primary-light-5: color-mix(in srgb, var(--brand-blue-bright) 55%, var(--card));
  --color-primary-light-6: color-mix(in srgb, var(--brand-blue-bright) 32%, var(--card));
  --color-primary-light-7: color-mix(in srgb, var(--brand-blue-bright) 18%, var(--card));

  /* 状态告警面板：gitea-light 浅色粉彩字面量 → 令牌 12% 混合 */
  --color-error-border: color-mix(in srgb, var(--danger) 45%, transparent);
  --color-error-bg: color-mix(in srgb, var(--danger) 12%, var(--card));
  --color-error-bg-active: color-mix(in srgb, var(--danger) 22%, var(--card));
  --color-error-bg-hover: color-mix(in srgb, var(--danger) 18%, var(--card));
  --color-error-text: var(--danger-deep);
  --color-success-border: color-mix(in srgb, var(--success) 45%, transparent);
  --color-success-bg: color-mix(in srgb, var(--success) 12%, var(--card));
  --color-success-text: var(--success-deep);
  --color-warning-border: color-mix(in srgb, var(--warning) 45%, transparent);
  --color-warning-bg: color-mix(in srgb, var(--warning) 12%, var(--card));
  --color-warning-text: var(--warning);
  --color-info-border: color-mix(in srgb, var(--info) 45%, transparent);
  --color-info-bg: color-mix(in srgb, var(--info) 12%, var(--card));
  --color-info-text: var(--info);

  /* 状态色对比字：warning 暗档翻为亮琥珀 #FFB224，白字对比不足 → 黑字 */
  --color-yellow-contrast: var(--black);
  --color-orange-contrast: var(--black);

  /* 搜索高亮 */
  --color-highlight-bg: color-mix(in srgb, var(--brand-yellow) 30%, transparent);
  --color-highlight-fg: var(--brand-yellow);

  /* 行级 Diff：gitea-light 粉彩字面量 → diff 组（本就是暗色面板调色板，docs/18） */
  --color-diff-added-linenum-bg: color-mix(in srgb, var(--diff-add) 26%, var(--diff-bg));
  --color-diff-added-row-bg: color-mix(in srgb, var(--diff-add) 14%, var(--diff-bg));
  --color-diff-added-row-border: color-mix(in srgb, var(--diff-add) 40%, var(--diff-bg));
  --color-diff-added-word-bg: color-mix(in srgb, var(--diff-add) 45%, var(--diff-bg));
  --color-diff-moved-row-bg: color-mix(in srgb, var(--diff-add) 10%, var(--diff-bg));
  --color-diff-moved-row-border: color-mix(in srgb, var(--diff-add) 35%, var(--diff-bg));
  --color-diff-removed-linenum-bg: color-mix(in srgb, var(--diff-del) 26%, var(--diff-bg));
  --color-diff-removed-row-bg: color-mix(in srgb, var(--diff-del) 14%, var(--diff-bg));
  --color-diff-removed-row-border: color-mix(in srgb, var(--diff-del) 40%, var(--diff-bg));
  --color-diff-removed-word-bg: color-mix(in srgb, var(--diff-del) 45%, var(--diff-bg));
  --color-diff-inactive: var(--surface-brand-weak);
}

/* ── reduced-motion 降级（docs/31 §七）：本文件新增动效全部瞬时化 ── */
@media (prefers-reduced-motion: reduce) {
  .ui.button,
  .ui.label,
  .ui.dropdown .menu > .item {
    transition: none;
  }

  .gom-hero > *,
  .gom-cards .gom-card {
    animation: none;
  }
}

/* ── 页脚收口（docs/40 §十五补遗 5，2026-09-25 用户问询）：上游「许可证」链接是
 *    纯上游品牌露出——链接视觉隐藏（页面 /licenses 实测 404，上游未开放该路由；
 *    MIT 合规由镜像内源码许可证文件承载，与页面展示无关）。
 *    「API」链接已随 GITEA__api__ENABLE_SWAGGER=false 由上游模板条件消失，
 *    渲染耗时（页面/模板 ms）已随 SHOW_FOOTER_TEMPLATE_LOAD_TIME=false 关闭，
 *    匿名精确版本号 /api/v1/version 由 APISIX 路由 goumang-git-version-block 封堵。 */
footer a[href="/licenses"],
footer a[href$="/licenses"] {
  display: none !important;
}
