/* 越欣科技 Gitea 品牌 CSS · v3 / 2026-11-14
 * 在设计师 v2（?v=20261114-v2i）上整理：全部规则限 html[data-theme^="yuexin"]；
 * 间距变量对齐 design/tokens/yuexin-tokens.json 的 spacing；主色以定稿 #BD713B 为准。
 * 不改 Gitea 功能与交互。切回官方主题后本文件不生效。
 */

html[data-theme^="yuexin"] {
  --fonts-proportional: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB",
    "Microsoft YaHei", "Noto Sans SC", "Noto Sans CJK SC", "Source Han Sans SC", system-ui, Roboto, "Helvetica Neue", Arial, sans-serif;
  --border-radius: 8px;
  --border-radius-medium: 12px;
  --yx-radius-lg: 18px;
  --yx-space-4: 4px;
  --yx-space-8: 8px;
  --yx-space-12: 12px;
  --yx-space-16: 16px;
  --yx-space-20: 20px;
  --yx-space-24: 24px;
  --yx-space-32: 32px;
  --yx-space-40: 40px;
  --yx-space-48: 48px;
  --yx-gutter: 48px;
  --yx-gutter-mobile: 16px;
  --yx-copper: #BD713B;
  --yx-copper-hover: #A86432;
  --yx-copper-active: #8F5429;
  --yx-on-copper: #151D27;
  --yx-link: #EDA457;
  --yx-tree: #FFBE37;
  --yx-ink: #151D27;
  --yx-shadow-card: 0 1px 2px rgba(0, 0, 0, .25);
  --yx-shadow-dropdown: 0 8px 24px rgba(0, 0, 0, .35);
  --yx-shadow-modal: 0 18px 45px rgba(0, 0, 0, .24);
  --color-logo: var(--yx-copper);
}

/* ===== 顶栏 ===== */
html[data-theme^="yuexin"] #navbar {
  background: var(--color-nav-bg);
  box-shadow: inset 0 -1px 0 var(--color-secondary);
  padding-left: var(--yx-space-16);
  padding-right: var(--yx-space-16);
}
html[data-theme^="yuexin"] #navbar .navbar-left,
html[data-theme^="yuexin"] #navbar .navbar-right { gap: var(--yx-space-8); }
html[data-theme^="yuexin"] #navbar-logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-right: var(--yx-space-12);
}
html[data-theme^="yuexin"] #navbar-logo img { border-radius: 7px; }
html[data-theme^="yuexin"] #navbar-logo::after {
  content: "越欣科技 git";
  font-weight: 650;
  font-size: 15px;
  letter-spacing: .08em;
  color: var(--yx-link);
  line-height: 1;
}
html[data-theme^="yuexin"] #navbar .navbar-left > a.item.active,
html[data-theme^="yuexin"] #navbar .navbar-left > a.item.active:hover {
  background: var(--yx-copper);
  color: var(--yx-on-copper);
  border-radius: 999px;
  box-shadow: none;
  font-weight: 650;
}

/* 顶栏「注册」：深色 + 中性描边。选择器收窄到注册链接，避免伤到登录后的通知/头像。 */
html[data-theme^="yuexin"] #navbar .navbar-right a.item[href$="/user/sign_up"] {
  background: transparent;
  border: 1px solid var(--color-input-border);
  border-radius: 999px;
  color: var(--color-text);
  box-shadow: none;
  padding: 6px var(--yx-space-12);
}

/* 顶栏「登录」：深色 + 铜色描边（不依赖 .active，首页与登录页一致）。 */
html[data-theme^="yuexin"] #navbar .navbar-right a.item[href$="/user/login"],
html[data-theme^="yuexin"] #navbar .navbar-right a.item[href$="/user/login"]:hover,
html[data-theme^="yuexin"] #navbar .navbar-right a.item[href$="/user/login"].active,
html[data-theme^="yuexin"] #navbar .navbar-right a.item[href$="/user/login"].active:hover {
  background: transparent;
  border: 1px solid var(--yx-copper);
  border-radius: 999px;
  color: var(--yx-link);
  box-shadow: none;
  padding: 6px var(--yx-space-12);
}

/* ===== 主按钮 / 次要按钮 / 链接 / 卡片 ===== */
html[data-theme^="yuexin"] .ui.primary.button,
html[data-theme^="yuexin"] .ui.primary.buttons .button {
  background: var(--yx-copper);
  color: var(--yx-on-copper);
  border-color: var(--yx-copper);
  font-weight: 650;
  border-radius: var(--border-radius-medium);
}
html[data-theme^="yuexin"] .ui.primary.button:hover,
html[data-theme^="yuexin"] .ui.primary.buttons .button:hover {
  background: var(--yx-copper-hover);
  color: var(--yx-on-copper);
}
html[data-theme^="yuexin"] .ui.primary.button:active,
html[data-theme^="yuexin"] .ui.primary.buttons .button:active {
  background: var(--yx-copper-active);
  color: #FFFFFF;
}
html[data-theme^="yuexin"] .ui.basic.primary.button {
  background: transparent;
  color: var(--yx-link);
  border-color: var(--yx-copper);
}
html[data-theme^="yuexin"] .ui.button { font-weight: 500; border-radius: var(--border-radius-medium); }

html[data-theme^="yuexin"] .page-content .ui.basic.button,
html[data-theme^="yuexin"] .repo-header .ui.button:not(.primary):not(.red),
html[data-theme^="yuexin"] .repo-button-row .ui.button:not(.primary):not(.red) {
  background: transparent;
  border: 1px solid var(--color-input-border);
  color: var(--color-text);
}

html[data-theme^="yuexin"] .page-content a:not(.ui.button):not(.label):not(.item) { color: var(--yx-link); }

html[data-theme^="yuexin"] .ui.segment:not(.attached) { border-radius: var(--yx-radius-lg); box-shadow: var(--yx-shadow-card); }
html[data-theme^="yuexin"] .ui.dropdown .menu,
html[data-theme^="yuexin"] .tippy-box { box-shadow: var(--yx-shadow-dropdown); border-radius: 12px; }
html[data-theme^="yuexin"] .ui.modal { border-radius: var(--yx-radius-lg); box-shadow: var(--yx-shadow-modal); overflow: hidden; }

/* ===== 首页 ===== */
html[data-theme^="yuexin"] .page-content.home {
  background: var(--color-body) url("./home-hero-dark.svg") center top / 1920px auto no-repeat;
  padding: 48px 0 72px;
  min-height: calc(100vh - 120px);
}
html[data-theme^="yuexin"] .page-content.home .logo { filter: drop-shadow(0 18px 40px rgba(0, 0, 0, .45)); }
html[data-theme^="yuexin"] .page-content.home .hero h1.title {
  color: var(--color-text-dark);
  font-weight: 650;
  letter-spacing: .08em;
  margin-top: 12px;
}
html[data-theme^="yuexin"] .page-content.home .hero h2 {
  color: var(--color-text-light-2);
  font-weight: 400;
  font-size: 1.25em;
}
html[data-theme^="yuexin"] .page-content.home .page.grid {
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
  padding: var(--yx-space-16) var(--yx-space-32);
  display: flex;
  flex-wrap: wrap;
  gap: var(--yx-space-24);
  justify-content: center;
}
html[data-theme^="yuexin"] .page-content.home .page.grid .column {
  background: var(--yx-copper);
  color: var(--yx-on-copper);
  border: 0;
  border-radius: var(--yx-radius-lg);
  box-shadow: var(--yx-shadow-card);
  padding: var(--yx-space-32) var(--yx-space-32) var(--yx-space-24);
  margin: 0;
  text-align: center;
  /* 官方 .eight.wide.column { width: 50% !important }；再加 gap 会导致两卡换行，必须减掉间距 */
  width: calc(50% - var(--yx-space-12)) !important;
  float: none;
  display: flex;
  flex-direction: column;
  align-items: center;
}
html[data-theme^="yuexin"] .page-content.home .hero.header {
  color: var(--yx-on-copper);
  font-size: 18px;
  font-weight: 650;
  text-align: left;
  margin-bottom: var(--yx-space-12);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--yx-space-12);
  width: 100%;
}
html[data-theme^="yuexin"] .page-content.home .hero.header .svg {
  color: var(--yx-on-copper);
  margin: 0;
  position: static;
  display: inline-block;
  width: 28px;
  height: 28px;
  flex-shrink: 0;
}
html[data-theme^="yuexin"] .page-content.home p.large {
  color: var(--yx-on-copper);
  text-align: center;
  font-size: 14px;
  line-height: 1.65;
}
html[data-theme^="yuexin"] .page-content.home .page.grid .column a { color: var(--yx-ink); text-decoration: underline; }
html[data-theme^="yuexin"] body:has(.page-content.home) #navbar { box-shadow: none; }

/* ===== 登录页（仅 form[action="/user/login"]，避免套到注册页） ===== */
html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(480px, 1fr);
  min-height: calc(100vh - 96px);
  padding: 0;
  position: relative;
  background: #1A232E;
}
html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"])::before {
  content: "越欣科技 git";
  grid-column: 1;
  grid-row: 1;
  display: block;
  padding: 52px var(--yx-space-48) 0 calc(var(--yx-space-48) + 36px + var(--yx-space-12));
  min-height: 100%;
  background:
    url("../img/logo.svg") var(--yx-space-48) 46px / 36px 36px no-repeat,
    url("./login-brand-bg.svg") left bottom / cover no-repeat,
    #151D27;
  color: var(--yx-link);
  font-size: 20px;
  font-weight: 650;
  letter-spacing: .08em;
  line-height: 24px;
}
html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"])::after {
  content: "一款极易搭建的\A自托管 Git 服务";
  white-space: pre;
  position: absolute;
  left: var(--yx-space-48);
  top: 116px;
  font-size: 32px;
  font-weight: 650;
  letter-spacing: .02em;
  line-height: 1.35;
  color: #EDF1F6;
  pointer-events: none;
}
html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) > .ui.page.grid {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
  padding: var(--yx-space-48) var(--yx-space-48) 64px;
  margin: 0;
}
html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) > .ui.page.grid > .column {
  width: 440px;
  /* 官方 .tw-m-auto / .tw-max-w-2xl 带 !important，不加就无法固定卡片宽度与去掉自动边距 */
  margin: 0 !important;
  max-width: 440px !important;
  float: none;
  gap: 0;
  background: var(--color-box-body);
  border: 1px solid var(--color-secondary);
  border-radius: var(--yx-radius-lg);
  box-shadow: var(--yx-shadow-modal);
  padding: var(--yx-space-32) var(--yx-space-40) var(--yx-space-32);
}
html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) h4.ui.attached.header {
  background: transparent;
  border: 0;
  box-shadow: none;
  font-size: 22px;
  font-weight: 650;
  color: var(--color-text-dark);
  text-align: left;
  padding: 0 0 var(--yx-space-24);
}
html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) .ui.attached.segment {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}
html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) .ui.form .field { margin-bottom: var(--yx-space-20); }
html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) .ui.form .field:has(> input[name="password"]) > div {
  /* 官方 .tw-mb-1 { margin-bottom: .25rem !important } 加在密码行容器上 */
  margin-bottom: var(--yx-space-8) !important;
}
html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) .ui.form label { margin-bottom: var(--yx-space-8); }
html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) .ui.form input {
  background: #253241;
  border: 1px solid var(--color-input-border);
  border-radius: 10px;
  color: var(--color-text-dark);
  padding: 12px 14px;
}
html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) .ui.form input:focus {
  border-color: var(--yx-copper);
  box-shadow: 0 0 0 3px rgba(189, 113, 59, .35);
}
html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) .ui.form,
html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) .ui.form .field,
html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) .ui.container.fluid {
  width: 100%;
  max-width: none;
}
html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) .ui.checkbox label { padding-left: 28px; }
html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) .ui.form .field .ui.primary.button {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 46px;
  border-radius: 12px;
  margin-top: var(--yx-space-8);
  background: var(--yx-copper);
  color: var(--yx-on-copper);
}
html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) > .ui.page.grid > .column > .ui.container + .ui.container {
  margin-top: var(--yx-space-24);
  padding-top: var(--yx-space-24);
  border-top: 1px solid var(--color-secondary);
}
html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) .ui.attached.segment.header.top {
  background: transparent;
  border: 0;
  box-shadow: none;
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 0;
  gap: var(--yx-space-8);
  color: var(--color-text-light-2);
  line-height: 1.7;
  text-align: center;
}
html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) .ui.attached.segment.header.top .field {
  white-space: nowrap;
  width: 100%;
  margin: 0;
  text-align: center;
}
html[data-theme^="yuexin"] body:has(.page-content.user.signin form[action="/user/login"]) #navbar { box-shadow: none; }
html[data-theme^="yuexin"] body:has(.page-content.user.signin form[action="/user/login"]) .page-footer { background: #1A232E; }

/* ===== 仓库 / 文件 ===== */
html[data-theme^="yuexin"] .page-content { background: var(--color-body); }
html[data-theme^="yuexin"] .page-content.repository { background: var(--color-body); }
html[data-theme^="yuexin"] .ui.secondary.pointing.menu { border-bottom-color: var(--color-secondary); }
html[data-theme^="yuexin"] .ui.secondary.pointing.menu .active.item,
html[data-theme^="yuexin"] .ui.secondary.pointing.menu .active.item:hover,
html[data-theme^="yuexin"] .repository-menu .active.item {
  border: 0;
  border-bottom: 0;
  color: var(--yx-on-copper);
  background: var(--yx-copper);
  border-radius: 999px;
  font-weight: 650;
  box-shadow: none;
  margin-bottom: 0;
}

html[data-theme^="yuexin"] .page-content.repository .file-header.ui.top.attached.header,
html[data-theme^="yuexin"] .page-content.user.settings .ui.top.attached.header,
html[data-theme^="yuexin"] .page-content.repository .ui.top.attached.header {
  background: var(--yx-copper);
  color: var(--yx-on-copper);
  border: 0;
  border-radius: var(--yx-radius-lg) var(--yx-radius-lg) 0 0;
  font-weight: 650;
  padding: var(--yx-space-12) var(--yx-space-20);
}
html[data-theme^="yuexin"] .page-content.repository .file-header a,
html[data-theme^="yuexin"] .page-content.repository .file-header .svg { color: var(--yx-on-copper); }
html[data-theme^="yuexin"] .page-content.repository .ui.bottom.attached.segment,
html[data-theme^="yuexin"] .page-content.repository .file-view-container {
  background: var(--color-box-body);
  border: 1px solid var(--color-secondary);
  border-top: 0;
  border-radius: 0 0 var(--yx-radius-lg) var(--yx-radius-lg);
  box-shadow: var(--yx-shadow-card);
}
/* 官方 .file-view-container { padding: 0 !important }，此处不再重复。
 * 通用 attached.segment 内边距把文件/diff 排除在外，以免再打 !important 清零。 */
html[data-theme^="yuexin"] .page-content .ui.attached.segment:not(.header):not(.file-view-container):not(.diff-file-body) {
  padding: var(--yx-space-20) var(--yx-space-24);
}

html[data-theme^="yuexin"] .repo-home-sidebar-top,
html[data-theme^="yuexin"] .repo-home-sidebar-bottom {
  background: var(--color-box-body);
  border: 1px solid var(--color-secondary);
  border-radius: var(--yx-radius-lg);
  overflow: hidden;
  padding: 0 0 var(--yx-space-20);
  margin-bottom: var(--yx-space-24);
  box-shadow: var(--yx-shadow-card);
}
html[data-theme^="yuexin"] .repo-home-sidebar-header {
  background: var(--yx-copper);
  color: var(--yx-on-copper);
  font-weight: 650;
  font-size: 13px;
  letter-spacing: .04em;
  padding: var(--yx-space-12) var(--yx-space-20);
  margin: 0 0 var(--yx-space-16);
}
html[data-theme^="yuexin"] .repo-home-sidebar-top > :not(.repo-home-sidebar-header),
html[data-theme^="yuexin"] .repo-home-sidebar-bottom > :not(.repo-home-sidebar-header):not(.divider) {
  padding-left: var(--yx-space-20);
  padding-right: var(--yx-space-20);
}
html[data-theme^="yuexin"] .repo-home-sidebar-bottom .divider { display: none; }
html[data-theme^="yuexin"] .repo-home-sidebar-top .flex-text-block,
html[data-theme^="yuexin"] .repo-home-sidebar-top .repo-description { margin-bottom: var(--yx-space-8); }
html[data-theme^="yuexin"] .repo-topic.ui.label {
  background: var(--color-small-accent);
  color: var(--yx-link);
  border: 1px solid var(--yx-copper);
  border-radius: 999px;
}

html[data-theme^="yuexin"] #repo-files-table {
  display: flex;
  flex-direction: column;
  gap: var(--yx-space-12);
  background: transparent;
  border: 0;
  box-shadow: none;
}
html[data-theme^="yuexin"] #repo-files-table .repo-file-last-commit,
html[data-theme^="yuexin"] #repo-files-table .repo-file-item {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.4fr) auto;
  align-items: center;
  gap: var(--yx-space-12);
  background: var(--color-box-body);
  border: 1px solid var(--color-secondary);
  border-radius: 14px;
  padding: var(--yx-space-12) var(--yx-space-20);
  box-shadow: var(--yx-shadow-card);
}
html[data-theme^="yuexin"] #repo-files-table .repo-file-last-commit {
  grid-template-columns: 1fr auto;
  margin-bottom: 4px;
}
html[data-theme^="yuexin"] #repo-files-table .repo-file-item:hover {
  box-shadow: inset 3px 0 0 var(--yx-copper), 0 0 0 1px rgba(237, 164, 87, .45);
  border-color: transparent;
}
html[data-theme^="yuexin"] #repo-files-table .repo-file-cell { border-top: 0; }
html[data-theme^="yuexin"] #repo-files-table .repo-file-cell.name .svg,
html[data-theme^="yuexin"] #repo-files-table .repo-file-cell.name svg {
  width: 28px;
  height: 28px;
  padding: 6px;
  border-radius: 8px;
  background: var(--yx-copper);
  color: var(--yx-on-copper);
  fill: currentColor;
  vertical-align: middle;
  margin-right: 8px;
}

/* ===== 设置左侧栏 ===== */
html[data-theme^="yuexin"] .ui.vertical.menu {
  background: var(--color-box-body);
  border: 1px solid var(--color-secondary);
  border-radius: var(--yx-radius-lg);
  box-shadow: var(--yx-shadow-card);
  overflow: hidden;
}
html[data-theme^="yuexin"] .ui.vertical.menu .item {
  color: var(--color-text);
  border-radius: 0;
}
html[data-theme^="yuexin"] .ui.vertical.menu .active.item,
html[data-theme^="yuexin"] .ui.vertical.menu .active.item:hover {
  background: var(--yx-copper);
  color: var(--yx-on-copper);
  font-weight: 650;
  border-radius: 0;
  box-shadow: none;
}
html[data-theme^="yuexin"] .ui.vertical.menu .header.item {
  background: var(--yx-copper);
  color: var(--yx-on-copper);
  font-weight: 650;
  letter-spacing: .04em;
}
html[data-theme^="yuexin"] .ui.vertical.menu > .item:not(details),
html[data-theme^="yuexin"] .ui.vertical.menu details.item .menu > .item {
  padding: var(--yx-space-12) var(--yx-space-16);
}
html[data-theme^="yuexin"] .ui.vertical.menu > details.item { padding: 0; }
html[data-theme^="yuexin"] .ui.vertical.menu > details.item > summary { padding: var(--yx-space-12) var(--yx-space-16); }
html[data-theme^="yuexin"] .page-content.user.settings .ui.attached.segment {
  background: var(--color-box-body);
  border-color: var(--color-secondary);
  border-radius: 0 0 var(--yx-radius-lg) var(--yx-radius-lg);
}
html[data-theme^="yuexin"] .user.settings .ui.grid,
html[data-theme^="yuexin"] .page-content.user.settings .flex-container { gap: var(--yx-space-24); }

/* ===== 工单 / PR 列表与详情 ===== */
html[data-theme^="yuexin"] .flex-divided-list.items-with-main > .item {
  background: var(--color-box-body);
  border: 1px solid var(--color-secondary);
  border-radius: 14px;
  padding: var(--yx-space-16) var(--yx-space-20);
  margin-bottom: var(--yx-space-12);
  gap: var(--yx-space-12);
  box-shadow: var(--yx-shadow-card);
}
html[data-theme^="yuexin"] .flex-divided-list.items-with-main > .item .item-main { gap: var(--yx-space-4); }
html[data-theme^="yuexin"] .ui.label.issue-label,
html[data-theme^="yuexin"] a.ui.label[href*="/labels/"],
html[data-theme^="yuexin"] .repo-topic.ui.label { border-radius: 999px; }

html[data-theme^="yuexin"] .comment-header,
html[data-theme^="yuexin"] .timeline-item.comment .comment-header {
  background: var(--yx-copper);
  color: var(--yx-on-copper);
  border: 0;
  border-radius: 14px 14px 0 0;
  font-weight: 650;
  padding: var(--yx-space-12) var(--yx-space-20);
}
html[data-theme^="yuexin"] .comment-header a,
html[data-theme^="yuexin"] .comment-header .svg,
html[data-theme^="yuexin"] .comment-header .comment-header-left,
html[data-theme^="yuexin"] .comment-header .comment-header-left *:not(.ui.label):not(img) {
  color: var(--yx-on-copper);
}
html[data-theme^="yuexin"] .comment-body,
html[data-theme^="yuexin"] .comment-content,
html[data-theme^="yuexin"] .timeline-item.comment .comment-content,
html[data-theme^="yuexin"] .comment .render-content.markup {
  background: var(--color-box-body);
}
html[data-theme^="yuexin"] .comment-body,
html[data-theme^="yuexin"] .comment .render-content.markup {
  padding: var(--yx-space-16) var(--yx-space-20);
}
html[data-theme^="yuexin"] .comment-container,
html[data-theme^="yuexin"] .timeline-item.comment > .comment-container {
  border-radius: var(--yx-radius-lg);
  overflow: hidden;
  border-color: var(--color-secondary);
}
html[data-theme^="yuexin"] .timeline-item { padding-top: var(--yx-space-12); padding-bottom: var(--yx-space-12); }
html[data-theme^="yuexin"] .comment-list > .ui.warning.message {
  background: var(--yx-copper);
  color: var(--yx-on-copper);
  border: 0;
  border-radius: 14px;
  box-shadow: var(--yx-shadow-card);
  font-weight: 650;
  padding: var(--yx-space-16) var(--yx-space-20);
  margin-top: var(--yx-space-16);
}
html[data-theme^="yuexin"] .comment-list > .ui.warning.message a {
  color: var(--yx-on-copper);
  text-decoration: underline;
}
html[data-theme^="yuexin"] .issue-content { gap: var(--yx-space-24); }
html[data-theme^="yuexin"] .issue-content-right {
  background: var(--color-box-body);
  border: 1px solid var(--color-secondary);
  border-radius: var(--yx-radius-lg);
  padding: var(--yx-space-12) var(--yx-space-20) var(--yx-space-20);
  box-shadow: var(--yx-shadow-card);
}

html[data-theme^="yuexin"] .file-header .ui.basic.button,
html[data-theme^="yuexin"] .file-header .btn-octicon,
html[data-theme^="yuexin"] .file-header .btn-octicon .svg,
html[data-theme^="yuexin"] .diff-file-header .ui.button,
html[data-theme^="yuexin"] .comment-header .ui.button,
html[data-theme^="yuexin"] .comment-header .ui.label,
html[data-theme^="yuexin"] .comment-header a,
html[data-theme^="yuexin"] .comment-header .svg {
  color: var(--yx-on-copper);
  border-color: rgba(21, 29, 39, 0.35);
  background: transparent;
  fill: currentColor;
}
html[data-theme^="yuexin"] .file-header .ui.basic.button.active,
html[data-theme^="yuexin"] .file-header .ui.basic.button:hover,
html[data-theme^="yuexin"] .comment-header .ui.button:hover {
  background: rgba(21, 29, 39, 0.16);
}

html[data-theme^="yuexin"] .repo-view-file-tree-container {
  background: var(--color-box-body);
  border: 1px solid var(--color-secondary);
  border-radius: var(--yx-radius-lg);
}
/* 文件树条目由前端渲染；只用稳定类名，不用 Vue scoped 哈希属性 */
html[data-theme^="yuexin"] .tree-item.selected,
html[data-theme^="yuexin"] .tree-item.selected:hover {
  background: var(--yx-copper);
  color: var(--yx-on-copper);
  border-radius: 8px;
}

/* ===== diff ===== */
html[data-theme^="yuexin"] .diff-file-box .diff-file-header,
html[data-theme^="yuexin"] .diff-file-header,
html[data-theme^="yuexin"] .repository.diff .diff-file-box .ui.attached.header {
  /* 官方 .diff-file-header { padding: 5px 8px !important } */
  background: var(--yx-copper);
  color: var(--yx-on-copper);
  border: 0;
  font-weight: 650;
  padding: var(--yx-space-8) var(--yx-space-16) !important;
}
html[data-theme^="yuexin"] .diff-file-header a,
html[data-theme^="yuexin"] .diff-file-header .svg,
html[data-theme^="yuexin"] .diff-file-box .diff-file-header a,
html[data-theme^="yuexin"] .diff-file-box .diff-file-header .svg {
  color: var(--yx-on-copper);
}
html[data-theme^="yuexin"] .diff-file-box { margin-bottom: var(--yx-space-24); }
html[data-theme^="yuexin"] .diff-detail-box { padding: var(--yx-space-12) 0; gap: var(--yx-space-12); }

/* ===== 页脚、焦点、通用间距 ===== */
html[data-theme^="yuexin"] .page-footer {
  background: var(--color-footer);
  border-top: 1px solid var(--color-secondary);
  color: var(--color-text-light-3);
}
html[data-theme^="yuexin"] :focus-visible { outline-color: var(--yx-copper); }
html[data-theme^="yuexin"] input:focus,
html[data-theme^="yuexin"] textarea:focus { border-color: var(--yx-copper); }

html[data-theme^="yuexin"] .page-content > .ui.container,
html[data-theme^="yuexin"] .page-content .secondary-nav > .ui.container {
  max-width: calc(100% - 2 * var(--yx-gutter));
}
html[data-theme^="yuexin"] .page-content.repository .repo-header { padding-top: var(--yx-space-8); gap: var(--yx-space-12); }
html[data-theme^="yuexin"] .repo-header .repo-button-row,
html[data-theme^="yuexin"] .repo-button-row { gap: var(--yx-space-8); }
html[data-theme^="yuexin"] .page-content.repository > .ui.container { padding-top: var(--yx-space-24); }

html[data-theme^="yuexin"] .repository .ui.tabs.menu,
html[data-theme^="yuexin"] .overflow-menu-items { gap: var(--yx-space-4); }
html[data-theme^="yuexin"] .repository .ui.tabs.menu > .item,
html[data-theme^="yuexin"] overflow-menu.ui.menu .overflow-menu-items > .item.item {
  /* 官方 .ui.secondary.pointing.menu .item { padding: 11.55px 12px !important } */
  padding-left: var(--yx-space-16) !important;
  padding-right: var(--yx-space-16) !important;
}

html[data-theme^="yuexin"] .page-content .ui.button + .ui.button:not(.buttons > .button) { margin-left: var(--yx-space-8); }
html[data-theme^="yuexin"] .repo-button-row,
html[data-theme^="yuexin"] .list-header,
html[data-theme^="yuexin"] .list-header-toggle { gap: var(--yx-space-12); }
html[data-theme^="yuexin"] .repo-button-row { margin-bottom: var(--yx-space-16); }
html[data-theme^="yuexin"] .list-header { margin-bottom: var(--yx-space-16); }
html[data-theme^="yuexin"] .list-header-filters { gap: var(--yx-space-16); }

html[data-theme^="yuexin"] .page-content .ui.attached.segment + .ui.top.attached.header,
html[data-theme^="yuexin"] .page-content .ui.segment + .ui.segment:not(.attached),
html[data-theme^="yuexin"] .page-content .ui.attached.segment + h4.ui.top.attached.header { margin-top: var(--yx-space-24); }

html[data-theme^="yuexin"] .labels-list > .item + .item,
html[data-theme^="yuexin"] .labels-list > .ui.label + .ui.label { margin-left: var(--yx-space-8); }
html[data-theme^="yuexin"] .ui.label { padding: 3px var(--yx-space-8); }
html[data-theme^="yuexin"] #repo-topics { gap: var(--yx-space-8); margin: var(--yx-space-8) 0; }

html[data-theme^="yuexin"] .page-content .ui.form .field:not(:last-child) { margin-bottom: var(--yx-space-20); }
html[data-theme^="yuexin"] .page-content .ui.form .field > label { margin-bottom: var(--yx-space-8); }
html[data-theme^="yuexin"] .page-content .ui.form .field + .field > .ui.button,
html[data-theme^="yuexin"] .page-content .ui.form .field > .ui.primary.button { margin-top: var(--yx-space-4); }
html[data-theme^="yuexin"] .page-content .ui.form .ui.divider { margin: var(--yx-space-24) 0; }

/* ===== 手机 390：与官方断点 767.98px 对齐 ===== */
@media (max-width: 767.98px) {
  html[data-theme^="yuexin"] #navbar {
    padding-left: var(--yx-gutter-mobile);
    padding-right: var(--yx-gutter-mobile);
    min-height: 56px;
  }
  html[data-theme^="yuexin"] #navbar-logo { gap: var(--yx-space-8); margin-right: 0; }
  html[data-theme^="yuexin"] #navbar-logo::after { font-size: 13px; letter-spacing: .04em; }

  html[data-theme^="yuexin"] .page-content > .ui.container,
  html[data-theme^="yuexin"] .page-content .secondary-nav > .ui.container {
    /* 官方移动端 .ui.container / .ui.menu>.ui.container 使用 width/margin !important */
    max-width: calc(100% - 2 * var(--yx-gutter-mobile)) !important;
    width: calc(100% - 2 * var(--yx-gutter-mobile)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  html[data-theme^="yuexin"] .page-content.repository > .ui.container { padding-top: var(--yx-space-16); }
  html[data-theme^="yuexin"] .repo-header .repo-button-row,
  html[data-theme^="yuexin"] .repo-button-row { gap: var(--yx-space-8); flex-wrap: wrap; margin-top: var(--yx-space-12); }
  html[data-theme^="yuexin"] .repository .ui.tabs.menu > .item,
  html[data-theme^="yuexin"] overflow-menu.ui.menu .overflow-menu-items > .item.item {
    padding-left: var(--yx-space-12) !important;
    padding-right: var(--yx-space-12) !important;
  }
  html[data-theme^="yuexin"] .page-content .ui.attached.segment:not(.header):not(.file-view-container):not(.diff-file-body) { padding: var(--yx-space-16); }
  html[data-theme^="yuexin"] .page-content .ui.top.attached.header { padding: var(--yx-space-12) var(--yx-space-16); }
  html[data-theme^="yuexin"] #repo-files-table .repo-file-item,
  html[data-theme^="yuexin"] #repo-files-table .repo-file-last-commit {
    grid-template-columns: 1fr;
    gap: var(--yx-space-4);
    padding: var(--yx-space-12) var(--yx-space-16);
  }
  html[data-theme^="yuexin"] .flex-divided-list.items-with-main > .item { padding: var(--yx-space-16); }
  html[data-theme^="yuexin"] .list-header,
  html[data-theme^="yuexin"] .repo-button-row { gap: var(--yx-space-12); flex-wrap: wrap; }
  html[data-theme^="yuexin"] .list-header-filters { gap: var(--yx-space-8) var(--yx-space-16); flex-wrap: wrap; }
  html[data-theme^="yuexin"] .comment-header { padding: var(--yx-space-12) var(--yx-space-16); }
  html[data-theme^="yuexin"] .comment-body,
  html[data-theme^="yuexin"] .comment .render-content.markup { padding: var(--yx-space-16); }
  html[data-theme^="yuexin"] .issue-content-right { padding: var(--yx-space-12) var(--yx-space-16) var(--yx-space-16); margin-top: var(--yx-space-24); }

  html[data-theme^="yuexin"] .page-content.home {
    padding: 24px 0 40px;
    background-size: 900px auto;
  }
  html[data-theme^="yuexin"] .page-content.home .hero h1.title { font-size: 36px; }
  html[data-theme^="yuexin"] .page-content.home .page.grid {
    width: 100%;
    padding: var(--yx-space-8) var(--yx-gutter-mobile) 0;
    gap: var(--yx-space-16);
    margin: 8px auto 0;
  }
  html[data-theme^="yuexin"] .page-content.home .page.grid .column {
    width: 100%;
    flex: 1 1 100%;
    min-height: 0;
    padding: var(--yx-space-24) var(--yx-space-20);
  }

  html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) { display: flex; flex-direction: column; }
  html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"])::before {
    min-height: 380px;
    padding: 28px var(--yx-gutter-mobile) 0 calc(var(--yx-gutter-mobile) + 32px + var(--yx-space-12));
    font-size: 18px;
    text-shadow: 0 2px 10px rgba(21, 29, 39, .9);
    background:
      url("../img/logo.svg") var(--yx-gutter-mobile) 24px / 32px 32px no-repeat,
      url("./login-brand-bg.svg") center bottom / 100% auto no-repeat,
      #151D27;
  }
  html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"])::after {
    left: var(--yx-gutter-mobile);
    top: 76px;
    font-size: 24px;
    text-shadow: 0 2px 12px rgba(21, 29, 39, .85);
  }
  html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) > .ui.page.grid {
    padding: var(--yx-space-24) var(--yx-gutter-mobile) var(--yx-space-32);
    align-items: flex-start;
  }
  html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) > .ui.page.grid > .column {
    width: 100%;
    max-width: 100% !important;
    padding: var(--yx-space-24) var(--yx-space-20);
  }
  html[data-theme^="yuexin"] .page-content.user.signin:has(form[action="/user/login"]) .ui.attached.segment.header.top .field { white-space: normal; }

  html[data-theme^="yuexin"] .ui.vertical.menu { margin-bottom: var(--yx-space-24); }
}
