/* =============================================================
   Qingshuang「清爽」— 近白底 / 墨色字 / 红橙强调 / 大圆角卡片
   设计语言参考 transub.cc：--bg #fbfbfc、--ink #14161c、
   强调红 #e1251b、琥珀 #f0a125、深藏青 #0f1116→#161923
   ============================================================= */
:root{
  /* 主色 */
  --main:#e1251b;            /* 强调红 */
  --main-d:#c21d15;          /* 按下/深色 */
  --main-soft:rgba(225,37,27,.07);
  --main-line:rgba(225,37,27,.22);
  --amber:#f0a125;           /* 琥珀 */
  --amber-2:#ff8a3d;
  --grad-red:linear-gradient(90deg,#e1251b,#ff7a45);
  --grad-amber:linear-gradient(90deg,#f0a125,#ff8a3d);
  /* 中性色 */
  --text:#14161c;
  --text-2:rgba(20,22,28,.56);
  --text-3:rgba(20,22,28,.38);
  --line:rgba(20,22,28,.09);
  --line-2:rgba(20,22,28,.14);
  --bg:#fbfbfc;
  --bg-soft:#f3f4f6;
  --card:#ffffff;
  /* 深色块 */
  --dark:#0f1116;
  --dark-2:#161923;
  --dark-line:rgba(255,255,255,.10);
  --dark-text:rgba(255,255,255,.62);
  /* 形态 */
  --r:16px;
  --r-sm:12px;
  --r-xs:9px;
  --shadow:0 1px 2px rgba(15,17,22,.04),0 8px 24px rgba(15,17,22,.05);
  --shadow-2:0 10px 30px rgba(15,17,22,.09);
  --shadow-red:0 8px 20px rgba(225,37,27,.24);
  --ease:cubic-bezier(.22,1,.36,1);
  --font:"Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%}
body{
  font:15px/1.65 var(--font);
  color:var(--text);background:var(--bg);
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;transition:color .16s var(--ease)}
img{display:block;border:0;max-width:100%}
ul,ol{list-style:none}
button{font:inherit;cursor:pointer;border:0;background:none}
em,i{font-style:normal}
::selection{background:rgba(225,37,27,.16)}
.s_gray,.gray{color:var(--text-2)}
.tc{text-align:center}
.hl{color:var(--main);font-weight:700}
.wrap{width:100%;max-width:1160px;margin:0 auto;padding:0 20px}
.page{padding-top:20px;padding-bottom:48px}

/* ---------------- header：玻璃感细线导航 ---------------- */
.site-head{
  position:sticky;top:0;z-index:50;
  background:rgba(251,251,252,.82);
  backdrop-filter:saturate(180%) blur(16px);
  -webkit-backdrop-filter:saturate(180%) blur(16px);
  border-bottom:1px solid var(--line);
}
.head-inner{display:flex;align-items:center;gap:18px;height:68px}
.brand{display:flex;align-items:center;gap:9px;font-size:19px;font-weight:900;letter-spacing:-.2px;color:var(--text);white-space:nowrap}
.brand-mark{
  width:30px;height:30px;flex:none;border-radius:9px;
  background:var(--grad-red);
  display:grid;place-items:center;color:#fff;font-size:14px;
  box-shadow:0 4px 12px rgba(225,37,27,.28);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
}
.brand:hover .brand-mark{transform:translateY(-1px) rotate(-4deg);box-shadow:0 8px 18px rgba(225,37,27,.34)}
.brand:hover{color:var(--main)}
.search-box{
  position:relative;flex:1;max-width:440px;display:flex;align-items:center;
  background:#fff;border:1px solid var(--line-2);border-radius:999px;
  padding:0 5px 0 16px;height:40px;transition:.2s var(--ease);
}
.search-box:hover{border-color:rgba(20,22,28,.22)}
.search-box:focus-within{border-color:var(--main);box-shadow:0 0 0 4px var(--main-soft)}
.search-box .search_input{flex:1;border:0;background:none;outline:none;font-size:14px;color:var(--text);min-width:0}
.search-box .search_input::placeholder{color:var(--text-3)}
.search-box button{width:32px;height:32px;border-radius:50%;background:var(--grad-red);color:#fff;display:grid;place-items:center;font-size:12.5px;transition:.18s var(--ease)}
.search-box button:hover{filter:brightness(1.06);box-shadow:0 4px 12px rgba(225,37,27,.3)}
.head-links{display:flex;align-items:center;gap:2px;font-size:14px;margin-left:auto}
.head-links a{padding:7px 12px;border-radius:999px;color:rgba(20,22,28,.72);font-weight:500}
.head-links a:hover{color:var(--main);background:var(--main-soft)}
/* 分类条 */
.cat-strip{border-top:1px solid var(--line);background:rgba(255,255,255,.5)}
.cat-strip-inner{display:flex;gap:4px;overflow-x:auto;height:46px;align-items:center;scrollbar-width:none}
.cat-strip-inner::-webkit-scrollbar{display:none}
.cat-strip-inner a{font-size:14px;color:rgba(20,22,28,.66);white-space:nowrap;padding:5px 11px;border-radius:999px;transition:.16s var(--ease)}
.cat-strip-inner a:hover{color:var(--main);background:var(--main-soft)}
.cat-strip-inner a.on{color:#fff;background:var(--text);font-weight:700}

/* ---------------- 首页 Hero：深藏青 + 光晕 ---------------- */
.qs-hero{
  position:relative;overflow:hidden;margin-bottom:18px;
  border-radius:22px;
  background:linear-gradient(150deg,var(--dark-2),var(--dark) 62%);
  box-shadow:0 18px 40px rgba(15,17,22,.18);
  isolation:isolate;
}
.qs-hero::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(90% 70% at 88% 6%,rgba(225,37,27,.30),transparent 62%),
    radial-gradient(70% 60% at 8% 96%,rgba(240,161,37,.16),transparent 66%);
}
.qs-hero::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(var(--dark-line) 1px,transparent 1px),linear-gradient(90deg,var(--dark-line) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(70% 70% at 30% 20%,#000,transparent 78%);
  -webkit-mask-image:radial-gradient(70% 70% at 30% 20%,#000,transparent 78%);
}
.qs-hero-in{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:36px;align-items:center;padding:46px 44px 44px}
.qs-hero-copy{min-width:0}
.qs-eyebrow{
  display:inline-flex;align-items:center;gap:8px;height:28px;padding:0 12px 0 10px;
  border-radius:999px;border:1px solid var(--dark-line);
  background:rgba(255,255,255,.05);color:rgba(255,255,255,.72);
  font-size:12px;letter-spacing:.4px;margin-bottom:18px;
}
.qs-eyebrow i{width:6px;height:6px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 4px rgba(240,161,37,.16)}
.qs-hero h1{font-size:40px;line-height:1.18;font-weight:900;color:#fff;letter-spacing:-.6px;margin-bottom:14px}
.qs-hero h1 em{
  background:linear-gradient(92deg,#ff6a5a,#f0a125 82%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.qs-lede{font-size:14.5px;line-height:1.8;color:rgba(255,255,255,.6);max-width:26em;margin-bottom:24px}
.qs-cta{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.qs-meta{display:flex;align-items:center;gap:10px;margin-top:22px;font-size:12.5px;color:rgba(255,255,255,.42)}
.qs-meta i{width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.28)}
/* 右侧书堆 */
.qs-hero-books{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:end}
.qs-hb{
  display:block;min-width:0;padding:10px;border-radius:14px;
  background:rgba(255,255,255,.055);border:1px solid var(--dark-line);
  backdrop-filter:blur(6px);
  transition:transform .4s var(--ease),background .3s var(--ease),border-color .3s var(--ease);
}
.qs-hb:hover{transform:translateY(-6px);background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.22)}
.qs-hb-cover{position:relative;display:block;border-radius:9px;overflow:hidden;aspect-ratio:3/4;background:rgba(255,255,255,.08);box-shadow:0 8px 22px rgba(0,0,0,.35)}
.qs-hb-cover img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.qs-hb:hover .qs-hb-cover img{transform:scale(1.05)}
.qs-hb-cover em{
  position:absolute;left:6px;top:6px;font-size:10px;line-height:1.6;font-weight:700;
  color:#fff;background:rgba(15,17,22,.6);border:1px solid rgba(255,255,255,.2);
  border-radius:6px;padding:0 6px;backdrop-filter:blur(4px);
}
.qs-hb-name{display:block;margin-top:9px;font-size:12.5px;font-weight:700;color:#fff;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qs-hb-sub{display:block;margin-top:2px;font-size:11.5px;color:rgba(255,255,255,.45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------------- 通用卡片 / 区块 ---------------- */
.block{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:20px;margin-bottom:16px;box-shadow:0 1px 2px rgba(15,17,22,.03);
}
.block-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.block-head h3{display:flex;align-items:center;font-size:17.5px;font-weight:800;letter-spacing:-.2px}
.block-head h3::before{
  content:"";width:4px;height:15px;border-radius:2px;margin-right:9px;flex:none;
  background:linear-gradient(180deg,var(--main),var(--amber));
}
.block-head h3 a{font-size:17.5px;font-weight:800}
.block-head h3 a:hover{color:var(--main)}
.block-head h3 i{color:var(--main);font-size:14px;margin-right:4px}
.block-head .more{font-size:13px;color:var(--text-2);display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.block-head .more:hover{color:var(--main)}

/* 最近更新列表 */
.update-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 34px}
.update-list li{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px dashed var(--line);font-size:14px;min-width:0}
.update-list li:last-child{border-bottom:0}
.u-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:44%}
.u-name:hover{color:var(--main)}
.u-chap{color:var(--text-2);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.u-chap:hover{color:var(--main)}
.u-meta{color:var(--text-3);font-size:12px;white-space:nowrap;margin-left:auto;font-variant-numeric:tabular-nums}

/* chips */
.chips{display:flex;flex-wrap:wrap;gap:9px}
.chip{
  display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 15px;
  border-radius:999px;background:#fff;border:1px solid var(--line-2);
  font-size:13.5px;color:rgba(20,22,28,.72);transition:.16s var(--ease);
}
.chip:hover{border-color:var(--main-line);color:var(--main);background:var(--main-soft)}
.chip.on{background:var(--text);border-color:var(--text);color:#fff;font-weight:600}

/* 书籍网格（书架/列表通用） */
.book-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px 14px}
.book-grid.wide{
  grid-template-columns:repeat(5,1fr);gap:20px 16px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;
}
.book{display:block;min-width:0}
.book-cover{position:relative;border-radius:10px;overflow:hidden;background:var(--bg-soft);aspect-ratio:3/4;box-shadow:0 2px 10px rgba(15,17,22,.08)}
.book-cover img{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease)}
.book:hover .book-cover img{transform:scale(1.05)}
.book-name{margin-top:9px;font-size:13.5px;font-weight:700;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.book:hover .book-name{color:var(--main)}
.book-sub{margin-top:3px;font-size:12px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.badge{
  position:absolute;top:7px;left:7px;font-size:10px;line-height:1.6;padding:1px 7px;border-radius:6px;
  background:rgba(15,17,22,.6);color:#fff;backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.18);
}
.badge.full{background:var(--grad-red);border-color:transparent;font-weight:700}

/* 页面标题 */
.page-head{display:flex;align-items:baseline;gap:12px;margin:2px 0 18px;flex-wrap:wrap}
.page-head h1{font-size:26px;font-weight:900;letter-spacing:-.5px;line-height:1.3}
.page-head h1 a:hover{color:var(--main)}
.page-head .count{font-size:13px;color:var(--text-2)}

/* 筛选条 */
.filter-bar{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 18px;margin-bottom:16px}
.filter-row{display:flex;flex-wrap:wrap;gap:8px}
.filter-row+.filter-row{margin-top:11px;padding-top:11px;border-top:1px dashed var(--line)}

/* ---------------- 详情页 ---------------- */
.crumbs{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--text-2);margin-bottom:14px;flex-wrap:wrap}
.crumbs a:hover{color:var(--main)}
.crumbs i{color:var(--text-3)}
.crumbs span{color:var(--text);max-width:60%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.detail{
  display:flex;gap:26px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);padding:24px;margin-bottom:16px;box-shadow:var(--shadow);
}
.detail-cover{position:relative;width:156px;flex:0 0 156px;border-radius:12px;overflow:hidden;aspect-ratio:3/4;box-shadow:0 10px 26px rgba(15,17,22,.16)}
.detail-cover img{width:100%;height:100%;object-fit:cover}
.detail-main{flex:1;min-width:0}
.detail-main h1{font-size:27px;font-weight:900;line-height:1.3;letter-spacing:-.4px;margin-bottom:12px}
.detail-sub{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13.5px;color:rgba(20,22,28,.66);margin-bottom:12px}
.detail-sub a[href]{color:rgba(20,22,28,.72)}
.detail-sub a[href]:hover{color:var(--main)}
.detail-sub .tag{
  background:var(--bg-soft);border-radius:999px;padding:3px 11px;font-size:12.5px;color:rgba(20,22,28,.62);
  border:1px solid transparent;
}
.detail-sub .tag:first-of-type{background:var(--main-soft);color:var(--main);font-weight:600}
.detail-sub .tag.gray{color:var(--text-2)}
.detail-last{font-size:13.5px;color:rgba(20,22,28,.66);margin-bottom:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.detail-last a{color:var(--main);font-weight:600}
.detail-last em{color:var(--text-3);font-size:12px;margin-left:6px}
.detail-stats{display:flex;gap:30px;margin:2px 0 18px}
.detail-stats span{font-size:12px;color:var(--text-2)}
.detail-stats b{display:block;font-size:19px;font-weight:900;color:var(--text);line-height:1.3;font-variant-numeric:tabular-nums;letter-spacing:-.3px}
.detail-stats span:nth-child(1) b{color:var(--main)}
.detail-btns{display:flex;flex-wrap:wrap;gap:10px}

/* 按钮 */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  height:42px;padding:0 22px;border-radius:999px;
  font-size:14.5px;font-weight:700;letter-spacing:.2px;
  transition:.18s var(--ease);white-space:nowrap;
}
.btn.primary{background:var(--grad-red);color:#fff;box-shadow:var(--shadow-red)}
.btn.primary:hover{filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 12px 26px rgba(225,37,27,.30)}
.btn.ghost{background:#fff;color:rgba(20,22,28,.78);border:1px solid var(--line-2)}
.btn.ghost:hover{border-color:var(--main-line);color:var(--main);background:var(--main-soft)}
.btn.ghost-dark{background:rgba(255,255,255,.07);color:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.16)}
.btn.ghost-dark:hover{background:rgba(255,255,255,.13);color:#fff;border-color:rgba(255,255,255,.3)}
.btn.sm{height:34px;padding:0 15px;font-size:13px}
.btn.block{width:100%}

/* 详情 Tab */
.tabs{display:flex;gap:28px;background:var(--card);border:1px solid var(--line);border-bottom:0;border-radius:var(--r) var(--r) 0 0;padding:0 22px}
.tab{position:relative;padding:16px 0;font-size:15px;color:var(--text-2);font-weight:600}
.tab:hover{color:var(--text)}
.tab.on{color:var(--text);font-weight:800}
.tab.on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:var(--grad-red)}
.intro-box{
  background:var(--card);border:1px solid var(--line);border-top:0;
  border-radius:0 0 var(--r) var(--r);padding:20px 22px;
  font-size:14.5px;line-height:1.95;color:rgba(20,22,28,.76);
}
.intro-box p+p{margin-top:12px}
.intro-book{font-weight:800;font-size:14.5px;color:var(--text);margin-bottom:12px;padding-bottom:9px;border-bottom:1px dashed var(--line)}
.intro-paras p{margin:0 0 10px;text-indent:0}
.intro-paras p:last-child{margin-bottom:0}
.intro-paras.clamp{max-height:152px;overflow:hidden;position:relative}
.intro-paras.clamp::after{content:"";position:absolute;left:0;right:0;bottom:0;height:64px;background:linear-gradient(rgba(255,255,255,0),#fff)}
.intro-toggle{
  display:block;margin:14px auto 0;background:#fff;border:1px solid var(--line-2);
  border-radius:999px;padding:6px 20px;font-size:12.5px;color:var(--text-2);
}
.intro-toggle:hover{color:var(--main);border-color:var(--main-line);background:var(--main-soft)}
.kw{display:none}
.kw-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.kw-tags:first-child{margin-top:0}
.ktag{font-size:12.5px;background:var(--bg-soft);border:1px solid transparent;border-radius:999px;padding:4px 12px;color:var(--text-2);transition:.15s var(--ease)}
.ktag:hover{background:var(--main-soft);border-color:var(--main-line);color:var(--main)}
.ktag-link{color:var(--main);background:var(--main-soft);border-color:var(--main-line)}
.ktag-link:hover{background:var(--main);color:#fff;border-color:var(--main)}

/* 最新章节 */
.latest{margin-top:16px}
.latest .block-head{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px}
.latest-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px 12px}
.latest-grid li{padding:0;border:0}
.latest-grid li a{
  display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;
  padding:10px 13px;font-size:13.5px;color:var(--text);transition:.15s var(--ease);
}
.latest-grid li a:hover{color:var(--main);border-color:var(--main-line);background:var(--main-soft)}
.latest-grid li.first a{border-color:var(--main-line);background:var(--main-soft)}
.latest-grid .c-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.latest-grid .l-badge{flex:none;font-size:10px;font-weight:800;letter-spacing:.6px;color:#fff;background:var(--grad-red);border-radius:999px;padding:2px 8px}
.block-tools{display:flex;gap:10px;align-items:center}
.order-toggle{font-size:12.5px;color:var(--text-2);border:1px solid var(--line-2);border-radius:999px;padding:4px 13px;background:#fff}
.order-toggle:hover{color:var(--main);border-color:var(--main-line)}

/* 章节目录 */
.chapter-grid{display:block;column-count:4;column-gap:26px}
.chapter-grid li{padding:9px 0;border-bottom:1px dashed var(--line);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;break-inside:avoid}
.chapter-grid li a:hover{color:var(--main)}
.chapter-grid li.vol{
  column-span:all;-webkit-column-span:all;
  font-weight:800;color:rgba(20,22,28,.6);background:var(--bg-soft);
  border-radius:8px;padding:8px 12px;margin:10px 0 4px;border-bottom:0;
}
.catalog-more{text-align:center;padding-top:15px;border-top:1px dashed var(--line);margin-top:10px}
.catalog-more a{font-size:13.5px;color:var(--main);font-weight:700}
.idx-intro{font-size:14px;line-height:1.8;color:rgba(20,22,28,.66);margin-bottom:16px;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:14px 16px}

/* ---------------- 阅读页 ---------------- */
body:has(.rd-top) .site-head,body:has(.rd-top) .site-foot,body:has(.rd-top) .tabbar{display:none}
body:has(.rd-top){background:var(--bg)}
.rd-top{position:sticky;top:0;z-index:50;background:rgba(251,251,252,.9);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.rd-top-in{max-width:760px;margin:0 auto;height:62px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.rd-back{display:flex;align-items:center;gap:8px;font-size:15px;color:rgba(20,22,28,.72);max-width:72%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-back svg{width:12px;height:24px;flex:none}
.rd-back:hover{color:var(--main)}
.rd-pos{font-size:13px;color:var(--text-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.rd-article{max-width:760px;margin:0 auto;padding:40px 24px 30px}
.rd-title{font-size:27px;font-weight:900;color:var(--text);line-height:1.4;letter-spacing:-.4px;margin-bottom:12px}
.rd-meta{font-size:13px;color:var(--text-2);margin-bottom:32px}
.rd-meta span{margin:0 8px}
.rd-content{font-size:17px;color:#22252a;letter-spacing:.01em}
.rd-content p{text-indent:2em;line-height:2.05;margin-bottom:15px;word-break:break-word}
.rd-btns{display:flex;justify-content:center;gap:14px;margin:48px 0 8px}
.rd-chbtn{
  display:inline-flex;align-items:center;justify-content:center;height:46px;
  padding:0 38px;background:#fff;border:1px solid var(--line-2);border-radius:999px;
  font-size:15px;font-weight:600;color:rgba(20,22,28,.8);transition:.16s var(--ease);
}
.rd-chbtn:hover{color:var(--main);border-color:var(--main-line);background:var(--main-soft)}
.rd-chbtn.disabled{color:var(--text-3);background:var(--bg-soft);border-color:var(--line);cursor:default}
.rd-chbtn.disabled:hover{color:var(--text-3);background:var(--bg-soft);border-color:var(--line)}
.rd-tips{display:none}
.rd-report{text-align:center;font-size:12.5px;color:var(--text-2);margin:8px 0 26px}
.rd-report a{color:var(--text-2);text-decoration:underline dotted}
.rd-report a:hover{color:var(--main)}
/* 右侧悬浮工具条 */
.rd-toolbar{position:fixed;right:26px;top:40%;z-index:60;display:flex;flex-direction:column;gap:10px}
.rd-item{
  width:56px;height:58px;background:#fff;border:1px solid var(--line);border-radius:13px;
  box-shadow:0 4px 16px rgba(15,17,22,.07);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  font-size:11px;color:rgba(20,22,28,.6);transition:.16s var(--ease);
}
.rd-item svg{width:21px;height:21px}
.rd-item:hover{color:var(--main);border-color:var(--main-line);box-shadow:0 8px 22px rgba(15,17,22,.12)}
.rd-item-wrap{position:relative}
.rd-pop{
  position:absolute;right:72px;top:50%;transform:translateY(-50%);width:284px;
  background:#fff;border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow-2);padding:20px 20px 14px;display:none;
}
.rd-item-wrap.open .rd-pop{display:block}
.rd-slider{display:flex;align-items:center;gap:12px}
.rd-a{font-size:13px;font-weight:700;color:rgba(20,22,28,.6);cursor:pointer;user-select:none}
.rd-a:hover{color:var(--main)}
.rd-a-big{font-size:20px}
.rd-road{position:relative;flex:1;height:4px;border-radius:2px;background:#eceef1;cursor:pointer}
.rd-bar{position:absolute;left:0;top:0;height:100%;border-radius:2px;background:var(--grad-red);width:0}
.rd-dot{position:absolute;top:50%;width:7px;height:7px;border-radius:50%;background:#fff;border:1.5px solid #d9dbe0;transform:translate(-50%,-50%);z-index:2}
.rd-dot:nth-of-type(1){left:0%}.rd-dot:nth-of-type(2){left:25%}.rd-dot:nth-of-type(3){left:50%}.rd-dot:nth-of-type(4){left:75%}.rd-dot:nth-of-type(5){left:100%}
.rd-knob{position:absolute;top:50%;left:0;width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--main);transform:translate(-50%,-50%);box-shadow:0 1px 5px rgba(15,17,22,.22);z-index:3;pointer-events:none}
.rd-marks{display:flex;justify-content:space-between;margin:9px 34px 0;font-size:11px;color:var(--text-3)}
/* 侧滑目录 */
.rd-mask{position:fixed;inset:0;background:rgba(15,17,22,.45);opacity:0;visibility:hidden;transition:opacity .22s;z-index:120}
.rd-mask.show{opacity:1;visibility:visible}
.rd-drawer{
  position:fixed;top:0;right:0;bottom:0;width:400px;max-width:88vw;background:#fff;z-index:121;
  transform:translateX(103%);transition:transform .28s var(--ease);
  display:flex;flex-direction:column;box-shadow:-12px 0 38px rgba(15,17,22,.16);
}
.rd-drawer.open{transform:none}
.rd-dw-head{display:flex;align-items:center;justify-content:space-between;padding:18px 16px 14px 20px;border-bottom:1px solid var(--line);flex:none}
.rd-dw-title{font-size:17px;font-weight:900;letter-spacing:-.2px;display:flex;align-items:baseline;gap:8px}
.rd-dw-count{font-size:12px;font-weight:400;color:var(--text-2)}
.rd-dw-tools{display:flex;align-items:center;gap:6px}
.rd-dw-btn{font-size:12.5px;color:var(--text-2);border:1px solid var(--line-2);border-radius:999px;padding:4px 12px;line-height:1.4}
.rd-dw-btn:hover{color:var(--main);border-color:var(--main-line)}
.rd-dw-close{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text-2)}
.rd-dw-close svg{width:18px;height:18px}
.rd-dw-close:hover{background:var(--bg-soft);color:var(--text)}
.rd-dw-body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:8px 10px 14px}
.rd-dw-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;font-size:14px;color:var(--text);line-height:1.5}
.rd-dw-item em{flex:none;min-width:30px;font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums}
.rd-dw-item span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-dw-item:hover{background:var(--bg-soft);color:var(--main)}
.rd-dw-item.cur{background:var(--main-soft);color:var(--main);font-weight:700}
.rd-dw-item.cur em{color:var(--main)}
.rd-dw-cur{flex:none;font-size:10px;font-weight:700;color:#fff;background:var(--main);border-radius:999px;padding:2px 7px;line-height:1.6}
.rd-dw-loading{padding:40px 16px;text-align:center;font-size:13.5px;color:var(--text-2)}
.rd-dw-loading a{color:var(--main);text-decoration:underline}
.rd-dw-foot{flex:none;border-top:1px solid var(--line);padding:13px 20px;text-align:center;font-size:12.5px}
.rd-dw-foot a{color:var(--text-2)}
.rd-dw-foot a:hover{color:var(--main)}
#read_progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--grad-red);z-index:300;transition:width .08s linear}

/* ---------------- 搜索结果 / 作者页 ---------------- */
.result-list{display:flex;flex-direction:column;gap:12px}
.result-list>li{
  display:flex;gap:16px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);padding:16px;transition:.16s var(--ease);
}
.result-list>li:hover{border-color:var(--main-line);box-shadow:0 8px 22px rgba(15,17,22,.06)}
.result-list>li.empty{flex-direction:column;align-items:center;gap:12px;padding:52px 16px;color:var(--text-2);border-style:dashed}
.r-cover{flex:0 0 86px;width:86px;aspect-ratio:3/4;border-radius:8px;overflow:hidden;background:var(--bg-soft)}
.r-cover img{width:100%;height:100%;object-fit:cover}
.r-main{flex:1;min-width:0}
.r-main h3{font-size:16.5px;font-weight:800;margin-bottom:7px;line-height:1.45}
.r-main h3:hover{color:var(--main)}
.r-meta{font-size:12.5px;color:var(--text-2);margin-bottom:7px}
.r-intro{font-size:13.5px;color:rgba(20,22,28,.66);line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:7px}
.r-last{font-size:13px;color:var(--text-2)}
.r-last a:hover{color:var(--main)}

/* ---------------- 排行 ---------------- */
.rank-3col{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.rank-col h4{font-size:13px;font-weight:800;color:var(--text-2);letter-spacing:.6px;margin-bottom:10px;padding-bottom:9px;border-bottom:1px solid var(--line)}
.rank-ol li{display:flex;align-items:center;gap:11px;padding:8px 0;font-size:14px}
.rank-ol .no{
  flex:0 0 21px;height:21px;border-radius:6px;background:var(--bg-soft);color:var(--text-3);
  font-size:12px;display:grid;place-items:center;font-weight:800;font-variant-numeric:tabular-nums;
}
.rank-ol .no.hot{background:var(--grad-red);color:#fff}
.rank-ol a{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-ol a:hover{color:var(--main)}
.rank-ol em{font-size:12px;color:var(--text-3);white-space:nowrap}
.rank-list>li{
  display:flex;gap:14px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);padding:17px 19px;margin-bottom:12px;transition:.16s var(--ease);
}
.rank-list>li:hover{border-color:var(--main-line);box-shadow:0 8px 22px rgba(15,17,22,.06)}
.rank-no{
  flex:0 0 30px;height:30px;border-radius:9px;background:var(--bg-soft);color:var(--text-3);
  display:grid;place-items:center;font-weight:900;font-size:14px;font-variant-numeric:tabular-nums;
}
.rank-no.hot{background:var(--grad-red);color:#fff;box-shadow:0 4px 12px rgba(225,37,27,.24)}
.rank-body{flex:1;min-width:0}
.rank-name{font-size:16.5px;font-weight:800}
.rank-name:hover{color:var(--main)}
.rank-intro{font-size:13.5px;color:rgba(20,22,28,.66);line-height:1.65;margin:7px 0;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.rank-meta{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--text-2)}
.rank-meta a:hover{color:var(--main)}

/* ---------------- 分页 ---------------- */
.pages,.pagelink{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:26px 0}
.pagelink a,.pagelink strong{
  min-width:38px;height:38px;padding:0 13px;border-radius:10px;
  background:#fff;border:1px solid var(--line-2);
  display:inline-flex;align-items:center;justify-content:center;
  font-size:14px;color:rgba(20,22,28,.72);font-variant-numeric:tabular-nums;
}
.pagelink a:hover{color:var(--main);border-color:var(--main-line);background:var(--main-soft)}
.pagelink strong{background:var(--text);border-color:var(--text);color:#fff;font-weight:700}

/* ---------------- 登录 / 注册 ---------------- */
.auth-card{max-width:412px;margin:44px auto;background:#fff;border:1px solid var(--line);border-radius:20px;padding:34px 30px;box-shadow:var(--shadow)}
.auth-card h1{font-size:24px;font-weight:900;letter-spacing:-.4px;margin-bottom:6px}
.auth-sub{font-size:13px;color:var(--text-2);margin-bottom:24px}
.auth-card label{display:block;margin-bottom:15px}
.auth-card label span{display:block;font-size:13px;color:rgba(20,22,28,.66);margin-bottom:7px;font-weight:600}
.auth-card input{
  width:100%;height:46px;border:1px solid var(--line-2);border-radius:11px;
  padding:0 14px;font-size:14px;outline:none;background:var(--bg);transition:.16s var(--ease);
}
.auth-card input:focus{border-color:var(--main);background:#fff;box-shadow:0 0 0 4px var(--main-soft)}
.auth-card .btn{margin-top:8px}
.auth-tip{margin-top:18px;font-size:13px;color:var(--text-2);text-align:center}
.auth-tip a{color:var(--main);font-weight:600}

/* ---------------- 首页分类文字列表 ---------------- */
.cat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;align-items:start}
.cat-grid .block{margin-bottom:16px}
.bk-list{display:flex;flex-direction:column}
.bk{display:flex;align-items:center;gap:10px;min-width:0;max-width:100%;padding:10px 8px;border-bottom:1px dashed var(--line);border-radius:8px;transition:background .15s var(--ease)}
.bk:last-child{border-bottom:0}
.bk:hover{background:var(--bg-soft)}
.bk-idx{flex:none;width:20px;font-size:12px;font-weight:800;color:var(--text-3);font-variant-numeric:tabular-nums}
.bk:nth-child(-n+3) .bk-idx{color:var(--main)}
.bk-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.bk-name{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:700;line-height:1.35;color:var(--text);min-width:0}
.bk-name-t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-name em{flex:none;font-size:10.5px;font-weight:700;line-height:1.7;color:var(--text-2);background:var(--bg-soft);border-radius:999px;padding:0 6px}
.bk-name em.full{color:var(--main);background:var(--main-soft)}
.bk:hover .bk-name{color:var(--main)}
.bk-sub{display:block;min-width:0;font-size:12px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-sub i{color:var(--text-3);margin:0 6px}
.bk-arrow{flex:none;font-size:13px;color:rgba(20,22,28,.22);transition:.15s var(--ease)}
.bk:hover .bk-arrow{color:var(--main)}

/* 首页焦点推荐（文字卡片） */
.focus-txt .ft-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ft{
  display:block;min-width:0;padding:14px 15px;border:1px solid var(--line);border-radius:13px;
  background:#fff;transition:.16s var(--ease);
}
.ft:hover{border-color:var(--main-line);background:#fff;box-shadow:0 8px 22px rgba(225,37,27,.07);transform:translateY(-1px)}
.ft-head{display:flex;align-items:center;gap:7px;min-width:0}
.ft-name{font-size:14.5px;font-weight:800;line-height:1.4;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ft:hover .ft-name{color:var(--main)}
.ft-tag{flex:none;font-size:10.5px;line-height:1.7;color:var(--main);background:var(--main-soft);border-radius:999px;padding:0 7px;font-weight:600}
.ft-meta{display:block;margin-top:7px;font-size:12px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ft-meta i{color:var(--text-3);margin:0 6px}
.ft-desc{display:-webkit-box;margin-top:8px;font-size:12.5px;line-height:1.7;color:var(--text-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ---------------- 列表页：横向书单行 ---------------- */
.lb-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:2px 0 16px}
.lb-head-l{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;min-width:0}
.lb-head-r{flex:none;display:flex;align-items:center;gap:8px}
.lb-head h1{font-size:27px;font-weight:900;letter-spacing:-.6px;line-height:1.25}
.lb-count{font-size:13px;color:var(--text-2);font-variant-numeric:tabular-nums}
.lb-full{
  display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 15px;border-radius:999px;
  font-size:13px;font-weight:600;color:rgba(20,22,28,.66);background:#fff;border:1px solid var(--line-2);
  transition:.16s var(--ease);white-space:nowrap;
}
.lb-full::before{content:"";width:12px;height:12px;border-radius:4px;border:1.5px solid currentColor;opacity:.5;transition:.16s var(--ease)}
.lb-full:hover{color:var(--main);border-color:var(--main-line);background:var(--main-soft)}
.lb-full.on{color:#fff;background:var(--text);border-color:var(--text)}
.lb-full.on::before{background:var(--main);border-color:var(--main);opacity:1}

.bl-list{display:flex;flex-direction:column;gap:10px}
.bl-row{
  position:relative;display:grid;grid-template-columns:88px minmax(0,1fr) 208px;gap:18px;align-items:center;
  padding:15px 18px 15px 20px;background:#fff;border:1px solid var(--line);border-radius:14px;
  transition:.2s var(--ease);overflow:hidden;
}
.bl-row::before{
  content:"";position:absolute;left:0;top:50%;width:3px;height:62%;border-radius:0 3px 3px 0;
  background:var(--grad-red);transform:translateY(-50%) scaleY(0);
  transition:transform .3s var(--ease);
}
.bl-row:hover{border-color:var(--main-line);box-shadow:0 10px 26px rgba(15,17,22,.07);transform:translateY(-1px)}
.bl-row:hover::before{transform:translateY(-50%) scaleY(1)}
.bl-cover{width:88px;height:117px;border-radius:10px;overflow:hidden;background:var(--bg-soft);box-shadow:0 3px 12px rgba(15,17,22,.1)}
.bl-cover img{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease)}
.bl-row:hover .bl-cover img{transform:scale(1.04)}
.bl-main{min-width:0;display:flex;flex-direction:column;gap:7px}
.bl-title{display:flex;align-items:center;gap:8px;min-width:0}
.bl-name{
  font-size:17px;font-weight:800;line-height:1.4;letter-spacing:-.2px;color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.bl-row:hover .bl-name{color:var(--main)}
.bl-tag{flex:none;font-size:10.5px;font-weight:700;line-height:1.85;color:var(--text-2);background:var(--bg-soft);border-radius:6px;padding:0 7px;letter-spacing:.2px}
.bl-tag.full{color:#fff;background:var(--grad-red)}
.bl-meta{font-size:12.5px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bl-meta i{color:var(--text-3);margin:0 7px}
.bl-intro{display:-webkit-box;font-size:13px;line-height:1.75;color:var(--text-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bl-side{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;padding-left:18px;border-left:1px dashed var(--line-2)}
.bl-side-top{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--text-3);white-space:nowrap}
.bl-side-top i{font-size:11px;opacity:.8}
.bl-last{max-width:100%;font-size:12.5px;color:rgba(20,22,28,.7);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bl-last::before{content:"最新 ";color:var(--text-3)}
.bl-go{
  display:inline-flex;align-items:center;gap:5px;margin-top:2px;height:28px;padding:0 13px;
  border-radius:999px;background:var(--main-soft);color:var(--main);font-size:12px;font-weight:700;
  transition:.2s var(--ease);white-space:nowrap;
}
.bl-go i{font-size:12px;transition:transform .2s var(--ease)}
.bl-row:hover .bl-go{background:var(--grad-red);color:#fff;box-shadow:0 6px 16px rgba(225,37,27,.24)}
.bl-row:hover .bl-go i{transform:translateX(2px)}

/* ---------------- 足迹 / 阅读记录 ---------------- */
.hist-head{display:flex;align-items:center;gap:10px;padding:2px 0 14px;flex-wrap:wrap}
.hist-title{font-size:18px;font-weight:900;letter-spacing:-.2px}
.hist-count{font-size:12.5px;color:var(--text-2);background:var(--bg-soft);border-radius:999px;padding:3px 10px}
.hist-clear{margin-left:auto;font-size:12.5px;color:var(--text-2);border:1px solid var(--line-2);border-radius:999px;padding:5px 14px}
.hist-clear:hover{color:var(--main);border-color:var(--main-line);background:var(--main-soft)}
.hist-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.hist-item{display:flex;gap:14px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.hist-cover{flex:none;width:82px;height:110px;border-radius:8px;overflow:hidden;background:var(--bg-soft);display:block}
.hist-cover img{width:100%;height:100%;object-fit:cover}
.hist-info{flex:1;min-width:0;display:flex;flex-direction:column}
.hist-name{font-size:15.5px;font-weight:800;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hist-name a:hover{color:var(--main)}
.hist-meta,.hist-progress{margin-top:5px;font-size:12.5px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hist-btns{margin-top:auto;display:flex;gap:8px;padding-top:10px}
.hist-btn{display:inline-flex;align-items:center;font-size:12.5px;padding:6px 14px;border-radius:999px;border:1px solid var(--line-2);color:var(--text)}
.hist-btn.main{background:var(--grad-red);border-color:transparent;color:#fff;font-weight:700}
.hist-btn.main:hover{filter:brightness(1.05)}
.hist-btn.ghost:hover{color:var(--main);border-color:var(--main-line);background:var(--main-soft)}
.hist-empty{padding:56px 16px;text-align:center;color:var(--text-2);font-size:14px;border:1px dashed var(--line-2);border-radius:14px}
.hist-empty i{display:block;font-size:28px;margin-bottom:12px;color:var(--text-3)}
.section_mark{display:block}

/* ---------------- footer：深色收尾 ---------------- */
.site-foot{
  margin-top:40px;padding:42px 0 34px;
  background:linear-gradient(180deg,var(--dark-2),var(--dark));
  color:var(--dark-text);position:relative;overflow:hidden;
}
.site-foot::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(70% 90% at 82% 0%,rgba(225,37,27,.20),transparent 62%);
}
.site-foot .wrap{position:relative}
.foot-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.foot-left{min-width:0}
.foot-brand{display:flex;align-items:center;gap:9px;font-size:17px;font-weight:900;color:#fff}
.foot-brand a{color:#fff;display:flex;align-items:center;gap:9px}
.foot-brand a:hover{color:#fff}
.foot-brand .brand-mark{width:26px;height:26px;border-radius:8px;font-size:12px;box-shadow:none}
.foot-desc{font-size:13px;color:var(--dark-text);margin-top:10px}
.foot-nav{display:flex;gap:6px;flex-wrap:wrap}
.foot-nav a{font-size:13.5px;color:rgba(255,255,255,.58);padding:6px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.12)}
.foot-nav a:hover{color:#fff;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.26)}
.foot-divider{height:1px;background:var(--dark-line);margin:24px 0 16px}
.foot-meta{font-size:12px;color:rgba(255,255,255,.34);text-align:left}
.foot-meta a{color:rgba(255,255,255,.5)}
.foot-meta a:hover{color:#fff}
.foot-meta span{margin:0 7px;color:rgba(255,255,255,.2)}
.foot-copy{font-size:11.5px;color:rgba(255,255,255,.26);margin-top:8px}
.links{font-size:13px;line-height:2.1;color:var(--text-2)}
.links a{margin-right:12px}
.links a:hover{color:var(--main)}
.link-block .block-head{justify-content:flex-start;margin-bottom:10px}
.tabbar{display:none}
.zh_click{color:inherit}
.to-top{
  position:fixed;right:20px;bottom:88px;width:44px;height:44px;border-radius:50%;
  background:#fff;border:1px solid var(--line);box-shadow:0 6px 20px rgba(15,17,22,.14);
  display:none;align-items:center;justify-content:center;color:var(--text-2);font-size:17px;z-index:80;
}
.to-top.on{display:flex}
.to-top:hover{color:var(--main);border-color:var(--main-line)}

/* ---------------- 夜间模式：深藏青 ---------------- */
body.night{background:var(--dark);color:#c9ccd2}
body.night .site-head{background:rgba(15,17,22,.86);border-color:var(--dark-line)}
body.night .brand{color:#fff}
body.night .search-box{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14)}
body.night .search-box .search_input{color:#e6e8ec}
body.night .search-box .search_input::placeholder{color:rgba(255,255,255,.34)}
body.night .head-links a{color:rgba(255,255,255,.68)}
body.night .head-links a:hover{color:#fff;background:rgba(255,255,255,.08)}
body.night .cat-strip{background:rgba(255,255,255,.02);border-color:var(--dark-line)}
body.night .cat-strip-inner a{color:rgba(255,255,255,.6)}
body.night .cat-strip-inner a:hover{color:#fff;background:rgba(255,255,255,.08)}
body.night .cat-strip-inner a.on{background:#fff;color:var(--dark)}
body.night .block,body.night .detail,body.night .tabs,body.night .intro-box,
body.night .result-list>li,body.night .rank-list>li,body.night .pagelink a,
body.night .auth-card,body.night .book-grid.wide,body.night .filter-bar,
body.night .hist-item,body.night .bl-row,body.night .ft,body.night .idx-intro{
  background:var(--dark-2);border-color:var(--dark-line);box-shadow:none;
}
body.night .block-head h3,body.night .page-head h1,body.night .lb-head h1,body.night .detail-main h1,
body.night .r-main h3,body.night .rank-name,body.night .bl-name,body.night .bk-name,
body.night .hist-name a,body.night .rd-title,body.night .ft-name,body.night .book-name,
body.night .u-name,body.night .hist-title{color:#e8eaee}
body.night .u-chap,body.night .r-intro,body.night .rank-intro,body.night .intro-box,
body.night .rd-content,body.night .idx-intro,body.night .bl-meta,body.night .bl-intro,body.night .bk-sub{color:rgba(255,255,255,.62)}
body.night .bl-last{color:rgba(255,255,255,.72)}
body.night .bl-side{border-color:var(--dark-line)}
body.night .bl-tag{background:rgba(255,255,255,.08);color:rgba(255,255,255,.6)}
body.night .bl-tag.full{background:var(--grad-red);color:#fff}
body.night .bl-row:hover{border-color:rgba(225,37,27,.42);box-shadow:0 10px 26px rgba(0,0,0,.32)}
body.night .lb-full{background:transparent;border-color:rgba(255,255,255,.16);color:rgba(255,255,255,.7)}
body.night .lb-full:hover{color:#fff;border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.06)}
body.night .lb-full.on{background:#fff;border-color:#fff;color:var(--dark)}
body.night .update-list li,body.night .bk,body.night .chapter-grid li,body.night .latest-grid li{border-color:var(--dark-line)}
body.night .chip{background:transparent;border-color:rgba(255,255,255,.16);color:rgba(255,255,255,.68)}
body.night .chip:hover{color:#fff;border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.06)}
body.night .chip.on{background:#fff;border-color:#fff;color:var(--dark)}
body.night .btn.ghost{background:transparent;border-color:rgba(255,255,255,.16);color:rgba(255,255,255,.8)}
body.night .btn.ghost:hover{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.3)}
body.night .intro-paras.clamp::after{background:linear-gradient(rgba(22,25,35,0),#161923)}
body.night .intro-toggle,body.night .order-toggle{background:transparent;border-color:rgba(255,255,255,.16);color:rgba(255,255,255,.6)}
body.night .ktag{background:rgba(255,255,255,.07);color:rgba(255,255,255,.62)}
body.night .ktag-link{color:#ff7a6a;background:rgba(225,37,27,.16);border-color:rgba(225,37,27,.3)}
body.night .latest-grid li a{background:transparent;border-color:var(--dark-line);color:#e2e5ea}
body.night .latest-grid li a:hover{background:rgba(225,37,27,.12);border-color:rgba(225,37,27,.4);color:#ff8b7c}
body.night .bk:hover{background:rgba(255,255,255,.05)}
body.night .bk-idx{color:rgba(255,255,255,.25)}
body.night .bk-name em{background:rgba(255,255,255,.08);color:rgba(255,255,255,.5)}
body.night .bk-name em.full{background:rgba(225,37,27,.18);color:#ff8b7c}
body.night .detail-sub .tag{background:rgba(255,255,255,.07);color:rgba(255,255,255,.6)}
body.night .detail-sub .tag:first-of-type{background:rgba(225,37,27,.16);color:#ff8b7c}
body.night .detail-stats b{color:#e8eaee}
body.night .hist-btn{color:rgba(255,255,255,.7);border-color:rgba(255,255,255,.16)}
body.night .hist-count{background:rgba(255,255,255,.08)}
body.night .hist-empty{border-color:var(--dark-line);color:rgba(255,255,255,.4)}
body.night .auth-card input{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14);color:#e8eaee}
body.night .auth-card input:focus{background:rgba(255,255,255,.08);border-color:var(--main)}
body.night .rd-top{background:rgba(15,17,22,.9);border-color:var(--dark-line)}
body.night .rd-back{color:rgba(255,255,255,.7)}
body.night .rd-chbtn{background:transparent;border-color:rgba(255,255,255,.16);color:rgba(255,255,255,.78)}
body.night .rd-chbtn:hover{color:#ff8b7c;border-color:rgba(225,37,27,.4);background:rgba(225,37,27,.12)}
body.night .rd-chbtn.disabled{color:rgba(255,255,255,.22);background:rgba(255,255,255,.03);border-color:var(--dark-line)}
body.night .rd-item{background:var(--dark-2);border-color:var(--dark-line);color:rgba(255,255,255,.62);box-shadow:none}
body.night .rd-item:hover{color:#ff8b7c;border-color:rgba(225,37,27,.4)}
body.night .rd-pop{background:var(--dark-2);border-color:var(--dark-line)}
body.night .rd-road{background:rgba(255,255,255,.14)}
body.night .rd-dot{background:var(--dark-2);border-color:rgba(255,255,255,.28)}
body.night .rd-knob{background:var(--dark-2)}
body.night .rd-drawer{background:var(--dark-2)}
body.night .rd-dw-head,body.night .rd-dw-foot{border-color:var(--dark-line)}
body.night .rd-dw-item{color:rgba(255,255,255,.72)}
body.night .rd-dw-item:hover{background:rgba(255,255,255,.06);color:#ff8b7c}
body.night .rd-dw-item.cur{background:rgba(225,37,27,.16);color:#ff8b7c}
body.night .pagelink strong{background:#fff;border-color:#fff;color:var(--dark)}
body.night .to-top{background:var(--dark-2);border-color:var(--dark-line);color:rgba(255,255,255,.6)}
body.night .result-list>li.empty{color:rgba(255,255,255,.45)}
body.night .rank-no{background:rgba(255,255,255,.07);color:rgba(255,255,255,.4)}
body.night .rank-ol .no{background:rgba(255,255,255,.07);color:rgba(255,255,255,.4)}

/* ---------------- 响应式 ---------------- */
/* 夜间模式补充：次级文字/小组件 */
body.night .crumbs,body.night .crumbs span{color:rgba(255,255,255,.55)}
body.night .crumbs a{color:rgba(255,255,255,.72)}
body.night .detail-sub{color:rgba(255,255,255,.66)}
body.night .detail-sub a[href]{color:rgba(255,255,255,.78)}
body.night .detail-last{color:rgba(255,255,255,.66)}
body.night .detail-last em{color:rgba(255,255,255,.4)}
body.night .detail-stats span{color:rgba(255,255,255,.5)}
body.night .detail-stats b{color:#e8eaee}
body.night .detail-stats span:nth-child(1) b{color:#ff6b5e}
body.night .tab{color:rgba(255,255,255,.55)}
body.night .tab.on{color:#fff}
body.night .tab:hover{color:#fff}
body.night .lb-count,body.night .page-head .count{color:rgba(255,255,255,.5)}
body.night .bl-side-top{color:rgba(255,255,255,.45)}
body.night .bl-go{background:rgba(225,37,27,.18);color:#ff8b7c;box-shadow:none}
body.night .bl-row:hover .bl-go{background:var(--grad-red);color:#fff}
body.night .ft-meta,body.night .ft-desc{color:rgba(255,255,255,.6)}
body.night .ft-tag{color:#ff8b7c;background:rgba(225,37,27,.16)}
body.night .hist-count{color:rgba(255,255,255,.6);background:rgba(255,255,255,.08)}
body.night .rd-meta{color:rgba(255,255,255,.45)}
body.night .rd-meta span{color:rgba(255,255,255,.3)}
body.night .u-meta,body.night .bk-idx,body.night .bk-arrow{color:rgba(255,255,255,.4)}
body.night .bk-name em{background:rgba(255,255,255,.1);color:rgba(255,255,255,.6)}
body.night .intro-toggle,body.night .order-toggle{color:rgba(255,255,255,.6)}
body.night .catalog-more a{color:#ff8b7c}
body.night .idx-intro{color:rgba(255,255,255,.66)}
body.night .s_gray{color:rgba(255,255,255,.5)}
body.night .foot-meta,body.night .foot-copy{color:rgba(255,255,255,.4)}

@media(max-width:1080px){
  .qs-hero-in{grid-template-columns:minmax(0,1fr);padding:38px 32px 36px;gap:28px}
  .qs-hero h1{font-size:34px}
  .qs-hero-books{grid-template-columns:repeat(3,minmax(0,1fr));max-width:520px}
  .book-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .book-grid.wide{grid-template-columns:repeat(4,minmax(0,1fr))}
  .update-list{grid-template-columns:minmax(0,1fr)}
  .rank-3col{grid-template-columns:minmax(0,1fr);gap:18px}
  .chapter-grid{column-count:3}
}
@media(max-width:860px){
  .cat-grid{grid-template-columns:minmax(0,1fr);gap:0}
  .chapter-grid{column-count:2;column-gap:16px}
  .bl-row{grid-template-columns:74px minmax(0,1fr);gap:13px;padding:12px 14px;align-items:start}
  .bl-cover{width:74px;height:99px;border-radius:9px}
  .bl-name{font-size:15.5px}
  .bl-intro{font-size:12.5px;-webkit-line-clamp:2}
  .bl-side{
    grid-column:1/-1;flex-direction:row;align-items:center;gap:10px;
    padding:9px 0 0;border-left:0;border-top:1px dashed var(--line);
  }
  .bl-last{flex:1;min-width:0}
  .bl-side-top{order:2;flex:none;margin-left:auto}
  .bl-go{display:none}
  .focus-txt .ft-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hist-list{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:720px){
  .wrap{padding:0 14px}
  .chapter-grid{column-count:1;column-gap:0}
  .head-inner{height:58px;gap:10px}
  .brand{font-size:17px;gap:7px}
  .brand-mark{width:27px;height:27px;border-radius:8px;font-size:12px}
  .head-links{display:none}
  .search-box{height:36px;padding-left:13px}
  .cat-strip-inner{height:42px;gap:2px}
  .cat-strip-inner a{font-size:13.5px;padding:5px 9px}
  .page{padding-top:14px;padding-bottom:34px}
  .qs-hero{border-radius:18px}
  .qs-hero-in{padding:28px 20px 26px;gap:22px}
  .qs-hero h1{font-size:27px;letter-spacing:-.4px}
  .qs-lede{font-size:13.5px;margin-bottom:20px}
  .qs-meta{display:none}
  .qs-hero-books{gap:8px}
  .qs-hb{padding:7px;border-radius:11px}
  .qs-hb-sub{display:none}
  .qs-hb-name{font-size:11.5px}
  .btn{height:40px;padding:0 18px;font-size:14px}
  .page-head h1{font-size:21px}
  .block{padding:16px;border-radius:14px}
  .block-head h3,.block-head h3 a{font-size:16px}
  .book-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px 10px}
  .book-grid.wide{grid-template-columns:repeat(3,minmax(0,1fr));padding:13px;gap:15px 10px}
  .book-name{font-size:12.5px}
  .detail{padding:15px;gap:14px;flex-direction:row}
  .detail-cover{width:108px;flex:0 0 108px}
  .detail-main h1{font-size:20px}
  .detail-stats{gap:20px}
  .detail-stats b{font-size:16px}
  .detail-btns .btn{flex:1;padding:0 12px}
  .tabs{padding:0 16px;gap:20px}
  .intro-box{padding:16px}
  .chapter-grid{column-count:2;column-gap:18px}
  .latest-grid{grid-template-columns:minmax(0,1fr)}
  .rd-article{padding:26px 16px 110px}
  .rd-title{font-size:21px}
  .rd-content{font-size:16.5px;line-height:2}
  .rd-toolbar{
    right:auto;left:0;top:auto;bottom:0;width:100%;flex-direction:row;justify-content:space-around;
    gap:0;background:rgba(251,251,252,.96);backdrop-filter:blur(14px);
    border-top:1px solid var(--line);padding:6px 0 8px;box-shadow:0 -2px 14px rgba(15,17,22,.06);
  }
  .rd-item{width:64px;height:50px;box-shadow:none;border-radius:0;border:0;background:transparent}
  .rd-pop{position:fixed;right:12px;left:12px;top:auto;bottom:74px;width:auto;transform:none}
  .rd-drawer{width:100%;max-width:100%;box-shadow:none}
  .rd-dw-body{padding-bottom:80px}
  .u-meta{display:none}
  .u-name{max-width:60%}
  .lb-head{margin-bottom:12px}
  .lb-head h1{font-size:21px;letter-spacing:-.3px}
  .bl-row{gap:11px;padding:11px 12px}
  .bl-cover{width:68px;height:91px}
  .bl-name{font-size:15px}
  .bl-side{padding-top:8px}
  .lb-full{height:31px;padding:0 12px;font-size:12.5px}
  .focus-txt .ft-grid{grid-template-columns:minmax(0,1fr)}
  .to-top{bottom:72px;right:14px}
  .tabbar{
    display:flex;position:fixed;left:0;right:0;bottom:0;height:56px;z-index:60;
    background:rgba(251,251,252,.94);backdrop-filter:blur(14px);border-top:1px solid var(--line);
  }
  .tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;color:var(--text-3)}
  .tabbar a.on{color:var(--main)}
  .tabbar a i{font-size:17px}
  body{padding-bottom:56px}
  body.night .tabbar{background:rgba(15,17,22,.94);border-color:var(--dark-line)}
  body.night .rd-toolbar{background:rgba(15,17,22,.96);border-color:var(--dark-line)}
  .site-foot{margin-top:24px;padding:30px 0 24px}
}
