/* ==========================================
   干货库 · ziliao.css  （复用 shuimian.css 的 :root 设计变量）
   ========================================== */

.lib-wrap {
  position: relative;
  z-index: 2;
  max-width: 720px;
  margin: 0 auto;
  padding: 40px 20px 80px;
}

/* 顶部返回水面 */
.lib-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 28px;
  font-size: 14px;
}
.lib-top a { color: var(--ink-soft); text-decoration: none; border-bottom: 1px solid transparent; }
.lib-top a:hover { color: var(--vermilion); border-bottom-color: var(--vermilion); }

/* 标题区 */
.lib-head { text-align: center; margin-bottom: 30px; }
.lib-head .eyebrow {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic; letter-spacing: 2px;
  color: var(--ink-soft); font-size: 17px; margin-bottom: 6px;
}
.lib-head h1 {
  font-size: 30px; color: var(--ink-deep); font-weight: 600;
  letter-spacing: 1px;
}
.lib-head .stroke { display: block; margin: 10px auto 14px; }
.lib-head p { color: var(--text-soft); font-size: 15px; line-height: 1.7; }
.lib-head .lib-colophon { margin-top: 16px; font-size: 13px; line-height: 1.85; color: var(--ink-soft); letter-spacing: 0.3px; }

/* 搜索框 */
.lib-search {
  position: relative; margin: 0 auto 22px; max-width: 560px;
}
.lib-search input {
  width: 100%; padding: 14px 18px 14px 44px;
  font-family: 'LXGW WenKai', serif; font-size: 16px; color: var(--text-dark);
  background: var(--paper-light); border: 1.5px solid rgba(74,63,51,.22);
  border-radius: 14px; outline: none; transition: border-color .2s, box-shadow .2s;
}
.lib-search input:focus { border-color: var(--vermilion-soft); box-shadow: 0 0 0 3px rgba(194,84,80,.10); }
.lib-search .icon { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--ink-soft); font-size: 17px; }

/* 分类筛选 */
/* 发展阶段／场景：主筛（场景为主）—— 你现在走到哪一步 */
.lib-stage { text-align: center; margin-bottom: 4px; }
.lib-stage-label {
  font-family: 'Cormorant Garamond', serif; font-style: italic;
  font-size: 16px; color: var(--ink-soft); letter-spacing: .4px; margin-bottom: 12px;
}
.lib-scenes { display: flex; flex-wrap: wrap; gap: 9px; justify-content: center; }
.lib-scenes button {
  font-family: 'LXGW WenKai', serif; font-size: 14.5px; cursor: pointer;
  padding: 8px 18px; border-radius: 22px; color: var(--ink-deep);
  background: var(--paper-light); border: 1.3px solid rgba(74,63,51,.20);
  transition: all .2s; box-shadow: 0 1px 0 rgba(74,63,51,.04);
}
.lib-scenes button:hover { border-color: var(--vermilion-soft); color: var(--vermilion); }
.lib-scenes button.active {
  background: var(--vermilion); border-color: var(--vermilion); color: #fff7ef;
  box-shadow: 0 3px 10px rgba(194,84,80,.20);
}

/* 主题：辅筛，默认收起，点「或按主题找」才展开 */
.lib-cats-wrap { text-align: center; margin: 20px 0 8px; }
.lib-cats-toggle {
  font-family: 'LXGW WenKai', serif; font-size: 12.5px; cursor: pointer;
  background: none; border: none; color: var(--ink-soft); opacity: .85;
  letter-spacing: .5px; padding: 4px 8px; transition: color .18s;
}
.lib-cats-toggle:hover { color: var(--vermilion); opacity: 1; }
.lib-cats-toggle .chev { display: inline-block; margin-left: 5px; font-size: 11px; transition: transform .22s; }
.lib-cats-wrap.is-open .lib-cats-toggle .chev { transform: rotate(180deg); }
.lib-cats-wrap:not(.is-open) .lib-cats { display: none; }
.lib-cats-wrap.is-open .lib-cats { animation: catsIn .22s ease; }
@keyframes catsIn { from { opacity: 0; transform: translateY(-3px); } to { opacity: 1; transform: none; } }
.lib-cats { display: flex; flex-wrap: wrap; gap: 7px; justify-content: center; margin: 12px 0 0; }
.lib-cats button {
  font-family: 'LXGW WenKai', serif; font-size: 12.5px; cursor: pointer;
  padding: 5px 13px; border-radius: 18px; color: var(--text-soft);
  background: transparent; border: 1px solid rgba(74,63,51,.18); transition: all .18s;
}
.lib-cats button:hover { color: var(--ink-deep); border-color: var(--ink-soft); }
.lib-cats button.active { background: var(--ink-deep); border-color: var(--ink-deep); color: var(--paper-light); }

/* 二级子分类（点板块后展开；朱砂高亮，区别于板块的墨色） */
.lib-subs { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin: 0 0 14px; }
.lib-subs button {
  font-family: 'LXGW WenKai', serif; font-size: 12px; cursor: pointer;
  padding: 4px 11px; border-radius: 14px; color: var(--ink-soft);
  background: rgba(74,63,51,.04); border: 1px solid rgba(74,63,51,.14); transition: all .18s;
}
.lib-subs button:hover { color: var(--vermilion); border-color: var(--vermilion); }
.lib-subs button.active { background: var(--vermilion); border-color: var(--vermilion); color: #fff7ef; }

.lib-count { text-align: center; color: var(--ink-soft); font-size: 13px; margin-bottom: 18px; }

/* 卡片列表 */
/* 双列：126 篇单列要划一万多像素；桌面双列砍半，窄屏回单列 */
.lib-list { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 720px) { .lib-list { grid-template-columns: 1fr; } }
.lib-more { text-align: center; margin: 22px 0 6px; }
.lib-more-btn {
  font-family: 'LXGW WenKai', serif; font-size: 14px; cursor: pointer;
  padding: 8px 26px; border-radius: 999px; color: var(--ink-deep);
  background: transparent; border: 1px solid rgba(74,63,51,.22); transition: all .18s;
}
.lib-more-btn:hover { color: var(--vermilion); border-color: rgba(194,84,80,.5); }
.lib-more-btn .chev { margin-left: 6px; font-size: 12px; color: var(--vermilion); }
.lib-end { font-size: 12.5px; color: var(--ink-soft); letter-spacing: 1px; }
.card {
  background: var(--paper-light); border: 1px solid rgba(74,63,51,.14);
  border-radius: 14px; padding: 18px 20px; cursor: pointer;
  transition: transform .16s, box-shadow .16s, border-color .16s;
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
.card:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(58,70,88,.10); border-color: rgba(194,84,80,.35); }
.card .tag {
  display: inline-block; font-size: 12px; color: var(--wash-brown);
  border: 1px solid rgba(201,168,120,.5); border-radius: 12px; padding: 1px 9px; margin-bottom: 8px;
}
.card h3 { font-size: 18px; color: var(--ink-deep); font-weight: 600; line-height: 1.45; margin-bottom: 6px; }
.card p { font-size: 13.5px; color: var(--text-soft); line-height: 1.6;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

.lib-empty { text-align: center; color: var(--ink-soft); padding: 50px 0; font-size: 15px; }

/* 搜索命中：列表里的命中句 + 命中数；高亮用朱砂底，区别于正文黄色荧光笔 */
.card p.lib-snip { color: var(--ink-deep); -webkit-line-clamp: 3; }
.lib-hitn { display: inline-block; margin-top: 7px; font-size: 12px; color: var(--vermilion); letter-spacing: .3px; }
.card-meta { margin-top: 8px; font-size: 11.5px; color: var(--ink-soft); opacity: .82; }
.article-body .a-dates { font-size: 12.5px; color: var(--ink-soft); margin: -4px 0 18px; letter-spacing: .3px; }

/* 投稿入口 */
.lib-contrib { margin-top: 34px; padding: 22px 24px; background: var(--paper-light); border: 1.5px dashed rgba(74,63,51,.28); border-radius: 14px; text-align: center; }
.lib-contrib-h { font-family: 'LXGW WenKai', serif; font-size: 17px; font-weight: 600; color: var(--ink-deep); margin-bottom: 8px; }
.lib-contrib p { font-size: 13.5px; color: var(--text-soft); line-height: 1.75; margin: 0 auto; max-width: 540px; }
.lib-contrib .lib-contrib-how { margin-top: 10px; font-size: 12.5px; color: var(--vermilion); }
mark.lib-hl { background: rgba(194,84,80,.20); color: #8a2e2a; border-radius: 2px; padding: 0 1.5px; font-weight: 600; }
.article-body mark.lib-hl { background: rgba(194,84,80,.18); color: #8a2e2a; padding: 0 2px; }

/* ============ 文章阅读视图 ============ */
.article { display: none; }
.article.show { display: block; }
.lib-list-view.hide { display: none; }

.article-bar {
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px; margin-bottom: 22px; flex-wrap: wrap;
}
.btn {
  font-family: 'LXGW WenKai', serif; font-size: 14px; cursor: pointer;
  padding: 8px 16px; border-radius: 12px; text-decoration: none; transition: all .18s; border: 1.2px solid;
}
.btn-back { color: var(--ink-soft); background: transparent; border-color: rgba(74,63,51,.25); }
.btn-back:hover { color: var(--ink-deep); border-color: var(--ink-soft); }
.btn-dl { color: #fff7ef; background: var(--vermilion); border-color: var(--vermilion); }
.btn-dl:hover { background: var(--vermilion-soft); border-color: var(--vermilion-soft); }
.btn-share { color: var(--ink-soft); background: transparent; border-color: rgba(74,63,51,.25); }
.btn-share:hover { color: var(--vermilion); border-color: var(--vermilion); }

/* ===== 排行（大家在看/在搜）：列表末尾的无框模块，标题居中随全页中轴 ===== */
.lib-rank {
  display: grid; grid-template-columns: 1fr; gap: 26px;
  max-width: 620px; margin: 40px auto 8px;
}
.rank-h {
  font-size: 13.5px; color: var(--ink-soft); letter-spacing: 4px;
  text-align: center; margin-bottom: 12px;
}
.rank-list { list-style: none; margin: 0; padding: 0; counter-reset: rk; }
.rank-list li { counter-increment: rk; }
.rank-list a {
  display: flex; align-items: baseline; gap: 7px; padding: 5px 0;
  color: var(--ink-deep); text-decoration: none; font-size: 14.5px; line-height: 1.4;
  border-bottom: 1px dashed rgba(74,63,51,.1);
}
.rank-list li:last-child a { border-bottom: 0; }
.rank-list a::before {
  content: counter(rk); flex: 0 0 17px; text-align: center;
  font-family: 'Cormorant Garamond', serif; font-weight: 600; font-size: 13px; color: var(--vermilion);
}
.rank-t { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rank-list a:hover .rank-t { color: var(--vermilion); }
.rank-v { flex: 0 0 auto; font-size: 12px; color: var(--ink-soft); }
.rank-chips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.rank-chip {
  font-family: 'LXGW WenKai', serif; font-size: 13px; cursor: pointer;
  padding: 5px 13px; border-radius: 999px; border: 1px solid rgba(74,63,51,.2);
  background: transparent; color: var(--ink-soft); transition: all .16s;
}
.rank-chip:hover { color: #fff7ef; background: var(--vermilion); border-color: var(--vermilion); }
@media (max-width: 640px) { .lib-rank { gap: 20px; margin-top: 30px; } }

/* ===== 「从哪开始」导航卡 ===== */
.lib-nav { margin: 8px 0 24px; text-align: center; }
.nav-h { font-size: 13px; color: var(--ink-soft); letter-spacing: 3px; margin-bottom: 3px; }
.nav-stroke { display: block; margin: 0 auto 16px; }
.nav-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.nav-card {
  flex: 1 1 200px; max-width: 224px;
  display: flex; flex-direction: column; gap: 3px; text-align: left;
  padding: 14px 17px; border-radius: 14px; cursor: pointer;
  background: var(--card, #fbf6ea); border: 1px solid rgba(74,63,51,.12);
  font-family: 'LXGW WenKai', serif; transition: border-color .18s, box-shadow .18s;
}
.nav-card:hover { border-color: var(--vermilion); box-shadow: 0 3px 12px rgba(74,63,51,.08); }
.nav-en { font-family: 'Cormorant Garamond', serif; font-style: italic; color: var(--wash-brown); font-size: 14px; letter-spacing: 1px; margin-bottom: 3px; }
.nav-t { font-size: 15px; color: var(--ink-deep); font-weight: 600; letter-spacing: .5px; line-height: 1.5; }
.nav-d { font-size: 12px; color: var(--ink-soft); line-height: 1.55; margin-top: 2px; }
@media (max-width: 520px) { .nav-card { flex: 1 1 calc(50% - 6px); max-width: none; } }

.article-body { font-size: 16px; color: var(--text-dark); line-height: 1.9; }
.article-body .a-tag { color: var(--wash-brown); font-size: 13px; letter-spacing: 1px; }
.article-body h1 { font-size: 25px; color: var(--ink-deep); line-height: 1.4; margin: 6px 0 18px; font-weight: 600; }
.article-body h2 {
  font-size: 20px; color: var(--ink-deep); font-weight: 600; margin: 30px 0 12px;
  padding-left: 12px; border-left: 4px solid var(--vermilion);
}
.article-body h3 { font-size: 17px; color: var(--ink-deep); font-weight: 600; margin: 22px 0 8px; }
.article-body h4 { font-size: 15.5px; color: var(--ink); font-weight: 600; margin: 16px 0 6px; }
.article-body p { margin: 0 0 12px; }
.article-body strong { color: var(--ink-deep); }
.article-body ul { margin: 0 0 14px; padding-left: 22px; }
.article-body li { margin-bottom: 6px; }
.article-body blockquote {
  margin: 14px 0; padding: 10px 16px; color: var(--text-soft);
  background: rgba(201,168,120,.10); border-left: 3px solid var(--wash-brown); border-radius: 4px; font-size: 15px;
}
.article-body p.note {
  background: rgba(168,184,200,.14); border-left: 3px solid var(--wash-blue);
  padding: 8px 14px; border-radius: 4px; color: var(--ink); margin: 12px 0;
}
.article-body hr { border: none; border-top: 1px solid rgba(74,63,51,.18); margin: 24px 0; }

/* 表格（课程表）*/
.article-body .tablewrap { overflow-x: auto; margin: 16px 0; -webkit-overflow-scrolling: touch; }
.article-body table { border-collapse: collapse; width: 100%; font-size: 14px; min-width: 900px; }
.article-body th:first-child, .article-body td:first-child { min-width: 84px; }
.article-body th, .article-body td {
  border: 1px solid rgba(74,63,51,.22); padding: 8px 10px; text-align: left; vertical-align: top; line-height: 1.6;
}
.article-body th { background: rgba(201,168,120,.18); color: var(--ink-deep); font-weight: 600; }
.article-body tr:nth-child(even) td { background: rgba(247,239,222,.5); }
.article-body .tlink { color: var(--vermilion); white-space: nowrap; text-decoration: none; border-bottom: 1px solid rgba(194,84,80,.35); }
.article-body .tlink-dead { color: var(--ink-soft); font-size: 12px; opacity: .65; white-space: nowrap; }
.article-body .trow-sec td { background: rgba(201,168,120,.24); font-weight: 600; color: var(--ink-deep); text-align: center; letter-spacing: 1px; }

.article-foot { margin-top: 36px; padding-top: 20px; border-top: 1px dashed rgba(74,63,51,.25);
  text-align: center; color: var(--ink-soft); font-size: 13px; line-height: 1.7; }

@media (max-width: 480px) {
  .lib-wrap { padding: 28px 14px 60px; }
  .lib-head h1 { font-size: 25px; }
  .article-body { font-size: 15.5px; }
}

/* ============ 登录门 ============ */
.lib-gate { max-width: 420px; margin: 0 auto; }
.gate-box {
  background: var(--paper-light); border: 1.4px solid rgba(74,63,51,.16);
  border-radius: 16px; padding: 22px 22px 18px; margin-top: 8px;
  box-shadow: 0 2px 10px rgba(58,70,88,.05);
}
.gate-label { display: block; font-size: 13px; color: var(--text-soft); margin-bottom: 6px; }
.gate-box input {
  width: 100%; padding: 12px 14px; font-family: 'LXGW WenKai', serif; font-size: 16px;
  color: var(--text-dark); background: #fff; border: 1.5px solid rgba(74,63,51,.22);
  border-radius: 12px; outline: none; transition: border-color .2s, box-shadow .2s; margin-bottom: 12px;
}
.gate-box input:focus { border-color: var(--vermilion-soft); box-shadow: 0 0 0 3px rgba(194,84,80,.10); }
.gate-btn {
  width: 100%; padding: 12px; font-family: 'LXGW WenKai', serif; font-size: 15.5px; cursor: pointer;
  color: #fff7ef; background: var(--vermilion); border: none; border-radius: 12px; letter-spacing: 1px;
  transition: background .18s;
}
.gate-btn:hover { background: var(--vermilion-soft); }
.gate-btn:disabled { opacity: .6; cursor: default; }
.gate-link {
  display: block; width: 100%; margin-top: 10px; padding: 4px; background: none; border: none;
  font-family: 'LXGW WenKai', serif; font-size: 13px; color: var(--ink-soft); cursor: pointer;
}
.gate-link:hover { color: var(--vermilion); }
.gate-msg { font-size: 13px; line-height: 1.6; margin-top: 12px; min-height: 18px; }
.gate-note { font-size: 12px; color: var(--ink-soft); line-height: 1.6; margin-top: 14px; padding-top: 12px; border-top: 1px dashed rgba(74,63,51,.18); }

/* ====== 阅读视图：杂志式排版 —— 正文左对齐、标题分级清晰、荧光笔重点 ====== */
.article-body { text-align: left; line-height: 1.95; }
.article-body h1 { text-align: center; font-size: 23px; font-weight: 700; color: var(--ink-deep); margin: 10px 0 26px; }
.article-body h2 {
  text-align: center; font-size: 20px; font-weight: 700; color: var(--green); letter-spacing: .5px;
  border: none; padding: 0; margin: 34px 0 14px;
}
.article-body h2::after { content: none; }
.article-body h3 { text-align: center; font-size: 17.5px; font-weight: 700; color: var(--ink-deep); letter-spacing: .3px; border: none; padding: 0; margin: 26px 0 10px; }
.article-body h4 { text-align: center; font-size: 15.5px; font-weight: 600; color: var(--ink); border: none; padding: 0; margin: 18px 0 6px; }
.article-body p { margin: 0 0 14px; }
.article-body ul { list-style: disc; padding-left: 1.5em; margin: 12px 0; }
.article-body li { margin-bottom: 8px; }
.article-body blockquote {
  margin: 16px 0; padding: 8px 16px; text-align: left;
  border-left: 3px solid var(--wash-brown); background: rgba(201,168,120,.10);
  color: var(--text-soft); border-radius: 4px;
}
.article-body p.note { border: none; background: transparent; padding: 0; color: var(--ink); }
/* 荧光笔标记（重点观点句）*/
.article-body mark {
  background: linear-gradient(transparent 55%, rgba(247, 211, 92, 0.62) 55%);
  color: inherit; padding: 0 .08em; border-radius: 1px;
}
/* 配图 */
.article-body .figure { margin: 18px 0; text-align: center; }
.article-body img { max-width: 100%; height: auto; border-radius: 8px; box-shadow: 0 2px 12px rgba(58,70,88,.14); }
.article-body .mdimg { margin: 10px 0 16px; }
.article-body .mdimg img { max-width: 460px; width: 100%; }
.article-body code { font-family: inherit; font-size: .9em; background: rgba(58,70,88,.06); border: 1px solid rgba(58,70,88,.1); border-radius: 5px; padding: 1px 6px; color: var(--ink-soft); white-space: nowrap; }
/* 含链接的表格单元格：整格可点 */
.article-body td:has(a.tlink) { cursor: pointer; }
.article-body td:has(a.tlink):hover { background: rgba(194,84,80,.07); }

/* ===== 手机端：宽课程表转成卡片（每格自带列名，不用左右拖）===== */
@media (max-width: 640px) {
  .article-body .tablewrap { overflow-x: visible; }
  .article-body table { min-width: 0; display: block; font-size: 14.5px; }
  .article-body tbody { display: block; }
  .article-body tr { display: block; }
  .article-body tr:has(th) { display: none; }                    /* 表头行隐藏（每格自带列名） */
  .article-body tr.trow-sec {
    margin: 18px 0 6px; background: rgba(201,168,120,.2);
    border-radius: 8px; padding: 7px 13px; font-weight: 600; color: var(--ink-deep);
  }
  .article-body tr.trow-sec td { display: block; padding: 0 !important; border: none !important; }
  .article-body tr:not(.trow-sec) {
    border: 1px solid rgba(74,63,51,.16); border-radius: 12px;
    padding: 12px 15px; margin: 0 0 13px; background: var(--card, #fbf6ea);
  }
  .article-body td { display: block; border: none !important; padding: 6px 0 !important; min-width: 0 !important; }
  .article-body td + td { border-top: 1px dashed rgba(74,63,51,.1) !important; }
  .article-body td[data-label]::before {
    content: attr(data-label) '：'; display: block;
    font-size: 11.5px; color: var(--ink-soft); margin-bottom: 2px; opacity: .85;
  }
  .article-body td[data-label]:empty { display: none; }
}

/* 作者署名（标题下方居中）*/
.article-body .byline { text-align: center; color: var(--ink-soft); font-size: 13.5px; letter-spacing: .5px; margin: -14px 0 26px; }
/* 文首题献 / 副标题 / 关键词（居中）*/
.article-body .front { text-align: center; color: var(--text-soft); font-size: 14.5px; line-height: 1.75; margin: 0 0 8px; }
.article-body .front + p:not(.front) { margin-top: 18px; }
/* 居中段（尊重原文档，如诗歌引用）+ 诗节空行 */
.article-body p.ctr { text-align: center; margin: 0 0 7px; line-height: 1.85; }
.article-body p.vgap { height: 14px; margin: 0; padding: 0; }
/* 对话/演讲：说话人加粗 + 每次发言留白，便于看清谁在说 */
.article-body p.turn { margin-top: 18px; }
.article-body p.turn strong { color: var(--green); font-weight: 700; }

/* ===== 门外预览（未登录时给新访客看见货） ===== */
.gate-preview { max-width: 560px; margin: 26px auto 0; padding: 18px 20px 14px; background: var(--card, #fbf6ea); border: 1px solid rgba(74,63,51,.12); border-radius: 14px; text-align: left; cursor: pointer; }
.gp-h { text-align: center; font-size: 14.5px; color: var(--ink-deep); letter-spacing: 1.5px; margin-bottom: 12px; }
.gp-boards { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 16px; }
.gp-board { font-size: 12.5px; color: var(--ink-soft); border: 1px dashed rgba(74,63,51,.28); border-radius: 999px; padding: 3px 11px; }
.gp-board i { font-style: normal; color: var(--vermilion); margin-left: 4px; }
.gp-h2 { font-size: 12px; color: var(--wash-brown); letter-spacing: 2.5px; margin: 0 0 6px; font-family: 'LXGW WenKai', serif; }
.gate-preview ul { list-style: none; margin: 0 0 12px; padding: 0; }
.gate-preview li { font-size: 13.5px; color: var(--ink-deep); line-height: 2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gp-tag { font-size: 11px; color: var(--ink-soft); border: 1px solid rgba(74,63,51,.16); border-radius: 4px; padding: 1px 5px; margin-right: 7px; }
.gp-note { text-align: center; font-size: 12px; color: var(--ink-soft); border-top: 1px dashed rgba(74,63,51,.16); padding-top: 10px; }

/* ===== 新近上架（落地页一行） ===== */
.lib-recent { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 0 0 20px; justify-content: center; }
.recent-h { color: var(--wash-brown); font-family: 'LXGW WenKai', serif; letter-spacing: 2px; font-size: 12.5px; }
.lib-recent a { font-size: 13px; color: var(--ink-deep); text-decoration: none; border: 1px solid rgba(74,63,51,.14); background: var(--card, #fbf6ea); border-radius: 999px; padding: 4px 12px; max-width: 300px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: border-color .18s, color .18s; }
.lib-recent a:hover { border-color: var(--vermilion); color: var(--vermilion); }
.recent-more {
  font-family: 'LXGW WenKai', serif; font-size: 13px; cursor: pointer;
  color: var(--vermilion); background: transparent; border: none; padding: 4px 4px;
  letter-spacing: .5px; transition: opacity .18s; opacity: .85;
}
.recent-more:hover { opacity: 1; text-decoration: underline; text-underline-offset: 4px; }
.tag-new { display: inline-block; font-size: 11px; color: #fff; background: var(--vermilion); border-radius: 4px; padding: 1px 6px; margin-left: 6px; vertical-align: 2px; }

/* ===== 文章目录 ===== */
.art-toc { margin: 18px 0 24px; padding: 14px 18px; background: var(--card, #fbf6ea); border: 1px solid rgba(74,63,51,.12); border-radius: 12px; }
.art-toc-h { font-size: 12px; color: var(--wash-brown); letter-spacing: 2.5px; margin-bottom: 8px; font-family: 'LXGW WenKai', serif; }
.art-toc a { display: block; font-size: 14px; color: var(--ink-deep); text-decoration: none; line-height: 2; }
.art-toc a:hover { color: var(--vermilion); }
.art-toc a.toc-sub { padding-left: 18px; font-size: 13px; color: var(--ink-soft); }

/* ===== 文末同类推荐 ===== */
.art-rel { margin: 36px 0 6px; border-top: 1px dashed rgba(74,63,51,.22); padding-top: 20px; }
.art-rel-h { font-size: 13px; color: var(--wash-brown); letter-spacing: 2.5px; margin-bottom: 12px; font-family: 'LXGW WenKai', serif; }
.art-rel-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.art-rel-card { text-align: left; background: var(--card, #fbf6ea); border: 1px solid rgba(74,63,51,.12); border-radius: 12px; padding: 12px 14px; cursor: pointer; font-family: 'LXGW WenKai', serif; display: flex; flex-direction: column; gap: 6px; transition: border-color .18s, box-shadow .18s; }
.art-rel-card:hover { border-color: var(--vermilion); box-shadow: 0 3px 12px rgba(74,63,51,.08); }
.art-rel-card .tag { font-size: 11px; color: var(--ink-soft); align-self: flex-start; border: 1px solid rgba(74,63,51,.16); border-radius: 4px; padding: 1px 6px; }
.art-rel-card .t { font-size: 14px; color: var(--ink-deep); line-height: 1.55; }

/* ===== 返回顶部 ===== */
.backtop { position: fixed; right: 18px; bottom: 22px; z-index: 50; padding: 9px 14px; border-radius: 999px; border: 1px solid rgba(74,63,51,.22); background: var(--card, #fbf6ea); color: var(--ink-deep); font-family: 'LXGW WenKai', serif; font-size: 13px; cursor: pointer; opacity: 0; pointer-events: none; transform: translateY(8px); transition: opacity .25s, transform .25s; box-shadow: 0 3px 10px rgba(74,63,51,.12); }
.backtop.show { opacity: 1; pointer-events: auto; transform: none; }
.backtop:hover { border-color: var(--vermilion); color: var(--vermilion); }

/* ===== 搜索落空的许愿一句 ===== */
.lib-wish { display: block; margin-top: 8px; font-size: 12.5px; color: var(--ink-soft); }

/* 长文（尤其名校方案的大表格）按需渲染，滚到才画，点开不卡 */
.article-body table { content-visibility: auto; contain-intrinsic-size: auto 700px; }

/* ===== 文章目录改版：编号 + 双栏，不再是空盒子 ===== */
.art-toc { padding: 15px 20px 13px; }
.art-toc-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 3px 24px; }
.art-toc a { display: flex; gap: 10px; align-items: baseline; font-size: 14px; color: var(--ink-deep); text-decoration: none; line-height: 1.85; }
.art-toc a i { font-style: italic; font-family: 'Cormorant Garamond', serif; font-size: 13px; color: var(--vermilion); opacity: .8; min-width: 17px; }
.art-toc a span { border-bottom: 1px dashed transparent; transition: color .16s, border-color .16s; }
.art-toc a:hover span { color: var(--vermilion); border-bottom-color: rgba(194,84,80,.4); }
.art-toc a.toc-sub { padding-left: 26px; font-size: 13px; color: var(--ink-soft); }

/* ===== 帮我挑：填空句式（居中无框，随页面纸感；卡片与 .card 同族） ===== */
.lib-picker { margin: 30px auto 8px; max-width: 660px; text-align: center; }
.lib-picker-h { font-size: 13px; color: var(--ink-soft); letter-spacing: .5px; margin-bottom: 8px; }
.lib-picker-line { font-size: 16.5px; color: var(--ink-deep); line-height: 2.1; }
.pick-sel { position: relative; display: inline-block; margin: 0 2px; }
.pick-sel select {
  -webkit-appearance: none; appearance: none;
  font-family: 'LXGW WenKai', serif; font-size: 16.5px; color: var(--ink-deep);
  background: transparent; border: none; border-bottom: 1px dashed rgba(194,84,80,.55);
  border-radius: 0; padding: 1px 20px 2px 6px; cursor: pointer; transition: border-color .18s;
}
.pick-sel select:hover, .pick-sel select:focus { border-bottom-color: var(--vermilion); outline: none; }
.pick-sel::after {
  content: '⌄'; position: absolute; right: 4px; top: 50%; transform: translateY(-62%);
  font-size: 11px; color: var(--vermilion); opacity: .75; pointer-events: none;
}
#pickGo {
  font-family: 'LXGW WenKai', serif; font-size: 13px; cursor: pointer; margin-left: 10px;
  padding: 5px 15px; border-radius: 18px; color: var(--vermilion);
  background: transparent; border: 1px solid rgba(194,84,80,.5); transition: all .18s; vertical-align: 2px;
}
#pickGo:hover { background: var(--vermilion); border-color: var(--vermilion); color: var(--paper-light); }
.pick-out { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; text-align: left; }
.pick-out:empty { margin-top: 0; }
.pick-card {
  background: var(--paper-light); border: 1px solid rgba(74,63,51,.14);
  border-radius: 14px; padding: 14px 16px; cursor: pointer;
  transition: transform .16s, box-shadow .16s, border-color .16s; box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
.pick-card:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(58,70,88,.10); border-color: rgba(194,84,80,.35); }
.pick-card .tag {
  display: inline-block; font-size: 11.5px; color: var(--wash-brown);
  border: 1px solid rgba(201,168,120,.5); border-radius: 12px; padding: 1px 9px; margin-bottom: 7px;
}
.pick-card h4 { margin: 0 0 5px; font-size: 15px; color: var(--ink-deep); font-weight: 600; line-height: 1.5; }
.pick-card p {
  margin: 0; font-size: 12.5px; color: var(--text-soft); line-height: 1.6;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
@media (max-width: 640px) {
  .pick-out { grid-template-columns: 1fr; }
  .lib-picker-line { font-size: 15.5px; }
  #pickGo { margin: 8px 0 0; }
}
