@charset "utf-8";
.Interaction_tab a, .Interaction_tab a .icon, .Interaction_tab a.fr .icon, .dashang_bar .l_bar .list li, .btn_pc, .btn_flw, .fansBox .fans_bg, .icon_hg {
    background: url(../images/icon_interation.png) no-repeat
}

.InteractionBox {
    padding: 15px 14px 11px
}

.Interaction_tab a {
    width: 339px;
    height: 60px;
    line-height: 60px;
    font-size: 14px;
    color: #000
}

/*.Interaction_tab a:hover, .Interaction_tab a.on { background-position: 0 -60px; color: #000 }*/
.Interaction_tab a .icon {
    width: 38px;
    height: 60px;
    float: left;
    margin: 0 10px 0 64px;
    background-position: -348px 0
}

.Interaction_tab a.fr .icon {
    background-position: -348px -60px
}

.Interaction_tab h4 {
    font-size: 17px;
    margin-right: 8px;
    display: inline
}

.InteractionBox .l_bar, .InteractionBox .r_bar {
    width: 335px;
    margin: 0 2px;
    float: left
}

.InteractionBox .r_bar .time {
    padding-right: 1px
}

.InteractionBox .l_bar .tit {
    padding: 22px 14px 0 4px
}

.InteractionBox .l_bar .tit .red, .InteractionBox .r_bar .tit .red {
    padding: 0 5px
}

.InteractionBox .l_bar .tit .fl {
    font-size: 17px
}

.InteractionBox .l_bar .tit .fr {
    padding-top: 7px
}

.dashang_bar .l_bar .list {
    padding-top: 20px
}

.dashang_bar .l_bar .list li {
    width: 90px;
    height: 134px;
    line-height: 1;
    float: left;
    margin: 0 20px 0 6px;
    text-align: center;
    background-position: 0 -130px
}

.dashang_bar .l_bar .list li img {
    width: 60px;
    height: 60px;
    background: #fff;
    margin: 35px 15px 10px;
    border-radius: 50%;
    box-shadow: 0 1px 0 rgba(0, 0, 0, .3)
}

.dashang_bar .l_bar .list li .user_name {
    line-height: 1 !important;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    display: block;
    padding: 0 10px
}

.dashang_bar .l_bar .list .li_1 {
}

.dashang_bar .l_bar .list .li_2 {
    background-position: -100px -130px
}

.dashang_bar .l_bar .list .li_3 {
    background-position: -200px -130px;
    margin-right: 0
}

.InteractionBox .r_bar .tit {
    padding: 14px 1px 12px 1px
}

.InteractionBox .r_bar .tit strong {
    display: block;
    font-size: 13px
}

.InteractionBox .r_bar .list, .InteractionBox .r_bar .sum {
    margin: 0 1px
}

.InteractionBox .r_bar .list li {
    height: 27px;
    line-height: 27px;
    overflow: hidden;
    border-top: 1px dotted #ccc;
    color: #999
}

.InteractionBox .r_bar .list li .user_name {
    margin-right: 8px
}

.InteractionBox .r_bar .sum {
    border-top: 1px dotted #ccc;
    line-height: 34px
}

.btn_pc, .btn_flw {
    width: 140px;
    height: 44px;
    display: inline-block;
    background-position: 0 -270px
}

.btn_flw {
    width: 122px;
    background-position: -150px -270px
}

.flower_bar .l_bar .list {
    padding: 0 14px 0 4px
}

.flower_bar .l_bar li {
    padding: 15px 0 6px;
    overflow: hidden;
    clear: both
}

.flower_bar .l_bar .book_intro {
    width: 265px
}

.flower_bar .l_bar .cover img {
    width: 45px;
    height: 56px;
    background: #f6f6f6;
    margin: 2px 16px 0 0
}

.flower_bar .l_bar .book_intro .txt {
    height: 38px;
    line-height: 18px;
    padding-top: 2px;
    color: #999;
    overflow: hidden;
    display: block
}

.r_fansBrank .book_intro {
    float: inherit !important
}

.user_level1, .user_level2, .user_level3, .user_level4, .user_level5, .user_level6, .user_level7, .user_level8, .user_level9, .user_level10, .user_level11 {
    width: 30px;
    height: 16px;
    line-height: 16px;
    text-align: center;
    border-radius: 2px;
    margin: 11px 0 0;
    color: #fff
}

.user_level1 {
    background: #d0d0d0
}

.user_level2 {
    background: #c0c0c0
}

.user_level3 {
    background: #b4b3b3
}

.user_level4 {
    background: #a0dfe6
}

.user_level5 {
    background: #77d2db
}

.user_level6 {
    background: #b4d894
}

.user_level7 {
    background: #94c766
}

.user_level8 {
    background: #ffc24c
}

.user_level9 {
    background: #ffa800
}

.user_level10 {
    background: #ff6e26
}

.user_level11 {
    background: #ff0000
}

/*固定悬浮图层*/
.readPopup {
    border: 1px solid #D9D9D9;
    border-radius: 3px;
    background: #FFF;
    box-shadow: 0 1px 2px #999;
    overflow: hidden;
    padding-bottom: 20px;
    z-index: 9999;
    position: fixed;
    left: 50%;
    top: 50%
}

.icon_check {
    position: absolute;
    width: 29px;
    height: 25px;
    right: -1px;
    top: -1px;
    z-index: 2;
    background: url(../images/icon_readpage.png) no-repeat 0 -142px
}

.on .icon_check {
    display: block
}

.closePopup {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 16px;
    height: 15px;
    background: url(../images/icon_readpage.png) no-repeat -43px -126px
}

.chapterBox {
    width: 600px;
    margin-left: -300px;
    margin-top: -260px
}

.chapterBox .scrollWrap {
    height: 540px
}

/*弹窗内容*/
.popupTit h2 {
    text-align: center;
    letter-spacing: 15px;
    color: #333;
    font: 700 20px/30px "Microsoft Yahei";
    margin: 30px 0
}

.popupTit h3 {
    font-size: 16px;
    margin: 15px 20px
}

.scrollWrap {
    overflow-y: scroll;
    position: relative
}

.dirWrap {
    padding: 0 40px
}

.scrollWrap h3 {
    padding-left: 26px;
    font-size: 14px;
    background: #e6e6e6;
    height: 30px;
    line-height: 30px;
    font-weight: normal;
    position: relative;
    cursor: pointer;
    margin: 0 0 15px;
    border-radius: 3px
}

.readPopup .tc .btn_gray {
    margin-left: 30px
}

/*捧场、送鲜花*/
.pcBox, .flowerBox {
    width: 500px;
    margin-left: -251px;
    margin-top: -215px
}

.propsList {
    padding: 15px 0 10px 20px
}

.propsList li {
    float: left;
    cursor: pointer;
    margin: 0 8px 16px;
    text-align: center
}

.propWrap {
    width: 134px;
    height: 54px;
    line-height: 54px;
    text-align: center;
    font-size: 15px;
    color: #000;
    display: block;
    border: 1px solid #e6e6e6;
    background: #fafafa;
    position: relative
}

.on .propWrap, .propWrap:hover {
    width: 132px;
    height: 52px;
    line-height: 52px;
    color: #d43c33;
    border: 2px solid #d43c33;
    background: #fff
}

.propsList li i {
    display: none;
    line-height: 1
}

.propsList li .propsBox {
    padding-top: 20px
}

.have_num {
    padding: 0 30px 10px;
    font-size: 14px;
    color: #999
}

.have_num .red {
    margin: 0 4px
}

.popup_text {
    width: 418px;
    height: 62px;
    padding: 8px 10px;
    margin: 8px 30px 20px;
    color: #555;
    border: 1px solid #e6e6e6;
}

/*消息提示*/
.newsTipBox {
    width: 400px;
    padding-bottom: 30px;
    margin-left: -200px;
    margin-top: -105px
}

.tipWrap {
    padding: 30px;
    font-size: 14px
}

/*遮罩层*/
.maskBox {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 995;
    width: 100%;
    height: 100%;
    background: black;
    filter: alpha(opacity=30);
    opacity: 0.3;
    animation: mask 2s ease-out 0s 1 normal
}

@keyframes mask {
    0% {
        filter: alpha(opacity=0);
        opacity: 0
    }
    100% {
        filter: alpha(opacity=30);
        opacity: 0.3
    }
}

.fansBox {
    width: 998px;
    border: 1px solid #eaeaea
}

.fansHead {
    height: 54px;
    line-height: 54px;
    margin: 0 14px;
    border-bottom: 1px solid #eaeaea;
    font-weight: normal
}

.fansHead h2 {
    font-size: 20px;
    font-weight: normal
}

.fansCon {
    padding: 20px
}

.fansCon .r_bar {
    width: 204px
}

.fansCon .cover {
    width: 200px;
    height: 250px;
    background: #f6f6f6;
    border: 1px solid #ebebeb;
    padding: 1px;
}

.fansCon .btn_red {
    width: 202px;
    margin: 2px 0 14px;
    padding: 10px 0
}

.fansCon .l_bar {
    width: 750px
}

.fansCon .l_bar .list1 {
    padding-top: 4px
}

.fansCon .list1 li {
    width: 33%;
    line-height: 1;
    float: left
}

.fansCon .list1 .fans_bg {
    width: 90px;
    height: 112px;
    background-position: 0 -320px;
    position: relative;
    margin-right: 18px
}

.fansCon .list1 .fans_bg img {
    width: 60px;
    height: 60px;
    background: #fff;
    margin: 39px 15px 0;
    border-radius: 50%;
    box-shadow: 0 1px 0 rgba(0, 0, 0, .3)
}

.fansCon .list1 h5 {
    font-size: 16px;
    padding: 9px 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.fansCon .list1 li .user_name {
    line-height: 1 !important
}

.fansCon .list1 .li_2 .fans_bg {
    background-position: -100px -320px
}

.fansCon .list1 .li_3 .fans_bg {
    background-position: -200px -320px
}

.fansCon .fans_info {
    width: 136px;
    font-size: 14px
}

.fansCon .fans_info .fans_pointer {
    padding: 14px 0 22px
}

.fans_level span {
    padding: 1px 10px 2px
}

.icon_hg {
    width: 30px;
    height: 30px;
    display: inline-block;
    background-position: -300px -320px;
    position: absolute;
    top: -13px;
    right: -13px
}

.fansCon .list2 {
    padding: 0
}

.fansCon .list2 li {
    width: 250px;
    float: left;
    height: 59px;
    padding: 0 0 19px;
    display: inline
}

.fansCon .list2 .num {
    font: 16px/59px "microsoft yahei", Arial, "宋体";
    width: 32px;
    color: #666;
    font-weight: bold
}

.fansCon .list2 .img {
    width: 40px;
    height: 40px;
    margin-top: 10px;
    position: relative
}

.fansCon .list2 .img img {
    width: 100%;
    height: 100%;
    border-radius: 50%
}

.fansCon .list2 .img span {
    display: block;
    margin: 0;
    position: absolute;
    left: 5px;
    bottom: 0
}

.fansCon .list2 .msg {
    display: inline;
    width: 164px;
    padding: 8px 0 0 12px;
}

.fansCon .list2 .msg h4 {
    line-height: 24px;
    font-weight: normal;
    font-size: 16px;
    overflow: hidden;
    height: 24px;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.fansCon .list2 .msg p {
    font-size: 12px;
    line-height: 16px;
    color: #999;
}

.fansTop {
    margin-bottom: 8px;
    border-bottom: 1px solid #eaeaea
}

.fans_tab {
    width: 1005px;
    overflow: hidden;
}

.fans_tab ul {
    float: left;
    width: 280px;
    margin-right: 55px;
}

.fans_tab li {
    line-height: 39px;
    overflow: hidden;
    font-size: 14px;
    height: 39px;
    border-bottom: 1px solid #ebebeb;
}

.fans_tab li .num {
    float: left;
    width: 40px;
    color: #666;
}

.fans_tab li a {
    float: left;
    overflow: hidden;
    width: 200px;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.fans_tab li .fans_level {
    float: left;
    font-size: 12px;
    width: 40px;
    text-align: right;
    color: #999;
}

.fansRule dl {
    padding: 20px 20px 30px
}

.fansRule dt {
    line-height: 24px;
    margin-bottom: 6px;
    font-size: 16px;
}

.fansRule dd {
    font-size: 12px;
    line-height: 20px;
    margin-bottom: 16px;
    color: #777;
}

.fansRule table {
    width: 100%;
    border-collapse: collapse;
}

.fansRule table th, .fansRule table td {
    font-weight: 400;
    min-width: 40px;
    padding: 12px 0;
    text-align: left;
    border-top: 1px solid #ebebeb;
    border-bottom: 1px solid #ebebeb;
}

.fansRule ol li {
    list-style-type: decimal;
    list-style-position: inside;
}

.InteractionBox .l_bar, .flower_bar .l_bar {
    display: none
}

.dashang_bar {
    float: left
}

.flower_bar {
    float: right
}

.author_head {
    text-align: center
}

.author_head .head img {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: #f6f6f6;
    display: block;
    margin: 0 auto
}

.author_head .msg {
    margin-top: -4px
}

.author_head .msg h4 {
    font-size: 14px;
    line-height: 2.4
}

.icon_qyzz {
    padding: 5px;
    line-height: 1;
    background: #d43c33;
    color: #fff;
    border-radius: 3px;
    display: inline-block
}

.author_intro, .author_book {
    border-top: 1px dotted #e0e0e0
}

.author_intro h4, .author_book h4 {
    font-weight: normal;
    font-size: 12px;
    padding: 10px 0 5px
}

.author_intro .intro_txt, .author_book .book_txt {
    line-height: 1.8;
    padding-bottom: 10px
}

.author_book .rightList ul {
    padding: 0
}

.tj_bar .cover {
    float: left;
    display: block;
    margin-right: 10px
}

.tj_bar .cover img {
    width: 64px;
    height: auto;
    background: #f6f6f6
}

.tj_bar .book_intro {
    padding: 15px 0;
    clear: both;
    word-break: break-all;
    zoom: 1;
    overflow: hidden
}

.tj_bar .dec {
    width: 136px;
    float: right
}

.tj_bar .book_intro .book_name {
    display: block;
    font-size: 14px;
    line-height: 1;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden
}

.tj_bar .book_intro .txt {
    height: 54px;
    line-height: 1.5;
    color: #808080;
    overflow: hidden;
    display: block;
    margin-top: 10px;
}

.tj_bar li {
    border-bottom: 1px solid #eee
}

.tj_bar li:last-child {
    border: none
}

.tj_bar li:last-child .book_intro {
    padding: 15px 0 2px
}

.friend_link {
    display: none
}

.footer {
    background: #fff;
    padding: 16px 0 20px }

/* ===== miaowu qidian-override begin ===== */
/* ============================================================
   miaowu qidian-override —— 起点视觉覆盖层
   方案来源：grok-4.6 第三轮视觉审计（/root/astra/r3/AUDIT3B.md）
   落地原则：
     1) 只写在 book.css 末尾（页面最后加载 → 天然优先级最高）
     2) 全部 !important，压过 easyui / main.css 等旧规则
     3) 一律不用橙色，主色 #ed4259
     4) 阅读页禁用纯白页底
   选择器全部按 novel-plus red 模板真实 DOM 编写（已核对）
   ============================================================ */

/* ================= Q1 阅读页正文（起点纸质阅读观感） ================= */

/* 页底：米黄纸感，不用纯白
   注意：book.css 被阅读/详情/目录/榜单/评论 5 个模板共用，
   裸 body 选择器会把米黄底泼到所有页面上，与全站冷灰体系冲突。
   因此限定为「阅读页专属」——阅读页 body 带 .readTheme 类，
   其余页面 body 不带，规则自动落到 base.css 的冷灰底。 */
body.readTheme,
body.readTheme .readWrap,
body.readTheme #readcontent {
    /* 跟随阅读主题变量，而不是写死米黄。
       写死会导致夜间主题下这 15 万像素高的正文包裹层仍是米黄（实测 lum 0.776）。
       底色走 --rd-bg，包裹层走 --rd-panel，两者都由 body.read_style_N 提供。 */
    background: var(--rd-bg, #e8e4d8) !important;
}
body.readTheme .readWrap,
body.readTheme #readcontent {
    background: var(--rd-panel, #e8e4d8) !important;
}

/* 正文卡片：800px 居中 + 米黄卡 + 淡阴影，这是起点阅读页的核心观感 */
#readcontent .textbox.cf {
    width: auto !important;
    max-width: 800px !important;
    margin: 20px auto 40px !important;
    /* 随主题走：浅色主题=米白、夜间=深灰，避免夜间出现浅色巨块 */
    background: var(--rd-panel, #f7f3ea) !important;
    padding: 44px 60px 80px !important;
    box-shadow: 0 1px 8px rgba(0, 0, 0, .07) !important;
    border-radius: 2px !important;
    float: none !important;
    border: 0 !important;
}

/* 章标题 */
#readcontent .book_title h1 {
    font-size: 22px !important;
    color: #222 !important;
    text-align: center !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
}
#readcontent .book_title {
    border: 0 !important;
    background: none !important;
    padding: 0 !important;
}

/* 章节元信息（类别/作者/字数/更新时间）：一行灰字，居中，下接细分隔线 */
#readcontent .textinfo {
    text-align: center !important;
    font-size: 13px !important;
    color: #999 !important;
    line-height: 22px !important;
    margin: 0 0 28px !important;
    padding: 0 0 22px !important;
    border-bottom: 1px solid #ece5d6 !important;
    background: none !important;
}
#readcontent .textinfo a,
#readcontent .textinfo span {
    color: #999 !important;
    font-size: 13px !important;
    /* 间距归一：只留右侧 16px，左侧归零。
       原因：模板里「作者：」是裸文本、紧跟 <a>，
       原先 a/span 左右各 8px -> 相邻两项之间变成 16px、
       而「作者：」与作者名之间只有 8px，全行疏密不均。
       改为「只有右侧间隔」后，冒号紧贴其值、项与项之间均匀 16px。 */
    margin: 0 16px 0 0 !important;
    display: inline !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
    vertical-align: baseline !important;
}

/* 行尾项不留右间隔，避免整行居中时视觉偏离中心 */
#readcontent .textinfo > a:last-child,
#readcontent .textinfo > span:last-child {
    margin-right: 0 !important;
}
#readcontent .textinfo a:hover { color: #ed4259 !important; }

/* 正文：18px / 1.84 / 首行缩进 2em —— 起点正文规格 */
#readcontent .txtwrap {
    width: auto !important;
    float: none !important;
    padding: 0 !important;
    background: transparent !important;
}
#showReading.readBox,
#showReading.readBox p {
    
    line-height: 1.84 !important;
    color: #2b2b2b !important;
    text-indent: 2em !important;
    margin: 0 0 .9em !important;
    letter-spacing: .4px !important;
    word-break: break-word !important;
    text-align: left !important;
    background: transparent !important;
}
/* 空段落不占位（爬来的正文常用空 p 造段距） */
#showReading.readBox p:empty { display: none !important; }

/* 左侧竖排工具条：起点是贴边窄条，不是灰白大方块 */
.screen_toolbar {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* ================= Q2 排行榜 ================= */

/* 表格容器：左栏只有 750px，表格必须贴满且不溢出（原 padding+固定列宽累加会顶出容器） */
.channelRankingContent .wrap_left {
    /* 940 + 240 = 1180，留 20px 列间距，撑满 1200 容器 */
    width: 940px !important;
    box-sizing: border-box !important;
}
.channelRankingContent .wrap_left .pad20 {
    padding: 20px !important;
    box-sizing: border-box !important;
}

/* 表格：固定布局 + 44px 行高，信息密度对齐起点 */
.updateTable {
    width: 100% !important;
    overflow: visible !important;
}
.updateTable table {
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
}
.updateTable th,
.updateTable td {
    height: 44px !important;
    line-height: 44px !important;
    font-size: 13px !important;
    padding: 0 6px !important;
    border-bottom: 1px solid #f2f2f2 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    background: #fff !important;
    box-sizing: border-box !important;
}
.updateTable th {
    color: #999 !important;
    font-weight: 400 !important;
    border-bottom: 1px solid #eee !important;
}
/* 列宽合计 ≤ 710px（左栏 750 - pad20 两侧 40）：
   排名 44 / 类别 84 / 书名 自适应 / 章节 180 / 作者 84 / 字数 62 */
.updateTable th.rank,    .updateTable td.rank    { width: 44px !important; text-align: center !important; }
.updateTable th.style,   .updateTable td.style   { width: 84px !important; }
.updateTable th.chapter, .updateTable td.chapter { width: 180px !important; }
.updateTable th.author,  .updateTable td.author  { width: 84px !important; }
.updateTable th.word,    .updateTable td.word    { width: 62px !important; }
.updateTable td.style a { color: #999 !important; }
.updateTable td.name a  { color: #262626 !important; }
.updateTable td.name a:hover { color: #ed4259 !important; }
.updateTable td.chapter a,
.updateTable td.author a { color: #666 !important; }
.updateTable td.word { color: #999 !important; }

/* 排名徽章：1 红 / 2 绛 / 3 铜 / 4-10 灰底 / 11+ 纯数字 */
.updateTable td.rank i {
    display: inline-block !important;
    width: 20px !important;
    height: 20px !important;
    line-height: 20px !important;
    border-radius: 2px !important;
    font-size: 12px !important;
    font-style: normal !important;
    text-align: center !important;
    color: #999 !important;
    background: transparent !important;
    font-weight: 400 !important;
}
/* 前三名：金 / 银 / 铜（区别于强调红的层级色，避免与品牌红混淆） */
.updateTable td.rank i.num1 { background: #d4a02c !important; color: #fff !important; font-weight: 700 !important; }
.updateTable td.rank i.num2 { background: #9aa4b0 !important; color: #fff !important; font-weight: 700 !important; }
.updateTable td.rank i.num3 { background: #b8804f !important; color: #fff !important; font-weight: 700 !important; }
.updateTable td.rank i.num4,
.updateTable td.rank i.num5,
.updateTable td.rank i.num6,
.updateTable td.rank i.num7,
.updateTable td.rank i.num8,
.updateTable td.rank i.num9,
.updateTable td.rank i.num10 { background: #eee !important; color: #666 !important; }

/* 右侧榜单 Tab：起点是贴紧的横向下划线 Tab，不是松散竖排 */
.rightList2 ul {
    display: flex !important;
    flex-wrap: wrap !important;
    border-bottom: 1px solid #eee !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
}
.rightList2 ul li {
    display: block !important;
    width: auto !important;
    height: auto !important;
    line-height: normal !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
    flex: 1 1 auto !important;
    text-align: center !important;
}
.rightList2 ul li a {
    display: block !important;
    padding: 10px 4px !important;
    margin: 0 !important;
    font-size: 13px !important;
    color: #666 !important;
    background: none !important;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    line-height: 20px !important;
    white-space: nowrap !important;
}
.rightList2 ul li a.on,
.rightList2 ul li a:hover {
    color: #ed4259 !important;
    border-bottom-color: #ed4259 !important;
    font-weight: 600 !important;
    background: none !important;
}
/* 右栏卡片：贴紧左表顶部，避免出现半屏空白 */
.channelRankingContent .wrap_right .wrap_right_cont {
    height: auto !important;
    min-height: 0 !important;
    padding-bottom: 4px !important;
    margin-bottom: 0 !important;
}
.channelRankingContent .wrap_right .wrap_inner {
    padding: 0 0 4px !important;
}
.channelRankingContent .wrap_right .title {
    padding: 0 16px !important;
    height: 44px !important;
    line-height: 44px !important;
    border-bottom: 1px solid #eee !important;
}
.channelRankingContent .wrap_right .title h3 {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #262626 !important;
    line-height: 44px !important;
    height: 44px !important;
}
.channelRankingContent .wrap_right .rightList2 {
    padding: 0 16px !important;
}

/* ================= Q3 详情页信息组织 ================= */

/* 头部：封面 168x224 + 标题 22 加粗
   ⚠ DOM 真实结构是关键：.book_info 是 .bookCover 的【子元素】，不是兄弟节点。
   即 .channelBookInfo > .bookCover > (a.book_cover + .book_info)
   所以必须让 .bookCover 自己成为横向 flex 容器，信息区才会排到封面右侧。
   （早期只给 .channelBookInfo 设 flex 无效，.book_info 仍被锁在 168px 封面宽度里） */
.channelWrap.channelBookInfo {
    display: block !important;
    padding: 20px 24px !important;
    background: #fff !important;
}
.channelWrap.channelBookInfo .bookCover {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    gap: 22px !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    float: none !important;
    box-sizing: border-box !important;
}
.channelWrap.channelBookInfo .bookCover > a.book_cover {
    flex: 0 0 168px !important;
    width: 168px !important;
    height: 224px !important;
}
/* 封面：原规则有 box-shadow inset（#f9f2e9 内阴影）+ 200px 定宽 + overflow:hidden，
   视觉上表现为封面右侧一道白块，这里全部清掉，改成起点式淡投影 */
.channelWrap.channelBookInfo .bookCover .book_cover,
.channelWrap.channelBookInfo .bookCover > a.book_cover {
    width: 168px !important;
    height: 224px !important;
    margin: 0 !important;
    float: none !important;
    position: relative !important;
    overflow: hidden !important;
    display: block !important;
    border: 0 !important;
    background: none !important;
    box-shadow: none !important;
    border-radius: 2px !important;
}
.channelWrap.channelBookInfo .bookCover img,
.channelWrap.channelBookInfo img.cover,
.channelWrap.channelBookInfo .bookCover .cover {
    width: 168px !important;
    height: 224px !important;
    object-fit: cover !important;
    border: 0 !important;
    background: none !important;
    border-radius: 2px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .12) !important;
    display: block !important;
    transform: none !important;
}
.channelWrap.channelBookInfo .bookCover .cover:hover { transform: none !important; }
.channelWrap.channelBookInfo .book_info {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: none !important;
    float: none !important;
}
.channelWrap.channelBookInfo .tit h1 {
    font-size: 22px !important;
    font-weight: 700 !important;
    color: #222 !important;
    line-height: 1.3 !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    display: inline-block !important;
}
.channelWrap.channelBookInfo .tit a.author {
    color: #ed4259 !important;
    font-size: 14px !important;
    margin-left: 10px !important;
}
/* 元信息：必须一行横排 —— 原 .list li 被章节列表的 50% 规则串扰成竖排 */
.channelWrap.channelBookInfo .book_info ul.list {
    display: block !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
    list-style: none !important;
    height: auto !important;
    overflow: visible !important;
}
.channelWrap.channelBookInfo .book_info ul.list li {
    width: auto !important;
    max-width: none !important;
    float: left !important;
    display: inline-block !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
    height: 24px !important;
    line-height: 24px !important;
    white-space: nowrap !important;
    list-style: none !important;
}
/* 用 margin 做间距（gap 在这个老旧 float 布局里不可靠） */
.channelWrap.channelBookInfo .book_info ul.list li + li {
    margin-left: 20px !important;
}
.channelWrap.channelBookInfo .book_info ul.list li .item {
    font-size: 13px !important;
    color: #999 !important;
    line-height: 24px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-block !important;
    white-space: nowrap !important;
    float: none !important;
    width: auto !important;
}
.channelWrap.channelBookInfo .book_info ul.list li em {
    font-size: 13px !important;
    color: #666 !important;
    font-style: normal !important;
    line-height: 24px !important;
    display: inline !important;
    float: none !important;
}
/* 清浮动，避免后续简介被元信息顶偏 */
.channelWrap.channelBookInfo .book_info ul.list::after {
    content: "" !important;
    display: table !important;
    clear: both !important;
}

/* 简介 14/1.75 限 3 行 */
.channelWrap.channelBookInfo .intro_txt {
    font-size: 14px !important;
    line-height: 1.75 !important;
    color: #666 !important;
    margin: 12px 0 18px !important;
    max-height: 74px !important;
    overflow: hidden !important;
    width: 100% !important;
}
.channelWrap.channelBookInfo .intro_txt p {
    font-size: 14px !important;
    line-height: 1.75 !important;
    color: #666 !important;
    margin: 0 !important;
    text-indent: 0 !important;
}
/* 主按钮胶囊 */
.channelWrap.channelBookInfo .btns a.btn_ora {
    background: #ed4259 !important;
    border: 1px solid #ed4259 !important;
    color: #fff !important;
    height: 40px !important;
    line-height: 40px !important;
    padding: 0 36px !important;
    border-radius: 20px !important;
    font-size: 15px !important;
    display: inline-block !important;
    margin-right: 12px !important;
    text-align: center !important;
}
.channelWrap.channelBookInfo .btns a.btn_ora_white {
    height: 40px !important;
    line-height: 38px !important;
    padding: 0 28px !important;
    border: 1px solid #ed4259 !important;
    color: #ed4259 !important;
    background: transparent !important;
    border-radius: 20px !important;
    font-size: 15px !important;
    display: inline-block !important;
    text-align: center !important;
}

/* 章节目录：两列 + 42px 行高（起点目录是双列紧凑排布） */
.bookChapter .list {
    padding: 0 !important;
    background: #fff !important;
}
/* 章节列表的样式统一在文件末尾的「章节条目」区块定义，
   此处不再重复声明，避免同一选择器多处定义互相覆盖。 */
/* 章节预览行（#lastBookContent）：模板里是「取正文前 42 字」的预览容器，
   起点详情页「最新章节」列表只有「章节名 + 更新时间」，没有正文预览。
   早前补丁把它点亮成灰底块，但父 li 行高仅 40px 且 overflow:hidden，
   5 个 <p> 被压扁裁切，视觉上是明显破绽 —— 这里让它回到隐藏状态。 */
.bookChapter .list li.zj_yl {
    display: none !important;
}

/* 同类推荐：左小封面 + 右书名/简介，两列不重叠。
   实测 DOM：li > div.book_intro > (div.cover > a > img) + (div.dec)
   上一版把 flex 写在 li 上、却给 img 设 flex:none —— img 的父级是 .cover，
   根本没参与 li 的 flex，仍受 .cover 自身 float 支配，于是封面压到文字上。
   现在把 flex 下沉到 .book_intro，.cover / .dec 才是真正的两个 flex 项。 */
.tj_bar {
    padding: 16px !important;
    background: #fff !important;
}
.tj_bar ul li {
    display: block !important;
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 10px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid #f5f5f5 !important;
    list-style: none !important;
    overflow: hidden !important;
}
.tj_bar ul li:last-child { border-bottom: 0 !important; }

.tj_bar .book_intro {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    gap: 10px !important;
    width: 100% !important;
    float: none !important;
    overflow: visible !important;
}

/* 封面容器：固定 48x64，不参与伸缩 */
.tj_bar .cover {
    flex: 0 0 48px !important;
    width: 48px !important;
    height: 64px !important;
    float: none !important;
    margin: 0 !important;
    overflow: hidden !important;
    border-radius: 2px !important;
}
.tj_bar .cover a { display: block !important; width: 48px !important; height: 64px !important; }
.tj_bar .cover img,
.tj_bar ul li img {
    display: block !important;
    width: 48px !important;
    height: 64px !important;
    float: none !important;
    object-fit: cover !important;
    border-radius: 2px !important;
}

/* 文字区：占剩余宽度，书名与简介各自截断，绝不满溢 */
.tj_bar .dec {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    float: none !important;
    overflow: hidden !important;
}
.tj_bar .dec .book_name {
    display: block !important;
    font-size: 14px !important;
    color: #333 !important;
    line-height: 22px !important;
    margin: 0 0 4px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
.tj_bar .dec .book_name:hover { color: #ed4259 !important; }
.tj_bar .dec .txt {
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    font-size: 12px !important;
    color: #999 !important;
    line-height: 19px !important;
    max-height: 57px !important;
    margin: 0 !important;
}

/* ================= Q4 评论区空态收紧（Grok：0 条评论时模块 ≤160px） ================= */

/* 空态：原图+文字撑到 400px，压到一行 120px */
.bookComment .no_comment {
    height: 120px !important;
    min-height: 0 !important;
    padding: 22px 0 !important;
    margin: 0 !important;
    text-align: center !important;
    background: #fafafa !important;
    border: 1px dashed #e6e6e6 !important;
    border-radius: 4px !important;
    box-sizing: border-box !important;
}
.bookComment .no_comment img {
    display: none !important; /* 去掉大插画，起点空态是纯文字 */
}
.bookComment .no_comment span,
.bookComment .no_comment .block {
    display: block !important;
    font-size: 13px !important;
    color: #a6a6a6 !important;
    line-height: 24px !important;
}
.bookComment .no_comment span::after {
    content: "，来说两句吧" !important;
}

/* 输入框区：起点是窄条 + 右下角发表按钮 */
.bookComment .reply_bar {
    padding: 10px 0 0 !important;
    border: 0 !important;
    background: none !important;
    height: auto !important;
    overflow: visible !important;
}
.bookComment .reply_bar .tit {
    height: 26px !important;
    line-height: 26px !important;
    border-bottom: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}
.bookComment .reply_bar textarea.replay_text {
    width: 100% !important;
    height: 64px !important;
    min-height: 64px !important;
    max-height: 64px !important;
    padding: 8px 12px !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
    color: #333 !important;
    border: 1px solid #e6e6e6 !important;
    border-radius: 4px !important;
    background: #fff !important;
    box-sizing: border-box !important;
    resize: none !important;
    outline: none !important;
    margin: 0 !important;
    display: block !important;
}
.bookComment .reply_bar textarea.replay_text:focus {
    border-color: #ed4259 !important;
}
.bookComment .reply_bar .reply_btn {
    height: 40px !important;
    line-height: 40px !important;
    padding: 0 !important;
    margin: 0 !important;
}
.bookComment .reply_bar .reply_btn .btn_ora {
    background: #ed4259 !important;
    border: 1px solid #ed4259 !important;
    color: #fff !important;
    height: 32px !important;
    line-height: 30px !important;
    padding: 0 24px !important;
    border-radius: 16px !important;
    font-size: 13px !important;
    display: inline-block !important;
    text-align: center !important;
}

/* 评论区外层：去掉过大的下内边距，模块总高压到 160px 附近 */
.bookComment {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}
.bookComment .book_tit {
    padding-bottom: 10px !important;
    margin-bottom: 10px !important;
}
/* 外层 pad20 也收紧，避免评论模块被撑高 */
.channelBookContent .pad20 {
    padding: 14px 20px 16px !important;
    box-sizing: border-box !important;
}

/* ================= 橙色彻底清除（补漏：.orange 类与 a.red） ================= */

/* base.css:88 `.orange{color:#f60}`、public.css:1732 `.red{color:#f60}` —— 起点主色统一 */
.orange,
a.orange,
a.orange:visited,
.red,
a.red {
    color: #ed4259 !important;
}
i.vip,
i.vip_b,
.vip_tag {
    background: #ed4259 !important; /* 原 #fe8034 橙 */
}
.btn_red1,
.btn_red1:hover {
    background: #ed4259 !important; /* 原 #fc2525 */
    border-color: #ed4259 !important;
}
/* 榜单/详情页里可能复活的等级色阶（book.css:222-238） */
.user_level8 { background: #d9a06b !important; }
.user_level9 { background: #c98a52 !important; }
.user_level10 { background: #b87333 !important; }

/* ================= 旧红 #d43c33 残留精准兜底（共 25 处，分属 6 个 CSS 文件） =================
   说明：不改原始 CSS 文件，全部在本覆盖层里覆盖，保证可回滚。
   对应关系：#d43c33（旧模板红）→ #ed4259（起点主色） */

/* main.css:59 .scSmallImg li.on 外框 */
.scSmallImg li.on {
    border: 2px solid #ed4259 !important;
}
/* main.css:115 热门文章标题前缀 */
.hot_articles span.tit {
    color: #ed4259 !important;
}
/* main.css:141 热门通告 */
.hot_articles .hot_notice,
.hot_articles dd {
    color: #ed4259 !important;
}
/* main.css:293 右栏榜单第 1 名徽章 */
.rightList li.num1 i,
.rankTable .rank .num1 {
    background-color: #ed4259 !important;
}
/* main.css:296/300 第 2/3 名徽章（原绿/蓝，统一到起点色阶） */
.rightList li.num2 i,
.rankTable .rank .num2 {
    background-color: #c45c6a !important;
}
.rightList li.num3 i,
.rankTable .rank .num3 {
    background-color: #d4a574 !important;
}
/* book.css:359-360 属性选择块（选中态） */
.on .propWrap,
.propWrap:hover {
    color: #ed4259 !important;
    border: 2px solid #ed4259 !important;
}
/* book.css:725 签约作者标签 */
.icon_qyzz {
    background: #ed4259 !important;
}
/* about.css:6 左侧栏选中项 */
.my_l li .on {
    border-left: 2px solid #ed4259 !important;
    background: #f8f8f8 !important;
}
/* read.css:579 阅读主题色选中圈（原 #d43c33） */
.read_style_1 .readTheme .white,
.read_style_2 .readTheme .green,
.read_style_3 .readTheme .pink,
.read_style_4 .readTheme .yellow,
.read_style_5 .readTheme .gray,
.read_style_6 .readTheme .night {
    border-color: #ed4259 !important;
}
/* user.css / public.css 里常见的红系补充 */
a.listred,
a.listred:hover {
    color: #ed4259 !important;
}
#menu li a:hover,
#menu li .selected {
    color: #ed4259 !important;
}
.panel-header,
.datagrid-header,
.pagination .active {
    border-color: #ed4259 !important;
}
.pagination .active,
.pagination a:hover {
    background: #ed4259 !important;
    color: #fff !important;
}

/* ================= 阅读设置面板（起点可调字号/主题） ================= */

/* 主题色块：圆点选中态用主色描边 + 微放大 */
.readTheme a {
    width: 30px !important;
    height: 30px !important;
    border-radius: 50% !important;
    border: 1px solid rgba(0, 0, 0, .12) !important;
    transition: transform .15s, box-shadow .15s !important;
}
.readTheme a:hover { transform: scale(1.08) !important; }
.readTheme a.current {
    box-shadow: 0 0 0 2px #ed4259 !important;
}
/* 字号/字体切换按钮 */
.setupList li {
    font-size: 14px !important;
    padding: 12px 0 !important;
    color: #666 !important;
    border-bottom: 1px solid #f2f2f2 !important;
}
.setupList li a,
.setBtn a {
    display: inline-block !important;
    min-width: 52px !important;
    height: 28px !important;
    line-height: 26px !important;
    margin: 0 6px !important;
    padding: 0 12px !important;
    font-size: 13px !important;
    color: #666 !important;
    text-align: center !important;
    border: 1px solid #e6e6e6 !important;
    border-radius: 4px !important;
    background: #fff !important;
    box-sizing: border-box !important;
}
.setupList li a.current,
.setBtn a.current,
.setupList li a:hover,
.setBtn a:hover {
    color: #ed4259 !important;
    border-color: #ed4259 !important;
    background: #fef4f5 !important;
}
/* 悬浮设置面板外框 */
.readPopup {
    border: 1px solid #e6e6e6 !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, .12) !important;
    border-radius: 6px !important;
    background: #fff !important;
}
.readPopup .popupTit {
    height: 40px !important;
    line-height: 40px !important;
    font-size: 14px !important;
    color: #262626 !important;
    border-bottom: 1px solid #f0f0f0 !important;
}

/* ================= 分类页（bookclass）响应式：修移动端 1020px 溢出 =================
   实测：tablet 834 / phone 390 / small 360 三档全部 sw=1020 溢出。
   根因：筛选条 .so_tag .list 是宽表格式横排，min-width 与内联宽度把容器顶破。 */

@media (max-width: 1100px) {
    /* 容器解除硬宽 */
    .channelWrap.classTable {
        width: 100% !important;
        min-width: 0 !important;
        padding: 12px !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }
    /* 筛选条：每组筛选折行，标题与选项分离 */
    .classTable .so_tag,
    .classTable .so_tag ul.list,
    .classTable .so_tag ul.list li {
        width: 100% !important;
        min-width: 0 !important;
        float: none !important;
        display: block !important;
        box-sizing: border-box !important;
        height: auto !important;
        overflow: visible !important;
    }
    .classTable .so_tag ul.list li {
        padding: 8px 0 !important;
        border-bottom: 1px solid #f2f2f2 !important;
        line-height: 2 !important;
    }
    /* 筛选项标题：单独一行，灰字小号 */
    .classTable .so_tag ul.list li > .tit,
    .classTable .so_tag ul.list li > span.tit {
        display: block !important;
        float: none !important;
        width: auto !important;
        font-size: 13px !important;
        color: #999 !important;
        line-height: 22px !important;
        margin: 0 0 2px !important;
    }
    /* 选项链接：自动折行，不横向撑破 */
    .classTable .so_tag ul.list li a {
        display: inline-block !important;
        float: none !important;
        margin: 2px 10px 2px 0 !important;
        padding: 0 !important;
        font-size: 13px !important;
        line-height: 24px !important;
        white-space: nowrap !important;
        color: #666 !important;
    }
    .classTable .so_tag ul.list li a.on,
    .classTable .so_tag ul.list li a:hover {
        color: #ed4259 !important;
        font-weight: 600 !important;
    }
    /* 作品列表表格：窄屏隐藏次要列，避免横向撑破 */
    .classTable .updateTable,
    .classTable .updateTable table {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        table-layout: fixed !important;
    }
    .classTable .updateTable th,
    .classTable .updateTable td {
        padding: 0 4px !important;
        font-size: 12px !important;
    }
    /* 窄屏只留：类别 / 书名 / 最新章节 / 字数 */
    .classTable .updateTable th.style,
    .classTable .updateTable td.style,
    .classTable .updateTable th.author,
    .classTable .updateTable td.author {
        display: none !important;
    }
    .classTable .updateTable th.chapter,
    .classTable .updateTable td.chapter {
        width: auto !important;
    }
    .classTable .updateTable th.word,
    .classTable .updateTable td.word {
        width: 64px !important;
    }
    /* 通栏容器防溢出兜底 */
    .main.box_center,
    .box_center {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        padding: 0 8px !important;
        box-sizing: border-box !important;
    }
}

@media (max-width: 520px) {
    /* 极窄屏再收一层：章节列隐藏，只留书名 + 字数 */
    .classTable .updateTable th.chapter,
    .classTable .updateTable td.chapter {
        display: none !important;
    }
    .classTable .so_tag ul.list li {
        padding: 6px 0 !important;
    }
}

/* ================= 【根因】全站移动端 1020px 溢出 =================
   实测定位：base.css:818 —— `.header, .footer { min-width: 1020px }`
   header/footer 出现在所有页面，是把这个文档撑到 1020px 的总根源。
   之前几轮响应式只改了 .box_center，漏了这一条，所以分类页始终溢出。
   注意：本轮同时修正了选择器 —— 分类页容器是 `channelWrap classTable cf`。 */

@media (max-width: 1100px) {
    /* 总根源：解除 header/footer 硬宽 */
    .header,
    .footer {
        min-width: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    /* header 内部各层同步解除 */
    .header .topMain,
    .header .box_center,
    .header .topBar,
    .header .mainNav,
    .footer .box_center,
    .footer .copyright,
    .topMain,
    .mainNav {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    /* body/html 兜底：任何残留硬宽都不许横向撑开 */
    html,
    body {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
    }
}

/* ================= 详情页移动端：改上下堆叠（修信息被挤扁） =================
   实测问题：桌面端 flex 横向排列（封面 168px + gap 22px）在 390px 屏上
   把信息区压到只剩 200px，导致
     · 元信息「状态：已」被裁断
     · 按钮文字竖排：「点击阅读」变「点/阅」，「加入书架」变「加/入/书/架」
   起点移动端是紧凑两栏或上下堆叠。这里采用更稳的方案：
   封面与信息上下堆叠，信息区占满整宽，按钮横向并排。 */

@media (max-width: 720px) {
    .channelWrap.channelBookInfo {
        padding: 14px !important;
    }
    .channelWrap.channelBookInfo .bookCover {
        display: block !important;      /* 解除横向 flex，改块级堆叠 */
        gap: 0 !important;
        width: 100% !important;
    }
    /* 封面：移动端缩到 104x139，水平居中 */
    .channelWrap.channelBookInfo .bookCover > a.book_cover,
    .channelWrap.channelBookInfo .bookCover .book_cover {
        flex: none !important;
        width: 104px !important;
        height: 139px !important;
        margin: 0 auto 14px !important;
        float: none !important;
        display: block !important;
    }
    .channelWrap.channelBookInfo .bookCover img,
    .channelWrap.channelBookInfo img.cover,
    .channelWrap.channelBookInfo .bookCover .cover {
        width: 104px !important;
        height: 139px !important;
    }
    /* 信息区：占满整宽 */
    .channelWrap.channelBookInfo .book_info {
        width: 100% !important;
        max-width: 100% !important;
    }
    /* 标题 18px（原 22px 在窄屏偏大） */
    .channelWrap.channelBookInfo .tit h1 {
        font-size: 18px !important;
        margin: 0 0 6px !important;
    }
    /* 元信息：允许折行，不再裁断 */
    .channelWrap.channelBookInfo .book_info ul.list li {
        height: auto !important;
        line-height: 22px !important;
        white-space: normal !important;
    }
    .channelWrap.channelBookInfo .book_info ul.list li + li {
        margin-left: 14px !important;
    }
    /* 简介 13px，限 3 行 */
    .channelWrap.channelBookInfo .intro_txt,
    .channelWrap.channelBookInfo .intro_txt p {
        font-size: 13px !important;
        line-height: 1.7 !important;
        max-height: 68px !important;
    }
    /* 按钮：横向并排，禁止竖排（关键修复） */
    .channelWrap.channelBookInfo .btns {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        gap: 10px !important;
        width: 100% !important;
    }
    .channelWrap.channelBookInfo .btns a.btn_ora,
    .channelWrap.channelBookInfo .btns a.btn_ora_white {
        flex: 1 1 0 !important;
        width: auto !important;
        min-width: 0 !important;
        height: 38px !important;
        line-height: 36px !important;
        padding: 0 !important;
        margin: 0 !important;
        font-size: 13px !important;
        border-radius: 19px !important;
        white-space: nowrap !important;
        overflow: visible !important;
        writing-mode: horizontal-tb !important;   /* 强制横排，禁止竖排 */
        letter-spacing: 0 !important;
    }
    .channelWrap.channelBookInfo .btns span {
        flex: 1 1 0 !important;
        min-width: 0 !important;
        display: block !important;
    }
    .channelWrap.channelBookInfo .btns span a {
        width: 100% !important;
    }
}

/* ================= 分类页移动端表头：禁止竖排 ================= */

@media (max-width: 1100px) {
    .classTable .updateTable th,
    .classTable .updateTable td {
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        height: 40px !important;
        line-height: 40px !important;
        writing-mode: horizontal-tb !important;
    }
    .classTable .updateTable th {
        font-size: 12px !important;
        letter-spacing: 0 !important;
    }
    .classTable .updateTable th.rank,
    .classTable .updateTable td.rank {
        width: 34px !important;
        text-align: center !important;
    }
    .classTable .updateTable th.name,
    .classTable .updateTable td.name {
        width: auto !important;
    }
}

/* ===== miaowu qidian-override end ===== */

/* ===== miaowu mobile-fix begin ===== */
/* ============================================================
   全站移动端响应式补丁
   ------------------------------------------------------------
   站点：喵呜中文网
   背景：站点此前只在 PC 宽度（1440px）下打磨，移动端未适配。
        实测 iPhone 视口 390px 下的横向溢出元素数量：
          榜单页 223 个（.wrap_left 940px 硬宽）
          阅读页 2949 个（.readMain / .readWrap 900px 硬宽）
          首页/书城 3~7 个（导航项与少量链接）
        起点是完整响应式的，移动端不能横向溢出。

   断点策略（与主流中文小说站一致）：
     >= 1100px   PC 三栏：左栏 + 主内容 + 右侧栏
     <  1100px   平板：右栏下移，左栏全宽
     <   768px   手机：全部单列，导航横滑，字号与间距收紧

   说明：本补丁必须写在最后加载的样式表（book.css）末尾，
        以压过 .channelRankingContent .wrap_left 这类高优先级硬宽规则。
   ============================================================ */

/* ---------- 平板：右栏下移，主栏全宽 ---------- */
@media screen and (max-width: 1100px) {

    .channelRankingContent .wrap_left,
    .channelRankingContent .wrap_right,
    .wrap_left,
    .wrap_right {
        width: 100% !important;
        float: none !important;
        box-sizing: border-box !important;
    }

    .channelRankingContent .wrap_right {
        margin-top: 16px !important;
    }

    .box_center {
        width: 100% !important;
        padding: 0 12px !important;
        box-sizing: border-box !important;
    }
}

/* ---------- 手机：单列铺满，收紧留白 ---------- */
@media screen and (max-width: 768px) {

    /* ===== 1. 全局容器与根元素：杜绝横向溢出 ===== */
    html,
    body {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow-x: hidden !important;
    }

    .box_center,
    .main,
    .main.box_center,
    .wrap_inner,
    .wrap_bg,
    .channelWrap,
    .channelRankingContent,
    .channelClassContent {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
        box-sizing: border-box !important;
    }

    /* ===== 2. 阅读页：正文满宽、字号适配拇指阅读 ===== */
    .readMain,
    .readWrap,
    .read_menu,
    .bookNav,
    #readcontent,
    #readcontent .textbox,
    #readcontent .textbox.cf {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        float: none !important;
    }

    #readcontent .textbox.cf {
        margin: 10px auto 24px !important;
        padding: 22px 16px 40px !important;
        border-radius: 0 !important;
    }

    /* 正文排版：手机字号略大、行距略紧，接近起点 App 观感 */
    #readcontent .textbox.cf p,
    #readcontent .textbox.cf div {
        font-size: 17px !important;
        line-height: 1.85 !important;
    }

    /* 阅读页工具条：横向可滑，不换行挤成多行 */
    .read_menu,
    .bookNav {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        white-space: nowrap !important;
    }

    .read_menu li,
    .bookNav a {
        flex: 0 0 auto !important;
    }

    /* ===== 3. 书城 / 榜单：表格转纵向卡片 ===== */
    .updateTable,
    .updateTable table,
    .updateTable tbody,
    .updateTable tr {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* 表头在手机上无意义，隐藏后靠字段前缀说明语义 */
    .updateTable thead {
        display: none !important;
    }

    .updateTable tbody tr {
        display: block !important;
        padding: 12px !important;
        border-bottom: 1px solid #f2f2f2 !important;
    }

    .updateTable tbody td {
        display: block !important;
        float: none !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 0 4px !important;
        text-align: left !important;
        border: 0 !important;
        white-space: normal !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        box-sizing: border-box !important;
    }

    /* 书城卡片的类别色块：手机上缩小，不再绝对定位 */
    .channelWrap.channelClassContent .updateTable tbody tr {
        padding: 12px !important;
        min-height: 0 !important;
    }

    .channelWrap.channelClassContent .updateTable tbody td.rank,
    .channelWrap.channelClassContent .updateTable tbody td.style {
        position: static !important;
        display: inline-block !important;
        vertical-align: middle !important;
        margin-right: 10px !important;
    }

    .channelWrap.channelClassContent .updateTable tbody td.rank {
        width: auto !important;
    }

    .channelWrap.channelClassContent .updateTable tbody td.style {
        width: 48px !important;
        height: 64px !important;
        top: auto !important;
        left: auto !important;
    }

    /* ===== 4. 顶栏：logo + 搜索框竖排，隐藏次要入口 ===== */
    .topMain,
    .header .topMain {
        height: auto !important;
        padding: 10px 0 !important;
    }

    .topMain .box_center {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
    }

    .topMain .logo,
    .header .topMain .logo {
        padding: 0 12px 0 0 !important;
        max-width: 140px !important;
    }

    .topMain .logo img {
        height: 34px !important;
    }

    .topMain .searchBar,
    .header .topMain .searchBar {
        display: block !important;
        width: 100% !important;
        margin: 8px 0 0 !important;
        order: 3 !important;
    }

    .topMain .searchBar .search,
    .topMain .searchBar .s_int {
        width: 100% !important;
    }

    /* 我的书架 / 登录注册：右上角保留但缩小 */
    .topMain .bookShelf,
    .header .topMain .bookShelf {
        margin: 0 !important;
        padding: 0 !important;
        height: 34px !important;
    }

    .topMain .bookShelf .sj_link,
    .topMain .bookShelf .user_link,
    .topMain .bookShelf .user_link a {
        height: 34px !important;
        line-height: 34px !important;
        font-size: 13px !important;
    }

    /* 顶部浅色工具条：手机上隐藏（起点 App 同样不展示） */
    .topBar,
    .header .topBar {
        display: none !important;
    }

    /* ===== 5. 主导航：横滑，单行不换行 ===== */
    .mainNav,
    .nav {
        height: auto !important;
        overflow: hidden !important;
    }

    .mainNav .box_center,
    .nav .wrap {
        display: block !important;
        width: 100% !important;
        padding: 0 !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .mainNav .nav,
    .nav ul {
        display: flex !important;
        flex-wrap: nowrap !important;
        width: max-content !important;
        min-width: 100% !important;
    }

    .mainNav .nav li,
    .nav li {
        flex: 0 0 auto !important;
        float: none !important;
    }

    .mainNav .nav li a,
    .nav a {
        padding: 0 14px !important;
        height: 42px !important;
        line-height: 42px !important;
        font-size: 14px !important;
        white-space: nowrap !important;
    }

    /* ===== 6. 书城筛选条：手机上折叠为两行内 ---------- */
    .channelWrap.classTable .so_tag .list li {
        min-height: 0 !important;
        margin-bottom: 0 !important;
    }

    .channelWrap.classTable .so_tag .list li .tit {
        width: 62px !important;
        font-size: 12px !important;
    }

    .channelWrap.classTable .so_tag .list li a {
        height: 22px !important;
        line-height: 22px !important;
        padding: 0 8px !important;
        font-size: 12px !important;
        margin: 2px 4px 2px 0 !important;
    }

    /* ===== 7. 详情页：封面与信息上下堆叠 ===== */
    .bookCover,
    .channelBookInfo {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .bookCover {
        padding: 12px !important;
    }

    .book_info {
        width: 100% !important;
        margin-left: 0 !important;
        padding-left: 0 !important;
        overflow: hidden !important;
    }

    /* ===== 8. 页脚：横排链接改换行，字号收紧 ===== */
    .footer {
        padding: 16px 12px !important;
        font-size: 12px !important;
    }

    .footer .box_center {
        padding: 0 !important;
    }

    .copyright,
    .footer .copyright {
        line-height: 1.9 !important;
        word-break: break-all !important;
    }

    /* ===== 9. 通用兜底：任何残留硬宽一律解除 ===== */
    img,
    table {
        max-width: 100% !important;
        height: auto !important;
    }

    .fl,
    .fr {
        float: none !important;
    }
}

/* ---------- 超小屏（<=360px）：进一步收紧 ---------- */
@media screen and (max-width: 360px) {
    .mainNav .nav li a,
    .nav a {
        padding: 0 10px !important;
        font-size: 13px !important;
    }

    #readcontent .textbox.cf p,
    #readcontent .textbox.cf div {
        font-size: 16px !important;
    }
}

/* ===== miaowu mobile-fix end ===== */

/* ===== miaowu mobile-topnav-fix begin ===== */
/* ============================================================
   移动端顶栏与导航 —— 精确修正
   ------------------------------------------------------------
   上一版补丁遗留的两个问题（实测 iPhone 390px）：

   1) 搜索框被隐藏
      成因：base.css 里早前为防顶栏溢出写过
            @media (max-width: 900px) { .searchBar { display:none } }
      但起点手机端是保留搜索框的（置于 logo 下方一行），
      隐藏后完全不像起点。改为显示并铺满一行。

   2) 主导航换行而非横滑
      成因：后端导航结构是 .mainNav > .box_center > ul.nav > li，
            而通用规则里的 .box_center 被赋了 padding 与 width:100%，
            与横滑容器的 padding 处理冲突，导致 ul.nav 的
            width:max-content 未按预期撑开，li 折行。
      改为针对 .mainNav 单独用更高优先级规则处理，
      并用内层滚动容器隔离 padding 问题。
   ============================================================ */

@media screen and (max-width: 900px) {

    /* ---------- 1. 恢复搜索框，铺满一行 ---------- */
    .topMain .searchBar,
    .header .topMain .searchBar,
    .topMain .searchBar.fl {
        display: block !important;
        float: none !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 10px 0 0 0 !important;
        padding: 0 !important;
        order: 9 !important;
        box-sizing: border-box !important;
    }

    .topMain .searchBar .search,
    .topMain .searchBar .search.cf {
        width: 100% !important;
        height: 38px !important;
        box-sizing: border-box !important;
    }

    .topMain .searchBar .s_int,
    .header .topMain .searchBar .s_int {
        width: calc(100% - 64px) !important;
        height: 38px !important;
        line-height: 38px !important;
        padding: 0 12px !important;
        border-radius: 19px 0 0 19px !important;
        font-size: 13px !important;
        box-sizing: border-box !important;
    }

    .topMain .searchBar .search_btn,
    .header .topMain .searchBar .search_btn {
        width: 64px !important;
        height: 38px !important;
        line-height: 38px !important;
        border-radius: 0 19px 19px 0 !important;
    }

    .topMain .searchBar .search_btn .icon {
        margin-top: 10px !important;
    }
}

@media screen and (max-width: 768px) {

    /* ---------- 2. 主导航：单行横滑，绝不换行 ---------- */

    /* 外层：允许横向滚动，去掉左右内边距（滚动容器内 padding 会造成裁切） */
    .mainNav {
        height: 44px !important;
        overflow: hidden !important;
        background: #fff !important;
        border-bottom: 1px solid #ededed !important;
    }

    .mainNav > .box_center,
    .mainNav .box_center.cf {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        height: 44px !important;
        padding: 0 !important;
        margin: 0 !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        scrollbar-width: none !important;
    }

    .mainNav > .box_center::-webkit-scrollbar,
    .mainNav .box_center.cf::-webkit-scrollbar {
        display: none !important;
    }

    /* 内层 ul：按内容宽度撑开，强制不换行 */
    .mainNav ul.nav,
    .mainNav ul#navModule,
    .mainNav .nav {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        width: max-content !important;
        min-width: 100% !important;
        height: 44px !important;
        margin: 0 !important;
        padding: 0 !important;
        list-style: none !important;
    }

    /* li 不收缩 */
    .mainNav ul.nav > li,
    .mainNav ul#navModule > li {
        display: block !important;
        flex: 0 0 auto !important;
        float: none !important;
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* 导航项：紧凑，单行不折 */
    .mainNav ul.nav > li > a,
    .mainNav ul#navModule > li > a {
        display: block !important;
        height: 44px !important;
        line-height: 44px !important;
        padding: 0 15px !important;
        font-size: 14px !important;
        color: #333 !important;
        white-space: nowrap !important;
        text-decoration: none !important;
        background: transparent !important;
        border-bottom: 2px solid transparent !important;
        box-sizing: border-box !important;
    }

    .mainNav ul.nav > li.on > a,
    .mainNav ul#navModule > li.on > a {
        color: #ed4259 !important;
        font-weight: 700 !important;
        border-bottom: 2px solid #ed4259 !important;
    }

    /* ---------- 3. 书城筛选条：两个「不限」并排的冗余 ---------- */
    /* 「作品分类」行里，男频/女频切换组各带一个「不限」，
       导致同一行出现两个「不限」。手机上空间紧张，隐藏后者。 */
    .channelWrap.classTable .so_tag .list li#idGirl .so_girl,
    .channelWrap.classTable .so_tag .list li#idGirl .so_boy {
        display: inline !important;
    }

    .channelWrap.classTable .so_tag .list li.so_class a[href*="javascript"]:first-of-type {
        opacity: .55 !important;
    }

    /* ---------- 4. 书城卡片：作者与字数分行对齐 ---------- */
    .channelWrap.channelClassContent .updateTable tbody td.author,
    .channelWrap.channelClassContent .updateTable tbody td.word {
        display: block !important;
        margin-left: 0 !important;
        font-size: 13px !important;
        line-height: 20px !important;
    }

    .channelWrap.channelClassContent .updateTable tbody td.word {
        margin-left: 0 !important;
    }
}

/* ===== miaowu mobile-topnav-fix end ===== */

/* ===== miaowu readpage-qidian begin ===== */
/* ============================================================
   阅读页 —— 对齐起点网页版
   ------------------------------------------------------------
   站点：喵呜中文网

   【重要发现】本模板 DOM 本身就已经是起点网页版的结构，
   只是样式把它压坏了：
     .read_menu .menu_left      左侧竖排圆按钮（目录/书页/加书架/评论）
     .read_menu .menu_right     右侧（打赏/推荐/设置）
     .readPopup.setupBox        设置面板（阅读主题 白/绿/粉/黄 + 字体大小）
     .bookNav                   面包屑
     .book_title + .textinfo    章节标题 + 信息行
     章节末尾 上一章 / 目录 / 下一章
     .screen_toolbar            底部固定工具条
   因此本补丁的原则是「修好并点亮原生结构」，而不是另造一套 UI ——
   这是对起点形态最忠实的还原方式。

   【图标】../images/icon_readpage.png（365×200 雪碧图，实测内容完好）
     行1 y=20：20书本(目录) 80列表(书页) 145齿轮(设置) 210书签(加书架) 270书签(已藏) 330手机
     行2 y=80：20礼物(打赏) 90点赞(推荐) 150评论 215← 275→ 340↑
     原样式把文字 line-height 写成 90px，导致文字被推出 60px 按钮外被裁切。
   ============================================================ */

/* ============ 1. 左侧 / 右侧竖排工具条 ============ */

.read_menu {
    width: 52px !important;
}

/* ---------- 左侧工具条：定位在内容区（1200px）之外的左侧留白中 ----------
   容器 1200px 居中，视口 1440 时左右各留 120px，按钮宽 52px。
   要让按钮右边界正好贴住内容区左边界（不留重叠也不留大空隙）：
       按钮左边界 = 50% - 600px(半个内容区) - 52px(按钮宽) = 50% - 652px
   用 max() 兜底：窄屏时至少贴住视口左边缘 8px，避免跑到屏幕外。 */
.menu_left {
    position: fixed !important;
    top: 130px !important;
    left: max(8px, calc(50% - 652px)) !important;
    right: auto !important;
    margin-left: 0 !important;
    width: 52px !important;
    z-index: 60 !important;
}

/* ---------- 右侧工具条：对称放到内容区右侧留白 ----------
   按钮左边界 = 50% + 600px(半个内容区) + 8px(间距) = 50% + 608px */
.menu_right {
    position: fixed !important;
    top: 380px !important;
    left: calc(50% + 608px) !important;
    right: auto !important;
    margin-right: 0 !important;
    width: 52px !important;
    display: block !important;
    z-index: 60 !important;
}

.read_menu ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.read_menu li {
    width: 52px !important;
    height: 52px !important;
    box-sizing: border-box !important;
    margin: 0 0 6px 0 !important;
    padding: 0 !important;
    background: #fff !important;
    border: 1px solid #eee !important;
    border-radius: 50% !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .06) !important;
    overflow: hidden !important;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease !important;
    box-sizing: border-box !important;
}

.read_menu li:hover {
    border-color: #ed4259 !important;
    box-shadow: 0 2px 10px rgba(237, 66, 89, .18) !important;
    transform: translateY(-1px) !important;
}

/* 按钮本体：承载雪碧图图标 */
.read_menu li a {
    display: block !important;
    width: 52px !important;
    height: 52px !important;
    box-sizing: border-box !important;
    opacity: 1 !important;
    background-image: url(../images/icon_readpage.png) !important;
    background-repeat: no-repeat !important;
    background-size: 365px 200px !important;
    background-color: transparent !important;
    text-decoration: none !important;
    position: relative !important;
}

/* 文字：还原为按钮内的小字标签（原来被 line-height:90px 推出按钮外） */
.read_menu li a b {
    display: block !important;
    width: 52px !important;
    height: auto !important;
    line-height: 1 !important;
    padding: 0 !important;
    margin: 0 !important;
    text-align: center !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    color: #999 !important;
    position: absolute !important;
    left: 0 !important;
    bottom: 6px !important;
    height: auto !important;
    line-height: 1 !important;
}

.read_menu li a:hover b {
    color: #ed4259 !important;
}

/* 图标定位：坐标由 PIL 扫描 icon_readpage.png（365x200）实测得出。
   公式：background-position = -(图标左上角 - 居中偏移)，按钮 52x52。

   注意：DOM 里「设置」按钮的类名是 ico_setup（不是 ico_setting），
   之前写错导致齿轮回落到 read.css 的旧坐标而错位。

   行1（y=20~41，图标 22x22）：
     书本(18,20) 列表(86,20) 齿轮(142,20) 书签(204,20) 已藏(265,20) 手机(328,20)
   行2（y=76~101，图标 26x26）：
     礼物(19,76) 点赞(81,76) 评论(142,76) ←(206,76) →(267,76) ↑(323,76) */
.read_menu li a.ico_catalog  { background-position: -3px   -14px !important; }
.read_menu li a.ico_page     { background-position: -71px  -14px !important; }
.read_menu li a.ico_setup,
.read_menu li a.ico_setting  { background-position: -127px -14px !important; }
.read_menu li a.ico_shelf    { background-position: -189px -14px !important; }
.read_menu li a.ico_shelfed  { background-position: -250px -14px !important; }
.read_menu li a.ico_phone    { background-position: -313px -14px !important; }
.read_menu li a.ico_reward   { background-position: -4px  -72px !important; }
.read_menu li a.ico_vote     { background-position: -66px -72px !important; }
.read_menu li a.ico_comment  { background-position: -127px -72px !important; }

/* 右侧翻页按钮（同一雪碧图第二行右侧两个箭头） */
.menu_right li a.ico_pagePrev { background-position: -191px -72px !important; }
.menu_right li a.ico_pageNext { background-position: -252px -72px !important; }
.menu_right li a.ico_goTop    { background-position: -308px -72px !important; }

/* ============ 2. 正文卡与标题信息行 ============ */

/* 正文卡：起点网页版是 800px 居中、米黄纸感、淡阴影 */
#readcontent .textbox.cf {
    width: auto !important;
    max-width: 800px !important;
    margin: 16px auto 32px !important;
    padding: 40px 56px 64px !important;
    /* 随主题走：早前写死浅米色，导致夜间主题下出现 149308px 高的浅色巨块 */
    background: var(--rd-panel, #f7f3ea) !important;
    border: 0 !important;
    border-radius: 2px !important;
    box-shadow: 0 1px 8px rgba(0, 0, 0, .07) !important;
    float: none !important;
    box-sizing: border-box !important;
}

/* 章标题：18→22px 加粗居中 */
.book_title h1 {
    font-size: 22px !important;
    font-weight: 700 !important;
    line-height: 1.5 !important;
    color: var(--rd-fg, #333) !important;
    text-align: center !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
}

/* 信息行：小字浅灰居中，各项之间用留白分隔（原来挤成一团） */
.book_title .textinfo {
    text-align: center !important;
    font-size: 12px !important;
    line-height: 26px !important;
    color: #bbb !important;
    padding: 0 0 16px !important;
    margin: 0 0 20px !important;
    border-bottom: 1px solid #e8e2d6 !important;
    word-spacing: 2px !important;
    white-space: normal !important;
    overflow: visible !important;
}

.book_title .textinfo a {
    color: #999 !important;
    font-size: 12px !important;
    text-decoration: none !important;
    margin: 0 4px !important;
    /* 原样式带 overflow:hidden + text-overflow:ellipsis，会把「类别：玄幻奇幻」
       截成「类别：玄...」，这里解除截断 */
    display: inline !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
    vertical-align: baseline !important;
}

.book_title .textinfo a:hover {
    color: #ed4259 !important;
}

.book_title .textinfo span {
    color: #bbb !important;
    font-size: 12px !important;
    margin: 0 10px 0 0 !important;
    display: inline !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
    vertical-align: baseline !important;
}

/* ============ 3. 正文排版：起点式段落 ============ */

#readcontent .txtwrap,
#readcontent #showReading {
    
    line-height: 1.9 !important;
    color: #2c2c2c !important;
    letter-spacing: .02em !important;
    background: transparent !important;
    text-align: justify !important;
    word-wrap: break-word !important;
}

/* 段落：起点的招牌排版是「首行缩进 2 字符 + 适中段间距」。
   注意此处曾误设为 text-indent:0（当时以为起点不缩进），
   结果覆盖了上面 #showReading.readBox p 的 2em，正文变成顶格。
   现恢复 2em，仅对段落 <p> 生效；div 是正文包裹层，缩进会导致整段右移。 */
#readcontent .txtwrap p,
#readcontent #showReading p {
    /* 无单位倍数：跟随后端写入的 .readBox 字号自动缩放 */
    line-height: 1.9 !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
    text-indent: 2em !important;
    text-align: justify !important;
    color: #2c2c2c !important;
    background: transparent !important;
}
#readcontent .txtwrap div,
#readcontent #showReading div {
    line-height: 1.9 !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
    text-indent: 0 !important;
    text-align: justify !important;
    color: #2c2c2c !important;
    background: transparent !important;
}

/* ============ 4. 章末翻页区 ============ */

.haveRead,
.nextPageBox {
    max-width: 800px !important;
    margin: 0 auto !important;
    padding: 0 0 40px !important;
    text-align: center !important;
}

.haveRead a,
.nextPageBox a {
    display: inline-block !important;
    min-width: 118px !important;
    height: 40px !important;
    line-height: 40px !important;
    padding: 0 22px !important;
    margin: 0 6px !important;
    font-size: 14px !important;
    color: #666 !important;
    text-decoration: none !important;
    background: #fff !important;
    border: 1px solid #e2e2e2 !important;
    border-radius: 3px !important;
    box-sizing: border-box !important;
    transition: all .2s ease !important;
}

.haveRead a:hover,
.nextPageBox a:hover {
    color: #ed4259 !important;
    border-color: #ed4259 !important;
}

/* 「下一章」作为主按钮：实心红 */
.haveRead a.on,
.nextPageBox a.on,
.haveRead a.next,
.nextPageBox a.next {
    color: #fff !important;
    background: #ed4259 !important;
    border-color: #ed4259 !important;
}

.haveRead a.on:hover,
.nextPageBox a.on:hover,
.haveRead a.next:hover,
.nextPageBox a.next:hover {
    background: #d93a50 !important;
    border-color: #d93a50 !important;
}

/* ============ 5. 设置面板（点亮原生的 .setupBox） ============ */

.readPopup.setupBox {
    background: #fff !important;
    border-radius: 6px !important;
    box-shadow: 0 4px 24px rgba(0, 0, 0, .16) !important;
    padding: 0 0 18px !important;
    width: 420px !important;
    box-sizing: border-box !important;
    z-index: 200 !important;
}

.readPopup.setupBox .popupTit {
    height: 46px !important;
    line-height: 46px !important;
    padding: 0 18px !important;
    border-bottom: 1px solid #f0f0f0 !important;
}

.readPopup.setupBox .popupTit h3 {
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #333 !important;
    margin: 0 !important;
}

.readPopup.setupBox .closePopup {
    position: absolute !important;
    right: 14px !important;
    top: 15px !important;
    width: 16px !important;
    height: 16px !important;
    background: url(../images/icon_readpage.png) no-repeat !important;
    background-position: -264px -118px !important;
    background-size: 365px 200px !important;
    opacity: .45 !important;
}

.readPopup.setupBox .closePopup:hover {
    opacity: 1 !important;
}

.readPopup.setupBox .setupList {
    padding: 6px 18px 0 !important;
}

.readPopup.setupBox .setupList ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.readPopup.setupBox .setupList li {
    display: flex !important;
    align-items: center !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-bottom: 1px solid #f7f7f7 !important;
}

.readPopup.setupBox .setupList li:last-child {
    border-bottom: 0 !important;
}

.readPopup.setupBox .setupList li .tit {
    flex: 0 0 76px !important;
    font-size: 13px !important;
    font-style: normal !important;
    color: #999 !important;
    margin: 0 !important;
}

/* 阅读主题色点（白 / 绿 / 粉 / 黄） */
.readPopup.setupBox .setupList li.readTheme a {
    display: inline-block !important;
    width: 26px !important;
    height: 26px !important;
    margin: 0 10px 0 0 !important;
    border-radius: 50% !important;
    border: 1px solid #e2e2e2 !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
    transition: transform .18s ease, box-shadow .18s ease !important;
}

.readPopup.setupBox .setupList li.readTheme a:hover {
    transform: scale(1.1) !important;
}

.readPopup.setupBox .setupList li.readTheme a.white { background: #fff !important; }
.readPopup.setupBox .setupList li.readTheme a.green { background: #cde6d0 !important; }
.readPopup.setupBox .setupList li.readTheme a.pink  { background: #f6dfe4 !important; }
.readPopup.setupBox .setupList li.readTheme a.yellow { background: #f5eccd !important; }

/* 当前选中：红圈 */
.readPopup.setupBox .setupList li.readTheme a.current {
    border: 2px solid #ed4259 !important;
    box-shadow: 0 0 0 2px rgba(237, 66, 89, .16) !important;
}

/* 字体大小 / 字体样式按钮 */

/* ============ 6. 底部固定工具条 ============ */

.screen_toolbar {
    background: #fff !important;
    border-top: 1px solid #ededed !important;
    box-shadow: 0 -1px 6px rgba(0, 0, 0, .05) !important;
    padding: 8px 0 !important;
}

.screen_toolbar a {
    display: inline-block !important;
    height: 30px !important;
    line-height: 30px !important;
    padding: 0 16px !important;
    margin: 0 4px !important;
    font-size: 13px !important;
    color: #666 !important;
    text-decoration: none !important;
    border-radius: 3px !important;
    transition: all .18s ease !important;
}

.screen_toolbar a:hover {
    color: #ed4259 !important;
    background: #fff5f6 !important;
}

/* ============ 7. 面包屑 ============ */

.readWrap .bookNav {
    max-width: 800px !important;
    margin: 0 auto 10px !important;
    padding: 0 !important;
    font-size: 12px !important;
    line-height: 30px !important;
    color: #bbb !important;
    background: transparent !important;
    text-align: left !important;
}

.readWrap .bookNav a {
    color: #999 !important;
    font-size: 12px !important;
    text-decoration: none !important;
}

.readWrap .bookNav a:hover {
    color: #ed4259 !important;
}

/* ============ 8. 顶栏「我的书架 / 登录注册」不换行 ============ */
/* 阅读页顶栏宽度被挤压时「我的书架」会折成两行，强制单行显示 */
.topMain .bookShelf .sj_link,
.topMain .bookShelf .user_link,
.topMain .bookShelf .user_link a {
    white-space: nowrap !important;
}

.topMain .bookShelf {
    white-space: nowrap !important;
    min-width: 210px !important;
    text-align: right !important;
}

/* ============ 9. 移动端 ============ */

@media screen and (max-width: 768px) {
    /* 竖排工具条改为底部固定横排（手机上没有侧边空间） */
    .menu_left,
    .menu_right {
        position: static !important;
        display: flex !important;
        width: 100% !important;
        justify-content: center !important;
        flex-wrap: wrap !important;
        margin: 0 0 12px !important;
        padding: 8px 0 !important;
        background: #fff !important;
        border-radius: 4px !important;
    }

    .read_menu ul {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
        width: 100% !important;
    }

    .read_menu li {
        width: 46px !important;
        height: 46px !important;
        margin: 3px !important;
    }

    .read_menu li a {
        width: 46px !important;
        height: 46px !important;
        background-size: 320px 175px !important;
    }

    .read_menu li a b {
        font-size: 10px !important;
        bottom: 3px !important;
    }

    #readcontent .textbox.cf {
        margin: 8px auto 16px !important;
        padding: 20px 16px 36px !important;
        border-radius: 0 !important;
    }

    .book_title h1 {
        font-size: 19px !important;
    }

    #readcontent .txtwrap,
    #readcontent #showReading,
    #readcontent .txtwrap p,
    #readcontent #showReading p {
    
        line-height: 1.85 !important;
        text-align: left !important;
    }

    .haveRead a,
    .nextPageBox a {
        min-width: 0 !important;
        width: 31% !important;
        padding: 0 6px !important;
        margin: 0 1% !important;
        font-size: 13px !important;
    }
}

/* ===== miaowu readpage-qidian end ===== */

/* ===== miaowu detail-qidian begin ===== */
/* ============================================================
   详情页 —— 对齐起点网页版
   ------------------------------------------------------------
   站点：喵呜中文网

   原生 DOM（已核对）：
     .channelBookInfo > .bookCover > (.book_cover > img.cover)
                                  + (.book_info > .tit > h1 + a.author
                                                > ul.list > li > span.item>em
                                                > .intro_txt > p + 收起/展开
                                                > .btns#optBtn > a.btn_ora
                                                                + span#cFavs>a.btn_ora_white.btn_addsj)
     .channelBookContent > .wrap_left（最新章节 + 评论区）
                         + .wrap_right（作者卡 + 同类推荐）

   对齐要点：
     1) 信息行：原来 4 项挤在一行且无分隔 -> 拆成带竖线分隔的独立信息项
     2) 按钮组：起点有 4 个（立即阅读 / 加入书架 / 投推荐票 / 打赏）
        此处原生只有 2 个，补 2 个「样式一致」的按钮（前端补，不动后端逻辑）
     3) 最新章节：起点的章节条带更新时间，且字号 14px、行高 40px
     4) 封面：168×224 起（起点规格），带右侧投影
     5) 简介：默认收起到 2 行，展开按钮靠右
   ============================================================ */

/* ============ 1. 信息卡整体 ============ */

.channelWrap.channelBookInfo {
    background: #fff !important;
    border-radius: 6px !important;
    padding: 26px 30px !important;
    margin-bottom: 16px !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .05) !important;
    box-sizing: border-box !important;
}

/* ---------- 信息卡容器：头像行布局 ----------
   原模板 .bookCover 只是普通 block，靠 float 让封面浮动。
   但 .book_info 里同时存在 h1/ul/intro/btns 多个块级元素，
   float 下若总高度超过封面高度，后续块会绕排到封面下方造成错位。
   改为 flex：封面固定宽，信息区自适应占满剩余宽度，彻底消除绕排。 */
.channelWrap.channelBookInfo .bookCover {
    display: flex !important;
    align-items: flex-start !important;
    overflow: visible !important;
}

/* ============ 2. 封面：168×224，右侧投影 ============ */

/* ---------- 封面：flex 子项，不收缩 ---------- */
.bookCover .book_cover {
    flex: 0 0 168px !important;
    float: none !important;
    display: block !important;
    width: 168px !important;
    height: 224px !important;
    margin: 0 30px 0 0 !important;
    padding: 0 !important;
    border-radius: 3px !important;
    overflow: hidden !important;
    background: #f4f4f4 !important;
    box-shadow: 2px 2px 8px rgba(0, 0, 0, .14) !important;
    box-sizing: border-box !important;
}

.bookCover .book_cover img.cover,
.bookCover .book_cover img {
    display: block !important;
    width: 168px !important;
    height: 224px !important;
    object-fit: cover !important;
    border: 0 !important;
    margin: 0 !important;
}

/* ============ 3. 信息区 ============ */

/* ---------- 信息区：flex 子项，占满剩余宽度 ---------- */
.bookCover .book_info {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    overflow: visible !important;
}

/* 书名：22px 加粗，作者紧随其后小字灰 */
.book_info .tit {
    margin: 0 0 14px !important;
    padding: 0 !important;
    line-height: 1.4 !important;
    overflow: hidden !important;
}

.book_info .tit h1 {
    display: inline !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    line-height: 30px !important;
    color: #333 !important;
    margin: 0 10px 0 0 !important;
    padding: 0 !important;
}

.book_info .tit .author {
    display: inline !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 30px !important;
    color: #999 !important;
    text-decoration: none !important;
    vertical-align: baseline !important;
}

.book_info .tit .author:hover {
    color: #ed4259 !important;
}

/* 信息行：四个独立项，竖线分隔（起点规格） */
.book_info ul.list {
    list-style: none !important;
    margin: 0 0 16px !important;
    padding: 0 !important;
    height: auto !important;
    overflow: hidden !important;
}

.book_info ul.list li {
    display: block !important;
    height: auto !important;
    line-height: 22px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    border: 0 !important;
    font-size: 0 !important;   /* 消除 inline-block 之间的空白间隙 */
}

.book_info ul.list li span.item {
    display: inline-block !important;
    height: auto !important;
    line-height: 22px !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 13px !important;
    color: #999 !important;
    background: none !important;
    border: 0 !important;
    vertical-align: middle !important;
}

/* 除首项外，前面加竖线分隔 */
.book_info ul.list li span.item + span.item::before {
    content: "" !important;
    display: inline-block !important;
    width: 1px !important;
    height: 12px !important;
    margin: 0 12px !important;
    background: #e6e6e6 !important;
    vertical-align: middle !important;
}

.book_info ul.list li span.item em {
    font-style: normal !important;
    font-size: 13px !important;
    color: #ed4259 !important;
    padding: 0 2px !important;
}

/* 后三项的数值用深灰（点击量/字数不适合红色强调） */
.book_info ul.list li span.item:nth-child(n+3) em {
    color: #333 !important;
}

/* ============ 4. 简介 ============ */

.book_info .intro_txt {
    margin: 0 0 18px !important;
    padding: 0 !important;
    position: relative !important;
}

.book_info .intro_txt p {
    font-size: 13px !important;
    line-height: 24px !important;
    color: #666 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-indent: 0 !important;
    /* 默认显示 3 行，超出由「展开」控制 */
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    max-height: 72px !important;
}

/* 展开态：解除行数限制 */
.book_info .intro_txt.on p,
.book_info .intro_txt.expanded p {
    -webkit-line-clamp: unset !important;
    max-height: none !important;
    display: block !important;
}

/* 收起/展开按钮：右下角，小字 + 箭头 */
.book_info .intro_txt .icon_hide,
.book_info .intro_txt .icon_show {
    display: block !important;
    text-align: right !important;
    font-size: 13px !important;
    line-height: 24px !important;
    color: #999 !important;
    text-decoration: none !important;
    margin: 2px 0 0 !important;
    padding: 0 !important;
}

.book_info .intro_txt .icon_hide:hover,
.book_info .intro_txt .icon_show:hover {
    color: #ed4259 !important;
}

.book_info .intro_txt .icon_hide i,
.book_info .intro_txt .icon_show i {
    display: inline-block !important;
    width: 10px !important;
    height: 6px !important;
    margin-left: 4px !important;
    background: url(../images/icon_readpage.png) no-repeat !important;
    background-size: 365px 200px !important;
    vertical-align: middle !important;
}

/* ============ 5. 按钮组：起点是四个 ============ */

.book_info .btns {
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

.book_info .btns a {
    display: inline-block !important;
    min-width: 108px !important;
    height: 40px !important;
    line-height: 38px !important;
    padding: 0 20px !important;
    margin: 0 12px 0 0 !important;
    font-size: 15px !important;
    text-align: center !important;
    text-decoration: none !important;
    border-radius: 3px !important;
    box-sizing: border-box !important;
    transition: all .2s ease !important;
    vertical-align: middle !important;
}

/* 主按钮：立即阅读（实心红） */
.book_info .btns a.btn_ora {
    color: #fff !important;
    background: #ed4259 !important;
    border: 1px solid #ed4259 !important;
}

.book_info .btns a.btn_ora:hover {
    background: #d93a50 !important;
    border-color: #d93a50 !important;
}

/* 次按钮：加入书架 / 投推荐票 / 打赏（白底描边） */
.book_info .btns a.btn_ora_white,
.book_info .btns a.btn_vote,
.book_info .btns a.btn_reward {
    color: #ed4259 !important;
    background: #fff !important;
    border: 1px solid #ed4259 !important;
}

.book_info .btns a.btn_ora_white:hover,
.book_info .btns a.btn_vote:hover,
.book_info .btns a.btn_reward:hover {
    color: #fff !important;
    background: #ed4259 !important;
}

/* ============ 6. 最新章节列表 ============ */

.wrap_left .bookChapter {
    background: #fff !important;
}

.bookChapter .title,
.wrap_left .title {
    height: 48px !important;
    line-height: 48px !important;
    border-bottom: 1px solid #f0f0f0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.bookChapter .title h3,
.wrap_left .title h3 {
    display: inline !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    color: #333 !important;
    margin: 0 !important;
}

.bookChapter .title .count,
.bookChapter .title span {
    font-size: 13px !important;
    color: #bbb !important;
    margin-left: 8px !important;
    font-weight: 400 !important;
}

/* 章节条目：单行 40px，标题在左、更新时间在右（起点规格）。

   【为什么用 flex 而不是 float】
   之前用 `li a { float:left; max-width:70%; text-overflow:ellipsis }`，
   结果「卷11、七言乐府」这种只有 99px 的短标题也被渲染成「卷11、…」——
   因为 float 元素在 max-width + 父级 overflow:hidden 下宽度计算不稳定，
   容器宽度被压到小于文字实际宽度，ellipsis 就误触了。
   flex 下由 flex:1 分配到真实的剩余宽度，截断只在真正超长时发生。 */
.bookChapter .list li {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    float: none !important;
    width: 100% !important;
    height: 40px !important;
    line-height: 40px !important;
    padding: 0 !important;
    margin: 0 !important;
    border-bottom: 1px dashed #f2f2f2 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    list-style: none !important;
}

.bookChapter .list li:last-child {
    border-bottom: 0 !important;
}

/* 标题所在 span：占满剩余宽度 */
.bookChapter .list li span.fl,
.bookChapter .list li span.font16 {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    float: none !important;
    display: block !important;
    height: 40px !important;
    line-height: 40px !important;
    padding: 0 !important;
    border-bottom: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.bookChapter .list li a {
    font-size: 14px !important;
    line-height: 40px !important;
    color: #333 !important;
    text-decoration: none !important;
    /* 去掉 float / max-width —— 截断交给父级 flex 项处理 */
    float: none !important;
    display: inline !important;
    max-width: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
}

.bookChapter .list li a:hover {
    color: #ed4259 !important;
}

/* 章节时间：右对齐浅灰，宽度自适应不压缩（起点详情页是显示的） */
.bookChapter .list li span.fr,
.bookChapter .list li span.black9,
.bookChapter .list li em,
.bookChapter .list li i {
    flex: 0 0 auto !important;
    float: none !important;
    display: block !important;
    font-size: 12px !important;
    line-height: 40px !important;
    color: #bbb !important;
    font-style: normal !important;
    margin-left: 16px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

/*「全部目录」入口：靠右红字 */
.wrap_left .title .more,
.wrap_left .title a {
    float: right !important;
    font-size: 13px !important;
    color: #999 !important;
    text-decoration: none !important;
    font-weight: 400 !important;
}

.wrap_left .title .more:hover,
.wrap_left .title a:hover {
    color: #ed4259 !important;
}

/* ============ 7. 评论区：空态紧凑 ============ */

.wrap_left .no_comment {
    padding: 30px 0 !important;
    text-align: center !important;
    color: #bbb !important;
}

.wrap_left .no_comment img {
    display: block !important;
    width: 64px !important;
    height: auto !important;
    margin: 0 auto 10px !important;
    opacity: .5 !important;
}

.wrap_left .no_comment span.block {
    display: block !important;
    font-size: 13px !important;
    color: #bbb !important;
}

/* 发表评论框：紧凑 */
.wrap_left .reply_bar {
    padding: 14px 0 0 !important;
    border-top: 0 !important;
}

.wrap_left .reply_bar .tit {
    margin-bottom: 8px !important;
}

.wrap_left .reply_bar textarea {
    width: 100% !important;
    min-height: 76px !important;
    padding: 10px 12px !important;
    font-size: 13px !important;
    line-height: 22px !important;
    color: #333 !important;
    border: 1px solid #e8e8e8 !important;
    border-radius: 3px !important;
    box-sizing: border-box !important;
    resize: vertical !important;
}

.wrap_left .reply_bar textarea:focus {
    border-color: #ed4259 !important;
    outline: none !important;
}

/* ============ 8. 右侧栏：作者卡 + 同类推荐 ============ */

.wrap_right .wrap_inner {
    background: #fff !important;
    border-radius: 6px !important;
    padding: 20px !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .05) !important;
    box-sizing: border-box !important;
}

.wrap_right .author_intro {
    font-size: 13px !important;
    line-height: 22px !important;
    color: #666 !important;
}

/* 同类推荐：左小封面 56×76 + 右侧文字，紧凑横排 */
.wrap_right .rightList li,
.wrap_right .bookList li {
    display: flex !important;
    align-items: flex-start !important;
    padding: 10px 0 !important;
    margin: 0 !important;
    border-bottom: 1px solid #f5f5f5 !important;
    overflow: hidden !important;
}

.wrap_right .rightList li:last-child,
.wrap_right .bookList li:last-child {
    border-bottom: 0 !important;
}

.wrap_right .rightList li img,
.wrap_right .bookList li img {
    flex: 0 0 56px !important;
    width: 56px !important;
    height: 76px !important;
    object-fit: cover !important;
    border-radius: 2px !important;
    margin: 0 12px 0 0 !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .1) !important;
}

.wrap_right .rightList li .info,
.wrap_right .bookList li .info {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

.wrap_right .rightList li .info a,
.wrap_right .bookList li .info a {
    display: block !important;
    font-size: 13px !important;
    line-height: 20px !important;
    color: #333 !important;
    text-decoration: none !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    margin-bottom: 4px !important;
}

.wrap_right .rightList li .info a:hover,
.wrap_right .bookList li .info a:hover {
    color: #ed4259 !important;
}

.wrap_right .rightList li .info p,
.wrap_right .bookList li .info p,
.wrap_right .rightList li .info span,
.wrap_right .bookList li .info span {
    font-size: 12px !important;
    line-height: 18px !important;
    color: #999 !important;
    margin: 0 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

/* ============ 9. 移动端 ============ */

@media screen and (max-width: 768px) {

    .channelWrap.channelBookInfo {
        padding: 16px 14px !important;
        border-radius: 0 !important;
    }

    /* 封面缩小，信息并排（flex 下只需改尺寸） */
    .bookCover .book_cover {
        flex: 0 0 104px !important;
        width: 104px !important;
        height: 139px !important;
        margin: 0 14px 0 0 !important;
    }

    .bookCover .book_cover img.cover,
    .bookCover .book_cover img {
        width: 104px !important;
        height: 139px !important;
    }

    .bookCover .book_info {
        margin: 0 !important;
    }

    .book_info .tit h1 {
        font-size: 17px !important;
        line-height: 24px !important;
    }

    .book_info .tit .author {
        font-size: 12px !important;
        line-height: 24px !important;
    }

    /* 信息项：手机上两项一行 */
    .book_info ul.list li span.item {
        font-size: 12px !important;
    }

    .book_info ul.list li span.item + span.item::before {
        margin: 0 7px !important;
    }

    .book_info .intro_txt p {
        font-size: 12px !important;
        line-height: 20px !important;
        -webkit-line-clamp: 2 !important;
        max-height: 40px !important;
    }

    /* 按钮：两列网格，铺满 */
    .book_info .btns {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
        clear: both !important;
        padding-top: 12px !important;
    }

    .book_info .btns a {
        flex: 1 1 calc(50% - 4px) !important;
        min-width: 0 !important;
        width: auto !important;
        margin: 0 !important;
        height: 38px !important;
        line-height: 36px !important;
        font-size: 14px !important;
        padding: 0 8px !important;
    }

    /* 章节条目 */
    .bookChapter .list li {
        height: 38px !important;
        line-height: 38px !important;
    }

    .bookChapter .list li a {
        max-width: 60% !important;
        font-size: 13px !important;
        line-height: 38px !important;
    }

    /* 右侧栏：下移 */
    .channelBookContent .wrap_right {
        width: 100% !important;
        float: none !important;
        margin-top: 14px !important;
    }
}

/* ===== miaowu detail-qidian end ===== */

/* ===== setup panel fix (per Astra) begin ===== */
/* --- 面板本体：实底 + 零元素视觉遮罩 --- */

.readPopup.setupBox {
    position: fixed !important;
    width: 420px !important;
    max-width: calc(100vw - 32px) !important;
    box-sizing: border-box !important;
    padding: 0 0 18px !important;
    background: #fff !important;
    /* 显式声明不透明，排除祖先 opacity 干扰 */
    opacity: 1 !important;
    mix-blend-mode: normal !important;
    border-radius: 6px !important;
    z-index: 200 !important;
    /* 第二层 100vmax 外阴影＝不需要额外 DOM 的视觉遮罩 */
    box-shadow:
        0 4px 24px rgba(0, 0, 0, .16),
        0 0 0 100vmax rgba(0, 0, 0, .24) !important;
}

.setupBox .popupTit {
    height: 46px !important;
    line-height: 46px !important;
    padding: 0 18px !important;
    border-bottom: 1px solid #f0f0f0 !important;
}
.setupBox .popupTit h3 {
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #333 !important;
    margin: 0 !important;
}
.setupBox .closePopup {
    position: absolute !important;
    right: 14px !important;
    top: 15px !important;
    width: 16px !important;
    height: 16px !important;
    background: url(../images/icon_readpage.png) no-repeat !important;
    background-position: -264px -118px !important;
    background-size: 365px 200px !important;
    opacity: .45 !important;
}
.setupBox .closePopup:hover { opacity: 1 !important; }

.readPopup.setupBox .setupList { padding: 6px 18px 0 !important; }
.readPopup.setupBox .setupList > ul {
    margin: 0 !important; padding: 0 !important; list-style: none !important;
}

/* --- 行：改用 gap 统管间距，flex-wrap:nowrap 禁止换行 --- */
.readPopup.setupBox .setupList li {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    border-bottom: 1px solid #f7f7f7 !important;
}
.readPopup.setupBox .setupList li:last-child { border-bottom: 0 !important; }

.readPopup.setupBox .setupList li .tit {
    flex: 0 0 76px !important;
    width: 76px !important;
    margin: 0 !important; padding: 0 !important;
    box-sizing: border-box !important;
    white-space: nowrap !important;
    font-size: 13px !important;
    font-style: normal !important;
    color: #999 !important;
}

/* --- 普通按钮：按内容算宽，禁止收缩与换行（修问题 1） --- */
.readPopup.setupBox .setupList li a:not(.closePopup) {
    position: static !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 28px !important;
    padding: 0 14px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    white-space: nowrap !important;
    text-indent: 0 !important;
    font-size: 13px !important;
    line-height: 26px !important;
    color: #666 !important;
    background: #f7f7f7 !important;
    border: 1px solid #e8e8e8 !important;
    border-radius: 3px !important;
    text-decoration: none !important;
}
/* 字体按钮放大最小宽：13px 两个汉字需 56px 才不折行 */
.readPopup.setupBox .setupList li.setFont a:not(.closePopup) {
    min-width: 56px !important;
}
.readPopup.setupBox .setupList li a:not(.closePopup):hover {
    color: #ed4259 !important;
    border-color: #ed4259 !important;
}
.readPopup.setupBox .setupList li a.current:not(.closePopup) {
    color: #fff !important;
    background: #ed4259 !important;
    border-color: #ed4259 !important;
    font-weight: 700 !important;
}

/* --- 色点：特异性必须压过上面的通用按钮规则（修问题 2） ---
   关键：把 :not(.closePopup) 也带上，使选择器权重 >= 通用规则，
   否则 26px 的圆形会被 14px padding 撑破。 */
.readPopup.setupBox .setupList li.readTheme a:not(.closePopup) {
    flex: 0 0 26px !important;
    width: 26px !important;
    min-width: 26px !important;
    max-width: 26px !important;
    height: 26px !important;
    padding: 0 !important;
    margin: 0 !important;
    display: inline-block !important;
    border: 1px solid #e2e2e2 !important;
    border-radius: 50% !important;
    box-sizing: border-box !important;
    transition: transform .18s ease, box-shadow .18s ease !important;
}
.readPopup.setupBox .setupList li.readTheme a:not(.closePopup):hover {
    transform: scale(1.1) !important;
    border-color: #ed4259 !important;
}

/* 站点原有主题色值（沿用，不用 Astra 的示意色） */
.readPopup.setupBox .setupList li.readTheme a.white:not(.closePopup)  { background: #fff !important; }
.readPopup.setupBox .setupList li.readTheme a.green:not(.closePopup)  { background: #cde6d0 !important; }
.readPopup.setupBox .setupList li.readTheme a.pink:not(.closePopup)   { background: #f6dfe4 !important; }
.readPopup.setupBox .setupList li.readTheme a.yellow:not(.closePopup) { background: #f5eccd !important; }
.readPopup.setupBox .setupList li.readTheme a.gray:not(.closePopup)   { background: #e5e5e5 !important; }
.readPopup.setupBox .setupList li.readTheme a.night:not(.closePopup)  { background: #252525 !important; }

.readPopup.setupBox .setupList li.readTheme a.current:not(.closePopup) {
    border: 2px solid #ed4259 !important;
    box-shadow: 0 0 0 2px rgba(237, 66, 89, .16) !important;
}

/* 字号当前值：定宽居中，避免 A- / 16 / A+ 左右错位 */
.readPopup.setupBox .setupList li.fontSize .current_font {
    flex: 0 0 32px !important;
    margin: 0 !important;
    text-align: center !important;
    white-space: nowrap !important;
    font-size: 14px !important;
    color: #333 !important;
}

/* 窄屏：允许换行，而不是压缩按钮 */
@media (max-width: 400px) {
    .readPopup.setupBox .setupList li {
        flex-wrap: wrap !important;
        row-gap: 8px !important;
        padding: 8px 0 !important;
    }
    .readPopup.setupBox .setupList li .tit {
        flex-basis: 100% !important;
        width: 100% !important;
    }
}
/* ===== setup panel fix (per Astra) end ===== */

/* ============ 阅读主题成套切换（6 套） ============ */

/* ------------------------------------------------------------------
   变量表：6 套主题。--rd-* 只在这里定义一次，全站复用。
   色值来源：站点原有 6 个 body 背景色为锚（不改），
   文字/工具栏色由脚本按 WCAG 对比度反推（见 colors.py）。
   实测正文对比度：白 11.13 / 绿 9.86 / 粉 9.95 / 黄 9.06 / 灰 9.33 / 夜 12.45
   ------------------------------------------------------------------ */
body.read_style_1 {
    --rd-bg: #ebe5d8;   --rd-fg: #2c2c2c;   --rd-sub: #2c2c2c;
    --rd-bar-bg: #faf8f5; --rd-bar-fg: #2c2c2c;
    --rd-panel: #ffffff;  --rd-line: #c0bbb1;
}
body.read_style_2 {
    --rd-bg: #cbdec9;   --rd-fg: #2c2c2c;   --rd-sub: #2c2c2c;
    --rd-bar-bg: #f2f6f1; --rd-bar-fg: #2c2c2c;
    --rd-panel: #ffffff;  --rd-line: #a6b6a4;
}
body.read_style_3 {
    --rd-bg: #edd4d4;   --rd-fg: #2c2c2c;   --rd-sub: #2c2c2c;
    --rd-bar-bg: #faf4f4; --rd-bar-fg: #2c2c2c;
    --rd-panel: #ffffff;  --rd-line: #c2adad;
}
body.read_style_4 {
    --rd-bg: #e0cfa3;   --rd-fg: #2c2c2c;   --rd-sub: #2c2c2c;
    --rd-bar-bg: #f7f3e8; --rd-bar-fg: #2c2c2c;
    --rd-panel: #ffffff;  --rd-line: #b7a985;
}
body.read_style_5 {
    --rd-bg: #d3d3d3;   --rd-fg: #2c2c2c;   --rd-sub: #2c2c2c;
    --rd-bar-bg: #f4f4f4; --rd-bar-fg: #2c2c2c;
    --rd-panel: #ffffff;  --rd-line: #adadad;
}
/* 夜间：正文 #d0d0d0 on #0e0f0f = 12.45:1（远超 AA 4.5:1） */
body.read_style_6 {
    --rd-bg: #0e0f0f;   --rd-fg: #d0d0d0;   --rd-sub: #888888;
    --rd-bar-bg: #1c1e1e; --rd-bar-fg: #c8c8c8;
    --rd-panel: #222424;  --rd-line: #2e3030;
}

/* 兜底：仅当 body **完全没有** read_style_N 时才用浅色一套。
   ★ 必须加 :not([class*="read_style_"])：
   本规则与 body.read_style_N 特异性相同（都是 0,2,0），若不加条件，
   同权重下后加载的兜底会**覆盖掉全部 6 套主题**。
   实测踩坑记录：body.className 已是 'readTheme read_style_6'，
   但 --rd-bg 仍停在 #ebe5d8，就是因为这条兜底排在最后。 */
body.readTheme:not([class*="read_style_"]) {
    --rd-bg: #ebe5d8;   --rd-fg: #2c2c2c;   --rd-sub: #2c2c2c;
    --rd-bar-bg: #faf8f5; --rd-bar-fg: #2c2c2c;
    --rd-panel: #ffffff;  --rd-line: #c0bbb1;
}

/* ---------------- 正文区跟随主题 ----------------
   注意：只覆盖 color / background-color / border-color，
   绝不写 font-size —— 后端 SetReadFont 往 .readBox 写内联字号，压了就废。 */
body.readTheme,
body[class*="read_style_"] {
    background-color: var(--rd-bg) !important;
}
#readcontent,
#readcontent .txtwrap,
#readcontent #showReading,
#readcontent .readBox {
    background-color: transparent !important;
    color: var(--rd-fg) !important;
}
#readcontent p,
#readcontent #showReading p,
#readcontent .txtwrap p {
    color: var(--rd-fg) !important;
    background-color: transparent !important;
}
/* 段落之间的细分隔线 */
#readcontent hr,
#readcontent .txtwrap hr {
    border: 0 !important;
    border-top: 1px solid var(--rd-line) !important;
    background: transparent !important;
}

/* ---------------- 阅读工具栏跟随主题 ----------------
   顶栏 .read_menu、右侧 .menu_right、章节标题条 .book_title 一起成套，
   否则夜间主题会「上白下黑」。 */
.read_menu,
.menu_right,
.read_menu li,
.menu_right li {
    background-color: var(--rd-bar-bg) !important;
    border-color: var(--rd-line) !important;
}
.read_menu li a,
.menu_right li a {
    color: var(--rd-bar-fg) !important;
    border-color: var(--rd-line) !important;
}
.book_title,
.book_title .textinfo a,
.book_title .textinfo span {
    color: var(--rd-bar-fg) !important;
    background-color: transparent !important;
}
.book_title .textinfo a:hover { color: var(--rd-fg) !important; }

/* ---------------- 设置面板跟随主题 ---------------- */
.readPopup.setupBox {
    background: var(--rd-panel) !important;
    color: var(--rd-fg) !important;
}
.readPopup.setupBox .setupList li {
    border-bottom-color: var(--rd-line) !important;
}
.readPopup.setupBox .setupList li .tit {
    color: var(--rd-bar-fg) !important;
}
/* 面板内的按钮：夜间主题下浅底白字会瞎，改成描边风格 */
.readPopup.setupBox .setupList li a:not(.closePopup) {
    color: var(--rd-fg) !important;
    background-color: transparent !important;
    border: 1px solid var(--rd-line) !important;
}
.readPopup.setupBox .setupList li a:not(.closePopup):hover {
    border-color: var(--rd-fg) !important;
}
/* 色点必须保持自己的颜色，不能被上面的描边按钮规则吃掉 */
.readPopup.setupBox .setupList li.readTheme a:not(.closePopup) {
    border: 1px solid var(--rd-line) !important;
}
body.read_style_6 .readPopup.setupBox .setupList li.readTheme a.white:not(.closePopup) {
    border-color: #555 !important;
}
.readPopup.setupBox .setupList li.fontSize .current_font {
    color: var(--rd-fg) !important;
}
/* 夜间主题下遮罩更深，避免浅色残留刺眼 */
body.read_style_6 .readPopup.setupBox {
    box-shadow: 0 4px 24px rgba(0, 0, 0, .5), 0 0 0 100vmax rgba(0, 0, 0, .55) !important;
}

/* ---------------- 章末导航 / 相关推荐随主题 ---------------- */
#readcontent .zj_yl,
#readcontent .readEnd,
.readEnd {
    background-color: var(--rd-bar-bg) !important;
    border-color: var(--rd-line) !important;
}
#readcontent .zj_yl p,
#readcontent .readEnd p,
.readEnd p { color: var(--rd-bar-fg) !important; }
#readcontent .zj_yl a,
.readEnd a { color: var(--rd-fg) !important; }

/* ============ 夜间可见性修复（实测 5 处残留） ============ */

/* 背景残留：改用 --rd-bar-bg（浅色主题是近白，夜间是 #1c1e1e） */
body.readTheme .topMain,
body[class*="read_style_"] .topMain,
body.readTheme .topMain .top,
body[class*="read_style_"] .topMain .top,
body.readTheme .textbox,
body[class*="read_style_"] .textbox,
body.readTheme .textbox.cf,
body[class*="read_style_"] .textbox.cf {
    background-color: var(--rd-bar-bg) !important;
    border-color: var(--rd-line) !important;
}
/* 搜索框：夜间不能是纯白块 */
body.readTheme input.s_int,
body[class*="read_style_"] input.s_int,
body.readTheme .s_int,
body[class*="read_style_"] .s_int,
body.readTheme #searchKey,
body[class*="read_style_"] #searchKey {
    background-color: var(--rd-bar-bg) !important;
    color: var(--rd-bar-fg) !important;
    border: 1px solid var(--rd-line) !important;
}
body.readTheme input.s_int::placeholder,
body[class*="read_style_"] input.s_int::placeholder { color: var(--rd-sub) !important; }

/* 文字残留：深灰字在夜间深底上不可读（实测 1.52:1 / 1.21:1） */
body.readTheme a.sj_link,
body[class*="read_style_"] a.sj_link,
body.readTheme h1,
body[class*="read_style_"] h1,
body.readTheme .book_title h1,
body[class*="read_style_"] .book_title h1 {
    color: var(--rd-bar-fg) !important;
}
/* 顶栏内所有链接/文字一并跟随 */
body.readTheme .topMain a,
body[class*="read_style_"] .topMain a,
body.readTheme .topMain span,
body[class*="read_style_"] .topMain span,
body.readTheme .topMain em,
body[class*="read_style_"] .topMain em {
    color: var(--rd-bar-fg) !important;
}
body.readTheme .topMain a:hover,
body[class*="read_style_"] .topMain a:hover { color: var(--rd-fg) !important; }

/* ============ 夜间文字可见性（压过模板 !important） ============ */

/* 书架链接：模板规则是 .topMain .bookShelf .sj_link !important (0,3,0)
   这里用 body + 属性选择器 + 同名链，特异性 (0,4,0) 且后加载。 */
body[class*="read_style_"] .header .topMain .bookShelf .sj_link,
body[class*="read_style_"] .topMain .bookShelf .sj_link,
body.readTheme .header .topMain .bookShelf .sj_link,
body.readTheme .topMain .bookShelf .sj_link {
    color: var(--rd-bar-fg) !important;
}

/* 章节标题：压制规则 #readcontent .book_title h1 !important (1,1,0)
   这里加 body 属性选择器把特异性抬到 (1,3,0)。 */
body[class*="read_style_"] #readcontent .book_title h1,
body.readTheme #readcontent .book_title h1 {
    color: var(--rd-fg) !important;
}
/* 章标题里的链接（若有）一并跟随 */
body[class*="read_style_"] #readcontent .book_title a,
body.readTheme #readcontent .book_title a {
    color: var(--rd-fg) !important;
}

/* ============ 色点选中态可见标记 ============ */

/* 未选中：只留极淡的边，避免和选中态混为一谈 */
.readPopup.setupBox .setupList li.readTheme a:not(.closePopup) {
    position: relative !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    border: 1px solid rgba(0, 0, 0, .12) !important;
}

/* 选中态：外圈（outline 不占布局，色点仍是 26x26） */
.readPopup.setupBox .setupList li.readTheme a.current:not(.closePopup) {
    outline: 2px solid var(--rd-fg, #ed4259) !important;
    outline-offset: 2px !important;
    border-color: transparent !important;
}

/* 选中态：内勾。用两条 border 旋转 45° 拼成 √，
   不依赖图标字体/图片，任何主题下都跟着 --rd-fg 走。 */
.readPopup.setupBox .setupList li.readTheme a.current:not(.closePopup)::after {
    content: '' !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 5px !important;
    height: 9px !important;
    margin: -6px 0 0 -3px !important;
    border: solid var(--rd-check, #fff) !important;
    border-width: 0 2px 2px 0 !important;
    transform: rotate(45deg) !important;
    box-sizing: border-box !important;
    pointer-events: none !important;
}

/* 勾号颜色：浅色色点（白/绿/粉/黄/灰）配深勾，深色色点（夜间）配白勾。
   否则白勾画在白/黄/灰圆上会看不见。 */
body.readTheme .readPopup .setupList li.readTheme a.white.current:not(.closePopup)::after,
body.readTheme .readPopup .setupList li.readTheme a.green.current:not(.closePopup)::after,
body.readTheme .readPopup .setupList li.readTheme a.pink.current:not(.closePopup)::after,
body.readTheme .readPopup .setupList li.readTheme a.yellow.current:not(.closePopup)::after,
body.readTheme .readPopup .setupList li.readTheme a.gray.current:not(.closePopup)::after {
    border-color: #333 !important;
}
body.readTheme .readPopup .setupList li.readTheme a.night.current:not(.closePopup)::after {
    border-color: #fff !important;
}

/* 夜间主题面板：外圈改用亮色，否则深圈画在深面板上等于没有 */
body.read_style_6 .readPopup.setupBox .setupList li.readTheme a.current:not(.closePopup) {
    outline-color: #d0d0d0 !important;
}

/* ============ 设置面板标题跟主题 ============ */

/* 面板标题 h3「设置」：实测夜间下是 rgb(51,51,51)，对比仅 1.23:1。
   同面板其它文字都跟随了主题，唯独标题漏了。 */
body.readTheme .readPopup.setupBox h3,
body[class*="read_style_"] .readPopup.setupBox h3,
.readPopup.setupBox h3 {
    color: var(--rd-bar-fg, #333) !important;
    border-color: var(--rd-line) !important;
}
/* 夜间面板底更深，标题用正文色保证足够对比 */
body.read_style_6 .readPopup.setupBox h3 {
    color: var(--rd-fg) !important;
}
