/* ==========================================================================
   CocoBook Docs — I · 安静（全站）
   对标 design/wpcy-doc-shell-prototypes/i-anjing.html
   字：Windfonts 普惠体(壳) + 思源黑体 CJK(读)
   标：Motuicons Phosphor Light（cocobook-icons.js）
   无品牌绿 · #10491 独立
   ========================================================================== */

:root {
  --cb-ink: #4a4a4a;
  --cb-ink-title: #3a3a3a;
  --cb-ink-near: #0a0a0a;
  --cb-muted: #888888;
  --cb-muted-2: #aaaaaa;
  --cb-line: #e8e8e8;
  --cb-line-soft: #eeeeee;
  --cb-canvas: #f3f3f3;
  --cb-paper: #ffffff;
  --cb-well: #f0f0f0;
  --cb-fill: #f7f7f7;
  --cb-accent: #0a0a0a;
  --cb-on-accent: #ffffff;

  --cb-font-ui: "wenfeng-albbpht", "PingFang SC", "Hiragino Sans GB",
    "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif;
  --cb-font-body: "wenfeng-syhtcjk", "PingFang SC", "Hiragino Sans GB",
    "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif;
  --cb-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  --cb-fs: 15px;
  --cb-fs-ui: 13px;
  --cb-fs-meta: 12px;
  --cb-fs-label: 11px;
  --cb-lh: 1.9;
  --cb-lh-ui: 1.45;
  --cb-measure: 40rem;
  --cb-shell: 1120px;
  --cb-aside: 220px;
  --cb-radius: 12px;
  --cb-radius-sm: 8px;
  /* tabler88 圆角刻度：--cb-radius(12) / --cb-radius-sm(8) 沿用 */
  --cb-radius-2xs: 4px;
  --cb-radius-xs: 6px;
  --cb-radius-md: 10px;
  --cb-radius-lg: 14px;
  --cb-radius-xl: 16px;
  --cb-radius-pill: 999px;
  --cb-shadow: 0 0 10px rgba(10, 10, 10, 0.06);
  --cb-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --cb-dur: 160ms;
  --cb-icon: 16px;

  --color-primary: #0a0a0a !important;
  --color-primary-light: rgba(10, 10, 10, 0.06) !important;
  --color-link: #0a0a0a !important;
  --color-page: #0a0a0a !important;
  --color-chapter: #3a3a3a !important;
  --color-book: #3a3a3a !important;
  --color-bookshelf: #3a3a3a !important;
  --font-body: var(--cb-font-body);
  --font-heading: var(--cb-font-body);
}

/* —— 基座 —— */
html {
  font-size: 16px;
  background: var(--cb-canvas) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
html, body {
  font-family: var(--cb-font-ui) !important;
  font-size: var(--cb-fs-ui) !important;
  font-weight: 400 !important;
  line-height: var(--cb-lh-ui) !important;
  letter-spacing: 0.02em !important;
  color: var(--cb-ink) !important;
  background: var(--cb-canvas) !important;
}
body { min-height: 100vh; padding-bottom: 4.5rem; }
a { color: var(--cb-ink-near); text-decoration: none; transition: color var(--cb-dur) var(--cb-ease); }
a:hover { color: var(--cb-ink-near); opacity: 0.72; }
::selection { background: rgba(10, 10, 10, 0.08); color: var(--cb-ink-near); }

/* —— 图标 —— */
.svg-icon,
svg.svg-icon {
  width: var(--cb-icon) !important;
  height: var(--cb-icon) !important;
  min-width: var(--cb-icon);
  color: var(--cb-muted) !important;
  fill: currentColor !important;
  stroke: none !important;
  opacity: 0.9;
  flex: 0 0 auto;
  vertical-align: -0.15em;
  transition: color var(--cb-dur) var(--cb-ease), opacity var(--cb-dur) var(--cb-ease);
}
a:hover .svg-icon,
button:hover .svg-icon,
.text-link:hover .svg-icon { color: var(--cb-ink-near) !important; opacity: 1; }
.icon .svg-icon,
.entity-list-item .icon .svg-icon {
  width: 15px !important;
  height: 15px !important;
  color: var(--cb-muted-2) !important;
}

/* ==========================================================================
   页眉：一条线，不做大白卡
   ========================================================================== */
header#header,
header.primary-background,
.tri-layout-mobile-header {
  background: var(--cb-canvas) !important;
  border-bottom: 1px solid var(--cb-line) !important;
  box-shadow: none !important;
  min-height: 3.25rem;
  padding: 0.35rem 0 !important;
}
header .container,
header > .grid,
header .flex {
  max-width: var(--cb-shell);
  margin-left: auto;
  margin-right: auto;
}
header a,
header button,
header .icon,
header svg {
  color: var(--cb-muted) !important;
  fill: currentColor;
  font-family: var(--cb-font-ui) !important;
  font-size: var(--cb-fs-ui) !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em;
  background: transparent !important;
  box-shadow: none !important;
}
header a:hover,
header button:hover {
  color: var(--cb-ink-near) !important;
  background: transparent !important;
  opacity: 1;
}
header .header-links a {
  padding: 0.3rem 0.55rem !important;
  border-radius: 0 !important;
  gap: 0.35rem;
  display: inline-flex;
  align-items: center;
}
header .header-links a .svg-icon {
  width: 15px !important;
  height: 15px !important;
}

/* Logo：安静字标，去掉黑胶囊感 */
header .logo,
header a.logo,
header .logo.logo--quiet,
header .logo-text,
header .brand {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0.15rem 0 !important;
  color: var(--cb-ink-near) !important;
  font-family: var(--cb-font-ui) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  letter-spacing: 0.06em !important;
  display: inline-flex !important;
  align-items: center;
  gap: 0.4rem;
  text-decoration: none !important;
}
header img.logo-image,
header img.logo,
header .logo img {
  display: none !important; /* 字标优先；上传图多为黑胶囊 */
}
header .logo-text,
header .logo .logo-text,
header .logo span {
  color: var(--cb-ink-near) !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  letter-spacing: 0.06em !important;
}

/* 搜索：底线，不砌输入框 */
header .search-box,
header .header-search {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  min-width: 11rem;
}
header .search-box,
header form.search-box {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  outline: none !important;
}
header .search-box input,
header #header-search-box-input,
header input[type="search"],
header input[type="text"],
.global-search input {
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--cb-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: 1.85rem !important;
  padding: 0 0.15rem !important;
  font-family: var(--cb-font-ui) !important;
  font-size: var(--cb-fs-ui) !important;
  font-weight: 400 !important;
  color: var(--cb-ink-near) !important;
  letter-spacing: 0.02em;
  -webkit-appearance: none !important;
  appearance: none !important;
}
header .search-box input:focus,
.global-search input:focus {
  border-bottom-color: var(--cb-ink-near) !important;
  outline: none !important;
}
header .search-box input::placeholder,
.global-search input::placeholder { color: #aaa !important; }
header .search-box button,
header .search-box .svg-icon {
  color: var(--cb-muted) !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.global-search-suggestions.card,
.suggestion-box,
.search-suggestions {
  background: var(--cb-paper) !important;
  border: 1px solid var(--cb-line) !important;
  border-radius: var(--cb-radius-sm) !important;
  box-shadow: var(--cb-shadow) !important;
  padding: 0.35rem 0 !important;
}
.global-search-suggestions a,
.search-suggestions a {
  font-size: var(--cb-fs-ui) !important;
  color: var(--cb-ink) !important;
  padding: 0.45rem 0.9rem !important;
  border-radius: 0 !important;
}
.global-search-suggestions a:hover {
  background: var(--cb-fill) !important;
  color: var(--cb-ink-near) !important;
}

/* ==========================================================================
   页脚
   ========================================================================== */
.cb-footer {
  position: relative;
  margin-top: 2rem;
  padding: 1.75rem 1.5rem 2.25rem;
  border-top: 1px solid var(--cb-line);
  background: transparent;
  text-align: center;
}
.cb-footer__inner {
  max-width: var(--cb-shell);
  margin: 0 auto;
  font-family: var(--cb-font-ui);
  font-size: var(--cb-fs-meta);
  color: var(--cb-muted-2);
  letter-spacing: 0.06em;
}
.cb-footer a { color: var(--cb-muted); }
.cb-footer a:hover { color: var(--cb-ink-near); opacity: 1; }
.cb-footer__sep { margin: 0 0.55rem; opacity: 0.5; }

/* 原 BookStack 若有 footer */
footer#footer,
body > footer:not(.cb-footer) {
  background: transparent !important;
  border-top: 1px solid var(--cb-line) !important;
  color: var(--cb-muted-2) !important;
  font-size: var(--cb-fs-meta) !important;
  box-shadow: none !important;
}

/* ==========================================================================
   三栏舞台
   ========================================================================== */
#content,
.block,
.tri-layout,
.tri-layout-container,
.tri-layout-middle,
.tri-layout-middle-contents {
  background: transparent !important;
}
.tri-layout {
  max-width: calc(var(--cb-shell) + var(--cb-aside) + 4rem);
  margin-left: auto;
  margin-right: auto;
}
.tri-layout-left,
.tri-layout-right {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 1.5rem 0.75rem 3rem !important;
}
.tri-layout-left { padding-right: 0.25rem !important; }
.tri-layout-right { padding-left: 0.25rem !important; }
.tri-layout-middle {
  padding: 1.25rem 0.75rem 3rem !important;
}

/* 侧栏区块标题：字距拉开的标签 */
.tri-layout-left h5,
.tri-layout-right h5,
.sidebar .body h5,
.entity-list h5 {
  margin: 0 0 0.85rem !important;
  padding: 0 !important;
  font-family: var(--cb-font-ui) !important;
  font-size: var(--cb-fs-label) !important;
  font-weight: 400 !important;
  letter-spacing: 0.1em !important;
  text-transform: none !important;
  color: var(--cb-muted) !important;
  border: 0 !important;
  background: transparent !important;
}
.tri-layout-left .body + .body,
.tri-layout-right .body + .body,
.tri-layout-left > div + div,
.tri-layout-right > div + div {
  margin-top: 2rem !important;
  padding-top: 1.25rem !important;
  border-top: 1px solid var(--cb-line) !important;
}

/* 侧栏链接行 */
.tri-layout-left a,
.tri-layout-right a,
.sidebar a,
.book-tree a,
.sidebar-page-list a {
  font-family: var(--cb-font-ui) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  color: #777 !important;
  letter-spacing: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.tri-layout-left a:hover,
.tri-layout-right a:hover,
.sidebar a:hover {
  color: var(--cb-ink-near) !important;
  background: transparent !important;
  opacity: 1;
}

/* TOC / 书籍导航：左边线 */
.book-tree,
.sidebar-page-list,
.sidebar .menu,
.entity-list.compact {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 0 0 0 !important;
  border-left: 1px solid var(--cb-line) !important;
  background: transparent !important;
}
.book-tree a,
.sidebar-page-list a,
.entity-list.compact a {
  display: block !important;
  padding: 0.42rem 0 0.42rem 0.85rem !important;
  margin-left: -1px !important;
  border-left: 1px solid transparent !important;
  border-radius: 0 !important;
}
.book-tree a:hover,
.sidebar-page-list a:hover {
  border-left-color: #ccc !important;
  color: var(--cb-ink-near) !important;
}
.book-tree .selected > a,
.book-tree a.selected,
.sidebar-page-list .active > a,
.sidebar-page-list a.active,
.book-tree [aria-current="page"],
.contents-list a.active,
.entity-list.compact .selected a {
  border-left-color: var(--cb-accent) !important;
  color: var(--cb-ink-near) !important;
  font-weight: 400 !important;
  background: transparent !important;
}

/* 操作列表：安静字链 */
.icon-list,
.actions,
.text-link.icon-list {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.icon-list-item,
a.icon-list-item,
button.icon-list-item,
.text-link.icon-list-item {
  display: flex !important;
  align-items: center !important;
  gap: 0.55rem !important;
  padding: 0.4rem 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #777 !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
}
.icon-list-item:hover,
a.icon-list-item:hover,
button.icon-list-item:hover {
  color: var(--cb-ink-near) !important;
  background: transparent !important;
}
.icon-list-item .svg-icon {
  color: var(--cb-muted-2) !important;
  width: 15px !important;
  height: 15px !important;
}

/* 详细信息 */
.entity-meta,
.tri-layout-right .text-muted,
.entity-meta span,
.entity-meta a {
  font-size: var(--cb-fs-meta) !important;
  color: var(--cb-muted) !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em;
}
.entity-meta .svg-icon { width: 13px !important; height: 13px !important; }
.tag-item,
.tag-list a,
span.tag,
a.tag {
  display: inline-flex !important;
  align-items: center;
  gap: 0.25rem;
  padding: 0.15rem 0.45rem !important;
  margin: 0.15rem 0.2rem 0.15rem 0 !important;
  background: var(--cb-fill) !important;
  border: 0 !important;
  border-radius: var(--cb-radius-2xs) !important;
  box-shadow: none !important;
  color: var(--cb-muted) !important;
  font-size: var(--cb-fs-meta) !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em;
}
.tag-item:hover,
.tag-list a:hover { color: var(--cb-ink-near) !important; background: var(--cb-well) !important; }

/* 近期活动：时间轴感 */
.activity-list,
.activity-list-item,
.recent-activity {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.activity-list-item,
.activity-list > div,
.recent-activity a {
  padding: 0.45rem 0 0.45rem 0.85rem !important;
  margin-left: 0 !important;
  border-left: 1px solid var(--cb-line) !important;
  font-size: var(--cb-fs-meta) !important;
  color: #888 !important;
  line-height: 1.45 !important;
}
.activity-list-item:hover,
.recent-activity a:hover {
  border-left-color: var(--cb-accent) !important;
  color: var(--cb-ink-near) !important;
}
.activity-list .text-muted,
.activity-list time {
  color: var(--cb-muted-2) !important;
  font-size: 11px !important;
}

/* ==========================================================================
   面包屑
   ========================================================================== */
.breadcrumbs,
.breadcrumb,
nav[aria-label*="breadcrumb"],
.page-content + .breadcrumbs {
  color: var(--cb-muted) !important;
  font-family: var(--cb-font-ui) !important;
  font-size: var(--cb-fs-ui) !important;
  letter-spacing: 0.02em;
  margin: 0 0 1.1rem !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.breadcrumbs a,
.breadcrumb a { color: inherit !important; text-decoration: none !important; }
.breadcrumbs a:hover { color: var(--cb-ink-near) !important; opacity: 1; }
.breadcrumbs .outline-hover,
a.outline-hover,
.breadcrumbs .svg-icon {
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}
.breadcrumbs .separator,
.breadcrumbs .sep,
.breadcrumb li + li::before {
  color: #bbb !important;
  margin: 0 0.35rem;
  opacity: 0.55;
}

/* ==========================================================================
   纸面 / 卡片（主舞台）
   ========================================================================== */
.card,
.grid-card,
.content-wrap.card,
main.content-wrap.card,
main.content-wrap.card:has(.page-content) {
  background: var(--cb-paper) !important;
  border: 0 !important;
  border-radius: var(--cb-radius) !important;
  box-shadow: var(--cb-shadow) !important;
}

main.content-wrap.card:has(.page-content),
.tri-layout-middle > .content-wrap.card,
.tri-layout-middle-contents > .card {
  margin: 0.5rem 0.35rem 2rem !important;
}
.card .card,
.grid-card .card { box-shadow: none !important; }

/* 列表页纸面内边距 */
.tri-layout-middle .content-wrap.card > .grid,
.tri-layout-middle .card > .grid,
.book-content {
  padding: clamp(1.25rem, 2.5vw, 1.85rem) clamp(1.15rem, 2.5vw, 1.85rem) !important;
}

/* 区块标题（书籍 / 书架 / 欢迎） */
.tri-layout-middle h1,
.content-wrap > h1,
.card > h1,
.book-content h1,
.page-title {
  margin: 0 0 1rem !important;
  font-family: var(--cb-font-body) !important;
  font-size: 22px !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  letter-spacing: 0 !important;
  color: var(--cb-ink-near) !important;
}

/* 排序：底线控件 */
.list-sort,
.list-sort-toggle,
.list-sort select,
.list-sort button,
.sort-box {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--cb-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--cb-muted) !important;
  font-family: var(--cb-font-ui) !important;
  font-size: var(--cb-fs-ui) !important;
  font-weight: 400 !important;
  padding: 0.15rem 0.1rem !important;
  height: auto !important;
  min-height: 0 !important;
}
.list-sort:hover,
.list-sort button:hover,
.sort-box:hover {
  color: var(--cb-ink-near) !important;
  border-bottom-color: var(--cb-ink-near) !important;
}
.dropdown-menu,
.dropdown-container .dropdown-menu {
  background: var(--cb-paper) !important;
  border: 1px solid var(--cb-line) !important;
  border-radius: var(--cb-radius-sm) !important;
  box-shadow: var(--cb-shadow) !important;
  padding: 0.35rem 0 !important;
}
.dropdown-menu a,
.dropdown-menu button {
  font-size: var(--cb-fs-ui) !important;
  color: var(--cb-ink) !important;
  padding: 0.4rem 0.9rem !important;
  background: transparent !important;
}
.dropdown-menu a:hover,
.dropdown-menu button:hover {
  background: var(--cb-fill) !important;
  color: var(--cb-ink-near) !important;
}

/* ==========================================================================
   列表页：不砌砖
   ========================================================================== */

/* 网格卡（书籍/书架封面） */
.grid.third .grid-card,
.grid.half .grid-card,
a.grid-card {
  background: var(--cb-paper) !important;
  border: 1px solid var(--cb-line-soft) !important;
  border-radius: var(--cb-radius-sm) !important;
  box-shadow: none !important;
  overflow: hidden;
  transition: border-color var(--cb-dur) var(--cb-ease), box-shadow var(--cb-dur) var(--cb-ease);
  padding: 0 !important;
}
a.grid-card:hover,
.grid-card:hover {
  border-color: #ddd !important;
  box-shadow: var(--cb-shadow) !important;
  opacity: 1;
  transform: none;
}
.grid-card .bg-book,
.grid-card .bg-bookshelf,
.featured-image-container-wrap,
.featured-image-container {
  background: var(--cb-fill) !important;
  color: var(--cb-ink-title) !important;
  border: 0 !important;
  border-radius: 0 !important;
  min-height: 7.5rem;
}
.grid-card h4,
.grid-card .entity-list-item-name,
a.grid-card h4 {
  font-family: var(--cb-font-body) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  color: var(--cb-ink-near) !important;
  letter-spacing: 0 !important;
  line-height: 1.4 !important;
  margin: 0.7rem 0.85rem 0.25rem !important;
}
.grid-card p,
.grid-card .text-muted {
  font-size: var(--cb-fs-meta) !important;
  color: var(--cb-muted) !important;
  line-height: 1.5 !important;
  margin: 0 0.85rem 0.85rem !important;
  font-weight: 400 !important;
}
.grid-card .entity-item-snippet,
.grid-card .text-small {
  font-size: 11px !important;
  color: var(--cb-muted-2) !important;
  margin: 0 0.85rem 0.85rem !important;
}
.grid-card .svg-icon { width: 12px !important; height: 12px !important; color: #bbb !important; }

/* 行式列表（首页近期 / entity-list） */
.entity-list,
.entity-list-item,
a.entity-list-item {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
.entity-list > div,
.entity-list > a,
a.entity-list-item,
.entity-list-item {
  display: flex !important;
  align-items: flex-start !important;
  gap: 0.75rem !important;
  padding: 0.85rem 0 !important;
  margin: 0 !important;
  border-bottom: 1px solid var(--cb-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transition: color var(--cb-dur) var(--cb-ease);
}
.entity-list > div:last-child,
.entity-list > a:last-child,
a.entity-list-item:last-child {
  border-bottom: 0 !important;
}
a.entity-list-item:hover,
.entity-list-item:hover {
  background: transparent !important;
  box-shadow: none !important;
  opacity: 1;
}
.entity-list-item-name,
.entity-list h4,
a.entity-list-item h4 {
  font-family: var(--cb-font-body) !important;
  font-size: 14.5px !important;
  font-weight: 400 !important;
  color: var(--cb-ink-near) !important;
  letter-spacing: 0 !important;
  line-height: 1.45 !important;
  margin: 0 0 0.2rem !important;
}
.entity-list .text-muted,
.entity-list-item p,
a.entity-list-item p {
  font-size: var(--cb-fs-meta) !important;
  color: var(--cb-muted) !important;
  line-height: 1.55 !important;
  margin: 0 !important;
  font-weight: 400 !important;
}
.entity-list .icon,
.entity-list-item .icon {
  margin-top: 0.15rem;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  width: auto !important;
  height: auto !important;
}

/* 侧栏紧凑列表：只留字，去掉摘要灰条感 */
.tri-layout-left .entity-list.compact .entity-item-snippet,
.tri-layout-left .entity-list.compact .text-muted,
.tri-layout-right .entity-list.compact .entity-item-snippet {
  display: none !important;
}
.tri-layout-left .entity-list.compact a.entity-list-item,
.tri-layout-left .entity-list.compact .entity-list-item {
  padding: 0.4rem 0 0.4rem 0.85rem !important;
  border-bottom: 0 !important;
  border-left: 1px solid transparent !important;
  margin-left: -1px !important;
  gap: 0.45rem !important;
}
.tri-layout-left .entity-list.compact {
  border-left: 1px solid var(--cb-line) !important;
  padding-left: 0 !important;
}
.tri-layout-left .entity-list.compact a.entity-list-item:hover,
.tri-layout-left .entity-list.compact .entity-list-item:hover {
  border-left-color: #ccc !important;
}
.tri-layout-left .entity-list.compact .entity-list-item-name,
.tri-layout-left .entity-list.compact h4 {
  font-size: 13px !important;
  margin: 0 !important;
  color: #777 !important;
}
.tri-layout-left .entity-list.compact a:hover .entity-list-item-name,
.tri-layout-left .entity-list.compact a:hover h4 {
  color: var(--cb-ink-near) !important;
}

/* 书内目录列表 */
.book-content .entity-list-item,
.chapter-content .entity-list-item {
  padding: 0.65rem 0 !important;
}
.book-content .chapter,
.book-content .page {
  border-left: 0 !important;
}

/* 空状态 */
.empty-state,
.text-muted.italic,
p.text-muted:only-child {
  color: var(--cb-muted-2) !important;
  font-size: var(--cb-fs-ui) !important;
  font-style: normal !important;
  font-weight: 400 !important;
}

/* ==========================================================================
   正文：一张安静的纸
   ========================================================================== */
.page-content,
.page-content .page-content,
.page-display,
#main-content .page-content {
  max-width: var(--cb-measure) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  color: var(--cb-ink) !important;
  font-family: var(--cb-font-body) !important;
  font-size: var(--cb-fs) !important;
  line-height: var(--cb-lh) !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em !important;
  word-break: break-word;
  overflow-wrap: anywhere;
}
main.content-wrap.card .page-content {
  padding: clamp(1.75rem, 3.5vw, 2.5rem) clamp(1.5rem, 3.5vw, 2.75rem)
    clamp(2rem, 4vw, 3rem) !important;
}

/* 标题区 */
.page-content > h1:first-child,
.page-content .page-title,
h1.page-title {
  margin: 0 0 0.75rem !important;
  padding-bottom: 0 !important;
  border: 0 !important;
  font-family: var(--cb-font-body) !important;
  font-size: 22px !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  letter-spacing: 0 !important;
  color: var(--cb-ink-near) !important;
  max-width: 28em;
}
.page-content .page-content h1 { font-size: 22px !important; font-weight: 400 !important; }
.page-content h2 {
  margin: 2.25rem 0 0.75rem !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  letter-spacing: 0 !important;
  color: var(--cb-ink-title) !important;
  border: 0 !important;
  padding: 0 !important;
}
.page-content h3 {
  margin: 1.75rem 0 0.55rem !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  color: var(--cb-ink-near) !important;
}
.page-content h4,
.page-content h5,
.page-content h6 {
  margin: 1.4rem 0 0.45rem !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  color: var(--cb-ink-title) !important;
}
.page-content p {
  margin: 0 0 1em !important;
  font-size: var(--cb-fs) !important;
  line-height: var(--cb-lh) !important;
  color: var(--cb-ink) !important;
  font-weight: 400 !important;
}
.page-content p:last-child { margin-bottom: 0 !important; }

/* 强调：只加深，不加粗 */
.page-content strong,
.page-content b,
.page-content em {
  font-weight: 400 !important;
  color: var(--cb-ink-near) !important;
  font-style: normal !important;
}
.page-content a {
  color: var(--cb-ink-near) !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  text-decoration-color: #ccc;
}
.page-content a:hover {
  text-decoration-color: var(--cb-ink-near);
  opacity: 1;
}

/* 「1、…」口 */

.page-content p strong:first-child {
  letter-spacing: 0.01em;
}

.page-content ul,
.page-content ol {
  margin: 0 0 1.1em !important;
  padding-left: 1.35em !important;
}
.page-content li {
  margin: 0.25em 0 !important;
  line-height: var(--cb-lh) !important;
  color: var(--cb-ink) !important;
}
.page-content li::marker { color: #bbb; }

.page-content blockquote,
.page-content .callout,
.page-content .content-wrap.callout {
  margin: 1.25rem 0 !important;
  padding: 0.85rem 1rem !important;
  background: var(--cb-fill) !important;
  border: 0 !important;
  border-left: 0 !important;
  border-radius: var(--cb-radius-sm) !important;
  box-shadow: none !important;
  color: var(--cb-ink-title) !important;
  font-size: 14.5px !important;
  line-height: 1.75 !important;
}
.page-content code,
.page-content kbd {
  font-family: var(--cb-mono) !important;
  font-size: 0.88em !important;
  background: var(--cb-well) !important;
  color: var(--cb-ink-near) !important;
  border-radius: var(--cb-radius-2xs) !important;
  padding: 0.1em 0.35em !important;
  border: 0 !important;
  font-weight: 400 !important;
}
.page-content pre,
.page-content pre code {
  background: #1a1a1a !important;
  color: #e8e8e8 !important;
  border-radius: var(--cb-radius-sm) !important;
  border: 0 !important;
  box-shadow: none !important;
  font-size: 13px !important;
  line-height: 1.65 !important;
  padding: 1rem 1.1rem !important;
}
.page-content pre code { background: transparent !important; padding: 0 !important; }
.page-content img,
.page-content figure {
  border-radius: var(--cb-radius-sm);
  border: 1px solid var(--cb-line-soft);
  max-width: 100%;
  height: auto;
}
.page-content table {
  border-collapse: collapse;
  width: 100%;
  font-size: 14px !important;
  margin: 1.25rem 0 !important;
}
.page-content th,
.page-content td {
  border-bottom: 1px solid var(--cb-line) !important;
  padding: 0.55rem 0.65rem !important;
  text-align: left;
  font-weight: 400 !important;
}
.page-content th {
  color: var(--cb-muted) !important;
  font-size: var(--cb-fs-meta) !important;
  letter-spacing: 0.04em;
  background: transparent !important;
}
.page-content hr {
  border: 0 !important;
  border-top: 1px solid var(--cb-line) !important;
  margin: 2rem 0 !important;
}

/* 上下页 */

/* 评论区安静 */
.comment-container,
.comments-list,
#comments {
  background: transparent !important;
  border-top: 1px solid var(--cb-line) !important;
  box-shadow: none !important;
  padding-top: 1.5rem !important;
}
.comment-box,
.comment {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-bottom: 1px solid var(--cb-line) !important;
  border-radius: 0 !important;
}

/* 按钮：字链优先；实心仅必要 */
.button,
button.button,
a.button,
input[type="submit"] {
  font-family: var(--cb-font-ui) !important;
  font-size: var(--cb-fs-ui) !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em !important;
  border-radius: var(--cb-radius-xs) !important;
  box-shadow: none !important;
  border: 1px solid var(--cb-line) !important;
  background: var(--cb-paper) !important;
  color: var(--cb-ink-near) !important;
  padding: 0.4rem 0.85rem !important;
  min-height: 0 !important;
  height: auto !important;
}
.button:hover,
button.button:hover,
a.button:hover {
  border-color: #ccc !important;
  background: var(--cb-fill) !important;
  color: var(--cb-ink-near) !important;
}
.button.primary,
input[type="submit"].button {
  background: var(--cb-ink-near) !important;
  border-color: var(--cb-ink-near) !important;
  color: var(--cb-on-accent) !important;
}
.button.primary:hover {
  opacity: 0.88;
}

/* 表单 */
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
textarea,
select {
  font-family: var(--cb-font-ui) !important;
  font-size: var(--cb-fs-ui) !important;
  font-weight: 400 !important;
  color: var(--cb-ink-near) !important;
  background: var(--cb-paper) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--cb-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
input:focus,
textarea:focus,
select:focus {
  outline: none !important;
  border-bottom-color: var(--cb-ink-near) !important;
}

/* 通知条 */
.notification,
.alert {
  border-radius: var(--cb-radius-sm) !important;
  box-shadow: none !important;
  border: 0 !important;
  font-weight: 400 !important;
}

/* 回到顶部 */
#back-to-top,
.back-to-top {
  background: var(--cb-paper) !important;
  border: 1px solid var(--cb-line) !important;
  box-shadow: var(--cb-shadow) !important;
  border-radius: 50% !important;
  color: var(--cb-muted) !important;
}

/* 移动端 tab */
.tri-layout-mobile-tab {
  font-size: var(--cb-fs-ui) !important;
  color: var(--cb-muted) !important;
  border-radius: 0 !important;
  border-bottom: 1px solid transparent !important;
  background: transparent !important;
  font-weight: 400 !important;
}
.tri-layout-mobile-tab.active,
.tri-layout-mobile-tab[aria-selected="true"] {
  color: var(--cb-ink-near) !important;
  border-bottom-color: var(--cb-accent) !important;
  font-weight: 400 !important;
}

/* ==========================================================================
   深色：仍安静
   ========================================================================== */
html.cb-dark,
html.cb-dark body {
  --cb-ink: #b0b0b0;
  --cb-ink-title: #c8c8c8;
  --cb-ink-near: #f0f0f0;
  --cb-muted: #888;
  --cb-muted-2: #666;
  --cb-line: #2a2a2a;
  --cb-line-soft: #262626;
  --cb-canvas: #141414;
  --cb-paper: #1c1c1c;
  --cb-well: #242424;
  --cb-fill: #222;
  --cb-accent: #f0f0f0;
  --cb-on-accent: #111;
  --cb-shadow: 0 0 10px rgba(0, 0, 0, 0.35);
  --color-primary: #f0f0f0 !important;
  --color-primary-light: rgba(240, 240, 240, 0.08) !important;
  --color-link: #f0f0f0 !important;
  background: var(--cb-canvas) !important;
}
html.cb-dark .page-content pre,
html.cb-dark .page-content pre code {
  background: #0e0e0e !important;
}
html.cb-dark .cb-footer { border-top-color: var(--cb-line); }

/* == Tabler 细线图标 == */
/* 覆盖上方 .svg-icon { fill: currentColor !important; stroke: none !important } */
svg.svg-icon[data-cb-set="tabler"],
header svg.svg-icon[data-cb-set="tabler"] { fill: none !important; stroke: currentColor !important; overflow: visible; }
svg.svg-icon[data-cb-set="tabler"] [fill="none"] { fill: none !important; }
svg.svg-icon[data-cb-set="tabler"] [stroke="currentColor"] { stroke: currentColor !important; }

/* == Tabler 尺寸与对齐 == */
/* 统一正方形尺寸：三档 16 / 15 / 13；清掉 BookStack 的 relative+bottom 偏移 */
svg.svg-icon[data-cb-set="tabler"] {
  --cb-i: var(--cb-icon, 16px);
  width: var(--cb-i) !important;
  height: var(--cb-i) !important;
  min-width: var(--cb-i) !important;
  min-height: var(--cb-i) !important;
  max-width: none !important;
  aspect-ratio: 1 / 1;
  flex: 0 0 var(--cb-i) !important;
  position: static !important;
  top: auto !important;
  bottom: auto !important;
  margin: 0 !important;
  vertical-align: -0.18em !important;
}
header .header-links a svg.svg-icon[data-cb-set="tabler"],
.icon svg.svg-icon[data-cb-set="tabler"],
.entity-list-item .icon svg.svg-icon[data-cb-set="tabler"],
.contents-list svg.svg-icon[data-cb-set="tabler"],
.icon-list-item svg.svg-icon[data-cb-set="tabler"],
.breadcrumbs svg.svg-icon[data-cb-set="tabler"] { --cb-i: 15px; }
.entity-meta svg.svg-icon[data-cb-set="tabler"],
.grid-card p svg.svg-icon[data-cb-set="tabler"],
small svg.svg-icon[data-cb-set="tabler"],
.text-muted svg.svg-icon[data-cb-set="tabler"] { --cb-i: 13px; vertical-align: -0.16em !important; }

/* 图标 + 文字：弹性居中 */
header .header-links a,
.back-to-top .inner,
.entity-meta-item,
.breadcrumbs a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4em;
}
header .header-links a svg.svg-icon[data-cb-set="tabler"],
.back-to-top .inner svg.svg-icon[data-cb-set="tabler"],
.icon-list-item svg.svg-icon[data-cb-set="tabler"],
.entity-meta-item svg.svg-icon[data-cb-set="tabler"] { vertical-align: 0 !important; }

/* 封面占位：放大并居中 */
.featured-image-container-wrap { position: relative; }
.featured-image-container-wrap svg.svg-icon[data-cb-set="tabler"] {
  --cb-i: 28px;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%);
  color: var(--cb-muted-2) !important;
  opacity: 0.7;
}

/* == 版式整理 tabler3 == */
/* 1. 图标不要底色：清掉包裹层的底色/圆角/阴影 */
.icon-list-item > span:first-child,
.breadcrumbs .icon-list-item > span,
.actions .icon-list-item > span:first-child,
.entity-meta-item > span:first-child {
  background: none !important;
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  width: auto !important;
  height: auto !important;
}
.icon-list-item > span::before,
.icon-list-item > span::after,
.breadcrumbs .icon-list-item::before,
.icon-list-item:hover > span:first-child,
.outline-hover:hover > span:first-child {
  background: none !important;
  box-shadow: none !important;
}

/* 2. 正文铺满卡片，不再锁 40rem 居中 */
#main-content .page-content,
#main-content .page-content .page-content,
.tri-layout-middle .page-content,
main.content-wrap.card .page-content,
.page-content {
  max-width: none !important;
  width: auto !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* 3. 三栏时侧栏加宽，正文区相应收窄 */
@media (min-width: 1400px) {
  .tri-layout-container,
  .tri-layout-sides-content {
    grid-template-columns: minmax(220px, 240px) minmax(0, 1fr) minmax(220px, 240px) !important;
    column-gap: 12px !important;
  }
}

/* 4. 双栏（880–1399）时：书籍导航在上，详细信息/操作在下 */
@media (min-width: 880px) and (max-width: 1399px) {
  .tri-layout-sides-content {
    display: flex !important;
    flex-direction: column;
  }
  .tri-layout-sides-content > .tri-layout-left { order: 1; }
  .tri-layout-sides-content > .tri-layout-right { order: 2; }
}

/* 5. 页面导航：去掉自带圆点和竖线，用一条细线+层级缩进 */
.sidebar-page-nav::before,
.sidebar-page-nav-bullet { display: none !important; }
.sidebar-page-nav {
  margin: 0 !important;
  padding: 0 !important;
  border-left: 1px solid var(--cb-line, #e6e6e6);
}
.sidebar-page-nav .page-nav-item {
  margin: 0 !important;
  padding-left: 12px !important;
  position: relative;
}
.sidebar-page-nav .page-nav-item.h2,
.sidebar-page-nav .page-nav-item.h3 { padding-left: 24px !important; }
.sidebar-page-nav .page-nav-item.h4,
.sidebar-page-nav .page-nav-item.h5,
.sidebar-page-nav .page-nav-item.h6 { padding-left: 36px !important; }
.sidebar-page-nav .page-nav-item a {
  display: block;
  padding: 3px 0 !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
}

/* 6. 书籍导航：紧凑，隐藏摘要，最多两行 */
.book-tree .entity-list-item {
  padding: 5px 0 !important;
  gap: 8px;
  align-items: flex-start !important;
  min-height: 0 !important;
}
.book-tree .entity-list-item .entity-item-snippet,
.book-tree .entity-list-item p { display: none !important; }
.book-tree .entity-list-item-name,
.book-tree .entity-list-item h4 {
  margin: 0 !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.book-tree .entity-list-item .icon { margin-top: 2px !important; }
.book-tree .sidebar-page-list { border-left: 0 !important; }
.book-tree ul ul {
  margin-left: 7px !important;
  padding-left: 12px !important;
  border-left: 1px solid var(--cb-line, #e6e6e6);
}

/* 7. 详细信息：每行图标顶部对齐，多行不乱 */
.entity-meta .entity-meta-item {
  display: flex !important;
  align-items: flex-start !important;
  gap: 6px;
  margin: 4px 0 !important;
  line-height: 1.5 !important;
}
.entity-meta .entity-meta-item svg.svg-icon[data-cb-set="tabler"] { margin-top: 0.22em !important; }

/* 8. 操作：与标题左对齐，分隔线等宽 */
.actions .icon-list { margin-left: 0 !important; margin-right: 0 !important; }
.actions .icon-list-item,
.actions .dropdown-container > .icon-list-item,
.actions .dropdown-container > button {
  padding: 6px 0 !important;
  width: 100%;
  gap: 8px;
}
.actions hr {
  margin: 8px 0 !important;
  width: 100% !important;
}

/* 9. tabler6：侧栏内宽与条目高度 */
@media (min-width: 1400px) {
  .tri-layout-left-contents,
  .tri-layout-right-contents {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
.book-tree .entity-list-item { padding: 4px 0 !important; }
.book-tree .entity-list-item > .content {
  padding: 0 !important;
  min-width: 0;
  flex: 1 1 auto;
}
.tri-layout-left .entity-list.compact .entity-list-item,
.tri-layout-right .entity-list.compact .entity-list-item {
  display: flex !important;
  align-items: flex-start !important;
  gap: 8px !important;
  padding: 4px 0 !important;
}
.tri-layout-left .entity-list.compact .entity-list-item > .icon,
.tri-layout-right .entity-list.compact .entity-list-item > .icon {
  flex: 0 0 auto;
  margin: 2px 0 0 !important;
}
.tri-layout-left .entity-list.compact .entity-list-item > .content,
.tri-layout-right .entity-list.compact .entity-list-item > .content {
  min-width: 0;
  flex: 1 1 auto;
  padding: 0 !important;
}
.tri-layout-left .entity-list.compact .entity-list-item-name,
.tri-layout-right .entity-list.compact .entity-list-item-name {
  margin: 0 !important;
  line-height: 1.45 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* 10. tabler7：卡片封面、侧栏书架、上一页下一页、标签 */

/* 10.1 书籍/书架网格卡片：没有封面图时去掉灰色占位，只留一个小图标 */
.grid-card { box-shadow: none !important; border-color: #eee !important; }
.grid-card .featured-image-container-wrap:has(> .featured-image-container:not([style*="background-image"])) {
  height: auto !important;
  min-height: 0 !important;
  background: transparent !important;
  display: flex !important;
  align-items: center;
  padding: 16px 16px 0 !important;
}
.grid-card .featured-image-container-wrap:has(> .featured-image-container:not([style*="background-image"])) > .featured-image-container { display: none !important; }
.grid-card .featured-image-container-wrap:has(> .featured-image-container:not([style*="background-image"])) > .svg-icon {
  position: static !important;
  transform: none !important;
  width: 22px !important;
  height: 22px !important;
  margin: 0 !important;
  fill: currentColor !important;
  opacity: .8;
}
.grid-card .featured-image-container-wrap.bg-book { color: var(--color-book) !important; }
.grid-card .featured-image-container-wrap.bg-bookshelf { color: var(--color-bookshelf) !important; }
.grid-card .grid-card-content { padding-top: 10px !important; }

/* 10.2 侧栏/紧凑列表里的书架、书籍缩略图：收成和其他条目一样的小图标 */
.tri-layout-left .entity-list-item-image,
.tri-layout-right .entity-list-item-image,
.entity-list.compact .entity-list-item-image {
  flex: 0 0 18px !important;
  width: 18px !important;
  max-width: 18px !important;
  height: 18px !important;
  min-height: 0 !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  font-size: 0 !important;
  color: var(--color-bookshelf);
}
.tri-layout-left .entity-list-item-image.bg-book,
.tri-layout-right .entity-list-item-image.bg-book,
.entity-list.compact .entity-list-item-image.bg-book { color: var(--color-book); }
.tri-layout-left .entity-list-item-image .svg-icon,
.tri-layout-right .entity-list-item-image .svg-icon,
.entity-list.compact .entity-list-item-image .svg-icon {
  position: static !important;
  width: 16px !important;
  height: 16px !important;
  margin: 0 !important;
  fill: currentColor !important;
  opacity: 1 !important;
}

/* 10.3 上一页 / 下一页 */
#sibling-navigation {
  column-gap: 16px !important;
  padding: 0 !important;
  margin: 16px 0 24px !important;
}
#sibling-navigation a {
  display: block !important;
  border: 1px solid #eee !important;
  border-radius: var(--cb-radius-sm) !important;
  padding: 10px 14px !important;
  background: #fff !important;
  box-shadow: none !important;
  outline: none !important;
  transition: border-color .15s ease;
}
#sibling-navigation a:hover,
#sibling-navigation a:focus-visible { border-color: var(--color-primary) !important; }
#sibling-navigation a > .text-muted { padding: 0 !important; margin: 0 0 4px !important; font-size: 12px; }
#sibling-navigation a > .inline-block { display: block !important; }
#sibling-navigation .icon-list-item {
  display: flex !important;
  align-items: flex-start;
  gap: 8px;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
}
#sibling-navigation .icon-list-item > span:first-child { flex: 0 0 auto; margin-top: 2px; background: transparent !important; }
#sibling-navigation .icon-list-item > span:last-child {
  min-width: 0;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
#sibling-navigation > div:last-child a { text-align: right; }
#sibling-navigation > div:last-child .icon-list-item { justify-content: flex-end; }

/* 10.4 标签：去掉灰底和半透明白底，改成细描边 */
.tag-item,
.tag-item.primary-background-light {
  display: inline-flex !important;
  align-items: stretch;
  background: transparent !important;
  border: 1px solid #e5e7eb !important;
  border-radius: var(--cb-radius-2xs) !important;
  overflow: hidden;
  margin: 0 6px 6px 0 !important;
  font-size: 12px !important;
  line-height: 20px !important;
}
.tag-item .tag-name,
.tag-item .tag-value {
  display: flex !important;
  align-items: center;
  background: transparent !important;
  padding: 0 8px !important;
}
.tag-item .tag-value { border-left: 1px solid #e5e7eb !important; color: #6b7280 !important; }
.tag-item a { color: inherit !important; }
.tag-item .svg-icon { width: 12px !important; height: 12px !important; margin-right: 4px !important; opacity: .6; fill: currentColor; }

/* 11. tabler8：顶栏搜索、书籍目录、近期活动、书架卡片 */

/* 11.1 顶栏：大屏隐藏移动端搜索链接；放大镜不压占位文字 */
@media (min-width: 1000px) {
  header .header-links a.hide-over-l { display: none !important; }
}
header form.search-box {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  width: 16rem;
  max-width: 100%;
  min-width: 0 !important;
  margin: 0 auto !important;
}
header form.search-box > #header-search-box-button {
  position: absolute !important;
  left: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 16px !important;
  height: 16px !important;
  padding: 0 !important;
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  z-index: 1;
}
header form.search-box > #header-search-box-button .svg-icon {
  width: 14px !important;
  height: 14px !important;
  margin: 0 !important;
  position: static !important;
}
header form.search-box > #header-search-box-input {
  width: 100% !important;
  padding: 0 0.25rem 0 1.4rem !important;
  text-indent: 0 !important;
}

/* 11.2 书籍目录：只留标题，干净分隔 */
.book-contents .entity-list-item {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 11px 14px !important;
  margin: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #f0f0f0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.book-contents > .entity-list-item:last-child { border-bottom: 0 !important; }
.book-contents .entity-list-item:hover { background: #fafafa !important; }
.book-contents .entity-list-item > .icon {
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: transparent !important;
  color: #9ca3af !important;
}
.book-contents .entity-list-item:hover > .icon { color: var(--color-page) !important; }
.book-contents .entity-list-item .content { flex: 1 1 auto; min-width: 0; }
.book-contents .entity-list-item-name {
  font-size: 15px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  margin: 0 !important;
  color: #1f2328 !important;
}
.book-contents .chapter.entity-list-item .entity-list-item-name { font-weight: 600 !important; }
.book-contents .entity-list-item:hover .entity-list-item-name { color: var(--color-primary) !important; }
.book-contents .entity-item-snippet { display: none !important; }
.book-contents .chapter-contents .entity-list-item {
  padding: 7px 14px 7px 28px !important;
  border-bottom: 0 !important;
}

/* 11.3 近期活动：圆形头像 + 规整时间行 */
.activity-list-item {
  display: grid !important;
  grid-template-columns: 24px minmax(0, 1fr) !important;
  column-gap: 10px !important;
  align-items: start !important;
  padding: 8px 0 !important;
  font-size: 12.5px !important;
  line-height: 1.55 !important;
  color: #6b7280 !important;
}
.activity-list-item > div:first-child { width: 24px !important; }
.activity-list-item img.avatar {
  display: block;
  width: 24px !important;
  height: 24px !important;
  border-radius: 50% !important;
  object-fit: cover;
  margin: 0 !important;
  background: #f3f4f6;
}
.activity-list-item a { color: #374151 !important; }
.activity-list-item a:hover { color: var(--color-primary) !important; }
.activity-list-item small {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  margin-top: 2px;
  font-size: 11.5px !important;
  color: #9ca3af !important;
}
.activity-list-item small svg.svg-icon {
  width: 12px !important;
  height: 12px !important;
  margin: 0 !important;
  position: static !important;
  vertical-align: 0 !important;
}

/* 11.4 书架/书籍卡片：顶部色条、悬停上浮、底部元信息一行 */
.grid-card {
  position: relative;
  display: flex !important;
  flex-direction: column !important;
  background: #fff !important;
  border: 1px solid #ececec !important;
  border-radius: var(--cb-radius) !important;
  overflow: hidden;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.grid-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--color-book);
  opacity: .85;
  z-index: 1;
}
.grid-card[data-entity-type="bookshelf"]::before { background: var(--color-bookshelf); }
.grid-card:hover {
  border-color: color-mix(in srgb, var(--color-book) 45%, #ececec) !important;
  box-shadow: 0 6px 20px rgba(17, 24, 39, .06) !important;
  transform: translateY(-2px);
}
.grid-card .featured-image-container-wrap:has(> .featured-image-container:not([style*="background-image"])) {
  padding: 18px 18px 0 !important;
}
.grid-card .grid-card-content { flex: 1 1 auto; padding: 12px 18px 4px !important; }
.grid-card .grid-card-content h2 {
  font-size: 17px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  margin: 0 0 6px !important;
  color: #111827 !important;
}
.grid-card .grid-card-content p.text-muted {
  margin: 0 !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  color: #6b7280 !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.grid-card .grid-card-footer {
  display: flex !important;
  flex-wrap: wrap;
  gap: 4px 14px;
  margin: 12px 18px 0 !important;
  padding: 10px 0 14px !important;
  border-top: 1px solid #f2f2f2 !important;
  font-size: 12px !important;
  color: #9ca3af !important;
}
.grid-card .grid-card-footer p {
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center;
  gap: 4px;
}
.grid-card .grid-card-footer svg.svg-icon {
  width: 12px !important;
  height: 12px !important;
  margin: 0 !important;
  position: static !important;
}

/* 12. tabler9：书籍页修正 + 两侧栏细化 + 恢复页面导航点线 */

/* 12.1 书籍目录图标：只描边、无底色、固定尺寸 */
.book-contents .entity-list-item > .icon,
.book-contents .entity-list-item > .icon::before,
.book-contents .entity-list-item > .icon::after {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 0 !important;
}
.book-contents .entity-list-item > .icon svg.svg-icon {
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  margin: 0 !important;
  bottom: 0 !important;
  fill: none !important;
  stroke: currentColor !important;
  background: transparent !important;
  opacity: 1 !important;
}
.book-contents .entity-list-item > .icon svg.svg-icon * {
  fill: none !important;
  stroke: currentColor !important;
}

/* 12.2 目录左缘与标题、说明对齐（条目内边距 14px 抵消） */
.book-content .book-contents,
.book-contents.entity-list {
  margin-left: -14px !important;
  margin-right: -14px !important;
}

/* 12.3 正文卡片左右留白一致 */
.tri-layout-middle > .content-wrap.card,
.tri-layout-middle-contents > .card,
main.content-wrap.card:has(.book-contents) {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
@media (min-width: 880px) and (max-width: 1399px) {
  .tri-layout-middle {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}

/* 12.4 两侧栏：统一字色层级、区块间距 */
.tri-layout-left,
.tri-layout-right {
  --cb-side-label: #6b7280;
  --cb-side-text: #374151;
  --cb-side-meta: #6b7280;
  --cb-side-faint: #9ca3af;
}
.tri-layout-left h5,
.tri-layout-right h5 {
  color: var(--cb-side-label) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  margin: 0 0 10px !important;
  padding: 0 !important;
}
.tri-layout-left-contents > *,
.tri-layout-right-contents > * {
  margin-bottom: 28px !important;
}
.tri-layout-left-contents > *:last-child,
.tri-layout-right-contents > *:last-child { margin-bottom: 0 !important; }
.tri-layout-left .text-muted,
.tri-layout-right .text-muted { color: var(--cb-side-meta) !important; }

/* 12.5 详细信息 */
.tri-layout-right .entity-meta,
.tri-layout-left .entity-meta {
  color: var(--cb-side-meta) !important;
  font-size: 12px !important;
}
.entity-meta .entity-meta-item {
  color: var(--cb-side-meta) !important;
  margin: 0 0 6px !important;
}
.entity-meta .entity-meta-item:last-child { margin-bottom: 0 !important; }
.entity-meta .entity-meta-item a,
.entity-meta .entity-meta-item strong { color: var(--cb-side-text) !important; font-weight: 500 !important; }
.entity-meta .entity-meta-item svg.svg-icon {
  width: 13px !important;
  height: 13px !important;
  min-width: 13px !important;
  color: var(--cb-side-faint) !important;
}

/* 12.6 操作 */
.actions .icon-list-item,
.actions .dropdown-container > .icon-list-item,
.actions .dropdown-container > button {
  color: var(--cb-side-text) !important;
  font-size: 13px !important;
  padding: 5px 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}
.actions .icon-list-item svg.svg-icon {
  width: 15px !important;
  height: 15px !important;
  min-width: 15px !important;
  color: var(--cb-side-faint) !important;
}
.actions .icon-list-item:hover,
.actions .dropdown-container > button:hover { color: var(--color-primary) !important; }
.actions .icon-list-item:hover svg.svg-icon { color: var(--color-primary) !important; }
.actions hr { background: var(--cb-line) !important; height: 1px !important; border: 0 !important; margin: 8px 0 !important; }

/* 12.7 书籍导航：当前项高亮，其余更安静 */
.book-tree .entity-list-item { color: var(--cb-side-text) !important; }
.book-tree .entity-list-item .icon { color: var(--cb-side-faint) !important; }
.book-tree .entity-list-item:hover .entity-list-item-name { color: var(--color-primary) !important; }
.book-tree .entity-list-item.selected,
.book-tree .entity-list-item[aria-current="page"] {
  background: transparent !important;
}
.book-tree .entity-list-item.selected .entity-list-item-name,
.book-tree .entity-list-item[aria-current="page"] .entity-list-item-name {
  color: var(--color-primary) !important;
  font-weight: 600 !important;
}
.book-tree .entity-list-item.selected .icon,
.book-tree .entity-list-item[aria-current="page"] .icon { color: var(--color-primary) !important; }

/* 12.8 近期活动：名字、动作、时间三档字色 */
.tri-layout-left .activity-list-item,
.tri-layout-right .activity-list-item { color: var(--cb-side-meta) !important; font-size: 12px !important; }
.activity-list-item a { color: var(--cb-side-text) !important; font-weight: 500 !important; }
.activity-list-item a:hover { color: var(--color-primary) !important; }
.activity-list-item .text-muted,
.activity-list-item time { color: var(--cb-side-faint) !important; }

/* 12.9 页面导航：恢复点线（1px 细线 + 6px 圆点，当前标题主题色） */
.sidebar-page-nav {
  position: relative !important;
  margin: 4px 0 0 3px !important;
  padding: 0 !important;
  border-left: 0 !important;
}
.sidebar-page-nav::before { display: none !important; }
.sidebar-page-nav::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  top: 10px !important;
  bottom: 10px !important;
  width: 1px !important;
  background-color: #d4d7dc !important;
  z-index: 0 !important;
}
.sidebar-page-nav .page-nav-item {
  position: relative !important;
  margin: 0 !important;
  padding-left: 16px !important;
}
.sidebar-page-nav .page-nav-item.h2,
.sidebar-page-nav .page-nav-item.h3 { padding-left: 26px !important; }
.sidebar-page-nav .page-nav-item.h4,
.sidebar-page-nav .page-nav-item.h5,
.sidebar-page-nav .page-nav-item.h6 { padding-left: 36px !important; }
.sidebar-page-nav .page-nav-item a {
  display: block;
  padding: 4px 0 !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
  color: var(--cb-side-text, #374151) !important;
}
.sidebar-page-nav .page-nav-item a:hover { color: var(--color-primary) !important; }
.sidebar-page-nav .sidebar-page-nav-bullet {
  display: block !important;
  position: absolute !important;
  left: -2.5px !important;
  top: calc(4px + 0.75em - 3px) !important;
  width: 6px !important;
  height: 6px !important;
  border-radius: 50% !important;
  box-shadow: 0 0 0 3px var(--cb-canvas, #f3f3f3) !important;
  z-index: 1 !important;
}
.sidebar-page-nav li:not(.current-heading) .sidebar-page-nav-bullet { background-color: #c4c8ce !important; }
.sidebar-page-nav li.current-heading .sidebar-page-nav-bullet { background-color: var(--color-primary) !important; }
.sidebar-page-nav li.current-heading > a { color: var(--color-primary) !important; font-weight: 600 !important; }
.sidebar-page-nav .page-nav-item.h2 .sidebar-page-nav-bullet,
.sidebar-page-nav .page-nav-item.h3 .sidebar-page-nav-bullet,
.sidebar-page-nav .page-nav-item.h4 .sidebar-page-nav-bullet,
.sidebar-page-nav .page-nav-item.h5 .sidebar-page-nav-bullet,
.sidebar-page-nav .page-nav-item.h6 .sidebar-page-nav-bullet {
  width: 4px !important;
  height: 4px !important;
  left: -1.5px !important;
  top: calc(4px + 0.75em - 2px) !important;
}

/* 13. tabler10：书籍目录图标显示 + 标题/说明/目录左缘对齐 */

/* 13.1 BookStack 默认隐藏目录 svg、改用竖条；这里恢复描边图标 */
.book-contents .entity-list-item > .icon {
  place-self: center !important;
  border-radius: 0 !important;
}
.book-contents .entity-list-item > .icon svg.svg-icon,
.book-contents .entity-list-item .icon svg {
  display: block !important;
}

/* 13.2 书籍页：去掉 .book-content 左右内边距，让说明、目录与标题同一左缘 */
main.content-wrap.card > h1 + .book-content,
main.content-wrap.card > .book-content {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* 14. tabler11：正文 14px 及内部元素同比调整 + 全局字重 400 */

/* 14.1 正文基准 */
:root {
  --cb-fs: 14px;
  --cb-lh: 1.85;
}
.page-content,
#main-content .page-content {
  font-size: 14px !important;
  line-height: 1.85 !important;
}
.page-content p,
.page-content li,
.page-content ul,
.page-content ol {
  font-size: 14px !important;
  line-height: 1.85 !important;
}
.page-content p { margin: 0 0 14px !important; }
.page-content p:last-child { margin-bottom: 0 !important; }
.page-content ul,
.page-content ol { margin: 0 0 14px !important; }
.page-content li { margin: 3px 0 !important; }

/* 14.2 链接、强调与正文同一行高 */
.page-content a,
.page-content strong,
.page-content b,
.page-content em {
  font-size: inherit !important;
  line-height: inherit !important;
}

/* 14.3 标题层级（只靠字号和间距区分） */
main.content-wrap.card .page-content > h1:first-child,
.page-content .page-content h1,
main.content-wrap.card h1.break-text {
  font-size: 20px !important;
  line-height: 1.45 !important;
}
.page-content h1 { font-size: 20px !important; line-height: 1.45 !important; }
.page-content h2 {
  font-size: 17px !important;
  line-height: 1.5 !important;
  margin: 28px 0 10px !important;
}
.page-content h3 {
  font-size: 15.5px !important;
  line-height: 1.55 !important;
  margin: 22px 0 8px !important;
}
.page-content h4,
.page-content h5,
.page-content h6 {
  font-size: 14px !important;
  line-height: 1.6 !important;
  margin: 18px 0 6px !important;
}
.page-content > h1:first-child,
.page-content > h2:first-child,
.page-content > h3:first-child { margin-top: 0 !important; }

/* 14.4 引用、提示框、代码、表格 */
.page-content blockquote,
.page-content .callout,
.page-content .content-wrap.callout {
  font-size: 13.5px !important;
  line-height: 1.8 !important;
}
.page-content blockquote p,
.page-content .callout p {
  font-size: 13.5px !important;
  line-height: 1.8 !important;
}
.page-content code,
.page-content kbd { font-size: 0.9em !important; }
.page-content pre,
.page-content pre code {
  font-size: 12.5px !important;
  line-height: 1.65 !important;
}
.page-content table { font-size: 13px !important; }
.page-content th,
.page-content td { line-height: 1.6 !important; }
.page-content th { font-size: 12px !important; }
.page-content figcaption { font-size: 12px !important; line-height: 1.6 !important; }

/* 14.5 全局字重 400（含侧栏标题、人名、目录条目、书架标题、排序、当前项） */
body,
body *,
body *::before,
body *::after {
  font-weight: 400 !important;
}
body { font-synthesis: none; }

/* 15. tabler12：全局字重 400（提高优先级，压过带类名/ID 的 !important 规则） */
html body *:not(#cb-w400-a):not(#cb-w400-b),
html body *:not(#cb-w400-a):not(#cb-w400-b)::before,
html body *:not(#cb-w400-a):not(#cb-w400-b)::after {
  font-weight: 400 !important;
}

/* 16. tabler13：书架图标、近期活动、书籍页节奏 + 悬停信息、书籍导航重设计 */

/* 16.1 左栏书架等紧凑列表：图标无底色 */
.tri-layout-left .entity-list-item > .icon,
.tri-layout-right .entity-list-item > .icon,
.entity-list.compact .entity-list-item > .icon {
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  width: 15px !important;
  height: 15px !important;
  overflow: visible !important;
}
.tri-layout-left .entity-list-item > .icon::before,
.tri-layout-left .entity-list-item > .icon::after,
.tri-layout-right .entity-list-item > .icon::before,
.tri-layout-right .entity-list-item > .icon::after,
.entity-list.compact .entity-list-item > .icon::before,
.entity-list.compact .entity-list-item > .icon::after { content: none !important; display: none !important; }
.tri-layout-left .entity-list.compact .entity-list-item {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 6px 0 !important;
}
.tri-layout-left .entity-list.compact .entity-list-item .entity-item-snippet { display: none !important; }
.cb-item-meta { display: none; }

/* 16.2 近期活动：标题在上、元信息在下，安静分隔 */
.activity-list { display: block !important; }
.activity-list .activity-list-item {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  padding: 10px 0 !important;
  margin: 0 !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05) !important;
  font-size: 13px !important;
}
.activity-list .activity-list-item:first-child { padding-top: 2px !important; }
.activity-list .activity-list-item:last-child { border-bottom: 0 !important; }
.activity-list .cb-act-body { flex: 1 1 auto; min-width: 0; }
.activity-list .cb-act-title {
  font-size: 13px !important;
  line-height: 1.55 !important;
  color: #374151 !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.activity-list .cb-act-title a { color: #374151 !important; transition: color .15s ease; }
.activity-list .activity-list-item:hover .cb-act-title a { color: var(--color-primary) !important; }
.activity-list .cb-act-meta {
  margin-top: 3px;
  font-size: 11.5px !important;
  line-height: 1.5 !important;
  color: #9ca3af !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.activity-list .cb-act-meta a.cb-act-user { color: #6b7280 !important; }
.activity-list .cb-act-meta a.cb-act-user:hover { color: var(--color-primary) !important; }
.activity-list .cb-act-sep { margin: 0 5px; color: #d1d5db; }

/* 16.3 书籍页中间卡片：标题 / 说明 / 目录 的节奏 */
main.content-wrap.card > h1.break-text,
main.content-wrap.card > h1:first-child {
  margin: 8px 0 10px !important;
  line-height: 1.4 !important;
}
main.content-wrap.card > .book-content > .text-muted {
  font-size: 13px !important;
  line-height: 1.7 !important;
  color: #6b7280 !important;
  margin: 0 0 28px !important;
}
.book-contents .entity-list-item {
  padding: 14px 14px !important;
  border-radius: var(--cb-radius-sm) !important;
  border-bottom: 0 !important;
  position: relative;
  transition: background-color .18s ease;
}
.book-contents > .entity-list-item + .entity-list-item::before,
.book-contents > .chapter + .entity-list-item::before {
  content: "";
  position: absolute;
  left: 14px;
  right: 14px;
  top: 0;
  height: 1px;
  background: #f1f1f1;
  transition: opacity .18s ease;
}
.book-contents .entity-list-item:hover { background: #f7f7f8 !important; }
.book-contents .entity-list-item:hover::before,
.book-contents .entity-list-item:hover + .entity-list-item::before { opacity: 0; }
.book-contents .entity-list-item-name {
  font-size: 14.5px !important;
  line-height: 1.55 !important;
  color: #1f2328 !important;
  transition: color .18s ease;
}

/* 16.4 悬停右侧：更新时间 + 箭头 */
.book-contents .entity-list-item > .cb-item-meta {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  margin-left: auto;
  padding-left: 16px;
  font-size: 12px !important;
  line-height: 1 !important;
  color: #9ca3af !important;
  white-space: nowrap;
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity .2s ease, transform .2s ease;
  pointer-events: none;
}
.book-contents .entity-list-item > .cb-item-meta .cb-item-arrow {
  color: var(--color-primary);
  font-size: 13px;
}
.book-contents .entity-list-item:hover > .cb-item-meta,
.book-contents .entity-list-item:focus-visible > .cb-item-meta {
  opacity: 1;
  transform: translateX(0);
}
@media (hover: none) {
  .book-contents .entity-list-item > .cb-item-meta { display: none !important; }
}

/* 16.5 书籍导航重设计：书名作标题，页面无图标，当前页白底浮起 */
.book-tree .sidebar-page-list { margin-top: 2px !important; }
.book-tree .sidebar-page-list > li { margin: 0 0 2px !important; padding: 0 !important; border: 0 !important; }
.book-tree .entity-list-item {
  display: flex !important;
  align-items: flex-start !important;
  gap: 8px !important;
  padding: 7px 10px !important;
  margin: 0 -10px !important;
  border-radius: 7px !important;
  background: transparent !important;
  transition: background-color .15s ease, color .15s ease;
}
.book-tree .entity-list-item .content { padding: 0 !important; }
.book-tree .entity-list-item-name {
  font-size: 13px !important;
  line-height: 1.55 !important;
  color: #4b5563 !important;
}
.book-tree .list-item-page > .entity-list-item > .icon,
.book-tree .chapter-child-menu .entity-list-item > .icon { display: none !important; }
.book-tree .list-item-book > .entity-list-item {
  padding-bottom: 10px !important;
  margin-bottom: 6px !important;
  border-radius: 0 !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06) !important;
}
.book-tree .list-item-book .entity-list-item-name { color: #111827 !important; font-size: 13.5px !important; }
.book-tree .list-item-book .icon { color: #9ca3af !important; margin-top: 2px !important; }
.book-tree .entity-list-item:hover { background: rgba(0, 0, 0, 0.035) !important; }
.book-tree .entity-list-item:hover .entity-list-item-name { color: #111827 !important; }
.book-tree .list-item-book > .entity-list-item:hover { background: transparent !important; }
.book-tree .entity-list-item.selected {
  background: #ffffff !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.04) !important;
}
.book-tree .entity-list-item.selected .entity-list-item-name { color: var(--color-primary) !important; }
.book-tree .chapter-child-menu,
.book-tree .sidebar-page-list .sidebar-page-list {
  margin: 2px 0 6px 6px !important;
  padding-left: 10px !important;
  border-left: 1px solid rgba(0, 0, 0, 0.07) !important;
}

/* 17. tabler14：评论区 —— 无品牌引用时连空容器一起隐藏；有引用时与正文拉开呼吸 */
.comments-container:not(:has(.cb-discuss)) { display: none !important; }
.comments-container:has(.cb-discuss) { margin-top: 32px !important; }

/* ===== tabler15 · 侧栏精修（标签 / 书籍导航 / 书架 / 近期活动）===== */

/* 1. 导入内部标签不对读者展示；只剩内部标签时整块隐藏 */
.tag-item[data-name="source"],
.tag-item[data-name="wp-slug"],
.tag-item[data-name="wp-id"] { display: none !important; }
section:has(> .tag-item):not(:has(> .tag-item:not([data-name="source"]):not([data-name="wp-slug"]):not([data-name="wp-id"]))) { display: none !important; }

/* 2. 其余标签：去方框，改为安静的浅色胶囊，长值单行省略 */
.tag-item,
.tag-item.primary-background-light {
  display: inline-flex !important; align-items: center !important; max-width: 100% !important;
  margin: 0 6px 6px 0 !important; border: 0 !important; border-radius: var(--cb-radius-pill) !important;
  background: #f3f4f6 !important; font-size: 12px !important; line-height: 1 !important; overflow: hidden !important;
}
.tag-item .tag-name,
.tag-item .tag-value {
  padding: 5px 10px !important; border: 0 !important; background: transparent !important;
  white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; max-width: 180px !important;
}
.tag-item .tag-name { color: #4b5563 !important; }
.tag-item .tag-value { padding-left: 0 !important; color: #9ca3af !important; }
.tag-item .tag-value::before { content: "\00B7"; margin-right: 6px; color: #d1d5db; }
.tag-item:hover { background: #eceef1 !important; }

/* 3. 两侧栏去掉所有多余竖线（页面导航的点线走 ::after，不受影响） */
.tri-layout-left nav.book-tree,
.tri-layout-left .book-tree,
.tri-layout-left section,
.tri-layout-right section,
.tri-layout-left .entity-list,
.tri-layout-right .entity-list,
.tri-layout-left .sidebar-page-list,
.tri-layout-left .activity-list,
.tri-layout-right .activity-list { border-left: 0 !important; }

/* 4. 书籍导航：书名与条目同一起点，选中卡片不再被裁切 */
.tri-layout-left .book-tree { padding: 0 2px !important; }
.book-tree .sidebar-page-list { margin-left: 0 !important; padding-left: 0 !important; }
.book-tree .entity-list-item,
.book-tree .entity-list-item.book,
.book-tree .entity-list-item.selected {
  margin-left: 0 !important; margin-right: 0 !important;
  padding: 8px 10px !important; border-radius: var(--cb-radius-sm) !important;
}
.book-tree .entity-list-item.book { margin-bottom: 4px !important; }
.book-tree .entity-list-item.selected {
  background: #ffffff !important;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.04) !important;
}

/* 5. 书架：图标恢复书架色，无底色 */
.tri-layout-left .entity-list-item.bookshelf .icon,
.tri-layout-right .entity-list-item.bookshelf .icon {
  color: var(--color-bookshelf) !important; background: none !important; opacity: 1 !important;
}
.tri-layout-left .entity-list-item.bookshelf .icon svg,
.tri-layout-right .entity-list-item.bookshelf .icon svg { opacity: 1 !important; }

/* 6. 近期活动：清掉漏出的黑色竖条 / 焦点框，只在键盘焦点时给柔和提示 */
.activity-list .activity-list-item,
.activity-list .activity-list-item * { border-left: 0 !important; outline: 0 !important; box-shadow: none !important; }
.activity-list .activity-list-item::before,
.activity-list .activity-list-item::after { content: none !important; }
.activity-list a:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--color-primary) 35%, transparent) !important;
  outline-offset: 2px; border-radius: var(--cb-radius-2xs);
}

/* ===== tabler16 · 中间内容卡片间距统一（8px 栅格）===== */

/* 1. 三栏顶边对齐：卡片顶边 = 左右栏内容顶边（93.75px） */
.tri-layout-middle > nav.breadcrumbs { margin-bottom: 0 !important; }
.tri-layout-middle > main.content-wrap.card { margin-top: 0 !important; }

/* 2. 书籍首页卡片：四周统一 40px，去掉 min-height 撑出的空白 */
main.content-wrap.card:has(> .book-content) {
  padding: 40px !important;
  min-height: 0 !important;
}
main.content-wrap.card:has(> .book-content) > h1 {
  margin: 0 0 8px !important;
  line-height: 28px !important;
}
main.content-wrap.card:has(> .book-content) > .book-content {
  padding: 0 !important;
  margin: 0 !important;
}

/* 3. 简介：去掉零碎边距，统一到列表 24px */
main.content-wrap.card > .book-content > .text-muted { margin: 0 0 24px !important; }
main.content-wrap.card > .book-content > .text-muted p { margin: 0 !important; }
main.content-wrap.card > .book-content > .text-muted:empty { display: none !important; }

/* 4. 目录列表：左右保持 -14px 抵消条目内边距；底部同样抵消，最后一行文字离卡片底边 = 40px */
main.content-wrap.card > .book-content > .book-contents {
  margin: 0 -14px -14px !important;
}

/* ===== tabler17 · 三栏顶边对齐 + 简介到列表 24px ===== */

/* 1. 面包屑外层 div.print-hidden（mb-s 12px / mb-m 16px）、面包屑 14.3px、卡片 6.5px 三个外边距会合并取最大值，全部清零，
      卡片顶边贴住面包屑盒子底边（93.5px），与左右栏内容顶边（93.75px）对齐 */
.tri-layout-middle-contents > .print-hidden:has(> nav.breadcrumbs) { margin-bottom: 0 !important; }
.tri-layout-middle-contents > .print-hidden > nav.breadcrumbs { margin-bottom: 0 !important; }
.tri-layout-middle-contents > main.content-wrap.card { margin-top: 0 !important; }

/* 2. 书籍首页：简介下边距 10px + 条目上内边距 14px = 简介到第一行文字 24px */
main.content-wrap.card > .book-content > .text-muted { margin-bottom: 10px !important; }

/* ===== tabler18 · 文章页卡片：宽度与书籍首页一致 + 底部留白与顶部对称 ===== */

/* 1. 文章页卡片左右各 4.55px 外边距清零：宽度 827.41px -> 836.5px，切换页面时卡片边缘不再跳动 */
.tri-layout-middle-contents > main.content-wrap.card { margin-left: 0 !important; margin-right: 0 !important; }

/* 2. 文章页：标题离顶边 48.5px、离左边 48px，底部只有 14px；底部内边距补到 48px，与顶部对称 */
main.content-wrap.card:has(> .page-content),
main.content-wrap.card:has(.page-content) { padding-bottom: 48px !important; }

/* ===== tabler19 · 面包屑与卡片留出呼吸间距 ===== */

/* 面包屑文字底边离卡片只有 9.1px；仅视觉上移 7px（relative，不占位、不改流式布局），
   卡片顶边仍为 93.5px、与左右栏 93.75px 对齐，文字到卡片约 16px */
.tri-layout-middle-contents > .print-hidden:has(> nav.breadcrumbs) { position: relative !important; top: -7px !important; }

/* ===== tabler20 · 页眉工具栏 / 搜索 / 面包屑 / 返回顶部 / 下载 / 全宽 / 专注 / 字号 / 深色 ===== */

/* 1. 页眉：Logo 去掉 -12px 负边距，与页眉 24px 起点对齐；搜索框加宽加高 */
header#header { min-height: 52px; align-items: center !important; }
header#header .logo { margin: 0 !important; }
header#header form.search-box { width: 360px !important; max-width: 100%; height: 32px !important; margin: 0 !important; }
header#header form.search-box > #header-search-box-input {
  width: 100% !important; height: 32px !important; padding: 0 56px 0 34px !important;
  border: 1px solid transparent !important; border-radius: var(--cb-radius-sm) !important;
  background: rgba(0, 0, 0, .045) !important; font-size: 13px !important;
  transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
header#header form.search-box > #header-search-box-input:focus {
  background: #fff !important; border-color: rgba(0, 0, 0, .14) !important;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, .04) !important; outline: none !important;
}
header#header #header-search-box-button { left: 11px !important; top: 8px !important; opacity: .55; }
.cb-kbd {
  position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
  padding: 3px 6px; border: 1px solid rgba(0, 0, 0, .12); border-radius: 5px; background: transparent;
  font: 11px/1 ui-monospace, SFMono-Regular, Menlo, monospace; color: #9ca3af; pointer-events: none;
  transition: opacity .15s ease;
}
header#header form.search-box:focus-within .cb-kbd { opacity: 0; }
header#header form.search-box [refs="global-search@suggestions"] {
  width: 520px !important; max-width: calc(100vw - 32px) !important;
  border: 0 !important; border-radius: var(--cb-radius) !important; overflow: hidden;
  box-shadow: 0 16px 40px rgba(0, 0, 0, .14), 0 0 0 1px rgba(0, 0, 0, .05) !important;
}

/* 2. 页眉工具栏：32x32 图标按钮，间距 4px；下载按钮带文字 */
.cb-tools { display: flex; align-items: center; gap: 4px; margin-right: 12px; }
.cb-tool {
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 2px;
  min-width: 32px; height: 32px; padding: 0 7px; border: 0; border-radius: var(--cb-radius-sm);
  background: transparent; color: inherit; opacity: .7; cursor: pointer;
  transition: background-color .15s ease, opacity .15s ease;
}
.cb-tool:hover, .cb-tool:focus-visible { background: rgba(0, 0, 0, .06); opacity: 1; outline: none; }
.cb-tool[aria-pressed="true"] { background: rgba(0, 0, 0, .08); opacity: 1; }
.cb-tool svg { flex: 0 0 18px; }
.cb-tool .cb-badge { font-size: 11px; line-height: 1; }
.cb-tool-sep { width: 1px; height: 18px; margin: 0 6px; background: rgba(0, 0, 0, .1); }
.cb-dl { position: relative; }
.cb-dl-btn { padding: 0 12px 0 9px; gap: 6px; font-size: 13px; opacity: .85; }
.cb-dl-menu {
  display: none; position: absolute; right: 0; top: calc(100% + 8px); z-index: 60;
  min-width: 248px; padding: 6px; border-radius: var(--cb-radius); background: #fff; text-align: left;
  box-shadow: 0 16px 40px rgba(0, 0, 0, .14), 0 0 0 1px rgba(0, 0, 0, .05);
}
.cb-dl.is-open .cb-dl-menu { display: block; }
.cb-dl-title { padding: 6px 10px 4px; font-size: 12px; color: #9ca3af; }
.cb-dl-menu a { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; border-radius: var(--cb-radius-sm); color: inherit !important; text-decoration: none !important; }
.cb-dl-menu a:hover, .cb-dl-menu a:focus-visible { background: rgba(0, 0, 0, .05); outline: none; }
.cb-dl-menu b { font-size: 13px; font-weight: 500; }
.cb-dl-menu small { font-size: 12px; color: #9ca3af; }
.cb-toast {
  position: fixed; left: 50%; bottom: 32px; z-index: 100; transform: translate(-50%, 8px);
  padding: 8px 14px; border-radius: var(--cb-radius-sm); background: #111827; color: #fff; font-size: 13px;
  opacity: 0; pointer-events: none; transition: opacity .2s ease, transform .2s ease;
}
.cb-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
@media (max-width: 1000px) { .cb-tools .cb-hide-sm { display: none; } }

/* 3. 面包屑：箭头 20x20、两侧各 2px；文字项 3px 6px 悬停底色；首项 -6px 抵消，文字仍与卡片左缘对齐；保持 35px 高度，不影响三栏顶边 */
.print-hidden > nav.breadcrumbs { justify-content: flex-start !important; align-items: center !important; flex-wrap: wrap; gap: 0 !important; min-height: 35px; }
nav.breadcrumbs > a.icon-list-item { margin: 0 !important; padding: 3px 6px !important; border-radius: var(--cb-radius-xs); line-height: 18px; transition: background-color .15s ease; }
nav.breadcrumbs > a.icon-list-item:first-child { margin-left: -6px !important; }
nav.breadcrumbs > a.icon-list-item:hover { background: rgba(0, 0, 0, .045); outline: none !important; }
nav.breadcrumbs > .dropdown-search { display: inline-flex !important; align-items: center; width: auto !important; height: auto !important; margin: 0 2px !important; }
nav.breadcrumbs .dropdown-search-toggle-breadcrumb {
  display: inline-flex !important; align-items: center; justify-content: center;
  width: 20px !important; height: 20px !important; padding: 0 !important; margin: 0 !important;
  border-radius: 5px; opacity: .4; cursor: pointer; transition: opacity .15s ease, background-color .15s ease;
}
nav.breadcrumbs .dropdown-search-toggle-breadcrumb:hover,
nav.breadcrumbs .dropdown-search-toggle-breadcrumb:focus-visible { opacity: .9; background: rgba(0, 0, 0, .06); }
nav.breadcrumbs .dropdown-search-toggle-breadcrumb svg { width: 14px !important; height: 14px !important; margin: 0 !important; }
nav.breadcrumbs .dropdown-search-dropdown {
  margin-top: 6px; border: 0 !important; border-radius: var(--cb-radius) !important; overflow: hidden;
  box-shadow: 0 16px 40px rgba(0, 0, 0, .14), 0 0 0 1px rgba(0, 0, 0, .05) !important;
}
nav.breadcrumbs .dropdown-search-dropdown .dropdown-search-list { max-height: 340px; overflow-y: auto; }

/* 4. 返回顶部：盒子 46x46 与进度环路径（A 23 23 … 46）一致，圆心对齐；距底 24px，right 由脚本对齐右栏外沿 */
.back-to-top-container { width: 46px !important; height: 46px !important; bottom: 24px !important; }

/* 5. 全宽阅读 */
@media (min-width: 1400px) {
  html.cb-wide .tri-layout-container { grid-template-columns: minmax(220px, 300px) minmax(0, 1fr) minmax(220px, 300px) !important; }
}
html.cb-wide .tri-layout-middle,
html.cb-wide .tri-layout-middle-contents,
html.cb-wide .page-content { max-width: none !important; }

/* 6. 专注模式：隐藏页眉、两侧栏、面包屑，正文居中 860px */
html.cb-focus header#header,
html.cb-focus .tri-layout-left,
html.cb-focus .tri-layout-right,
html.cb-focus .tri-layout-middle-contents > .print-hidden:has(> nav.breadcrumbs) { display: none !important; }
html.cb-focus .tri-layout-container { display: block !important; }
html.cb-focus .tri-layout-middle { max-width: 860px !important; margin: 0 auto !important; padding: 48px 24px 64px !important; }
html.cb-focus.cb-wide .tri-layout-middle { max-width: 1200px !important; }
.cb-focus-exit { display: none; }
html.cb-focus .cb-focus-exit {
  display: inline-flex; align-items: center; gap: 6px; position: fixed; top: 16px; right: 16px; z-index: 80;
  height: 32px; padding: 0 12px; border: 0; border-radius: var(--cb-radius-pill); background: rgba(17, 24, 39, .06);
  color: inherit; font-size: 12px; opacity: .6; cursor: pointer; transition: opacity .15s ease;
}
html.cb-focus .cb-focus-exit:hover { opacity: 1; }
.cb-focus-exit svg { width: 14px; height: 14px; }

/* 7. 字号三档（中 = 现有字号不变） */
html[data-cb-font="s"] .page-content { font-size: 14px !important; }
html[data-cb-font="l"] .page-content { font-size: 17.5px !important; }

/* 8. 深色外观 */
html.cb-dark { color-scheme: dark; }
html.cb-dark body { background: #0f1115 !important; color: #d4d7dd !important; }
html.cb-dark header#header { background: #13161c !important; color: #d4d7dd !important; border-color: #232833 !important; }
html.cb-dark header#header .logo, html.cb-dark header#header .links a { color: #d4d7dd !important; }
html.cb-dark header#header form.search-box > #header-search-box-input { background: rgba(255, 255, 255, .06) !important; color: #d4d7dd !important; }
html.cb-dark header#header form.search-box > #header-search-box-input:focus { background: #1b1f27 !important; border-color: #2f3542 !important; }
html.cb-dark .card, html.cb-dark main.content-wrap.card { background: #171a21 !important; color: #d4d7dd !important; box-shadow: 0 0 0 1px #232833 !important; }
html.cb-dark .page-content, html.cb-dark .page-content p, html.cb-dark .page-content li,
html.cb-dark .page-content h1, html.cb-dark .page-content h2, html.cb-dark .page-content h3,
html.cb-dark .page-content h4, html.cb-dark main.content-wrap.card h1 { color: #e3e6eb !important; }
html.cb-dark .text-muted, html.cb-dark .cb-dl-menu small, html.cb-dark .cb-dl-title { color: #8b93a1 !important; }
html.cb-dark .page-content a { color: #7fb2ff !important; }
html.cb-dark .page-content pre, html.cb-dark .page-content code { background: #0f1218 !important; color: #d4d7dd !important; border-color: #232833 !important; }
html.cb-dark .page-content table td, html.cb-dark .page-content table th, html.cb-dark .page-content hr { border-color: #2a2f3a !important; }
html.cb-dark .page-content blockquote { background: #1b1f27 !important; border-color: #2f3542 !important; color: #c3c8d0 !important; }
html.cb-dark .entity-list-item:hover, html.cb-dark .book-tree .entity-list-item.selected { background: #1f2430 !important; }
html.cb-dark .tri-layout-left, html.cb-dark .tri-layout-right, html.cb-dark .tri-layout-left a, html.cb-dark .tri-layout-right a { color: #c3c8d0 !important; }
html.cb-dark input, html.cb-dark textarea, html.cb-dark select { background: #1b1f27 !important; color: #d4d7dd !important; border-color: #2a2f3a !important; }
html.cb-dark .cb-dl-menu, html.cb-dark .dropdown-menu, html.cb-dark .dropdown-search-dropdown,
html.cb-dark header#header form.search-box [refs="global-search@suggestions"] { background: #1b1f27 !important; color: #d4d7dd !important; box-shadow: 0 16px 40px rgba(0, 0, 0, .5), 0 0 0 1px #2a2f3a !important; }
html.cb-dark .cb-tool:hover, html.cb-dark .cb-tool[aria-pressed="true"], html.cb-dark .cb-dl-menu a:hover,
html.cb-dark nav.breadcrumbs > a.icon-list-item:hover, html.cb-dark nav.breadcrumbs .dropdown-search-toggle-breadcrumb:hover { background: rgba(255, 255, 255, .08) !important; }
html.cb-dark .cb-tool-sep { background: rgba(255, 255, 255, .12); }
html.cb-dark .cb-kbd { border-color: rgba(255, 255, 255, .16); color: #8b93a1; }
html.cb-dark .cb-toast { background: #e5e7eb; color: #111827; }
html.cb-dark.cb-focus .cb-focus-exit { background: rgba(255, 255, 255, .08); }

/* ===== tabler21 · 修正：字号三档 / 全宽 / 返回顶部圆心 / 搜索面板对齐 ===== */

/* 1. 字号：小 13 / 中 14（默认）/ 大 16；需带 #main-content 才能压过 1963 行的 ID 选择器 */
html[data-cb-font="s"] #main-content .page-content,
html[data-cb-font="s"] body .page-content,
html[data-cb-font="s"] #main-content .page-content p,
html[data-cb-font="s"] #main-content .page-content li,
html[data-cb-font="s"] #main-content .page-content ul,
html[data-cb-font="s"] #main-content .page-content ol { font-size: 13px !important; }
html[data-cb-font="l"] #main-content .page-content,
html[data-cb-font="l"] body .page-content,
html[data-cb-font="l"] #main-content .page-content p,
html[data-cb-font="l"] #main-content .page-content li,
html[data-cb-font="l"] #main-content .page-content ul,
html[data-cb-font="l"] #main-content .page-content ol { font-size: 16px !important; }

/* 2. 全宽：两侧栏保持 240，中栏吃满剩余（1440 屏 +32px，宽屏收益更大） */
@media (min-width: 1400px) {
  html.cb-wide .tri-layout-container { grid-template-columns: 240px minmax(0, 1fr) 240px !important; }
}

/* 3. 返回顶部：进度环 46x46 贴合外框（去掉原生 -3px），40x40 按钮居中 */
.back-to-top-container .back-to-top-progress { top: 0 !important; left: 0 !important; width: 46px !important; height: 46px !important; }
.back-to-top-container > .back-to-top { position: absolute !important; top: 3px !important; left: 3px !important; margin: 0 !important; }

/* 4. 搜索结果面板：去掉原生 -48px 左偏，与输入框左缘对齐 */
header#header form.search-box [refs="global-search@suggestions"] { left: 0 !important; right: auto !important; margin-left: 0 !important; }

/* ===== tabler22 · 修正：全宽解除 .tri-layout 外层上限 / 返回顶部图标居中 ===== */

/* 1. 全宽：.tri-layout 有 max-width: calc(--cb-shell + --cb-aside + 4rem)，全宽时解除 */
html.cb-wide .tri-layout { max-width: none !important; }

/* 2. 返回顶部：按钮内文字视觉隐藏（读屏仍可读），图标在 40x40 内居中 */
.back-to-top-container > .back-to-top { display: inline-flex !important; align-items: center !important; justify-content: center !important; width: 40px !important; height: 40px !important; padding: 0 !important; }
.back-to-top .inner { gap: 0 !important; width: auto !important; margin: 0 !important; padding: 0 !important; }
.back-to-top .inner > span { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; }

/* tabler23 · 文章卡片内边距统一：桌面 40 / 平板 32 / 手机 20，正文上下内边距归零避免叠加 */
#main-content .content-wrap.card{padding:20px!important;}
#main-content .content-wrap.card > .page-content,
#main-content .content-wrap.card .page-content{padding-top:0!important;padding-bottom:0!important;}
#main-content .content-wrap.card .page-content > :first-child{margin-top:0!important;}
#main-content .content-wrap.card .page-content > :last-child{margin-bottom:0!important;}
@media (min-width:768px){
  #main-content .content-wrap.card{padding:32px!important;}
}
@media (min-width:1024px){
  #main-content .content-wrap.card{padding:40px!important;}
}

/* tabler24 · 卡片底边：正文包裹层内最后一个元素的下外边距穿透到底部（+26px），清零使四边一致 */
#main-content .content-wrap.card .page-content > :last-child > :last-child,
#main-content .content-wrap.card .page-content > :last-child > :last-child > :last-child{margin-bottom:0!important;}

/* tabler25 · 顶栏对齐与统一 Tabler 图标尺寸：放大镜垂直居中、图标统一 16px、字号标记对齐、导航高度 32 */

#header .search-box button{position:absolute!important;top:50%!important;transform:translateY(-50%)!important;margin:0!important;height:16px!important;width:16px!important;line-height:0!important;display:inline-flex!important;align-items:center;justify-content:center;padding:0!important;}

#header .search-box button svg{width:16px!important;height:16px!important;margin:0!important;top:0!important;}
#header .search-box input::placeholder{line-height:normal;}
.cb-tools .cb-tool svg,.cb-tools .cb-dl svg{width:16px!important;height:16px!important;flex:0 0 16px;}
.cb-tools .cb-tool{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:2px;}
.cb-tools #cb-tool-font{width:auto!important;min-width:32px;padding:0 6px!important;}
.cb-tools .cb-badge{font-size:12px!important;line-height:16px!important;height:16px;font-weight:500;color:inherit!important;position:static!important;transform:none!important;margin:0!important;}
#header .header-links .links > a,#header .header-links .links > * > a{height:32px!important;display:inline-flex!important;align-items:center!important;gap:6px;padding-top:0!important;padding-bottom:0!important;}
#header .header-links .links svg.svg-icon{width:16px!important;height:16px!important;margin:0!important;top:0!important;}

/* tabler26 · 放大镜：top 8px 已居中，去掉 translateY 叠加；窄屏专用的「搜索」链接在宽屏重新隐藏 */
#header #header-search-box-button,#header .search-box #header-search-box-button{top:8px!important;transform:none!important;}
#header #header-search-box-button svg{vertical-align:top!important;}
@media (min-width:1000px){
  #header .header-links .links > a.hide-over-l,#header .header-links .links > * > a.hide-over-l{display:none!important;}
}

/* tabler27 · 评论框与正文卡片同宽；白底，悬停才明显（与上一页/下一页一致） */
#main-content .comments-container{padding-left:0!important;padding-right:0!important;}
#main-content #comments.cb-discuss{background:#fff!important;border:1px solid rgba(0,0,0,.05)!important;border-radius:var(--cb-radius)!important;box-shadow:none!important;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease!important;}
#main-content #comments.cb-discuss:hover,#main-content #comments.cb-discuss:focus-within{border-color:rgba(0,0,0,.12)!important;box-shadow:0 4px 18px rgba(10,10,10,.06)!important;}
html.cb-dark #main-content #comments.cb-discuss{background:rgba(255,255,255,.03)!important;border-color:rgba(255,255,255,.06)!important;}
html.cb-dark #main-content #comments.cb-discuss:hover,html.cb-dark #main-content #comments.cb-discuss:focus-within{background:rgba(255,255,255,.05)!important;border-color:rgba(255,255,255,.14)!important;box-shadow:0 4px 18px rgba(0,0,0,.35)!important;}

/* ===== tabler28 · 搜索下拉 / 面包屑下拉 / 返回顶部 精修 ===== */

/* ---------- 1. 全局 live search 下拉 ---------- */
#header .global-search-suggestions.card {
  top: calc(100% + 8px) !important;
  padding: 6px !important;
  border: 1px solid rgba(10, 10, 10, .08) !important;
  border-radius: var(--cb-radius) !important;
  background: #fff !important;
  box-shadow: 0 12px 32px rgba(10, 10, 10, .10), 0 2px 6px rgba(10, 10, 10, .04) !important;
  overflow: hidden !important;
}
#header .global-search-suggestions [refs="global-search@suggestion-results"] { padding: 0 !important; }
#header .global-search-suggestions .entity-list { display: flex !important; flex-direction: column !important; gap: 2px !important; margin: 0 !important; }
#header .global-search-suggestions .entity-list-item {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 10px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 9px 10px !important;
  border: 0 !important;
  border-radius: var(--cb-radius-sm) !important;
  background: transparent !important;
  box-shadow: none !important;
  text-decoration: none !important;
  transition: background-color .15s ease !important;
}
#header .global-search-suggestions .entity-list-item:hover,
#header .global-search-suggestions .entity-list-item:focus-visible,
#header .global-search-suggestions .entity-list-item.selected { background: rgba(10, 10, 10, .045) !important; outline: none !important; }
#header .global-search-suggestions .entity-list-item > .icon {
  flex: 0 0 16px !important;
  width: 16px !important; height: 16px !important;
  margin: 2px 0 0 !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  background: none !important; border: 0 !important; border-radius: 0 !important;
  opacity: .65 !important;
}
#header .global-search-suggestions .entity-list-item > .icon svg { width: 16px !important; height: 16px !important; margin: 0 !important; }
#header .global-search-suggestions .entity-list-item > .content {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  width: auto !important;
  display: flex !important; flex-direction: column !important; gap: 2px !important;
}
#header .global-search-suggestions .entity-list-item-name {
  margin: 0 !important;
  font-size: 14px !important; font-weight: 400 !important; line-height: 1.45 !important;
  color: #0a0a0a !important;
  white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important;
  writing-mode: horizontal-tb !important;
}
#header .global-search-suggestions .entity-item-snippet { margin: 0 !important; }
#header .global-search-suggestions .entity-item-snippet p {
  margin: 0 !important;
  font-size: 12px !important; line-height: 1.55 !important; color: #8a8a8a !important;
  display: -webkit-box !important; -webkit-line-clamp: 2 !important; -webkit-box-orient: vertical !important; overflow: hidden !important;
}
#header .global-search-suggestions .entity-item-snippet:empty { display: none !important; }
#header .global-search-suggestions .entity-list-item .text-muted,
#header .global-search-suggestions .entity-list-item .entity-meta { font-size: 12px !important; color: #9a9a9a !important; }
#header .global-search-suggestions .cb-item-meta { display: none !important; }
#header .global-search-suggestions > a,
#header .global-search-suggestions .global-search-view-all {
  display: block !important; margin: 4px 0 0 !important; padding: 9px 10px !important;
  border-top: 1px solid rgba(10, 10, 10, .06) !important; border-radius: 0 0 8px 8px !important;
  font-size: 13px !important; color: #4a4a4a !important; text-align: center !important;
}

/* 搜索框放大镜：垂直居中、可见 */
#header .search-box { position: relative !important; }
#header-search-box-button {
  position: absolute !important; top: 50% !important; left: 12px !important;
  transform: translateY(-50%) !important; margin: 0 !important;
  width: 16px !important; height: 16px !important; padding: 0 !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  opacity: .55 !important; visibility: visible !important; z-index: 2 !important;
  background: none !important; border: 0 !important;
}
#header-search-box-button svg { width: 16px !important; height: 16px !important; margin: 0 !important; display: block !important; }

/* ---------- 2. 面包屑兄弟导航下拉 ---------- */
nav.breadcrumbs .dropdown-search-dropdown {
  width: 280px !important;
  padding: 6px !important;
  border: 1px solid rgba(10, 10, 10, .08) !important;
  border-radius: var(--cb-radius) !important;
  background: #fff !important;
  box-shadow: 0 12px 32px rgba(10, 10, 10, .10), 0 2px 6px rgba(10, 10, 10, .04) !important;
}
nav.breadcrumbs .dropdown-search-dropdown .dropdown-search-search {
  display: flex !important; flex-direction: row !important; align-items: center !important; gap: 8px !important;
  margin: 0 0 6px !important; padding: 0 10px !important; height: 34px !important;
  border: 1px solid rgba(10, 10, 10, .08) !important; border-radius: var(--cb-radius-sm) !important;
  background: rgba(10, 10, 10, .025) !important;
}
nav.breadcrumbs .dropdown-search-dropdown .dropdown-search-search svg {
  flex: 0 0 14px !important; width: 14px !important; height: 14px !important;
  position: static !important; margin: 0 !important; opacity: .5 !important; display: block !important;
}
nav.breadcrumbs .dropdown-search-dropdown .dropdown-search-search input {
  flex: 1 1 auto !important; min-width: 0 !important; height: 32px !important;
  margin: 0 !important; padding: 0 !important; border: 0 !important; outline: none !important;
  background: transparent !important; box-shadow: none !important; font-size: 13px !important;
}
nav.breadcrumbs .dropdown-search-dropdown .dropdown-search-list { padding: 0 !important; margin: 0 !important; }
nav.breadcrumbs .dropdown-search-dropdown .entity-list { display: flex !important; flex-direction: column !important; gap: 1px !important; }
nav.breadcrumbs .dropdown-search-dropdown .dropdown-search-list .entity-list-item,
nav.breadcrumbs .dropdown-search-dropdown .entity-list-item[style] {
  display: flex !important; flex-direction: row !important; align-items: center !important; gap: 10px !important;
  width: 100% !important; min-height: 36px !important;
  margin: 0 !important; padding: 7px 10px !important;
  border: 0 !important; border-left: 0 !important; border-radius: var(--cb-radius-sm) !important;
  background: transparent !important; box-shadow: none !important;
  font-size: 13px !important; color: #3a3a3a !important;
  transition: background-color .15s ease !important;
}
nav.breadcrumbs .dropdown-search-dropdown .entity-list-item:hover,
nav.breadcrumbs .dropdown-search-dropdown .entity-list-item:focus-visible { background: rgba(10, 10, 10, .045) !important; outline: none !important; }
nav.breadcrumbs .dropdown-search-dropdown .entity-list-item.selected,
nav.breadcrumbs .dropdown-search-dropdown .entity-list-item[aria-current] { background: rgba(10, 10, 10, .06) !important; color: #0a0a0a !important; }
nav.breadcrumbs .dropdown-search-dropdown .entity-list-item > .icon {
  flex: 0 0 15px !important; width: 15px !important; height: 15px !important; margin: 0 !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  background: none !important; border: 0 !important; opacity: .6 !important;
}
nav.breadcrumbs .dropdown-search-dropdown .entity-list-item > .icon svg { width: 15px !important; height: 15px !important; margin: 0 !important; }
nav.breadcrumbs .dropdown-search-dropdown .entity-list-item > .content { flex: 1 1 auto !important; min-width: 0 !important; width: auto !important; }
nav.breadcrumbs .dropdown-search-dropdown .entity-list-item-name {
  margin: 0 !important; font-size: 13px !important; font-weight: 400 !important; line-height: 1.45 !important;
  white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important;
}
nav.breadcrumbs .dropdown-search-dropdown .entity-item-snippet,
nav.breadcrumbs .dropdown-search-dropdown .cb-item-meta { display: none !important; }

/* ---------- 3. 返回顶部：进度环与按钮同心 ---------- */
.back-to-top-container {
  display: grid !important; place-items: center !important;
  width: 46px !important; height: 46px !important; padding: 0 !important;
}
.back-to-top-container .back-to-top-progress,
.back-to-top-container > .back-to-top {
  grid-area: 1 / 1 !important;
  position: relative !important; top: auto !important; left: auto !important; right: auto !important; bottom: auto !important;
  margin: 0 !important; transform: none !important;
}
.back-to-top-container .back-to-top-progress {
  display: block !important; width: 46px !important; height: 46px !important;
  overflow: visible !important; pointer-events: none !important; z-index: 2 !important;
}
.back-to-top-container .back-to-top-progress circle { transform-origin: 50% 50% !important; }
.back-to-top-container > .back-to-top {
  z-index: 1 !important; width: 40px !important; height: 40px !important; padding: 0 !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  border-radius: 50% !important; box-sizing: border-box !important;
}
.back-to-top .inner { display: flex !important; align-items: center !important; justify-content: center !important; width: 100% !important; height: 100% !important; }
.back-to-top .inner svg.svg-icon { width: 18px !important; height: 18px !important; margin: 0 !important; display: block !important; }

/* ---------- 深色 ---------- */
html.cb-dark #header .global-search-suggestions.card,
html.cb-dark nav.breadcrumbs .dropdown-search-dropdown { background: #1c1c1e !important; border-color: rgba(255, 255, 255, .08) !important; box-shadow: 0 12px 32px rgba(0, 0, 0, .45) !important; }
html.cb-dark #header .global-search-suggestions .entity-list-item-name { color: #ededed !important; }
html.cb-dark #header .global-search-suggestions .entity-item-snippet p { color: #8e8e93 !important; }
html.cb-dark #header .global-search-suggestions .entity-list-item:hover,
html.cb-dark #header .global-search-suggestions .entity-list-item.selected,
html.cb-dark nav.breadcrumbs .dropdown-search-dropdown .entity-list-item:hover { background: rgba(255, 255, 255, .06) !important; }
html.cb-dark nav.breadcrumbs .dropdown-search-dropdown .entity-list-item { color: #d8d8d8 !important; }
html.cb-dark nav.breadcrumbs .dropdown-search-dropdown .dropdown-search-search { background: rgba(255, 255, 255, .04) !important; border-color: rgba(255, 255, 255, .08) !important; }

/* ===== tabler29 · 返回顶部进度环同心（path 为 40 坐标系，svg 46 无 viewBox） ===== */
.back-to-top-container .back-to-top-progress path {
  transform-box: view-box !important; transform-origin: 0 0 !important;
  transform: translate(1px, 1px) scale(1.1) !important;
  vector-effect: non-scaling-stroke !important; stroke-width: 1.5px !important; fill: none !important;
}

/* ===== tabler30 · 深色模式返回顶部进度环颜色 ===== */
html.cb-dark .back-to-top-container .back-to-top-progress path { stroke: rgba(255, 255, 255, .78) !important; }
html.cb-dark .back-to-top-container > .back-to-top { background: #1c1c1e !important; border-color: rgba(255, 255, 255, .10) !important; color: #e5e5e5 !important; box-shadow: 0 0 10px rgba(0, 0, 0, .35) !important; }

/* ===== tabler31 · 下拉图标与页眉工具栏同款 / 去 hr 分隔 / 放大镜可见 ===== */
#header .global-search-suggestions .entity-list > hr,
nav.breadcrumbs .dropdown-search-dropdown .entity-list > hr { display: none !important; }
#header .global-search-suggestions .entity-list,
nav.breadcrumbs .dropdown-search-dropdown .entity-list { gap: 2px !important; }

/* 图标：统一 #888、不透明、16px、描边 1.5、无填充无底 —— 与工具栏一致 */
#header .global-search-suggestions .entity-list-item > .icon,
nav.breadcrumbs .dropdown-search-dropdown .entity-list-item > .icon {
  color: #888 !important; opacity: 1 !important;
  background: none !important; border: 0 !important; box-shadow: none !important;
}
#header .global-search-suggestions .entity-list-item > .icon svg,
nav.breadcrumbs .dropdown-search-dropdown .entity-list-item > .icon svg,
#header .global-search-suggestions .entity-list-item > .icon svg *,
nav.breadcrumbs .dropdown-search-dropdown .entity-list-item > .icon svg * {
  color: inherit !important; fill: none !important; stroke: currentColor !important; stroke-width: 1.5px !important;
}
#header .global-search-suggestions .entity-list-item:hover > .icon,
#header .global-search-suggestions .entity-list-item.selected > .icon,
nav.breadcrumbs .dropdown-search-dropdown .entity-list-item:hover > .icon { color: #3a3a3a !important; }

/* 页眉放大镜 */
#header-search-box-button { opacity: 1 !important; color: #888 !important; }
#header-search-box-button svg, #header-search-box-button svg * { fill: none !important; stroke: currentColor !important; stroke-width: 1.5px !important; }
#header .search-box input:focus ~ #header-search-box-button,
#header .search-box:focus-within #header-search-box-button { color: #3a3a3a !important; }

/* 深色 */
html.cb-dark #header .global-search-suggestions .entity-list-item > .icon,
html.cb-dark nav.breadcrumbs .dropdown-search-dropdown .entity-list-item > .icon,
html.cb-dark #header-search-box-button { color: #8e8e93 !important; }
html.cb-dark #header .global-search-suggestions .entity-list-item:hover > .icon,
html.cb-dark nav.breadcrumbs .dropdown-search-dropdown .entity-list-item:hover > .icon { color: #e5e5e5 !important; }

/* ===== tabler32 · 搜索下拉「查看全部」改为卡片底部整行链接 ===== */
#header .global-search-suggestions .card-footer-link,
#header .global-search-suggestions button.text-button.card-footer-link {
  position: static !important; inset: auto !important; transform: none !important;
  display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important;
  width: 100% !important; height: 36px !important; min-width: 0 !important;
  margin: 4px 0 0 !important; padding: 0 10px !important;
  border: 0 !important; border-top: 1px solid rgba(10, 10, 10, .06) !important; border-radius: 0 0 8px 8px !important;
  background: transparent !important; box-shadow: none !important;
  font-size: 13px !important; font-weight: 400 !important; line-height: 1 !important; color: #6a6a6a !important;
  white-space: nowrap !important; writing-mode: horizontal-tb !important; cursor: pointer !important;
}
#header .global-search-suggestions .card-footer-link:hover,
#header .global-search-suggestions .card-footer-link:focus-visible { color: #0a0a0a !important; background: rgba(10, 10, 10, .035) !important; outline: none !important; }
#header .global-search-suggestions .card-footer-link svg { width: 14px !important; height: 14px !important; margin: 0 !important; flex: none !important; }
html.cb-dark #header .global-search-suggestions .card-footer-link { color: #a1a1a6 !important; border-top-color: rgba(255, 255, 255, .08) !important; }
html.cb-dark #header .global-search-suggestions .card-footer-link:hover { color: #f2f2f2 !important; background: rgba(255, 255, 255, .05) !important; }

/* ===== tabler33 · Tabler 图标一律线描 / 下载菜单重做 / 下载按钮去虚线 ===== */
svg[data-cb-set="tabler"], svg[data-cb-set="tabler"] *,
.cb-tools svg, .cb-tools svg * {
  fill: none !important; stroke: currentColor !important;
}
.cb-tools svg { stroke-width: 1.5px !important; }

/* 下载按钮 */
.cb-tools .cb-dl-btn { outline: none !important; border: 0 !important; box-shadow: none !important; border-radius: var(--cb-radius-sm) !important; }
.cb-tools .cb-dl-btn:focus-visible { box-shadow: 0 0 0 2px rgba(10, 10, 10, .12) !important; }
.cb-tools .cb-dl-btn[aria-expanded="true"], .cb-tools .cb-dl-btn.is-open { background: rgba(10, 10, 10, .05) !important; color: #0a0a0a !important; }

/* 下载菜单 */
.cb-dl-menu {
  width: 264px !important; padding: 6px !important;
  color: #0a0a0a !important; background: #fff !important;
  border: 1px solid rgba(10, 10, 10, .08) !important; border-radius: var(--cb-radius) !important;
  box-shadow: 0 12px 32px rgba(10, 10, 10, .10), 0 2px 6px rgba(10, 10, 10, .04) !important;
  display: flex !important; flex-direction: column !important; gap: 1px !important;
}
.cb-dl-menu .cb-dl-title {
  padding: 6px 10px 6px !important; margin: 0 !important;
  font-size: 12px !important; font-weight: 400 !important; line-height: 1.4 !important; color: #9a9a9a !important; letter-spacing: .02em !important;
}
.cb-dl-menu > a[role="menuitem"] {
  display: grid !important; grid-template-columns: 18px 1fr !important; grid-template-rows: auto auto !important;
  column-gap: 12px !important; row-gap: 1px !important; align-items: center !important; justify-items: start !important;
  width: 100% !important; box-sizing: border-box !important; margin: 0 !important; padding: 8px 10px !important;
  border: 0 !important; border-radius: var(--cb-radius-sm) !important; background: transparent !important;
  text-align: left !important; text-decoration: none !important; color: #888 !important;
  transition: background-color .15s ease, color .15s ease !important;
}
.cb-dl-menu > a[role="menuitem"]::before {
  content: "" !important; grid-column: 1 !important; grid-row: 1 / 3 !important;
  width: 18px !important; height: 18px !important; background-color: currentColor !important;
  -webkit-mask: var(--cb-dl-ico) center / 18px 18px no-repeat !important; mask: var(--cb-dl-ico) center / 18px 18px no-repeat !important;
}
.cb-dl-menu > a[role="menuitem"] > b {
  grid-column: 2 !important; grid-row: 1 !important; display: block !important; margin: 0 !important;
  font-size: 14px !important; font-weight: 400 !important; line-height: 1.4 !important; color: #0a0a0a !important;
}
.cb-dl-menu > a[role="menuitem"] > small {
  grid-column: 2 !important; grid-row: 2 !important; display: block !important; margin: 0 !important;
  font-size: 12px !important; line-height: 1.45 !important; color: #8a8a8a !important;
}
.cb-dl-menu > a[role="menuitem"]:hover,
.cb-dl-menu > a[role="menuitem"]:focus-visible { background: rgba(10, 10, 10, .045) !important; color: #3a3a3a !important; outline: none !important; }

/* 格式图标（Tabler outline：printer / markdown / code / file-text / archive） */
.cb-dl-menu > a[href$="/export/pdf"] { --cb-dl-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 17h2a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h2M17 9V5a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v4M7 15a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2z'/%3E%3C/svg%3E"); }
.cb-dl-menu > a[href$="/export/markdown"] { --cb-dl-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2zM7 15V9l2 2l2-2v6M14 13l2 2l2-2M16 15V9'/%3E%3C/svg%3E"); }
.cb-dl-menu > a[href$="/export/html"] { --cb-dl-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 8l-4 4l4 4M17 8l4 4l-4 4M14 4l-4 16'/%3E%3C/svg%3E"); }
.cb-dl-menu > a[href$="/export/plaintext"] { --cb-dl-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3v4a1 1 0 0 0 1 1h4M17 21H7a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7l5 5v11a2 2 0 0 1-2 2zM9 9h1M9 13h6M9 17h6'/%3E%3C/svg%3E"); }
.cb-dl-menu > a[href$="/export/zip"] { --cb-dl-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2M5 8v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8M10 12h4'/%3E%3C/svg%3E"); }

/* 深色 */
html.cb-dark .cb-dl-menu { color: #ededed !important; background: #1c1c1e !important; border-color: rgba(255, 255, 255, .08) !important; box-shadow: 0 12px 32px rgba(0, 0, 0, .45) !important; }
html.cb-dark .cb-dl-menu .cb-dl-title { color: #8e8e93 !important; }
html.cb-dark .cb-dl-menu > a[role="menuitem"] { color: #8e8e93 !important; }
html.cb-dark .cb-dl-menu > a[role="menuitem"] > b { color: #ededed !important; }
html.cb-dark .cb-dl-menu > a[role="menuitem"] > small { color: #8e8e93 !important; }
html.cb-dark .cb-dl-menu > a[role="menuitem"]:hover { background: rgba(255, 255, 255, .06) !important; color: #e5e5e5 !important; }
html.cb-dark .cb-tools .cb-dl-btn[aria-expanded="true"], html.cb-dark .cb-tools .cb-dl-btn.is-open { background: rgba(255, 255, 255, .08) !important; color: #f2f2f2 !important; }

/* ===== tabler34：下载菜单开关修复 + 尺寸收紧 + 交互细节 ===== */
/* 开关：收起时真正隐藏（修复 tabler33 display:flex!important 导致无法关闭） */
.cb-dl-menu {
  display: flex !important; visibility: hidden !important; opacity: 0 !important; pointer-events: none !important;
  transform: translateY(-4px) scale(.98) !important; transform-origin: top right !important;
  transition: opacity .14s ease, transform .14s ease, visibility 0s linear .14s !important;
  top: calc(100% + 6px) !important; right: 0 !important;
}
.cb-dl.is-open .cb-dl-menu {
  visibility: visible !important; opacity: 1 !important; pointer-events: auto !important; transform: none !important;
  transition: opacity .14s ease, transform .14s ease, visibility 0s !important;
}
@media (prefers-reduced-motion: reduce) { .cb-dl-menu, .cb-dl.is-open .cb-dl-menu, .cb-tools .cb-dl-btn::after { transition: none !important; } }

/* 尺寸收紧 */
.cb-dl-menu { width: 224px !important; padding: 4px !important; gap: 0 !important; border-radius: var(--cb-radius-md) !important; box-shadow: 0 10px 28px rgba(10, 10, 10, .09), 0 1px 4px rgba(10, 10, 10, .04) !important; }
.cb-dl-menu .cb-dl-title { padding: 6px 8px 4px !important; font-size: 11px !important; line-height: 1.4 !important; color: #a0a0a0 !important; letter-spacing: .04em !important; }
.cb-dl-menu > a[role="menuitem"] { grid-template-columns: 16px 1fr !important; column-gap: 10px !important; row-gap: 0 !important; padding: 6px 8px !important; border-radius: var(--cb-radius-xs) !important; color: #8a8a8a !important; }
.cb-dl-menu > a[role="menuitem"]::before { width: 16px !important; height: 16px !important; align-self: center !important; -webkit-mask-size: 16px 16px !important; mask-size: 16px 16px !important; }
.cb-dl-menu > a[role="menuitem"] > b { font-size: 13px !important; line-height: 1.35 !important; }
.cb-dl-menu > a[role="menuitem"] > small { font-size: 11.5px !important; line-height: 1.35 !important; color: #919191 !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; max-width: 100% !important; }
.cb-dl-menu > a[role="menuitem"]:hover, .cb-dl-menu > a[role="menuitem"]:focus-visible, .cb-dl-menu > a[role="menuitem"]:focus { background: rgba(10, 10, 10, .045) !important; color: #3a3a3a !important; outline: none !important; }
.cb-dl-menu > a[role="menuitem"]:active { background: rgba(10, 10, 10, .07) !important; }

/* 下载按钮：小箭头，展开时翻转 */
.cb-tools .cb-dl-btn { gap: 4px !important; padding: 0 8px 0 8px !important; font-size: 13px !important; }
.cb-tools .cb-dl-btn::after {
  content: "" !important; width: 12px; height: 12px; flex: 0 0 12px; background-color: currentColor; opacity: .7;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6-6'/%3E%3C/svg%3E") center / 12px 12px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6-6'/%3E%3C/svg%3E") center / 12px 12px no-repeat;
  transition: transform .14s ease;
}
.cb-tools .cb-dl-btn[aria-expanded="true"]::after { transform: rotate(180deg); }

/* 深色 */
html.cb-dark .cb-dl-menu { box-shadow: 0 10px 28px rgba(0, 0, 0, .45) !important; }
html.cb-dark .cb-dl-menu .cb-dl-title { color: #7c7c82 !important; }
html.cb-dark .cb-dl-menu > a[role="menuitem"]:focus, html.cb-dark .cb-dl-menu > a[role="menuitem"]:focus-visible { background: rgba(255, 255, 255, .06) !important; color: #e5e5e5 !important; }
html.cb-dark .cb-dl-menu > a[role="menuitem"]:active { background: rgba(255, 255, 255, .09) !important; }

/* ===== tabler35：菜单宽度去掉旧 min-width ===== */
.cb-dl-menu { min-width: 0 !important; width: 224px !important; }

/* ===== tabler36 · 三个下拉统一规格（对齐下载菜单）===== */
/* 外框 */
header#header .global-search-suggestions.card,
#header .global-search-suggestions.card,
nav.breadcrumbs .dropdown-search-dropdown,
nav.breadcrumbs .dropdown-search-dropdown.card {
  padding: 4px !important; border: 1px solid rgba(10, 10, 10, .08) !important; border-radius: var(--cb-radius-md) !important; background: #fff !important;
  box-shadow: 0 10px 28px rgba(10, 10, 10, .09), 0 1px 4px rgba(10, 10, 10, .04) !important;
}
header#header .global-search-suggestions .entity-list,
nav.breadcrumbs .dropdown-search-dropdown .entity-list { gap: 0 !important; }

/* 条目 */
header#header .global-search-suggestions .entity-list-item {
  gap: 10px !important; padding: 6px 8px !important; border-radius: var(--cb-radius-xs) !important; align-items: flex-start !important;
}
nav.breadcrumbs .dropdown-search-dropdown .dropdown-search-list .entity-list-item,
nav.breadcrumbs .dropdown-search-dropdown .entity-list-item[style] {
  gap: 10px !important; min-height: 32px !important; padding: 6px 8px !important; border-radius: var(--cb-radius-xs) !important; font-size: 13px !important;
}
header#header .global-search-suggestions .entity-list-item:active,
nav.breadcrumbs .dropdown-search-dropdown .entity-list-item:active { background: rgba(10, 10, 10, .07) !important; }

/* 图标统一 16px */
header#header .global-search-suggestions .entity-list-item > .icon,
nav.breadcrumbs .dropdown-search-dropdown .entity-list-item > .icon {
  flex: 0 0 16px !important; width: 16px !important; height: 16px !important;
}
header#header .global-search-suggestions .entity-list-item > .icon { margin: 1px 0 0 !important; }
header#header .global-search-suggestions .entity-list-item > .icon svg,
nav.breadcrumbs .dropdown-search-dropdown .entity-list-item > .icon svg { width: 16px !important; height: 16px !important; }

/* 文字：主 13 / 次 11.5 */
header#header .global-search-suggestions .entity-list-item > .content { gap: 1px !important; }
header#header .global-search-suggestions .entity-list-item-name,
nav.breadcrumbs .dropdown-search-dropdown .entity-list-item-name { font-size: 13px !important; line-height: 1.35 !important; font-weight: 400 !important; }
header#header .global-search-suggestions .entity-item-snippet {
  display: flex !important; flex-direction: column !important; gap: 1px !important; margin: 0 !important;
  font-size: 11.5px !important; line-height: 1.45 !important; color: #919191 !important;
}
header#header .global-search-suggestions .entity-item-snippet > span,
header#header .global-search-suggestions .entity-item-snippet .text-book,
header#header .global-search-suggestions .entity-item-snippet .text-chapter {
  font-size: 11.5px !important; line-height: 1.45 !important; color: #a3a3a3 !important; font-weight: 400 !important;
  white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important;
}
header#header .global-search-suggestions .entity-item-snippet p { font-size: 11.5px !important; line-height: 1.45 !important; color: #919191 !important; }
header#header .global-search-suggestions .entity-item-snippet p:empty { display: none !important; }

/* 查看全部 */
header#header .global-search-suggestions .card-footer-link,
header#header .global-search-suggestions button.text-button.card-footer-link {
  height: 32px !important; margin: 4px 0 0 !important; font-size: 12px !important; border-radius: 0 0 6px 6px !important;
}
header#header .global-search-suggestions .card-footer-link svg { width: 12px !important; height: 12px !important; }

/* 面包屑下拉 */
nav.breadcrumbs .dropdown-search-dropdown { width: 240px !important; }
nav.breadcrumbs .dropdown-search-dropdown .dropdown-search-search { height: 30px !important; margin: 0 0 4px !important; padding: 0 8px !important; border-radius: var(--cb-radius-xs) !important; gap: 8px !important; }
nav.breadcrumbs .dropdown-search-dropdown .dropdown-search-search input { height: 28px !important; font-size: 12.5px !important; }
nav.breadcrumbs .dropdown-search-dropdown .dropdown-search-search svg { flex: 0 0 14px !important; width: 14px !important; height: 14px !important; color: #888 !important; opacity: 1 !important; }
nav.breadcrumbs .dropdown-search-dropdown .dropdown-search-search:focus-within { border-color: rgba(10, 10, 10, .18) !important; background: #fff !important; }

/* 深色 */
html.cb-dark header#header .global-search-suggestions.card,
html.cb-dark nav.breadcrumbs .dropdown-search-dropdown { background: #1c1c1e !important; border-color: rgba(255, 255, 255, .08) !important; box-shadow: 0 10px 28px rgba(0, 0, 0, .45) !important; }
html.cb-dark header#header .global-search-suggestions .entity-item-snippet,
html.cb-dark header#header .global-search-suggestions .entity-item-snippet p { color: #8e8e93 !important; }
html.cb-dark header#header .global-search-suggestions .entity-item-snippet > span,
html.cb-dark header#header .global-search-suggestions .entity-item-snippet .text-book,
html.cb-dark header#header .global-search-suggestions .entity-item-snippet .text-chapter { color: #6e6e73 !important; }
html.cb-dark header#header .global-search-suggestions .entity-list-item:active,
html.cb-dark nav.breadcrumbs .dropdown-search-dropdown .entity-list-item:active { background: rgba(255, 255, 255, .09) !important; }
html.cb-dark nav.breadcrumbs .dropdown-search-dropdown .dropdown-search-search:focus-within { border-color: rgba(255, 255, 255, .2) !important; background: rgba(255, 255, 255, .06) !important; }

/* ===== tabler36c · 搜索下拉外框对齐统一规格（覆盖 2406 行旧规则）===== */
header#header form.search-box [refs="global-search@suggestions"] {
  padding: 4px !important; border: 1px solid rgba(10, 10, 10, .08) !important; border-radius: var(--cb-radius-md) !important; background: #fff !important;
  box-shadow: 0 10px 28px rgba(10, 10, 10, .09), 0 1px 4px rgba(10, 10, 10, .04) !important;
}
html.cb-dark header#header form.search-box [refs="global-search@suggestions"] { background: #1c1c1e !important; border-color: rgba(255, 255, 255, .08) !important; box-shadow: 0 10px 28px rgba(0, 0, 0, .45) !important; }

/* ===== tabler37: standalone homepage ===== */
.cb-home{max-width:1040px;margin:0 auto;padding:56px 24px 80px;color:#1a1a1a}
.cb-home-ico{width:16px;height:16px;flex:none;fill:none!important;stroke:currentColor;stroke-width:1.5;background:none!important}
.cb-home-hero{text-align:center;padding:24px 0 16px}
.cb-home-title{margin:0!important;font-size:30px!important;line-height:1.25!important;font-weight:400!important;letter-spacing:-.01em;color:#1a1a1a!important}
.cb-home-sub{margin:10px 0 0!important;font-size:15px;line-height:1.6;color:#6e6e6e}
.cb-home-search{position:relative;max-width:560px;margin:28px auto 0}
.cb-home-search .cb-home-search-ico{position:absolute;left:16px;top:50%;width:18px;height:18px;transform:translateY(-50%);color:#a0a0a0;pointer-events:none}
.cb-home-search input{display:block;width:100%;height:48px;margin:0;padding:0 96px 0 44px;border:1px solid rgba(10,10,10,.1);border-radius:var(--cb-radius);background:#fff;font:inherit;font-size:15px;font-weight:400;color:#1a1a1a;box-shadow:0 1px 2px rgba(10,10,10,.04);outline:none;transition:border-color .15s ease,box-shadow .15s ease;-webkit-appearance:none;appearance:none}
.cb-home-search input::placeholder{color:#a8a8a8}
.cb-home-search input::-webkit-search-cancel-button{-webkit-appearance:none}
.cb-home-search input:focus{border-color:rgba(10,10,10,.22);box-shadow:0 0 0 4px rgba(10,10,10,.05)}
.cb-home-search button{position:absolute;right:6px;top:6px;height:36px;padding:0 16px;border:0;border-radius:var(--cb-radius-sm);background:#1a1a1a;color:#fff;font:inherit;font-size:13px;font-weight:400;cursor:pointer;transition:background-color .15s ease}
.cb-home-search button:hover{background:#333}
.cb-home-search button:focus-visible{outline:2px solid rgba(10,10,10,.35);outline-offset:2px}
.cb-home-section{margin-top:48px}
.cb-home-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:0 0 14px;padding:0;border:0;background:none}
.cb-home-head h2{margin:0!important;font-size:16px!important;line-height:1.4!important;font-weight:400!important;color:#1a1a1a!important}
.cb-home-more{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;color:#6e6e6e!important;text-decoration:none!important;transition:color .15s ease}
.cb-home-more .cb-home-ico{width:14px;height:14px;transition:transform .15s ease}
.cb-home-more:hover{color:#1a1a1a!important}
.cb-home-more:hover .cb-home-ico{transform:translateX(2px)}
.cb-home-card:active{transform:none;box-shadow:0 2px 8px rgba(10,10,10,.05)}
.cb-home-row:active{background:#efeff0}
.cb-home-fallback{margin-top:32px}
@media (max-width:1024px){.cb-home{padding:40px 24px 64px}}
@media (max-width:640px){.cb-home{padding:28px 16px 56px}.cb-home-hero{padding:16px 0 8px}.cb-home-title{font-size:24px!important}.cb-home-sub{font-size:14px}.cb-home-search{margin-top:22px}.cb-home-search input{height:46px;font-size:16px;padding-right:16px}.cb-home-search button{display:none}.cb-home-section{margin-top:36px}}
@media (prefers-reduced-motion:reduce){.cb-home-more .cb-home-ico,.cb-home-search input{transition:none}}
html.cb-dark .cb-home,html.cb-dark .cb-home-title,html.cb-dark .cb-home-head h2,html.cb-dark .cb-home-card-name,html.cb-dark .cb-home-row-name{color:#ededed!important}
html.cb-dark .cb-home-sub,html.cb-dark .cb-home-card-desc,html.cb-dark .cb-home-more{color:#a1a1a1!important}
html.cb-dark .cb-home-stats,html.cb-dark .cb-home-card-meta,html.cb-dark .cb-home-row-book,html.cb-dark .cb-home-row-time,html.cb-dark .cb-home-about a{color:#7d7d7d!important}
html.cb-dark .cb-home-more:hover,html.cb-dark .cb-home-about a:hover{color:#ededed!important}
html.cb-dark .cb-home-search input{background:#1c1c1e;border-color:rgba(255,255,255,.1);color:#ededed;box-shadow:none}
html.cb-dark .cb-home-search input:focus{border-color:rgba(255,255,255,.24);box-shadow:0 0 0 4px rgba(255,255,255,.05)}
html.cb-dark .cb-home-search button{background:#ededed;color:#111}
html.cb-dark .cb-home-search button:hover{background:#fff}
html.cb-dark .cb-home-card,html.cb-dark .cb-home-list{background:#1c1c1e;border-color:rgba(255,255,255,.08)}
html.cb-dark .cb-home-card:hover{border-color:rgba(255,255,255,.16);box-shadow:0 6px 20px rgba(0,0,0,.35)}
html.cb-dark .cb-home-card .cb-home-card-ico,html.cb-dark .cb-home-row .cb-home-row-ico{color:#8a8a8a}
html.cb-dark .cb-home-row:hover{background:rgba(255,255,255,.05)}
html.cb-dark .cb-home-row:active{background:rgba(255,255,255,.08)}

/* ===== tabler38: homepage v2 (hero, covers) ===== */
.cb-home{max-width:none!important;margin:0!important;padding:0!important;color:#1a1a1a}
.cb-home-hero{position:relative;overflow:hidden;text-align:center;padding:76px 24px 60px!important;background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,.65) 55%,rgba(255,255,255,0) 100%);border-bottom:1px solid rgba(10,10,10,.06)}
.cb-home-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(rgba(10,10,10,.075) 1px,transparent 1.3px);background-size:18px 18px;-webkit-mask-image:radial-gradient(ellipse 62% 78% at 50% 0%,#000 0%,transparent 78%);mask-image:radial-gradient(ellipse 62% 78% at 50% 0%,#000 0%,transparent 78%)}
.cb-home-hero-inner{position:relative;max-width:680px;margin:0 auto}
.cb-home-eyebrow{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 12px;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius-pill);background:rgba(255,255,255,.85);font-size:12px;line-height:1;color:#6e6e6e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.cb-home-eyebrow .cb-home-ico{width:14px;height:14px;color:#8a8a8a}
.cb-home-eyebrow i{width:1px;height:10px;margin:0 4px;background:rgba(10,10,10,.12)}
.cb-home .cb-home-title{margin:20px 0 0!important;font-size:40px!important;line-height:1.2!important;letter-spacing:-.02em;font-weight:400!important}
.cb-home .cb-home-sub{margin:12px 0 0!important;font-size:16px;line-height:1.6;color:#6e6e6e}
.cb-home .cb-home-search{position:relative;max-width:600px;margin:32px auto 0}
.cb-home .cb-home-search .cb-home-search-ico{position:absolute;left:18px;top:50%;width:20px;height:20px;transform:translateY(-50%);color:#a0a0a0;pointer-events:none;z-index:1}
.cb-home .cb-home-search input[type=search]{display:block;width:100%;height:56px!important;margin:0!important;padding:0 124px 0 50px!important;border:1px solid rgba(10,10,10,.1)!important;border-radius:var(--cb-radius-lg)!important;background:#fff!important;font-family:inherit!important;font-size:15.5px!important;font-weight:400!important;line-height:54px!important;color:#1a1a1a!important;box-shadow:0 1px 2px rgba(10,10,10,.04),0 8px 24px rgba(10,10,10,.05)!important;outline:none!important;-webkit-appearance:none;appearance:none;transition:border-color .15s ease,box-shadow .15s ease}
.cb-home .cb-home-search input[type=search]::placeholder{color:#a8a8a8}
.cb-home .cb-home-search input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}
.cb-home .cb-home-search input[type=search]:focus{border-color:rgba(10,10,10,.22)!important;box-shadow:0 0 0 4px rgba(10,10,10,.05),0 8px 24px rgba(10,10,10,.06)!important}
.cb-home-kbd{position:absolute;right:86px;top:50%;min-width:22px;height:22px;padding:0 6px;transform:translateY(-50%);border:1px solid rgba(10,10,10,.12);border-radius:var(--cb-radius-xs);background:#fafafa;font-family:inherit;font-size:11.5px;line-height:20px;color:#a0a0a0;text-align:center;box-shadow:none;pointer-events:none;transition:opacity .15s ease}
.cb-home-search input:focus~.cb-home-kbd,.cb-home-search input:not(:placeholder-shown)~.cb-home-kbd{opacity:0}
.cb-home .cb-home-search button{position:absolute;right:8px;top:8px;height:40px;padding:0 18px;border:0;border-radius:var(--cb-radius-md);background:#1a1a1a;color:#fff;font-family:inherit;font-size:13.5px;font-weight:400;cursor:pointer;transition:background-color .15s ease}
.cb-home .cb-home-search button:hover{background:#333}
.cb-home .cb-home-search button:active{background:#000}
.cb-home .cb-home-search button:focus-visible{outline:2px solid rgba(10,10,10,.35);outline-offset:2px}
.cb-home-quick{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin-top:20px}
.cb-home-quick-label{margin-right:2px;font-size:12.5px;color:#a0a0a0}
.cb-home-quick a{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius-pill);background:rgba(255,255,255,.75);font-size:12.5px;color:#4a4a4a!important;text-decoration:none!important;transition:border-color .15s ease,background-color .15s ease,color .15s ease}
.cb-home-quick a .cb-home-ico{width:14px;height:14px;color:#8a8a8a}
.cb-home-quick a:hover{border-color:rgba(10,10,10,.16);background:#fff;color:#1a1a1a!important}
.cb-home-quick a:focus-visible{outline:2px solid rgba(10,10,10,.35);outline-offset:2px}
.cb-home-body{max-width:1120px;margin:0 auto;padding:4px 32px 88px}
.cb-home .cb-home-section{margin-top:52px}
.cb-home .cb-home-head{margin:0 0 16px}
.cb-home-count{margin-left:8px;font-size:12.5px;color:#a0a0a0;vertical-align:1px}
.cb-cover{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--cb-radius-md);background:#f1f1f2}
.cb-cover::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(10,10,10,.06) 1px,transparent 1.3px);background-size:14px 14px}
.cb-cover .cb-home-ico{position:relative;width:28px;height:28px;color:rgba(10,10,10,.3)}
.cb-cover img{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.cb-tone-0{background:#f3f1ed}.cb-tone-1{background:#eef1f4}.cb-tone-2{background:#eef2ef}.cb-tone-3{background:#f2f0f4}.cb-tone-4{background:#f4f1ec}.cb-tone-5{background:#eef0f1}
.cb-home-name{font-size:15px;line-height:1.4;color:#1a1a1a;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.cb-home-desc{margin-top:6px;font-size:13px;line-height:1.6;color:#6e6e6e;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cb-home-meta{display:flex;align-items:center;margin-top:auto;padding-top:12px;font-size:11.5px;color:#a0a0a0}
.cb-home-meta i{width:3px;height:3px;margin:0 8px;border-radius:50%;background:#c8c8c8}
.cb-home-shelves{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.cb-home-shelf{display:grid;grid-template-columns:168px minmax(0,1fr);gap:18px;align-items:stretch;padding:12px;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius-lg);background:#fff;color:inherit!important;text-decoration:none!important;transition:border-color .15s ease,box-shadow .2s ease,transform .2s ease}
.cb-home-shelf .cb-cover{aspect-ratio:16/10}
.cb-home-shelf-body{display:flex;flex-direction:column;min-width:0;padding:6px 6px 4px 0}
.cb-home-books{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.cb-home-book{display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius-lg);background:#fff;color:inherit!important;text-decoration:none!important;transition:border-color .15s ease,box-shadow .2s ease,transform .2s ease}
.cb-home-book .cb-cover{aspect-ratio:16/9;border-radius:0;border-bottom:1px solid rgba(10,10,10,.05)}
.cb-home-book-body{display:flex;flex:1;flex-direction:column;min-width:0;padding:16px 18px}
.cb-home-book .cb-home-desc{min-height:calc(1.6em * 2)}
.cb-home-shelf:hover,.cb-home-book:hover{border-color:rgba(10,10,10,.14);box-shadow:0 8px 24px rgba(10,10,10,.06);transform:translateY(-1px)}
.cb-home-shelf:hover .cb-cover img,.cb-home-book:hover .cb-cover img{transform:scale(1.03)}
.cb-home-shelf:active,.cb-home-book:active{transform:none;box-shadow:0 2px 8px rgba(10,10,10,.05)}
.cb-home-shelf:focus-visible,.cb-home-book:focus-visible{outline:2px solid rgba(10,10,10,.35);outline-offset:2px}
html.cb-home-hero-in header#header form.search-box:not(:focus-within){opacity:0;pointer-events:none}
header#header form.search-box{transition:opacity .2s ease}
@media (max-width:1024px){.cb-home-hero{padding:60px 24px 48px!important}.cb-home-body{padding:4px 24px 72px}.cb-home-shelves{grid-template-columns:minmax(0,1fr)}.cb-home-books{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}
@media (max-width:640px){.cb-home-hero{padding:44px 16px 36px!important}.cb-home .cb-home-title{font-size:28px!important}.cb-home .cb-home-sub{font-size:14.5px}.cb-home .cb-home-search{margin-top:24px}.cb-home .cb-home-search input[type=search]{height:50px!important;line-height:48px!important;font-size:16px!important;padding-right:16px!important;border-radius:var(--cb-radius)!important}.cb-home .cb-home-search button,.cb-home-kbd{display:none}.cb-home-quick{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;margin:16px -16px 0;padding:0 16px;scrollbar-width:none}.cb-home-quick::-webkit-scrollbar{display:none}.cb-home-quick a{flex:none}.cb-home-body{padding:0 16px 56px}.cb-home .cb-home-section{margin-top:36px}.cb-home-books{grid-template-columns:minmax(0,1fr);gap:12px}.cb-home-shelf{grid-template-columns:112px minmax(0,1fr);gap:14px;padding:10px}.cb-home-book .cb-home-desc{min-height:0}}
@media (prefers-reduced-motion:reduce){.cb-home-shelf,.cb-home-book,.cb-cover img,.cb-home-kbd,header#header form.search-box{transition:none}.cb-home-shelf:hover,.cb-home-book:hover{transform:none}.cb-home-shelf:hover .cb-cover img,.cb-home-book:hover .cb-cover img{transform:none}}
html.cb-dark .cb-home-hero{background:linear-gradient(180deg,#17171a 0%,rgba(23,23,26,.6) 55%,rgba(23,23,26,0) 100%);border-bottom-color:rgba(255,255,255,.06)}
html.cb-dark .cb-home-hero::before{background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1.3px)}
html.cb-dark .cb-home-eyebrow{background:rgba(28,28,30,.8);border-color:rgba(255,255,255,.08);color:#a1a1a1}
html.cb-dark .cb-home-eyebrow i{background:rgba(255,255,255,.14)}
html.cb-dark .cb-home .cb-home-search input[type=search]{background:#1c1c1e!important;border-color:rgba(255,255,255,.1)!important;color:#ededed!important;box-shadow:0 8px 24px rgba(0,0,0,.25)!important}
html.cb-dark .cb-home .cb-home-search input[type=search]:focus{border-color:rgba(255,255,255,.24)!important;box-shadow:0 0 0 4px rgba(255,255,255,.05)!important}
html.cb-dark .cb-home .cb-home-search input[type=search]::placeholder{color:#6e6e6e}
html.cb-dark .cb-home-kbd{background:#232326;border-color:rgba(255,255,255,.12);color:#7d7d7d}
html.cb-dark .cb-home-quick a{background:rgba(28,28,30,.7);border-color:rgba(255,255,255,.08);color:#c8c8c8!important}
html.cb-dark .cb-home-quick a:hover{background:#1c1c1e;border-color:rgba(255,255,255,.16);color:#ededed!important}
html.cb-dark .cb-home-name{color:#ededed}
html.cb-dark .cb-home-desc{color:#a1a1a1}
html.cb-dark .cb-home-meta,html.cb-dark .cb-home-count,html.cb-dark .cb-home-quick-label{color:#7d7d7d}
html.cb-dark .cb-home-meta i{background:#555}
html.cb-dark .cb-home-shelf,html.cb-dark .cb-home-book{background:#1c1c1e;border-color:rgba(255,255,255,.08)}
html.cb-dark .cb-home-shelf:hover,html.cb-dark .cb-home-book:hover{border-color:rgba(255,255,255,.16);box-shadow:0 8px 24px rgba(0,0,0,.35)}
html.cb-dark .cb-cover{background:#242427!important}
html.cb-dark .cb-cover::before{background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1.3px)}
html.cb-dark .cb-cover .cb-home-ico{color:rgba(255,255,255,.3)}
html.cb-dark .cb-home-book .cb-cover{border-bottom-color:rgba(255,255,255,.05)}

/* ===== tabler39: homepage v3 (split hero, designed covers) ===== */
.cb-home-v3 .cb-home-hero{text-align:left;padding:64px 0 60px!important}
.cb-home-v3 .cb-home-hero::before{-webkit-mask-image:radial-gradient(ellipse 55% 85% at 78% 0%,#000 0%,transparent 75%);mask-image:radial-gradient(ellipse 55% 85% at 78% 0%,#000 0%,transparent 75%)}
.cb-home-v3 .cb-home-hero-inner{max-width:1120px;margin:0 auto;padding:0 32px;box-sizing:border-box}
.cb-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:64px;align-items:center}
.cb-hero-main{min-width:0}
.cb-home-v3 .cb-home-title{margin:18px 0 0!important;font-size:44px!important;line-height:1.15!important;letter-spacing:-.025em}
.cb-home-v3 .cb-home-sub{max-width:30em;margin:14px 0 0!important;font-size:16.5px;line-height:1.65}
.cb-home-v3 .cb-home-search{max-width:560px;margin:30px 0 0}
.cb-home-v3 .cb-home-search input[type=search]{height:52px!important;line-height:50px!important;border-radius:var(--cb-radius)!important;padding:0 120px 0 46px!important;font-size:15px!important}
.cb-home-v3 .cb-home-search .cb-home-search-ico{left:16px;width:18px;height:18px}
.cb-home-v3 .cb-home-search button{top:6px;right:6px;height:40px;border-radius:9px}
.cb-home-v3 .cb-home-kbd{right:84px}
.cb-home-search input:focus+.cb-home-kbd,.cb-home-search input:not(:placeholder-shown)+.cb-home-kbd{opacity:0!important}
.cb-home-v3 .cb-home-quick{justify-content:flex-start;margin-top:18px;gap:6px}
.cb-home-v3 .cb-home-quick a{height:28px;padding:0 11px;font-size:12.5px}
.cb-hero-panel{min-width:0;padding:6px;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius-xl);background:rgba(255,255,255,.92);box-shadow:0 1px 2px rgba(10,10,10,.03),0 16px 40px rgba(10,10,10,.07);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.cb-hero-row:active{background:#efeff0}
.cb-home-v3 .cb-home-section{margin-top:56px}
.cb-home-v3 .cb-home-section:first-child{margin-top:52px}
.cb-home-v3 .cb-home-head{margin:0 0 18px}
.cb-home-v3 .cb-home-head h2{font-size:17px!important}
.cb-home-v3 .cb-home-books{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.cb-home-v3 .cb-cover{border-radius:0}
.cb-home-v3 .cb-cover::before{background-image:radial-gradient(rgba(10,10,10,.07) 1px,transparent 1.3px);background-size:12px 12px;-webkit-mask-image:radial-gradient(circle at 100% 0%,#000 0%,transparent 60%);mask-image:radial-gradient(circle at 100% 0%,#000 0%,transparent 60%)}
.cb-home-v3 .cb-cover.has-img::before{display:none}
.cb-home-v3 .cb-tone-0{background:linear-gradient(135deg,#ebe6dd 0%,#f6f3ee 100%)}
.cb-home-v3 .cb-tone-1{background:linear-gradient(135deg,#dfe6ee 0%,#f1f4f8 100%)}
.cb-home-v3 .cb-tone-2{background:linear-gradient(135deg,#e0e9e2 0%,#f2f6f2 100%)}
.cb-home-v3 .cb-tone-3{background:linear-gradient(135deg,#e8e2ec 0%,#f5f2f7 100%)}
.cb-home-v3 .cb-tone-4{background:linear-gradient(135deg,#eee4da 0%,#f8f2ec 100%)}
.cb-home-v3 .cb-tone-5{background:linear-gradient(135deg,#e2e6e7 0%,#f2f4f4 100%)}
.cb-home-v3 .cb-cover .cb-cover-ico{position:absolute;left:18px;top:16px;width:20px;height:20px;color:rgba(10,10,10,.38)}
.cb-cover-initial{position:absolute;left:16px;bottom:6px;font-size:64px;line-height:1;letter-spacing:-.03em;color:rgba(10,10,10,.13);font-weight:400;pointer-events:none;user-select:none}
.cb-home-v3 .cb-home-book{border-radius:var(--cb-radius-lg)}
.cb-home-v3 .cb-home-book .cb-cover{aspect-ratio:16/9}
.cb-home-v3 .cb-home-book-body{padding:16px 18px 16px}
.cb-home-v3 .cb-home-name{font-size:15.5px}
.cb-home-v3 .cb-home-desc{min-height:calc(1.6em * 2)}
.cb-home-v3 .cb-home-shelves{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.cb-home-v3 .cb-home-shelf{grid-template-columns:132px minmax(0,1fr);gap:18px;align-items:center;padding:12px}
.cb-home-v3 .cb-home-shelf .cb-cover{width:100%;aspect-ratio:4/3;border-radius:var(--cb-radius-md);align-self:center}
.cb-home-v3 .cb-home-shelf .cb-cover-initial{font-size:44px;left:12px;bottom:4px}
.cb-home-v3 .cb-home-shelf .cb-cover .cb-cover-ico{left:12px;top:11px;width:18px;height:18px}
.cb-home-v3 .cb-home-shelf-body{padding:4px 8px 4px 0}
.cb-home-v3 .cb-home-shelf .cb-home-desc{min-height:0;-webkit-line-clamp:2}
.cb-home-v3 .cb-home-shelf .cb-home-meta{padding-top:10px}
@media (max-width:1180px){.cb-hero-grid{grid-template-columns:minmax(0,1fr) 360px;gap:48px}}
@media (max-width:960px){.cb-hero-grid{grid-template-columns:minmax(0,1fr);gap:36px}.cb-home-v3 .cb-home-hero{padding:52px 0 44px!important}.cb-home-v3 .cb-home-hero-inner{padding:0 24px}.cb-home-v3 .cb-home-search{max-width:none}.cb-home-v3 .cb-home-books{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.cb-home-v3 .cb-home-shelves{gap:16px}}
@media (max-width:640px){.cb-home-v3 .cb-home-hero{padding:36px 0 32px!important}.cb-home-v3 .cb-home-hero-inner{padding:0 16px}.cb-home-v3 .cb-home-title{font-size:30px!important}.cb-home-v3 .cb-home-sub{font-size:14.5px}.cb-home-v3 .cb-home-search{margin-top:22px}.cb-home-v3 .cb-home-search input[type=search]{height:48px!important;line-height:46px!important;padding-right:16px!important;font-size:16px!important}.cb-home-v3 .cb-home-quick{margin:14px -16px 0;padding:0 16px}.cb-hero-grid{gap:24px}.cb-hero-panel{border-radius:var(--cb-radius-lg)}.cb-home-v3 .cb-home-section,.cb-home-v3 .cb-home-section:first-child{margin-top:36px}.cb-home-v3 .cb-home-books,.cb-home-v3 .cb-home-shelves{grid-template-columns:minmax(0,1fr);gap:10px}.cb-home-v3 .cb-home-book{display:grid;grid-template-columns:104px minmax(0,1fr);gap:14px;align-items:center;padding:10px}.cb-home-v3 .cb-home-book .cb-cover{width:100%;aspect-ratio:4/3;border-radius:var(--cb-radius-sm);border-bottom:0}.cb-home-v3 .cb-home-shelf{grid-template-columns:104px minmax(0,1fr);gap:14px;padding:10px}.cb-home-v3 .cb-cover-initial,.cb-home-v3 .cb-home-shelf .cb-cover-initial{font-size:36px;left:10px;bottom:3px}.cb-home-v3 .cb-cover .cb-cover-ico,.cb-home-v3 .cb-home-shelf .cb-cover .cb-cover-ico{left:10px;top:9px;width:16px;height:16px}.cb-home-v3 .cb-home-book-body{padding:0 4px 0 0}.cb-home-v3 .cb-home-desc{min-height:0;-webkit-line-clamp:1}.cb-home-v3 .cb-home-meta{padding-top:6px}}
html.cb-dark .cb-hero-panel{background:rgba(28,28,30,.92);border-color:rgba(255,255,255,.08);box-shadow:0 16px 40px rgba(0,0,0,.4)}
html.cb-dark .cb-hero-panel-head span{color:#a1a1a1}
html.cb-dark .cb-hero-panel-head a{color:#7d7d7d!important}
html.cb-dark .cb-hero-panel-head a:hover{color:#ededed!important}
html.cb-dark .cb-hero-row+.cb-hero-row{box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
html.cb-dark .cb-hero-row:hover{background:rgba(255,255,255,.05);box-shadow:none}
html.cb-dark .cb-hero-row-name{color:#ededed}
html.cb-dark .cb-hero-row-sub{color:#7d7d7d}
html.cb-dark .cb-hero-row-sub i{background:#555}
html.cb-dark .cb-home-v3 .cb-cover{background:linear-gradient(135deg,#2a2a2e 0%,#202023 100%)!important}
html.cb-dark .cb-home-v3 .cb-cover::before{background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1.3px)}
html.cb-dark .cb-home-v3 .cb-cover .cb-cover-ico{color:rgba(255,255,255,.36)}
html.cb-dark .cb-cover-initial{color:rgba(255,255,255,.1)}

/* ===== tabler39b: hero alignment + mobile panel ===== */
@media (max-width:1024px){.cb-home-v3 .cb-home-hero-inner{padding:0 24px}}
@media (max-width:640px){.cb-home-v3 .cb-home-hero-inner{padding:0 16px}}

/* ===== tabler40: reset generic <header> styles on home + softer depth ===== */
.cb-home-v3 header.cb-home-head{position:static!important;top:auto!important;z-index:auto!important;height:auto!important;min-height:0!important;background:none!important;border:0!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;color:inherit!important}
.cb-home-v3 header.cb-home-head{display:flex!important;align-items:baseline!important;justify-content:space-between!important;padding:0!important;margin:0 0 18px!important}
.cb-home-v3 header.cb-home-head::before,.cb-home-v3 header.cb-home-head::after{content:none!important;display:none!important}
.cb-hero-panel{box-shadow:0 1px 2px rgba(10,10,10,.03),0 12px 32px rgba(10,10,10,.05)!important}
.cb-home-v3 .cb-home-book:hover,.cb-home-v3 .cb-home-shelf:hover{border-color:rgba(10,10,10,.16)!important;box-shadow:0 4px 14px rgba(10,10,10,.04)!important}
html.cb-dark .cb-home-v3 header.cb-home-head,html.cb-dark .cb-hero-panel header.cb-hero-panel-head{background:none!important;box-shadow:none!important;border:0!important}
html.cb-dark .cb-hero-panel{box-shadow:0 12px 32px rgba(0,0,0,.35)!important}

/* ===== tabler41: recent rows, book cards, CTA + avatar stack ===== */
.cb-hero-dot{flex:none;width:8px;height:8px;border-radius:50%;background:#c9c9cc;box-shadow:inset 0 0 0 1px rgba(10,10,10,.06)}
.cb-dot-0{background:#d8c7a3}.cb-dot-1{background:#a8bedb}.cb-dot-2{background:#afcca9}.cb-dot-3{background:#c4b2dc}.cb-dot-4{background:#e2bf9b}.cb-dot-5{background:#b6bec3}
@media (min-width:641px){.cb-home-v3 .cb-home-book .cb-cover{aspect-ratio:2/1}.cb-home-v3 .cb-home-book .cb-cover-initial{font-size:52px}}
.cb-home-v3 .cb-home-book-body{gap:4px}
.cb-home-v3 .cb-home-book .cb-home-meta{margin-top:auto;padding-top:14px}
.cb-home-cta{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-top:64px;padding:28px 32px;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius-xl);background:#fff}
.cb-cta-main{min-width:0}
.cb-home-cta .cb-cta-title{margin:0!important;font-size:18px!important;line-height:1.4!important;font-weight:500!important;color:#1a1a1a!important}
.cb-cta-sub{margin:6px 0 0;font-size:14px;line-height:1.6;color:#6e6e6e}
.cb-cta-btn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border:1px solid rgba(10,10,10,.12);border-radius:var(--cb-radius-md);background:#fff;font-size:13.5px;color:#1a1a1a!important;text-decoration:none!important;transition:border-color .15s ease,background-color .15s ease}
.cb-cta-btn:hover{border-color:rgba(10,10,10,.24)}
.cb-cta-btn--primary{background:#1a1a1a;border-color:#1a1a1a;color:#fff!important}
.cb-cta-btn--primary:hover{background:#000;border-color:#000}
.cb-cta-btn .cb-home-ico{width:14px;height:14px}
.cb-avatars{display:flex}
.cb-avatars img{width:32px;height:32px;border-radius:50%;object-fit:cover;background:#eee;box-shadow:0 0 0 2px #fff}
.cb-avatars img+img{margin-left:-8px}
@media (max-width:640px){.cb-home-cta{flex-direction:column;align-items:flex-start;gap:20px;margin-top:40px;padding:22px 20px}}
html.cb-dark .cb-hero-row-time{color:#7d7d7d}
html.cb-dark .cb-home-cta{background:#1c1c1e;border-color:rgba(255,255,255,.08)}
html.cb-dark .cb-home-cta .cb-cta-title{color:#ededed!important}
html.cb-dark .cb-cta-sub{color:#a1a1a1}
html.cb-dark .cb-cta-btn{background:transparent;border-color:rgba(255,255,255,.14);color:#ededed!important}
html.cb-dark .cb-cta-btn:hover{border-color:rgba(255,255,255,.28)}
html.cb-dark .cb-cta-btn--primary{background:#ededed;border-color:#ededed;color:#111!important}
html.cb-dark .cb-avatars img{box-shadow:0 0 0 2px #1c1c1e}

/* ===== tabler42: community join card + recent list ===== */
.cb-hero-panel.cb-join{display:flex;flex-direction:column;padding:22px!important;border-radius:18px}
.cb-join-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cb-avatars{display:flex;align-items:center}
.cb-avatars--lg img{width:36px;height:36px}
.cb-avatar-slot{flex:none;width:36px;height:36px;margin-left:-8px;border-radius:50%;border:1.5px dashed rgba(10,10,10,.18);background:#fafafa;box-shadow:0 0 0 2px #fff;box-sizing:border-box}
.cb-avatars > :first-child{margin-left:0}
.cb-join-count{font-size:12.5px;color:#919191;white-space:nowrap}
.cb-join .cb-join-title{margin:18px 0 0!important;padding:0!important;font-size:20px!important;line-height:1.35!important;font-weight:500!important;color:#1a1a1a!important}
.cb-join-sub{margin:6px 0 0;font-size:14px;line-height:1.65;color:#6e6e6e}
.cb-join-actions{display:flex;gap:10px;margin-top:18px}
.cb-join-actions .cb-cta-btn{flex:1;justify-content:center;height:40px}
.cb-join-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:20px 0 0;padding:16px 0 0;border-top:1px solid rgba(10,10,10,.06)}
.cb-join-stats div{display:flex;flex-direction:column-reverse;gap:2px;min-width:0}
.cb-join-stats div+div{padding-left:16px;border-left:1px solid rgba(10,10,10,.06)}
.cb-join-stats dt{margin:0;font-size:12px;font-weight:400;color:#919191}
.cb-join-stats dd{margin:0;font-size:20px;line-height:1.2;font-weight:500;color:#1a1a1a;font-variant-numeric:tabular-nums}
.cb-recent{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px;padding:0 22px;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius-lg);background:#fff}
.cb-recent-item{display:flex;align-items:center;gap:16px;min-width:0;padding:16px 0;border-top:1px solid rgba(10,10,10,.06);color:inherit!important;text-decoration:none!important}
.cb-recent-item:nth-child(-n+2){border-top:0}
.cb-recent-main{flex:1;min-width:0}
.cb-recent-name{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:15px;line-height:1.5;color:#1a1a1a;text-decoration:underline transparent;text-underline-offset:3px;transition:text-decoration-color .15s ease}
.cb-recent-item:hover .cb-recent-name{text-decoration-color:rgba(10,10,10,.3)}
.cb-recent-meta{display:flex;align-items:center;gap:6px;min-width:0;margin-top:4px;overflow:hidden;white-space:nowrap;font-size:12.5px;line-height:1.4;color:#919191}
.cb-recent-meta img{flex:none;width:16px;height:16px;border-radius:50%;object-fit:cover}
.cb-recent-meta i{flex:none;width:3px;height:3px;margin:0 2px;border-radius:50%;background:currentColor;opacity:.5}
.cb-recent-book{overflow:hidden;text-overflow:ellipsis}
.cb-recent-time{flex:none;font-size:12.5px;color:#a3a3a3;white-space:nowrap;font-variant-numeric:tabular-nums}
@media (max-width:640px){.cb-hero-panel.cb-join{padding:18px!important}.cb-recent{grid-template-columns:minmax(0,1fr);padding:0 16px}.cb-recent-item:nth-child(2){border-top:1px solid rgba(10,10,10,.06)}.cb-recent-item{padding:14px 0}}
html.cb-dark .cb-avatar-slot{background:#232326;border-color:rgba(255,255,255,.18);box-shadow:0 0 0 2px #1c1c1e}
html.cb-dark .cb-join .cb-join-title,html.cb-dark .cb-join-stats dd,html.cb-dark .cb-recent-name{color:#ededed!important}
html.cb-dark .cb-join-sub{color:#a1a1a1}
html.cb-dark .cb-join-stats,html.cb-dark .cb-join-stats div+div,html.cb-dark .cb-recent-item{border-color:rgba(255,255,255,.06)}
html.cb-dark .cb-recent{background:#1c1c1e;border-color:rgba(255,255,255,.08)}
html.cb-dark .cb-recent-time,html.cb-dark .cb-recent-meta{color:#7d7d7d}

/* ===== tabler43: inset book cards + dark CTA band ===== */
@media (min-width:641px){.cb-home-v3 .cb-home-book{padding:10px}.cb-home-v3 .cb-home-book .cb-cover{border-radius:var(--cb-radius-md);border-bottom:0}.cb-home-v3 .cb-home-book-body{padding:14px 8px 6px}}
.cb-home-cta.cb-cta-v2{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,400px);align-items:center;gap:48px;margin-top:72px;padding:40px 44px;border:0;border-radius:20px;background:#141414;color:#ededed}
.cb-cta-v2::before{content:"";position:absolute;inset:0;background:radial-gradient(640px 260px at 0% 0%,rgba(255,255,255,.08),transparent 70%);pointer-events:none}
.cb-cta-v2 > *{position:relative;min-width:0}
.cb-cta-eyebrow{display:inline-block;font-size:12.5px;letter-spacing:.02em;color:#8e8e93}
.cb-cta-v2 .cb-cta-title{margin:8px 0 0!important;padding:0!important;font-size:26px!important;line-height:1.3!important;font-weight:500!important;color:#fff!important}
.cb-cta-v2 .cb-cta-sub{max-width:440px;margin:10px 0 0;font-size:14.5px;line-height:1.7;color:#a1a1a6}
.cb-cta-links{display:flex;flex-direction:column;gap:8px}
.cb-cta-link{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid rgba(255,255,255,.08);border-radius:var(--cb-radius);background:rgba(255,255,255,.04);color:#ededed!important;text-decoration:none!important;transition:background-color .15s ease,border-color .15s ease}
.cb-cta-link:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16)}
.cb-cta-link .cb-home-ico{flex:none;width:18px;height:18px;color:#a1a1a6}
.cb-cta-link-text{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}
.cb-cta-link-text b{font-size:14.5px;font-weight:500;line-height:1.4}
.cb-cta-link-text small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;color:#8e8e93}
.cb-cta-link .cb-home-ico.cb-cta-arrow{width:16px;height:16px;color:#6e6e73;transition:transform .15s ease,color .15s ease}
.cb-cta-link:hover .cb-cta-arrow{transform:translateX(2px);color:#ededed}
.cb-cta-link--primary{background:#fff;border-color:#fff;color:#111!important}
.cb-cta-link--primary:hover{background:#f2f2f2;border-color:#f2f2f2}
.cb-cta-link--primary .cb-home-ico,.cb-cta-link--primary:hover .cb-cta-arrow{color:#111}
.cb-cta-link--primary .cb-cta-link-text small{color:#6e6e73}
@media (max-width:960px){.cb-home-cta.cb-cta-v2{grid-template-columns:minmax(0,1fr);gap:28px;padding:32px}}
@media (max-width:640px){.cb-home-cta.cb-cta-v2{margin-top:44px;padding:26px 20px;border-radius:var(--cb-radius-xl)}.cb-cta-v2 .cb-cta-title{font-size:22px!important}}
html.cb-dark .cb-home-cta.cb-cta-v2{background:#1c1c1e;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}

/* ===== tabler44: books & shelves index ===== */
.tri-layout-middle-contents > main.cb-lib,main.content-wrap.cb-lib{max-width:none!important;margin:0!important;padding:8px 0 56px!important;background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.cb-lib-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 0 24px;padding:0 0 20px;border-bottom:1px solid rgba(10,10,10,.06)}
.cb-lib-head-main{min-width:0}
.cb-lib .cb-lib-title{display:flex!important;align-items:baseline;gap:10px;margin:0!important;padding:0!important;border:0!important;font-size:28px!important;line-height:1.25!important;font-weight:500!important;letter-spacing:-.01em;color:#1a1a1a!important}
.cb-lib .cb-lib-title .cb-home-count{margin:0;font-size:15px;font-weight:400;color:#a0a0a0;font-variant-numeric:tabular-nums}
.cb-lib-sub{margin:8px 0 0;font-size:14px;line-height:1.6;color:#6e6e6e}
.cb-lib-tools{flex:none}
.cb-lib-tools .list-sort-container{display:flex;align-items:center;gap:8px;margin:0}
.cb-lib-tools .list-sort-label{font-size:12.5px;color:#919191}
@media (min-width:641px) and (max-width:1280px){.cb-lib .cb-home-books{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}}
.cb-lib-list{padding:0 18px;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius-lg);background:#fff}
.cb-lib-row{display:flex;align-items:center;gap:16px;padding:14px 0;border-top:1px solid rgba(10,10,10,.06);color:inherit!important;text-decoration:none!important}
.cb-lib-row:first-child{border-top:0}
.cb-lib .cb-lib-row .cb-cover{flex:none;width:72px;height:48px;border-radius:var(--cb-radius-sm)}
.cb-lib .cb-lib-row .cb-cover-initial{left:8px;bottom:2px;font-size:26px}
.cb-lib-row-main{flex:1;min-width:0}
.cb-lib-row .cb-home-name{display:block;text-decoration:underline transparent;text-underline-offset:3px;transition:text-decoration-color .15s ease}
.cb-lib-row:hover .cb-home-name{text-decoration-color:rgba(10,10,10,.3)}
.cb-lib-row-desc{display:block;margin-top:3px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px;color:#6e6e6e}
.cb-lib-row-meta{display:flex;flex:none;align-items:center;font-size:12px;color:#a0a0a0;white-space:nowrap;font-variant-numeric:tabular-nums}
.cb-lib-row-meta i,.cb-lib .cb-home-meta i{width:3px;height:3px;margin:0 8px;border-radius:50%;background:#c8c8c8}
.cb-lib-shelves{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.cb-lib-shelf{position:relative}
@media (min-width:641px){.cb-home-v3 .cb-lib-shelf{grid-template-columns:184px minmax(0,1fr);gap:22px;align-items:stretch;padding:12px}.cb-home-v3 .cb-lib-shelf .cb-cover{aspect-ratio:4/3;align-self:start}.cb-lib-shelves.is-list .cb-lib-shelf{grid-template-columns:120px minmax(0,1fr)}}
.cb-lib-shelf .cb-home-shelf-body{display:flex;flex-direction:column;min-width:0;padding:6px 8px 4px 0}
.cb-lib-shelf-link{display:block;color:inherit!important;text-decoration:none!important;font-size:16px!important}
.cb-lib-shelf-link::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}
.cb-lib-shelf-link:focus-visible{outline:none}
.cb-lib-shelf:has(.cb-lib-shelf-link:focus-visible){outline:2px solid rgba(10,10,10,.35);outline-offset:2px}
.cb-lib-chips{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.cb-lib-chip{display:inline-flex;align-items:center;gap:7px;max-width:240px;height:28px;padding:0 11px;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius-pill);background:#fafafa;font-size:12.5px;line-height:1;color:#4a4a4a!important;text-decoration:none!important;transition:border-color .15s ease,background-color .15s ease}
.cb-lib-chip span:last-child{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.cb-lib-chip:hover{border-color:rgba(10,10,10,.18);background:#fff}
.cb-lib-chip .cb-hero-dot{width:7px;height:7px}
.cb-lib-chip--more{color:#919191!important;font-variant-numeric:tabular-nums}
.cb-lib-shelf .cb-home-meta{margin-top:auto;padding-top:14px}
.cb-lib-pager{margin-top:28px}
.cb-lib-pager:empty{display:none}
.cb-lib-pager .pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:0;padding:0;list-style:none}
.cb-lib-pager .pagination a,.cb-lib-pager .pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 10px;border:1px solid rgba(10,10,10,.08);border-radius:9px;background:#fff;font-size:13px;color:#4a4a4a!important;text-decoration:none!important}
.cb-lib-pager .pagination a:hover{border-color:rgba(10,10,10,.2)}
.cb-lib-pager .pagination .active span{background:#1a1a1a;border-color:#1a1a1a;color:#fff!important}
.cb-lib-pager .pagination .disabled span{opacity:.45}
.cb-lib-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:56px 24px;border:1px dashed rgba(10,10,10,.14);border-radius:var(--cb-radius-xl);text-align:center}
.cb-lib-empty-ico{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-bottom:8px;border-radius:var(--cb-radius);background:#f3f3f4;color:#8e8e93}
.cb-lib-empty-ico svg{position:static!important;width:22px!important;height:22px!important;color:inherit!important}
.cb-lib-empty-title{margin:0;font-size:16px;color:#1a1a1a}
.cb-lib-empty-sub{margin:0 0 12px;font-size:13.5px;color:#6e6e6e}
@media (max-width:640px){.cb-lib-head{flex-direction:column;align-items:flex-start;gap:14px;margin-bottom:18px;padding-bottom:16px}.cb-lib .cb-lib-title{font-size:24px!important}.cb-lib-list{padding:0 14px}.cb-lib-row-meta{display:none}.cb-lib-chip{max-width:180px}}
html.cb-dark .cb-lib-head{border-bottom-color:rgba(255,255,255,.06)}
html.cb-dark .cb-lib .cb-lib-title,html.cb-dark .cb-lib-empty-title{color:#ededed!important}
html.cb-dark .cb-lib-sub,html.cb-dark .cb-lib-row-desc,html.cb-dark .cb-lib-empty-sub{color:#a1a1a1}
html.cb-dark .cb-lib-list,html.cb-dark .cb-lib-pager .pagination a,html.cb-dark .cb-lib-pager .pagination span{background:#1c1c1e;border-color:rgba(255,255,255,.08);color:#d4d4d4!important}
html.cb-dark .cb-lib-row{border-top-color:rgba(255,255,255,.06)}
html.cb-dark .cb-lib-row-meta{color:#7d7d7d}
html.cb-dark .cb-lib-row-meta i,html.cb-dark .cb-lib .cb-home-meta i{background:#555}
html.cb-dark .cb-lib-chip{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1);color:#d4d4d4!important}
html.cb-dark .cb-lib-chip:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2)}
html.cb-dark .cb-lib-pager .pagination .active span{background:#ededed;border-color:#ededed;color:#111!important}
html.cb-dark .cb-lib-empty{border-color:rgba(255,255,255,.14)}
html.cb-dark .cb-lib-empty-ico{background:#242427;color:#8e8e93}

/* ===== tabler45: entity pages, tags, search, revisions, sort ===== */
.container.cb-wide{max-width:1120px!important}
.container.cb-wide > main.content-wrap.cb-lib{padding-top:40px!important}
.container.cb-wide > .my-s + main.content-wrap.cb-lib{padding-top:16px!important}

/* sort control: one segmented button everywhere */
.list-sort-container{display:inline-flex!important;align-items:center;gap:8px;margin:0!important}
.list-sort-label{margin:0!important;font-size:12.5px!important;font-weight:400!important;letter-spacing:0!important;text-transform:none!important;color:#919191!important}
.list-sort{display:inline-flex!important;align-items:stretch;height:32px;padding:0!important;border:1px solid rgba(10,10,10,.1)!important;border-radius:9px!important;background:#fff!important;box-shadow:none!important}
.list-sort-type{display:flex;align-items:stretch}
.list-sort-toggle{display:inline-flex!important;align-items:center;gap:8px;height:100%;margin:0!important;padding:0 12px!important;border:0!important;border-right:1px solid rgba(10,10,10,.08)!important;border-radius:9px 0 0 9px!important;background:none!important;font-size:13px!important;font-weight:400!important;line-height:1;color:#2a2a2a!important;cursor:pointer}
.list-sort-toggle::after{content:"";width:5px;height:5px;margin:-3px 0 0 2px;border-right:1.5px solid #a0a0a0;border-bottom:1.5px solid #a0a0a0;transform:rotate(45deg)}
.list-sort-dir{display:grid!important;place-items:center;width:32px;margin:0!important;padding:0!important;border:0!important;border-radius:0 9px 9px 0!important;background:none!important;color:#6e6e6e!important;cursor:pointer}
.list-sort-dir svg{width:16px!important;height:16px!important;margin:0!important;fill:currentColor}
.list-sort-toggle:hover,.list-sort-dir:hover{background:#f6f6f6!important}
.list-sort .dropdown-menu{min-width:168px;padding:6px!important;border:1px solid rgba(10,10,10,.08)!important;border-radius:var(--cb-radius)!important;box-shadow:0 14px 36px -14px rgba(10,10,10,.22)!important}
.list-sort .dropdown-menu .text-item{display:block;padding:7px 10px!important;border-radius:var(--cb-radius-sm);font-size:13px;color:#2a2a2a!important;text-decoration:none!important}
.list-sort .dropdown-menu .text-item:hover{background:#f6f6f6}
.list-sort .dropdown-menu li.active .text-item{background:#f1f1f1;font-weight:500}

/* entity detail (book / shelf) */
.cb-ent-head{display:flex;align-items:flex-start;gap:24px;margin:0 0 28px;padding:0 0 24px;border-bottom:1px solid rgba(10,10,10,.06)}
.cb-home-v3 .cb-ent-head .cb-cover{flex:none;width:168px;height:auto;aspect-ratio:4/3;border-radius:var(--cb-radius)}
.cb-ent-head-main{flex:1;min-width:0;padding-top:2px}
.cb-lib .cb-ent-kicker{display:flex;align-items:center;gap:7px;margin:0 0 8px!important;font-size:12.5px;color:#919191}
.cb-lib .cb-ent-title{margin:0!important;padding:0!important;border:0!important;font-size:28px!important;line-height:1.3!important;font-weight:500!important;letter-spacing:-.01em;color:#1a1a1a!important}
.cb-ent-desc{max-width:68ch;margin-top:10px;font-size:14px;line-height:1.75;color:#5e5e5e}
.cb-ent-desc p{margin:0 0 .5em!important}
.cb-ent-desc p:last-child{margin:0!important}
.cb-lib .cb-ent-meta{display:flex;flex-wrap:wrap;align-items:center;margin:14px 0 0!important;font-size:12.5px;color:#a0a0a0;font-variant-numeric:tabular-nums}
.cb-ent-meta i{width:3px;height:3px;margin:0 8px;border-radius:50%;background:#c8c8c8}
.cb-ent-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 14px}
.cb-lib .cb-ent-bar-title{margin:0!important;padding:0!important;border:0!important;font-size:15px!important;line-height:32px!important;font-weight:500!important;color:#1a1a1a!important}
.cb-ent-bar-title span{margin-left:7px;font-weight:400;color:#a0a0a0;font-variant-numeric:tabular-nums}
.cb-ent .book-contents.entity-list{margin:0!important;padding:6px!important;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius-lg);background:#fff}
.cb-ent .book-contents > .entity-list-item{margin:0!important;padding:12px 14px!important;border-radius:var(--cb-radius-md)!important}
.cb-ent .book-contents > .entity-list-item:hover{background:#f6f6f6!important}
.cb-ent .book-contents > .chapter-expansion{margin:-4px 0 4px!important;padding:0 14px 6px!important}
.cb-lib-empty-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px}

/* shared fields */
.cb-field{display:flex;align-items:center;gap:8px;height:34px;margin:0;padding:0 12px;border:1px solid rgba(10,10,10,.1);border-radius:9px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}
.cb-field:focus-within{border-color:rgba(10,10,10,.3);box-shadow:0 0 0 3px rgba(10,10,10,.05)}
.cb-field > svg{flex:none;width:16px!important;height:16px!important;margin:0!important;fill:#a0a0a0}
.cb-field input[type=text]{flex:1;min-width:0;width:auto!important;height:100%!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;outline:none!important;font-size:13.5px!important;color:#1a1a1a}
.cb-field--lg{height:48px;margin:0 0 20px;padding:0 6px 0 16px;border-radius:var(--cb-radius)}
.cb-field--lg > svg{width:18px!important;height:18px!important}
.cb-field--lg input[type=text]{font-size:15px!important}
.cb-field-btn{flex:none;height:36px;padding:0 18px;border:0;border-radius:var(--cb-radius-sm);background:#1a1a1a;font-size:13px;color:#fff;cursor:pointer}
.cb-field-btn:hover{background:#333}
.cb-tools-row{display:flex;align-items:center;gap:12px}
.cb-tools-row .cb-field{width:220px}

/* tags */
.cb-filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:-8px 0 18px;font-size:13px;color:#6e6e6e}
.cb-filter-bar .tag-item{margin:0!important}
.cb-filter-bar form{margin:0}
.cb-filter-clear{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:none;font-size:12.5px;color:#b4473b;cursor:pointer}
.cb-filter-clear svg{width:14px;height:14px;fill:currentColor}
.cb-tag-list{padding:0 18px;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius-lg);background:#fff}
.cb-tag-row{display:flex;align-items:center;gap:16px;padding:14px 0;border-top:1px solid rgba(10,10,10,.06)}
.cb-tag-row:first-child{border-top:0}
.cb-tag-row-name{flex:1;min-width:0}
.cb-tag-row-name .tag-item{margin:0!important}
.cb-tag-row-stats{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}
.cb-tag-stat{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border-radius:var(--cb-radius-pill);background:#f5f5f5;font-size:12px;color:#5e5e5e!important;text-decoration:none!important;font-variant-numeric:tabular-nums;transition:background-color .15s ease}
.cb-tag-stat svg{width:13px!important;height:13px!important;margin:0!important;fill:currentColor;opacity:.55}
.cb-tag-stat:hover{background:#ececec}
.cb-tag-stat--total{padding:0 6px 0 0;background:none;font-weight:500;color:#1a1a1a!important}
.cb-tag-stat--total:hover{background:none;text-decoration:underline!important;text-underline-offset:3px}
.cb-tag-row-more{flex:none;min-width:72px;font-size:12.5px;text-align:right;color:#919191!important;text-decoration:none!important}
.cb-tag-row-more:hover{color:#1a1a1a!important}

/* search */
.cb-search{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:40px;align-items:start;padding:40px 0 56px}
.cb-search > main.content-wrap.cb-lib{padding:0!important}
.cb-search-filters{padding:18px 18px 20px;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius-lg);background:#fff;font-size:13px;color:#4a4a4a}
.cb-search-filters h5{margin:0 0 4px!important;font-size:14px!important;font-weight:500!important;letter-spacing:0!important;text-transform:none!important;color:#1a1a1a!important}
.cb-search-filters h6{margin:18px 0 8px!important;font-size:12px!important;font-weight:500!important;letter-spacing:0!important;text-transform:none!important;color:#919191!important}
.cb-search-filters input[type=text],.cb-search-filters input[type=date]{width:100%;height:34px;padding:0 10px!important;border:1px solid rgba(10,10,10,.1)!important;border-radius:var(--cb-radius-sm)!important;background:#fff!important;box-shadow:none!important;font-size:13px!important}
.cb-search-types{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin:0!important}
.cb-search-filters label.checkbox{display:inline-flex!important;align-items:center;gap:6px;margin:0!important;font-size:13px}
.cb-search-filters .form-table{width:100%;margin-bottom:6px!important}
.cb-search-filters .form-table td{padding:2px 0!important;font-size:12.5px}
.cb-search-filters .text-button{font-size:12.5px}
.cb-search-filters button.button{width:100%;height:36px;margin:20px 0 0!important;border:0!important;border-radius:9px!important;background:#1a1a1a!important;box-shadow:none!important;color:#fff!important;font-weight:500}

/* revisions */
.cb-rev-list{margin:0!important;padding:0 18px!important;list-style:none;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius-lg);background:#fff}
.cb-rev{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:16px;align-items:start;margin:0!important;padding:16px 0;border-top:1px solid rgba(10,10,10,.06)}
.cb-rev:first-child{border-top:0}
.cb-rev-num{padding-top:5px;font-size:13px;font-weight:500;color:#a0a0a0;font-variant-numeric:tabular-nums}
.cb-rev.is-current .cb-rev-num{color:#1a1a1a}
.cb-rev-main{min-width:0}
.cb-rev-who{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.cb-rev-who img{flex:none;width:28px;height:28px;border-radius:50%;object-fit:cover}
.cb-rev-name{font-size:14px;font-weight:500;color:#1a1a1a}
.cb-rev-time{font-size:12.5px;color:#919191}
.cb-badge{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:var(--cb-radius-xs);background:#f3f3f3;font-size:11.5px;line-height:1;color:#6e6e6e}
.cb-badge--on{background:#e7f2e9;color:#2f6b3a}
.cb-lib .cb-rev-sum{margin:8px 0 0 38px!important;font-size:13.5px;line-height:1.65;color:#4a4a4a}
.cb-lib .cb-rev-sum.is-empty{color:#b8b8b8}
.cb-rev-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:2px}
.cb-rev-actions > a,.cb-rev-actions > .dropdown-container > a{display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:7px;font-size:12.5px;color:#4a4a4a!important;text-decoration:none!important;transition:background-color .15s ease}
.cb-rev-actions > a:hover,.cb-rev-actions > .dropdown-container > a:hover{background:#f3f3f3}
.cb-rev-actions > .dropdown-container.is-danger > a{color:#b4473b!important}
.cb-rev-actions .dropdown-menu{border-radius:var(--cb-radius)!important}

/* mobile */
@media (max-width:900px){.cb-search{grid-template-columns:minmax(0,1fr);gap:24px;padding-top:24px}}
@media (max-width:640px){
.cb-ent-head{gap:16px}
.cb-home-v3 .cb-ent-head .cb-cover{width:88px;border-radius:var(--cb-radius-md)}
.cb-lib .cb-ent-title{font-size:22px!important}
.cb-tools-row{width:100%}
.cb-tools-row .cb-field{flex:1;width:auto}
.cb-tag-row{flex-wrap:wrap;gap:10px}
.cb-tag-row-stats{justify-content:flex-start}
.cb-tag-row-more{min-width:0;text-align:left}
.cb-rev{grid-template-columns:minmax(0,1fr);gap:10px}
.cb-rev-num{display:none}
.cb-lib .cb-rev-sum{margin-left:0!important}
.cb-rev-actions{justify-content:flex-start;margin-left:-10px}
.container.cb-wide > main.content-wrap.cb-lib{padding-top:24px!important}
}

/* dark */
html.cb-dark .list-sort,html.cb-dark .cb-field,html.cb-dark .cb-tag-list,html.cb-dark .cb-rev-list,html.cb-dark .cb-search-filters,html.cb-dark .cb-search-filters input[type=text],html.cb-dark .cb-search-filters input[type=date],html.cb-dark .cb-search-results .entity-list,html.cb-dark .cb-ent .book-contents.entity-list{background:#1c1c1e!important;border-color:rgba(255,255,255,.1)!important}
html.cb-dark .cb-ent-head,html.cb-dark .cb-tag-row,html.cb-dark .cb-rev{border-color:rgba(255,255,255,.08)!important}
html.cb-dark .list-sort-toggle{border-right-color:rgba(255,255,255,.1)!important}
html.cb-dark .cb-lib .cb-ent-title,html.cb-dark .cb-lib .cb-ent-bar-title,html.cb-dark .cb-rev-name,html.cb-dark .list-sort-toggle,html.cb-dark .cb-field input[type=text],html.cb-dark .cb-search-filters h5,html.cb-dark .cb-tag-stat--total,html.cb-dark .cb-rev.is-current .cb-rev-num{color:#ececec!important}
html.cb-dark .cb-ent-desc,html.cb-dark .cb-lib .cb-rev-sum,html.cb-dark .cb-search-filters{color:#b4b4b4}
html.cb-dark .cb-tag-stat,html.cb-dark .cb-badge{background:rgba(255,255,255,.07);color:#c4c4c4!important}
html.cb-dark .cb-badge--on{background:rgba(120,190,130,.16);color:#9fd3a8!important}
html.cb-dark .list-sort-toggle:hover,html.cb-dark .list-sort-dir:hover,html.cb-dark .cb-rev-actions > a:hover,html.cb-dark .cb-rev-actions > .dropdown-container > a:hover,html.cb-dark .cb-ent .book-contents > .entity-list-item:hover,html.cb-dark .cb-search-results .entity-list-item:hover,html.cb-dark .cb-tag-stat:hover{background:rgba(255,255,255,.06)!important}
html.cb-dark .cb-rev-actions > a,html.cb-dark .cb-rev-actions > .dropdown-container > a{color:#c4c4c4!important}
html.cb-dark .cb-field-btn,html.cb-dark .cb-search-filters button.button{background:#ececec!important;color:#111!important}
/* ===== tabler46: sort fix, shelves grid/list ===== */
.list-sort-container{display:inline-flex!important;align-items:center;gap:8px;vertical-align:middle}
.list-sort-container form{display:inline-flex!important;align-items:center;margin:0!important}
.list-sort-container .list-sort-label{line-height:32px!important}
.list-sort-container .list-sort{display:inline-flex!important;grid-template-columns:none!important;align-items:stretch;box-sizing:border-box!important;height:32px!important;margin:0!important;margin-inline-start:0!important;border:1px solid rgba(10,10,10,.1)!important;border-radius:9px!important;font-size:13px!important;overflow:visible}
.list-sort-container .list-sort-type{display:flex!important;align-items:stretch;min-width:0;text-align:left}
.list-sort-container .list-sort-toggle{-webkit-appearance:none;appearance:none;display:inline-flex!important;align-items:center;gap:8px;box-sizing:border-box!important;width:auto!important;min-width:0!important;height:30px!important;margin:0!important;padding:0 11px 0 12px!important;border:0!important;border-inline-end:1px solid rgba(10,10,10,.08)!important;border-radius:8px 0 0 8px!important;line-height:30px!important;white-space:nowrap;text-align:left!important}
.list-sort-container .list-sort-dir{-webkit-appearance:none;appearance:none;display:grid!important;place-items:center;box-sizing:border-box!important;width:32px!important;height:30px!important;padding:0!important;border:0!important;border-inline-start:0!important;border-radius:0 8px 8px 0!important}
.list-sort-container .list-sort-dir .svg-icon{display:block;width:16px!important;height:16px!important;margin:0!important;top:0!important}
html.cb-dark .list-sort-container .list-sort{border-color:rgba(255,255,255,.1)!important}
html.cb-dark .list-sort-container .list-sort-toggle{border-inline-end-color:rgba(255,255,255,.1)!important}

@media (min-width:641px){
.cb-lib-shelves.is-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.cb-home-v3 .cb-lib-shelves.is-grid .cb-lib-shelf{display:flex!important;flex-direction:column;gap:0;padding:0!important;overflow:hidden}
.cb-home-v3 .cb-lib-shelves.is-grid .cb-lib-shelf .cb-cover{width:100%;aspect-ratio:16/9;align-self:stretch;border-radius:0!important}
.cb-lib-shelves.is-grid .cb-lib-shelf .cb-home-shelf-body{flex:1;padding:16px 18px 18px!important}
.cb-lib-shelves.is-grid .cb-lib-shelf .cb-home-desc{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.cb-lib-shelves.is-list{gap:0;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius-lg);background:#fff;overflow:hidden}
.cb-home-v3 .cb-lib-shelves.is-list .cb-lib-shelf{grid-template-columns:104px minmax(0,1fr)!important;gap:18px;align-items:center;padding:12px 16px!important;border:0!important;border-bottom:1px solid rgba(10,10,10,.06)!important;border-radius:0!important;box-shadow:none!important;transform:none!important}
.cb-home-v3 .cb-lib-shelves.is-list .cb-lib-shelf:last-child{border-bottom:0!important}
.cb-home-v3 .cb-lib-shelves.is-list .cb-lib-shelf:hover{background:#fafafa}
.cb-home-v3 .cb-lib-shelves.is-list .cb-lib-shelf .cb-cover{aspect-ratio:4/3;align-self:center;border-radius:var(--cb-radius-sm)!important}
.cb-home-v3 .cb-lib-shelves.is-list .cb-lib-shelf .cb-cover-initial{font-size:22px}
.cb-lib-shelves.is-list .cb-lib-shelf .cb-home-shelf-body{padding:0!important}
.cb-lib-shelves.is-list .cb-lib-shelf .cb-home-desc{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden;margin-top:2px}
.cb-lib-shelves.is-list .cb-lib-chips{margin-top:8px}
.cb-lib-shelves.is-list .cb-lib-shelf .cb-home-meta{padding-top:8px}
html.cb-dark .cb-lib-shelves.is-list{background:#1c1c1e;border-color:rgba(255,255,255,.1)}
html.cb-dark .cb-home-v3 .cb-lib-shelves.is-list .cb-lib-shelf{border-bottom-color:rgba(255,255,255,.07)!important}
html.cb-dark .cb-home-v3 .cb-lib-shelves.is-list .cb-lib-shelf:hover{background:rgba(255,255,255,.04)}
}
/* ===== tabler47: search results, book toc ===== */
.cb-sr-list{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.cb-sr{position:relative;display:flex;align-items:flex-start;gap:14px;padding:16px 44px 16px 18px;border:1px solid rgba(10,10,10,.07);border-radius:var(--cb-radius-lg);background:#fff;color:inherit!important;text-decoration:none!important;transition:border-color .15s ease,box-shadow .15s ease}
.cb-sr:hover{border-color:rgba(10,10,10,.14);box-shadow:0 12px 30px -20px rgba(10,10,10,.3)}
.cb-sr-ico{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#f4f4f5;color:#6e6e6e}
.cb-sr-ico svg{width:17px!important;height:17px!important;margin:0!important;top:0!important;fill:currentColor}
.cb-sr--book .cb-sr-ico{background:#eef3ff;color:#3b6fd8}
.cb-sr--bookshelf .cb-sr-ico{background:#f3efff;color:#7356e8}
.cb-sr--chapter .cb-sr-ico{background:#fff3e6;color:#c26d17}
.cb-sr--page .cb-sr-ico{background:#ecf8f1;color:#2b8a58}
.cb-sr-body{display:flex;flex:1;flex-direction:column;gap:4px;min-width:0}
.cb-sr-top{display:flex;align-items:center;gap:8px;min-width:0;font-size:12px;line-height:18px;color:#999}
.cb-sr-type{flex:none;padding:0 7px;border-radius:var(--cb-radius-pill);background:#f4f4f5;font-size:11.5px;color:#6e6e6e}
.cb-sr-path{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.cb-sr-path i{margin:0 5px;font-style:normal;color:#c8c8c8}
.cb-sr-title{font-size:15.5px;font-weight:500;line-height:1.45;color:#1a1a1a}
.cb-sr mark,.cb-sr-excerpt strong{padding:0 1px;border-radius:3px;background:rgba(255,204,64,.32);color:inherit;font-weight:inherit}
.cb-sr-excerpt{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:13px;line-height:1.65;color:#6e6e6e}
.cb-sr-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:4px;font-size:12px;color:#a3a3a3}
.cb-sr-tag{display:inline-flex;gap:5px;padding:1px 8px;border-radius:var(--cb-radius-xs);background:#f4f4f5;color:#6e6e6e}
.cb-sr-tag em{font-style:normal;color:#a3a3a3}
.cb-sr-arrow{position:absolute;top:50%;right:18px;transform:translate(-4px,-50%);font-size:14px;color:#b4b4b4;opacity:0;transition:opacity .15s ease,transform .15s ease}
.cb-sr:hover .cb-sr-arrow{opacity:1;transform:translate(0,-50%)}
.cb-sr-empty{margin-top:20px}

.cb-search-filters{position:sticky;top:20px;align-self:start;padding:18px 18px 20px!important;border:1px solid rgba(10,10,10,.07)!important;border-radius:var(--cb-radius-lg)!important;background:#fff!important;box-shadow:none!important}
.cb-search-filters h5{margin:0 0 4px!important;font-size:14px!important;font-weight:500!important;letter-spacing:0!important;text-transform:none!important;color:#1a1a1a!important}
.cb-search-filters h6{margin:18px 0 8px!important;padding:0!important;font-size:12px!important;font-weight:500!important;letter-spacing:0!important;text-transform:none!important;color:#999!important}
.cb-search-filters input[type=text],.cb-search-filters input[type=date]{box-sizing:border-box;width:100%!important;height:34px!important;padding:0 10px!important;border:1px solid rgba(10,10,10,.1)!important;border-radius:var(--cb-radius-sm)!important;background:#fff!important;font-size:13px!important;box-shadow:none!important}
.cb-search-filters input[type=text]:focus,.cb-search-filters input[type=date]:focus{border-color:rgba(10,10,10,.3)!important;outline:none}
.cb-search-filters .cb-search-types{display:grid!important;grid-template-columns:1fr 1fr;gap:6px 10px;margin:0!important}
.cb-search-filters label,.cb-search-filters .toggle-switch{font-size:13px!important;color:#2a2a2a}
.cb-search-filters .cb-search-bools{display:flex;flex-direction:column;gap:4px}
.cb-search-filters .cb-search-dates{display:flex;flex-direction:column;gap:6px}
.cb-search-filters .cb-search-dates > *{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 8px;margin:0!important;font-size:12.5px;color:#6e6e6e}
.cb-search-filters .text-button,.cb-search-filters button.text-link{padding:2px 0!important;font-size:12.5px!important;font-weight:400!important;color:#3b6fd8!important}
.cb-search-filters .text-button svg{width:14px;height:14px}
.cb-search-filters .button{display:block;width:100%;height:36px;margin:20px 0 0!important;border-radius:9px!important;font-size:13px!important}

.cb-ent .cb-toc{list-style:none;margin:0;padding:6px;border:1px solid rgba(10,10,10,.07);border-radius:var(--cb-radius-lg);background:#fff}
.cb-ent .cb-toc ol{list-style:none;margin:0;padding:0}
.cb-ent .cb-toc li{margin:0;padding:0}
.cb-toc-page > a{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:14px;padding:11px 14px;border-radius:var(--cb-radius-md);color:inherit!important;text-decoration:none!important;transition:background-color .12s ease}
.cb-toc-page > a:hover{background:#f6f6f7}
.cb-toc-page + .cb-toc-page > a{box-shadow:inset 0 1px 0 rgba(10,10,10,.045)}
.cb-toc-page > a:hover,.cb-toc-page:hover + .cb-toc-page > a{box-shadow:none}
.cb-toc-num{font-size:12px;color:#b8b8b8;font-variant-numeric:tabular-nums}
.cb-toc-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.cb-toc-title{font-size:14.5px;line-height:1.5;color:#1a1a1a}
.cb-toc-ex{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;line-height:1.5;color:#999}
.cb-toc-side{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:12px;color:#b0b0b0}
.cb-toc-badge{padding:0 7px;border-radius:var(--cb-radius-pill);background:#fff3e6;color:#c26d17}
.cb-toc-page.is-draft .cb-toc-title{color:#c26d17}
.cb-ent .cb-toc > .cb-toc-chapter{margin:2px 0}
.cb-ent .cb-toc > li + .cb-toc-chapter,.cb-ent .cb-toc > .cb-toc-chapter + li{margin-top:6px;padding-top:6px;border-top:1px solid rgba(10,10,10,.06)}
.cb-toc-chap-head{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--cb-radius-md);font-size:14.5px;font-weight:500;color:#1a1a1a!important;text-decoration:none!important}
.cb-toc-chap-head:hover{background:#f6f6f7}
.cb-toc-chap-ico{display:grid;place-items:center;width:30px;color:#c26d17}
.cb-toc-chap-ico svg{width:16px!important;height:16px!important;margin:0!important;top:0!important;fill:currentColor}
.cb-toc-chap-name{flex:1;min-width:0}
.cb-toc-chap-count{flex:none;font-size:12px;font-weight:400;color:#b0b0b0}
.cb-toc-sub .cb-toc-page > a{padding-left:28px}
.tri-layout-left .activity-list > .activity-list-item:nth-child(n+7){display:none!important}

@media (max-width:640px){
.cb-sr{padding:14px 14px 14px 14px}
.cb-sr-arrow{display:none}
.cb-toc-page > a{grid-template-columns:24px minmax(0,1fr);gap:10px;padding:10px}
.cb-toc-side{display:none}
.cb-toc-sub .cb-toc-page > a{padding-left:18px}
}

html.cb-dark .cb-sr,html.cb-dark .cb-ent .cb-toc{background:#1c1c1e;border-color:rgba(255,255,255,.08)}
html.cb-dark .cb-sr:hover{border-color:rgba(255,255,255,.16)}
html.cb-dark .cb-sr-title,html.cb-dark .cb-toc-title,html.cb-dark .cb-toc-chap-head{color:#ececec!important}
html.cb-dark .cb-sr-excerpt,html.cb-dark .cb-toc-ex{color:#8e8e93}
html.cb-dark .cb-sr-type,html.cb-dark .cb-sr-tag,html.cb-dark .cb-sr-ico{background:rgba(255,255,255,.07);color:#a1a1a6}
html.cb-dark .cb-sr mark,html.cb-dark .cb-sr-excerpt strong{background:rgba(255,204,64,.22)}
html.cb-dark .cb-toc-page > a:hover,html.cb-dark .cb-toc-chap-head:hover{background:rgba(255,255,255,.05)}
html.cb-dark .cb-toc-page + .cb-toc-page > a{box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
html.cb-dark .cb-ent .cb-toc > li + .cb-toc-chapter,html.cb-dark .cb-ent .cb-toc > .cb-toc-chapter + li{border-top-color:rgba(255,255,255,.07)}
html.cb-dark .cb-search-filters{background:#1c1c1e!important;border-color:rgba(255,255,255,.08)!important}
html.cb-dark .cb-search-filters h5,html.cb-dark .cb-search-filters label{color:#ececec!important}
html.cb-dark .cb-search-filters input[type=text],html.cb-dark .cb-search-filters input[type=date]{background:#232325!important;border-color:rgba(255,255,255,.1)!important;color:#ececec!important}
/* ===== tabler48: book head, calm toc, sidebars ===== */
.cb-ent .cb-ent-head{display:grid!important;grid-template-columns:112px minmax(0,1fr)!important;gap:22px!important;align-items:center!important;margin:6px 0 30px!important;padding:0!important;border:0!important}
.cb-ent .cb-ent-head .cb-cover{width:112px!important;height:auto!important;aspect-ratio:4/3!important;border-radius:var(--cb-radius)!important}
.cb-ent .cb-ent-head .cb-cover-initial{font-size:38px!important}
.cb-ent .cb-ent-head-main{display:flex;flex-direction:column;gap:6px;min-width:0}
.cb-ent .cb-ent-kicker{margin:0!important}
.cb-ent .cb-ent-title{margin:0!important;font-size:26px!important;line-height:1.25!important}
.cb-ent .cb-ent-desc{margin:0!important;max-width:60ch;font-size:13.5px;line-height:1.7;color:#6e6e6e}
.cb-ent .cb-ent-desc p{margin:0!important}
.cb-ent-foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:6px}
.cb-ent .cb-ent-foot .cb-ent-meta{margin:0!important}
.cb-ent-read{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px;border-radius:9px;background:#1a1a1a;color:#fff!important;font-size:13px;text-decoration:none!important;transition:background-color .15s ease}
.cb-ent-read:hover{background:#333}
.cb-ent-read span{transition:transform .15s ease}
.cb-ent-read:hover span{transform:translateX(2px)}
.cb-ent .book-content{margin-top:0!important;padding-top:0!important}
.cb-ent .cb-ent-bar{margin:0 0 10px!important}

.cb-toc-ex{display:none!important}
.cb-toc-page > a{padding:10px 14px!important;gap:12px!important;grid-template-columns:26px minmax(0,1fr) auto!important}
.cb-toc-title{font-size:14px!important;line-height:1.5!important;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.cb-toc-num{font-size:11.5px!important;color:#c0c0c0!important}
.cb-toc-side{font-size:11.5px!important;color:#b8b8b8!important}
.cb-toc-page > a:hover .cb-toc-title{color:#000}

.tri-layout-left h5,.tri-layout-right h5{margin:0 0 10px!important;padding:0!important;font-size:12px!important;font-weight:500!important;letter-spacing:0!important;text-transform:none!important;color:#9a9a9a!important}
.tri-layout-left .mb-xl,.tri-layout-right .mb-xl{margin-bottom:28px!important}
.tri-layout-left form.search-box{display:flex!important;align-items:center;gap:8px;box-sizing:border-box;width:100%;height:36px!important;margin:0!important;padding:0 10px!important;border:1px solid rgba(10,10,10,.1)!important;border-radius:var(--cb-radius-md)!important;background:#fff!important;box-shadow:none!important;transition:border-color .15s ease,box-shadow .15s ease}
.tri-layout-left form.search-box:focus-within{border-color:rgba(10,10,10,.28)!important;box-shadow:0 0 0 3px rgba(10,10,10,.05)!important}
.tri-layout-left form.search-box input{flex:1;order:2;min-width:0;height:34px!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;font-size:13px!important;color:#1a1a1a!important;outline:none!important}
.tri-layout-left form.search-box input::placeholder{color:#a8a8a8}
.tri-layout-left form.search-box button{order:1;position:static!important;display:grid!important;place-items:center;width:16px!important;height:16px!important;margin:0!important;padding:0!important;border:0!important;background:none!important;color:#a0a0a0!important;transform:none!important}
.tri-layout-left form.search-box button svg{width:15px!important;height:15px!important;margin:0!important;top:0!important;fill:currentColor}

.tri-layout-left .actions .entity-list.compact{display:flex;flex-wrap:wrap;gap:6px}
.tri-layout-left .actions .entity-list.compact .entity-list-item{display:inline-flex!important;align-items:center;gap:6px;width:auto!important;margin:0!important;padding:5px 10px!important;border:0!important;border-radius:var(--cb-radius-sm)!important;background:#ececee!important;box-shadow:none!important;font-size:12.5px;color:#3a3a3a!important;text-decoration:none!important}
.tri-layout-left .actions .entity-list.compact .entity-list-item::before,.tri-layout-left .actions .entity-list.compact .entity-list-item::after{display:none!important}
.tri-layout-left .actions .entity-list.compact .entity-list-item:hover{background:#e2e2e5!important}
.tri-layout-left .actions .entity-list.compact .entity-list-item .icon{display:grid;place-items:center;width:14px;margin:0!important;color:#7356e8!important}
.tri-layout-left .actions .entity-list.compact .entity-list-item .icon svg{width:14px!important;height:14px!important;margin:0!important;top:0!important}
.tri-layout-left .actions .entity-list.compact .entity-list-item .content{padding:0!important}
.tri-layout-left .actions .entity-list.compact .entity-list-item-name{margin:0!important;font-size:12.5px!important;font-weight:400!important;color:inherit!important}
.tri-layout-left .actions .entity-list.compact .cb-item-meta{display:none!important}

.activity-list{display:flex;flex-direction:column;gap:2px}
.activity-list > .activity-list-item{display:block!important;margin:0!important;padding:7px 8px!important;border:0!important;border-radius:var(--cb-radius-sm);background:none!important}
.activity-list > .activity-list-item:hover{background:rgba(10,10,10,.035)!important}
.tri-layout-left .activity-list > .activity-list-item:nth-child(n+7){display:none!important}
.cb-act-body{min-width:0}
.cb-act-title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px;line-height:1.5}
.cb-act-title a,.cb-act-title span{color:#2a2a2a!important;text-decoration:none!important}
.cb-act-title a:hover{color:#000!important}
.cb-act-meta{display:flex;align-items:center;gap:5px;margin-top:3px;font-size:11.5px;line-height:16px;color:#a8a8a8}
.cb-act-av{flex:none;width:16px!important;height:16px!important;margin:0!important;border-radius:50%;object-fit:cover}
.cb-act-user{color:#8a8a8a!important;text-decoration:none!important}
.cb-act-sep{color:#cfcfcf}

@media (max-width:640px){
.cb-ent .cb-ent-head{grid-template-columns:76px minmax(0,1fr)!important;gap:14px!important}
.cb-ent .cb-ent-head .cb-cover{width:76px!important}
.cb-ent .cb-ent-title{font-size:21px!important}
}

html.cb-dark .cb-ent .cb-ent-desc{color:#a1a1a6}
html.cb-dark .cb-ent-read{background:#ececec;color:#111!important}
html.cb-dark .cb-ent-read:hover{background:#fff}
html.cb-dark .tri-layout-left form.search-box{background:#1c1c1e!important;border-color:rgba(255,255,255,.1)!important}
html.cb-dark .tri-layout-left form.search-box input{color:#ececec!important}
html.cb-dark .tri-layout-left .actions .entity-list.compact .entity-list-item{background:rgba(255,255,255,.07)!important;color:#d4d4d8!important}
html.cb-dark .tri-layout-left .actions .entity-list.compact .entity-list-item:hover{background:rgba(255,255,255,.11)!important}
html.cb-dark .activity-list > .activity-list-item:hover{background:rgba(255,255,255,.04)!important}
html.cb-dark .cb-act-title a,html.cb-dark .cb-act-title span{color:#d4d4d8!important}
html.cb-dark .cb-toc-page > a:hover .cb-toc-title{color:#fff}

/* ===== tabler49: activity unlock + page-content element system ===== */

/* 1. 近期活动：解除旧网格的 24px 首列锁定（新模板只有 .cb-act-body 一个子元素） */
.activity-list > .activity-list-item{display:block!important;grid-template-columns:none!important;width:auto!important}
.activity-list > .activity-list-item > div:first-child,
.activity-list > .activity-list-item > .cb-act-body{display:block!important;width:auto!important;max-width:100%!important;min-width:0!important;flex:none!important}
.activity-list .cb-act-title{display:block!important;-webkit-line-clamp:unset!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:13px!important;line-height:1.5!important}
.activity-list .cb-act-meta{display:flex!important;align-items:center;gap:5px;min-width:0;margin-top:3px;white-space:nowrap}
.activity-list .cb-act-meta .cb-act-user{min-width:0;overflow:hidden;text-overflow:ellipsis}
.activity-list .cb-act-meta time{flex:none}
.activity-list .cb-act-sep{margin:0!important}

/* 2. 正文基线 */
.page-content{font-size:14px!important;line-height:1.8!important;font-weight:400!important;color:var(--cb-ink)!important;overflow-wrap:break-word}
.page-content > :first-child{margin-top:0!important}
.page-content > :last-child{margin-bottom:0!important}

/* 3. 标题：只靠字号分层，字重统一 400 */
.page-content h1,.page-content h2,.page-content h3,.page-content h4,.page-content h5,.page-content h6{font-weight:400!important;color:var(--cb-ink-title)!important;letter-spacing:0!important;border:0!important;padding:0!important;scroll-margin-top:72px}
.page-content h1{font-size:24px!important;line-height:1.35!important;margin:2em 0 .7em!important}
.page-content h2{font-size:20px!important;line-height:1.4!important;margin:1.9em 0 .65em!important}
.page-content h3{font-size:17px!important;line-height:1.45!important;margin:1.6em 0 .55em!important}
.page-content h4{font-size:15px!important;line-height:1.5!important;margin:1.4em 0 .5em!important}
.page-content h5{font-size:14px!important;line-height:1.6!important;margin:1.3em 0 .45em!important}
.page-content h6{font-size:13px!important;line-height:1.6!important;margin:1.3em 0 .45em!important;color:#8a8a8a!important}
.page-content :is(h1,h2,h3,h4,h5,h6) + :is(h1,h2,h3,h4,h5,h6){margin-top:.6em!important}

/* 4. 段落 */
.page-content p{font-size:14px!important;line-height:1.8!important;margin:0 0 1em!important}

/* 5. 列表 */
.page-content ul,.page-content ol{margin:0 0 1em!important;padding-left:1.5em!important}
.page-content ul{list-style:disc!important}
.page-content ul ul{list-style:circle!important}
.page-content ul ul ul{list-style:square!important}
.page-content ol{list-style:decimal!important}
.page-content li{margin:.3em 0!important;padding:0!important;font-size:14px!important;line-height:1.8!important}
.page-content li > p{margin:.3em 0!important}
.page-content li > :is(ul,ol){margin:.3em 0!important}
.page-content ul > li::marker{color:#b0b0b0}
.page-content ol > li::marker{color:#9a9a9a;font-variant-numeric:tabular-nums}
.page-content li.task-list-item,.page-content li:has(> input[type=checkbox]){list-style:none!important;margin-left:-1.3em!important}
.page-content li > input[type=checkbox]{margin:0 .5em 0 0!important;vertical-align:-1px}

/* 6. 引用：左边线 + 浅底，去掉错位的引号图标 */
.page-content blockquote{position:relative!important;margin:1.25em 0!important;padding:.75em 1em .75em 1.1em!important;border:0!important;border-left:3px solid rgba(10,10,10,.14)!important;border-radius:0 8px 8px 0!important;background:var(--cb-fill)!important;box-shadow:none!important;color:var(--cb-ink)!important;font-size:14px!important;line-height:1.8!important}
.page-content blockquote::before,.page-content blockquote::after{content:none!important;display:none!important}
.page-content blockquote p{font-size:14px!important;line-height:1.8!important;margin:.4em 0!important}
.page-content blockquote > :first-child{margin-top:0!important}
.page-content blockquote > :last-child{margin-bottom:0!important}

/* 7. 提示框：给图标留出左侧位置，图标对齐首行 */
.page-content .callout{position:relative!important;display:block!important;overflow:visible!important;margin:1.25em 0!important;padding:.8em 1em .8em 2.6em!important;border:0!important;border-left:3px solid rgba(10,10,10,.18)!important;border-radius:0 8px 8px 0!important;background:var(--cb-fill)!important;box-shadow:none!important;color:var(--cb-ink)!important;font-size:14px!important;line-height:1.75!important}
.page-content .callout::before{position:absolute!important;left:.95em!important;top:15px!important;margin:0!important;width:16px!important;height:16px!important;background-size:16px 16px!important;background-position:center!important;opacity:.85!important}
.page-content .callout p{font-size:14px!important;line-height:1.75!important;margin:.35em 0!important}
.page-content .callout > :first-child{margin-top:0!important}
.page-content .callout > :last-child{margin-bottom:0!important}
.page-content .callout.info{border-left-color:#3b82f6!important;background:#eff6ff!important}
.page-content .callout.success{border-left-color:#16a34a!important;background:#f0fdf4!important}
.page-content .callout.warning{border-left-color:#d97706!important;background:#fffbeb!important}
.page-content .callout.danger{border-left-color:#dc2626!important;background:#fef2f2!important}

/* 8. 行内代码 / 按键 / 高亮 */
.page-content code{font-family:var(--cb-mono)!important;font-size:.86em!important;font-weight:400!important;padding:.12em .38em!important;border:0!important;border-radius:var(--cb-radius-2xs)!important;background:var(--cb-well)!important;color:var(--cb-ink-near)!important;vertical-align:baseline}
.page-content kbd{font-family:var(--cb-mono)!important;font-size:.82em!important;padding:.05em .4em!important;border:1px solid rgba(10,10,10,.12)!important;border-bottom-width:2px!important;border-radius:var(--cb-radius-2xs)!important;background:#fff!important;color:var(--cb-ink-near)!important;box-shadow:none!important}
.page-content mark{background:#fef3c7!important;color:inherit!important;padding:0 .15em!important;border-radius:3px!important}

/* 9. 代码块 */
.page-content pre{margin:1.25em 0!important;padding:14px 16px!important;border:0!important;border-radius:var(--cb-radius-md)!important;background:#1a1a1a!important;color:#e8e8e8!important;box-shadow:none!important;font-size:12.5px!important;line-height:1.7!important;overflow-x:auto!important;tab-size:4}
.page-content pre code{display:block!important;padding:0!important;border-radius:0!important;background:transparent!important;color:inherit!important;font-size:inherit!important;white-space:pre!important}
.page-content .CodeMirror{margin:1.25em 0!important;border-radius:var(--cb-radius-md)!important;font-size:12.5px!important;line-height:1.7!important}

/* 10. 表格 */
.page-content table{width:100%!important;margin:1.25em 0!important;border-collapse:separate!important;border-spacing:0!important;border:1px solid rgba(10,10,10,.08)!important;border-radius:var(--cb-radius-sm)!important;overflow:hidden!important;font-size:13px!important;background:transparent!important}
.page-content th,.page-content td{padding:8px 12px!important;border:0!important;border-bottom:1px solid rgba(10,10,10,.06)!important;border-right:1px solid rgba(10,10,10,.06)!important;text-align:left;vertical-align:top!important;line-height:1.6!important;font-size:13px!important}
.page-content th{background:#fafafa!important;color:var(--cb-ink-title)!important;font-size:12.5px!important;font-weight:400!important}
.page-content tr > :last-child{border-right:0!important}
.page-content tbody tr:last-child > *,.page-content table > tr:last-child > *{border-bottom:0!important}
.page-content td p,.page-content th p{margin:0!important;font-size:inherit!important;line-height:inherit!important}

/* 11. 图片 / 插图 */
.page-content img{max-width:100%!important;height:auto!important;border-radius:var(--cb-radius-sm)!important;vertical-align:middle;box-shadow:none!important}
.page-content figure{margin:1.5em 0!important}
.page-content figcaption{margin-top:.5em!important;font-size:12px!important;line-height:1.6!important;color:#8a8a8a!important;text-align:center}

/* 12. 分隔线 */
.page-content hr{height:1px!important;margin:2em 0!important;border:0!important;background:rgba(10,10,10,.08)!important}

/* 13. 折叠块 */
.page-content details{margin:1.25em 0!important;padding:0 14px!important;border:1px solid rgba(10,10,10,.08)!important;border-radius:var(--cb-radius-sm)!important;background:transparent!important}
.page-content details > summary{display:flex!important;align-items:center;gap:10px;padding:10px 0!important;cursor:pointer;list-style:none!important;font-size:14px!important;line-height:1.6!important;color:var(--cb-ink-title)!important;outline:0}
.page-content details > summary::-webkit-details-marker{display:none}
.page-content details > summary::before{content:"";flex:none;width:6px;height:6px;border-right:1.5px solid #9a9a9a;border-bottom:1.5px solid #9a9a9a;transform:rotate(-45deg);transition:transform .15s ease}
.page-content details[open] > summary{margin-bottom:.75em!important;border-bottom:1px solid rgba(10,10,10,.06)!important}
.page-content details[open] > summary::before{transform:rotate(45deg)}
.page-content details[open] > :last-child:not(summary){margin-bottom:.9em!important}

/* 14. 链接（标题里的锚点除外） */
.page-content a:not(:is(h1,h2,h3,h4,h5,h6) a){color:var(--color-primary)!important;text-decoration:underline!important;text-decoration-thickness:1px!important;text-underline-offset:3px!important;text-decoration-color:color-mix(in srgb,var(--color-primary) 35%,transparent)!important;transition:text-decoration-color .15s ease}
.page-content a:not(:is(h1,h2,h3,h4,h5,h6) a):hover{text-decoration-color:currentColor!important}

/* 15. 深色模式 */
html.cb-dark .page-content blockquote{background:#1b1f27!important;border-left-color:rgba(255,255,255,.18)!important;color:#c3c8d0!important}
html.cb-dark .page-content .callout{background:rgba(255,255,255,.04)!important;color:#d4d4d8!important}
html.cb-dark .page-content .callout.info{background:rgba(59,130,246,.1)!important}
html.cb-dark .page-content .callout.success{background:rgba(22,163,74,.1)!important}
html.cb-dark .page-content .callout.warning{background:rgba(217,119,6,.1)!important}
html.cb-dark .page-content .callout.danger{background:rgba(220,38,38,.1)!important}
html.cb-dark .page-content code{background:rgba(255,255,255,.08)!important;color:#e4e4e7!important}
html.cb-dark .page-content pre{background:#111214!important}
html.cb-dark .page-content kbd{background:#1c1c1e!important;border-color:rgba(255,255,255,.16)!important;color:#e4e4e7!important}
html.cb-dark .page-content mark{background:rgba(250,204,21,.25)!important}
html.cb-dark .page-content table{border-color:rgba(255,255,255,.1)!important}
html.cb-dark .page-content th,html.cb-dark .page-content td{border-color:rgba(255,255,255,.07)!important}
html.cb-dark .page-content th{background:rgba(255,255,255,.04)!important;color:#e4e4e7!important}
html.cb-dark .page-content hr{background:rgba(255,255,255,.1)!important}
html.cb-dark .page-content details{border-color:rgba(255,255,255,.1)!important}
html.cb-dark .page-content details[open] > summary{border-bottom-color:rgba(255,255,255,.07)!important}
html.cb-dark .page-content h6,html.cb-dark .page-content figcaption{color:#8e8e93!important}

/* ===== tabler50: book page alignment, calm toc rows, sidebar polish ===== */

/* 1. 中间栏：页头与目录同一左缘（以 main 自身内边距为准） */
.cb-ent > .cb-ent-head,
.cb-ent > .book-content,
.cb-ent .book-content > .cb-ent-bar,
.cb-ent .book-content > .cb-toc{margin-left:0!important;margin-right:0!important}
.cb-ent > .book-content{padding-left:0!important;padding-right:0!important}

/* 2. 页头：封面与文字垂直居中，节奏收紧 */
.cb-ent .cb-ent-head{align-items:center!important;margin:4px 0 32px!important}
.cb-ent .cb-ent-head-main{gap:8px!important}
.cb-ent .cb-ent-kicker{display:flex;align-items:center;gap:6px;font-size:12px!important;line-height:18px!important;color:#9a9a9a!important}
.cb-ent .cb-ent-title{font-weight:400!important;letter-spacing:0!important}
.cb-ent .cb-ent-foot{margin-top:4px!important;gap:10px 16px!important}
.cb-ent .cb-ent-meta{display:flex;align-items:center;font-size:13px!important;line-height:32px!important;color:#8a8a8a!important}
.cb-ent .cb-ent-meta i{display:inline-block;width:3px;height:3px;margin:0 8px;border-radius:50%;background:#c8c8c8}

/* 3. 封面占位字：居中，不再压在左下角 */
.cb-ent .cb-ent-head .cb-cover{position:relative;overflow:hidden}
.cb-ent .cb-ent-head .cb-cover-initial{left:50%!important;top:50%!important;bottom:auto!important;transform:translate(-50%,-50%);font-size:40px!important;line-height:1!important;color:rgba(10,10,10,.16)!important}

/* 4. 目录标题：页数已在页头出现，这里不再重复 */
.cb-ent .cb-ent-bar{margin:0 0 12px!important}
.cb-ent .cb-ent-bar-title span{display:none!important}

/* 5. 目录卡片：行贴边，分隔线通栏，悬停整行着色 */
.cb-ent .cb-toc{padding:0!important;overflow:hidden;border:1px solid rgba(10,10,10,.08)!important;border-radius:var(--cb-radius)!important;background:#fff!important}
.cb-ent .cb-toc-page > a{grid-template-columns:28px minmax(0,1fr) auto!important;gap:12px!important;padding:11px 18px!important;border-radius:0!important;box-shadow:none!important}
.cb-ent .cb-toc-page + .cb-toc-page > a,
.cb-ent .cb-toc-sub > .cb-toc-page:first-child > a{box-shadow:inset 0 1px 0 rgba(10,10,10,.06)!important}
.cb-ent .cb-toc-page > a:hover{background:#f7f7f8!important}
.cb-ent .cb-toc-num{font-size:12px!important;color:#a8a8a8!important;font-variant-numeric:tabular-nums}
.cb-ent .cb-toc-page > a:hover .cb-toc-num{color:#6e6e6e!important}
.cb-ent .cb-toc-title{font-size:14px!important;line-height:1.55!important;color:#1f1f1f!important}
.cb-ent .cb-toc-side{font-size:12px!important;color:#b0b0b0!important}
.cb-ent .cb-toc > .cb-toc-chapter{margin:0!important}
.cb-ent .cb-toc > li + .cb-toc-chapter,
.cb-ent .cb-toc > .cb-toc-chapter + li{margin-top:0!important;padding-top:0!important;border-top:1px solid rgba(10,10,10,.06)!important}
.cb-ent .cb-toc-chap-head{gap:12px!important;padding:11px 18px!important;border-radius:0!important;font-size:14px!important;font-weight:400!important}
.cb-ent .cb-toc-chap-ico{width:28px!important;justify-items:start}
.cb-ent .cb-toc-sub .cb-toc-page > a{padding-left:34px!important}

/* 6. 左栏：搜索框去掉重阴影，书架标签与活动条目对齐小标题 */
.tri-layout-left form.search-box{border:1px solid rgba(10,10,10,.1)!important;background:#fff!important;box-shadow:none!important}
.tri-layout-left form.search-box *,.tri-layout-left form.search-box input:focus{box-shadow:none!important;outline:none!important}
.tri-layout-left form.search-box:focus-within{border-color:rgba(10,10,10,.24)!important;box-shadow:0 0 0 3px rgba(10,10,10,.04)!important}
.tri-layout-left .actions .entity-list.compact .entity-list-item{padding:4px 10px!important;border-radius:7px!important;background:rgba(10,10,10,.045)!important}
.tri-layout-left .actions .entity-list.compact .entity-list-item:hover{background:rgba(10,10,10,.075)!important}
.tri-layout-left .actions .entity-list.compact .entity-list-item .icon{color:var(--color-bookshelf)!important;opacity:1!important}
.tri-layout-left .actions .entity-list.compact .entity-list-item .icon svg{width:13px!important;height:13px!important;opacity:1!important;fill:currentColor!important}
.activity-list > .activity-list-item{margin:0 -8px!important}

@media (max-width:640px){
.cb-ent .cb-toc-page > a{grid-template-columns:24px minmax(0,1fr)!important;padding:10px 14px!important}
.cb-ent .cb-toc-chap-head{padding:10px 14px!important}
.cb-ent .cb-toc-sub .cb-toc-page > a{padding-left:26px!important}
}

/* 7. 深色模式 */
html.cb-dark .cb-ent .cb-toc{background:#1c1c1e!important;border-color:rgba(255,255,255,.08)!important}
html.cb-dark .cb-ent .cb-toc-page + .cb-toc-page > a,
html.cb-dark .cb-ent .cb-toc-sub > .cb-toc-page:first-child > a{box-shadow:inset 0 1px 0 rgba(255,255,255,.06)!important}
html.cb-dark .cb-ent .cb-toc > li + .cb-toc-chapter,
html.cb-dark .cb-ent .cb-toc > .cb-toc-chapter + li{border-top-color:rgba(255,255,255,.06)!important}
html.cb-dark .cb-ent .cb-toc-page > a:hover{background:rgba(255,255,255,.045)!important}
html.cb-dark .cb-ent .cb-toc-title{color:#e4e4e7!important}
html.cb-dark .cb-ent .cb-ent-meta i{background:#555}
html.cb-dark .cb-ent .cb-ent-head .cb-cover-initial{color:rgba(255,255,255,.14)!important}
html.cb-dark .tri-layout-left form.search-box{background:#1c1c1e!important;border-color:rgba(255,255,255,.1)!important}
html.cb-dark .tri-layout-left .actions .entity-list.compact .entity-list-item{background:rgba(255,255,255,.07)!important}

/* ===== tabler51: sidebar fixes, book hero panel, restored toc with straight dividers ===== */

/* 1. 左栏搜索框：聚焦只变边框色（不外扩，避免被侧栏裁切），去掉全局 input:focus 下划线 */
.tri-layout-left form.search-box,
.tri-layout-left form.search-box:focus-within{box-shadow:none!important;outline:none!important}
.tri-layout-left form.search-box:focus-within{border-color:rgba(10,10,10,.3)!important;background:#fff!important}
.tri-layout-left form.search-box input,
.tri-layout-left form.search-box input:focus,
.tri-layout-left form.search-box input:focus-visible{border:0!important;border-bottom:0!important;border-radius:0!important;box-shadow:none!important;outline:none!important;background:transparent!important;text-decoration:none!important}
html.cb-dark .tri-layout-left form.search-box:focus-within{border-color:rgba(255,255,255,.28)!important;background:#1c1c1e!important}

/* 2. 书架标签：去掉图标伪元素竖线 */
.tri-layout-left .actions .entity-list-item > .icon::before,
.tri-layout-left .actions .entity-list-item > .icon::after,
.tri-layout-left .actions .entity-list-item .icon::before{content:none!important;display:none!important}
.tri-layout-left .actions .entity-list.compact .entity-list-item{border:0!important;border-left:0!important;box-shadow:none!important}

/* 3. 近期活动：上下对称的内边距，悬停底色左右与小标题对齐 */
.tri-layout-left .activity-list,.tri-layout-right .activity-list{gap:0!important}
.activity-list > .activity-list-item,
.activity-list > .activity-list-item:first-child,
.activity-list > .activity-list-item:last-child{margin:0 -10px!important;padding:8px 10px!important;border:0!important;border-radius:var(--cb-radius-sm)!important;background:none!important;transition:background-color .12s ease}
.activity-list > .activity-list-item:hover{background:rgba(10,10,10,.04)!important}
.activity-list > .activity-list-item:hover .cb-act-title a{color:#000!important}
.activity-list .cb-act-meta{margin-top:4px!important;line-height:16px!important}
html.cb-dark .activity-list > .activity-list-item:hover{background:rgba(255,255,255,.05)!important}
html.cb-dark .activity-list > .activity-list-item:hover .cb-act-title a{color:#fff!important}

/* 4. 书籍页头：白色面板，封面 + 信息，底行左元信息右按钮 */
.cb-ent .cb-ent-head{display:grid!important;grid-template-columns:128px minmax(0,1fr)!important;gap:24px!important;align-items:stretch!important;margin:0 0 28px!important;padding:22px!important;border:1px solid rgba(10,10,10,.07)!important;border-radius:var(--cb-radius-xl)!important;background:#fff!important;box-shadow:none!important}
.cb-ent .cb-ent-head .cb-cover{align-self:center;width:128px!important;aspect-ratio:4/3!important;border-radius:var(--cb-radius)!important}
.cb-ent .cb-ent-head .cb-cover-initial{font-size:42px!important}
.cb-ent .cb-ent-head-main{display:flex!important;flex-direction:column!important;justify-content:center;gap:6px!important;min-width:0}
.cb-ent .cb-ent-kicker{margin:0!important;font-size:12px!important;line-height:18px!important;color:#9a9a9a!important}
.cb-ent .cb-ent-title{margin:0!important;font-size:24px!important;line-height:1.3!important;font-weight:400!important;color:#141414!important}
.cb-ent .cb-ent-desc{max-width:62ch;margin:2px 0 0!important;font-size:13.5px!important;line-height:1.7!important;color:#6e6e6e!important}
.cb-ent .cb-ent-foot{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;margin-top:auto!important;padding-top:14px!important}
.cb-ent .cb-ent-meta{margin:0!important;line-height:20px!important;font-size:12.5px!important}
.cb-ent .cb-ent-read{flex:none;margin-left:auto;height:34px!important;padding:0 16px!important;border-radius:var(--cb-radius-md)!important}
@media (max-width:640px){
.cb-ent .cb-ent-head{grid-template-columns:72px minmax(0,1fr)!important;gap:14px!important;padding:16px!important}
.cb-ent .cb-ent-head .cb-cover{width:72px!important}
.cb-ent .cb-ent-head .cb-cover-initial{font-size:28px!important}
.cb-ent .cb-ent-title{font-size:20px!important}
.cb-ent .cb-ent-foot{flex-wrap:wrap}
}
html.cb-dark .cb-ent .cb-ent-head{background:#1c1c1e!important;border-color:rgba(255,255,255,.08)!important}
html.cb-dark .cb-ent .cb-ent-title{color:#f2f2f2!important}
html.cb-dark .cb-ent .cb-ent-desc{color:#a1a1a6!important}

/* 5. 目录：还原圆角行 + 卡片内边距，条目加高，分隔线改为与文字对齐的直线 */
.cb-ent .cb-toc{padding:6px!important;overflow:visible!important;border:1px solid rgba(10,10,10,.07)!important;border-radius:var(--cb-radius-lg)!important}
.cb-ent .cb-toc-page{position:relative}
.cb-ent .cb-toc-page > a{grid-template-columns:28px minmax(0,1fr) auto!important;gap:12px!important;padding:14px 14px!important;border-radius:var(--cb-radius-md)!important;box-shadow:none!important}
.cb-ent .cb-toc-page + .cb-toc-page > a,
.cb-ent .cb-toc-sub > .cb-toc-page:first-child > a,
html.cb-dark .cb-ent .cb-toc-page + .cb-toc-page > a,
html.cb-dark .cb-ent .cb-toc-sub > .cb-toc-page:first-child > a{box-shadow:none!important}
.cb-ent .cb-toc-page + .cb-toc-page::before{content:"";position:absolute;top:0;left:14px;right:14px;height:1px;background:rgba(10,10,10,.06);pointer-events:none;transition:opacity .12s ease}
.cb-ent .cb-toc-page:hover::before,
.cb-ent .cb-toc-page:hover + .cb-toc-page::before{opacity:0}
.cb-ent .cb-toc-page > a:hover{background:#f6f6f7!important}
.cb-ent .cb-toc-chap-head{padding:14px!important;border-radius:var(--cb-radius-md)!important}
.cb-ent .cb-toc-sub .cb-toc-page > a{padding-left:28px!important}
.cb-ent .cb-toc-sub .cb-toc-page + .cb-toc-page::before{left:28px}
.cb-ent .cb-toc > li + .cb-toc-chapter,
.cb-ent .cb-toc > .cb-toc-chapter + li{margin-top:4px!important;padding-top:4px!important}
@media (max-width:640px){
.cb-ent .cb-toc-page > a{grid-template-columns:24px minmax(0,1fr)!important;padding:12px 10px!important}
.cb-ent .cb-toc-page + .cb-toc-page::before{left:10px;right:10px}
.cb-ent .cb-toc-sub .cb-toc-page > a{padding-left:18px!important}
}
html.cb-dark .cb-ent .cb-toc-page + .cb-toc-page::before{background:rgba(255,255,255,.06)}
html.cb-dark .cb-ent .cb-toc-page > a:hover{background:rgba(255,255,255,.05)!important}

/* ===== tabler52: sidebar search restore + shelf chip line kill ===== */

/* 1. 左栏搜索框：压过全站 input 下边框规则（第 1095/1107 行） */
html body .tri-layout-left form.search-box input,
html body .tri-layout-left form.search-box input[type=text],
html body .tri-layout-left form.search-box input:hover,
html body .tri-layout-left form.search-box input:focus,
html body .tri-layout-left form.search-box input:focus-visible{border:0!important;border-bottom:0!important;border-bottom-color:transparent!important;border-radius:0!important;box-shadow:none!important;outline:none!important;background:transparent!important;background-image:none!important}

/* 2. 还原之前的悬停/聚焦效果，并给高亮留出空间避免被侧栏裁切 */
.tri-layout-left .mb-xl:has(> form.search-box){padding:4px!important;margin:-4px -4px 24px!important}
html body .tri-layout-left form.search-box{border:1px solid rgba(10,10,10,.1)!important;background:#fff!important;box-shadow:none!important;transition:border-color .15s ease,box-shadow .15s ease}
html body .tri-layout-left form.search-box:hover{border-color:rgba(10,10,10,.2)!important}
html body .tri-layout-left form.search-box:focus-within{border-color:rgba(10,10,10,.28)!important;box-shadow:0 0 0 3px rgba(10,10,10,.05)!important}
html body .tri-layout-left form.search-box button{color:#a0a0a0!important;transition:color .15s ease}
html body .tri-layout-left form.search-box:hover button,
html body .tri-layout-left form.search-box:focus-within button{color:#6e6e6e!important}
html.cb-dark body .tri-layout-left form.search-box{background:#1c1c1e!important;border-color:rgba(255,255,255,.1)!important}
html.cb-dark body .tri-layout-left form.search-box:hover{border-color:rgba(255,255,255,.2)!important}
html.cb-dark body .tri-layout-left form.search-box:focus-within{border-color:rgba(255,255,255,.28)!important;box-shadow:0 0 0 3px rgba(255,255,255,.06)!important}

/* 3. 书架标签：从容器到条目逐层清掉左线 / 阴影 / 伪元素 */
.tri-layout-left .actions,
.tri-layout-left .actions .entity-list,
.tri-layout-left .actions .entity-list.compact,
.tri-layout-left .actions .entity-list > *,
.tri-layout-left .actions .entity-list-item > *{border-left:0!important;border-inline-start:0!important;box-shadow:none!important;outline:0!important;background-image:none!important}
.tri-layout-left .actions::before,.tri-layout-left .actions::after,
.tri-layout-left .actions .entity-list::before,.tri-layout-left .actions .entity-list::after,
.tri-layout-left .actions .entity-list > *::before,.tri-layout-left .actions .entity-list > *::after{content:none!important;display:none!important}
html body .tri-layout-left .actions .entity-list.compact .entity-list-item{border:0!important;border-inline-start:0!important;box-shadow:none!important;outline:0!important;background:rgba(10,10,10,.045)!important}
html body .tri-layout-left .actions .entity-list.compact .entity-list-item:hover{background:rgba(10,10,10,.075)!important}
html body .tri-layout-left .actions .entity-list.compact .entity-list-item:focus-visible{box-shadow:0 0 0 2px rgba(10,10,10,.12)!important}
html.cb-dark body .tri-layout-left .actions .entity-list.compact .entity-list-item{background:rgba(255,255,255,.07)!important}
html.cb-dark body .tri-layout-left .actions .entity-list.compact .entity-list-item:hover{background:rgba(255,255,255,.11)!important}

/* ===== tabler53: taller toc rows ===== */
.cb-ent .cb-toc-page > a{padding-top:18px!important;padding-bottom:18px!important}
.cb-ent .cb-toc-chap-head{padding-top:18px!important;padding-bottom:18px!important}
.cb-ent .cb-toc-title{line-height:1.6!important}
@media (max-width:640px){
.cb-ent .cb-toc-page > a{padding-top:15px!important;padding-bottom:15px!important}
.cb-ent .cb-toc-chap-head{padding-top:15px!important;padding-bottom:15px!important}
}

/* ===== tabler54: activity hover box alignment (high specificity) ===== */
html body .tri-layout-left .activity-list,
html body .tri-layout-right .activity-list{display:flex!important;flex-direction:column!important;gap:2px!important;margin:0!important;padding:0!important}
html body .tri-layout-left .activity-list > .activity-list-item,
html body .tri-layout-right .activity-list > .activity-list-item,
html body .tri-layout-left .activity-list > .activity-list-item:first-child,
html body .tri-layout-right .activity-list > .activity-list-item:first-child,
html body .tri-layout-left .activity-list > .activity-list-item:last-child,
html body .tri-layout-right .activity-list > .activity-list-item:last-child{display:block!important;box-sizing:border-box!important;width:auto!important;margin:0 -10px!important;padding:9px 10px!important;border:0!important;border-radius:var(--cb-radius-sm)!important;background:transparent!important;box-shadow:none!important;transition:background-color .12s ease}
html body .tri-layout-left .activity-list > .activity-list-item:hover,
html body .tri-layout-right .activity-list > .activity-list-item:hover{background:rgba(10,10,10,.045)!important}
html body .activity-list > .activity-list-item > .cb-act-body{margin:0!important;padding:0!important}
html.cb-dark body .tri-layout-left .activity-list > .activity-list-item:hover,
html.cb-dark body .tri-layout-right .activity-list > .activity-list-item:hover{background:rgba(255,255,255,.05)!important}

/* tabler55: 侧栏滚动容器 overflow-x:hidden 且 padding 0，裁掉了活动悬停底色的外扩部分。给容器留出 12px 内边距并用负外边距抵消，内容位置不变 */
@media screen and (min-width:1400px){
  html body .tri-layout-left-contents,
  html body .tri-layout-right-contents{padding-left:12px!important;padding-right:12px!important;margin-left:-12px!important;margin-right:-12px!important;box-sizing:border-box!important}
}
html body .tri-layout-left .activity-list > .activity-list-item,
html body .tri-layout-right .activity-list > .activity-list-item,
html body .tri-layout-left .activity-list > .activity-list-item:first-child,
html body .tri-layout-right .activity-list > .activity-list-item:first-child,
html body .tri-layout-left .activity-list > .activity-list-item:last-child,
html body .tri-layout-right .activity-list > .activity-list-item:last-child{margin-left:-10px!important;margin-right:-10px!important;padding-left:10px!important;padding-right:10px!important}

/* tabler57：替代 tabler56。页面导航、书籍导航还原为 tabler55 样式，仅保留书籍导航「展开其余」；其余（正文顶部、书架卡片、用户页）不变 */

/* 1. 正文顶部：卡片 40px + .page-content 约 40px 叠加，收为一层；h1 外有 div[dir] 包裹，旧的 > h1:first-child 不生效 */
html body main.content-wrap.card .page-content[class]{padding-top:0!important}
html body .page-content > [dir] > h1:first-child,html body .page-content #bkmrk-page-title{margin-top:0!important}
@media (min-width:641px){html body #main-content main.content-wrap.card:has(.page-content){padding-top:36px!important}}


.cb-bn-more{list-style:none;margin:6px 0 0!important;padding:0!important}
.cb-bn-tog{display:inline-flex;align-items:center;gap:7px;margin:0;padding:6px 0;border:0;border-radius:0;background:transparent;font:inherit;font-size:12.5px;line-height:1.5;color:#8a8a8a;cursor:pointer;transition:background-color .12s ease,color .12s ease}
.cb-bn-tog::after{content:'';width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .15s ease}
.cb-bn-tog[aria-expanded='true']::after{transform:translateY(1px) rotate(-135deg)}
.cb-bn-tog:hover{color:#0a0a0a}

/* 4. 书架网格卡片：补内边距，封面内缩圆角，文字层级 */
html body .cb-home-v3 .cb-lib-shelves.is-grid .cb-lib-shelf[class]{padding:10px!important;border-radius:var(--cb-radius-xl)!important}
html body .cb-home-v3 .cb-lib-shelves.is-grid .cb-lib-shelf .cb-cover[class]{border-radius:var(--cb-radius-md)!important;aspect-ratio:16/9}
html body .cb-lib-shelves.is-grid .cb-lib-shelf .cb-home-shelf-body[class]{padding:16px 10px 6px!important}
html body .cb-lib-shelves.is-grid .cb-lib-shelf-link[class]{font-size:15.5px!important;font-weight:500!important;line-height:1.45!important;color:#0a0a0a!important}
html body .cb-lib-shelves.is-grid .cb-lib-shelf .cb-home-desc{margin-top:6px!important;font-size:13px!important;line-height:1.7!important;color:#707070!important}
html body .cb-lib-shelves.is-grid .cb-lib-shelf .cb-lib-chips{margin-top:14px!important}
html body .cb-lib-shelves.is-grid .cb-lib-shelf .cb-home-meta{margin-top:auto!important;padding-top:16px!important}

/* 5. 用户页 */
html body .cb-user{max-width:1080px!important;padding:32px 20px 64px!important}
.cb-user-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:22px;margin-bottom:20px;padding:24px;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius-xl);background:#fff}
.cb-user-av{display:block;width:76px;height:76px;border-radius:18px;object-fit:cover;background:#f2f2f2}
.cb-user-id{min-width:0}
.cb-user-kicker{display:block;font-size:11px;font-weight:600;letter-spacing:.08em;color:#9a9a9a}
html body .cb-user-name{margin:4px 0!important;font-size:22px!important;font-weight:500!important;line-height:1.35!important;color:#0a0a0a!important;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
html body .cb-user-sub{margin:0!important;font-size:13px!important;line-height:1.6!important;color:#8a8a8a!important}
.cb-user-stats{display:grid;grid-template-columns:repeat(4,minmax(72px,auto));gap:8px}
.cb-user-stat{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;border:1px solid rgba(10,10,10,.05);border-radius:var(--cb-radius);background:#fafafa;color:inherit!important;text-decoration:none!important;transition:border-color .12s ease,background-color .12s ease}
.cb-user-stat strong{font-size:20px;font-weight:500;line-height:1.25;color:#0a0a0a;font-variant-numeric:tabular-nums}
.cb-user-stat span{font-size:12px;line-height:1.5;color:#8a8a8a}
.cb-user-stat:hover{border-color:rgba(10,10,10,.14);background:#fff}
.cb-user-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
.cb-user-main{display:flex;flex-direction:column;gap:16px;min-width:0}
.cb-user-card{padding:20px 22px;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius-xl);background:#fff;scroll-margin-top:24px}
.cb-user-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
html body .cb-user-card-head h2{display:flex;align-items:center;gap:8px;margin:0!important;font-size:15px!important;font-weight:500!important;line-height:1.5!important;color:#0a0a0a!important}
.cb-user-count{padding:1px 7px;border-radius:var(--cb-radius-pill);background:#f3f3f3;font-size:11.5px;font-weight:400;line-height:1.6;color:#9a9a9a;font-variant-numeric:tabular-nums}
.cb-user-more{flex:none;font-size:12.5px;color:#8a8a8a!important;text-decoration:none!important}
.cb-user-more:hover{color:#0a0a0a!important}
html body .cb-user-empty{margin:0!important;font-size:13px!important;color:#9a9a9a!important}
.cb-user-side{position:sticky;top:24px;min-width:0}
.cb-user-side .cb-user-card{padding:18px 20px}
html body .cb-user .entity-list[class]{margin:0!important;padding:0!important;border:0!important}
html body .cb-user .entity-list-item[class]{display:flex!important;align-items:flex-start;gap:12px;margin:0 -12px!important;padding:11px 12px!important;border:0!important;border-radius:var(--cb-radius-md)!important;background:transparent!important;box-shadow:none!important;color:inherit!important;text-decoration:none!important;transition:background-color .12s ease}
html body .cb-user .entity-list-item[class]:hover{background:rgba(10,10,10,.035)!important}
html body .cb-user .entity-list-item[class] > .icon{flex:none;width:18px;margin:2px 0 0!important;color:#a3a3a3!important}
html body .cb-user .entity-list-item[class] > .icon svg{width:16px!important;height:16px!important}
html body .cb-user .entity-list-item[class] .content{flex:1 1 auto;min-width:0;padding:0!important}
html body .cb-user .entity-list-item[class] .entity-list-item-name{margin:0!important;font-size:14px!important;line-height:1.55!important;font-weight:500!important;color:#0a0a0a!important}
html body .cb-user .entity-list-item[class] .entity-item-snippet,html body .cb-user .entity-list-item[class] .content .text-muted{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden;margin:2px 0 0!important;font-size:12.5px!important;line-height:1.6!important;color:#8a8a8a!important}
html body .cb-user .entity-list-item[class] .cb-item-meta{flex:none;margin-left:auto;padding-top:2px;font-size:11.5px;line-height:1.6;color:#a3a3a3;white-space:nowrap}
html body .cb-user-activity .activity-list[class]{display:flex!important;flex-direction:column!important;gap:2px!important;margin:0!important;padding:0!important}
html body .cb-user-activity .activity-list > .activity-list-item[class]{display:block!important;margin:0 -10px!important;padding:9px 10px!important;border:0!important;border-radius:var(--cb-radius-sm)!important;background:transparent!important}
html body .cb-user-activity .activity-list > .activity-list-item[class]:hover{background:rgba(10,10,10,.045)!important}
@media (max-width:900px){.cb-user-grid{grid-template-columns:minmax(0,1fr)}.cb-user-side{position:static}}
@media (max-width:720px){.cb-user-hero{grid-template-columns:auto minmax(0,1fr)}.cb-user-stats{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:480px){html body .cb-user{padding:20px 14px 48px!important}.cb-user-hero{gap:16px;padding:18px}.cb-user-av{width:60px;height:60px;border-radius:var(--cb-radius-lg)}html body .cb-user-name{font-size:19px!important}.cb-user-card{padding:16px}.cb-user-stat{padding:8px 10px}.cb-user-stat strong{font-size:17px}}

/* 6. 暗色 */
html.cb-dark body .cb-lib-shelves.is-grid .cb-lib-shelf-link[class]{color:#f2f2f2!important}
html.cb-dark body .cb-lib-shelves.is-grid .cb-lib-shelf .cb-home-desc{color:#9a9a9a!important}
html.cb-dark .cb-user-hero,html.cb-dark .cb-user-card{background:#1c1c1e;border-color:rgba(255,255,255,.08)}
html.cb-dark body .cb-user-name,html.cb-dark body .cb-user-card-head h2,html.cb-dark .cb-user-stat strong,html.cb-dark body .cb-user .entity-list-item[class] .entity-list-item-name{color:#f2f2f2!important}
html.cb-dark .cb-user-stat{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}
html.cb-dark .cb-user-stat:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.16)}
html.cb-dark .cb-user-count{background:rgba(255,255,255,.08);color:#9a9a9a}
html.cb-dark body .cb-user .entity-list-item[class]:hover,html.cb-dark body .cb-user-activity .activity-list > .activity-list-item[class]:hover{background:rgba(255,255,255,.05)!important}

/* 书籍导航「展开其余」所需 */
html body .book-tree .sidebar-page-list > li[hidden]{display:none!important}
.cb-bn-tog:focus-visible{outline:2px solid rgba(10,10,10,.3);outline-offset:1px}
html.cb-dark .cb-bn-tog:hover{color:#f2f2f2}

/* tabler58：书籍导航书名行做成标题卡片（小字「当前书籍」+ 书名），去掉空图标留白，焦点框改为键盘可见描边 */
html body .book-tree .list-item-book[class]{margin:0 0 8px!important;padding:0!important;border:0!important}
html body .book-tree .list-item-book > .entity-list-item[class]{display:flex!important;align-items:center!important;gap:0!important;margin:0 -10px!important;padding:9px 12px 10px!important;border:1px solid rgba(10,10,10,.08)!important;border-radius:var(--cb-radius-md)!important;background:#fff!important;box-shadow:none!important;outline:none!important;transition:border-color .12s ease,background-color .12s ease}
html body .book-tree .list-item-book > .entity-list-item[class]:hover{border-color:rgba(10,10,10,.16)!important;background:#fff!important}
html body .book-tree .list-item-book > .entity-list-item[class]:focus{outline:none!important}
html body .book-tree .list-item-book > .entity-list-item[class]:focus-visible{border-color:rgba(10,10,10,.28)!important;box-shadow:0 0 0 3px rgba(10,10,10,.06)!important}
html body .book-tree .list-item-book > .entity-list-item[class] > .icon,html body .book-tree .list-item-book > .entity-list-item[class] > .cb-item-meta{display:none!important}
html body .book-tree .list-item-book > .entity-list-item[class] > .content{flex:1 1 auto;min-width:0;padding:0!important}
html body .book-tree .list-item-book > .entity-list-item[class] > .content::before{content:'当前书籍';display:block;margin:0 0 2px;font-size:11px;font-weight:500;line-height:1.5;letter-spacing:.06em;color:#9a9a9a}
html body .book-tree .list-item-book > .entity-list-item[class] .entity-list-item-name{margin:0!important;font-size:13.5px!important;font-weight:600!important;line-height:1.5!important;color:#0a0a0a!important;-webkit-line-clamp:2}
html.cb-dark body .book-tree .list-item-book > .entity-list-item[class]{background:#1c1c1e!important;border-color:rgba(255,255,255,.1)!important}
html.cb-dark body .book-tree .list-item-book > .entity-list-item[class]:hover{border-color:rgba(255,255,255,.2)!important}
html.cb-dark body .book-tree .list-item-book > .entity-list-item[class] .entity-list-item-name{color:#f2f2f2!important}
html.cb-dark body .book-tree .list-item-book > .entity-list-item[class] > .content::before{color:#7d7d7d}

/* tabler59：复制链接工具条对齐重做 + 页面导航精修（连续细线、当前段加深、悬停反馈、两行截断） */

/* 59.1 工具条外壳 */
html body .pointer[class]{width:360px!important;max-width:calc(100vw - 24px)!important;padding:6px!important;gap:6px!important;border:1px solid rgba(10,10,10,.1)!important;border-radius:var(--cb-radius-md)!important;background:#fff!important;box-shadow:0 10px 28px rgba(0,0,0,.08),0 1px 3px rgba(0,0,0,.05)!important}
html body .pointer[class]::before{bottom:-6px!important;width:11px!important;height:11px!important;margin-inline-start:-5.5px!important;border-right:1px solid rgba(10,10,10,.1)!important;border-bottom:1px solid rgba(10,10,10,.1)!important;border-bottom-right-radius:2px!important;background:#fff!important}
html body .pointer[class] > [refs]{flex:1 1 auto!important;min-width:0!important;gap:6px!important;align-items:center!important}

/* 59.2 左侧模式按钮 / 编辑链接：30px 方形图标按钮 */
html body .pointer[class] button[refs="pointer@mode-toggle"],html body .pointer[class] > [refs] > a.button,html body .pointer[class] > a.button{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:none!important;width:30px!important;min-width:30px!important;height:30px!important;margin:0!important;padding:0!important;border:0!important;border-radius:7px!important;background:transparent!important;box-shadow:none!important;color:#737373!important;line-height:1!important;transition:background-color .12s ease,color .12s ease}
html body .pointer[class] button[refs="pointer@mode-toggle"]:hover,html body .pointer[class] a.button:hover{background:rgba(10,10,10,.05)!important;color:#0a0a0a!important}

/* 59.3 输入框 + 复制按钮：一个整体 */
html body .pointer[class] .input-group{display:flex!important;align-items:stretch!important;flex:1 1 auto!important;min-width:0!important;height:30px!important;margin:0!important;padding:0!important;border:1px solid rgba(10,10,10,.12)!important;border-radius:7px!important;background:#fafafa!important;overflow:hidden!important;box-shadow:none!important;transition:border-color .12s ease}
html body .pointer[class] .input-group:focus-within{border-color:rgba(10,10,10,.3)!important}
html body .pointer[class] .input-group input[type=text]{flex:1 1 auto!important;min-width:0!important;width:auto!important;height:28px!important;margin:0!important;padding:0 10px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;outline:none!important;font:12px/28px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;color:#404040!important;text-overflow:ellipsis!important;white-space:nowrap!important}
html body .pointer[class] .input-group input[type=text]::selection{background:rgba(10,10,10,.1)!important}
html body .pointer[class] .input-group .button{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:none!important;width:32px!important;min-width:32px!important;height:28px!important;margin:0!important;padding:0!important;border:0!important;border-left:1px solid rgba(10,10,10,.1)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#525252!important;line-height:1!important;transition:background-color .12s ease,color .12s ease}
html body .pointer[class] .input-group .button:hover{background:rgba(10,10,10,.05)!important;color:#0a0a0a!important}
html body .pointer[class] .svg-icon,html body .pointer[class] button svg,html body .pointer[class] a.button svg{width:15px!important;height:15px!important;margin:0!important;top:0!important;vertical-align:middle!important}
html body .pointer[class] button:focus-visible,html body .pointer[class] a.button:focus-visible{outline:none!important;box-shadow:inset 0 0 0 2px rgba(10,10,10,.18)!important}

/* 59.4 工具条深色 */
html.cb-dark body .pointer[class],html.cb-dark body .pointer[class]::before{background:#1f1f21!important;border-color:rgba(255,255,255,.1)!important}
html.cb-dark body .pointer[class] .input-group{background:#161618!important;border-color:rgba(255,255,255,.12)!important}
html.cb-dark body .pointer[class] .input-group input[type=text]{color:#d4d4d4!important}
html.cb-dark body .pointer[class] .input-group .button{border-left-color:rgba(255,255,255,.1)!important;color:#a3a3a3!important}
html.cb-dark body .pointer[class] button:hover,html.cb-dark body .pointer[class] a.button:hover{background:rgba(255,255,255,.06)!important;color:#fafafa!important}

/* 59.5 页面导航：连续细线 + 当前段加深 */
html body .sidebar-page-nav[class]::after{top:12px!important;bottom:12px!important;background-color:rgba(10,10,10,.1)!important}
html body .sidebar-page-nav[class] .page-nav-item{padding-left:18px!important}
html body .sidebar-page-nav[class] .page-nav-item.h2,html body .sidebar-page-nav[class] .page-nav-item.h3{padding-left:30px!important}
html body .sidebar-page-nav[class] .page-nav-item.h4,html body .sidebar-page-nav[class] .page-nav-item.h5,html body .sidebar-page-nav[class] .page-nav-item.h6{padding-left:42px!important}
html body .sidebar-page-nav[class] .page-nav-item::before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:transparent;z-index:0;transition:background-color .15s ease}
html body .sidebar-page-nav[class] li.current-heading::before{background:rgba(10,10,10,.55)}
html body .sidebar-page-nav[class] .page-nav-item a{display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;padding:5px 0!important;font-size:13px!important;line-height:1.55!important;font-weight:400!important;color:#737373!important;text-decoration:none!important;transition:color .12s ease}
html body .sidebar-page-nav[class] .page-nav-item a:hover{color:#0a0a0a!important}
html body .sidebar-page-nav[class] li.current-heading > a{color:#0a0a0a!important;font-weight:500!important}
html body .sidebar-page-nav[class] .sidebar-page-nav-bullet{left:-2.5px!important;top:calc(5px + .775em - 3px)!important;width:6px!important;height:6px!important;box-shadow:0 0 0 2px var(--cb-canvas,#f3f3f3)!important;transition:transform .15s ease,background-color .15s ease}
html body .sidebar-page-nav[class] li:not(.current-heading) .sidebar-page-nav-bullet{background-color:#cfd2d6!important}
html body .sidebar-page-nav[class] li.current-heading .sidebar-page-nav-bullet{background-color:#0a0a0a!important}
html body .sidebar-page-nav[class] .page-nav-item:hover .sidebar-page-nav-bullet{transform:scale(1.35)}
html body .sidebar-page-nav[class] .page-nav-item.h2 .sidebar-page-nav-bullet,html body .sidebar-page-nav[class] .page-nav-item.h3 .sidebar-page-nav-bullet,html body .sidebar-page-nav[class] .page-nav-item.h4 .sidebar-page-nav-bullet,html body .sidebar-page-nav[class] .page-nav-item.h5 .sidebar-page-nav-bullet,html body .sidebar-page-nav[class] .page-nav-item.h6 .sidebar-page-nav-bullet{left:-1.5px!important;width:4px!important;height:4px!important;top:calc(5px + .775em - 2px)!important}
html body .sidebar-page-nav[class] .page-nav-item a:focus-visible{outline:none!important;border-radius:var(--cb-radius-2xs);box-shadow:0 0 0 2px rgba(10,10,10,.14)!important}

/* 59.6 页面导航深色 */
html.cb-dark body .sidebar-page-nav[class]::after{background-color:rgba(255,255,255,.12)!important}
html.cb-dark body .sidebar-page-nav[class] li.current-heading::before{background:rgba(255,255,255,.6)}
html.cb-dark body .sidebar-page-nav[class] .page-nav-item a{color:#9a9a9a!important}
html.cb-dark body .sidebar-page-nav[class] .page-nav-item a:hover,html.cb-dark body .sidebar-page-nav[class] li.current-heading > a{color:#f5f5f5!important}
html.cb-dark body .sidebar-page-nav[class] li:not(.current-heading) .sidebar-page-nav-bullet{background-color:#4a4a4d!important}
html.cb-dark body .sidebar-page-nav[class] li.current-heading .sidebar-page-nav-bullet{background-color:#f5f5f5!important}
html.cb-dark body .sidebar-page-nav[class] .sidebar-page-nav-bullet{box-shadow:0 0 0 2px var(--cb-canvas,#111)!important}

/* tabler60：书籍导航字号统一 12px */
html body .book-tree .entity-list-item[class] .entity-list-item-name,html body .book-tree .list-item-book > .entity-list-item[class] .entity-list-item-name{font-size:12px!important;line-height:1.6!important}
html body .book-tree .list-item-book > .entity-list-item[class] > .content::before{font-size:10.5px!important}
html body .book-tree .cb-bn-tog{font-size:12px!important}

/* tabler61：user 页面按首页/书籍页版式重做（cb-me）+ 独立页面 特点 / 使用指南 / 404（cb-pg / cb-gd / cb-404） */

/* 61.1 user 页面 */
html body .cb-me{max-width:1040px!important;margin:0 auto!important;padding:48px 24px 80px!important;color:#1a1a1a}
.cb-me-ico{width:16px;height:16px;flex:none;fill:none!important;stroke:currentColor;stroke-width:1.5}
.cb-me-head{display:flex;align-items:center;gap:20px}
.cb-me-av{flex:none;display:block;width:72px;height:72px;border-radius:var(--cb-radius-lg);object-fit:cover;background:#f2f2f2;box-shadow:0 0 0 1px rgba(10,10,10,.06)}
.cb-me-id{flex:1 1 auto;min-width:0}
html body .cb-me-kicker{display:flex;align-items:center;gap:6px;margin:0!important;font-size:12px!important;line-height:1.5!important;color:#919191!important}
.cb-me-kicker i{width:6px;height:6px;border-radius:50%;background:#1a1a1a}
html body .cb-me-name{margin:4px 0 0!important;font-size:26px!important;line-height:1.3!important;font-weight:400!important;letter-spacing:-.01em;color:#1a1a1a!important;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
html body .cb-me-meta{display:flex;flex-wrap:wrap;align-items:center;margin:6px 0 0!important;font-size:12.5px!important;line-height:1.6!important;color:#919191!important}
.cb-me-meta span+span::before{content:"·";margin:0 8px;color:#c4c4c4}
.cb-me-edit{flex:none;display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border:1px solid rgba(10,10,10,.1);border-radius:9px;background:#fff;font-size:13px;color:#1a1a1a!important;text-decoration:none!important;transition:border-color .15s ease,background-color .15s ease}
.cb-me-edit:hover{border-color:rgba(10,10,10,.2);background:#fafafa}
.cb-me-edit .cb-me-ico{width:15px;height:15px;color:#6e6e6e}
.cb-me-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:28px 0 0;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius);background:#fff;overflow:hidden}
.cb-me-stat{display:flex;flex-direction:column;gap:2px;padding:16px 20px;color:inherit!important;text-decoration:none!important;transition:background-color .12s ease}
.cb-me-stat+.cb-me-stat{border-left:1px solid rgba(10,10,10,.06)}
.cb-me-stat:hover{background:#f8f8f9}
.cb-me-stat strong{font-size:22px;font-weight:400;line-height:1.3;color:#1a1a1a;font-variant-numeric:tabular-nums}
.cb-me-stat span{font-size:12px;line-height:1.5;color:#919191}
.cb-me-stat.is-zero strong{color:#c4c4c4}
.cb-me-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px;align-items:start;margin-top:40px}
.cb-me-main{display:flex;flex-direction:column;gap:36px;min-width:0}
.cb-me-sec{min-width:0;scroll-margin-top:24px}
.cb-me-sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:0 0 12px}
html body .cb-me-sec-head h2{display:flex;align-items:baseline;gap:8px;margin:0!important;font-size:16px!important;line-height:1.4!important;font-weight:400!important;color:#1a1a1a!important}
.cb-me-sec-head h2 span{font-size:12px;color:#a0a0a0;font-variant-numeric:tabular-nums}
.cb-me-more{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;color:#6e6e6e!important;text-decoration:none!important;transition:color .15s ease}
.cb-me-more .cb-me-ico{width:14px;height:14px;transition:transform .15s ease}
.cb-me-more:hover{color:#1a1a1a!important}
.cb-me-more:hover .cb-me-ico{transform:translateX(2px)}
.cb-me-list{padding:4px;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius);background:#fff}
.cb-me-row{display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--cb-radius-sm);color:inherit!important;text-decoration:none!important;transition:background-color .12s ease}
.cb-me-row:hover{background:#f6f6f7}
.cb-me-row:active{background:#efeff0}
.cb-me-row:focus-visible,.cb-me-card:focus-visible,.cb-me-stat:focus-visible,.cb-me-edit:focus-visible{outline:2px solid rgba(10,10,10,.3);outline-offset:-2px}
.cb-me-row-ico{display:flex;color:#8a8a8a}
.cb-me-row-main{display:flex;align-items:baseline;gap:10px;min-width:0}
.cb-me-row-name{min-width:0;font-size:14px;line-height:1.45;color:#1a1a1a;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.cb-me-row-book{flex:none;max-width:40%;font-size:12px;color:#919191;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.cb-me-row-time{font-size:12px;color:#a0a0a0;white-space:nowrap}
.cb-me-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cb-me-card{display:flex;gap:14px;min-width:0;padding:12px;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius);background:#fff;color:inherit!important;text-decoration:none!important;transition:border-color .15s ease,box-shadow .2s ease,transform .2s ease}
.cb-me-card:hover{border-color:rgba(10,10,10,.14);box-shadow:0 6px 20px rgba(10,10,10,.06);transform:translateY(-1px)}
html body .cb-me .cb-me-cover[class]{position:relative;flex:none;display:flex;align-items:center;justify-content:center;width:60px!important;height:80px!important;min-height:0!important;margin:0!important;padding:0!important;border-radius:var(--cb-radius-sm)!important;overflow:hidden;aspect-ratio:auto!important}
html body .cb-me .cb-me-cover[class] img{display:block;width:100%!important;height:100%!important;object-fit:cover}
html body .cb-me .cb-me-cover[class] .cb-cover-initial{font-size:22px!important;line-height:1!important}
.cb-me-card-body{display:flex;flex-direction:column;min-width:0;padding:2px 0}
.cb-me-card-name{font-size:14px;line-height:1.45;color:#1a1a1a;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.cb-me-card-desc{margin-top:4px;font-size:12.5px;line-height:1.6;color:#6e6e6e;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cb-me-card-meta{margin-top:auto;padding-top:8px;font-size:11.5px;color:#a0a0a0}
.cb-me-side{position:sticky;top:24px;min-width:0}
.cb-me-panel{padding:6px 14px 8px;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius);background:#fff}
.cb-me-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:44px 24px;border:1px dashed rgba(10,10,10,.14);border-radius:var(--cb-radius);text-align:center}
.cb-me-empty .cb-me-ico{width:22px;height:22px;color:#a0a0a0}
html body .cb-me-empty p{margin:0!important;font-size:13.5px!important;color:#6e6e6e!important}
.cb-me-empty a{font-size:12.5px;color:#1a1a1a!important}
@media (max-width:900px){.cb-me-grid{grid-template-columns:minmax(0,1fr);gap:36px}.cb-me-side{position:static}}
@media (max-width:640px){html body .cb-me{padding:28px 16px 56px!important}.cb-me-head{flex-wrap:wrap;gap:16px}.cb-me-av{width:60px;height:60px;border-radius:var(--cb-radius)}html body .cb-me-name{font-size:22px!important}.cb-me-edit{order:3;width:100%;justify-content:center}.cb-me-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.cb-me-stat:nth-child(3){border-left:0}.cb-me-stat:nth-child(n+3){border-top:1px solid rgba(10,10,10,.06)}.cb-me-stat{padding:14px 16px}.cb-me-cards{grid-template-columns:minmax(0,1fr)}.cb-me-row-book{display:none}}
@media (prefers-reduced-motion:reduce){.cb-me-card,.cb-me-row,.cb-me-more .cb-me-ico{transition:none}.cb-me-card:hover{transform:none}}
html.cb-dark body .cb-me,html.cb-dark body .cb-me-name,html.cb-dark body .cb-me-sec-head h2,html.cb-dark .cb-me-stat strong,html.cb-dark .cb-me-row-name,html.cb-dark .cb-me-card-name,html.cb-dark .cb-me-edit,html.cb-dark .cb-me-empty a{color:#ededed!important}
html.cb-dark .cb-me-kicker i{background:#ededed}
html.cb-dark .cb-me-stats,html.cb-dark .cb-me-list,html.cb-dark .cb-me-card,html.cb-dark .cb-me-panel,html.cb-dark .cb-me-edit{background:#1c1c1e;border-color:rgba(255,255,255,.08)}
html.cb-dark .cb-me-stat+.cb-me-stat,html.cb-dark .cb-me-stat:nth-child(n+3){border-color:rgba(255,255,255,.06)}
html.cb-dark .cb-me-stat:hover,html.cb-dark .cb-me-row:hover,html.cb-dark .cb-me-edit:hover{background:rgba(255,255,255,.05)}
html.cb-dark .cb-me-card:hover{border-color:rgba(255,255,255,.16);box-shadow:none}
html.cb-dark .cb-me-stat.is-zero strong{color:#555}
html.cb-dark body .cb-me-empty{border-color:rgba(255,255,255,.14)}
html.cb-dark .cb-me-av{background:#2a2a2a;box-shadow:0 0 0 1px rgba(255,255,255,.08)}

/* 61.2 独立页面通用（特点 / 使用指南） */
html body .cb-pg{max-width:1040px;margin:0 auto;padding:64px 24px 88px;color:#1a1a1a}
.cb-pg-ico{width:20px;height:20px;flex:none;fill:none!important;stroke:currentColor;stroke-width:1.5}
.cb-pg-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:28px}
.cb-pg-btn{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 18px;border:1px solid rgba(10,10,10,.12);border-radius:var(--cb-radius-md);background:#fff;font-size:13.5px;line-height:1;color:#1a1a1a!important;text-decoration:none!important;white-space:nowrap;transition:border-color .15s ease,background-color .15s ease}
.cb-pg-btn:hover{border-color:rgba(10,10,10,.24);background:#fafafa}
.cb-pg-btn:focus-visible{outline:2px solid rgba(10,10,10,.35);outline-offset:2px}
.cb-pg-btn--primary{border-color:#1a1a1a;background:#1a1a1a;color:#fff!important}
.cb-pg-btn--primary:hover{border-color:#333;background:#333}
.cb-pg-btn .cb-pg-ico{width:15px;height:15px;transition:transform .15s ease}
.cb-pg-btn:hover .cb-pg-ico{transform:translateX(2px)}
.cb-pg-section{margin-top:72px}
.cb-pg-head{max-width:560px;margin:0 0 20px}
html body .cb-pg-head h2{margin:0!important;font-size:20px!important;line-height:1.4!important;font-weight:400!important;color:#1a1a1a!important}
html body .cb-pg-head p{margin:6px 0 0!important;font-size:14px!important;line-height:1.7!important;color:#6e6e6e!important}
.cb-pg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.cb-pg-feat{padding:22px 22px 24px;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius);background:#fff;transition:border-color .15s ease,box-shadow .2s ease}
.cb-pg-feat:hover{border-color:rgba(10,10,10,.14);box-shadow:0 6px 20px rgba(10,10,10,.05)}
.cb-pg-feat-ico{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:9px;background:#f4f4f5;color:#3a3a3a}
html body .cb-pg-feat h3{margin:16px 0 0!important;font-size:15px!important;line-height:1.45!important;font-weight:500!important;color:#1a1a1a!important}
html body .cb-pg-feat p{margin:6px 0 0!important;font-size:13px!important;line-height:1.7!important;color:#6e6e6e!important}
html body .cb-pg-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0!important;padding:0!important;list-style:none!important;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius);background:#fff;overflow:hidden}
html body .cb-pg-steps li{position:relative;margin:0!important;padding:22px 22px 24px!important;list-style:none!important}
.cb-pg-steps li+li{border-left:1px solid rgba(10,10,10,.06)}
.cb-pg-steps li+li::before{content:"";position:absolute;left:-5px;top:28px;width:9px;height:9px;border-top:1px solid rgba(10,10,10,.14);border-right:1px solid rgba(10,10,10,.14);background:#fff;transform:rotate(45deg)}
.cb-pg-step-n{font-size:12px;letter-spacing:.04em;color:#a0a0a0;font-variant-numeric:tabular-nums}
html body .cb-pg-steps h3{margin:10px 0 0!important;font-size:15px!important;line-height:1.45!important;font-weight:500!important;color:#1a1a1a!important}
html body .cb-pg-steps p{margin:6px 0 0!important;font-size:13px!important;line-height:1.7!important;color:#6e6e6e!important}
.cb-pg-split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:start}
.cb-pg-split .cb-pg-head{margin:0}
html body .cb-pg-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px;margin:0!important;padding:0!important;list-style:none!important}
html body .cb-pg-checks li{display:flex;gap:10px;margin:0!important;list-style:none!important}
.cb-pg-checks li .cb-pg-ico{width:16px;height:16px;margin-top:3px;color:#1a1a1a}
.cb-pg-checks b{display:block;font-size:14px;font-weight:500;line-height:1.55;color:#1a1a1a}
.cb-pg-checks small{display:block;margin-top:2px;font-size:12.5px;line-height:1.65;color:#8a8a8a}
.cb-pg-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:72px;padding:28px 32px;border-radius:var(--cb-radius-lg);background:#1a1a1a;color:#fff}
html body .cb-pg-cta h2{margin:0!important;font-size:20px!important;line-height:1.4!important;font-weight:400!important;color:#fff!important}
html body .cb-pg-cta p{margin:6px 0 0!important;font-size:13.5px!important;line-height:1.6!important;color:rgba(255,255,255,.62)!important}
.cb-pg-cta .cb-pg-actions{margin:0;flex:none}
.cb-pg-cta .cb-pg-btn{border-color:rgba(255,255,255,.22);background:transparent;color:#fff!important}
.cb-pg-cta .cb-pg-btn:hover{border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.08)}
.cb-pg-cta .cb-pg-btn--primary{border-color:#fff;background:#fff;color:#1a1a1a!important}
.cb-pg-cta .cb-pg-btn--primary:hover{border-color:#ededed;background:#ededed}

/* 61.3 使用指南 */
.cb-gd{display:grid;grid-template-columns:180px minmax(0,1fr);gap:56px;align-items:start;margin-top:48px;padding-top:40px;border-top:1px solid rgba(10,10,10,.06)}
.cb-gd-body{max-width:680px;min-width:0}
.cb-gd-sec{scroll-margin-top:24px}
.cb-gd-sec+.cb-gd-sec{margin-top:48px}
html body .cb-gd-sec h2{margin:0 0 12px!important;font-size:20px!important;line-height:1.4!important;font-weight:400!important;color:#1a1a1a!important}
html body .cb-gd-sec p{margin:0 0 12px!important;font-size:14.5px!important;line-height:1.85!important;color:#4a4a4a!important}
.cb-gd-sec p a{color:#1a1a1a!important;text-decoration:underline!important;text-decoration-color:rgba(10,10,10,.25)!important;text-underline-offset:3px}
.cb-gd-sec p a:hover{text-decoration-color:#1a1a1a!important}
.cb-gd-table-wrap{margin:16px 0;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius);background:#fff;overflow-x:auto}
html body .cb-gd-table{width:100%;margin:0!important;border:0!important;border-collapse:collapse!important;font-size:13px!important;background:transparent!important}
html body .cb-gd-table th{padding:10px 14px!important;border:0!important;border-bottom:1px solid rgba(10,10,10,.08)!important;background:#fafafa!important;font-size:12px!important;font-weight:400!important;color:#919191!important;text-align:left!important;white-space:nowrap}
html body .cb-gd-table td{padding:11px 14px!important;border:0!important;border-top:1px solid rgba(10,10,10,.05)!important;background:transparent!important;font-size:13px!important;line-height:1.6!important;color:#4a4a4a!important;vertical-align:top!important}
html body .cb-gd-table tbody tr:first-child td{border-top:0!important}
html body .cb-gd-table td:nth-child(2){white-space:nowrap;color:#1a1a1a!important}
.cb-gd-code{display:inline-block;padding:1px 7px;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius-xs);background:#f6f6f7;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.7;color:#1a1a1a!important;text-decoration:none!important;white-space:nowrap;transition:border-color .12s ease,background-color .12s ease}
a.cb-gd-code:hover{border-color:rgba(10,10,10,.2);background:#fff}
html body .cb-gd-tip{padding:12px 16px!important;border-radius:var(--cb-radius-md);background:#f6f6f7;font-size:13px!important;line-height:1.8!important}
html body .cb-gd-tip .cb-gd-code{background:#fff;text-decoration:none!important}
html body .cb-gd-list{margin:0!important;padding:0!important;list-style:none!important}
html body .cb-gd-list li{position:relative;margin:0!important;padding:10px 0 10px 18px!important;border-top:1px solid rgba(10,10,10,.05);font-size:14px;line-height:1.75;color:#4a4a4a;list-style:none!important}
html body .cb-gd-list li:first-child{border-top:0}
.cb-gd-list li::before{content:"";position:absolute;left:2px;top:21px;width:5px;height:5px;border-radius:50%;background:#c4c4c4}
.cb-gd-list b{margin-right:8px;font-weight:500;color:#1a1a1a}
.cb-gd-faq{border-top:1px solid rgba(10,10,10,.08)}
.cb-gd-faq details{border-bottom:1px solid rgba(10,10,10,.08)}
.cb-gd-faq summary{position:relative;display:block;padding:14px 28px 14px 0;font-size:14px;line-height:1.6;color:#1a1a1a;cursor:pointer;list-style:none}
.cb-gd-faq summary::-webkit-details-marker{display:none}
.cb-gd-faq summary::after{content:"";position:absolute;right:6px;top:50%;width:7px;height:7px;margin-top:-6px;border-right:1.5px solid #a0a0a0;border-bottom:1.5px solid #a0a0a0;transform:rotate(45deg);transition:transform .15s ease}
.cb-gd-faq details[open] summary::after{margin-top:-2px;transform:rotate(-135deg)}
.cb-gd-faq summary:hover{color:#000}
.cb-gd-faq summary:focus-visible{outline:2px solid rgba(10,10,10,.3);outline-offset:2px;border-radius:var(--cb-radius-2xs)}
html body .cb-gd-faq details p{margin:0 0 16px!important;padding-right:28px;font-size:13.5px!important;line-height:1.8!important;color:#6e6e6e!important}
.cb-gd-next{display:flex;flex-wrap:wrap;gap:10px;margin-top:48px}

/* 61.4 404 */
.cb-404{max-width:560px;margin:0 auto;padding:96px 24px 120px;text-align:center}
html body .cb-404-code{margin:0!important;font-size:96px!important;line-height:1!important;font-weight:300!important;letter-spacing:-.04em;color:#e4e4e7!important;font-variant-numeric:tabular-nums;user-select:none}
html body .cb-404-title{margin:20px 0 0!important;font-size:24px!important;line-height:1.35!important;font-weight:400!important;color:#1a1a1a!important}
html body .cb-404-sub{margin:10px auto 0!important;max-width:440px;font-size:14px!important;line-height:1.75!important;color:#6e6e6e!important;text-wrap:pretty}
.cb-404 .cb-404-search{margin-top:28px}
.cb-404-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 22px;margin-top:24px}
.cb-404-links a{font-size:13px;color:#6e6e6e!important;text-decoration:none!important;transition:color .12s ease}
.cb-404-links a:hover{color:#1a1a1a!important}

/* 61.5 响应式 */
@media (max-width:900px){.cb-pg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}html body .cb-pg-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.cb-pg-steps li:nth-child(3){border-left:0}.cb-pg-steps li:nth-child(3)::before{display:none}.cb-pg-steps li:nth-child(n+3){border-top:1px solid rgba(10,10,10,.06)}.cb-pg-split{grid-template-columns:minmax(0,1fr);gap:24px}.cb-gd{grid-template-columns:minmax(0,1fr);gap:24px}}
@media (max-width:640px){html body .cb-pg{padding:36px 16px 64px}.cb-pg-section{margin-top:52px}.cb-pg-grid{grid-template-columns:minmax(0,1fr);gap:12px}html body .cb-pg-steps{grid-template-columns:minmax(0,1fr)}.cb-pg-steps li+li{border-left:0;border-top:1px solid rgba(10,10,10,.06)}.cb-pg-steps li+li::before{display:none}html body .cb-pg-checks{grid-template-columns:minmax(0,1fr)}.cb-pg-cta{flex-direction:column;align-items:flex-start;padding:24px}.cb-gd{margin-top:32px;padding-top:28px}.cb-404{padding:64px 16px 88px}html body .cb-404-code{font-size:72px!important}}
@media (prefers-reduced-motion:reduce){.cb-pg-btn .cb-pg-ico,.cb-pg-feat,.cb-gd-faq summary::after{transition:none}}

/* 61.6 深色 */
html.cb-dark body .cb-pg,html.cb-dark body .cb-pg-title,html.cb-dark body .cb-pg-head h2,html.cb-dark body .cb-pg-feat h3,html.cb-dark body .cb-pg-steps h3,html.cb-dark .cb-pg-checks b,html.cb-dark body .cb-gd-sec h2,html.cb-dark .cb-gd-list b,html.cb-dark .cb-gd-faq summary,html.cb-dark body .cb-gd-table td:nth-child(2),html.cb-dark body .cb-404-title,html.cb-dark .cb-pg-btn,html.cb-dark .cb-gd-code,html.cb-dark .cb-gd-sec p a{color:#ededed!important}
html.cb-dark body .cb-pg-lead,html.cb-dark body .cb-pg-head p,html.cb-dark body .cb-pg-feat p,html.cb-dark body .cb-pg-steps p,html.cb-dark body .cb-gd-sec p,html.cb-dark .cb-gd-list li,html.cb-dark body .cb-gd-table td,html.cb-dark body .cb-gd-faq details p,html.cb-dark body .cb-404-sub,html.cb-dark .cb-gd-toc a,html.cb-dark .cb-404-links a{color:#a1a1a1!important}
html.cb-dark .cb-pg-kicker,html.cb-dark .cb-pg-feat,html.cb-dark body .cb-pg-steps,html.cb-dark .cb-gd-table-wrap,html.cb-dark .cb-pg-btn{background:#1c1c1e;border-color:rgba(255,255,255,.08)}
html.cb-dark .cb-pg-kicker i{background:#ededed}
html.cb-dark .cb-pg-feat-ico{background:rgba(255,255,255,.06);color:#d4d4d4}
html.cb-dark .cb-pg-feat:hover{border-color:rgba(255,255,255,.16);box-shadow:none}
html.cb-dark .cb-pg-steps li+li,html.cb-dark .cb-pg-steps li:nth-child(n+3),html.cb-dark .cb-gd,html.cb-dark .cb-gd-list li,html.cb-dark .cb-gd-faq,html.cb-dark .cb-gd-faq details,html.cb-dark .cb-gd-toc a{border-color:rgba(255,255,255,.08)}
html.cb-dark .cb-pg-steps li+li::before{background:#1c1c1e;border-color:rgba(255,255,255,.16)}
html.cb-dark .cb-pg-checks li .cb-pg-ico{color:#ededed}
html.cb-dark .cb-pg-btn:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.2)}
html.cb-dark .cb-pg-btn--primary{background:#ededed;border-color:#ededed;color:#111!important}
html.cb-dark .cb-pg-btn--primary:hover{background:#fff;border-color:#fff}
html.cb-dark .cb-pg-cta{background:#1a1a1d;color:#f4f4f5;border:1px solid rgba(255,255,255,.1)}
html.cb-dark body .cb-pg-cta h2{color:#f4f4f5!important}
html.cb-dark body .cb-pg-cta p{color:#a1a1aa!important}
html.cb-dark .cb-pg-cta .cb-pg-btn{background:#1c1c1e;border-color:rgba(255,255,255,.12);color:#ededed!important}
html.cb-dark .cb-pg-cta .cb-pg-btn--primary{background:#f4f4f5;border-color:#f4f4f5;color:#111113!important}
html.cb-dark body .cb-gd-table th{background:rgba(255,255,255,.03)!important;border-bottom-color:rgba(255,255,255,.08)!important}
html.cb-dark body .cb-gd-table td{border-top-color:rgba(255,255,255,.05)!important}
html.cb-dark .cb-gd-code{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1)}
html.cb-dark body .cb-gd-tip{background:rgba(255,255,255,.04)}
html.cb-dark body .cb-gd-tip .cb-gd-code{background:#1c1c1e}
html.cb-dark .cb-gd-toc a:hover,html.cb-dark .cb-404-links a:hover{color:#ededed!important;border-left-color:#ededed}
html.cb-dark body .cb-404-code{color:#2e2e30!important}

/* tabler61-fix: user 页无标题阴影 */
html body .cb-me header,html body .cb-me .cb-me-head,html body .cb-me .cb-me-sec-head,html body .cb-me .cb-me-sec-head h2{position:static!important;box-shadow:none!important;background:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html body .cb-me .cb-me-head{background:transparent!important}

/* ===== tabler62：书籍 / 书架列表页 单栏宽版面（去掉三栏）===== */
html body .cb-lib-page{max-width:1120px!important;margin:0 auto!important;padding:40px 24px 80px!important;box-sizing:border-box}
html body .cb-lib-page > main.cb-lib{padding:0!important;margin:0!important;max-width:none!important}

/* 页头：标题左，工具右 */
html body .cb-lib-page .cb-lib-head{align-items:flex-end!important;gap:24px!important;margin:0 0 28px!important;padding:0 0 22px!important;border-bottom:1px solid rgba(10,10,10,.08)!important}
html body .cb-lib-page .cb-lib-title{font-size:28px!important;font-weight:400!important;letter-spacing:-.01em!important;color:#1a1a1a!important;margin:0 0 6px!important;line-height:1.25!important}
html body .cb-lib-page .cb-lib-sub{font-size:14px!important;color:#6e6e6e!important;margin:0!important}
html body .cb-lib-page .cb-lib-tools{display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important;justify-content:flex-end!important}

/* 页头操作按钮 */
html body .cb-lib-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
html body .cb-lib-actions .cb-lib-act[class]{display:inline-flex!important;align-items:center!important;gap:6px!important;height:32px!important;padding:0 12px!important;border:1px solid rgba(10,10,10,.1)!important;border-radius:var(--cb-radius-sm)!important;background:#fff!important;color:#3a3a3a!important;font-size:13px!important;line-height:1!important;text-decoration:none!important;white-space:nowrap!important;transition:border-color .15s ease,background-color .15s ease,color .15s ease!important}
html body .cb-lib-actions .cb-lib-act[class]:hover{border-color:rgba(10,10,10,.22)!important;color:#0a0a0a!important}
html body .cb-lib-actions .cb-lib-act svg{width:15px!important;height:15px!important;margin:0!important;fill:currentColor}
html body .cb-lib-actions .cb-lib-act--primary[class]{background:#0a0a0a!important;border-color:#0a0a0a!important;color:#fff!important}
html body .cb-lib-actions .cb-lib-act--primary[class]:hover{background:#262626!important;border-color:#262626!important;color:#fff!important}
/* 视图切换（核心 entities.view-toggle）收进一个 32px 方块 */
html body .cb-lib-act-toggle{display:inline-flex;align-items:center}
html body .cb-lib-act-toggle form{display:inline-flex!important;margin:0!important}
html body .cb-lib-act-toggle .icon-list-item[class],html body .cb-lib-act-toggle button[class]{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:0!important;width:32px!important;height:32px!important;padding:0!important;margin:0!important;border:1px solid rgba(10,10,10,.1)!important;border-radius:var(--cb-radius-sm)!important;background:#fff!important;color:#3a3a3a!important;font-size:0!important;line-height:0!important;cursor:pointer!important;overflow:hidden!important}
html body .cb-lib-act-toggle .icon-list-item[class]:hover,html body .cb-lib-act-toggle button[class]:hover{border-color:rgba(10,10,10,.22)!important;color:#0a0a0a!important}
html body .cb-lib-act-toggle .icon-list-item > span,html body .cb-lib-act-toggle button > span{display:inline-flex!important;margin:0!important;padding:0!important}
html body .cb-lib-act-toggle .icon-list-item > span:not(:first-child),html body .cb-lib-act-toggle button > span:not(:first-child){display:none!important}
html body .cb-lib-act-toggle svg{width:15px!important;height:15px!important;margin:0!important;fill:currentColor}

/* 列表：宽版面自适应列数 */
html body .cb-lib-page .cb-lib-books[class]{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))!important;gap:20px!important}
html body .cb-lib-page .cb-lib-shelves.is-grid[class]{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(330px,1fr))!important;gap:20px!important}
html body .cb-lib-page .cb-lib-shelves.is-list[class],html body .cb-lib-page .cb-lib-list[class]{max-width:none!important}
html body .cb-lib-page .cb-lib-pager{margin-top:28px!important}

/* 底部三列：最近浏览 / 热门 / 新增 */

/* 响应式 */
@media (max-width:900px){
  html body .cb-lib-page{padding:28px 20px 64px!important}
  html body .cb-lib-page .cb-lib-head{flex-direction:column!important;align-items:flex-start!important}
  html body .cb-lib-page .cb-lib-tools{justify-content:flex-start!important}
}
@media (max-width:640px){
  html body .cb-lib-page{padding:20px 16px 56px!important}
  html body .cb-lib-page .cb-lib-title{font-size:24px!important}
  html body .cb-lib-page .cb-lib-books[class],html body .cb-lib-page .cb-lib-shelves.is-grid[class]{grid-template-columns:minmax(0,1fr)!important}
}
@media (prefers-reduced-motion:reduce){
  html body .cb-lib-actions .cb-lib-act[class]{transition:none!important}
}

/* 深色 */
html.cb-dark body .cb-lib-page .cb-lib-head{border-bottom-color:rgba(255,255,255,.08)!important}
html.cb-dark body .cb-lib-page .cb-lib-title{color:#f2f2f2!important}
html.cb-dark body .cb-lib-page .cb-lib-sub{color:#9a9a9a!important}
html.cb-dark body .cb-lib-actions .cb-lib-act[class],html.cb-dark body .cb-lib-act-toggle .icon-list-item[class],html.cb-dark body .cb-lib-act-toggle button[class]{background:#1c1c1e!important;border-color:rgba(255,255,255,.1)!important;color:#d4d4d4!important}
html.cb-dark body .cb-lib-actions .cb-lib-act[class]:hover,html.cb-dark body .cb-lib-act-toggle .icon-list-item[class]:hover,html.cb-dark body .cb-lib-act-toggle button[class]:hover{border-color:rgba(255,255,255,.24)!important;color:#fff!important}
html.cb-dark body .cb-lib-actions .cb-lib-act--primary[class]{background:#f2f2f2!important;border-color:#f2f2f2!important;color:#0a0a0a!important}
html.cb-dark body .cb-lib-actions .cb-lib-act--primary[class]:hover{background:#fff!important;color:#0a0a0a!important}
html.cb-dark body .cb-lib-more{border-top-color:rgba(255,255,255,.08)}
html.cb-dark body .cb-lib-more .cb-lib-more-title[class]{color:#8a8a8a!important}
html.cb-dark body .cb-lib-more-list a{color:#c8c8c8!important}
html.cb-dark body .cb-lib-more-list a:hover{background:rgba(255,255,255,.05)!important;color:#fff!important}

/* tabler64：列表页发现区（新书 / 新书架 / 尚未上架的书）、特点页 hero、指南页页眉与侧边导航、页脚与首页站点入口 */

/* ---- 列表页发现区 ---- */
html body .cb-disc{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:28px 44px;margin:48px 0 8px;padding:32px 0 0;border-top:1px solid rgba(10,10,10,.08)}
html body .cb-disc.is-solo,html body .cb-disc.no-new{grid-template-columns:minmax(0,1fr)}
html body .cb-disc-main,html body .cb-disc-side{min-width:0}
html body .cb-disc-side{display:flex;flex-direction:column;gap:28px}
html body .cb-disc.no-new .cb-disc-side{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px 44px}
html body .cb-disc-head{display:flex;align-items:baseline;gap:10px;margin:0 0 14px;min-width:0}
html body .cb-disc .cb-disc-title[class]{flex:none;margin:0!important;padding:0!important;font-size:15px!important;font-weight:600!important;letter-spacing:0!important;line-height:1.4!important;color:#0a0a0a!important;background:none!important;border:0!important;box-shadow:none!important}
html body .cb-disc-hint{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;color:#919191}
html body .cb-disc-more{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:4px;font-size:12.5px;color:#5a5a5a!important;text-decoration:none!important;white-space:nowrap}
html body .cb-disc-more:hover{color:#0a0a0a!important}
html body .cb-disc-more svg{transition:transform .15s ease}
html body .cb-disc-more:hover svg{transform:translateX(2px)}
html body .cb-disc-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
html body .cb-disc.is-solo .cb-disc-cards{grid-template-columns:repeat(4,minmax(0,1fr))}
html body .cb-disc.is-solo .cb-disc-cards--3{grid-template-columns:repeat(3,minmax(0,1fr))}
html body .cb-disc.is-solo .cb-disc-cards--1,html body .cb-disc.is-solo .cb-disc-cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}
html body .cb-disc-card{display:flex;align-items:flex-start;gap:14px;min-width:0;padding:14px;border:1px solid rgba(10,10,10,.08);border-radius:var(--cb-radius);background:#fff;color:inherit!important;text-decoration:none!important;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
html body .cb-disc-card:hover{border-color:rgba(10,10,10,.16);box-shadow:0 10px 24px -16px rgba(10,10,10,.35);transform:translateY(-1px)}
html body .cb-disc-cover{position:relative;flex:none;display:flex;align-items:center;justify-content:center;width:52px;height:68px;border-radius:5px 8px 8px 5px;overflow:hidden;font-size:19px;font-weight:600;line-height:1}
html body .cb-disc--shelves .cb-disc-cover{width:68px;height:52px;border-radius:var(--cb-radius-sm)}
html body .cb-disc--books .cb-disc-cover:not(.has-img)::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:currentColor;opacity:.16}
html body .cb-disc--shelves .cb-disc-cover:not(.has-img)::after{content:"";position:absolute;left:10px;right:10px;bottom:9px;height:2px;border-radius:2px;background:currentColor;opacity:.22}
html body .cb-disc-cover img{display:block;width:100%;height:100%;object-fit:cover}
html body .cb-disc-t0{background:#eef2ff;color:#4338ca}
html body .cb-disc-t1{background:#ecfdf5;color:#047857}
html body .cb-disc-t2{background:#fff7ed;color:#c2410c}
html body .cb-disc-t3{background:#fdf2f8;color:#be185d}
html body .cb-disc-t4{background:#f0f9ff;color:#0369a1}
html body .cb-disc-t5{background:#f5f3ff;color:#6d28d9}
html body .cb-disc-card-body{flex:1;min-width:0;align-self:stretch;display:flex;flex-direction:column;gap:5px}
html body .cb-disc-name{display:flex;align-items:center;gap:6px;min-width:0;font-size:14px;font-weight:600;line-height:1.45;color:#0a0a0a}
html body .cb-disc-name>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body .cb-disc-badge{flex:none;padding:0 6px;border-radius:var(--cb-radius-pill);background:#0a0a0a;color:#fff;font-style:normal;font-size:10.5px;font-weight:600;line-height:18px}
html body .cb-disc-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12.5px;line-height:1.6;color:#6b6b6b}
html body .cb-disc-stack{display:flex;flex-wrap:wrap;gap:3px 10px;min-width:0;font-size:12px;color:#5a5a5a}
html body .cb-disc-stack>span{display:inline-flex;align-items:center;gap:5px;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
html body .cb-disc .cb-hero-dot{display:inline-block;flex:none;width:6px;height:6px;border-radius:50%}
html body .cb-disc-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:auto;padding-top:2px;font-size:12px;color:#919191}
html body .cb-disc-meta>i{width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.6}
html body .cb-disc.is-solo .cb-disc-card{flex-direction:column;gap:12px}
html body .cb-disc.is-solo .cb-disc-cover{width:100%;height:auto;aspect-ratio:16/9;border-radius:var(--cb-radius-sm);font-size:28px}
html body .cb-disc--books.is-solo .cb-disc-cover:not(.has-img)::before{width:8px}
html body .cb-disc-list{list-style:none!important;margin:0!important;padding:0!important}
html body .cb-disc-list li{margin:0!important;padding:0!important}
html body .cb-disc-list a{display:flex;align-items:center;gap:10px;margin:0 -10px;padding:8px 10px;border-radius:var(--cb-radius-sm);color:#3a3a3a!important;font-size:13.5px;line-height:1.5;text-decoration:none!important;transition:background-color .15s ease,color .15s ease}
html body .cb-disc-list a:hover{background:rgba(10,10,10,.035);color:#0a0a0a!important}
html body .cb-disc-n{flex:none;display:inline-flex;align-items:center;justify-content:center;width:18px;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;color:#b5b5b5}
html body .cb-disc-rank--rank li:nth-child(-n+3) .cb-disc-n{color:#0a0a0a}
html body .cb-disc-li-text{flex:1;min-width:0;display:flex;flex-direction:column}
html body .cb-disc-li-name,html body .cb-disc-li-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body .cb-disc-li-sub{font-size:12px;color:#a3a3a3}
html body .cb-disc-li-meta{flex:none;font-size:12px;color:#a3a3a3;font-variant-numeric:tabular-nums}
@media (max-width:900px){
  html body .cb-disc{grid-template-columns:minmax(0,1fr)}
  html body .cb-disc.is-solo .cb-disc-cards,html body .cb-disc.is-solo .cb-disc-cards--3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  html body .cb-disc-cards,html body .cb-disc.is-solo .cb-disc-cards,html body .cb-disc.is-solo .cb-disc-cards--3,html body .cb-disc.is-solo .cb-disc-cards--2{grid-template-columns:minmax(0,1fr)}
  html body .cb-disc.is-solo .cb-disc-card{flex-direction:row;gap:14px}
  html body .cb-disc.is-solo .cb-disc-cover{width:52px;height:68px;aspect-ratio:auto;font-size:19px}
  html body .cb-disc--shelves.is-solo .cb-disc-cover{width:68px;height:52px}
  html body .cb-disc-hint{display:none}
}

/* ---- 页脚与首页入口 ---- */
html body .cb-footer__site.is-active{color:#0a0a0a!important;font-weight:500}
html body .cb-home-start{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0 0;font-size:13px;color:#6b6b6b}
html body .cb-home-start a{color:#0a0a0a!important;font-weight:500;text-decoration:none!important;border-bottom:1px solid rgba(10,10,10,.22);transition:border-color .15s ease}
html body .cb-home-start a:hover{border-bottom-color:#0a0a0a}
html body .cb-home-start>i{width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.5}

/* ---- 特点页 hero ---- */
html body .cb-fx-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:56px;align-items:center;padding:56px 0 64px;margin:0 0 8px;border-bottom:1px solid rgba(10,10,10,.08)}
html body .cb-fx-copy{min-width:0}
html body .cb-fx-kicker{display:inline-flex;align-items:center;gap:10px;margin:0 0 20px;font-size:13px;color:#6b6b6b}
html body .cb-fx-kicker-tag{padding:3px 10px;border-radius:var(--cb-radius-pill);background:#0a0a0a;color:#fff;font-size:12px;font-weight:600;letter-spacing:.02em}
html body .cb-fx-hero .cb-fx-title[class]{margin:0 0 18px!important;padding:0!important;font-size:clamp(30px,4.2vw,46px)!important;line-height:1.18!important;font-weight:700!important;letter-spacing:-.02em!important;color:#0a0a0a!important;border:0!important}
html body .cb-fx-title em{font-style:normal;padding:0 2px;background:linear-gradient(transparent 62%,rgba(250,204,21,.45) 62%)}
html body .cb-fx-lead{max-width:34em;margin:0 0 28px;font-size:16px;line-height:1.75;color:#4a4a4a}
html body .cb-fx-hero .cb-pg-actions{justify-content:flex-start!important;margin:0!important}
html body .cb-fx-stats{display:flex;margin:32px 0 0;padding:0}
html body .cb-fx-stats>div{padding:0 24px;border-left:1px solid rgba(10,10,10,.1)}
html body .cb-fx-stats>div:first-child{padding-left:0;border-left:0}
html body .cb-fx-stats dt{margin:0 0 2px;font-size:12px;font-weight:400;color:#919191}
html body .cb-fx-stats dd{margin:0;font-size:22px;font-weight:600;line-height:1.3;color:#0a0a0a;font-variant-numeric:tabular-nums}
html body .cb-fx-visual{position:relative;min-width:0;padding:32px 24px 40px 0}
html body .cb-fx-visual::before{content:"";position:absolute;top:0;right:0;bottom:0;left:24px;border-radius:24px;border:1px solid rgba(10,10,10,.05);background:radial-gradient(120% 90% at 100% 0%,#eef2ff 0%,rgba(238,242,255,0) 60%),radial-gradient(90% 80% at 0% 100%,#fdf2f8 0%,rgba(253,242,248,0) 60%),#fafafa}
html body .cb-fx-win{position:relative;margin-left:48px;border-radius:var(--cb-radius-lg);overflow:hidden;background:#fff;border:1px solid rgba(10,10,10,.08);box-shadow:0 24px 48px -24px rgba(10,10,10,.28),0 2px 6px rgba(10,10,10,.04)}
html body .cb-fx-bar{display:flex;align-items:center;gap:6px;height:38px;padding:0 14px;border-bottom:1px solid rgba(10,10,10,.06);background:#fcfcfc}
html body .cb-fx-bar>i{width:8px;height:8px;border-radius:50%;background:#e5e5e5}
html body .cb-fx-crumb{display:flex;align-items:center;gap:6px;margin-left:10px;overflow:hidden;white-space:nowrap;font-size:11.5px;color:#919191}
html body .cb-fx-crumb b{font-weight:400;color:#c8c8c8}
html body .cb-fx-crumb em{font-style:normal;font-weight:600;color:#0a0a0a}
html body .cb-fx-doc{display:grid;grid-template-columns:92px minmax(0,1fr) 80px;gap:16px;min-height:236px;padding:18px 16px 22px}
html body .cb-fx-side,html body .cb-fx-toc{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:11px;color:#a3a3a3}
html body .cb-fx-side em,html body .cb-fx-toc em{margin-bottom:2px;font-style:normal;font-size:10.5px;color:#c0c0c0}
html body .cb-fx-side span{display:block;padding:3px 6px;border-radius:5px;line-height:1.4;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
html body .cb-fx-side span.is-on{background:#f4f4f5;color:#0a0a0a;font-weight:600}
html body .cb-fx-toc span{display:block;padding:1px 0 1px 8px;border-left:2px solid #f0f0f0;line-height:1.5;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
html body .cb-fx-toc span.is-on{border-left-color:#0a0a0a;color:#0a0a0a}
html body .cb-fx-body{position:relative;display:flex;flex-direction:column;gap:9px;min-width:0}
html body .cb-fx-h{margin-bottom:4px;font-size:15px;font-weight:700;color:#0a0a0a}
html body .cb-fx-l{display:block;height:7px;border-radius:var(--cb-radius-2xs);background:#f0f0f0}
html body .cb-fx-l.w100{width:100%}
html body .cb-fx-l.w90{width:90%}
html body .cb-fx-l.w75{width:75%}
html body .cb-fx-l.w60{width:60%}
html body .cb-fx-l.w45{width:45%}
html body .cb-fx-mark{position:relative;display:flex;flex-direction:column;gap:7px;margin:6px -10px;padding:9px 10px;border-radius:var(--cb-radius-sm);background:#fefce8;box-shadow:inset 2px 0 0 #facc15}
html body .cb-fx-mark .cb-fx-l{background:#f5e9a8}
html body .cb-fx-pop{position:absolute;right:-4px;top:-30px;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:var(--cb-radius-sm);background:#0a0a0a;color:#fff;font-size:11px;font-weight:500;white-space:nowrap;box-shadow:0 8px 20px -8px rgba(10,10,10,.5)}
html body .cb-fx-pop svg{width:12px;height:12px}
html body .cb-fx-chip{position:absolute;display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border-radius:var(--cb-radius-md);background:#fff;border:1px solid rgba(10,10,10,.08);box-shadow:0 12px 28px -14px rgba(10,10,10,.3);font-size:12px;color:#3a3a3a;white-space:nowrap}
html body .cb-fx-chip svg{width:14px;height:14px;color:#6b6b6b}
html body .cb-fx-chip code{padding:1px 6px;border-radius:5px;background:#f4f4f5;color:#0a0a0a;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}
html body .cb-fx-chip--search{left:0;top:64px}
html body .cb-fx-chip--rev{right:16px;bottom:10px}
html body .cb-fx-chip--rev b{font-weight:600;color:#0a0a0a}
html body .cb-fx-chip--rev>i{width:6px;height:6px;border-radius:50%;background:#22c55e}
@media (max-width:960px){
  html body .cb-fx-hero{grid-template-columns:minmax(0,1fr);gap:36px;padding:36px 0 44px}
  html body .cb-fx-visual{max-width:580px}
}
@media (max-width:560px){
  html body .cb-fx-doc{grid-template-columns:minmax(0,1fr);min-height:0}
  html body .cb-fx-side,html body .cb-fx-toc{display:none}
  html body .cb-fx-win{margin-left:0}
  html body .cb-fx-visual{padding:44px 12px 48px}
  html body .cb-fx-visual::before{left:0}
  html body .cb-fx-chip--search{left:12px;top:8px}
  html body .cb-fx-stats>div{padding:0 16px}
}

/* ---- 指南页页眉 ---- */
html body .cb-gh{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:40px;align-items:end;margin:0 0 36px;padding:44px 0 36px;border-bottom:1px solid rgba(10,10,10,.08)}
html body .cb-gh-main{min-width:0}
html body .cb-gh-crumb{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:12.5px;color:#b5b5b5}
html body .cb-gh-crumb a{color:#6b6b6b!important;text-decoration:none!important}
html body .cb-gh-crumb a:hover{color:#0a0a0a!important}
html body .cb-gh-crumb [aria-current]{color:#0a0a0a}
html body .cb-gh .cb-gh-title[class]{margin:0 0 12px!important;padding:0!important;font-size:clamp(26px,3.4vw,36px)!important;line-height:1.22!important;font-weight:700!important;letter-spacing:-.015em!important;color:#0a0a0a!important;border:0!important}
html body .cb-gh-lead{max-width:36em;margin:0 0 20px;font-size:15.5px;line-height:1.75;color:#4a4a4a}
html body .cb-gh-meta{display:flex;flex-wrap:wrap;gap:8px;list-style:none!important;margin:0!important;padding:0!important}
html body .cb-gh-meta li{display:inline-flex;align-items:center;gap:6px;margin:0!important;padding:4px 10px;border-radius:var(--cb-radius-pill);background:#f4f4f5;font-size:12.5px;color:#4a4a4a}
html body .cb-gh-meta svg{width:14px;height:14px;color:#6b6b6b}
html body .cb-gh-search{min-width:0;margin:0;padding:18px;border-radius:var(--cb-radius-lg);background:#fafafa;border:1px solid rgba(10,10,10,.06)}
html body .cb-gh-search label{display:block;margin:0 0 10px;font-size:13px;font-weight:600;color:#0a0a0a}
html body .cb-gh-field{display:flex;align-items:center;gap:8px;height:42px;padding:0 6px 0 12px;border-radius:var(--cb-radius-md);background:#fff;border:1px solid rgba(10,10,10,.12);transition:border-color .15s ease,box-shadow .15s ease}
html body .cb-gh-field:focus-within{border-color:#0a0a0a;box-shadow:0 0 0 3px rgba(10,10,10,.08)}
html body .cb-gh-field svg{flex:none;width:16px;height:16px;color:#919191}
html body .cb-gh-field input[type=search]{flex:1;min-width:0;height:100%!important;margin:0!important;padding:0!important;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;font-size:14px!important;color:#0a0a0a}
html body .cb-gh-field button{flex:none;height:30px;padding:0 12px;border:0;border-radius:7px;background:#0a0a0a;color:#fff;font-size:13px;font-weight:500;cursor:pointer}
html body .cb-gh-try{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0 0;font-size:12px;color:#919191}
html body .cb-gh-try>span{margin-right:2px}
html body .cb-gh-try a{padding:2px 7px;border-radius:var(--cb-radius-xs);background:#fff;border:1px solid rgba(10,10,10,.08);color:#3a3a3a!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;text-decoration:none!important}
html body .cb-gh-try a:hover{border-color:rgba(10,10,10,.2);color:#0a0a0a!important}

/* ---- 指南页侧边导航 ---- */
html body .cb-pg .cb-gd.cb-gd--v2{display:grid!important;grid-template-columns:232px minmax(0,1fr)!important;gap:56px!important;align-items:start!important}
html body .cb-gd-nav{position:sticky;top:24px;align-self:start;display:flex;flex-direction:column;gap:14px;min-width:0}
html body .cb-gd-nav-label{margin:0;font-size:12px;font-weight:500;letter-spacing:.04em;color:#919191}
html body .cb-gd-progress{height:2px;border-radius:2px;overflow:hidden;background:rgba(10,10,10,.08)}
html body .cb-gd-progress>span{display:block;width:20%;height:100%;background:#0a0a0a;transition:width .25s ease}
html body .cb-gd-steps{display:flex;flex-direction:column;gap:2px;list-style:none!important;margin:0!important;padding:0!important}
html body .cb-gd-steps li{margin:0!important;padding:0!important}
html body .cb-gd-steps a{display:flex;align-items:flex-start;gap:12px;padding:9px 10px;border-radius:var(--cb-radius-md);color:#4a4a4a!important;text-decoration:none!important;transition:background-color .15s ease,color .15s ease}
html body .cb-gd-steps a:hover{background:rgba(10,10,10,.035);color:#0a0a0a!important}
html body .cb-gd-step-n{flex:none;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-top:1px;border-radius:50%;border:1px solid rgba(10,10,10,.14);font-size:11.5px;font-weight:600;color:#6b6b6b;font-variant-numeric:tabular-nums;transition:background-color .15s ease,border-color .15s ease,color .15s ease}
html body .cb-gd-step-t{display:flex;flex-direction:column;gap:1px;min-width:0}
html body .cb-gd-step-t b{font-size:13.5px;font-weight:600;line-height:1.5}
html body .cb-gd-step-t small{font-size:12px;line-height:1.45;color:#919191}
html body .cb-gd-steps a.is-active{background:#f4f4f5;color:#0a0a0a!important}
html body .cb-gd-steps a.is-active .cb-gd-step-n{background:#0a0a0a;border-color:#0a0a0a;color:#fff}
html body .cb-gd-help{padding:14px;border-radius:var(--cb-radius);border:1px dashed rgba(10,10,10,.14);font-size:12.5px;line-height:1.6;color:#6b6b6b}
html body .cb-gd-help b{display:block;margin-bottom:2px;font-size:13px;color:#0a0a0a}
html body .cb-gd-help p{margin:0 0 8px}
html body .cb-gd-help a{display:inline-flex;align-items:center;gap:4px;font-weight:500;color:#0a0a0a!important;text-decoration:none!important}
html body .cb-gd-help a svg{width:14px;height:14px}
html body .cb-gd--v2 .cb-gd-sec{scroll-margin-top:96px}
html body .cb-gd-sec-n{display:inline-block;margin-right:10px;font-size:.62em;font-weight:600;vertical-align:.18em;color:#b5b5b5;font-variant-numeric:tabular-nums}
@media (max-width:900px){
  html body .cb-gh{grid-template-columns:minmax(0,1fr);gap:24px;margin-bottom:20px;padding:28px 0}
  html body .cb-pg .cb-gd.cb-gd--v2{grid-template-columns:minmax(0,1fr)!important;gap:20px!important}
  html body .cb-gd-nav{top:0;z-index:5;gap:8px;margin:0 -16px;padding:10px 16px;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid rgba(10,10,10,.06)}
  html body .cb-gd-nav-label,html body .cb-gd-help,html body .cb-gd-step-t small{display:none}
  html body .cb-gd-steps{flex-direction:row;gap:6px;overflow-x:auto;scrollbar-width:none}
  html body .cb-gd-steps::-webkit-scrollbar{display:none}
  html body .cb-gd-steps a{align-items:center;gap:8px;padding:6px 10px;white-space:nowrap}
  html body .cb-gd-step-n{width:18px;height:18px;margin:0;font-size:10.5px}
  html body .cb-gd-progress{order:2}
}

/* ---- 减少动效 ---- */
@media (prefers-reduced-motion:reduce){
  html body .cb-disc-card,html body .cb-disc-more svg,html body .cb-disc-list a,html body .cb-gd-steps a,html body .cb-gd-progress>span,html body .cb-gh-field{transition:none!important}
  html body .cb-disc-card:hover{transform:none}
}

/* ---- 深色 ---- */
html.cb-dark body .cb-disc{border-top-color:rgba(255,255,255,.08)}
html.cb-dark body .cb-disc .cb-disc-title[class],html.cb-dark body .cb-disc-name{color:#f5f5f5!important}
html.cb-dark body .cb-disc-more{color:#a3a3a3!important}
html.cb-dark body .cb-disc-more:hover{color:#fff!important}
html.cb-dark body .cb-disc-card{background:#141414;border-color:rgba(255,255,255,.08)}
html.cb-dark body .cb-disc-card:hover{border-color:rgba(255,255,255,.18);box-shadow:0 10px 24px -16px rgba(0,0,0,.8)}
html.cb-dark body .cb-disc-desc{color:#a3a3a3}
html.cb-dark body .cb-disc-stack{color:#c8c8c8}
html.cb-dark body .cb-disc-badge{background:#fff;color:#0a0a0a}
html.cb-dark body .cb-disc-t0{background:rgba(99,102,241,.16);color:#a5b4fc}
html.cb-dark body .cb-disc-t1{background:rgba(16,185,129,.14);color:#6ee7b7}
html.cb-dark body .cb-disc-t2{background:rgba(249,115,22,.14);color:#fdba74}
html.cb-dark body .cb-disc-t3{background:rgba(236,72,153,.14);color:#f9a8d4}
html.cb-dark body .cb-disc-t4{background:rgba(14,165,233,.14);color:#7dd3fc}
html.cb-dark body .cb-disc-t5{background:rgba(139,92,246,.16);color:#c4b5fd}
html.cb-dark body .cb-disc-list a{color:#c8c8c8!important}
html.cb-dark body .cb-disc-list a:hover{background:rgba(255,255,255,.05);color:#fff!important}
html.cb-dark body .cb-disc-rank--rank li:nth-child(-n+3) .cb-disc-n{color:#f5f5f5}
html.cb-dark body .cb-disc-n,html.cb-dark body .cb-disc-li-sub,html.cb-dark body .cb-disc-li-meta{color:#737373}
html.cb-dark body .cb-footer__site.is-active{color:#fff!important}
html.cb-dark body .cb-home-start{color:#a3a3a3}
html.cb-dark body .cb-home-start a{color:#f5f5f5!important;border-bottom-color:rgba(255,255,255,.25)}
html.cb-dark body .cb-home-start a:hover{border-bottom-color:#fff}
html.cb-dark body .cb-fx-hero,html.cb-dark body .cb-gh{border-bottom-color:rgba(255,255,255,.08)}
html.cb-dark body .cb-fx-hero .cb-fx-title[class],html.cb-dark body .cb-gh .cb-gh-title[class]{color:#f5f5f5!important}
html.cb-dark body .cb-fx-title em{background:linear-gradient(transparent 62%,rgba(250,204,21,.28) 62%)}
html.cb-dark body .cb-fx-lead,html.cb-dark body .cb-gh-lead{color:#b5b5b5}
html.cb-dark body .cb-fx-kicker{color:#a3a3a3}
html.cb-dark body .cb-fx-kicker-tag{background:#fff;color:#0a0a0a}
html.cb-dark body .cb-fx-stats>div{border-left-color:rgba(255,255,255,.1)}
html.cb-dark body .cb-fx-stats dd{color:#f5f5f5}
html.cb-dark body .cb-fx-visual::before{border-color:rgba(255,255,255,.06);background:radial-gradient(120% 90% at 100% 0%,rgba(99,102,241,.16) 0%,rgba(99,102,241,0) 60%),radial-gradient(90% 80% at 0% 100%,rgba(236,72,153,.1) 0%,rgba(236,72,153,0) 60%),#111}
html.cb-dark body .cb-fx-win{background:#161616;border-color:rgba(255,255,255,.08);box-shadow:0 24px 48px -24px rgba(0,0,0,.8)}
html.cb-dark body .cb-fx-bar{background:#1a1a1a;border-bottom-color:rgba(255,255,255,.06)}
html.cb-dark body .cb-fx-bar>i{background:#333}
html.cb-dark body .cb-fx-crumb em,html.cb-dark body .cb-fx-h,html.cb-dark body .cb-fx-toc span.is-on{color:#f5f5f5}
html.cb-dark body .cb-fx-side span.is-on{background:#232323;color:#f5f5f5}
html.cb-dark body .cb-fx-toc span{border-left-color:#262626}
html.cb-dark body .cb-fx-toc span.is-on{border-left-color:#f5f5f5}
html.cb-dark body .cb-fx-l{background:#262626}
html.cb-dark body .cb-fx-mark{background:rgba(250,204,21,.08)}
html.cb-dark body .cb-fx-mark .cb-fx-l{background:rgba(250,204,21,.22)}
html.cb-dark body .cb-fx-pop{background:#fff;color:#0a0a0a}
html.cb-dark body .cb-fx-chip{background:#1a1a1a;border-color:rgba(255,255,255,.1);color:#c8c8c8}
html.cb-dark body .cb-fx-chip code{background:#262626;color:#f5f5f5}
html.cb-dark body .cb-fx-chip--rev b{color:#f5f5f5}
html.cb-dark body .cb-gh-crumb a{color:#a3a3a3!important}
html.cb-dark body .cb-gh-crumb [aria-current]{color:#f5f5f5}
html.cb-dark body .cb-gh-meta li{background:#1c1c1c;color:#c8c8c8}
html.cb-dark body .cb-gh-search{background:#141414;border-color:rgba(255,255,255,.06)}
html.cb-dark body .cb-gh-search label,html.cb-dark body .cb-gd-help b,html.cb-dark body .cb-gd-help a{color:#f5f5f5!important}
html.cb-dark body .cb-gh-field{background:#0f0f0f;border-color:rgba(255,255,255,.12)}
html.cb-dark body .cb-gh-field:focus-within{border-color:#f5f5f5;box-shadow:0 0 0 3px rgba(255,255,255,.08)}
html.cb-dark body .cb-gh-field input[type=search]{color:#f5f5f5}
html.cb-dark body .cb-gh-field button{background:#fff;color:#0a0a0a}
html.cb-dark body .cb-gh-try a{background:#1a1a1a;border-color:rgba(255,255,255,.1);color:#c8c8c8!important}
html.cb-dark body .cb-gh-try a:hover{color:#fff!important}
html.cb-dark body .cb-gd-progress{background:rgba(255,255,255,.08)}
html.cb-dark body .cb-gd-progress>span{background:#f5f5f5}
html.cb-dark body .cb-gd-steps a{color:#b5b5b5!important}
html.cb-dark body .cb-gd-steps a:hover{background:rgba(255,255,255,.05);color:#fff!important}
html.cb-dark body .cb-gd-steps a.is-active{background:#1f1f1f;color:#fff!important}
html.cb-dark body .cb-gd-step-n{border-color:rgba(255,255,255,.16);color:#a3a3a3}
html.cb-dark body .cb-gd-steps a.is-active .cb-gd-step-n{background:#fff;border-color:#fff;color:#0a0a0a}
html.cb-dark body .cb-gd-help{border-color:rgba(255,255,255,.14);color:#a3a3a3}
html.cb-dark body .cb-gd-sec-n{color:#5a5a5a}
@media (max-width:900px){
  html.cb-dark body .cb-gd-nav{background:rgba(15,15,15,.92);border-bottom-color:rgba(255,255,255,.06)}
}
/* tabler64-end */

/* tabler65：站点页面（关于、托管、生态、常见问题、支持、日志、法务、价格、状态）与分栏页脚 */
.cb-sp{--sp-ink:#0a0a0a;--sp-muted:#6b6b6b;--sp-soft:#f6f6f5;--sp-card:#fff;--sp-line:#e8e8e6;--sp-line2:#d4d4d1;--sp-ok:#16a34a;--sp-bad:#dc2626;max-width:1120px;margin:0 auto;padding:0 24px 96px;color:var(--sp-ink)}
html.cb-dark .cb-sp{--sp-ink:#f1f1f0;--sp-muted:#a1a1a0;--sp-soft:#161616;--sp-card:#101010;--sp-line:#262626;--sp-line2:#3a3a3a;--sp-ok:#4ade80;--sp-bad:#f87171}
.cb-sp a{color:inherit}
.cb-sp-ico{display:block;flex:none}
.cb-sp-hero{position:relative;isolation:isolate;padding:64px 0 52px;margin:0 0 64px;border-bottom:1px solid var(--sp-line)}
.cb-sp-hero::before{content:"";position:absolute;inset:0 -24px;z-index:-1;pointer-events:none;background-image:linear-gradient(var(--sp-line) 1px,transparent 1px),linear-gradient(90deg,var(--sp-line) 1px,transparent 1px);background-size:36px 36px;-webkit-mask-image:radial-gradient(ellipse 55% 95% at 88% 0%,#000 0%,transparent 72%);mask-image:radial-gradient(ellipse 55% 95% at 88% 0%,#000 0%,transparent 72%);opacity:.75}
.cb-sp-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 28px;font-size:.8125rem;color:var(--sp-muted)}
.cb-sp-crumb a{color:var(--sp-muted);text-decoration:none}
.cb-sp-crumb a:hover{color:var(--sp-ink)}
.cb-sp-crumb span[aria-hidden]{opacity:.45}
.cb-sp-crumb [aria-current]{color:var(--sp-ink)}
.cb-sp-kicker{display:inline-flex;align-items:center;gap:8px;margin:0 0 18px;padding:5px 12px 5px 10px;border:1px solid var(--sp-line);border-radius:var(--cb-radius-pill);background:var(--sp-card);font-size:.8125rem;font-weight:500;color:var(--sp-muted)}
.cb-sp-kicker i{width:6px;height:6px;border-radius:50%;background:var(--sp-ink)}
.cb-sp-title{margin:0 0 18px;max-width:18em;font-size:clamp(2rem,4.4vw,3.15rem);line-height:1.16;letter-spacing:-.025em;font-weight:650;color:var(--sp-ink)}
.cb-sp--doc .cb-sp-title{font-size:clamp(1.9rem,3.6vw,2.6rem)}
.cb-sp-lead{margin:0;max-width:40em;font-size:1.0625rem;line-height:1.85;color:var(--sp-muted)}
.cb-sp-lead a,.cb-sp-prose a,.cb-sp-qa-a a,.cb-sp-card p a,.cb-sp-empty a{color:var(--sp-ink);text-decoration:underline;text-decoration-color:var(--sp-line2);text-underline-offset:3px}
.cb-sp-lead a:hover,.cb-sp-prose a:hover,.cb-sp-qa-a a:hover{text-decoration-color:var(--sp-ink)}
.cb-sp-meta{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:22px 0 0;padding:0}
.cb-sp-meta li{padding:4px 10px;border-radius:var(--cb-radius-xs);background:var(--sp-soft);border:1px solid var(--sp-line);font-size:.8125rem;color:var(--sp-muted)}
.cb-sp-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:28px}
.cb-sp .cb-pg-btn{text-decoration:none}
.cb-sp .cb-pg-btn .cb-sp-ico{width:16px;height:16px;margin-left:6px;transition:transform .2s}
.cb-sp .cb-pg-btn:hover .cb-sp-ico{transform:translateX(2px)}
.cb-sp-sec{margin:0 0 88px;scroll-margin-top:88px}
.cb-sp-sec-h{margin:0 0 28px;max-width:44em}
.cb-sp-h2{display:flex;align-items:baseline;gap:12px;margin:0 0 10px;font-size:1.5rem;line-height:1.3;letter-spacing:-.015em;font-weight:620;color:var(--sp-ink)}
.cb-sp-n{flex:none;font-size:.8125rem;font-weight:500;letter-spacing:0;font-variant-numeric:tabular-nums;color:var(--sp-muted)}
.cb-sp-sec-lead{margin:0;line-height:1.8;color:var(--sp-muted)}
.cb-sp-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.cb-sp-cards--c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cb-sp-cards--c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.cb-sp-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:22px 22px 24px;border:1px solid var(--sp-line);border-radius:var(--cb-radius-lg);background:var(--sp-card);color:inherit;text-decoration:none;transition:border-color .2s,transform .2s,box-shadow .2s}
a.cb-sp-card:hover{border-color:var(--sp-line2);transform:translateY(-2px);box-shadow:0 14px 32px -20px rgba(0,0,0,.28);opacity:1;text-decoration:none}
html.cb-dark a.cb-sp-card:hover{box-shadow:0 14px 32px -20px rgba(0,0,0,.8)}
.cb-sp-card-ico{display:grid;place-items:center;width:38px;height:38px;margin-bottom:6px;border:1px solid var(--sp-line);border-radius:var(--cb-radius-md);background:var(--sp-soft);color:var(--sp-ink)}
.cb-sp-card h3{margin:0;font-size:1rem;line-height:1.45;font-weight:600;color:var(--sp-ink)}
.cb-sp-card p{margin:0;font-size:.9rem;line-height:1.75;color:var(--sp-muted)}
.cb-sp-card-go{display:inline-flex;align-items:center;gap:6px;margin-top:auto;padding-top:8px;font-size:.8125rem;font-weight:500;color:var(--sp-ink)}
.cb-sp-card-go .cb-sp-ico{width:14px;height:14px;transition:transform .2s}
a.cb-sp-card:hover .cb-sp-card-go .cb-sp-ico{transform:translateX(3px)}
.cb-sp-card-meta{margin-top:auto;padding-top:10px;font-size:.8125rem;color:var(--sp-muted)}
.cb-sp-mono{display:grid;place-items:center;width:38px;height:38px;margin-bottom:6px;border-radius:var(--cb-radius-md);background:var(--sp-ink);color:var(--sp-card);font-weight:600;font-size:1rem}
.cb-sp-mono.is-soft{background:var(--sp-soft);border:1px solid var(--sp-line);color:var(--sp-ink)}
.cb-sp-more{margin:18px 0 0}
.cb-sp-more a{display:inline-flex;align-items:center;gap:6px;font-size:.875rem;font-weight:500;text-decoration:none}
.cb-sp-more .cb-sp-ico{width:14px;height:14px}
.cb-sp-empty{margin:0;padding:28px;border:1px dashed var(--sp-line2);border-radius:var(--cb-radius-lg);text-align:center;color:var(--sp-muted)}
.cb-sp-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0;padding:0;border:1px solid var(--sp-line);border-radius:var(--cb-radius-lg);background:var(--sp-card);overflow:hidden}
.cb-sp-steps li{padding:24px 22px 26px;border-left:1px solid var(--sp-line)}
.cb-sp-steps li:first-child{border-left:0}
.cb-sp-step-n{display:inline-grid;place-items:center;width:28px;height:28px;margin-bottom:14px;border:1px solid var(--sp-line2);border-radius:50%;font-size:.8125rem;font-weight:600;font-variant-numeric:tabular-nums}
.cb-sp-steps li:first-child .cb-sp-step-n{background:var(--sp-ink);border-color:var(--sp-ink);color:var(--sp-card)}
.cb-sp-steps h3{margin:0 0 6px;font-size:1rem;font-weight:600}
.cb-sp-steps p{margin:0;font-size:.9rem;line-height:1.75;color:var(--sp-muted)}
.cb-sp-faq{border-top:1px solid var(--sp-line)}
.cb-sp-qa{border-bottom:1px solid var(--sp-line)}
.cb-sp-qa summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 2px;list-style:none;cursor:pointer;font-size:1rem;font-weight:550;color:var(--sp-ink)}
.cb-sp-qa summary::-webkit-details-marker{display:none}
.cb-sp-qa summary:hover span{opacity:.75}
.cb-sp-qa summary i{position:relative;flex:none;width:12px;height:12px;color:var(--sp-muted)}
.cb-sp-qa summary i::before,.cb-sp-qa summary i::after{content:"";position:absolute;left:0;top:5.25px;width:12px;height:1.5px;border-radius:1px;background:currentColor;transition:transform .2s}
.cb-sp-qa summary i::after{transform:rotate(90deg)}
.cb-sp-qa[open] summary i::after{transform:rotate(0)}
.cb-sp-qa-a{max-width:46em;padding:0 2px 20px;font-size:.95rem;line-height:1.85;color:var(--sp-muted)}
.cb-sp-qa-a p{margin:0}
.cb-sp-qa-a code{padding:1px 6px;border-radius:5px;background:var(--sp-soft);border:1px solid var(--sp-line);font-size:.85em;color:var(--sp-ink)}
.cb-sp-tl{list-style:none;margin:0;padding:0}
.cb-sp-tl>li{display:grid;grid-template-columns:132px minmax(0,1fr);gap:28px}
.cb-sp-tl-d{padding-top:2px;font-size:.875rem;color:var(--sp-muted);font-variant-numeric:tabular-nums}
.cb-sp-tl-c{position:relative;padding:0 0 44px 28px;border-left:1px solid var(--sp-line)}
.cb-sp-tl>li:last-child .cb-sp-tl-c{padding-bottom:4px}
.cb-sp-tl-c::before{content:"";position:absolute;left:-6px;top:6px;width:11px;height:11px;border-radius:50%;border:2px solid var(--sp-ink);background:var(--sp-card);box-sizing:border-box}
.cb-sp-tl-tag{display:inline-block;margin:0 0 8px;padding:2px 8px;border:1px solid var(--sp-line);border-radius:5px;background:var(--sp-soft);font-size:.75rem;font-weight:600;color:var(--sp-ink)}
.cb-sp-tl-tag.is-new{background:var(--sp-ink);border-color:var(--sp-ink);color:var(--sp-card)}
.cb-sp-tl-c h3{margin:0 0 10px;font-size:1.0625rem;font-weight:600}
.cb-sp-tl-c ul{margin:0;padding-left:1.1em;font-size:.95rem;line-height:1.85;color:var(--sp-muted)}
.cb-sp-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.cb-sp-plan{display:flex;flex-direction:column;padding:28px;border:1px solid var(--sp-line);border-radius:var(--cb-radius-xl);background:var(--sp-card)}
.cb-sp-plan.is-hl{background:var(--sp-ink);border-color:var(--sp-ink);color:var(--sp-card)}
.cb-sp-plan-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 6px}
.cb-sp-plan h3{margin:0;font-size:1.125rem;font-weight:600;color:inherit}
.cb-sp-plan-badge{padding:2px 9px;border-radius:var(--cb-radius-pill);background:var(--sp-card);color:var(--sp-ink);font-size:.75rem;font-weight:600}
.cb-sp-plan-desc{min-height:3.4em;margin:0 0 20px;font-size:.9rem;line-height:1.7;color:var(--sp-muted)}
.cb-sp-plan-price{margin:0 0 22px;font-size:1.9rem;line-height:1.2;font-weight:650;letter-spacing:-.02em}
.cb-sp-plan-price.is-tbd{font-size:1.375rem}
.cb-sp-plan-price small{margin-left:4px;font-size:.8125rem;font-weight:400;color:var(--sp-muted)}
.cb-sp-plan ul{display:grid;gap:10px;list-style:none;margin:0 0 28px;padding:22px 0 0;border-top:1px solid var(--sp-line);font-size:.9rem}
.cb-sp-plan li{display:flex;align-items:flex-start;gap:10px;line-height:1.6}
.cb-sp-plan li .cb-sp-ico{width:16px;height:16px;margin-top:3px}
.cb-sp-plan .cb-sp-actions{margin-top:auto}
.cb-sp-plan .cb-pg-btn{width:100%;justify-content:center}
.cb-sp-plan.is-hl .cb-sp-plan-desc,.cb-sp-plan.is-hl .cb-sp-plan-price small{color:inherit;opacity:.7}
.cb-sp-plan.is-hl ul{border-top-color:rgba(255,255,255,.18)}
html.cb-dark .cb-sp-plan.is-hl ul{border-top-color:rgba(0,0,0,.14)}
html body .cb-sp-plan.is-hl .cb-pg-btn{background:var(--sp-card)!important;border-color:var(--sp-card)!important;color:var(--sp-ink)!important}
.cb-sp-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;border:1px solid var(--sp-line);border-radius:var(--cb-radius-lg);background:var(--sp-card);overflow:hidden}
.cb-sp-stats div{padding:24px 26px;border-left:1px solid var(--sp-line)}
.cb-sp-stats div:first-child{border-left:0}
.cb-sp-stats dt{margin:0 0 6px;font-size:.8125rem;color:var(--sp-muted)}
.cb-sp-stats dd{margin:0;font-size:2.1rem;line-height:1.15;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.cb-sp-stats dd a{text-decoration:none}
.cb-sp-search{max-width:680px}
.cb-sp-search .cb-home-search{margin:0}
.cb-sp-search-hints{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 0;font-size:.8125rem;color:var(--sp-muted)}
.cb-sp-search-hints span{margin-right:2px}
.cb-sp-search-hints a{padding:3px 9px;border:1px solid var(--sp-line);border-radius:var(--cb-radius-xs);background:var(--sp-card);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;color:var(--sp-ink);text-decoration:none}
.cb-sp-search-hints a:hover{border-color:var(--sp-line2)}
.cb-sp-st{border:1px solid var(--sp-line);border-radius:var(--cb-radius-xl);background:var(--sp-card);overflow:hidden}
.cb-sp-st-top{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:22px 24px;border-bottom:1px solid var(--sp-line)}
.cb-sp-st-dot{position:relative;flex:none;width:10px;height:10px;border-radius:50%;background:var(--sp-ok);color:var(--sp-ok)}
.cb-sp-st-dot::after{content:"";position:absolute;inset:-5px;border-radius:50%;background:currentColor;opacity:.2;animation:cb-sp-pulse 2s ease-out infinite}
.cb-sp-st.is-bad .cb-sp-st-dot{background:var(--sp-bad);color:var(--sp-bad)}
@keyframes cb-sp-pulse{0%{transform:scale(.6);opacity:.35}100%{transform:scale(1.7);opacity:0}}
.cb-sp-st-top strong{font-size:1.0625rem;font-weight:600}
.cb-sp-st-top time{margin-left:auto;font-size:.8125rem;color:var(--sp-muted)}
.cb-sp-st-rows{list-style:none;margin:0;padding:0}
.cb-sp-st-rows li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid var(--sp-line);font-size:.95rem}
.cb-sp-st-rows li:last-child{border-bottom:0}
.cb-sp-st-v{display:inline-flex;align-items:center;gap:12px;font-size:.875rem;color:var(--sp-muted)}
.cb-sp-st-v b{min-width:2.5em;font-weight:550;text-align:right;color:var(--sp-ok)}
.cb-sp-st-rows li.is-bad .cb-sp-st-v b{color:var(--sp-bad)}
.cb-sp-st-foot{display:flex;flex-wrap:wrap;gap:8px 28px;padding:14px 24px;border-top:1px solid var(--sp-line);background:var(--sp-soft);font-size:.8125rem;color:var(--sp-muted)}
@media (prefers-reduced-motion:reduce){.cb-sp-st-dot::after{animation:none}.cb-sp-card,a.cb-sp-card:hover{transition:none;transform:none}}
.cb-sp-cta{position:relative;isolation:isolate;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 40px;margin:0 0 24px;padding:40px 44px;border:1px solid var(--sp-line);border-radius:20px;background:var(--sp-soft);overflow:hidden;scroll-margin-top:88px}
.cb-sp-cta::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:radial-gradient(var(--sp-line2) 1px,transparent 1px);background-size:16px 16px;-webkit-mask-image:linear-gradient(90deg,transparent 35%,#000);mask-image:linear-gradient(90deg,transparent 35%,#000);opacity:.8}
.cb-sp-cta-txt{flex:1 1 320px}
.cb-sp-cta h2{margin:0 0 8px;font-size:1.375rem;line-height:1.35;font-weight:620;letter-spacing:-.015em;color:var(--sp-ink)}
.cb-sp-cta p{margin:0;max-width:34em;line-height:1.8;color:var(--sp-muted)}
.cb-sp-cta .cb-sp-actions{margin:0}
.cb-sp-doc{display:grid;grid-template-columns:220px minmax(0,1fr);gap:72px;align-items:start}
.cb-sp-toc{position:sticky;top:88px;max-height:calc(100vh - 110px);overflow:auto}
.cb-sp-toc-h{margin:0 0 10px;font-size:.75rem;font-weight:600;letter-spacing:.06em;color:var(--sp-muted)}
.cb-sp-toc ol{list-style:none;margin:0 0 32px;padding:0;border-left:1px solid var(--sp-line)}
.cb-sp-toc ol a{display:flex;gap:10px;margin-left:-1px;padding:6px 0 6px 14px;border-left:1px solid transparent;font-size:.875rem;line-height:1.5;color:var(--sp-muted);text-decoration:none;transition:color .15s,border-color .15s}
.cb-sp-toc ol a span{flex:none;padding-top:1px;font-size:.75rem;font-variant-numeric:tabular-nums;opacity:.6}
.cb-sp-toc ol a:hover{color:var(--sp-ink)}
.cb-sp-toc ol a.is-active{border-left-color:var(--sp-ink);color:var(--sp-ink);font-weight:550}
.cb-sp-toc-rel{display:grid;gap:8px;list-style:none;margin:0;padding:0;font-size:.875rem}
.cb-sp-toc-rel a{color:var(--sp-muted);text-decoration:none}
.cb-sp-toc-rel a:hover{color:var(--sp-ink)}
.cb-sp-body{min-width:0;max-width:46em}
.cb-sp--doc .cb-sp-sec{margin-bottom:56px}
.cb-sp--doc .cb-sp-h2{font-size:1.3rem}
.cb-sp-prose p,.cb-sp-prose li{font-size:.975rem;line-height:1.9;color:var(--sp-ink)}
.cb-sp-prose p{margin:0 0 1em}
.cb-sp-prose ul,.cb-sp-prose ol{margin:0 0 1em;padding-left:1.25em}
.cb-sp-prose li{margin:0 0 .45em}
.cb-sp-prose li::marker{color:var(--sp-muted)}
.cb-sp-prose strong{font-weight:600}
.cb-sp-note{padding:14px 18px;border:1px solid var(--sp-line);border-radius:var(--cb-radius-md);background:var(--sp-soft);font-size:.9rem!important;color:var(--sp-muted)!important}
.cb-404-note{margin:28px 0 0;font-size:.875rem;color:var(--cb-muted,#6b6b6b)}
.cb-404-note a{text-decoration:underline;text-underline-offset:3px}
html body .cb-footer.cb-footer--v2{display:block;margin-top:72px;padding:56px 24px 32px;border-top:1px solid #e8e8e6;background:transparent;text-align:left;font-size:.875rem;line-height:1.6;color:var(--cb-muted,#6b6b6b)}
.cb-fo{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,3fr);gap:48px;max-width:1120px;margin:0 auto}
.cb-fo-logo{display:inline-block;margin:0 0 10px;font-size:1rem;font-weight:650;letter-spacing:-.01em;color:#0a0a0a!important;text-decoration:none}
.cb-fo-brand p{max-width:22em;margin:0;line-height:1.75}
.cb-fo-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.cb-fo-h{margin:0 0 14px;font-size:.8125rem;font-weight:600;color:#0a0a0a}
.cb-fo-col ul{display:grid;gap:10px;list-style:none;margin:0;padding:0}
.cb-fo-col a{display:inline-flex;align-items:center;gap:4px;text-decoration:none}
.cb-fo-ext{opacity:.55}
.cb-fo-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;max-width:1120px;margin:44px auto 0;padding-top:22px;border-top:1px solid #e8e8e6;font-size:.8125rem}
.cb-fo-bar p{margin:0}
.cb-fo-bar-links{display:flex;flex-wrap:wrap;gap:6px 18px}
html.cb-dark body .cb-footer.cb-footer--v2{border-top-color:#262626;color:#a1a1a0}
html.cb-dark .cb-fo-logo,html.cb-dark .cb-fo-h{color:#f1f1f0!important}
html.cb-dark .cb-fo-bar{border-top-color:#262626}
@media (max-width:960px){
.cb-sp-cards,.cb-sp-cards--c4{grid-template-columns:repeat(2,minmax(0,1fr))}
.cb-sp-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
.cb-sp-steps li:nth-child(3){border-left:0}
.cb-sp-steps li:nth-child(n+3){border-top:1px solid var(--sp-line)}
.cb-sp-plans{grid-template-columns:1fr;max-width:520px}
.cb-sp-doc{grid-template-columns:1fr;gap:0}
.cb-sp-toc{position:static;max-height:none;margin:0 0 40px;padding:18px 20px;border:1px solid var(--sp-line);border-radius:var(--cb-radius-lg);background:var(--sp-soft)}
.cb-sp-toc ol{margin:0;border-left:0;columns:2;column-gap:24px}
.cb-sp-toc ol li{break-inside:avoid}
.cb-sp-toc ol a{margin-left:0;padding-left:0;border-left:0}
.cb-sp-toc-h--rel,.cb-sp-toc-rel{display:none}
.cb-fo{grid-template-columns:1fr;gap:36px}
}
@media (max-width:640px){
.cb-sp{padding:0 18px 72px}
.cb-sp-hero{padding:40px 0 36px;margin-bottom:44px}
.cb-sp-hero::before{inset:0 -18px}
.cb-sp-sec{margin-bottom:60px}
.cb-sp-cards,.cb-sp-cards--c2,.cb-sp-cards--c4,.cb-sp-steps{grid-template-columns:1fr}
.cb-sp-steps li{border-left:0!important;border-top:1px solid var(--sp-line)}
.cb-sp-steps li:first-child{border-top:0}
.cb-sp-stats{grid-template-columns:1fr}
.cb-sp-stats div{border-left:0;border-top:1px solid var(--sp-line)}
.cb-sp-stats div:first-child{border-top:0}
.cb-sp-tl>li{grid-template-columns:1fr;gap:4px}
.cb-sp-tl-d{padding-left:28px;border-left:1px solid var(--sp-line)}
.cb-sp-cta{padding:28px 24px}
.cb-sp-toc ol{columns:1}
.cb-sp-st-top time{margin-left:0;width:100%}
.cb-fo-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* tabler65-end */

/* tabler66：页面 hero 不再继承核心 header 顶栏样式（阴影、层级、白字）的兜底复位 */
html body .cb-pg header:not(.header),html body .cb-sp header:not(.header),html body .cb-gh,html body .cb-sp-hero,html body .cb-disc-head{box-shadow:none!important;z-index:auto!important}
html body .cb-pg header:not(.header),html body .cb-sp header:not(.header){color:inherit!important;background:transparent}
/* tabler66-end */

/* tabler66b：书籍 / 书架两段式视图切换 */
html body .cb-lib-act-toggle{width:auto!important;height:auto!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important}
html body .cb-vs{display:inline-flex;align-items:center;gap:2px;padding:2px;border:1px solid rgba(10,10,10,.1);border-radius:9px;background:#f4f4f5}
html body .cb-vs form{display:contents;margin:0}
html body .cb-vs-btn{display:inline-flex;align-items:center;gap:6px;height:28px;margin:0;padding:0 10px;border:0;border-radius:7px;background:transparent;color:#6b6b6b;font-size:13px;line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}
html body .cb-vs-btn svg{width:15px;height:15px;margin:0;fill:currentColor}
html body .cb-vs-btn:hover{color:#0a0a0a}
html body .cb-vs-btn.is-on{background:#fff;color:#0a0a0a;box-shadow:0 1px 2px rgba(10,10,10,.08),0 0 0 1px rgba(10,10,10,.06)}
html body .cb-vs-btn:focus-visible{outline:2px solid #0a0a0a;outline-offset:1px}
html.cb-dark body .cb-vs{background:#1a1a1a;border-color:rgba(255,255,255,.1)}
html.cb-dark body .cb-vs-btn{color:#a3a3a3}
html.cb-dark body .cb-vs-btn:hover{color:#f5f5f5}
html.cb-dark body .cb-vs-btn.is-on{background:#2a2a2a;color:#f5f5f5;box-shadow:0 0 0 1px rgba(255,255,255,.08)}
html.cb-dark body .cb-vs-btn:focus-visible{outline-color:#f5f5f5}
@media (max-width:560px){html body .cb-vs-btn{padding:0 8px}html body .cb-vs-btn span{display:none}}
@media (prefers-reduced-motion:reduce){html body .cb-vs-btn{transition:none}}
/* tabler66b-end */

/* tabler66c：站点页（关于、托管、生态等）hero 与组件对齐特点页、指南页 */
html body .cb-sp-hero{padding:44px 0 36px;margin:0 0 56px;border-bottom:1px solid rgba(10,10,10,.08)}
html body .cb-sp-hero::before{display:none}
html body .cb-sp-crumb{gap:8px;margin:0 0 16px;font-size:12.5px;color:#b5b5b5}
html body .cb-sp-crumb a{color:#6b6b6b}
html body .cb-sp-crumb span[aria-hidden]{opacity:1}
html body .cb-sp-crumb a:hover,html body .cb-sp-crumb [aria-current]{color:#0a0a0a}
html body .cb-sp-kicker{gap:0;margin:0 0 20px;padding:3px 10px;border:0;border-radius:var(--cb-radius-pill);background:#0a0a0a;color:#fff;font-size:12px;letter-spacing:.02em}
html body .cb-sp-kicker i{display:none}
html body .cb-sp .cb-sp-title[class]:not(#cb-w400-a):not(#cb-w400-b){max-width:18em;margin:0 0 18px!important;padding:0!important;border:0!important;font-size:clamp(30px,4.2vw,46px)!important;line-height:1.18!important;font-weight:700!important;letter-spacing:-.02em!important;color:#0a0a0a!important}
html body .cb-sp--doc .cb-sp-title[class]:not(#cb-w400-a):not(#cb-w400-b){font-size:clamp(26px,3.4vw,36px)!important;line-height:1.22!important;letter-spacing:-.015em!important}
html body .cb-sp-lead{max-width:36em;font-size:16px;line-height:1.75;color:#4a4a4a}
html body .cb-sp-meta{gap:8px;margin:20px 0 0}
html body .cb-sp-meta li{padding:4px 10px;border:0;border-radius:var(--cb-radius-pill);background:#f4f4f5;font-size:12.5px;color:#4a4a4a}
html body .cb-sp .cb-sp-h2[class]:not(#cb-w400-a):not(#cb-w400-b),html body .cb-sp .cb-sp-cta h2:not(#cb-w400-a):not(#cb-w400-b){font-weight:600!important;color:var(--sp-ink)!important}
html body .cb-sp .cb-sp-card h3:not(#cb-w400-a):not(#cb-w400-b),html body .cb-sp .cb-sp-plan h3:not(#cb-w400-a):not(#cb-w400-b),html body .cb-sp .cb-sp-st-top strong:not(#cb-w400-a):not(#cb-w400-b),html body .cb-sp .cb-sp-prose strong:not(#cb-w400-a):not(#cb-w400-b),html body .cb-sp .cb-sp-card-go:not(#cb-w400-a):not(#cb-w400-b){font-weight:600!important}
html body .cb-sp .cb-sp-stats dd:not(#cb-w400-a):not(#cb-w400-b),html body .cb-sp .cb-sp-plan-price:not(#cb-w400-a):not(#cb-w400-b),html body .cb-sp .cb-sp-mono:not(#cb-w400-a):not(#cb-w400-b),html body .cb-sp .cb-sp-plan-badge:not(#cb-w400-a):not(#cb-w400-b){font-weight:600!important}
html body .cb-sp-card{border-color:rgba(10,10,10,.08);border-radius:var(--cb-radius)}
html body a.cb-sp-card:hover{border-color:rgba(10,10,10,.16);box-shadow:0 10px 24px -16px rgba(10,10,10,.35);transform:translateY(-1px)}
html body .cb-sp-card-ico{border:0;border-radius:var(--cb-radius-md);background:#f4f4f5}
html.cb-dark body .cb-sp-hero{border-bottom-color:rgba(255,255,255,.08)}
html.cb-dark body .cb-sp-crumb a{color:#a3a3a3}
html.cb-dark body .cb-sp-crumb a:hover,html.cb-dark body .cb-sp-crumb [aria-current]{color:#f5f5f5}
html.cb-dark body .cb-sp-kicker{background:#fff;color:#0a0a0a}
html.cb-dark body .cb-sp .cb-sp-title[class]:not(#cb-w400-a):not(#cb-w400-b){color:#f5f5f5!important}
html.cb-dark body .cb-sp-lead{color:#b5b5b5}
html.cb-dark body .cb-sp-meta li{background:#1c1c1c;color:#c8c8c8}
html.cb-dark body .cb-sp-card{border-color:rgba(255,255,255,.08)}
html.cb-dark body a.cb-sp-card:hover{border-color:rgba(255,255,255,.18);box-shadow:0 10px 24px -16px rgba(0,0,0,.8)}
html.cb-dark body .cb-sp-card-ico{background:#1c1c1c}
@media (max-width:900px){html body .cb-sp-hero{padding:28px 0;margin-bottom:40px}}
@media (prefers-reduced-motion:reduce){html body a.cb-sp-card:hover{transform:none}}
/* tabler66c-end */
/* tabler67: 单按钮视图切换 */
html body .cb-vs{display:inline-flex;gap:0;margin:0;padding:0;border:0;background:transparent;border-radius:var(--cb-radius-sm)}
html body .cb-vs .cb-vs-btn{height:32px;padding:0 12px;border:1px solid rgba(10,10,10,.12);border-radius:var(--cb-radius-sm);background:#fff;color:#3f3f46;box-shadow:none}
html body .cb-vs .cb-vs-btn:hover{background:#f4f4f5;color:#0a0a0a}
html.cb-dark body .cb-vs{background:transparent}
html.cb-dark body .cb-vs .cb-vs-btn{background:#1a1a1a;border-color:rgba(255,255,255,.12);color:#d4d4d4}
html.cb-dark body .cb-vs .cb-vs-btn:hover{background:#262626;color:#f5f5f5}
@media (max-width:560px){html body .cb-vs .cb-vs-btn{padding:0 9px}}
/* tabler69: 两行简洁页脚（上行导航，下行版权与备案）+ 版权行间距 */
html body .cb-footer .cb-fm{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;flex-wrap:nowrap;white-space:normal;text-align:center}
html body .cb-footer .cb-fm-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 20px;margin:0}
html body .cb-footer .cb-fm-links a{font-size:13px;color:#525252;text-decoration:none}
html body .cb-footer .cb-fm-links a:hover,html body .cb-footer .cb-fm-links a.is-active{color:#0a0a0a}
html body .cb-footer .cb-fm-legal,html body .cb-footer .cb-fo-legal{display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px;margin:0;font-size:12px;line-height:1.6;color:#9a9a9a}
html body .cb-footer .cb-fm-legal{justify-content:center}
html body .cb-footer .cb-fm-legal a,html body .cb-footer .cb-fo-legal a{color:inherit;text-decoration:none}
html body .cb-footer .cb-fm-legal a:hover,html body .cb-footer .cb-fo-legal a:hover{color:#525252}
html.cb-dark body .cb-footer .cb-fm-links a{color:#a3a3a3}
html.cb-dark body .cb-footer .cb-fm-links a:hover,html.cb-dark body .cb-footer .cb-fm-links a.is-active{color:#f5f5f5}
html.cb-dark body .cb-footer .cb-fm-legal,html.cb-dark body .cb-footer .cb-fo-legal{color:#737373}
html.cb-dark body .cb-footer .cb-fm-legal a:hover,html.cb-dark body .cb-footer .cb-fo-legal a:hover{color:#d4d4d4}

/* tabler73：首页/站点页大页脚版权行 —— 品牌版权与主体/备案分层，点号分隔，右链对齐 */
html body .cb-footer.cb-footer--v2 .cb-fo-bar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 32px;max-width:1120px;margin:40px auto 0;padding-top:20px;border-top:1px solid rgba(10,10,10,.08);font-size:12.5px;line-height:1.55;color:#8a8a8a}
html body .cb-footer.cb-footer--v2 .cb-fo-meta{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1 1 280px}
html body .cb-footer.cb-footer--v2 .cb-fo-copy,html body .cb-footer.cb-footer--v2 .cb-fo-legal{display:flex;flex-wrap:wrap;align-items:center;gap:0 8px;margin:0}
html body .cb-footer.cb-footer--v2 .cb-fo-copy-main{color:#525252;font-weight:500;letter-spacing:.01em}
html body .cb-footer.cb-footer--v2 .cb-fo-sep{color:#c4c4c4;font-weight:400;user-select:none}
html body .cb-footer.cb-footer--v2 .cb-fo-op,html body .cb-footer.cb-footer--v2 .cb-fo-icp{color:#8a8a8a}
html body .cb-footer.cb-footer--v2 .cb-fo-icp{text-decoration:none;border-bottom:1px solid transparent;transition:color .15s ease,border-color .15s ease}
html body .cb-footer.cb-footer--v2 .cb-fo-icp:hover{color:#525252;border-bottom-color:rgba(82,82,82,.35)}
html body .cb-footer.cb-footer--v2 .cb-fo-bar-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px 16px;margin:0;flex:0 0 auto}
html body .cb-footer.cb-footer--v2 .cb-fo-bar-links a{color:#6b6b6b;text-decoration:none;letter-spacing:.01em;transition:color .15s ease}
html body .cb-footer.cb-footer--v2 .cb-fo-bar-links a:hover{color:#0a0a0a}
html.cb-dark body .cb-footer.cb-footer--v2 .cb-fo-bar{border-top-color:rgba(255,255,255,.08);color:#737373}
html.cb-dark body .cb-footer.cb-footer--v2 .cb-fo-copy-main{color:#a3a3a3}
html.cb-dark body .cb-footer.cb-footer--v2 .cb-fo-sep{color:#404040}
html.cb-dark body .cb-footer.cb-footer--v2 .cb-fo-op,html.cb-dark body .cb-footer.cb-footer--v2 .cb-fo-icp{color:#737373}
html.cb-dark body .cb-footer.cb-footer--v2 .cb-fo-icp:hover{color:#d4d4d4;border-bottom-color:rgba(212,212,212,.35)}
html.cb-dark body .cb-footer.cb-footer--v2 .cb-fo-bar-links a{color:#a3a3a3}
html.cb-dark body .cb-footer.cb-footer--v2 .cb-fo-bar-links a:hover{color:#f5f5f5}
@media (max-width:640px){
html body .cb-footer.cb-footer--v2 .cb-fo-bar{align-items:flex-start;gap:14px}
html body .cb-footer.cb-footer--v2 .cb-fo-bar-links{justify-content:flex-start;width:100%}
}
@media (prefers-reduced-motion:reduce){
html body .cb-footer.cb-footer--v2 .cb-fo-icp,html body .cb-footer.cb-footer--v2 .cb-fo-bar-links a{transition:none}
}
/* tabler73-end */

/* tabler74：深色模式阅读面 —— 正文卡片与页面同底，去掉浮起灰蓝纸；评论/页脚跟 cb-dark */
html.cb-dark,
html.cb-dark body,
html.cb-dark #content,
html.cb-dark #main-content,
html.cb-dark .tri-layout,
html.cb-dark .tri-layout-container,
html.cb-dark .tri-layout-middle,
html.cb-dark .tri-layout-middle-contents,
html.cb-dark .tri-layout-left,
html.cb-dark .tri-layout-right{
  background:#111113!important;
  color:#e4e4e7!important;
}
html.cb-dark header#header{
  background:#111113!important;
  color:#e4e4e7!important;
  border-color:rgba(255,255,255,.08)!important;
  box-shadow:none!important;
}
html.cb-dark .card,
html.cb-dark .grid-card,
html.cb-dark .content-wrap.card,
html.cb-dark main.content-wrap.card,
html.cb-dark body.item-type-page main.content-wrap.card,
html.cb-dark main.content-wrap.card:has(.page-content),
html.cb-dark .tri-layout-middle > .content-wrap.card,
html.cb-dark .tri-layout-middle-contents > .card,
html.cb-dark #main-content .content-wrap.card{
  background:#111113!important;
  color:#e4e4e7!important;
  border:0!important;
  box-shadow:none!important;
}
html.cb-dark .page-content,
html.cb-dark .page-content .page-content,
html.cb-dark #main-content .page-content{
  background:transparent!important;
  color:#d4d4d8!important;
}
html.cb-dark .page-content p,
html.cb-dark .page-content li,
html.cb-dark .page-content h1,
html.cb-dark .page-content h2,
html.cb-dark .page-content h3,
html.cb-dark .page-content h4,
html.cb-dark .page-content h5,
html.cb-dark .page-content h6,
html.cb-dark main.content-wrap.card h1,
html.cb-dark main.content-wrap.card > h1{
  color:#ececef!important;
}
html.cb-dark .page-content a{color:#93c5fd!important}
html.cb-dark .text-muted,
html.cb-dark .tri-layout-left .text-muted,
html.cb-dark .tri-layout-right .text-muted{color:#a1a1aa!important}
html.cb-dark nav.breadcrumbs,
html.cb-dark nav.breadcrumbs a,
html.cb-dark nav.breadcrumbs .icon-list-item{color:#a1a1aa!important;background:transparent!important}
html.cb-dark #main-content #comments.cb-discuss{
  background:#18181b!important;
  border-color:rgba(255,255,255,.08)!important;
  box-shadow:none!important;
  color:#d4d4d8!important;
}
html.cb-dark #main-content #comments.cb-discuss:hover,
html.cb-dark #main-content #comments.cb-discuss:focus-within{
  background:#1c1c1f!important;
  border-color:rgba(255,255,255,.14)!important;
  box-shadow:none!important;
}
html.cb-dark body > footer.cb-footer,
html.cb-dark #cb-footer{
  background:transparent!important;
  border-top-color:rgba(255,255,255,.08)!important;
  color:#a1a1aa!important;
}
html.cb-dark .cb-fm-links a{color:#a1a1aa!important}
html.cb-dark .cb-fm-links a:hover,
html.cb-dark .cb-fm-links a.is-active{color:#f4f4f5!important}
html.cb-dark .cb-fm-legal{color:#71717a!important}
html.cb-dark .entity-list-item:hover,
html.cb-dark .book-tree .entity-list-item.selected,
html.cb-dark .tri-layout-left .entity-list.compact a.entity-list-item:hover{
  background:rgba(255,255,255,.05)!important;
}
html.cb-dark .page-content img,
html.cb-dark .page-content figure{
  background:transparent!important;
}
@media (prefers-reduced-motion:reduce){
html.cb-dark #main-content #comments.cb-discuss{transition:none!important}
}
/* tabler74-end */

/* tabler75：深色模式全站补齐 —— 上一页/下一页、讨论区、CTA、移动端 tabs、搜索按钮 */
html.cb-dark #sibling-navigation a{
  background:#1a1a1d!important;
  border-color:rgba(255,255,255,.12)!important;
  color:#ececef!important;
  box-shadow:none!important;
}
html.cb-dark #sibling-navigation a:hover,
html.cb-dark #sibling-navigation a:focus-visible{
  background:#222226!important;
  border-color:rgba(255,255,255,.28)!important;
}
html.cb-dark #sibling-navigation a > .text-muted{
  color:#a1a1aa!important;
}
html.cb-dark #sibling-navigation .icon-list-item,
html.cb-dark #sibling-navigation .icon-list-item > span,
html.cb-dark #sibling-navigation .icon-list-item > span:last-child,
html.cb-dark #sibling-navigation a .inline-block{
  color:#e8e8ea!important;
  background:transparent!important;
}
html.cb-dark #sibling-navigation .svg-icon,
html.cb-dark #sibling-navigation svg,
html.cb-dark #sibling-navigation .text-page{
  color:#a1a1aa!important;
  fill:currentColor!important;
}

html.cb-dark #main-content #comments.cb-discuss,
html.cb-dark #comments.cb-discuss{
  background:#18181b!important;
  border-color:rgba(255,255,255,.12)!important;
  color:#e4e4e7!important;
  box-shadow:none!important;
}
html.cb-dark #main-content #comments.cb-discuss:hover,
html.cb-dark #main-content #comments.cb-discuss:focus-within{
  background:#1c1c1f!important;
  border-color:rgba(255,255,255,.18)!important;
  box-shadow:none!important;
}
html.cb-dark #comments,
html.cb-dark #comments .wpcy-pc-discuss__gate,
html.cb-dark #comments .wpcy-pc-discuss__text,
html.cb-dark #comments .cb-discuss__src,
html.cb-dark #comments .wpcy-pc-discuss__gate *{
  color:#d4d4d8!important;
}
html.cb-dark #comments a:not(.wpcy-pc-discuss__btn){
  color:#93c5fd!important;
}
html.cb-dark #comments a:not(.wpcy-pc-discuss__btn):hover{
  color:#bfdbfe!important;
}
html.cb-dark #comments .wpcy-pc-discuss__btn,
html.cb-dark #comments a.wpcy-pc-discuss__btn{
  background:#f4f4f5!important;
  color:#111113!important;
  border:1px solid transparent!important;
  box-shadow:none!important;
}
html.cb-dark #comments .wpcy-pc-discuss__btn:hover{
  background:#ffffff!important;
  color:#000!important;
}

html.cb-dark .cb-cta-btn--primary,
html.cb-dark a.cb-cta-btn--primary,
html.cb-dark .cb-pg-btn--primary,
html.cb-dark a.cb-pg-btn--primary{
  background:#f4f4f5!important;
  color:#111113!important;
  border-color:transparent!important;
}
html.cb-dark .cb-cta-btn--primary:hover,
html.cb-dark .cb-pg-btn--primary:hover{
  background:#ffffff!important;
}
html.cb-dark .cb-cta-link--primary,
html.cb-dark a.cb-cta-link--primary{
  background:#1c1c1f!important;
  border-color:rgba(255,255,255,.14)!important;
  color:#f4f4f5!important;
}
html.cb-dark .cb-cta-link--primary:hover{
  border-color:rgba(255,255,255,.28)!important;
  background:#222226!important;
}
html.cb-dark .cb-pg-cta,
html.cb-dark section.cb-pg-cta{
  background:#1a1a1d!important;
  color:#e4e4e7!important;
  border-color:rgba(255,255,255,.1)!important;
}
html.cb-dark .cb-pg-cta h2,
html.cb-dark .cb-pg-cta p,
html.cb-dark .cb-pg-cta .cb-pg-cta-lead{
  color:#e4e4e7!important;
}
html.cb-dark .cb-ent-read,
html.cb-dark a.cb-ent-read{
  background:#f4f4f5!important;
  color:#111113!important;
  border-color:transparent!important;
}
html.cb-dark .cb-ent-read:hover{
  background:#ffffff!important;
  color:#000!important;
}
html.cb-dark .cb-field-btn,
html.cb-dark .cb-search-filters button.button,
html.cb-dark .cb-search-filters .button{
  background:#f4f4f5!important;
  color:#111113!important;
  border-color:transparent!important;
}
html.cb-dark .tri-layout-mobile-tabs,
html.cb-dark .tri-layout-mobile-tabs.print-hidden{
  background:#18181b!important;
  color:#e4e4e7!important;
  border-color:rgba(255,255,255,.1)!important;
  box-shadow:none!important;
}
html.cb-dark .tri-layout-mobile-tabs a,
html.cb-dark .tri-layout-mobile-tabs button{
  color:#d4d4d8!important;
}
html.cb-dark .tri-layout-mobile-tabs a.is-active,
html.cb-dark .tri-layout-mobile-tabs .active,
html.cb-dark .tri-layout-mobile-tabs [aria-selected="true"]{
  color:#f4f4f5!important;
}
html.cb-dark .tag-item,
html.cb-dark .tag-item.primary-background-light{
  background:#1c1c1f!important;
  border-color:rgba(255,255,255,.12)!important;
  color:#d4d4d8!important;
}
html.cb-dark .page-content .callout,
html.cb-dark .page-content blockquote{
  background:#1a1a1d!important;
  border-color:rgba(255,255,255,.12)!important;
  color:#d4d4d8!important;
}
html.cb-dark .page-content kbd{
  background:#1c1c1f!important;
  border-color:rgba(255,255,255,.16)!important;
  color:#e4e4e7!important;
}
html.cb-dark body .book-tree .list-item-book > .entity-list-item[class],
html.cb-dark body .book-tree .list-item-book > .entity-list-item[class]:hover{
  background:#1a1a1d!important;
  border-color:rgba(255,255,255,.12)!important;
  color:#e4e4e7!important;
}
html.cb-dark .cb-fm-links a{color:#a1a1aa!important}
html.cb-dark .cb-fm-links a:hover,
html.cb-dark .cb-fm-links a.is-active{color:#f4f4f5!important}
html.cb-dark .cb-fm-legal{color:#71717a!important}
/* tabler75-end */

/* tabler76：深色模式评论表单 + 书籍导航树 —— 去掉白底/深字/暗蓝选中 */
html.cb-dark #product-comments-root,
html.cb-dark #product-comments-root .pc-panel,
html.cb-dark #product-comments-root .pc-panel-body,
html.cb-dark #product-comments-root .pc-thread,
html.cb-dark #product-comments-root .pc-form,
html.cb-dark #comments .pc-shell{
  background:transparent!important;
  color:#e4e4e7!important;
}
html.cb-dark #product-comments-root .pc-sub,
html.cb-dark #product-comments-root .pc-identity-hint,
html.cb-dark #product-comments-root .pc-hint,
html.cb-dark #product-comments-root .pc-count,
html.cb-dark #product-comments-root .pc-opt-hint{
  color:#a1a1aa!important;
}
html.cb-dark #product-comments-root .pc-label-text,
html.cb-dark #product-comments-root label,
html.cb-dark #product-comments-root .pc-msg,
html.cb-dark #product-comments-root .pc-opt{
  color:#d4d4d8!important;
}
html.cb-dark #product-comments-root .pc-empty{
  background:#1a1a1d!important;
  border:1px solid rgba(255,255,255,.1)!important;
  color:#a1a1aa!important;
  box-shadow:none!important;
}
html.cb-dark #product-comments-root .pc-empty strong{
  color:#f4f4f5!important;
}
html.cb-dark #product-comments-root .pc-empty p{
  color:#a1a1aa!important;
}
html.cb-dark #product-comments-root .pc-session-guest{
  background:#1a1a1d!important;
  border:1px solid rgba(255,255,255,.1)!important;
  color:#d4d4d8!important;
}
html.cb-dark #product-comments-root .pc-session-login,
html.cb-dark #product-comments-root .pc-session-sync{
  color:#d4d4d8!important;
}
html.cb-dark #product-comments-root .pc-session-login a,
html.cb-dark #product-comments-root a{
  color:#93c5fd!important;
}
html.cb-dark #product-comments-root input,
html.cb-dark #product-comments-root textarea,
html.cb-dark #product-comments-root select{
  background:#121214!important;
  color:#f4f4f5!important;
  border:1px solid rgba(255,255,255,.14)!important;
  box-shadow:none!important;
  caret-color:#f4f4f5!important;
}
html.cb-dark #product-comments-root input::placeholder,
html.cb-dark #product-comments-root textarea::placeholder{
  color:#71717a!important;
  opacity:1!important;
}
html.cb-dark #product-comments-root input:focus,
html.cb-dark #product-comments-root textarea:focus{
  border-color:rgba(255,255,255,.32)!important;
  outline:none!important;
  background:#161618!important;
}
html.cb-dark #product-comments-root .pc-actions > button,
html.cb-dark #product-comments-root button[type=submit]{
  background:#f4f4f5!important;
  color:#111113!important;
  border:1px solid transparent!important;
  box-shadow:none!important;
}
html.cb-dark #product-comments-root .pc-actions > button:hover,
html.cb-dark #product-comments-root button[type=submit]:hover{
  background:#ffffff!important;
  color:#000!important;
}

/* 书籍导航树 */
html.cb-dark .book-tree,
html.cb-dark .book-tree .entity-list-item,
html.cb-dark .book-tree .entity-list-item-name,
html.cb-dark .book-tree .entity-list-item h4,
html.cb-dark .book-tree a{
  color:#d4d4d8!important;
}
html.cb-dark .book-tree .list-item-book .entity-list-item-name,
html.cb-dark .book-tree .list-item-chapter > .entity-list-item .entity-list-item-name,
html.cb-dark .book-tree .list-item-page > .entity-list-item .entity-list-item-name{
  color:#e8e8ea!important;
}
html.cb-dark body .book-tree .list-item-book > .entity-list-item[class],
html.cb-dark body .book-tree .list-item-book > .entity-list-item[class]:hover,
html.cb-dark .book-tree .entity-list-item.book,
html.cb-dark .book-tree .entity-list-item.selected,
html.cb-dark .book-tree .entity-list-item[aria-current="page"]{
  background:#1a1a1d!important;
  border-color:rgba(255,255,255,.12)!important;
  box-shadow:none!important;
  color:#f4f4f5!important;
}
html.cb-dark .book-tree .entity-list-item.selected .entity-list-item-name,
html.cb-dark .book-tree .entity-list-item[aria-current="page"] .entity-list-item-name,
html.cb-dark .book-tree .entity-list-item.selected .icon,
html.cb-dark .book-tree .entity-list-item[aria-current="page"] .icon{
  color:#f4f4f5!important;
}
html.cb-dark .book-tree .entity-list-item:hover{
  background:rgba(255,255,255,.06)!important;
}
html.cb-dark .book-tree .entity-list-item:hover .entity-list-item-name{
  color:#ffffff!important;
}
html.cb-dark .book-tree .list-item-book > .entity-list-item:hover{
  background:#222226!important;
}
html.cb-dark .book-tree .entity-list-item .icon,
html.cb-dark .book-tree .list-item-book .icon{
  color:#a1a1aa!important;
}
html.cb-dark .cb-toc,
html.cb-dark .cb-ent .cb-toc{
  background:#1a1a1d!important;
  border-color:rgba(255,255,255,.1)!important;
}
html.cb-dark .cb-toc-page > a,
html.cb-dark .cb-toc-title,
html.cb-dark .cb-toc a{
  color:#d4d4d8!important;
}
html.cb-dark .cb-toc-page > a:hover{
  background:rgba(255,255,255,.06)!important;
  color:#f4f4f5!important;
  box-shadow:none!important;
}
html.cb-dark .cb-toc-page + .cb-toc-page > a{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06)!important;
}
html.cb-dark .cb-ent .cb-toc > li + .cb-toc-chapter,
html.cb-dark .cb-ent .cb-toc > .cb-toc-chapter + li{
  border-top-color:rgba(255,255,255,.08)!important;
}
html.cb-dark .tag-item.primary-background-light,
html.cb-dark .tri-layout-left .tag-item{
  background:#1a1a1d!important;
  border-color:rgba(255,255,255,.12)!important;
  color:#d4d4d8!important;
}
html.cb-dark .tag-item a{color:#d4d4d8!important}
/* tabler76-end */

/* tabler77：深色模式收尾 —— 特点页 CTA、白底小标签、导出按钮、入门编号、分页、生态字标 */
html.cb-dark .cb-pg-cta h2{
  color:#f4f4f5!important;
}
html.cb-dark .cb-pg-cta p{
  color:#a1a1aa!important;
}
html.cb-dark .cb-pg-cta .cb-pg-btn--primary{
  background:#f4f4f5!important;
  color:#111113!important;
  border-color:transparent!important;
}
html.cb-dark .cb-pg-cta .cb-pg-btn--primary:hover{
  background:#ffffff!important;
  color:#000!important;
}
html.cb-dark .cb-pg-cta .cb-pg-btn:not(.cb-pg-btn--primary){
  background:#1c1c1e!important;
  color:#ededed!important;
  border:1px solid rgba(255,255,255,.12)!important;
}
html.cb-dark .cb-pg-cta .cb-pg-btn:not(.cb-pg-btn--primary):hover{
  background:#242428!important;
  color:#fff!important;
}

/* 白底小标签 → 半透明深底 */
html.cb-dark .cb-fx-kicker-tag,
html.cb-dark .cb-sp-kicker,
html.cb-dark .cb-disc-badge{
  background:rgba(255,255,255,.08)!important;
  color:#e4e4e7!important;
  border-color:rgba(255,255,255,.16)!important;
  box-shadow:none!important;
}
html.cb-dark .cb-fx-pop{
  background:#26262a!important;
  color:#f4f4f5!important;
  border-color:rgba(255,255,255,.16)!important;
  box-shadow:0 6px 18px rgba(0,0,0,.45)!important;
}

/* 右栏工具条：下载 / 导出 等 */
html.cb-dark .tri-layout-right .icon-list-item,
html.cb-dark .tri-layout-right .icon-list-item > span,
html.cb-dark #export-menu > button.icon-list-item,
html.cb-dark #export-menu > button.icon-list-item span{
  color:#d4d4d8!important;
}
html.cb-dark .tri-layout-right .icon-list-item:hover,
html.cb-dark .tri-layout-right .icon-list-item:hover > span,
html.cb-dark #export-menu > button.icon-list-item:hover span{
  color:#ffffff!important;
}
html.cb-dark .tri-layout-right .icon-list-item .icon,
html.cb-dark .tri-layout-right .icon-list-item svg{
  color:#a1a1aa!important;
  fill:currentColor;
}

/* 入门页章节编号 */
html.cb-dark .cb-gd-sec-n{
  color:#8b8b94!important;
}

/* 分页当前页 */
html.cb-dark .pagination .page-item.active .page-link{
  background:#2a2a2e!important;
  color:#f4f4f5!important;
  border-color:rgba(255,255,255,.22)!important;
}
html.cb-dark .pagination .page-link:hover{
  background:#242428!important;
  color:#fff!important;
}

/* 生态卡片字标 */
html.cb-dark .cb-sp-mono{
  background:#232326!important;
  color:#e4e4e7!important;
  border-color:rgba(255,255,255,.1)!important;
}
html.cb-dark .cb-sp-card:hover .cb-sp-mono{
  background:#2c2c30!important;
  color:#fff!important;
}

/* tabler79：书籍导航对齐 —— 标题/当前书籍/条目/展开按钮统一 10px 文字起点；选中态与卡片区分 */
html body .book-tree > h5,
html body .book-tree h5{
  padding-left:10px!important;
}
html body .book-tree .list-item-book > .entity-list-item{
  padding:8px 10px!important;
}
html body .book-tree .list-item-book > .entity-list-item > .content,
html body .book-tree .list-item-book > .entity-list-item .entity-list-item-name{
  margin-left:0!important;
  padding-left:0!important;
}
html body .book-tree .cb-bn-more{
  margin:2px 0 0!important;
  padding:0!important;
  list-style:none;
}
html body .book-tree .cb-bn-tog{
  padding:6px 10px!important;
  margin:0!important;
  border-radius:var(--cb-radius-sm)!important;
  outline:none!important;
}
html body .book-tree .cb-bn-tog:hover{
  color:#0a0a0a!important;
}
html body .book-tree .cb-bn-tog:focus{
  outline:none!important;
}
html body .book-tree .cb-bn-tog:focus-visible,
html body .book-tree .entity-list-item:focus-visible{
  outline:2px solid rgba(10,10,10,.28)!important;
  outline-offset:1px!important;
}
html:not(.cb-dark):not(.dark-mode) body .book-tree .list-item-page > .entity-list-item.selected,
html:not(.cb-dark):not(.dark-mode) body .book-tree .list-item-chapter .entity-list-item.selected,
html:not(.cb-dark):not(.dark-mode) body .book-tree .entity-list-item[aria-current="page"]{
  background:rgba(10,10,10,.06)!important;
  box-shadow:none!important;
}
html:not(.cb-dark):not(.dark-mode) body .book-tree .entity-list-item.selected .entity-list-item-name,
html:not(.cb-dark):not(.dark-mode) body .book-tree .entity-list-item[aria-current="page"] .entity-list-item-name{
  color:#0a0a0a!important;
  font-weight:500!important;
}
html:not(.cb-dark):not(.dark-mode) body .book-tree .list-item-page > .entity-list-item:not(.selected):hover{
  background:rgba(10,10,10,.04)!important;
}
html.cb-dark body .book-tree .cb-bn-tog:hover{
  color:#f4f4f5!important;
}
html.cb-dark body .book-tree .cb-bn-tog:focus-visible,
html.cb-dark body .book-tree .entity-list-item:focus-visible{
  outline-color:rgba(255,255,255,.4)!important;
}
html.cb-dark body .book-tree .list-item-page > .entity-list-item.selected{
  background:rgba(255,255,255,.08)!important;
  border-color:transparent!important;
}
html.cb-dark body .book-tree .entity-list-item.selected .entity-list-item-name{
  font-weight:500!important;
}

/* tabler80：当前书籍卡片对齐 —— 去掉 -10px 外扩，文字与条目同在 10px 起点（1px 边框 + 9px 内边距） */
html body .book-tree li.list-item-book > a.entity-list-item.book[class],
html body .book-tree li.list-item-book > a.entity-list-item.book[class]:hover{
  margin:0!important;
  padding:9px 12px 10px 9px!important;
  width:auto!important;
}

/* tabler81：图标水印 —— 当前书籍卡片右下角淡色大图标 */
html body .book-tree li.list-item-book > a.entity-list-item.book[class]{
  position:relative!important;
  overflow:hidden!important;
  isolation:isolate;
}
html body .book-tree li.list-item-book > a.entity-list-item.book[class] > .content,
html body .book-tree li.list-item-book > a.entity-list-item.book[class] > .cb-item-meta{
  position:relative;
  z-index:1;
}
html body .book-tree li.list-item-book > a.entity-list-item.book[class]::after{
  content:"";
  position:absolute;
  right:-10px;
  bottom:-16px;
  width:64px;
  height:64px;
  background-color:#0a0a0a;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 4v16H7a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z'/%3E%3Cpath d='M19 16H7a2 2 0 0 0-2 2'/%3E%3Cpath d='M9 8h6'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 4v16H7a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z'/%3E%3Cpath d='M19 16H7a2 2 0 0 0-2 2'/%3E%3Cpath d='M9 8h6'/%3E%3C/svg%3E") center/contain no-repeat;
  opacity:.07;
  transform:rotate(-12deg);
  transform-origin:70% 70%;
  pointer-events:none;
  z-index:0;
  transition:opacity .25s ease, transform .35s ease;
}
html body .book-tree li.list-item-book > a.entity-list-item.book[class]:hover::after{
  opacity:.12;
  transform:rotate(-6deg) translate(-2px,-2px);
}
html.cb-dark body .book-tree li.list-item-book > a.entity-list-item.book[class]::after{
  background-color:#ffffff;
  opacity:.06;
}
html.cb-dark body .book-tree li.list-item-book > a.entity-list-item.book[class]:hover::after{
  opacity:.1;
}
@media (prefers-reduced-motion:reduce){
  html body .book-tree li.list-item-book > a.entity-list-item.book[class]::after{transition:none}
}

/* tabler82：图标水印体系 + 书架网格卡片书目改竖排列表 */
:root{
  --cb-wm-book:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 4v16H7a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z'/%3E%3Cpath d='M19 16H7a2 2 0 0 0-2 2'/%3E%3Cpath d='M9 8h6'/%3E%3C/svg%3E");
  --cb-wm-books:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 5a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z'/%3E%3Cpath d='M9 5a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1z'/%3E%3Cpath d='M5 8h4'/%3E%3Cpath d='M9 16h4'/%3E%3Cpath d='M13.8 4.56l2.18-.53c.56-.14 1.13.19 1.28.73l3.7 13.42a1.02 1.02 0 0 1-.64 1.22l-2.31.57c-.56.14-1.13-.19-1.28-.73L13.04 5.82a1.02 1.02 0 0 1 .76-1.26z'/%3E%3Cpath d='M14 9l4-1'/%3E%3Cpath d='M16 16l3.92-.98'/%3E%3C/svg%3E");
  --cb-wm-users:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 7a4 4 0 1 0 8 0a4 4 0 1 0-8 0'/%3E%3Cpath d='M3 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3Cpath d='M21 21v-2a4 4 0 0 0-3-3.85'/%3E%3C/svg%3E");
  --cb-wm-clock:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 0 0-18 0'/%3E%3Cpath d='M12 7v5l3 3'/%3E%3C/svg%3E");
  --cb-wm-msg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 14l-3-3h-7a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v10'/%3E%3Cpath d='M14 15v2a1 1 0 0 1-1 1H6l-3 3V11a1 1 0 0 1 1-1h2'/%3E%3C/svg%3E");
  --cb-wm-spark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 18a2 2 0 0 1 2 2a2 2 0 0 1 2-2a2 2 0 0 1-2-2a2 2 0 0 1-2 2zm0-12a2 2 0 0 1 2 2a2 2 0 0 1 2-2a2 2 0 0 1-2-2a2 2 0 0 1-2 2zM9 18a6 6 0 0 1 6-6a6 6 0 0 1-6-6a6 6 0 0 1-6 6a6 6 0 0 1 6 6z'/%3E%3C/svg%3E");
  --cb-wm-help:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0'/%3E%3Cpath d='M12 17v.01'/%3E%3Cpath d='M12 13.5a1.5 1.5 0 0 1 1-1.5a2.6 2.6 0 1 0-3-4'/%3E%3C/svg%3E");
  --cb-wm-bulb:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h1m8-9v1m8 8h1M5.6 5.6l.7.7m12.1-.7l-.7.7'/%3E%3Cpath d='M9 16a5 5 0 1 1 6 0a3.5 3.5 0 0 0-1 3a2 2 0 0 1-4 0a3.5 3.5 0 0 0-1-3'/%3E%3Cpath d='M9.7 17h4.6'/%3E%3C/svg%3E");
  --cb-wm-chart:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 13a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z'/%3E%3Cpath d='M15 9a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1z'/%3E%3Cpath d='M9 5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1z'/%3E%3Cpath d='M4 20h14'/%3E%3C/svg%3E");
  --cb-wm-rocket:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 13a8 8 0 0 1 7 7a6 6 0 0 0 3-5a9 9 0 0 0 6-8a3 3 0 0 0-3-3a9 9 0 0 0-8 6a6 6 0 0 0-5 3'/%3E%3Cpath d='M7 14a6 6 0 0 0-3 6a6 6 0 0 0 6-3'/%3E%3Cpath d='M14 9a1 1 0 1 0 2 0a1 1 0 1 0-2 0'/%3E%3C/svg%3E");
}

/* 承载水印的模块：建立独立层叠上下文，水印 z-index:-1 落在背景之上、内容之下 */
html body .cb-ent-head,
html body .cb-lib-shelves.is-grid .cb-lib-shelf,
html body a.cb-home-shelf,
html body aside.cb-join,
html body .cb-recent,
html body section.cb-home-cta,
html body a.cb-disc-card,
html body section.cb-discuss,
html body .cb-gd-help,
html body p.cb-gd-tip,
html body dl.cb-sp-stats,
html body section.cb-sp-cta,
html body section.cb-pg-cta,
html body .cb-pg-feat.has-wm,
html body .cb-sp-card.has-wm{
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
html body .cb-ent-head{--cb-wm:var(--cb-wm-book);--cb-wm-s:120px;--cb-wm-b:-28px;--cb-wm-r:-14px}
html body .cb-lib-shelves.is-grid .cb-lib-shelf,
html body a.cb-home-shelf{--cb-wm:var(--cb-wm-books);--cb-wm-s:84px}
html body aside.cb-join{--cb-wm:var(--cb-wm-users);--cb-wm-s:120px;--cb-wm-b:-26px}
html body .cb-recent{--cb-wm:var(--cb-wm-clock);--cb-wm-s:140px;--cb-wm-b:-34px;--cb-wm-r:-20px;--cb-wm-o:.045}
html body section.cb-home-cta{--cb-wm:var(--cb-wm-msg);--cb-wm-s:160px;--cb-wm-b:-40px;--cb-wm-r:-24px;--cb-wm-c:#ffffff;--cb-wm-o:.06}
html body a.cb-disc-card{--cb-wm:var(--cb-wm-spark);--cb-wm-s:64px;--cb-wm-b:-14px;--cb-wm-r:-10px}
html body section.cb-discuss{--cb-wm:var(--cb-wm-msg);--cb-wm-s:80px;--cb-wm-b:-20px}
html body .cb-gd-help{--cb-wm:var(--cb-wm-help);--cb-wm-s:72px}
html body p.cb-gd-tip{--cb-wm:var(--cb-wm-bulb);--cb-wm-s:64px;--cb-wm-b:-16px}
html body dl.cb-sp-stats{--cb-wm:var(--cb-wm-chart);--cb-wm-s:104px;--cb-wm-b:-24px}
html body section.cb-sp-cta{--cb-wm:var(--cb-wm-rocket);--cb-wm-s:128px;--cb-wm-b:-30px}
html body section.cb-pg-cta{--cb-wm:var(--cb-wm-book);--cb-wm-s:104px;--cb-wm-b:-30px;--cb-wm-c:#ffffff;--cb-wm-o:.07}

html body .cb-ent-head::after,
html body .cb-lib-shelves.is-grid .cb-lib-shelf::after,
html body a.cb-home-shelf::after,
html body aside.cb-join::after,
html body .cb-recent::after,
html body section.cb-home-cta::after,
html body a.cb-disc-card::after,
html body section.cb-discuss::after,
html body .cb-gd-help::after,
html body p.cb-gd-tip::after,
html body dl.cb-sp-stats::after,
html body section.cb-sp-cta::after,
html body section.cb-pg-cta::after{
  content:"";
  position:absolute;
  right:var(--cb-wm-r,-12px);
  bottom:var(--cb-wm-b,-18px);
  width:var(--cb-wm-s,80px);
  height:var(--cb-wm-s,80px);
  background-color:var(--cb-wm-c,#0a0a0a);
  -webkit-mask:var(--cb-wm) center/contain no-repeat;
  mask:var(--cb-wm) center/contain no-repeat;
  opacity:var(--cb-wm-o,.06);
  transform:rotate(-12deg);
  transform-origin:70% 70%;
  pointer-events:none;
  z-index:-1;
  transition:opacity .25s ease,transform .35s ease;
}
html body .cb-lib-shelves.is-grid .cb-lib-shelf:hover::after,
html body a.cb-home-shelf:hover::after,
html body a.cb-disc-card:hover::after,
html body .cb-ent-head:hover::after{
  opacity:calc(var(--cb-wm-o,.06) + .05);
  transform:rotate(-6deg) translate(-2px,-2px);
}

/* 卡片自带图标的克隆水印（JS 注入 .cb-wm-clone） */
html body .cb-wm-clone{
  position:absolute;
  right:-14px;
  bottom:-20px;
  width:88px;
  height:88px;
  color:#0a0a0a;
  opacity:.055;
  transform:rotate(-12deg);
  transform-origin:70% 70%;
  pointer-events:none;
  z-index:-1;
  transition:opacity .25s ease,transform .35s ease;
}
html body .cb-wm-clone svg{width:100%!important;height:100%!important;stroke-width:1.3;display:block}
html body .has-wm:hover .cb-wm-clone{opacity:.1;transform:rotate(-6deg) translate(-2px,-2px)}

/* 深色模式：水印统一用白色 */
html.cb-dark body .cb-ent-head,
html.cb-dark body .cb-lib-shelves.is-grid .cb-lib-shelf,
html.cb-dark body a.cb-home-shelf,
html.cb-dark body aside.cb-join,
html.cb-dark body .cb-recent,
html.cb-dark body section.cb-home-cta,
html.cb-dark body a.cb-disc-card,
html.cb-dark body section.cb-discuss,
html.cb-dark body .cb-gd-help,
html.cb-dark body p.cb-gd-tip,
html.cb-dark body dl.cb-sp-stats,
html.cb-dark body section.cb-sp-cta,
html.cb-dark body section.cb-pg-cta{--cb-wm-c:#ffffff;--cb-wm-o:.055}
html.cb-dark body .cb-wm-clone{color:#ffffff;opacity:.06}
html.cb-dark body .has-wm:hover .cb-wm-clone{opacity:.1}

@media (prefers-reduced-motion:reduce){
  html body .cb-wm-clone,
  html body [class]::after{transition:none!important}
}
@media print{
  html body .cb-wm-clone{display:none!important}
}

/* 书架网格卡片：书目改为竖排列表（列表视图保留胶囊） */
html body .cb-lib-shelves.is-grid .cb-lib-shelf .cb-lib-chips[class]{
  flex-direction:column!important;
  flex-wrap:nowrap!important;
  gap:0!important;
  margin-top:14px!important;
  border-top:1px solid rgba(10,10,10,.06);
}
html body .cb-lib-shelves.is-grid .cb-lib-chip[class]{
  display:flex!important;
  width:100%!important;
  max-width:none!important;
  height:36px!important;
  padding:0 2px!important;
  gap:9px!important;
  border:0!important;
  border-bottom:1px solid rgba(10,10,10,.06)!important;
  border-radius:0!important;
  background:transparent!important;
  font-size:13px!important;
  color:#3a3a3a!important;
}
html body .cb-lib-shelves.is-grid .cb-lib-chip[class]::after{
  content:"→";
  margin-left:auto;
  padding-left:8px;
  font-size:12px;
  color:#9a9a9a;
  opacity:0;
  transform:translateX(-3px);
  transition:opacity .15s ease,transform .15s ease;
}
html body .cb-lib-shelves.is-grid .cb-lib-chip[class]:hover{color:#0a0a0a!important;background:transparent!important}
html body .cb-lib-shelves.is-grid .cb-lib-chip[class]:hover::after{opacity:1;transform:none}
html body .cb-lib-shelves.is-grid .cb-lib-chip[class]:last-child{border-bottom:0!important}
html body .cb-lib-shelves.is-grid .cb-lib-chip--more[class]{font-size:0!important;color:#8a8a8a!important}
html body .cb-lib-shelves.is-grid .cb-lib-chip--more[class]::before{content:"查看全部书籍";font-size:12.5px}
html body .cb-lib-shelves.is-grid .cb-lib-chip--more[class]::after{font-size:12px;opacity:.7;transform:none}
html.cb-dark body .cb-lib-shelves.is-grid .cb-lib-shelf .cb-lib-chips[class]{border-top-color:rgba(255,255,255,.07)}
html.cb-dark body .cb-lib-shelves.is-grid .cb-lib-chip[class]{border-bottom-color:rgba(255,255,255,.07)!important;color:#d4d4d8!important;background:transparent!important}
html.cb-dark body .cb-lib-shelves.is-grid .cb-lib-chip[class]:hover{color:#ffffff!important}
html.cb-dark body .cb-lib-shelves.is-grid .cb-lib-chip--more[class]{color:#8b8b94!important}

/* tabler83：排序下拉深色 / 下载导出菜单 / 简洁页脚与评论框悬停加深 */
@keyframes cb83-pop{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}
.list-sort .dropdown-menu,#export-menu .dropdown-menu{animation:cb83-pop .14s ease both;transform-origin:top right}
/* 1. 排序下拉 深色 */
html.cb-dark .list-sort .dropdown-menu{background:#1c1c1e!important;color:#d4d4d8!important;border-color:rgba(255,255,255,.08)!important;box-shadow:0 14px 36px -12px rgba(0,0,0,.6)!important}
html.cb-dark .list-sort .dropdown-menu .text-item{color:#d4d4d8!important;background:transparent!important}
html.cb-dark .list-sort .dropdown-menu .text-item:hover,html.cb-dark .list-sort .dropdown-menu .text-item:focus-visible{background:rgba(255,255,255,.06)!important;color:#ffffff!important;outline:none}
html.cb-dark .list-sort .dropdown-menu li.active .text-item{background:rgba(255,255,255,.1)!important;color:#ffffff!important}
html.cb-dark .list-sort-container .list-sort{background:#1c1c1e!important}
html.cb-dark .list-sort-container .list-sort-toggle,html.cb-dark .list-sort-container .list-sort-dir{color:#d4d4d8!important}
html.cb-dark .list-sort-toggle::after{border-color:#8e8e93!important}
html.cb-dark .list-sort-container .list-sort-toggle:hover,html.cb-dark .list-sort-container .list-sort-dir:hover{background:rgba(255,255,255,.06)!important;color:#ffffff!important}
/* 2. 右栏 下载 / 导出 */
#export-menu > [refs='dropdown@toggle'],#export-menu > button.icon-list-item{border-radius:var(--cb-radius-sm)!important;transition:background-color .15s ease,color .15s ease!important}
#export-menu > [refs='dropdown@toggle']:hover,#export-menu > button.icon-list-item:hover,#export-menu > [aria-expanded='true']{background:rgba(10,10,10,.045)!important;color:#0a0a0a!important}
#export-menu .dropdown-menu{min-width:232px!important;padding:4px!important;border:1px solid rgba(10,10,10,.08)!important;border-radius:var(--cb-radius-md)!important;background:#fff!important;box-shadow:0 10px 28px rgba(10,10,10,.09),0 1px 4px rgba(10,10,10,.04)!important}
#export-menu .dropdown-menu li{margin:0!important;padding:0!important}
#export-menu .dropdown-menu a{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;padding:6px 8px!important;border-radius:var(--cb-radius-xs)!important;font-size:13px!important;line-height:1.35!important;color:#2a2a2a!important;text-decoration:none!important;transition:background-color .15s ease,color .15s ease!important}
#export-menu .dropdown-menu a > span + span{font-size:11.5px!important;color:#919191!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace!important;opacity:1!important}
#export-menu .dropdown-menu a:hover,#export-menu .dropdown-menu a:focus-visible{background:rgba(10,10,10,.045)!important;color:#0a0a0a!important;outline:none!important}
#export-menu .dropdown-menu a:active{background:rgba(10,10,10,.07)!important}
html.cb-dark #export-menu > [refs='dropdown@toggle']:hover,html.cb-dark #export-menu > button.icon-list-item:hover,html.cb-dark #export-menu > [aria-expanded='true']{background:rgba(255,255,255,.06)!important;color:#ffffff!important}
html.cb-dark #export-menu .dropdown-menu{background:#1c1c1e!important;border-color:rgba(255,255,255,.08)!important;box-shadow:0 12px 32px rgba(0,0,0,.45)!important}
html.cb-dark #export-menu .dropdown-menu a{color:#d4d4d8!important}
html.cb-dark #export-menu .dropdown-menu a > span + span{color:#8e8e93!important}
html.cb-dark #export-menu .dropdown-menu a:hover{background:rgba(255,255,255,.06)!important;color:#ffffff!important}
/* 3. 评论框 悬停加深 */
html body section.cb-discuss:hover::after,html body section.cb-discuss:focus-within::after{opacity:calc(var(--cb-wm-o,.06) + .05);transform:rotate(-6deg) translate(-2px,-2px)}
/* 3. 文章页简洁页脚 水印 */
html body .cb-footer--mini .cb-fm{position:relative;isolation:isolate;overflow:hidden;--cb-wm:var(--cb-wm-book);--cb-wm-s:72px;--cb-wm-b:-24px;--cb-wm-r:-6px;--cb-wm-o:.05}
html body .cb-footer--mini .cb-fm::after{content:'';position:absolute;right:var(--cb-wm-r);bottom:var(--cb-wm-b);width:var(--cb-wm-s);height:var(--cb-wm-s);background-color:var(--cb-wm-c,#0a0a0a);-webkit-mask:var(--cb-wm) center/contain no-repeat;mask:var(--cb-wm) center/contain no-repeat;opacity:var(--cb-wm-o);transform:rotate(-12deg);transform-origin:70% 70%;pointer-events:none;z-index:-1;transition:opacity .25s ease,transform .35s ease}
html body .cb-footer--mini .cb-fm:hover::after{opacity:calc(var(--cb-wm-o) + .05);transform:rotate(-6deg) translate(-2px,-2px)}
html.cb-dark body .cb-footer--mini .cb-fm{--cb-wm-c:#ffffff;--cb-wm-o:.05}
@media (prefers-reduced-motion:reduce){.list-sort .dropdown-menu,#export-menu .dropdown-menu{animation:none!important}html body .cb-footer--mini .cb-fm::after{transition:none!important}}

/* tabler85: 浏览器 theme-color 统一来源（阅读器脚本读取） */
:root{--cb-theme-color:#f3f3f3}
html.cb-dark{--cb-theme-color:#13161c}

/* tabler87：去掉核心 dist/styles.css 的 box-shadow: 0 1px 6px -1px rgba(0,0,0,.1)。
   顶栏（header#header）早已是 box-shadow:none + --cb-line 底线；卡片用主题自己的 --cb-shadow 纸面阴影，均不动。
   浅色模式下仍漏核心阴影的只有移动端标签栏：去阴影，底线与顶栏一致。
   编辑器（.page-editor-page-area / .floating-toolbox / 标题输入聚焦）保留核心阴影，便于和页面区分。
   深色模式已有 html.cb-dark .tri-layout-mobile-tabs 规则，不受影响。 */
.tri-layout-mobile-tabs {
  box-shadow: none !important;
  border-bottom: 1px solid var(--cb-line) !important;
}
/* tabler87-end */

