/* ---------- 基础与主题 ---------- */
:root{
  --red:#A63125; --red-deep:#7E241C; --red-soft:#FBEFEA;
  --gold:#B8862B; --gold-soft:#F7EFDD;
  --ink:#26221C; --ink-2:#6B635A; --ink-3:#9B9184;
  --paper:#F7F4ED; --card:#FFFFFF; --line:#E8E2D5; --line-2:#D9D1BF;
  --shadow:0 2px 6px rgba(38,34,28,.05),0 8px 24px rgba(38,34,28,.07);
  --shadow-up:0 6px 18px rgba(166,49,37,.16);
  --serif:"Noto Serif SC","Songti SC","SimSun",serif;
  --sans:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;
}
html.dark{
  --red:#C8564A; --red-deep:#D97A6E; --red-soft:#3A2521;
  --gold:#D5A548; --gold-soft:#39311E;
  --ink:#EDE7DB; --ink-2:#B4AA9A; --ink-3:#7C7566;
  --paper:#17150F; --card:#201D16; --line:#332E24; --line-2:#453E30;
  --shadow:0 2px 6px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.35);
  --shadow-up:0 6px 18px rgba(0,0,0,.4);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--paper);color:var(--ink);font-size:15px;line-height:1.75;-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit;transition:color .15s}
a:hover{color:var(--red)}
ul,ol{list-style:none}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-9999px;top:0;background:var(--red);color:#fff;padding:8px 16px;z-index:999}
.skip:focus{left:0}
/* ---------- 顶部条 ---------- */
.topbar{background:var(--red-deep);color:#F3E3DC;font-size:12.5px}
html.dark .topbar{background:#241A18}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;height:38px}
.topbar a{color:#F3E3DC;opacity:.92}
.topbar a:hover{opacity:1;text-decoration:underline}
.topbar .tb-r{display:flex;gap:18px}
/* ---------- 主头部 ---------- */
.masthead{background:var(--card);border-bottom:1px solid var(--line)}
.masthead .wrap{display:flex;align-items:center;gap:28px;padding:22px 20px}
.logo{display:flex;align-items:center;gap:12px;flex-shrink:0}
.logo .seal{width:52px;height:52px;border-radius:12px;background:linear-gradient(145deg,var(--red),var(--red-deep));
  display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:26px;font-weight:900;color:#F6E8D8;
  box-shadow:var(--shadow-up)}
.logo .t1{font-family:var(--serif);font-size:26px;font-weight:900;letter-spacing:3px;color:var(--red)}
.logo .t2{font-size:11px;color:var(--ink-3);letter-spacing:2.5px}
.searchbox{flex:1;max-width:560px}
.sb-row{display:flex}
.sb-row input{flex:1;border:2px solid var(--red);border-right:none;border-radius:10px 0 0 10px;
  padding:10px 16px;font-size:14px;font-family:inherit;background:var(--card);color:var(--ink);outline:none}
.sb-row input::placeholder{color:var(--ink-3)}
.sb-row button{border:none;background:var(--red);color:#fff;font-size:14.5px;font-weight:700;padding:0 26px;
  border-radius:0 10px 10px 0;cursor:pointer;font-family:inherit}
.sb-row button:hover{background:var(--red-deep)}
.hotwords{margin-top:7px;font-size:12px;color:var(--ink-3);display:flex;flex-wrap:wrap;gap:6px 14px}
.hotwords a:hover{color:var(--red)}
.hotwords .hw{color:var(--red);font-weight:700}
.mh-right{margin-left:auto;display:flex;align-items:center;gap:14px;flex-shrink:0}
.shelf-btn{display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--line-2);border-radius:10px;
  padding:9px 18px;font-size:13.5px;font-weight:700;color:var(--ink);background:var(--card)}
.shelf-btn:hover{border-color:var(--red);color:var(--red)}
.theme-btn{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--line-2);background:var(--card);
  cursor:pointer;font-size:17px;display:flex;align-items:center;justify-content:center}
.theme-btn:hover{border-color:var(--gold)}
/* ---------- 导航 ---------- */
.mainnav{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;box-shadow:var(--shadow)}
.mainnav .wrap{display:flex;align-items:center;gap:4px;height:48px;overflow-x:auto;scrollbar-width:none}
.mainnav .wrap::-webkit-scrollbar{display:none}
.mainnav a{font-size:15.5px;font-weight:700;padding:5px 16px;border-radius:8px;white-space:nowrap}
.mainnav a.on,.mainnav a:hover{color:#fff;background:var(--red)}
.mainnav .nav-gap{margin-left:auto}
.mainnav .nav-free{color:var(--gold);font-size:13px;font-weight:800;letter-spacing:1px;white-space:nowrap;
  padding:3px 12px;border:1px solid var(--gold);border-radius:999px}
/* ---------- 面包屑 ---------- */
.crumbs{font-size:12.5px;color:var(--ink-3);padding:16px 0 0}
.crumbs a{color:var(--ink-2)}
.crumbs a:hover{color:var(--red)}
.crumbs b{color:var(--ink);font-weight:700}
/* ---------- 通用元素 ---------- */
.tag{font-size:11px;font-weight:700;border-radius:5px;padding:2px 9px;letter-spacing:1px}
.tag.t-red{color:#fff;background:var(--red)}
.tag.t-gold{color:var(--gold);background:var(--gold-soft);border:1px solid var(--gold)}
.tag.t-line{color:var(--ink-2);border:1px solid var(--line-2);background:transparent}
.btn-read{display:inline-flex;align-items:center;gap:8px;background:var(--red);color:#fff;font-weight:800;font-size:14.5px;
  border-radius:10px;padding:11px 30px;box-shadow:var(--shadow-up);border:none;cursor:pointer;font-family:inherit}
.btn-read:hover{background:var(--red-deep);transform:translateY(-2px);transition:.18s}
.btn-shelf{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--red);color:var(--red);font-weight:700;
  font-size:14px;border-radius:10px;padding:10px 24px;background:var(--card);cursor:pointer;font-family:inherit}
.btn-shelf:hover{background:var(--red-soft)}
.cover{position:relative;border-radius:8px 10px 10px 8px;overflow:hidden;box-shadow:var(--shadow);
  background:linear-gradient(160deg,var(--c1),var(--c2));display:flex;flex-direction:column;justify-content:space-between;
  padding:14px 12px;transition:transform .22s ease,box-shadow .22s ease}
.cover::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:rgba(255,255,255,.28)}
.cover::after{content:"";position:absolute;inset:0;background:radial-gradient(120px 80px at 85% 10%,rgba(255,255,255,.16),transparent 70%)}
.cover .cv-t{font-family:var(--serif);font-size:17px;font-weight:900;color:#fff;letter-spacing:1px;
  writing-mode:vertical-rl;text-orientation:upright;line-height:1.35;margin:0 auto;max-height:76%;
  overflow:hidden;text-shadow:0 2px 6px rgba(0,0,0,.35)}
.cover .cv-a{font-size:10px;color:rgba(255,255,255,.85);writing-mode:vertical-rl;position:absolute;right:9px;top:14px;letter-spacing:2px}
.cover .cv-b{position:relative;z-index:1;font-size:10px;color:rgba(255,255,255,.9);letter-spacing:1px}
.cover:hover{transform:translateY(-6px);box-shadow:0 14px 30px rgba(38,34,28,.22)}
.sec-h{display:flex;align-items:baseline;gap:14px;margin-bottom:16px;border-bottom:2px solid var(--ink);padding-bottom:10px}
.sec-h h2{font-family:var(--serif);font-size:23px;font-weight:900;letter-spacing:1px}
.sec-h h2 i{font-style:normal;color:var(--red);margin-right:8px}
.sec-h .sub{font-size:12.5px;color:var(--ink-3)}
.sec-h .more{margin-left:auto;font-size:13px;color:var(--ink-2);white-space:nowrap}
.sec-h .more:hover{color:var(--red)}
main.wrap{padding:22px 20px 10px}
/* ---------- 页脚 ---------- */
footer{background:var(--ink);color:#B9B0A0;margin-top:44px}
html.dark footer{background:#100E0A}
footer .f-sec{border-bottom:1px solid rgba(255,255,255,.08);padding:30px 0 6px}
footer h4{font-family:var(--serif);color:#EFE8DA;font-size:15px;font-weight:800;margin-bottom:12px;letter-spacing:1px}
footer h4 i{font-style:normal;color:var(--gold);margin-right:6px}
footer .f-links{display:flex;flex-wrap:wrap;gap:10px 12px;font-size:13px;padding-bottom:22px}
footer .f-links a{color:#C9C0B0;background:rgba(255,255,255,.06);border-radius:6px;padding:3px 12px}
footer .f-links a:hover{background:var(--red);color:#fff}
.f-bottom{padding:22px 0 30px;text-align:center;font-size:12px;color:#8B8272;line-height:2}
.f-bottom a{color:#A99F8D}
/* ---------- 回到顶部 ---------- */
.backtop{position:fixed;right:26px;bottom:34px;width:46px;height:46px;border-radius:12px;border:none;cursor:pointer;
  background:var(--red);color:#fff;font-size:18px;box-shadow:var(--shadow-up);opacity:0;visibility:hidden;transition:.25s;z-index:60}
.backtop.on{opacity:1;visibility:visible}
.backtop:hover{background:var(--red-deep)}
/* ---------- 响应式 ---------- */
@media (max-width:1020px){.searchbox{display:none}.mh-right{display:none}}
@media (max-width:640px){
  .topbar .tb-r{gap:10px}
  .masthead .wrap{padding:14px 12px;gap:12px}
  .logo .seal{width:42px;height:42px;font-size:20px}
  .logo .t1{font-size:20px;letter-spacing:1.5px}
  .logo .t2{display:none}
}
/* 信息页 */
.if-hero{background:linear-gradient(135deg,var(--red),var(--red-deep));border-radius:16px;color:#F6E8D8;
  padding:44px 46px;margin-top:16px;box-shadow:var(--shadow-up);position:relative;overflow:hidden}
.if-hero::after{content:"墨";position:absolute;right:20px;bottom:-30px;font-family:var(--serif);font-size:140px;font-weight:900;opacity:.1}
.if-hero h1{font-family:var(--serif);font-size:28px;font-weight:900;letter-spacing:3px}
.if-hero p{font-size:13.5px;opacity:.9;margin-top:8px;letter-spacing:1px}
.if-sec{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:26px 30px;margin-top:18px}
.if-sec h2{font-family:var(--serif);font-size:18px;font-weight:900;border-bottom:2px solid var(--ink);padding-bottom:10px;margin-bottom:14px}
.if-sec h2 i{font-style:normal;color:var(--red);margin-right:8px}
.if-sec p{font-size:13.5px;color:var(--ink-2);line-height:2}
.if-sec p b{color:var(--red)}
.if-list li{font-size:13.5px;color:var(--ink-2);line-height:2.1;padding-left:18px;position:relative;margin:4px 0}
.if-list li::before{content:"·";position:absolute;left:0;color:var(--red);font-weight:900}
.if-list li b{color:var(--ink)}
@media (max-width:640px){.if-hero{padding:28px 22px}}
/* 作家入驻页 */
.au-hero{background:linear-gradient(120deg,var(--ink) 0%,#3A342A 100%);border-radius:16px;color:#EFE8DA;
  padding:44px 46px;box-shadow:var(--shadow);margin-top:16px;position:relative;overflow:hidden}
.au-hero::after{content:"书";position:absolute;right:24px;bottom:-24px;font-family:var(--serif);font-size:150px;font-weight:900;opacity:.07}
.au-hero h1{font-family:var(--serif);font-size:28px;font-weight:900;letter-spacing:2px}
.au-hero h1 em{font-style:normal;color:var(--gold)}
.au-hero p{font-size:14px;opacity:.85;margin-top:10px;max-width:680px}
.au-stats{display:flex;gap:40px;margin-top:22px;flex-wrap:wrap}
.au-stats b{font-size:24px;font-family:var(--serif);color:var(--gold)}
.au-stats span{display:block;font-size:11.5px;opacity:.7}
.au-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:22px}
.au-card{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:22px;transition:transform .2s ease}
.au-card:hover{transform:translateY(-4px)}
.au-card i{font-style:normal;font-size:26px}
.au-card h2{font-size:15.5px;font-weight:900;margin:8px 0 6px}
.au-card p{font-size:12.5px;color:var(--ink-2);line-height:1.8}
.au-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.au-steps li{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:20px;border-top:3px solid var(--gold)}
.au-steps b{font-family:var(--mono);color:var(--red);font-size:12px;letter-spacing:2px}
.au-steps h3{font-size:15px;font-weight:900;margin:6px 0 4px}
.au-steps p{font-size:12px;color:var(--ink-2)}
.au-faq details{background:var(--card);border-radius:12px;box-shadow:var(--shadow);padding:16px 20px;margin-bottom:10px}
.au-faq summary{font-size:14px;font-weight:800;cursor:pointer}
.au-faq p{font-size:13px;color:var(--ink-2);margin-top:8px}
.au-form{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:26px 30px;
  display:grid;grid-template-columns:1fr 1fr;gap:18px}
.au-form label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700}
.au-form label:nth-child(4),.au-form button{grid-column:1 / -1}
.au-form input,.au-form select,.au-form textarea{border:1.5px solid var(--line-2);border-radius:10px;
  padding:11px 14px;font-family:inherit;font-size:14px;background:var(--paper);color:var(--ink);outline:none}
.au-form input:focus,.au-form textarea:focus,.au-form select:focus{border-color:var(--red)}
.au-form button{background:var(--red);color:#fff;border:none;border-radius:11px;padding:14px 0;
  font-size:15px;font-weight:800;cursor:pointer;font-family:inherit;box-shadow:var(--shadow-up)}
.au-form button:hover{background:var(--red-deep)}
@media (max-width:1020px){.au-grid,.au-steps{grid-template-columns:1fr 1fr}.au-form{grid-template-columns:1fr}}
@media (max-width:640px){.au-grid,.au-steps{grid-template-columns:1fr}.au-hero{padding:28px 22px}}
/* 书架页 */
.sf-tabs{display:flex;gap:8px;margin:16px 0 6px}
.sf-tabs button{border:none;background:var(--card);color:var(--ink-2);font-family:inherit;font-size:14px;
  padding:9px 24px;border-radius:10px;cursor:pointer;box-shadow:var(--shadow);font-weight:700}
.sf-tabs button.on{background:var(--red);color:#fff}
.sf-list{display:grid;grid-template-columns:repeat(4,1fr);gap:22px 20px;margin-top:14px}
.sf-list li{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:16px;display:flex;gap:14px}
.sf-list .cover{width:76px;height:106px;flex-shrink:0}
.sf-list .cv-t{font-size:12px}
.sf-list h3{font-size:14.5px;font-weight:800;margin-bottom:3px}
.sf-list .sf-m{font-size:11.5px;color:var(--ink-3);line-height:1.9}
.sf-list .sf-r{margin-top:8px;display:flex;gap:8px}
.sf-list .sf-r a{font-size:11.5px;border-radius:7px;padding:3px 12px;border:1px solid var(--line-2);color:var(--ink-2)}
.sf-list .sf-r a.hot{background:var(--red);border-color:var(--red);color:#fff;font-weight:700}
.sf-empty{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:56px 20px;text-align:center;margin-top:14px}
.sfe-ico{font-size:44px}
.sf-empty h2{font-family:var(--serif);font-size:20px;font-weight:900;margin:10px 0 6px}
.sf-empty p{font-size:13px;color:var(--ink-3)}
.sfe-go{display:flex;justify-content:center;gap:14px;margin:20px 0 26px}
.sfe-re{font-size:12.5px;color:var(--ink-3)}
.sfe-re a{color:var(--ink-2);border-bottom:1px dashed var(--ink-3)}
.sfe-re a:hover{color:var(--red)}
@media (max-width:1020px){.sf-list{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.sf-list{grid-template-columns:1fr}}
/* 完本专区 */
.fin-banner{background:var(--gold-soft);border:1px solid var(--gold);border-radius:12px;padding:12px 20px;
  font-size:13px;color:var(--ink-2);margin-top:14px}
.fin-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:22px 20px;margin-top:16px}
.fcard{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:14px;transition:transform .2s ease}
.fcard:hover{transform:translateY(-5px)}
.fcard .f-cv{height:200px;display:flex;margin-bottom:11px}
.fcard h3{font-size:14.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fcard .f-a{font-size:11.5px;color:var(--ink-3);margin:2px 0 6px}
.fcard .f-d{font-size:12px;color:var(--ink-2);line-height:1.75;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:42px}
@media (max-width:1020px){.fin-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.fin-grid{grid-template-columns:repeat(2,1fr)}}
/* 筛选与分页（与列表页一致） */
.f-row{display:flex;gap:10px;align-items:baseline;padding:6px 0;flex-wrap:wrap}
.f-row .f-k{font-size:13px;font-weight:700;color:var(--ink-2);width:52px;flex-shrink:0}
.f-row a{font-size:13px;color:var(--ink-2);padding:2px 12px;border-radius:6px}
.f-row a:hover{color:var(--red)}
.f-row a.on{background:var(--red);color:#fff;font-weight:700}
.filters{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:12px 20px;margin:14px 0 16px}
.pager{display:flex;justify-content:center;gap:8px;margin:26px 0 6px;flex-wrap:wrap}
.pager a,.pager span{min-width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:9px;border:1px solid var(--line-2);font-size:13.5px;color:var(--ink-2);padding:0 12px}
.pager a:hover{border-color:var(--red);color:var(--red)}
.pager .on{background:var(--red);color:#fff;border-color:var(--red);font-weight:700}
.pager .dis{opacity:.45;pointer-events:none}
:root{
  --red:#A63125; --red-deep:#7E241C; --red-soft:#FBEFEA;
  --gold:#B8862B; --gold-soft:#F7EFDD;
  --ink:#26221C; --ink-2:#6B635A; --ink-3:#9B9184;
  --paper:#F7F4ED; --card:#FFFFFF; --line:#E8E2D5; --line-2:#D9D1BF;
  --shadow:0 2px 6px rgba(38,34,28,.05),0 8px 24px rgba(38,34,28,.07);
  --shadow-up:0 6px 18px rgba(166,49,37,.16);
  --serif:"Noto Serif SC","Songti SC","SimSun",serif;
  --sans:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --r:10px;
}
img{max-width:100%;display:block}
.sb-row input{flex:1;border:2px solid var(--red);border-right:none;border-radius:var(--r) 0 0 var(--r);
  padding:10px 16px;font-size:14px;font-family:inherit;background:var(--card);color:var(--ink);outline:none}
.sb-row button{border:none;background:var(--red);color:#fff;font-size:14.5px;font-weight:700;padding:0 26px;
  border-radius:0 var(--r) var(--r) 0;cursor:pointer;font-family:inherit}
.shelf-btn{display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--line-2);border-radius:var(--r);
  padding:9px 18px;font-size:13.5px;font-weight:700;color:var(--ink);background:var(--card)}
/* ---------- 主体分区 ---------- */
main.wrap{padding:22px 20px 10px}
.sec{margin-bottom:34px}
/* ---------- 轮播 Hero ---------- */
.hero{display:grid;grid-template-columns:1fr 300px;gap:18px}
.carousel{position:relative;display:flex;flex-direction:column;border-radius:14px;overflow:hidden;background:var(--card);box-shadow:var(--shadow)}
.slides{position:relative;height:100%;min-height:340px}
.slide{position:absolute;inset:0;display:flex;gap:26px;align-items:center;padding:34px 40px;
  opacity:0;visibility:hidden;transition:opacity .6s ease;background:var(--card)}
.slide.on{opacity:1;visibility:visible}
.slide .bigcover{width:196px;height:272px;flex-shrink:0}
.slide .s-info{min-width:0}
.slide .s-tags{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.tag{font-size:11px;font-weight:700;border-radius:5px;padding:2px 9px;letter-spacing:1px}
html.dark .tag.t-line{color:var(--ink-2)}
.slide h1,.slide h3{font-family:var(--serif);font-size:30px;font-weight:900;letter-spacing:2px;line-height:1.35;margin:0}
.slide .s-meta{font-size:12.5px;color:var(--ink-3);margin:8px 0 12px;font-family:inherit}
.slide .s-desc{font-size:13.5px;color:var(--ink-2);line-height:1.9;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;max-width:560px}
.slide .s-btns{display:flex;gap:12px;margin-top:20px}
.slide-num{position:absolute;right:16px;bottom:12px;display:flex;gap:7px}
.slide-num span{width:9px;height:9px;border-radius:50%;background:var(--line-2);cursor:pointer;transition:.25s}
.slide-num span.on{width:26px;border-radius:5px;background:var(--red)}
/* Hero 右栏：免费声明+榜单速览 */
.hero-side{display:flex;flex-direction:column;gap:14px}
.free-card{background:linear-gradient(150deg,var(--red) 0%,var(--red-deep) 100%);border-radius:14px;color:#F6E8D8;
  padding:15px 20px;box-shadow:var(--shadow-up);position:relative;overflow:hidden}
.free-card::after{content:"免";position:absolute;right:-6px;bottom:-14px;font-family:var(--serif);font-size:78px;font-weight:900;opacity:.1}
.free-card .fc-t{font-family:var(--serif);font-size:16.5px;font-weight:900;letter-spacing:2px}
.free-card .fc-d{font-size:12px;opacity:.88;margin-top:4px;line-height:1.7}
.free-card .fc-stats{display:flex;gap:0;margin-top:9px;border-top:1px dashed rgba(246,232,216,.35);padding-top:8px}
.free-card .fc-stats div{flex:1;text-align:center}
.free-card .fc-stats b{display:block;font-size:16px;font-family:var(--serif)}
.free-card .fc-stats span{font-size:11px;opacity:.8}
.side-rank{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:18px 20px;flex:1}
.side-rank .sr-t{font-size:15px;font-weight:900;display:flex;align-items:center;gap:8px;margin-bottom:10px}
.side-rank .sr-t i{color:var(--gold);font-style:normal}
.side-rank ol{counter-reset:n;display:grid;grid-template-columns:1fr 1fr;column-gap:13px}
.side-rank li{counter-increment:n;display:flex;align-items:center;gap:7px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:13px}
.side-rank li:last-child{border-bottom:none}
.side-rank li::before{content:counter(n);width:17px;height:17px;font-size:11px;font-weight:800;border-radius:5px;
  background:var(--line);color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;align-self:center}
.side-rank li:nth-child(-n+3)::before{background:var(--red);color:#fff}
.side-rank li b{font-weight:700;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-rank li em{display:none}
/* ---------- 封面（纯CSS，无图片依赖） ---------- */
.cover{position:relative;border-radius:8px 10px 10px 8px;overflow:hidden;box-shadow:var(--shadow);
  background:linear-gradient(160deg,var(--c1),var(--c2));display:flex;flex-direction:column;justify-content:space-between;
  padding:14px 12px;transition:transform .22s ease,box-shadow .22s ease}
/* ---------- 榜单三栏 ---------- */
.ranks{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.rank-col{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:20px 22px}
.rank-col .rc-h{display:flex;align-items:center;gap:10px;border-bottom:2px solid var(--ink);padding-bottom:10px;margin-bottom:6px}
.rank-col .rc-h h3{font-family:var(--serif);font-size:17px;font-weight:900;letter-spacing:1px}
.rank-col .rc-h .rc-sub{font-size:11px;color:var(--ink-3)}
.rank-col .rc-h .more{margin-left:auto;font-size:12px;color:var(--ink-2)}
.rank-tabs{display:flex;gap:6px;margin:10px 0 4px}
.rank-tabs button{border:none;background:transparent;font-family:inherit;font-size:12.5px;color:var(--ink-2);
  padding:4px 13px;border-radius:999px;cursor:pointer}
.rank-tabs button.on{background:var(--red);color:#fff;font-weight:700}
.rk-list{display:none}
.rk-list.on{display:block}
.rk-list li{display:flex;align-items:center;gap:12px;padding:9px 2px;border-bottom:1px dashed var(--line)}
.rk-list li:last-child{border-bottom:none}
.rk-no{width:22px;height:22px;border-radius:6px;background:var(--line);color:var(--ink-2);font-size:12px;font-weight:800;
  display:flex;align-items:center;justify-content:center;flex-shrink:0}
.rk-list li:nth-child(1) .rk-no{background:var(--red);color:#fff}
.rk-list li:nth-child(2) .rk-no{background:var(--gold);color:#fff}
.rk-list li:nth-child(3) .rk-no{background:var(--ink);color:#fff}
html.dark .rk-list li:nth-child(3) .rk-no{background:var(--ink-2);color:var(--ink)}
.rk-info{flex:1;min-width:0}
.rk-info b{display:block;font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rk-info span{font-size:11.5px;color:var(--ink-3)}
.rk-info .rk-tag{font-size:10px;color:var(--red);border:1px solid var(--red);border-radius:4px;padding:0 5px;margin-left:8px}
/* ---------- 编辑推荐网格 ---------- */
.picks{display:grid;grid-template-columns:repeat(4,1fr);gap:24px 20px}
.pick{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:16px 16px 18px;transition:transform .2s ease}
.pick:hover{transform:translateY(-5px)}
.pick .p-cover{height:210px;margin-bottom:12px}
.pick h3{font-size:15.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pick .p-a{font-size:12px;color:var(--ink-3);margin:2px 0 6px}
.pick .p-d{font-size:12.5px;color:var(--ink-2);line-height:1.8;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:45px}
.pick .p-tags{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.pick .p-tags a{font-size:11px;color:var(--ink-2);background:var(--paper);border-radius:5px;padding:1px 8px}
.pick .p-tags a:hover{color:var(--red)}
/* ---------- 分类行 ---------- */
.cats{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.cat-sec{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:20px 22px}
.cat-sec .cs-h{display:flex;align-items:center;gap:10px;border-bottom:2px solid var(--ink);padding-bottom:10px}
.cat-sec .cs-h h3{font-family:var(--serif);font-size:16.5px;font-weight:900}
.cat-sec .cs-h h3 i{font-style:normal;margin-right:6px}
.cat-sec .cs-h .more{margin-left:auto;font-size:12px;color:var(--ink-2)}
.cat-list li{display:flex;gap:12px;padding:11px 0;border-bottom:1px dashed var(--line)}
.cat-list li:last-child{border-bottom:none}
.cat-list .cl-t{flex:1;min-width:0}
.cat-list .cl-t b{font-size:14px;font-weight:700}
.cat-list .cl-t b .cl-free{font-size:10px;color:var(--gold);border:1px solid var(--gold);border-radius:4px;padding:0 5px;margin-left:7px;vertical-align:2px}
.cat-list .cl-t p{font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.cat-list .cl-m{flex-shrink:0;text-align:right;font-size:11px;color:var(--ink-3);align-self:center}
.cat-list .cl-m b{display:block;font-size:12.5px;color:var(--ink-2)}
/* ---------- 作家入驻 ---------- */
.author-cta{background:linear-gradient(120deg,var(--ink) 0%,#3A342A 100%);border-radius:16px;color:#EFE8DA;
  display:flex;align-items:center;gap:30px;padding:34px 40px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.author-cta::after{content:"书";position:absolute;right:24px;bottom:-24px;font-family:var(--serif);font-size:150px;font-weight:900;opacity:.07}
.author-cta .ac-l{flex:1}
.author-cta h2{font-family:var(--serif);font-size:24px;font-weight:900;letter-spacing:2px}
.author-cta h2 i{font-style:normal;color:var(--gold)}
.author-cta p{font-size:13.5px;opacity:.82;margin-top:8px;max-width:640px}
.author-cta .ac-stats{display:flex;gap:34px;margin-top:16px}
.author-cta .ac-stats b{font-size:22px;font-family:var(--serif);color:var(--gold)}
.author-cta .ac-stats span{display:block;font-size:11.5px;opacity:.7}
.btn-gold{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--gold),#D9B25E);color:#33290E;
  font-weight:900;font-size:15px;border-radius:11px;padding:13px 34px;box-shadow:0 6px 18px rgba(184,134,43,.4);border:none;cursor:pointer;font-family:inherit;flex-shrink:0}
.btn-gold:hover{transform:translateY(-2px);transition:.18s}
/* ---------- 页脚（SEO内链核心区） ---------- */
footer{background:var(--ink);color:#B9B0A0;margin-top:44px}
/* ---------- 响应式 ---------- */
@media (max-width:1020px){
  .hero{grid-template-columns:1fr}
  .hero-side{flex-direction:row}
  .free-card{flex:1}
  .side-rank{flex:1.4}
  .picks{grid-template-columns:repeat(3,1fr)}
  .ranks{grid-template-columns:1fr 1fr}
  .cats{grid-template-columns:1fr}
  .searchbox{display:none}
}
@media (max-width:640px){
  .topbar .tb-r{gap:10px}
  .masthead .wrap{padding:14px 12px;gap:12px}
  .logo .seal{width:42px;height:42px;font-size:20px}
  .logo .t1{font-size:20px;letter-spacing:1.5px}
  .logo .t2{display:none}
  .slides{height:388px}
  /* 移动端：封面居左，书名/标签/作者在封面右侧，简介与按钮横向铺开在下方 */
  .slide{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto auto 1fr auto;column-gap:14px;row-gap:6px;align-items:start;padding:20px 18px 6px;overflow:hidden}
  .slide .bigcover{grid-column:1;grid-row:1 / span 3;width:112px;height:156px}
  .slide .s-info{display:contents}
  .slide .s-tags{grid-column:2;grid-row:1;margin-bottom:0;gap:6px}
  .slide h3{grid-column:2;grid-row:2;font-size:20px;letter-spacing:1px;line-height:1.3;margin:0}
  .slide .s-meta{grid-column:2;grid-row:3;margin:0;font-size:11.5px;line-height:1.6}
  .slide .s-desc{grid-column:1 / -1;grid-row:4;-webkit-line-clamp:3;max-width:100%;font-size:12.5px;line-height:1.8;margin:6px 0 0;align-self:start}
  .slide .s-btns{grid-column:1 / -1;grid-row:5;margin:4px 0 8px;gap:10px}
  .slide .s-btns .btn-read,.slide .s-btns .btn-shelf{padding:10px 18px;font-size:13.5px}
  .slide-num{position:static;display:flex;justify-content:center;padding:4px 0 12px}
  .hero-side{flex-direction:column}
  .picks{grid-template-columns:repeat(2,1fr)}
  .ranks{grid-template-columns:1fr}
  .author-cta{flex-direction:column;align-items:flex-start;padding:26px 22px;gap:18px}
  .author-cta .ac-stats{gap:22px;flex-wrap:wrap}
  .mh-right{display:none}
}
/* 排行榜页 */
.rk-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0 14px}
.rk-tabs button{border:none;background:var(--card);color:var(--ink-2);font-family:inherit;font-size:14px;
  padding:9px 24px;border-radius:10px;cursor:pointer;box-shadow:var(--shadow);font-weight:700}
.rk-tabs button.on{background:var(--red);color:#fff}
.podium{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:16px 0}
.pod{position:relative;background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:22px 22px 18px;
  display:flex;gap:18px;align-items:center;border-top:3px solid var(--gold)}
.pod.p1{border-top-color:var(--red);background:linear-gradient(170deg,var(--red-soft),var(--card) 45%)}
.pod-rank{position:absolute;top:-13px;left:18px;background:var(--gold);color:#fff;font-family:var(--mono);
  font-size:11px;font-weight:800;letter-spacing:1px;border-radius:999px;padding:3px 13px}
.pod.p1 .pod-rank{background:var(--red)}
.pod .cover{width:96px;height:134px;flex-shrink:0}
.pod .cover .cv-t{font-size:14px}
.pod-info h2{font-family:var(--serif);font-size:19px;font-weight:900}
.pod-m{font-size:12px;color:var(--ink-3);margin:5px 0 12px}
.pod .btn-read{padding:8px 20px;font-size:13px}
.rank-table{background:var(--card);border-radius:14px;box-shadow:var(--shadow);overflow-x:auto;padding:6px 10px}
.rank-table table{width:100%;border-collapse:collapse;min-width:760px}
.rank-table th{font-size:12.5px;color:var(--ink-3);font-weight:700;text-align:left;padding:12px 10px;
  border-bottom:2px solid var(--ink);white-space:nowrap}
.rank-table td{font-size:13.5px;padding:11px 10px;border-bottom:1px dashed var(--line);white-space:nowrap}
.rank-table tr:last-child td{border-bottom:none}
.rank-table td:first-child{font-family:var(--mono);color:var(--ink-3);font-weight:700}
.rank-table .rt-b a{font-weight:700}
.rank-table .rt-up{font-size:10px;color:var(--red);font-weight:800;margin-left:6px}
.rank-table .rt-hot{font-family:var(--mono);color:var(--red);font-weight:700}
.rank-table tbody tr:hover{background:var(--paper)}
@media (max-width:1020px){.podium{grid-template-columns:1fr}}
/* 频道/列表页 */
.ch{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
.ch-main{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:6px 24px 18px}
.ch-head{margin-bottom:4px;padding:18px 0 12px;border-bottom:2px solid var(--ink)}
.ch-head h1{font-family:var(--serif);font-size:26px;font-weight:900;letter-spacing:1px;display:inline}
.ch-head .st{font-size:12.5px;color:var(--ink-3);margin-left:14px}
.filters{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:12px 20px;margin:0 0 16px}
.f-row{display:flex;gap:10px;align-items:baseline;padding:6px 0;flex-wrap:wrap}
.bk-row{display:flex;gap:16px;padding:18px 0;border-bottom:1px dashed var(--line)}
.bk-row:last-child{border-bottom:none}
.bk-row .cover{width:86px;height:120px;flex-shrink:0}
.bk-row .cv-t{font-size:13px}
.bk-row h3{font-size:16.5px;font-weight:800}
.bk-row h3 .cl-free{font-size:10px;color:var(--gold);border:1px solid var(--gold);border-radius:4px;padding:0 5px;margin-left:7px;vertical-align:2px;font-weight:700}
.bk-row .bk-a{font-size:12.5px;color:var(--ink-3);margin:3px 0 6px}
.bk-row .bk-a a{color:var(--ink-2)}
.bk-row .bk-d{font-size:12.5px;color:var(--ink-2);line-height:1.8;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bk-row .bk-tags{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.bk-row .bk-tags a{font-size:11px;color:var(--ink-2);background:var(--paper);border-radius:5px;padding:1px 8px}
.bk-row .bk-tags a:hover{color:var(--red)}
.bk-row .bk-meta{flex-shrink:0;text-align:right;font-size:11px;color:var(--ink-3);align-self:center}
.bk-row .bk-meta b{display:block;font-size:12px;color:var(--ink-2);margin-bottom:4px}
.side-card{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:18px 20px;margin-bottom:18px}
.side-card .sc-t{font-size:15px;font-weight:900;display:flex;align-items:center;gap:8px;margin-bottom:10px;
  border-bottom:2px solid var(--ink);padding-bottom:9px}
.side-card .sc-t i{color:var(--gold);font-style:normal}
.side-card ol{counter-reset:n;display:grid;grid-template-columns:1fr 1fr;column-gap:13px}
.side-card ol li{counter-increment:n;display:flex;align-items:center;gap:7px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:13px}
.side-card ol li:nth-child(-n+3){grid-column:1 / -1}
.side-card ol li::before{content:counter(n);width:17px;height:17px;font-size:11px;font-weight:800;border-radius:5px;
  background:var(--line);color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.side-card ol li:nth-child(-n+3)::before{background:var(--red);color:#fff}
.side-card ol li b{font-weight:700;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-card ol li em{font-style:normal;font-size:11px;color:var(--ink-3)}
.tagcloud{display:flex;flex-wrap:wrap;gap:8px}
.tagcloud a{font-size:12.5px;color:var(--ink-2);background:var(--paper);border-radius:6px;padding:3px 12px}
.tagcloud a:hover{color:#fff;background:var(--red)}
.tagcloud a.big{font-size:14px;color:var(--red);font-weight:700}
@media (max-width:1020px){.ch{grid-template-columns:1fr}.bk-row .bk-meta{display:none}}
@media (max-width:640px){.bk-row .cover{width:70px;height:98px}.bk-row .cv-t{font-size:11px}}
/* 全部分类页 */
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:16px}
.cat-card{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:20px 22px;transition:transform .2s ease}
.cat-card:hover{transform:translateY(-4px)}
.cat-card .cc-h{display:flex;align-items:center;gap:10px;border-bottom:2px solid var(--ink);padding-bottom:10px}
.cat-card h2{font-family:var(--serif);font-size:17.5px;font-weight:900}
.cat-card h2 i{font-style:normal;margin-right:4px}
.cat-card .cc-h>span{font-size:11px;color:var(--ink-3)}
.cat-card .cc-more{margin-left:auto;font-size:12px;color:var(--ink-2)}
.cat-card .cc-more:hover{color:var(--red)}
.cat-card .cc-books{margin-top:12px;font-size:12.5px;color:var(--ink-2);line-height:2.1}
.cat-card .cc-books em{font-style:normal;color:var(--ink-3);font-size:11.5px}
.cat-card .cc-books a{margin-right:10px}
.cat-card .cc-books a:hover{color:var(--red)}
@media (max-width:1020px){.cat-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.cat-grid{grid-template-columns:1fr}}
/* 书籍详情页 */
.bd{display:grid;grid-template-columns:280px minmax(0,1fr);gap:26px;margin-top:16px;align-items:start}
.bd-l{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:24px;text-align:center}
.bd-cv{width:190px;height:264px;margin:0 auto 18px}
.bd-btn{width:100%;justify-content:center}
.bd-btn2{width:100%;justify-content:center;margin-top:10px}
.bd-safe{margin-top:14px;font-size:12px;color:var(--teal, #0F6E56)}
.bd-r{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:26px 30px}
.bd-r h1{font-family:var(--serif);font-size:30px;font-weight:900;letter-spacing:2px}
.bd-h1t{font-size:13px;color:var(--ink-3);font-family:var(--sans);font-weight:400;letter-spacing:0;margin-left:10px}
.bd-meta{font-size:13px;color:var(--ink-2);margin:8px 0 14px}
.bd-meta a{color:var(--red)}
.bd-stats{display:flex;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:6px 0 16px}
.bd-stats li{flex:1;text-align:center;padding:12px 6px;border-right:1px solid var(--line)}
.bd-stats li:last-child{border-right:none}
.bd-stats b{display:block;font-family:var(--serif);font-size:20px;font-weight:900;color:var(--red)}
.bd-stats span{font-size:11px;color:var(--ink-3)}
.bd-intro{font-size:13.5px;color:var(--ink-2);line-height:2;background:var(--paper);border-radius:12px;padding:16px 18px}
.bd-intro b{color:var(--ink)}
.bd-intro a{color:var(--ink-2);border-bottom:1px dashed var(--ink-3)}
.bd-intro a:hover{color:var(--red)}
.bd-latest{margin-top:18px}
.bd-lt{display:flex;align-items:baseline;font-size:15px;font-weight:900;border-bottom:2px solid var(--ink);padding-bottom:8px}
.bd-lt .more{margin-left:auto;font-size:12px;color:var(--ink-2);font-weight:400}
.chlist{columns:2;column-gap:30px;margin-top:8px}
.chlist li{display:flex;justify-content:space-between;font-size:13px;padding:6px 2px;border-bottom:1px dashed var(--line);break-inside:avoid}
.chlist li a{color:var(--ink-2)}
.chlist li a:hover{color:var(--red)}
.chlist li.cur a{color:var(--red);font-weight:700}
.chlist li span{font-size:11px;color:var(--ink-3)}
.chlist li span.new{color:var(--red)}
.bd-sec{margin-top:30px}
.sim{display:grid;grid-template-columns:repeat(4,1fr);gap:22px 20px}
.sim li{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:14px;transition:transform .2s ease}
.sim li:hover{transform:translateY(-5px)}
.sim .cover{height:196px;margin-bottom:11px}
.sim h3{font-size:14.5px;font-weight:800}
.sim p{font-size:11.5px;color:var(--ink-3);margin-top:2px}
@media (max-width:1020px){.bd{grid-template-columns:1fr}.sim{grid-template-columns:repeat(2,1fr)}.chlist{columns:1}}
/* 阅读页 */
body{background:var(--paper)}
.rd-wrap{max-width:900px;margin:0 auto;padding:0 16px 40px}
.rd-top{position:sticky;top:0;z-index:50;background:var(--card);border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:20px;height:52px;padding:0 6px;box-shadow:var(--shadow)}
.rd-home{font-family:var(--serif);font-size:18px;font-weight:900;color:var(--red);letter-spacing:2px}
.rd-nav{display:flex;gap:16px;font-size:13.5px;color:var(--ink-2)}
.rd-nav a:hover{color:var(--red)}
.rd-tools{margin-left:auto;display:flex;gap:8px}
.rd-tools button{border:1px solid var(--line-2);background:var(--card);color:var(--ink-2);font-family:inherit;
  font-size:12.5px;border-radius:8px;padding:6px 13px;cursor:pointer;white-space:nowrap}
.rd-tools button:hover{border-color:var(--red);color:var(--red)}
.rd-crumb{font-size:12px;color:var(--ink-3);padding:14px 4px}
.rd-crumb a{color:var(--ink-2)}
.reader{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:46px 58px 38px}
.reader h1{font-family:var(--serif);font-size:26px;font-weight:900;letter-spacing:2px;text-align:center}
.rd-free{text-align:center;font-size:12px;color:var(--gold);margin:10px 0 26px;letter-spacing:1px}
.reader p{font-size:var(--fs,19px);line-height:1.95;text-indent:2em;margin:1.05em 0;color:var(--ink)}
.rd-foot{display:flex;gap:12px;margin-top:34px;border-top:1px dashed var(--line);padding-top:24px}
.rd-navbtn{flex:1;text-align:center;border:1.5px solid var(--line-2);border-radius:10px;padding:11px 0;
  font-size:14px;font-weight:700;color:var(--ink-2)}
.rd-navbtn:hover{border-color:var(--red);color:var(--red)}
.rd-navbtn.next{background:var(--red);border-color:var(--red);color:#fff}
.rd-navbtn.next:hover{background:var(--red-deep);color:#fff}
.rd-tip{margin-top:18px;font-size:11.5px;color:var(--ink-3);text-align:center;text-indent:0}
.rd-drawer{position:fixed;top:0;right:-360px;width:340px;height:100vh;background:var(--card);z-index:70;
  box-shadow:-10px 0 30px rgba(0,0,0,.18);transition:right .28s ease;display:flex;flex-direction:column;padding:18px 20px}
.rd-drawer.open{right:0}
.rd-dt{font-size:15px;font-weight:900;display:flex;align-items:center;gap:8px;border-bottom:2px solid var(--ink);padding-bottom:10px}
.rd-dt span{font-size:11px;color:var(--ink-3);font-weight:400}
.rd-dt button{margin-left:auto;border:none;background:transparent;font-size:20px;cursor:pointer;color:var(--ink-3)}
.rd-dlist{flex:1;overflow-y:auto;margin-top:8px}
.rd-dlist li{font-size:13px;padding:8px 2px;border-bottom:1px dashed var(--line)}
.rd-dlist li a{color:var(--ink-2)}
.rd-dlist li a:hover{color:var(--red)}
.rd-dlist li.cur a{color:var(--red);font-weight:700}
.rd-dall{display:block;text-align:center;font-size:13px;color:var(--red);padding:12px 0 4px}
.rd-setpop{position:fixed;top:60px;right:16px;background:var(--card);border:1px solid var(--line-2);border-radius:12px;
  box-shadow:var(--shadow);padding:16px 18px;z-index:65;display:none;width:250px}
.rd-setpop.open{display:block}
.rd-st{font-size:13.5px;font-weight:900;margin-bottom:10px}
.rd-row{display:flex;align-items:center;gap:10px;padding:7px 0;font-size:12.5px}
.rd-row>span{color:var(--ink-3);width:36px}
.rd-row button{border:1px solid var(--line-2);background:var(--card);color:var(--ink-2);font-family:inherit;
  border-radius:7px;padding:4px 12px;cursor:pointer;font-size:12px}
.rd-row button.on,.rd-row button:hover{border-color:var(--red);color:var(--red)}
.rd-row b{font-family:var(--mono);font-size:12px;color:var(--ink-2)}
.reader.green{background:#CDE6CE}
.reader.green p,.reader.green h1{color:#1F3524}
.reader.night{background:#17150F}
.reader.night p,.reader.night h1{color:#C9C2B2}
.reader.night .rd-navbtn{color:#C9C2B2;border-color:#453E30}
.reader.night .rd-navbtn.next{background:var(--red);color:#fff}
@media (max-width:640px){.reader{padding:30px 20px 28px}.rd-top{gap:10px}.rd-nav{display:none}}

/* ============================================================
   墨海书城 · 站群适配补充样式
   ------------------------------------------------------------
   原模板（单文件静态）里有些组件是这套模板体系没有的，
   或者类名与站群渲染结构不完全对应。
   这里统一补齐，配色沿用原模板的 CSS 变量，视觉保持一致。
   ============================================================ */

/* ---------- 书卡列表（首页/分类/搜索共用）---------- */
.bk-list{display:flex;flex-direction:column;gap:2px}
.bk-list .bk-row{display:flex;gap:18px;padding:18px 16px;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r);transition:box-shadow .18s,border-color .18s;position:relative}
.bk-list .bk-row:hover{box-shadow:var(--shadow);border-color:var(--line-2)}
.bk-list .bk-row .cover{width:92px;height:124px;flex-shrink:0;border-radius:8px}
.bk-b{flex:1;min-width:0}
.bk-b h3{font-family:var(--serif);font-size:18px;font-weight:800;margin-bottom:6px;line-height:1.35}
.bk-b h3 a{display:inline-flex;align-items:center;gap:8px}
.cl-free{display:inline-block;font-family:var(--sans);font-size:10.5px;font-weight:700;
  padding:1px 6px;border-radius:4px;background:var(--red-soft);color:var(--red);letter-spacing:.5px}
.bk-a{font-size:13px;color:var(--ink-2);margin-bottom:6px}
.bk-a a{color:var(--red)}
.bk-d{font-size:13.5px;color:var(--ink-2);line-height:1.7;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bk-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.bk-tags a{font-size:11.5px;padding:2px 9px;border-radius:20px;background:var(--gold-soft);
  color:var(--gold);border:1px solid transparent;transition:all .15s}
.bk-tags a:hover{background:var(--gold);color:#fff}
.bk-meta{position:absolute;right:16px;bottom:14px;font-size:11.5px;color:var(--ink-3)}

@media(max-width:720px){
  .bk-list .bk-row{flex-wrap:wrap;gap:12px;padding:14px}
  .bk-list .bk-row .cover{width:72px;height:98px}
  .bk-b h3{font-size:16px}
  .bk-meta{position:static;width:100%;text-align:right;margin-top:-6px}
}

/* ---------- 榜单（首页 + 排行榜页共用）---------- */
.rk-list{display:none}
.rk-list.on{display:block}
.rk-item{display:flex;align-items:center;gap:14px;padding:11px 14px;border-bottom:1px dashed var(--line)}
.rk-item:last-child{border-bottom:none}
.rk-item:hover{background:var(--red-soft)}
.rk-no{width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-size:13px;font-weight:800;color:var(--ink-3);
  background:var(--paper);border-radius:5px}
.rk-item .rk-top{background:linear-gradient(145deg,var(--red),var(--red-deep));color:#F6E8D8}
.rk-name{flex:1;min-width:0;font-size:14.5px;font-weight:600;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rk-name:hover{color:var(--red)}
.rk-a{font-size:12.5px;color:var(--ink-3);max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rk-n{font-size:12.5px;color:var(--gold);font-weight:700;font-variant-numeric:tabular-nums}
@media(max-width:640px){ .rk-a{display:none} }

/* 三甲领奖台 */
.pod-rank{display:flex;align-items:flex-end;justify-content:center;gap:16px;
  padding:26px 16px 8px;margin-bottom:18px;background:linear-gradient(180deg,var(--red-soft),transparent);
  border-radius:var(--r)}
.pod{text-align:center;width:150px}
.pod .cover{width:100px;height:136px;margin:0 auto 10px;border-radius:8px}
.pod-1{order:2;transform:translateY(-14px)}
.pod-2{order:1}
.pod-3{order:3}
.pod-no{font-family:var(--serif);font-size:22px;font-weight:900;color:var(--red);line-height:1}
.pod-1 .pod-no{color:var(--gold)}
.pod-name{display:block;font-size:14px;font-weight:700;margin-top:6px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pod-info{font-size:11.5px;color:var(--ink-3);margin-top:2px}
@media(max-width:720px){
  .pod-rank{gap:8px;padding:18px 8px 4px}
  .pod{width:auto;flex:1}
  .pod .cover{width:78px;height:106px}
  .pod-1{transform:translateY(-8px)}
}

/* 榜单表格 */
.rank-table{display:none;overflow-x:auto}
.rank-table.on{display:block}
.rank-table table{width:100%;border-collapse:collapse;font-size:13.5px}
.rank-table th{text-align:left;padding:10px 12px;background:var(--paper);
  color:var(--ink-2);font-weight:600;font-size:12.5px;border-bottom:1px solid var(--line)}
.rank-table td{padding:11px 12px;border-bottom:1px solid var(--line)}
.rank-table tr:hover td{background:var(--red-soft)}
.rank-table td a{font-weight:600}
.rank-table td a:hover{color:var(--red)}
.rt-no{font-family:var(--serif);font-weight:800;color:var(--ink-3);width:52px}
.rt-top{color:var(--red)}
.rank-table .rt-no.rt-top{color:var(--gold)}

/* ---------- 完本专区 ---------- */
.fin-banner{background:linear-gradient(135deg,var(--red-deep),var(--red));
  color:#F6E8D8;border-radius:var(--r);padding:30px 28px;margin-bottom:20px}
.fin-banner h1{font-family:var(--serif);font-size:26px;font-weight:900;letter-spacing:1px;margin-bottom:6px}
.fin-banner p{font-size:13.5px;opacity:.86}

.fin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;margin-bottom:22px}
.fin-card{display:flex;gap:14px;padding:14px;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r);transition:box-shadow .18s}
.fin-card:hover{box-shadow:var(--shadow)}
.fin-card .cover{width:76px;height:102px;flex-shrink:0;border-radius:7px}
.fin-info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}
.fin-info h3{font-family:var(--serif);font-size:14.5px;font-weight:800;line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fin-info p{font-size:12px;color:var(--ink-3);margin-top:4px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fin-info .fin-n{color:var(--gold);font-weight:600}

/* ---------- 最近更新列表 ---------- */
.upd-list{display:flex;flex-direction:column;gap:2px;margin-bottom:22px}
.upd-item{display:flex;align-items:center;gap:16px;padding:14px 16px;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r)}
.upd-item:hover{box-shadow:var(--shadow)}
.upd-cover .cover{width:52px;height:70px;border-radius:6px}
.upd-main{flex:1;min-width:0}
.upd-main h3{font-size:15px;font-weight:700;margin-bottom:4px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upd-meta{font-size:12.5px;color:var(--ink-3)}
.upd-meta a{color:var(--red)}
.upd-ch{font-size:12.5px;color:var(--ink-2);margin-top:3px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upd-ch a{color:var(--ink-2)}
.upd-ch a:hover{color:var(--red)}
.upd-side{font-size:11.5px;color:var(--ink-3);flex-shrink:0;font-variant-numeric:tabular-nums}
@media(max-width:720px){
  .upd-item{gap:10px;padding:11px}
  .upd-side{display:none}
}

/* ---------- 空态 ---------- */
.no-result{list-style:none;padding:34px 20px;text-align:center;background:var(--card);
  border:1px dashed var(--line-2);border-radius:var(--r);margin-bottom:20px}
.nr-hot{font-size:13.5px;color:var(--ink-2);line-height:2}
.nr-hot p{margin-bottom:10px}
.nr-hot a{display:inline-block;margin:0 5px 6px;padding:4px 12px;border-radius:20px;
  background:var(--red-soft);color:var(--red);font-size:12.5px}
.nr-hot a:hover{background:var(--red);color:#fff}

/* ---------- 书架 ---------- */
.sf-list{display:flex;flex-direction:column;gap:2px}
.sf-item{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r);font-size:14.5px}
.sf-no{width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-size:12.5px;font-weight:800;color:var(--ink-3);
  background:var(--paper);border-radius:5px}
.sf-name{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sf-del{width:26px;height:26px;border:none;background:transparent;color:var(--ink-3);
  font-size:17px;cursor:pointer;border-radius:50%;transition:all .15s;font-family:inherit}
.sf-del:hover{background:var(--red-soft);color:var(--red)}

/* ---------- 分类页描述 ---------- */
.ch-desc{font-size:13.5px;color:var(--ink-2);margin-top:8px;line-height:1.75;max-width:760px}

/* ---------- 阅读页控件 ---------- */
.rd-btn{padding:6px 13px;border:1px solid var(--line-2);background:var(--card);
  border-radius:6px;font-size:12.5px;cursor:pointer;font-family:inherit;
  color:var(--ink-2);transition:all .15s}
.rd-btn:hover{border-color:var(--red);color:var(--red)}
.rd-content{font-size:17px;line-height:2;color:var(--ink);word-break:break-word}
.rd-content p{margin-bottom:1.1em;text-indent:2em}
.rd-content br{line-height:2}
.rd-content img{max-width:100%;height:auto;margin:12px auto;border-radius:6px}

/* 护眼模式 */
body.eye{background:#DCE8D5}
body.eye .reader,body.eye .rd-wrap{background:#E8F0E0}
body.eye .rd-content{color:#3A4A32}

/* ---------- 详情页完整目录 ---------- */
.chlist-full{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:2px 16px;max-height:none}
.chlist-full li{padding:5px 0;border-bottom:1px dashed var(--line);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chlist-full a{font-size:13.5px;color:var(--ink-2)}
.chlist-full a:hover{color:var(--red)}

/* ---------- 全部分类网格 ---------- */
.cat-grid li{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:18px 20px;transition:box-shadow .18s}
.cat-grid li:hover{box-shadow:var(--shadow)}
.cc-h{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px;
  padding-bottom:10px;border-bottom:1px solid var(--line)}
.cc-h h2{font-family:var(--serif);font-size:17px;font-weight:800}
.cc-h span{font-size:12px;color:var(--ink-3)}
.cc-books{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px}
.cc-books a{color:var(--ink-2)}
.cc-books a:hover{color:var(--red)}
.cc-empty{font-size:12.5px;color:var(--ink-3)}

/* ---------- 作家入驻补充 ---------- */
.au-card{padding:22px 24px;background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
.au-form label{display:block;margin-bottom:16px;font-size:13px;color:var(--ink-2)}
.au-form input,.au-form textarea{display:block;width:100%;margin-top:6px;padding:11px 14px;
  border:1px solid var(--line-2);border-radius:var(--r);font-family:inherit;font-size:14px;
  background:var(--card);color:var(--ink)}
.au-form input:focus,.au-form textarea:focus{outline:none;border-color:var(--red)}
.au-form button{margin-top:6px}
.au-faq{margin-top:24px;padding:22px 24px;background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
.au-faq dt{font-weight:700;font-size:14px;margin-top:14px;color:var(--ink)}
.au-faq dt:first-of-type{margin-top:0}
.au-faq dd{font-size:13.5px;color:var(--ink-2);margin-top:5px;line-height:1.75}

/* ---------- 信息页列表 ---------- */
.if-list{list-style:none;padding:0}
.if-list li{padding:9px 0;border-bottom:1px dashed var(--line);font-size:13.8px;color:var(--ink-2)}
.if-list li:last-child{border-bottom:none}
.if-list li::before{content:"◆";color:var(--gold);margin-right:9px;font-size:10px}

/* ---------- 真实封面（模板统一）---------- */
.cover{position:relative;overflow:hidden}
.cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2}

/* zhisu-patch */
.cat-sec-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:15px;font-weight:800}.ac-in{max-width:1100px;margin:0 auto;padding:0 18px}

.rd-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 0}.rd-sub{font-size:13px;color:var(--ink-3)}.rd-pv,.rd-nx,.rd-idx{display:inline-flex;align-items:center;padding:8px 18px;border-radius:8px;border:1px solid var(--line);font-size:13.5px;color:var(--ink-2);background:var(--card)}.rd-pv:hover,.rd-nx:hover,.rd-idx:hover{border-color:var(--red);color:var(--red)}.rd-dis{opacity:.4;pointer-events:none}.rd-x{font-size:12.5px;color:var(--ink-3)}.fr-links a{color:inherit;margin:0 7px;display:inline-block}

/* cover-fix-v1 封面基础尺寸 */
.cover{position:relative;overflow:hidden;border-radius:10px;flex-shrink:0;background:linear-gradient(160deg,var(--c1,#8E2F25),var(--c2,#51140E));box-shadow:0 6px 16px rgba(38,34,28,.18);transition:transform .25s ease,box-shadow .25s ease}
.cover{width:78px;height:108px}
.cover.bd-cv{width:190px;height:264px}
.cover.bigcover{width:196px;height:272px}
.cover img{border-radius:inherit}
.cover .cv-t{position:absolute;left:12px;bottom:14px;right:8px;z-index:1;font-size:13px;font-weight:800;color:#fff;line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:640px){.cover{width:66px;height:92px}}

/* grid4-fix-v1 四列布局 + 最近更新 */
/* 热门小说榜：四列 */
.rk-list.on{display:grid;grid-template-columns:repeat(4,1fr);gap:0 26px;align-items:start}
.rk-list li{padding:10px 0;border-bottom:1px dashed var(--line);min-width:0}
.rk-list .rk-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rk-list .rk-a{flex:0 0 auto;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--ink-3)}
.rk-list .rk-n{flex:0 0 auto;font-size:11.5px;color:var(--gold);white-space:nowrap}

/* 新书上架：四列竖向卡片 */
.bk-list{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.bk-row{flex-direction:column;gap:10px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.bk-row .cover{width:100%;height:auto;aspect-ratio:3/4}
.bk-row h3{font-size:14.5px;line-height:1.35}
.bk-row .bk-a{font-size:11.5px;margin:4px 0 5px;line-height:1.6}
.bk-row .bk-d{font-size:12px;-webkit-line-clamp:2;line-height:1.7}
.bk-row .bk-tags{margin-top:6px;gap:5px}
.bk-row .bk-tags a{font-size:10.5px;padding:1px 7px}

/* 最近更新：四列 */
.upd-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.upd-c{padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:12px;min-width:0}
.upd-bk{display:block;font-size:14px;font-weight:800;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upd-bk:hover{color:var(--red)}
.upd-ch{display:block;margin-top:5px;font-size:12.5px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upd-ch:hover{color:var(--red)}
.upd-ex{margin-top:7px;font-size:12px;line-height:1.75;color:var(--ink-3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.upd-m{display:flex;justify-content:space-between;gap:8px;margin-top:9px;font-size:11.5px;color:var(--ink-3)}
.upd-m span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media(max-width:1080px){
  .rk-list.on{grid-template-columns:repeat(2,1fr)}
  .bk-list{grid-template-columns:repeat(3,1fr)}
  .upd-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:820px){
  .bk-list{grid-template-columns:repeat(2,1fr)}
  .upd-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:560px){
  .rk-list.on{grid-template-columns:1fr}
  .bk-list{grid-template-columns:1fr}
  .upd-grid{grid-template-columns:1fr}
}
.chlist-latest li{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:7px 0}
.chlist-latest .cl-t{flex:0 0 auto;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13.5px}
.chlist-latest .cl-ex{flex:1;min-width:0;font-size:12px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sim-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.sim-c{min-width:0}
.sim-cv{display:block;aspect-ratio:3/4;border-radius:8px;overflow:hidden;background:linear-gradient(160deg,#8E2F25,#51140E);position:relative}
.sim-cv img{width:100%;height:100%;object-fit:cover;display:block}
.sim-cv .cv-n{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:8px;font-size:12px;font-weight:700;color:#fff;line-height:1.35}
.sim-n{display:block;margin-top:7px;font-size:12.5px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sim-n:hover{color:var(--red)}
.sim-a{display:block;margin-top:2px;font-size:11.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1080px){.sim-grid{grid-template-columns:repeat(5,1fr)}}
@media(max-width:860px){.sim-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:620px){.sim-grid{grid-template-columns:repeat(3,1fr);gap:12px}}
/* zl-latest 最新章节列表（统一给 6 套模板） */
.zl-chlist{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;margin-top:10px}
.zl-chlist li{display:flex;align-items:baseline;gap:9px;padding:8px 0;border-bottom:1px dashed rgba(0,0,0,.10);min-width:0}
.zl-chlist .zl-t{flex:0 0 auto;max-width:56%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.zl-chlist .zl-ex{flex:1;min-width:0;font-size:12px;opacity:.62;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zl-latest{margin:30px 0 22px}
@media(max-width:760px){.zl-chlist{grid-template-columns:1fr}}

/* detail-cover-fix 详情页封面锁定 3:4，避免图片原始比例把容器撑大 */
.d-cover .cov, .bd-cv, .bd-cover .cov, .d-cover .cov-xl{
  position:relative;aspect-ratio:3/4;overflow:hidden;border-radius:8px;background:var(--card-2,#eee)}
.d-cover .cov img, .bd-cv img, .bd-cover .cov img, .d-cover .cov-xl img,
.cov-img, .cov>img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}

/* catalog-2col 作品目录两列 */
.chap-list{grid-template-columns:1fr 1fr !important}
.chlist-full{grid-template-columns:1fr 1fr !important}

/* fcols-fix 页脚三列 */
.f-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;align-items:start}
.f-cols .f-sec{margin-bottom:0}
.f-friend{margin-top:22px}
@media(max-width:820px){.f-cols{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.f-cols{grid-template-columns:1fr}}

/* zl-pager 章节翻页 */
.zl-pager{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;
  padding:20px 0;margin-top:18px;border-top:1px solid rgba(0,0,0,.07)}
.zl-pg{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:36px;
  padding:0 13px;border:1px solid rgba(0,0,0,.12);border-radius:8px;font-size:13.5px;
  color:inherit;text-decoration:none;transition:.18s}
.zl-pg:hover{border-color:currentColor;opacity:.82}
.zl-pg.on{background:#0f766e !important;color:#ffffff !important;border-color:transparent !important;font-weight:700}
.zl-pg-info{font-size:12.5px;opacity:.55;margin-left:6px}
@media(max-width:560px){.zl-pg{min-width:34px;height:33px;padding:0 10px;font-size:12.5px}}

.appdl{max-width:720px;margin:0 auto;padding:26px 24px;border-radius:16px;
  background:rgba(0,0,0,.035);border:1px solid rgba(0,0,0,.09)}
.appdl-hd b{display:block;font-size:20px;font-weight:800;margin-bottom:6px}
.appdl-hd span{display:block;font-size:13px;opacity:.66;line-height:1.7}
.appdl-btns{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0 16px}
.appdl-btn{display:inline-flex;align-items:center;justify-content:center;min-width:172px;
  padding:13px 26px;border-radius:999px;font-size:14.5px;font-weight:700;
  border:1px solid rgba(0,0,0,.16);color:inherit;text-decoration:none;transition:.2s}
.appdl-btn.is-main{background:linear-gradient(135deg,#f0b429,#d98c11);border-color:transparent;color:#2a1a05}
.appdl-btn:hover{transform:translateY(-2px);opacity:.94}
.appdl-steps{margin:0 0 14px;padding-left:20px;font-size:13.5px;line-height:2;opacity:.82}
.appdl-note{font-size:12.5px;opacity:.56;line-height:1.75;margin:0}
@media(max-width:560px){
  .appdl{padding:20px 16px}
  .appdl-btn{flex:1;min-width:0;padding:12px 16px;font-size:13.5px}
}

/* mohai inline-style extract */
.mohai-s1{margin-top:20px}
.mohai-s2{margin:18px 0 26px}
.mohai-s3{line-height:2.1;font-size:14px}
.mohai-s4{margin-top:14px}
.mohai-s7{flex:1;padding:10px 14px;border:2px solid var(--red);border-radius:var(--r) 0 0 var(--r);font-family:inherit}
.mohai-s8{padding:10px 22px;background:var(--red);color:#fff;border:none;border-radius:0 var(--r) var(--r) 0;font-family:inherit;cursor:pointer}
.mohai-s9{--c1:#8E2F25;--c2:#51140E}
.mohai-s10{width:100%;text-align:center;margin-top:14px}
.mohai-s11{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.mohai-s12{padding:18px 20px}
.mohai-s13{display:flex;gap:14px;margin-bottom:12px}
.mohai-s14{flex:1;min-width:0}
.mohai-s15{font-family:var(--serif);font-size:15px;font-weight:800;line-height:1.35}
.mohai-s16{font-size:12.5px;color:var(--ink-2);margin-top:5px}
.mohai-s17{font-size:12px;color:var(--ink-3);margin-top:3px}
.mohai-s18{max-width:460px;margin:40px auto}
.mohai-s19{padding:32px}
.mohai-s20{margin-bottom:22px}
.mohai-s21{background:#FBEFEA;border-left:3px solid var(--red);padding:10px 14px;border-radius:6px;margin-bottom:18px;font-size:13.5px;color:var(--red-deep)}
.mohai-s22{display:block;margin-bottom:16px}
.mohai-s23{display:block;font-size:13px;color:var(--ink-2);margin-bottom:6px}
.mohai-s24{width:100%;padding:11px 14px;border:1px solid var(--line-2);border-radius:var(--r);font-family:inherit;font-size:14px}
.mohai-s25{display:block;margin-bottom:8px}
.mohai-s26{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);margin:14px 0 22px}
.mohai-s27{width:100%;text-align:center}
.mohai-s28{text-align:center;margin-top:20px;font-size:13px;color:var(--ink-2)}
.mohai-s29{color:var(--red)}
.mohai-s30{text-align:center;margin-top:8px;font-size:12px;color:var(--ink-3)}
.mohai-s31{display:block;margin-bottom:22px}

/* mohai inline-style pass3 */
.mohai-u1{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2}

/* 通用翻页 pager（6 套模板共用） */
.zlp-l1{height:32px;padding:0 14px;border:1px solid #0f766e;border-radius:6px; background:#0f766e;color:#fff;font-size:13px;cursor:pointer}
.zlp-l2{width:62px;height:32px;padding:0 8px;border:1px solid #e3ebe8;border-radius:6px; font-size:13px;text-align:center;background:#fff}
.zlp-l3{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:6px;font-size:12.5px;color:#8ea3a0}
.zlp-l4{margin-left:12px;font-size:12.5px;color:#8ea3a0}
.zlp-l9{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px;margin:26px 0 8px}

/* rec-read-marquee 推荐阅读单行 + 跑马灯 */
.rec-read{display:flex;flex-wrap:nowrap;align-items:center;overflow:hidden}
.rec-read-track{display:flex;flex-wrap:nowrap;align-items:center;white-space:nowrap;
  min-width:0;animation:zl-marquee 46s linear infinite;will-change:transform}
.rec-read:hover .rec-read-track{animation-play-state:paused}
.rec-read-track a{white-space:nowrap;flex-shrink:0}
@keyframes zl-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.rec-read-track{animation:none}}

/* zl-one 最新章节只显示一条 */
.zl-latest{margin-bottom:22px}
.zl-hd{display:flex;align-items:center;gap:10px;padding-bottom:10px;
  border-bottom:2px solid currentColor;margin-bottom:12px}
.zl-hd b{font-size:15px;font-weight:800}
.zl-hd span{font-size:12px;opacity:.6;margin-left:auto}
.zl-one{display:flex;align-items:baseline;gap:12px;padding:11px 14px;
  border-radius:10px;background:rgba(0,0,0,.035);text-decoration:none;
  color:inherit;transition:.18s;min-width:0}
.zl-one:hover{background:rgba(0,0,0,.07)}
.zl-one-t{flex:0 0 auto;max-width:46%;font-weight:700;font-size:14px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zl-one-ex{flex:1;min-width:0;font-size:12.5px;opacity:.62;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:640px){
  .zl-one{flex-direction:column;gap:4px;align-items:flex-start}
  .zl-one-t,.zl-one-ex{max-width:100%}
}

/* zl-rec-addr 章节页尾部的无弹窗推荐地址 */
.zl-rec-addr{margin:22px 0 6px;padding:11px 14px;border-radius:8px;
  background:rgba(0,0,0,.035);font-size:12.5px;line-height:1.7;
  color:#6b7280;word-break:break-all;text-align:center}

/* upd-cat 最近更新里的分类徽标 */
.upd-cat{display:inline-block;flex:0 0 auto;margin-right:6px;padding:1px 6px;text-decoration:none;
  border-radius:4px;font-size:11px;font-weight:600;line-height:1.6;
  color:var(--pri,#2563eb);background:rgba(37,99,235,.09);
  vertical-align:middle;white-space:nowrap}
a:hover .upd-cat{background:rgba(37,99,235,.16)}
@media(max-width:560px){.upd-cat{font-size:10px;padding:0 5px}}

/* shelf-btn-contrast 加入书架按钮：不依赖 --ink 变量，保证可读 */
.d-actions .btn-ghost,
.actions .btn-ghost,
.btn.ghost,
.btn-shelf{
  background:#ffffff !important;
  color:#0f766e !important;
  border:1px solid #0f766e !important;
  font-weight:700;
  text-decoration:none;
}
.d-actions .btn-ghost:hover,
.actions .btn-ghost:hover,
.btn.ghost:hover,
.btn-shelf:hover{
  background:#0f766e !important;
  color:#ffffff !important;
}
/* dingdian 的纯文字链接式加入书架 */
.binfo-red{
  background:#c0392b !important;
  color:#ffffff !important;
  padding:5px 14px;border-radius:6px;
}
.binfo-red:hover{background:#e74c3c !important;color:#fff !important}

/* fin-text-ellipsis 完本排行：书名和章节名超长时省略，不撑破卡片 */
.fin-card{min-width:0;max-width:100%;overflow:hidden}
.fin-card .fin-i{min-width:0;overflow:hidden}
.fin-card .fin-i h3{
  display:block;max-width:100%;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.fin-card .fin-ch{
  display:block;max-width:100%;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

/* ==== tpl-palette 8 色静态调色板（替代无法编译的 Blade 变量） ==== */
.tpl-p0{--cbg:#3a4a5c;--cink:#efe7d2;--abg:#3a4a5c;--c1:#6E5BFF;--c2:#10152A;--h1:#3a4a5c;--h2:#10152A;--cg:#3a4a5c;--p1a:#3a4a5c;--p1b:#232c38}
.tpl-p1{--cbg:#4a3a2f;--cink:#eee2c8;--abg:#4a3a2f;--c1:#33E0C4;--c2:#10152A;--h1:#4a3a2f;--h2:#10152A;--cg:#4a3a2f;--p1a:#4a3a2f;--p1b:#2a1f18}
.tpl-p2{--cbg:#3a2f4a;--cink:#e6ddf0;--abg:#3a2f4a;--c1:#FF7090;--c2:#10152A;--h1:#3a2f4a;--h2:#10152A;--cg:#3a2f4a;--p1a:#3a2f4a;--p1b:#221a2e}
.tpl-p3{--cbg:#31424e;--cink:#e3ecf0;--abg:#31424e;--c1:#FFC44D;--c2:#10152A;--h1:#31424e;--h2:#10152A;--cg:#31424e;--p1a:#31424e;--p1b:#1c2830}
.tpl-p4{--cbg:#5c2e35;--cink:#f2e2d8;--abg:#5c2e35;--c1:#E8A878;--c2:#10152A;--h1:#5c2e35;--h2:#10152A;--cg:#5c2e35;--p1a:#5c2e35;--p1b:#3a1b20}
.tpl-p5{--cbg:#57624f;--cink:#f0ead6;--abg:#57624f;--c1:#8FD9A8;--c2:#10152A;--h1:#57624f;--h2:#10152A;--cg:#57624f;--p1a:#57624f;--p1b:#333b2d}
.tpl-p6{--cbg:#443650;--cink:#e8dff0;--abg:#443650;--c1:#B07CFF;--c2:#10152A;--h1:#443650;--h2:#10152A;--cg:#443650;--p1a:#443650;--p1b:#2a2033}
.tpl-p7{--cbg:#2f3a4a;--cink:#efe7d2;--abg:#2f3a4a;--c1:#5BA8FF;--c2:#10152A;--h1:#2f3a4a;--h2:#10152A;--cg:#2f3a4a;--p1a:#2f3a4a;--p1b:#1b232e}
/* upd-oneline 最近更新统一单行：分类 书名·章节 摘要 作者 时间 */
.upd-grid .upd-c{display:flex !important;align-items:center !important;gap:10px !important;
  padding:10px 16px !important;border-bottom:1px solid var(--line) !important;min-width:0 !important}
.upd-grid .upd-c:last-child{border-bottom:0 !important}
.upd-grid .upd-c:hover{background:rgba(31,111,224,.03) !important}
.upd-grid .upd-c .upd-cat{flex:0 0 auto !important;display:inline-block !important;padding:1px 7px !important;
  border-radius:5px !important;font-size:11px !important;line-height:1.6 !important;
  color:#2563eb !important;background:rgba(37,99,235,.12) !important;white-space:nowrap !important;
  max-width:76px !important;overflow:hidden !important;text-overflow:ellipsis !important}

.upd-grid .upd-c .upd-bk{flex:0 1 auto !important;font-family:var(--serif) !important;font-weight:700 !important;font-size:14px !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;max-width:200px !important}
.upd-grid .upd-c .upd-ch{flex:0 1 auto !important;font-size:13px !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;max-width:220px !important}
.upd-grid .upd-c .upd-ch::before{content:"·";margin-right:6px;color:#9aa}
.upd-grid .upd-c .upd-ex{flex:1 1 auto !important;min-width:0 !important;margin:0 !important;font-size:12px !important;color:#9aa !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important}
.upd-grid .upd-c .upd-m{flex:0 0 auto !important;display:flex !important;flex-direction:row !important;align-items:center !important;gap:8px !important;margin:0 !important;white-space:nowrap !important}
.upd-grid .upd-c .upd-m span{display:inline !important;font-size:12px !important;color:#9aa !important}


/* upd-oneline-v2 最近更新严格单行：分类 书名 · 章节 摘要 作者 时间
   上一版只把 .upd-c 设成 flex，但父容器 .upd-grid 仍是
   grid-template-columns:repeat(4,1fr) —— 每张卡只有 1/4 宽，
   内部再 flex 也只能把书名挤成一个字。这里把容器改成竖向堆叠。 */
.upd-grid{
  display:flex !important;
  flex-direction:column !important;
  grid-template-columns:none !important;
  gap:0 !important;
  background:var(--card,#fff);
  border:1px solid var(--line,#e8e8e8);
  border-radius:12px;
  overflow:hidden;
}
.upd-grid .upd-c{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  gap:9px !important;
  width:100% !important;
  padding:10px 16px !important;
  border:0 !important;
  border-bottom:1px solid var(--line,#eef2f0) !important;
  border-radius:0 !important;
  background:transparent !important;
  min-width:0 !important;
  overflow:hidden;
}
.upd-grid .upd-c:last-child{border-bottom:0 !important}
.upd-grid .upd-c .upd-cat{flex:0 0 auto !important;max-width:70px !important}
.upd-grid .upd-c .upd-bk{flex:0 0 auto !important;min-width:0 !important;max-width:210px !important;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upd-grid .upd-c .upd-ch{flex:0 1 auto !important;min-width:0 !important;max-width:200px !important;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upd-grid .upd-c .upd-ex{flex:1 1 auto !important;min-width:0 !important;max-width:none !important;
  white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important}
.upd-grid .upd-c .upd-m{flex:0 0 auto !important;white-space:nowrap !important;
  display:flex !important;flex-direction:row !important;gap:8px !important}
@media(max-width:980px){
  .upd-grid .upd-c .upd-ex{display:none !important}
}
@media(max-width:640px){
  .upd-grid .upd-c .upd-m{display:none !important}
}
