/* ============================================================
   中一道 · 文库（三分栏 + 电子书阅读器）
   复用 style.css 调色板；本文件只承载文库与阅读器专属样式
   零依赖 / 离线可用
   ============================================================ */

/* ---------- 文库页头 ---------- */
.lib-head{background:linear-gradient(135deg,var(--sage-deep),var(--sage) 60%,#6fa06d);
  color:#fff;text-align:center;padding:34px 20px 30px;position:relative;overflow:hidden}
.lib-head::before{content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.16),transparent 45%),
             radial-gradient(circle at 80% 80%,rgba(255,255,255,.10),transparent 42%)}
.lib-head-inner{position:relative;max-width:900px;margin:0 auto}
.lib-head .brand{font-family:var(--font-serif);font-size:22px;letter-spacing:.16em;font-weight:700;margin:0 0 8px}
.lib-head .lib-sub{margin:0;font-size:14px;letter-spacing:.08em;opacity:.94;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.24);
  display:inline-block;padding:6px 18px;border-radius:var(--r-pill)}

/* ---------- 三分栏布局 ---------- */
.lib-layout{width:100%;max-width:1480px;margin:0 auto;flex:1;display:grid;
  grid-template-columns:1fr 1.45fr 1.2fr;gap:0;align-items:stretch;min-height:0}
.lib-aside,.lib-reader,.lib-list{min-height:0}
.lib-aside{border-right:1px solid var(--line);background:var(--bg-2);padding:22px 20px;overflow:auto}
.lib-reader{background:var(--card);display:flex;flex-direction:column;min-height:0}
.lib-list{border-left:1px solid var(--line);background:var(--bg-2);display:flex;flex-direction:column;min-height:0}

/* ---------- 左栏：品牌 + 筛选 ---------- */
.aside-brand{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.aside-brand .taiji{width:46px;height:46px;flex:none;animation:spin 26s linear infinite}
.aside-brand .txt b{display:block;font-family:var(--font-serif);font-size:17px;color:var(--sage-deep);letter-spacing:.08em}
.aside-brand .txt span{font-size:12.5px;color:var(--gold);letter-spacing:.04em}
.aside-search{position:relative;margin-bottom:18px}
.aside-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--muted)}
.aside-search input{width:100%;padding:9px 12px 9px 34px;border:1px solid var(--line);border-radius:var(--r-pill);
  font:inherit;font-size:14px;background:#fff;color:var(--ink)}
.aside-search input:focus{outline:none;border-color:var(--sage);box-shadow:0 0 0 3px rgba(91,140,90,.14)}
.aside-block{margin-bottom:20px}
.aside-block .lbl{font-size:12px;color:var(--muted);letter-spacing:.14em;margin:0 0 10px;text-transform:uppercase}
.aside-cats{display:flex;flex-wrap:wrap;gap:8px}
.aside-cats .chip{padding:6px 15px;border:1px solid var(--line);color:var(--muted);background:#fff;
  border-radius:var(--r-pill);cursor:pointer;font-size:13.5px;transition:all .2s;font-family:var(--font-sans)}
.aside-cats .chip:hover{border-color:var(--sage);color:var(--sage-deep)}
.aside-cats .chip.active{background:var(--sage);color:#fff;border-color:var(--sage);box-shadow:var(--sh-1)}
.aside-tags{display:flex;flex-wrap:wrap;gap:7px}
.aside-tags .tag{background:var(--card);border:1px solid var(--line);color:var(--muted);padding:4px 11px;
  border-radius:var(--r-pill);font-size:12.5px;cursor:pointer;transition:all .2s}
.aside-tags .tag:hover{border-color:var(--gold);color:var(--gold)}
.aside-tags .tag.active{background:var(--gold-soft);border-color:var(--gold);color:var(--gold)}
.aside-tip{margin-top:8px;background:var(--card);border:1px dashed var(--line);border-radius:var(--r-m);
  padding:14px 16px;font-size:12.5px;color:var(--muted);line-height:1.7}
.aside-tip b{color:var(--sage-deep);font-weight:600}

/* ---------- 中栏：电子书预览 ---------- */
.rp-bar{flex:none;display:flex;align-items:center;gap:10px;padding:12px 20px;border-bottom:1px solid var(--line);background:#fff}
.rp-bar .rp-title{font-family:var(--font-serif);font-size:16px;color:var(--sage-deep);flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-bar .rp-fs{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:13px}
.rp-bar .rp-fs button{width:28px;height:28px;border-radius:8px;font-size:15px;color:var(--muted);border:1px solid var(--line);background:#fff}
.rp-bar .rp-fs button:hover{border-color:var(--sage);color:var(--sage-deep)}
.rp-bar .rp-open{font-size:13px;padding:7px 14px;border-radius:var(--r-pill);border:1px solid var(--sage);
  background:var(--sage);color:#fff;cursor:pointer;white-space:nowrap}
.rp-bar .rp-open:hover{background:var(--sage-deep)}
.rp-progress{flex:none;height:3px;background:var(--line-soft)}
.rp-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--sage),var(--gold));transition:width .12s linear}
.rp-scroll{flex:1;overflow:auto;padding:30px clamp(18px,4vw,56px) 70px;scroll-behavior:smooth;background:var(--card)}
.rp-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);text-align:center;padding:40px}
.rp-empty .big{font-size:40px;margin-bottom:14px;opacity:.5}
.rp-doc{max-width:760px;margin:0 auto}
.rp-doc h1{font-family:var(--font-serif);font-size:27px;color:var(--sage-deep);margin:0 0 6px;line-height:1.4}
.rp-doc .rp-meta{color:var(--muted);font-size:13px;margin-bottom:18px;display:flex;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:14px}
.rp-doc h2{font-family:var(--font-serif);font-size:21px;color:var(--sage-deep);margin:1.6em 0 .5em;padding-left:.7em;border-left:4px solid var(--sage)}
.rp-doc h3{font-family:var(--font-serif);font-size:17px;color:var(--sage-deep);margin:1.2em 0 .4em}
.rp-doc p{line-height:1.92;margin:.8em 0;color:var(--ink);text-align:justify;text-justify:inter-character}
.rp-doc blockquote{margin:1em 0;padding:12px 18px;border-left:4px solid var(--gold);background:var(--gold-soft);border-radius:0 10px 10px 0;color:var(--ink)}
.rp-doc ul,.rp-doc ol{padding-left:1.6em;margin:.8em 0}
.rp-doc li{margin:.3em 0;line-height:1.85}
.rp-doc table{border-collapse:separate;border-spacing:0;width:100%;margin:1.2em 0;font-size:14px;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.rp-doc th,.rp-doc td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:10px 12px;vertical-align:top;text-align:left}
.rp-doc th{background:var(--sage-soft);color:var(--sage-deep);font-weight:600}
.rp-doc tr:last-child td{border-bottom:none}
.rp-doc td:last-child,.rp-doc th:last-child{border-right:none}
.rp-doc pre{background:#26322b;color:#e8f0e6;padding:14px 16px;border-radius:10px;overflow:auto;font-size:13px}
.rp-doc code{background:var(--sage-soft);color:var(--sage-deep);padding:1px 5px;border-radius:5px;font-size:.92em}
.rp-doc .md-img{max-width:100%;border-radius:10px;margin:1em 0;box-shadow:var(--sh-1)}

/* ---------- 右栏：文献列表 ---------- */
.list-head{flex:none;display:flex;align-items:center;justify-content:space-between;padding:16px 18px 12px;
  border-bottom:1px solid var(--line);background:var(--bg-2)}
.list-head b{font-family:var(--font-serif);font-size:15px;color:var(--sage-deep);letter-spacing:.06em}
.list-head .cnt{font-size:12.5px;color:var(--muted)}
.list-scroll{flex:1;overflow:auto;padding:12px}
.doc-item{--ac:var(--sage);background:var(--card);border:1px solid var(--line);border-left:4px solid var(--ac);
  border-radius:var(--r-m);padding:14px 16px;margin-bottom:12px;cursor:pointer;transition:transform .18s,box-shadow .2s,border-color .2s;position:relative}
.doc-item:hover{transform:translateY(-2px);box-shadow:var(--sh-2);border-color:var(--ac)}
.doc-item.active{border-color:var(--ac);box-shadow:var(--sh-2);background:linear-gradient(180deg,var(--card),var(--sage-soft))}
.doc-item .di-cat{display:inline-block;font-size:11.5px;color:#fff;background:var(--ac);padding:2px 10px;border-radius:var(--r-pill);margin-bottom:8px;letter-spacing:.04em}
.doc-item h4{margin:0 0 6px;font-size:16px;color:var(--ink);line-height:1.45;font-weight:600}
.doc-item p{margin:0 0 10px;font-size:13px;color:var(--muted);line-height:1.7;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.doc-item .di-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.doc-item .di-meta .reading{color:var(--sage-deep)}
.doc-item .di-tags{display:flex;gap:5px;flex-wrap:wrap}
.doc-item .di-tags .tag{background:var(--sage-soft);color:var(--sage-deep);padding:2px 8px;border-radius:var(--r-pill);font-size:11px}
.doc-item .di-hint{position:absolute;top:12px;right:12px;font-size:10.5px;color:var(--muted);opacity:.7}
.doc-item.cat-whitepaper{--ac:var(--c-whitepaper)}
.doc-item.cat-solution{--ac:var(--c-solution)}
.doc-item.cat-paper{--ac:var(--c-paper)}
.list-empty{padding:50px 20px;text-align:center;color:var(--muted);font-size:13.5px}

/* ---------- 全屏电子阅读器 ---------- */
.reader-modal{position:fixed;inset:0;z-index:200;display:none}
.reader-modal.open{display:block}
.rm-mask{position:absolute;inset:0;background:rgba(22,32,24,.5);backdrop-filter:blur(2px)}
.rm-dialog{position:absolute;inset:2.5vh 2.5vw;background:var(--card);border-radius:16px;overflow:hidden;
  box-shadow:var(--sh-3);display:flex;flex-direction:column;max-width:1400px;margin:0 auto}
.rm-top{flex:none;display:flex;align-items:center;gap:10px;padding:10px 18px;border-bottom:1px solid var(--line);background:var(--card)}
.rm-top .rm-ttl{font-family:var(--font-serif);font-size:15.5px;color:var(--sage-deep);flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rm-top .rm-ttl small{color:var(--muted);font-family:var(--font-sans);font-size:12px;margin-left:8px}
.rm-top .grp{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:13px}
.rm-top .grp button{height:30px;min-width:30px;padding:0 8px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--muted);font-size:13px}
.rm-top .grp button:hover{border-color:var(--sage);color:var(--sage-deep)}
.rm-top .grp .theme-btn.active{background:var(--sage);border-color:var(--sage);color:#fff}
.rm-top .rm-close{width:34px;height:30px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--muted);font-size:17px}
.rm-top .rm-close:hover{border-color:var(--gold);color:var(--gold)}

.rm-grid{flex:1;display:flex;min-height:0;background:var(--card)}
/* 左：目录 */
.rm-toc{flex:0 0 22%;min-width:180px;max-width:280px;background:var(--bg-2);border-right:1px solid var(--line);
  display:flex;flex-direction:column;min-height:0}
.rm-toc .ph{padding:12px 14px;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted);letter-spacing:.1em;flex:none}
.rm-toc .body{flex:1;overflow:auto;padding:6px 0}
.rm-toc .item{display:block;width:100%;text-align:left;padding:9px 14px;border:none;background:none;
  font-size:13.5px;color:var(--ink);border-left:3px solid transparent;transition:background .12s}
.rm-toc .item:hover{background:var(--sage-soft)}
.rm-toc .item.active{background:var(--sage-soft);color:var(--sage-deep);font-weight:600;border-left-color:var(--sage)}
.rm-toc .item.lvl2{padding-left:28px;font-size:13px;color:#4a554c}
.rm-toc .item.lvl3{padding-left:42px;font-size:12.5px;color:var(--muted)}
.rm-toc .empty{padding:18px;color:var(--muted);font-size:13px;text-align:center}
/* 中：正文 */
.rm-content{flex:1;min-width:0;display:flex;flex-direction:column;position:relative;background:var(--card)}
.rm-progress{position:absolute;top:0;left:0;right:0;height:3px;background:var(--line-soft);z-index:5}
.rm-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--sage),var(--gold));transition:width .12s linear}
.rm-body{flex:1;overflow:auto;padding:30px clamp(18px,4vw,64px) 70px;scroll-behavior:smooth}
.rm-doc{max-width:820px;margin:0 auto}
.rm-doc h1{font-family:var(--font-serif);font-size:28px;color:var(--sage-deep);margin:.4em 0 .5em;line-height:1.4;scroll-margin-top:20px}
.rm-doc h2{font-family:var(--font-serif);font-size:22px;color:var(--sage-deep);margin:1.5em 0 .5em;padding-left:.7em;border-left:4px solid var(--sage);scroll-margin-top:20px}
.rm-doc h3{font-family:var(--font-serif);font-size:18px;color:var(--sage-deep);margin:1.2em 0 .4em;scroll-margin-top:20px}
.rm-doc p{line-height:1.95;margin:.85em 0;color:var(--ink);text-align:justify;text-justify:inter-character;font-size:var(--reader-fs,16px)}
.rm-doc blockquote{margin:1em 0;padding:12px 18px;border-left:4px solid var(--gold);background:var(--gold-soft);border-radius:0 10px 10px 0;color:var(--ink)}
.rm-doc ul,.rm-doc ol{padding-left:1.6em;margin:.8em 0}
.rm-doc li{margin:.3em 0;line-height:1.9;font-size:var(--reader-fs,16px)}
.rm-doc table{border-collapse:separate;border-spacing:0;width:100%;margin:1.3em 0;font-size:14.5px;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.rm-doc th,.rm-doc td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:11px 13px;vertical-align:top;text-align:left}
.rm-doc th{background:var(--sage-soft);color:var(--sage-deep);font-weight:600}
.rm-doc tr:last-child td{border-bottom:none}
.rm-doc td:last-child,.rm-doc th:last-child{border-right:none}
.rm-doc tr:nth-child(even) td{background:var(--bg-2)}
.rm-doc pre{background:#26322b;color:#e8f0e6;padding:16px 18px;border-radius:10px;overflow:auto;font-size:13px}
.rm-doc code{background:var(--sage-soft);color:var(--sage-deep);padding:1px 5px;border-radius:5px;font-size:.92em}
.rm-doc .md-img{max-width:100%;border-radius:10px;margin:1em 0;box-shadow:var(--sh-1)}
.rm-doc mark.hl{background:rgba(252,227,138,.55);border-radius:3px;padding:0 1px;cursor:pointer;box-shadow:inset 0 -1px 0 var(--gold)}
.rm-doc mark.hl.flash{animation:hlflash 1.3s ease}
@keyframes hlflash{0%{background:var(--gold)}100%{background:rgba(252,227,138,.55)}}
/* 右：随感笔记 */
.rm-notes{flex:0 0 300px;background:var(--bg-2);border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.rm-notes .ph{padding:12px 14px;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted);letter-spacing:.1em;flex:none;display:flex;justify-content:space-between;align-items:center}
.rm-notes .body{flex:1;overflow:auto;padding:10px}
.rm-notes .empty{padding:24px 14px;color:var(--muted);font-size:12.5px;text-align:center;line-height:1.7}
.note-card{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px;background:#fff;cursor:pointer;transition:border-color .15s}
.note-card:hover{border-color:var(--sage)}
.note-card .quote{border-left:3px solid var(--gold);padding-left:8px;color:#5a5640;font-size:12.5px;margin-bottom:6px;max-height:3.4em;overflow:hidden;line-height:1.6}
.note-card .note{font-size:13px;white-space:pre-wrap;word-break:break-word;color:var(--ink)}
.note-card .meta{display:flex;justify-content:space-between;align-items:center;margin-top:6px;font-size:11px;color:var(--muted)}
.note-card .meta button{color:var(--muted);font-size:12px}
.note-card .meta button:hover{color:#b0706a}
/* 底栏翻页 */
.rm-bottom{flex:none;display:flex;align-items:center;gap:10px;padding:9px 16px;border-top:1px solid var(--line);background:var(--card);flex-wrap:wrap}
.rm-bottom .rn-btn{border:1px solid var(--line);background:#fff;color:var(--ink);padding:7px 14px;border-radius:9px;font-size:13px;cursor:pointer}
.rm-bottom .rn-btn:hover{border-color:var(--sage);color:var(--sage-deep)}
.rm-bottom .rn-btn:disabled{opacity:.4;cursor:default;color:var(--muted)}
.rm-bottom .rn-page{font-size:13px;color:var(--muted);min-width:90px;text-align:center}
.rm-bottom .rn-spacer{flex:1}

/* 选区标注弹层 */
.hl-pop{position:fixed;z-index:260;width:260px;max-width:92vw;background:var(--card);border:1px solid var(--line);
  border-radius:12px;box-shadow:var(--sh-3);padding:12px;display:none}
.hl-pop.show{display:block}
.hl-pop .sel{font-size:12px;color:var(--muted);border-left:3px solid var(--gold);padding-left:8px;margin-bottom:8px;max-height:4.4em;overflow:auto;line-height:1.5}
.hl-pop textarea{width:100%;min-height:64px;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:8px;font:inherit;font-size:13.5px}
.hl-pop textarea:focus{outline:none;border-color:var(--sage)}
.hl-pop .row{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}

/* 主题：护眼（米黄）/ 夜读 */
.rm-dialog.theme-sepia{background:#f6efe0}
.rm-dialog.theme-sepia .rm-top,.rm-dialog.theme-sepia .rm-bottom{background:#f6efe0;border-color:#e3d8c0}
.rm-dialog.theme-sepia .rm-content,.rm-dialog.theme-sepia .rm-toc,.rm-dialog.theme-sepia .rm-notes{background:#f6efe0}
.rm-dialog.theme-sepia .rm-toc,.rm-dialog.theme-sepia .rm-notes{border-color:#e3d8c0}
.rm-dialog.theme-sepia .rm-doc p,.rm-dialog.theme-sepia .rm-doc li{color:#5a4e36}
.rm-dialog.theme-sepia .rm-doc h1,.rm-dialog.theme-sepia .rm-doc h2,.rm-dialog.theme-sepia .rm-doc h3{color:#7a5a2e}
.rm-dialog.theme-sepia .rm-doc blockquote{background:#efe4cb;border-color:#c9a85f}
.rm-dialog.theme-sepia .rm-doc th{background:#ece0c6}
.rm-dialog.theme-sepia .rm-doc tr:nth-child(even) td{background:#f1e8d4}
.rm-dialog.theme-night{background:#1f2420}
.rm-dialog.theme-night .rm-top,.rm-dialog.theme-night .rm-bottom{background:#1f2420;border-color:#333b34;color:#cfd6cf}
.rm-dialog.theme-night .rm-content{background:#262c27}
.rm-dialog.theme-night .rm-toc,.rm-dialog.theme-night .rm-notes{background:#1a1f1b;border-color:#333b34;color:#aeb6ad}
.rm-dialog.theme-night .rm-ttl{color:#dfe6df}
.rm-dialog.theme-night .rm-doc p,.rm-dialog.theme-night .rm-doc li{color:#cdd4cd}
.rm-dialog.theme-night .rm-doc h1,.rm-dialog.theme-night .rm-doc h2,.rm-dialog.theme-night .rm-doc h3{color:#8fc08a}
.rm-dialog.theme-night .rm-doc blockquote{background:#2e352e;border-color:#5b8c5a;color:#cdd4cd}
.rm-dialog.theme-night .rm-doc code{background:#2e352e;color:#9fd6a0}
.rm-dialog.theme-night .rm-doc th{background:#2e352e;color:#cfe0cb}
.rm-dialog.theme-night .rm-doc tr:nth-child(even) td{background:#222824}
.rm-dialog.theme-night .rm-toc .item{color:#cdd4cd}
.rm-dialog.theme-night .note-card{background:#262c27;border-color:#333b34;color:#cdd4cd}
.rm-dialog.theme-night .note-card .note{color:#dfe6df}

/* ---------- 响应式 ---------- */
@keyframes spin{to{transform:rotate(360deg)}}
@media (max-width:1100px){
  .lib-layout{grid-template-columns:1fr;grid-auto-rows:min-content}
  .lib-aside{border-right:none;border-bottom:1px solid var(--line)}
  .lib-reader{display:none}
  .lib-list{border-left:none}
  .aside-brand{margin-bottom:14px}
  .aside-tip{display:none}
}
@media (max-width:760px){
  .lib-head{padding:26px 16px 22px}
  .rm-dialog{inset:0;border-radius:0}
  .rm-grid{flex-direction:column}
  .rm-toc{display:none}
  .rm-notes{position:fixed;inset:0;top:auto;transform:translateY(100%);transition:transform .25s;z-index:12;border:none;height:100%}
  .rm-dialog.m-notes .rm-notes{transform:translateY(0)}
  .rm-notes .ph{font-size:15px;padding:16px 14px}
  .rm-top .theme-btn span{display:none}
  .rm-bottom .rn-btn{padding:7px 10px;font-size:12px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;scroll-behavior:auto!important}
}
