/* ============================================================
   GIS 工具箱文档站 · 剑来古风主题
   宣纸米黄 + 松烟墨黑 + 印泥朱砂 + 赭石黛青
   字体：标题用楷体，正文用宋体（全系统字体，零外部请求）
   ============================================================ */

/* ---------- 古风字体与配色变量 ---------- */
:root {
  /* 宣纸 / 松烟墨 / 印泥朱砂 / 赭石 / 黛青 */
  --xuan-bg:        #f4ecd8;  /* 宣纸米黄（主背景） */
  --xuan-bg-2:      #efe4ca;  /* 次级纸色 */
  --xuan-card:      #fbf6e9;  /* 纸卡（更亮） */
  --mo-ink:         #2b2620;  /* 松烟墨（正文） */
  --mo-ink-dim:     #6b5d4a;  /* 淡墨（次要文字） */
  --zhu-sha:        #9e2b25;  /* 印泥朱砂（标题/强调/链接） */
  --zhu-sha-hi:     #b8392f;  /* 亮朱砂 */
  --zhe-shi:        #a8742a;  /* 赭石（点缀） */
  --dai-qing:       #3a5a52;  /* 黛青（次强调） */
  --mo-line:        rgba(43,38,32,.16);   /* 墨线 */
  --mo-line-soft:   rgba(43,38,32,.10);

  /* 古风系统字体（不加载任何网络字体，加快首屏） */
  --md-text-font:        "Songti SC","Source Han Serif SC","Noto Serif SC","STSong","SimSun","宋体",serif;
  --md-text-font-title:  "STKaiti","KaiTi","楷体","Kaiti SC","Songti SC","宋体",serif;
  --md-code-font:        "JetBrains Mono","Cascadia Code","Consolas","Courier New",monospace;

  --md-primary-fg-color: var(--zhu-sha);
  --md-primary-fg-color--light: var(--zhu-sha-hi);
  --md-primary-fg-color--dark: #7d1f1a;
  --md-accent-fg-color: var(--zhe-shi);
}

/* ---------- 亮色（宣纸）模式 ---------- */
[data-md-color-scheme="default"] {
  --md-default-bg-color: var(--xuan-bg);
  --md-default-fg-color: var(--mo-ink);
  --md-default-fg-color--light: var(--mo-ink-dim);
  --md-default-fg-color--lightest: #9a8a72;
  --md-typeset-color: var(--mo-ink);
  --md-typeset-a-color: var(--zhu-sha);
  --md-primary-fg-color: var(--zhu-sha);
  --md-accent-fg-color: var(--zhe-shi);
  --md-footer-bg-color: #2a2520;
  --md-footer-bg-color--dark: #1c1813;
}

/* ---------- 暗色（水墨夜）模式 ---------- */
[data-md-color-scheme="slate"] {
  --xuan-bg:        #1b1e24;
  --xuan-bg-2:      #23272f;
  --xuan-card:      #252a32;
  --mo-ink:         #e8e0cf;
  --mo-ink-dim:     #b3a98f;
  --zhu-sha:        #d9544a;
  --zhu-sha-hi:     #e8746a;
  --zhe-shi:        #d2a05a;
  --dai-qing:       #6f9c8e;
  --mo-line:        rgba(232,224,207,.16);
  --mo-line-soft:   rgba(232,224,207,.10);
  --md-default-bg-color: #1b1e24;
  --md-default-fg-color: #e8e0cf;
  --md-default-fg-color--light: #b3a98f;
  --md-default-fg-color--lightest: #6f6757;
  --md-typeset-color: #e8e0cf;
  --md-typeset-a-color: #d9544a;
  --md-primary-fg-color: #d9544a;
  --md-accent-fg-color: #d2a05a;
  --md-footer-bg-color: #14161a;
  --md-footer-bg-color--dark: #0c0d10;
}

/* ---------- 宣纸纹理（极淡，不影响阅读） ---------- */
[data-md-color-scheme="default"] .md-main,
[data-md-color-scheme="default"] body {
  background-color: var(--xuan-bg);
  background-image:
    radial-gradient(circle at 18% 22%, rgba(158,43,37,.022) 0, transparent 55%),
    radial-gradient(circle at 82% 78%, rgba(58,90,82,.020) 0, transparent 55%),
    repeating-linear-gradient(0deg, rgba(43,38,32,.014) 0 1px, transparent 1px 4px);
}

/* ---------- 顶部栏：松烟墨褐 + 朱砂底边 ---------- */
.md-header {
  background: linear-gradient(135deg, #2a2520 0%, #3a322a 55%, #2a2520 100%);
  box-shadow: 0 1px 0 rgba(158,43,37,.5), 0 4px 18px rgba(0,0,0,.30);
}
.md-header__title { font-family: var(--md-text-font-title); font-weight: 700; letter-spacing: .06em; color: #f3ead6; }
.md-header__topic { color: #e6ddc8; }

/* 修复：header 按钮被标题覆盖导致点不了（保留原加固逻辑） */
.md-header__inner { position: relative; }
.md-header__button { position: relative; z-index: 2; flex: 0 0 auto; pointer-events: auto; }
.md-header__button[for="__drawer"] {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 2.4rem; min-height: 2.4rem;
}
.md-header__title { position: relative; z-index: 1; flex: 1 1 auto; min-width: 0; margin-left: .2rem; }
.md-header__title a, .md-header__title .md-header__button { position: relative; z-index: 3; }
.md-header__ellipsis { overflow: hidden; }

/* ---------- 侧边栏：纸色 + 墨线 ---------- */
.md-sidebar--primary {
  background: linear-gradient(180deg, var(--xuan-bg-2) 0%, var(--xuan-bg) 100%);
  border-right: 1px solid var(--mo-line);
}
@media screen and (max-width: 76.25em) {
  [data-md-toggle="drawer"]:not(:checked) ~ .md-container .md-sidebar--primary {
    transform: translateX(-100%);
  }
}
.md-nav--primary .md-nav__title {
  color: var(--zhu-sha);
  font-family: var(--md-text-font-title);
  font-weight: 700;
  letter-spacing: .05em;
}
.md-nav--primary .md-nav__link {
  color: var(--mo-ink-dim);
  transition: color .18s ease, background .18s ease, padding-left .18s ease;
  border-left: 3px solid transparent;
}
.md-nav--primary .md-nav__link:hover {
  color: var(--mo-ink);
  background: rgba(158,43,37,.06);
  border-left-color: var(--zhu-sha);
  padding-left: 14px;
}
.md-nav--primary .md-nav__link--active,
.md-nav--primary .md-nav__link[aria-current="page"] {
  color: var(--zhu-sha);
  font-weight: 600;
  border-left-color: var(--zhu-sha);
  background: rgba(158,43,37,.10);
}

/* ---------- 主内容：宋体正文 + 楷体标题 ---------- */
.md-typeset {
  color: var(--md-typeset-color);
  font-family: var(--md-text-font);
  font-size: .85rem;
  line-height: 1.85;
}
.md-typeset h1, .md-typeset h2, .md-typeset h3,
.md-typeset h4, .md-typeset h5, .md-typeset h6 {
  font-family: var(--md-text-font-title);
  color: var(--zhu-sha);
  font-weight: 700;
  letter-spacing: .04em;
}
.md-typeset h1 { font-size: 1.9rem; }
.md-typeset h2 { font-size: 1.45rem; }
.md-typeset h3 { font-size: 1.15rem; }
/* 标题下朱砂短线，似落墨/印章 */
.md-typeset h1::after,
.md-typeset h2::after {
  content: "";
  display: block;
  height: 3px;
  width: 68px;
  margin-top: 8px;
  background: linear-gradient(90deg, var(--zhu-sha), transparent);
  border-radius: 2px;
}
.md-typeset a {
  color: var(--zhu-sha);
  text-decoration: none;
  border-bottom: 1px solid rgba(158,43,37,.28);
  transition: color .15s ease, border-color .15s ease;
}
.md-typeset a:hover {
  color: var(--zhu-sha-hi);
  border-bottom-color: var(--zhu-sha-hi);
  text-decoration: none;
}
.md-typeset strong { color: var(--mo-ink); font-weight: 700; }
.md-typeset blockquote {
  border-left: 4px solid var(--zhe-shi);
  color: var(--mo-ink-dim);
  background: rgba(168,116,42,.06);
}

/* ---------- 首页卡片：纸卡 + 墨边 + 朱砂角标 ---------- */
.md-typeset .grid.cards > ul > li {
  background: var(--xuan-card);
  border: 1px solid var(--mo-line);
  border-radius: 10px;
  padding: 1rem 1.1rem;
  position: relative;
  box-shadow: 0 2px 10px rgba(43,38,32,.10);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  overflow: hidden;
}
.md-typeset .grid.cards > ul > li::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 10px;
  border: 1px solid rgba(158,43,37,.0);
  transition: border-color .22s ease;
  pointer-events: none;
}
.md-typeset .grid.cards > ul > li:hover {
  transform: translateY(-4px);
  border-color: var(--zhu-sha);
  box-shadow: 0 6px 20px rgba(158,43,37,.16);
}
.md-typeset .grid.cards > ul > li:hover::before { border-color: rgba(158,43,37,.35); }
.md-typeset .grid.cards > ul > li > a {
  display: block;
  color: var(--mo-ink);
  font-family: var(--md-text-font-title);
  font-weight: 700;
}
.md-typeset .grid.cards > ul > li strong { color: var(--mo-ink); font-weight: 700; }
.md-typeset .grid.cards > ul > li .twemoji svg,
.md-typeset .grid.cards > ul > li svg { color: var(--zhu-sha); }

/* ---------- 表格：墨色表头 + 纸色隔行 ---------- */
.md-typeset table:not([class]) {
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--mo-line);
  box-shadow: 0 2px 10px rgba(43,38,32,.10);
}
.md-typeset table:not([class]) th {
  background: linear-gradient(90deg, #3a322a 0%, #4a3f33 100%);
  color: #f3ead6;
  font-family: var(--md-text-font-title);
  font-weight: 600;
  border-bottom: 2px solid var(--zhu-sha);
}
.md-typeset table:not([class]) td { border-bottom: 1px solid var(--mo-line-soft); }
.md-typeset table:not([class]) tr:nth-child(2n) td { background: rgba(43,38,32,.035); }
.md-typeset table:not([class]) tr:hover td { background: rgba(158,43,37,.07); }

/* ---------- 代码块：松烟墨底 ---------- */
.md-typeset code,
.md-typeset pre code {
  font-family: var(--md-code-font);
  font-size: .78rem;
}
.md-typeset pre {
  background: #2a2520;
  border: 1px solid rgba(158,43,37,.25);
  border-radius: 8px;
}
[data-md-color-scheme="slate"] .md-typeset pre { background: #14161a; }
.md-typeset code:not(pre code) {
  background: rgba(158,43,37,.10);
  color: var(--zhu-sha);
  padding: .15em .45em;
  border-radius: 4px;
  border: 1px solid rgba(158,43,37,.28);
}

/* ---------- admonition：墨边 + 朱砂左边框 ---------- */
.md-typeset .admonition,
.md-typeset details {
  border-radius: 8px;
  border-left: 4px solid var(--zhu-sha);
  box-shadow: 0 2px 10px rgba(43,38,32,.10);
  background: rgba(251,246,233,.6);
}
[data-md-color-scheme="slate"] .md-typeset .admonition,
[data-md-color-scheme="slate"] .md-typeset details { background: rgba(37,42,50,.6); }
.md-typeset .admonition-title,
.md-typeset summary { font-weight: 700; font-family: var(--md-text-font-title); }
.md-typeset .admonition.note,
.md-typeset .admonition.tip     { border-left-color: var(--dai-qing); }
.md-typeset .admonition.warning,
.md-typeset .admonition.attention { border-left-color: var(--zhe-shi); }
.md-typeset .admonition.danger,
.md-typeset .admonition.failure  { border-left-color: var(--zhu-sha-hi); }

/* ---------- 图片：圆角 + 纸色描边（替代发光） ---------- */
.md-typeset img {
  border-radius: 6px;
  border: 1px solid var(--mo-line);
  box-shadow: 0 2px 12px rgba(43,38,32,.14);
  transition: transform .2s ease, box-shadow .2s ease;
}
.md-typeset img:hover {
  transform: scale(1.012);
  box-shadow: 0 4px 18px rgba(158,43,37,.20);
}

/* ---------- 搜索框 ---------- */
.md-search__input {
  background: rgba(43,38,32,.06);
  border: 1px solid var(--mo-line);
  border-radius: 8px;
  color: var(--mo-ink);
  transition: border-color .18s ease, box-shadow .18s ease;
}
.md-search__input:focus {
  border-color: var(--zhu-sha);
  box-shadow: 0 0 0 3px rgba(158,43,37,.16);
  outline: none;
}
.md-search__input::placeholder { color: var(--mo-ink-dim); }

/* ---------- 页脚 ---------- */
.md-footer {
  background: linear-gradient(180deg, #2a2520, #1c1813);
  border-top: 1px solid rgba(158,43,37,.25);
  color: #cdbfa6;
}
.md-footer__link { color: #cdbfa6; }
.md-footer__link:hover { color: #f3ead6; }

/* ---------- 按钮 ---------- */
.md-typeset .md-button {
  border: 1px solid var(--zhu-sha);
  color: var(--zhu-sha);
  border-radius: 8px;
  font-family: var(--md-text-font-title);
  transition: all .18s ease;
}
.md-typeset .md-button:hover { background: var(--zhu-sha); color: #fbf6e9; }
.md-typeset .md-button--primary { background: var(--zhu-sha); color: #fbf6e9; }
.md-typeset .md-button--primary:hover { background: var(--zhu-sha-hi); }

/* ---------- 右上角仓库头像 ---------- */
.md-source__icon {
  width: 28px; height: 28px; border-radius: 50%; overflow: hidden;
  background: url("avatar.jpg") center/cover no-repeat;
  box-shadow: 0 0 0 2px rgba(158,43,37,.45);
}
.md-source__icon svg { display: none; }
.md-source__repository { color: #f3ead6; font-weight: 600; }

/* ---------- 分隔线 ---------- */
.md-typeset hr {
  border: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(158,43,37,.5), transparent);
  margin: 2rem 0;
}

/* ---------- 滚动条 ---------- */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--xuan-bg-2); }
::-webkit-scrollbar-thumb {
  background: rgba(158,43,37,.35);
  border-radius: 5px;
  border: 2px solid var(--xuan-bg-2);
}
::-webkit-scrollbar-thumb:hover { background: rgba(158,43,37,.6); }

/* ---------- 小屏适配 ---------- */
@media screen and (max-width: 76.25em) {
  .md-typeset { font-size: .82rem; }
}

/* ---------- 未发布条目（导航置灰，不可点击） ---------- */
.md-nav__link.nav-disabled {
  opacity: .42;
  color: #8a7a63 !important;
  cursor: not-allowed;
  font-style: normal;
}
.md-nav__link.nav-disabled:hover {
  background: transparent !important;
  color: #8a7a63 !important;
}
[data-md-color-scheme="slate"] .md-nav__link.nav-disabled,
[data-md-color-scheme="slate"] .md-nav__link.nav-disabled:hover { color: #6f6757 !important; }
.md-nav__link.nav-disabled::after {
  content: "待发布";
  margin-left: .4rem;
  font-size: .62rem;
  padding: .05rem .35rem;
  border-radius: 4px;
  background: rgba(138,122,99,.20);
  color: #8a7a63;
  vertical-align: middle;
  font-family: var(--md-text-font-title);
}
