/* ============================================================
   MoreCross 文档 —— mdBook 自定义主题
   由原 GitBook 的 styles/website.css + theme-hqbook 主题移植而来
   主色：#13c2c2
   ============================================================ */

:root {
    --links: #13c2c2;
    --links-hover: #0e9c9c;
    --sidebar-active: #13c2c2;
    /* 目录树默认文字色（GitBook 观感） */
    --sidebar-fg: #364149;
    --content-max-width: 1000px;
    /* 注意：mdBook 以 var(--page-padding) 作为左右内边距，须为单值 */
    --page-padding: 40px;
    /* 顶栏高度：mdBook 用它定位侧边栏与正文（原值 50px）。
       80px 对齐参考站 api.morecross.cn 的 .header-inner */
    --menu-bar-height: 80px;
    /* 顶栏配色（取自参考站 styles/website.css） */
    --mc-header-border: #e2e2e2;
    --mc-header-title: #575656;
    --mc-header-link: #333333;
    --mc-search-bar-bg: #e4e4e4;
    /* 全站正文默认文字色。mdBook 内置是纯黑 hsl(0, 0%, 0%)，观感过重；
       统一为 #333。此处覆盖「无脚本/无主题类」兜底路径，
       常规路径由文件末尾的 html.light.light 块以更高特异度覆盖。 */
    --fg: #333;
}

/* ------------------------------------------------------------
   全站默认字号 14px（1.4rem）
   ------------------------------------------------------------
   内置 `body { font-size: 1.6rem }`（= 16px，rem 基准由
   :root { font-size: 62.5% } 提供，1rem = 10px）。
   参考站 api.morecross.cn 实测：html 12px / body 14px / 正文 section 14px
   / 正文 h1 28px，故这里改为 1.4rem 对齐。
   标题、代码等以 em 相对计算的尺寸会等比跟随（h1 仍是 2 倍）。

   注意：内置 `.sidebar { font-size: 0.875em }` 是相对 body 的比值，
   body 缩到 14px 后目录树会连带缩到 12.25px；而参考站的目录树实测是
   14px（.book-summary li a），因此下面显式把目录树钉在 1.4rem，
   使「改正文字号」不再牵动目录树。
   ------------------------------------------------------------ */
body {
    font-size: 1.4rem;
}

.sidebar {
    font-size: 1.4rem;
}

/* ============================================================
   页面骨架：顶栏通栏吸顶 + 下方「左侧目录树 / 右侧正文」
   ------------------------------------------------------------
   mdBook 0.5 原生把顶栏放在 .page-wrapper 内部，于是它只覆盖侧边栏
   右侧那段宽度。这里改为：
     · 顶栏 fixed 通栏吸顶 —— 内置还有一条更高特异度的
       `html.sidebar-visible #mdbook-menu-bar { position: sticky }`，
       所以必须用 !important 才能压住，否则侧边栏展开时又会变回 sticky
     · 侧边栏从顶栏下沿开始（内置为 top: 0，会顶到顶栏底下）
     · 正文整体下移一个顶栏高度
   顶栏处于 .page-wrapper 之内，而 <620px 时该元素会被 transform 位移，
   fixed 子元素会跟着一起偏，故窄屏需取消位移（见文件末尾媒体查询）。
   ============================================================ */
#mdbook-menu-bar,
#mdbook-menu-bar.sticky,
html.sidebar-visible #mdbook-menu-bar {
    position: fixed !important;
    top: 0 !important;
    left: 0;
    right: 0;
    width: 100%;
    box-sizing: border-box;
    margin: 0;   /* 覆盖内置的 auto calc(0px - var(--page-padding)) */
    height: var(--menu-bar-height);
    padding-inline: 30px;
    align-items: center;
    background-color: #fff;
    z-index: 200;
}

/* 顶栏下边框：参考站是 1px #e2e2e2（原值 #dededede 叠加白底后的等效色）。
   内置的 #mdbook-menu-bar.bordered 会把颜色改回 --table-border-color
   （.bordered 由 book.js 随滚动距离增删），故这里用 !important 固定。 */
#mdbook-menu-bar,
#mdbook-menu-bar.bordered {
    border-block-end: 1px solid var(--mc-header-border) !important;
}

/* 顶栏常驻可见，原生「滚动后 hover 才浮出」用的占位块不再需要 */
#mdbook-menu-bar-hover-placeholder {
    display: none;
}

/* 侧边栏从顶栏下沿开始 */
.sidebar {
    top: var(--menu-bar-height);
    z-index: 150;   /* 窄屏下浮在正文之上 */
}

/* 正文让出顶栏高度：顶栏已脱离文档流，同时取消 .page 的负上边距 */
#mdbook-page-wrapper {
    padding-block-start: var(--menu-bar-height);
}

.page {
    margin-block-start: 0;
}

/* ============================================================
   页面翻页控件：让出「翻页槽」，不再压住正文
   ------------------------------------------------------------
   mdBook 0.5 有两套翻页控件，按宽度切换（内置断点）：
     · ≥1381px（且侧边栏展开）→ .nav-wide-wrapper 里的 .nav-chapters
       浮动在视口两侧：position:fixed、top:0/bottom:0 通高、宽 90~150px
     · ≤1380px              → 正文末尾 .nav-wrapper 里的 .mobile-nav-chapters
       （行内元素，在 <main> 之后，天然不会遮挡任何内容）

   问题出在浮动那套：.content main（正文，max-width 1000px）在 .content 里
   居中，而箭头固定贴视口两侧，于是 1381~1600px 区间两者重叠 ——
   实测 1400px 时左侧压 52px、右侧压 84px，鼠标悬停时 --theme-hover
   的灰底通高铺开，整条盖住正文右缘。

   修法对齐参考站 api.morecross.cn 的做法（它给 .page-inner 留了
   270px 右内边距、箭头锚在留白里）：这里给正文让出左右两条翻页槽，
   箭头收窄并锚进槽内。1381px 处实测的几何为
       .page 左 308 = sidebar(300) + resize-indicator(8)，padding 40 → .content 左 348
       箭头 [sidebar+8, sidebar+64] = [308, 364]
   要保证箭头与正文间隔 12px，正文左缘须 ≥376 → 左侧再让 28px；
   右侧同理，.content 右缘 vw-40、箭头左缘 vw-64，须再让 36px。
   于是：正文左缘 ≥ sidebar+76，右缘 ≤ vw−76，箭头槽恒占 12px 间隔外。
   注意 @media 本身不参与特异度，靠 #id 选择器压过内置的 .content 规则。
   ============================================================ */
@media only screen and (min-width: 1381px) {
    /* 正文让出左右翻页槽（仅改行内内边距，块级 0/50px 保持内置值） */
    #mdbook-content {
        padding-inline: 28px 36px;
    }

    /* 箭头收窄并锚进槽内 —— 内置为 min-width:90px / max-width:150px */
    .nav-wide-wrapper .nav-chapters {
        min-width: 56px;
        max-width: 56px;
        font-size: 2em;
        /* 参考站 GitBook 的 .navigation 是 #ccc，hover 只把箭头变深（#444），
           并不铺背景（.navigation:hover { color:#444 }）。
           mdBook 多了 .nav-chapters:hover { background: var(--theme-hover) }，
           hover 时会铺一条通高的 #e6e6e6 灰带 —— 这正是「挡住正文」的观感来源。
           这里对齐参考站：去掉底色，只改箭头颜色。 */
        color: #cccccc;
    }

    .nav-wide-wrapper .nav-chapters:hover {
        color: #444444;
        background-color: transparent;
    }

    /* 内置 .previous 没有 left，靠 static position 落在 sidebar 右侧 8px 处，
       并另有 margin-inline-start: 8px 的补偿，这里显式接管。
       用 --sidebar-width 变量而非硬编码 300px，跟随侧边栏宽度。 */
    .nav-wide-wrapper .nav-chapters.previous {
        left: calc(var(--sidebar-width) + var(--sidebar-resize-indicator-width));
        margin-inline-start: 0;
    }

    .nav-wide-wrapper .nav-chapters.next {
        right: 8px;
    }
}

/* ------------------------------------------------------------
   顶栏内部分区：左「Logo + 站点标题」 / 右「导航链接 + 搜索框」
   （对齐参考站 .header-inner 的 .logo / .title / .header-nav /
   #book-search-input 四个块）
   ------------------------------------------------------------ */

#mdbook-menu-bar .left-buttons {
    display: flex;
    align-items: center;
    margin: 0;
    flex: 0 0 auto;
}

/* 站点 Logo（mdBook 0.5 已移除 logo 配置项，改由 morecross.js 注入）。
   参考站 logo 原图 292×62，max-height:36px —— 即 ink 高度 24px */
.mc-logo {
    display: block;
    max-height: 36px;
    width: auto;
}

/* 站点标题：紧跟 Logo 左对齐（内置居中的 2.4rem 大标题在此改回
   参考站的 20px/#575656）。flex:0 1 auto 让它必要时可省略号收缩。 */
#mdbook-menu-bar .menu-title {
    flex: 0 1 auto;
    min-width: 0;
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
    color: var(--mc-header-title);
    text-align: left;
    margin: 0 0 0 10px;
}

#mdbook-menu-bar .right-buttons {
    display: flex;
    align-items: center;
    margin: 0;
    margin-inline-start: auto;
}

/* 顶栏导航链接（由 morecross.js 注入，替代 theme-hqbook 的 nav 配置） */
.menu-bar .right-buttons .mc-nav {
    display: flex;
    align-items: center;
    /* 右侧留白对齐参考站 .header-nav { margin: 10px 20px 0 0 }
       —— 实测「开发者社区」文字到搜索框左边缘 55px */
    margin: 0 20px 0 0;
}

/* 链接间距对齐参考站实测值：相邻文字净间距 59px */
.menu-bar .right-buttons .mc-nav a {
    color: var(--mc-header-link);
    text-decoration: none;
    font-size: 14px;
    line-height: 1;
    white-space: nowrap;
    padding: 8px 10px;
    margin: 0 19px;
}

.menu-bar .right-buttons .mc-nav a:hover {
    color: #13c2c2;
}

/* ------------------------------------------------------------
   顶栏搜索：参考站 .header-inner #book-search-input 的胶囊搜索框
   —— 300×40px 圆角 10000px，内部左侧灰色输入区（80%）+ 右侧品牌色
   「搜索」按钮（20%）。由 morecross.js 注入并桥接到 mdBook 原生搜索。
   ------------------------------------------------------------ */
.menu-bar .right-buttons .mc-search {
    display: flex;
    align-items: stretch;
    box-sizing: border-box;
    width: 300px;
    height: 38px;
    margin: 0;
    border-radius: 10000px;
    overflow: hidden;
    background-color: #13c2c2;
}

.menu-bar .right-buttons .mc-search input {
    flex: 1 1 auto;
    min-width: 0;
    box-sizing: border-box;
    margin: 0;
    border: none;
    outline: none;
    background-color: var(--mc-search-bar-bg);
    padding: 0 18px;
    font-family: inherit;
    font-size: 14px;
    line-height: 1;
    color: var(--mc-header-link);
}

.menu-bar .right-buttons .mc-search input::placeholder {
    color: #9b9b9b;
}

.menu-bar .right-buttons .mc-search button {
    flex: 0 0 20%;
    margin: 0;
    border: none;
    background: transparent;
    padding: 0;
    font-family: inherit;
    font-size: 14px;
    line-height: 1;
    color: #ffffff;
    cursor: pointer;
}

.menu-bar .right-buttons .mc-search button:hover {
    color: #eae8e8;
}

/* ------------------------------------------------------------
   搜索结果浮层（由 morecross.js 注入到 document.body）
   ------------------------------------------------------------
   位置：fixed，右边缘对齐搜索框，上边缘贴顶栏下沿 —— 因此它覆盖在
   右侧正文之上（顶栏 z-index 200 已高于侧边栏 150 与正文）。
   挂 body 而不是顶栏内部：窄屏 .page-wrapper 有 transform，
   fixed 子元素会被它的包含块带偏；也避开 .mc-search 的 overflow:hidden。
   ------------------------------------------------------------ */
.mc-search-panel {
    position: fixed;
    z-index: 300;
    box-sizing: border-box;
    width: min(460px, calc(100vw - 24px));
    max-height: min(62vh, 520px);
    overflow-y: auto;
    overflow-x: hidden;
    padding: 6px 0;
    background-color: #fff;
    border: 1px solid var(--mc-header-border);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    font-size: 14px;
    text-align: left;
}

.mc-search-panel[hidden] {
    display: none !important;
}

.mc-search-panel .mc-search-meta {
    padding: 2px 16px 6px;
    color: #9b9b9b;
    font-size: 12px;
    line-height: 1.6;
}

.mc-search-panel .mc-search-list,
.mc-search-panel .mc-search-item {
    margin: 0;
    padding: 0;
    list-style: none;
}

.mc-search-panel .mc-search-item a {
    display: block;
    padding: 7px 16px;
    border-left: 3px solid transparent;
    text-decoration: none;
    color: var(--mc-header-link);
}

.mc-search-panel .mc-search-item.active a,
.mc-search-panel .mc-search-item a:hover {
    background-color: #f2fbfb;
    border-left-color: #13c2c2;
}

.mc-search-panel .mc-search-title {
    font-weight: 600;
    color: #333;
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mc-search-panel .mc-search-path {
    margin-top: 2px;
    color: #9b9b9b;
    font-size: 12px;
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mc-search-panel .mc-search-snippet {
    margin-top: 3px;
    color: #666;
    font-size: 12.5px;
    line-height: 1.6;
    word-break: break-word;
}

.mc-search-panel .mc-search-empty,
.mc-search-panel .mc-search-error {
    padding: 14px 16px;
    color: #888;
    line-height: 1.6;
}

/* 高亮底色严格限定在被匹配字形的字框内 —— 不要加横向 padding。
   mark 是行内元素，padding 会把底色框向左右各撑出 1px（实测「组件」底色
   宽 27px，而两字实际只有 25px）；中文相邻字形之间几乎没有侧边距，
   「，」「：」这类标点的墨迹更是紧贴自己字框的左缘，撑出的这 1px
   正好压在邻字笔画上，看起来就像高亮把旁边的字挡住/咬掉了。
   去 padding 后底色宽度 = 匹配文本宽度，不再侵入相邻字符。
   预留 border-radius 只收不放（圆角只会让底色变小），不会造成遮挡。 */
.mc-search-panel mark {
    padding: 0;
    border-radius: 2px;
    background-color: #ffe58f;
    color: inherit;
}

/* 隐藏 mdBook 0.5 运行时注入的「本页目录」(on-this-page) 子树。
   该子树由 toc.js 在当前章节下自动生成，条目为 href="#heading" 的页内锚点；
   目录树只保留「页面级」导航。mdBook 无对应配置项，故用 CSS 关闭。 */
.sidebar .on-this-page,
mdbook-sidebar-scrollbox .on-this-page {
    display: none !important;
}

/* 本站不提供深色模式：隐藏主题切换按钮与主题菜单
   （mdBook 0.5 无关闭该功能的配置项，故用 CSS 隐藏；主题本身由
   book.toml 的 preferred-dark-theme=light + theme/head.hbs 锁定为浅色） */
#mdbook-theme-toggle,
#mdbook-theme-list,
.menu-bar .right-buttons .icon-button#mdbook-theme-toggle {
    display: none !important;
}

/* 隐藏 mdBook 自带的两个图标按钮：
     · 侧边栏折叠按钮 —— 仅宽屏隐藏（参考站桌面端目录树常显，不需要折叠入口；
       窄屏仍要它来唤出目录树）
     · 搜索按钮       —— 全宽度隐藏，已由顶栏胶囊搜索框取代
       （book.toml 已关闭原生搜索，该按钮现在根本不存在，留着以防回头开启） */
@media only screen and (min-width: 701px) {
    #mdbook-sidebar-toggle {
        display: none !important;
    }
}

#mdbook-search-toggle {
    display: none !important;
}

/* ------------------------------------------------------------
   侧边栏滚动区：去掉内置的 10px 内边距
   ------------------------------------------------------------
   内置 chrome.css：`.sidebar .sidebar-scrollbox { padding: 10px 10px }`。
   去掉后目录树整行（含选中态底色）可直接顶到侧边栏左右边缘，
   行内留白改由 li 自己的 padding-left 提供（见下方「目录树行高」区块）。
   同特异性、本文件后加载，故可直接覆盖。 */
.sidebar .sidebar-scrollbox {
    padding: 0;
}

/* ------------------------------------------------------------
   侧边栏：目录树整行可点
   ------------------------------------------------------------
   点击事件以 li 为单元（morecross.js 的 bindChapterRowClick 委托到 document）。
   但 mdBook 的 <a> 是行内元素，只包住文字，行内大片区域点不到；
   参考站 GitBook 里 .book-summary li a / span 是 display:block + padding，
   整行就是热区。这里用 flex 让行内元素铺满，配 JS 实现「点行内任意位置」。
   箭头的展开旋转动画由内置 chrome.css 提供：transition transform .5s */
.sidebar .chapter-link-wrapper > .mc-fold-label {
    flex: 1;
    cursor: pointer;
    transition: color 0.15s ease;
}

.sidebar .chapter-link-wrapper > .mc-fold-label:hover {
    color: #13c2c2;
}

/* 叶子行：页面链接铺满整行。
   必须排除折叠箭头 —— 它也是 .chapter-link-wrapper 的直接子 <a>。 */
.sidebar .chapter-link-wrapper > a:not(.chapter-fold-toggle) {
    flex: 1;
}

/* 父级行（morecross.js 打的标）：整行手型光标 */
.sidebar li.chapter-item.mc-has-children {
    cursor: pointer;
}

/* 目录树文字统一为 #333：
   内置规则下，可点链接走 --sidebar-fg，而不可点的分组标题（如「框架」「配置」）
   继承 .chapter li 的 --sidebar-non-existant（light 下是 #aaaaaa 浅灰），
   两者观感不一致，这里一并归正。 */
.sidebar .chapter-link-wrapper > span {
    color: #333;
}

/* 折叠箭头：不再使用字体字符 ❱（U+2771）
   ------------------------------------------------------------
   原生标记是 <a class="chapter-fold-toggle"><div>❱</div></a>，
   字形窄、粗细随字体与系统渲染而变化，难以调宽。
   这里把字符「关掉」（font-size: 0，元素保留作旋转载体），
   改用纯 CSS 绘制：右边框 + 下边框拼出直角，再旋转 -45° 得到 V 形。
   尺寸、线宽完全可控，任何字体环境下渲染一致。

   旋转动画沿用 mdBook 原生实现，不 fork toc.js：
     chrome.css: .chapter-fold-toggle div                          { transition: transform .5s }
     chrome.css: .chapter li.expanded > span > .chapter-fold-toggle div { transform: rotate(90deg) }
   toc.js 只负责切换 li 上的 .expanded 类。伪元素挂在被旋转的 div 上，
   会随父级一起旋转，因此展开时自动由「指向右」变为「指向下」。

   颜色用 currentColor，与 .chapter-fold-toggle 的常态/hover 色联动。 */
.sidebar .chapter-fold-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: 36px;
    padding: 2px 12px;
    color: #333;
    opacity: 0.9;
    transition: color 0.15s ease, opacity 0.15s ease;
}

.sidebar .chapter-fold-toggle:hover {
    color: #13c2c2;
    opacity: 1;
}

/* 隐藏原始字符：字号归零即可，元素本身保留（旋转载体） */
.sidebar .chapter-fold-toggle > div {
    font-size: 0;
    line-height: 0;
    width: 16px;
    height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* CSS 箭头本体（V 形）：直角在右下角，rotate(-45deg) 后指向右侧。
   颜色不显式写：border-color 的初始值即 currentColor，
   故边框自动跟随 .chapter-fold-toggle 的常态/hover 颜色。 */
.sidebar .chapter-fold-toggle > div::before {
    content: "";
    display: block;
    box-sizing: border-box;
    width: 10px;
    height: 10px;
    border-right: 2px solid;
    border-bottom: 2px solid;
    transform: rotate(-45deg);
    /* 直角在右下角，视觉重心偏右，左移少许使其在热区内居中 */
    margin-left: -2px;
}

/* ------------------------------------------------------------
   侧边栏当前章节高亮（选中态）
   ------------------------------------------------------------
   对照参考站 .book-summary ul.summary li.active，
   api.morecross.cn 线上实测计算值：
       li  { background: rgb(243,241,241) = #f3f1f1;
             border-right: 3px solid rgb(19,194,194) = #13c2c2 }
       > a { color: #13c2c2; text-decoration: none }
   即「整行浅灰底 + 右侧品牌青色条 + 文字变色」。
   本站原先只把文字染成青色，行本身没有选中反馈，这里补齐整行样式。

   ⚠️ mdBook 把 .active 加在 <a> 上（toc.js: link.classList.add('active')），
      不是 li 上（GitBook 是 li）。故用 :has() 上溯到行。
      浏览器不支持 :has() 时只是退化成原来的文字变色，不影响可用性。

   贴边：内置滚动区 `.sidebar .sidebar-scrollbox { padding: 10px 10px }`
   已改为 padding: 0（见上方区块），此时整行左右两侧天然顶到侧边栏边缘，
   色条直接贴右缘，无需再做位移补偿，故 margin-inline-end 归 0。 */
.sidebar .chapter li.chapter-item:has(> .chapter-link-wrapper > a.active) {
    background: #f3f1f1;
    border-right: 3px solid var(--sidebar-active);
    margin-inline-end: 0;
}

.sidebar .chapter a.active {
    color: var(--sidebar-active);
    text-decoration: none;
}

.sidebar .chapter .chapter-item a.active {
    font-weight: 600;
}

/* 顶层章节加粗，贴近原 GitBook 目录观感 */
.chapter > .chapter-item > .chapter-link-wrapper > a,
.chapter > .chapter-item > .chapter-link-wrapper > span {
    font-weight: 600;
}

/* ------------------------------------------------------------
   目录树行高：统一 40px
   ------------------------------------------------------------
   内置（chrome.css）是：
       .chapter                 { line-height: 2.2em }
       .chapter li.chapter-item { line-height: 1.5em; margin-block-start: 0.6em }
   目录树字号 14px，于是单行净高只有 21px、行距却靠 0.6em 的外边距
   凑出 ~29px —— 行矮且节距不匀，点击热区偏小。
   这里改成：每行 40px 定高、相邻行紧贴（行距即 40px）。
   用 min-height 而非 line-height，标题换行时行高才会自然长大，
   不会被拉成 40px 的行间距。

   ⚠️ 作用域（容易踩坑，实测结论）：
     · 静态产物里目录树是 <iframe class="sidebar-iframe-outer" src="toc.html">，
       而运行时 book.js 会 fetch toc.html 并把其中标记**内联**进
       mdbook-sidebar-scrollbox，随后移除该 iframe。
       所以页面跑起来后，目录树是「主文档内、位于 .sidebar 之下」的普通 DOM，
       `.sidebar ...` 前缀的规则照常生效（折叠箭头、分组标题配色等）。
     · 单独打开 toc.html 看到的那个文档（祖先只有 body.sidebar-iframe-inner）
       并不代表线上结构。照它就下结论会误判「.sidebar 规则失效」。
     · 因此：目录树相关样式沿用 .sidebar 前缀即可；本区块为了在
       两种结构下都命中也无害（ol.chapter 只存在于目录树中）。
   ------------------------------------------------------------ */
.chapter li.chapter-item {
    margin-block-start: 0;
    padding-left: 20px;
}

.chapter .chapter-link-wrapper {
    min-height: 40px;
    align-items: center;
}

/* ------------------------------------------------------------
   表格
   ------------------------------------------------------------
   内置（css/general.css）是：
       table            { margin: 0 auto }                 —— 宽度随内容，窄表居中留白
       table thead      { background: --table-header-bg }   —— 表头 80% 灰底
       table thead tr   { border: 1px --table-header-bg }   —— 表头边框用表头底色，
                                                              与单元格边框色不一致
   这里统一为：撑满正文宽度 / 表头不着色 / th 边框颜色与 td 一致。
   注意选择器要带 .content 前缀才能压过内置规则的特异度。
   ------------------------------------------------------------ */
.content table {
    width: 100%;
    margin: 0;
}

.content table thead {
    background: none;
}

.content table thead tr {
    border-color: var(--table-border-color);
}

.content table thead th,
.content table thead td {
    border: 1px var(--table-border-color) solid;
}

/* 表头不换行 */
.content table th {
    white-space: nowrap;
}

/* 单元格内边距 6px 13px（内置是 `table td` / `table thead th` 各 3px 20px，
   且 thead 之外的 th 完全没有 padding）。取值对齐参考站 GitBook：
   `.markdown-section table td, th { padding: 6px 13px }`（实测同值）。
   .content 前缀用于压过内置 `table thead th` 的元素选择器。 */
.content table th,
.content table td {
    padding: 6px 13px;
}

/* ------------------------------------------------------------
   代码块内的普通文字 → #333
   ------------------------------------------------------------
   内置 highlight-*.css 末尾的 `.hljs { color: #000 }` 把代码块正文写死为纯黑，
   与正文的 #333 割裂；参考站 GitBook 是 `code, pre { color: inherit }`（即正文色）。
   这里只覆盖 pre 内的基础色：语法高亮 token（.hljs-keyword 等）自带 color
   且直接写在 span 上，是「直接命中」而非继承，不受本规则影响。
   ------------------------------------------------------------ */
.content pre .hljs {
    color: #333;
}

/* 页面底部版权（由 morecross.js 注入，替代 gitbook-plugin-page-copyright） */
.mc-footer {
    margin-top: 48px;
    padding-top: 16px;
    border-top: 1px solid var(--table-border-color);
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    color: #333;
    font-size: 0.85em;
}

/* 细滚动条 */
::-webkit-scrollbar {
    width: 6px;
    height: 6px;
    background-color: transparent;
}

::-webkit-scrollbar-track {
    background-color: transparent;
}

::-webkit-scrollbar-thumb {
    border-radius: 10px;
    background-color: #999;
}

* {
    scrollbar-width: thin;
}

/* 响应式
   ------------------------------------------------------------
   参考站的三档（80px / 60px / 60px）在笔记本上偏挤，这里按同一比例
   缩放为 80 / 64 / 56px，Logo 与标题同步收窄。 */
@media (max-width: 1440px) {
    :root {
        --menu-bar-height: 64px;
    }

    #mdbook-menu-bar {
        padding-inline: 24px;
    }

    .mc-logo {
        max-height: 32px;
    }

    #mdbook-menu-bar .menu-title {
        font-size: 18px;
    }
}

@media (max-width: 1280px) {
    :root {
        --page-padding: 25px;
    }
}

/* 中等宽度：顶栏一行放不下「Logo+标题 / 3 个导航链接 / 300px 搜索框」，
   先把搜索框和链接间距收窄。 */
@media (max-width: 1200px) {
    .menu-bar .right-buttons .mc-search {
        width: 240px;
    }

    .menu-bar .right-buttons .mc-nav a {
        margin: 0 14px;
    }
}

/* ≤960px 再收起导航链接，只留 Logo+标题与搜索框，避免顶栏横向溢出
   （参考站是直接让内容溢出的，这里按实际可容纳宽度收窄）。 */
@media (max-width: 960px) {
    .menu-bar .right-buttons .mc-nav {
        display: none;
    }
}

/* 窄屏（内置断点：min-width 620px 起才把正文右移让出侧边栏）：
   内置在 <620px 时会对 .page-wrapper 施加 transform 把整页右移，
   而顶栏是位于该元素内部的 fixed 元素，会随位移一起偏移（fixed 的
   包含块被 transform 改变）。这里取消整页位移，改为侧边栏浮在正文
   之上 —— 配合上面的 .sidebar { z-index } 与这里的阴影。 */
@media only screen and (max-width: 619px) {
    #mdbook-sidebar-toggle-anchor:checked ~ .page-wrapper {
        transform: none;
    }

    .sidebar {
        box-shadow: 2px 0 10px rgba(0, 0, 0, 0.18);
    }
}

/* 手机／平板：收起导航链接，但【保留搜索框】——
   搜索是核心功能，mdBook 原生搜索又搜不了中文，所以窄屏也走自建浮层。
   顶栏于是变成「折叠按钮 + Logo +（标题）+ 搜索框」。 */
@media (max-width: 700px) {
    :root {
        --menu-bar-height: 56px;
        --page-padding: 15px;
    }

    #mdbook-menu-bar {
        padding-inline: 16px;
        /* mdBook 内置 flex-wrap: wrap —— 320px 视口下「折叠按钮+Logo」与搜索框
           加起来超宽，搜索框会被折到第二行（顶栏只有 56px 高，于是压在正文上）。
           窄屏强制单行，剩余宽度由搜索框收缩吸收。 */
        flex-wrap: nowrap;
    }

    .menu-bar .right-buttons {
        flex: 1 1 auto;
        min-width: 0;
        justify-content: flex-end;
    }

    .menu-bar .right-buttons .mc-nav {
        display: none;
    }

    /* 搜索框吃掉剩余宽度（窄屏铺满、宽一点时封顶 160px 并右对齐）。
       min-width 必须为 0：留 90px 下限时，在 320px 视口下 right-buttons
       会被压到 0 宽，而搜索框按 flex-end 对齐会向左溢出、盖住 Logo。 */
    .menu-bar .right-buttons .mc-search {
        flex: 1 1 auto;
        width: auto;
        min-width: 0;
        max-width: 160px;
        height: 32px;
    }

    .menu-bar .right-buttons .mc-search input {
        padding: 0 12px;
        font-size: 13px;
    }

    /* 窄屏去掉「搜索」按钮：输入即查，按钮只占宽度 */
    .menu-bar .right-buttons .mc-search button {
        display: none;
    }

    .mc-logo {
        max-height: 22px;
    }

    #mdbook-menu-bar .menu-title {
        font-size: 16px;
        margin-inline-start: 8px;
    }

    #mdbook-menu-bar .left-buttons {
        align-items: center;
    }

    #mdbook-sidebar-toggle {
        order: 1;
    }

    #mdbook-menu-bar .left-buttons .mc-logo {
        order: 2;
        margin-inline-start: 6px;
    }
}

/* 手机竖屏：站点标题让位给搜索框（Logo 已足够表达品牌） */
@media (max-width: 560px) {
    #mdbook-menu-bar .menu-title {
        display: none;
    }
}

/* ============================================================
   完全不提供深色模式（包含禁用脚本的场景）
   ------------------------------------------------------------
   mdBook 内置 css/variables.css 末尾有一段兜底：
       @media (prefers-color-scheme: dark) -> html:not(.js) -> 40 个深色变量
   浏览器禁用/拦截脚本时 html 不带 js 类，若系统为深色，页面会变成深色。
   这里把 light 的浅色变量以更高特异度（html.light.light = 0,2,1，高于
   html:not(.js) 的 0,1,1）重新声明，任何情况下都恒为浅色；--color-scheme
   一并锁为 light，浏览器原生控件（滚动条/表单）也随之走浅色。
   变量值取自 mdBook v0.5.4 的 css/variables.css，其中 --links 与
   --sidebar-active 已替换为本站品牌色 #13c2c2。
   （mdBook 升级后若新增主题变量，此块需同步补充。）
   ============================================================ */
html.light.light {
    --bg: hsl(0, 0%, 100%);
    /* 全站默认文字色：内置为纯黑 hsl(0, 0%, 0%)、侧边栏为 #364149，
       统一改为 #333（正文 / 标题 / 表格 / 引用 / 目录树文字同色）。 */
    --fg: #333;
    --sidebar-bg: #fafafa;
    --sidebar-fg: #333;
    /* 目录树 li 的兜底文字色。链接（--sidebar-fg）与分组标题 span
       （见上方 .sidebar .chapter-link-wrapper > span 规则）都有显式色，
       此处仅作兜底，保留 mdBook 原值。 */
    --sidebar-non-existant: #aaaaaa;
    --sidebar-active: #13c2c2;
    --sidebar-spacer: #f4f4f4;
    --scrollbar: #8F8F8F;
    --icons: #747474;
    --icons-hover: #000000;
    --links: #13c2c2;
    /* 行内代码文字：内置 light 主题是棕褐 #301900，与正文割裂。
       参考站 GitBook 是 `code, pre { color: inherit }`（即正文色），
       这里同样归为 #333；代码块内的语法高亮 token 色不受影响。 */
    --inline-code-color: #333;
    --theme-popup-bg: #fafafa;
    --theme-popup-border: #cccccc;
    --theme-hover: #e6e6e6;
    --quote-bg: hsl(197, 37%, 96%);
    --quote-border: hsl(197, 37%, 91%);
    --warning-border: #ff8e00;
    --table-border-color: hsl(0, 0%, 95%);
    --table-header-bg: hsl(0, 0%, 80%);
    --table-alternate-bg: hsl(0, 0%, 97%);
    --searchbar-border-color: #aaa;
    --searchbar-bg: #fafafa;
    --searchbar-fg: #000;
    --searchbar-shadow-color: #aaa;
    --searchresults-header-fg: #666;
    --searchresults-border-color: #888;
    --searchresults-li-bg: #e4f2fe;
    --search-mark-bg: #a2cff5;
    --color-scheme: light;
    --copy-button-filter: invert(45.49%);
    --copy-button-filter-hover: invert(14%) sepia(93%) saturate(4250%) hue-rotate(243deg) brightness(99%) contrast(130%);
    --footnote-highlight: #7e7eff;
    --overlay-bg: rgba(200, 200, 205, 0.4);
    --blockquote-note-color: #0969da;
    --blockquote-tip-color: #008000;
    --blockquote-important-color: #8250df;
    --blockquote-warning-color: #9a6700;
    --blockquote-caution-color: #b52731;
    --sidebar-header-border-color: #6e6edb;
}

mark {
    margin-inline-start: 0;
    margin-inline-end: 0;
}