/* 正文加粗、调大字号，解决 Noto Sans SC 字体过淡问题 */
body {
  font-weight: 480;
  font-size: 1.05rem;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  zoom: 125%;
}


/* 日期信息挪到标题下方后的样式调整 */
.md-source-file {
  margin-bottom: 1.5em;
  padding: 0.6em 0.8em;
  background: var(--md-code-bg-color);
  border-radius: 0.2rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em 1.5em;
  font-size: 0.7rem;
}

.md-source-file .md-icon {
  vertical-align: middle;
}

.md-source-file__fact {
  display: inline-flex;
  align-items: center;
  gap: 0.3em;
  white-space: nowrap;
}

/* ===== 右侧目录编号 ===== */
/* h1 级别 */
.md-nav--secondary > .md-nav__list {
  counter-reset: toc-h1;
}
.md-nav--secondary > .md-nav__list > .md-nav__item {
  counter-increment: toc-h1;
}
.md-nav--secondary > .md-nav__list > .md-nav__item > .md-nav__link::before {
  content: counter(toc-h1) ".";
  margin-right: 0.15em;
}

/* h2 级别 */
.md-nav--secondary .md-nav__item > nav > .md-nav__list {
  counter-reset: toc-h2;
}
.md-nav--secondary .md-nav__item > nav > .md-nav__list > .md-nav__item {
  counter-increment: toc-h2;
}
.md-nav--secondary .md-nav__item > nav > .md-nav__list > .md-nav__item > .md-nav__link::before {
  content: counter(toc-h1) "." counter(toc-h2);
  margin-right: 0.15em;
}

/* h3 级别 */
.md-nav--secondary .md-nav__item > nav > .md-nav__list > .md-nav__item > nav > .md-nav__list {
  counter-reset: toc-h3;
}
.md-nav--secondary .md-nav__item > nav > .md-nav__list > .md-nav__item > nav > .md-nav__list > .md-nav__item {
  counter-increment: toc-h3;
}
.md-nav--secondary .md-nav__item > nav > .md-nav__list > .md-nav__item > nav > .md-nav__list > .md-nav__item > .md-nav__link::before {
  content: counter(toc-h1) "." counter(toc-h2) "." counter(toc-h3);
  margin-right: 0.15em;
}

/* h4 级别：使用（1）（2）序号形式，区别于 h3 的点分格式 */
.md-nav--secondary .md-nav__item > nav > .md-nav__list > .md-nav__item > nav > .md-nav__list > .md-nav__item > nav > .md-nav__list {
  counter-reset: toc-h4;
}
.md-nav--secondary .md-nav__item > nav > .md-nav__list > .md-nav__item > nav > .md-nav__list > .md-nav__item > nav > .md-nav__list > .md-nav__item {
  counter-increment: toc-h4;
}
.md-nav--secondary .md-nav__item > nav > .md-nav__list > .md-nav__item > nav > .md-nav__list > .md-nav__item > nav > .md-nav__list > .md-nav__item > .md-nav__link::before {
  content: "（" counter(toc-h4) "）";
  margin-right: 0.15em;
}

/* ===== 标题颜色 ===== */
/* 浅色模式：暖橙色 */
[data-md-color-scheme="default"] .md-typeset h1,
[data-md-color-scheme="default"] .md-typeset h2,
[data-md-color-scheme="default"] .md-typeset h3,
[data-md-color-scheme="default"] .md-typeset h4,
[data-md-color-scheme="default"] .md-typeset h5,
[data-md-color-scheme="default"] .md-typeset h6 {
  color: #FFA55F;
}

/* 深色模式：亮绿色 */
[data-md-color-scheme="slate"] .md-typeset h1,
[data-md-color-scheme="slate"] .md-typeset h2,
[data-md-color-scheme="slate"] .md-typeset h3,
[data-md-color-scheme="slate"] .md-typeset h4,
[data-md-color-scheme="slate"] .md-typeset h5,
[data-md-color-scheme="slate"] .md-typeset h6 {
  color: #60DB7C;
}

/* ================================================================
   侧边栏折叠与拖拽调整宽度
   ================================================================ */

/* 侧边栏基础：允许 JS 控制宽度，宽度变化加过渡动画 */
.sidebar-enabled .md-sidebar {
  transition: width 0.2s ease;
}

/* 正文外边距过渡：与侧边栏宽度过渡同速率，折叠/展开动画期间两者同步移动 */
.sidebar-enabled .md-content {
  transition: margin 0.2s ease;
}
/* 拖拽调宽时正文外边距实时跟随，不做过渡 */
.sidebar-resizing .md-content {
  transition: none !important;
}

/* 初始化期间禁用过渡：避免页面加载时恢复持久化宽度播放动画（视觉闪烁） */
.sidebar-initializing .md-sidebar,
.sidebar-initializing .md-content {
  transition: none !important;
}

/* 折叠状态：宽度归零并隐藏内容 */
.sidebar-enabled .md-sidebar.sidebar-collapsed {
  width: 0 !important;
  min-width: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  opacity: 0;
  pointer-events: none;
}

/* 折叠后收起侧边栏与正文之间的间距 */
.sidebar-enabled.sidebar-left-collapsed .md-content__inner {
  margin-left: 0 !important;
}
.sidebar-enabled.sidebar-right-collapsed .md-content__inner {
  margin-right: 0 !important;
}

.sidebar-enabled .md-sidebar__scrollwrap {
  max-height: 100%;
  overflow-y: auto;
}

/* 折叠/展开按钮 - position: fixed 固定屏幕边缘、垂直居中、平时隐藏、悬停显示 */
.sidebar-toggle {
  position: fixed;
  top: 50%;
  z-index: 20;
  width: 0.55rem;
  height: 0.55rem;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--md-default-fg-color--lighter);
  border-radius: 0.15rem;
  background: var(--md-default-bg-color);
  color: var(--md-default-fg-color--light);
  font-size: 0.35rem;
  line-height: 1;
  cursor: pointer;
  /* 平时一直隐藏，只有鼠标进入探测范围时才显示 */
  opacity: 0;
  pointer-events: auto;
  transition: background 0.2s, color 0.2s, border-color 0.2s, opacity 0.2s;
  user-select: none;
  -webkit-user-select: none;
}
/* 左按钮：固定在屏幕中间的最左侧 */
.sidebar-toggle-left {
  left: 0;
  transform: translateY(-50%);
}
/* 右按钮：固定在屏幕中间的最右侧 */
.sidebar-toggle-right {
  right: 0;
  transform: translateY(-50%);
}
/* 扩展悬停探测区域（inset 负值越大，鼠标靠近时越容易触发） */
.sidebar-toggle::before {
  content: '';
  position: absolute;
  inset: -30px;
}
/* 鼠标进入探测范围才显示 */
.sidebar-toggle:hover {
  opacity: 1;
  background: var(--md-accent-fg-color);
  border-color: var(--md-accent-fg-color);
  color: var(--md-default-bg-color);
}

/* 侧边栏背景色块：与正文背景保留轻微色差，用于区分侧边栏与正文的边界。
   颜色基于主题变量混合，自动适配亮/暗两套配色；纯 CSS 渲染，随首帧出现 */
.sidebar-enabled .md-sidebar--primary,
.sidebar-enabled .md-sidebar--secondary {
  background: color-mix(
    in srgb,
    var(--md-default-bg-color) 95%,
    var(--md-default-fg-color) 5%
  );
}

/* 拖拽过程中禁止选中文本，防止误触 */
.sidebar-resizing {
  user-select: none;
  -webkit-user-select: none;
}

/* 桌面端：折叠按钮仅在较宽屏幕显示，小屏走原生抽屉交互 */
@media screen and (max-width: 76.234375em) {
  .sidebar-toggle {
    display: none;
  }
}

/* ===== 回到顶部按钮 ===== */
.back-to-top {
  position: fixed;
  right: 1.2rem;
  bottom: 2.5rem;
  z-index: 19;
  width: 1.8rem;
  height: 1.8rem;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--md-default-fg-color--lighter);
  border-radius: 50%;
  background: transparent;
  color: var(--md-default-fg-color--light);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s, background 0.25s, color 0.25s, border-color 0.25s;
  user-select: none;
  -webkit-user-select: none;
}
.back-to-top svg {
  width: 1rem;
  height: 1rem;
  fill: currentColor;
}
/* 滚动超过阈值后淡入，保持低存在感（45% 透明度） */
.back-to-top--visible {
  opacity: 0.45;
  pointer-events: auto;
}
/* 悬停时略微明显一点 */
.back-to-top--visible:hover {
  opacity: 0.85;
  background: var(--md-accent-fg-color);
  border-color: var(--md-accent-fg-color);
  color: var(--md-default-bg-color);
}

/* 隐藏底部页脚（含 "Made with Material for MkDocs" 字样） */
.md-footer {
  display: none;
}
