/* ============================================
   在线书城（小说/电子书）插件 - PC 端样式
   独立设计，bm- 前缀避免与系统样式冲突
   ============================================ */
.bm-wrapper{
    --bm-primary:#e54d42;
    --bm-primary-dark:#c93a30;
    --bm-dark:#23262e;
    --bm-gray:#f5f6f8;
    --bm-border:#e8eaee;
    --bm-text:#333;
    --bm-text-gray:#8a8f99;
    font-family:"Microsoft YaHei","PingFang SC","Helvetica Neue",Arial,sans-serif;
    color:var(--bm-text);
    background:#f5f6f8;
    font-size:14px;
    line-height:1.6;
}
.bm-wrapper *{box-sizing:border-box;margin:0;padding:0;}
.bm-wrapper a{color:inherit;text-decoration:none;transition:color .2s;}
.bm-wrapper img{max-width:100%;border:0;vertical-align:middle;}
.bm-wrapper ul,ol{list-style:none;}
.bm-container{width:1200px;margin:0 auto;}
.bm-clearfix::after{content:"";display:block;clear:both;}
.bm-hidden{display:none !important;}

/* ---------------- 顶部信息条 ---------------- */
.bm-topbar{background:var(--bm-dark);color:#aab;font-size:12px;}
.bm-topbar .bm-container{display:flex;justify-content:space-between;align-items:center;height:34px;}
.bm-topbar a{color:#aab;}
.bm-topbar a:hover{color:#fff;}
.bm-topbar .bm-topbar-left span{margin-right:18px;}
.bm-topbar .bm-topbar-right a{margin-left:16px;}

/* ---------------- 头部 ---------------- */
.bm-header{background:#fff;border-bottom:1px solid var(--bm-border);}
.bm-header .bm-container{display:flex;align-items:center;height:86px;}
.bm-logo{flex:0 0 auto;margin-right:46px;}
.bm-logo a{display:flex;align-items:center;}
.bm-logo .bm-logo-icon{width:46px;height:46px;border-radius:10px;background:linear-gradient(135deg,#ff8f70,#e54d42);color:#fff;font-size:24px;font-weight:bold;display:flex;align-items:center;justify-content:center;margin-right:10px;}
.bm-logo .bm-logo-name{font-size:22px;font-weight:bold;color:var(--bm-dark);letter-spacing:1px;}

/* 搜索框 */
.bm-searchbox{flex:1;max-width:520px;position:relative;}
.bm-search-form{display:flex;height:42px;border:2px solid var(--bm-primary);border-radius:21px;overflow:hidden;background:#fff;}
.bm-search-form input{flex:1;border:0;outline:none;padding:0 18px;font-size:14px;background:transparent;color:var(--bm-text);}
.bm-search-form button{width:86px;border:0;background:var(--bm-primary);color:#fff;font-size:14px;cursor:pointer;}
.bm-search-form button:hover{background:var(--bm-primary-dark);}
.bm-search-hot{margin-top:6px;font-size:12px;color:var(--bm-text-gray);white-space:nowrap;overflow:hidden;}
.bm-search-hot a{color:var(--bm-text-gray);margin-right:10px;}
.bm-search-hot a:hover{color:var(--bm-primary);}

/* 搜索联想下拉 */
.bm-search-drop{position:absolute;top:44px;left:0;right:0;z-index:99;background:#fff;border:1px solid var(--bm-border);border-radius:8px;box-shadow:0 6px 24px rgba(0,0,0,.12);overflow:hidden;display:none;}
.bm-search-drop .bm-sd-item{display:flex;align-items:center;padding:9px 14px;cursor:pointer;}
.bm-search-drop .bm-sd-item:hover{background:#fff5f4;}
.bm-search-drop .bm-sd-item img{width:34px;height:44px;object-fit:cover;border-radius:3px;margin-right:10px;}
.bm-search-drop .bm-sd-item .bm-sd-title{flex:1;font-size:14px;color:var(--bm-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bm-search-drop .bm-sd-item .bm-sd-title em{color:var(--bm-primary);font-style:normal;}
.bm-search-drop .bm-sd-item .bm-sd-type{font-size:12px;color:var(--bm-text-gray);margin-left:10px;flex:0 0 auto;}
.bm-search-drop .bm-sd-empty{padding:18px;text-align:center;color:var(--bm-text-gray);font-size:13px;}

/* 头部右侧（登录状态） */
.bm-header-user{margin-left:auto;flex:0 0 auto;display:flex;align-items:center;font-size:13px;}
.bm-header-user .bm-hu-item{display:flex;align-items:center;margin-left:22px;color:#555;position:relative;}
.bm-header-user .bm-hu-item:hover{color:var(--bm-primary);}
.bm-header-user .bm-hu-avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;margin-right:6px;border:2px solid #fff;box-shadow:0 0 0 1px var(--bm-border);}

/* ---------------- 导航 ---------------- */
.bm-nav{background:#fff;border-bottom:1px solid var(--bm-border);}
.bm-nav .bm-container{display:flex;align-items:center;height:48px;}
.bm-nav a{display:block;padding:0 20px;font-size:15px;color:#444;line-height:48px;}
.bm-nav a:hover,.bm-nav a.bm-nav-active{color:var(--bm-primary);}
.bm-nav a.bm-nav-active{font-weight:bold;box-shadow:inset 0 -2px 0 var(--bm-primary);}

/* ---------------- 主内容 ---------------- */
.bm-main{padding:18px 0 30px;}
.bm-panel{background:#fff;border:1px solid var(--bm-border);border-radius:8px;margin-bottom:18px;overflow:hidden;}
.bm-panel-title{display:flex;align-items:center;height:52px;padding:0 20px;border-bottom:1px solid var(--bm-border);}
.bm-panel-title .bm-pt-text{font-size:17px;font-weight:bold;color:var(--bm-dark);display:flex;align-items:center;}
.bm-panel-title .bm-pt-text::before{content:"";width:4px;height:18px;border-radius:2px;background:var(--bm-primary);margin-right:10px;}
.bm-panel-title .bm-pt-more{margin-left:auto;font-size:13px;color:var(--bm-text-gray);}
.bm-panel-title .bm-pt-more:hover{color:var(--bm-primary);}
.bm-panel-body{padding:18px 20px;}

/* ---------------- 首页横幅 ---------------- */
.bm-banner{display:flex;gap:18px;margin-bottom:18px;}
.bm-banner-left{flex:1;border-radius:8px;overflow:hidden;position:relative;height:320px;}
.bm-banner-slide{position:relative;width:100%;height:100%;}
.bm-banner-slide img{width:100%;height:100%;object-fit:cover;}
.bm-banner-slide .bm-banner-mask{position:absolute;left:0;right:0;bottom:0;padding:40px 26px 20px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.75));color:#fff;}
.bm-banner-slide .bm-banner-mask h2{font-size:22px;margin-bottom:6px;}
.bm-banner-slide .bm-banner-mask p{font-size:13px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bm-banner-dots{position:absolute;right:16px;bottom:14px;display:flex;gap:6px;z-index:2;}
.bm-banner-dots span{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.5);cursor:pointer;}
.bm-banner-dots span.bm-active{background:#fff;}
.bm-banner-right{width:260px;display:flex;flex-direction:column;gap:18px;}
.bm-banner-hot{flex:1;background:#fff;border:1px solid var(--bm-border);border-radius:8px;padding:16px 18px;}
.bm-banner-hot h3{font-size:15px;color:var(--bm-dark);margin-bottom:12px;display:flex;align-items:center;}
.bm-banner-hot h3::before{content:"";width:4px;height:16px;border-radius:2px;background:var(--bm-primary);margin-right:8px;}
.bm-hot-item{display:flex;align-items:center;padding:7px 0;color:#555;font-size:13px;}
.bm-hot-item:hover{color:var(--bm-primary);}
.bm-hot-item .bm-hot-index{width:22px;height:22px;border-radius:4px;background:#eef0f3;color:#999;font-size:12px;text-align:center;line-height:22px;margin-right:10px;flex:0 0 auto;}
.bm-hot-item:nth-child(1) .bm-hot-index,.bm-hot-item:nth-child(2) .bm-hot-index,.bm-hot-item:nth-child(3) .bm-hot-index{background:var(--bm-primary);color:#fff;}
.bm-hot-item .bm-hot-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ---------------- 书本卡片 ---------------- */
.bm-book-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;}
.bm-book-grid.bm-book-grid-4{grid-template-columns:repeat(4,1fr);}
.bm-book-card{background:#fff;border-radius:8px;overflow:hidden;transition:box-shadow .25s,transform .25s;}
.bm-book-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.12);transform:translateY(-3px);}
.bm-book-cover{position:relative;display:block;aspect-ratio:3/4;overflow:hidden;background:#eef0f3;}
.bm-book-cover img{width:100%;height:100%;object-fit:cover;transition:transform .4s;}
.bm-book-card:hover .bm-book-cover img{transform:scale(1.06);}
.bm-book-cover .bm-book-badge{position:absolute;top:8px;left:8px;z-index:2;padding:2px 8px;border-radius:10px;font-size:11px;color:#fff;}
.bm-book-badge.bm-badge-vip{background:linear-gradient(90deg,#ffb800,#ff8a00);}
.bm-book-badge.bm-badge-free{background:rgba(0,0,0,.45);}
.bm-book-badge.bm-badge-pdf{background:linear-gradient(90deg,#e54d42,#ff7a6b);}
.bm-book-cover .bm-book-mask{position:absolute;left:0;right:0;bottom:0;padding:10px 8px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.6));color:#fff;font-size:12px;text-align:center;opacity:0;transition:opacity .25s;z-index:2;}
.bm-book-card:hover .bm-book-mask{opacity:1;}
.bm-book-info{padding:10px 12px 14px;}
.bm-book-info h3{font-size:14px;color:var(--bm-text);font-weight:bold;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:5px;}
.bm-book-info h3 a:hover{color:var(--bm-primary);}
.bm-book-info .bm-book-meta{font-size:12px;color:var(--bm-text-gray);display:flex;justify-content:space-between;}

/* ---------------- 章节列表 ---------------- */
.bm-chapter-list .bm-cl-item{display:flex;align-items:center;padding:12px 20px;border-bottom:1px dashed var(--bm-border);transition:background .2s;}
.bm-chapter-list .bm-cl-item:last-child{border-bottom:0;}
.bm-chapter-list .bm-cl-item:hover{background:#fff8f7;}
.bm-chapter-list .bm-cl-item a{flex:1;color:#444;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bm-chapter-list .bm-cl-item a:hover{color:var(--bm-primary);}
.bm-chapter-list .bm-cl-item .bm-cl-tag{flex:0 0 auto;margin-left:14px;font-size:12px;padding:1px 10px;border-radius:10px;}
.bm-cl-tag.bm-tag-free{color:#16a085;background:#e8f8f4;}
.bm-cl-tag.bm-tag-vip{color:#e67e22;background:#fdf3e7;}
.bm-cl-tag.bm-tag-lock{color:#999;background:#f2f3f5;}
.bm-chapter-list .bm-cl-item .bm-cl-click{flex:0 0 auto;margin-left:18px;font-size:12px;color:#c0c4cc;}

/* 目录面板（阅读页/详情页） */
.bm-catalog{max-height:420px;overflow-y:auto;}
.bm-catalog::-webkit-scrollbar{width:6px;}
.bm-catalog::-webkit-scrollbar-thumb{background:#d8dbe0;border-radius:3px;}
.bm-catalog .bm-cl-item{font-size:13px;}

/* 章节目录 3 列网格（详情页） */
.bm-catalog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 18px;max-height:none;overflow:visible;padding:6px 20px 14px;}
.bm-catalog-grid .bm-cl-item{display:flex;align-items:center;gap:8px;padding:11px 4px;border-bottom:1px dashed var(--bm-border);}
.bm-catalog-grid .bm-cl-item a{flex:1;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bm-catalog-grid .bm-cl-item a:hover{color:var(--bm-primary);}
.bm-catalog-grid .bm-cl-item a.bm-cl-lock{color:#999;}
.bm-catalog-grid .bm-cl-tag{margin-left:auto;flex:0 0 auto;}
.bm-catalog-grid .bm-cl-click{display:none;}

/* ---------------- 分类导航 ---------------- */
.bm-cat-list{display:flex;flex-wrap:wrap;padding:6px 4px;}
.bm-cat-list a{display:block;padding:7px 16px;margin:6px 6px;border-radius:16px;background:var(--bm-gray);color:#555;font-size:13px;}
.bm-cat-list a:hover,.bm-cat-list a.bm-cat-active{background:var(--bm-primary);color:#fff;}
.bm-cat-sub{margin-left:14px;font-size:12px;color:var(--bm-text-gray);}
.bm-cat-sub a{padding:4px 10px;background:transparent;color:var(--bm-text-gray);margin:3px 2px;}
.bm-cat-sub a:hover{color:var(--bm-primary);background:#fff5f4;}

/* ---------------- 面包屑 ---------------- */
.bm-crumb{display:flex;align-items:center;height:46px;font-size:13px;color:#777;}
.bm-crumb a{color:#777;}
.bm-crumb a:hover{color:var(--bm-primary);}
.bm-crumb span{margin:0 8px;color:#c0c4cc;}

/* ---------------- 详情页 ---------------- */
.bm-detail-top{display:flex;padding:30px;gap:30px;}
.bm-detail-cover{flex:0 0 auto;}
.bm-detail-cover img{width:220px;height:293px;object-fit:cover;border-radius:8px;box-shadow:0 8px 30px rgba(0,0,0,.18);}
.bm-detail-info{flex:1;}
.bm-detail-info h1{font-size:26px;color:var(--bm-dark);margin-bottom:12px;}
.bm-detail-info .bm-detail-desc{color:#888;font-size:13px;line-height:1.9;background:var(--bm-gray);border-radius:6px;padding:14px 16px;margin-bottom:14px;max-height:96px;overflow:hidden;position:relative;}
.bm-detail-info .bm-detail-desc.bm-expand{max-height:none;}
.bm-detail-info .bm-detail-meta{font-size:13px;color:#777;line-height:2.1;}
.bm-detail-info .bm-detail-meta b{color:var(--bm-dark);font-weight:normal;margin-right:6px;}
.bm-detail-info .bm-detail-meta .bm-meta-val{margin-right:24px;}
.bm-detail-tags{margin-top:10px;}
.bm-detail-tags span{display:inline-block;padding:2px 12px;margin:0 8px 8px 0;border:1px solid var(--bm-border);border-radius:12px;font-size:12px;color:#888;}
.bm-detail-actions{display:flex;align-items:center;margin-top:18px;gap:14px;flex-wrap:wrap;}
.bm-btn{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 26px;border-radius:20px;font-size:14px;cursor:pointer;border:0;transition:all .2s;}
.bm-btn-primary{background:var(--bm-primary);color:#fff;}
.bm-btn-primary:hover{background:var(--bm-primary-dark);color:#fff;}
.bm-btn-outline{border:1px solid var(--bm-primary);color:var(--bm-primary);background:#fff;}
.bm-btn-outline:hover{background:#fff5f4;}
.bm-btn-gray{background:#f0f1f4;color:#666;}
.bm-btn-gray:hover{background:#e3e5ea;}
.bm-btn-lg{height:46px;padding:0 36px;font-size:15px;border-radius:23px;}
.bm-btn-sm{height:32px;padding:0 18px;font-size:13px;border-radius:16px;}
.bm-price{font-size:20px;color:var(--bm-primary);font-weight:bold;}
.bm-price i{font-style:normal;font-size:13px;margin-right:2px;}
.bm-price-text{font-size:12px;color:#999;margin-left:8px;}

/* 全宽内容简介（详情页主栏） */
.bm-detail-intro{font-size:14px;color:#666;line-height:2;max-height:120px;overflow:hidden;position:relative;}
.bm-detail-intro.bm-expand{max-height:none;}
.bm-detail-intro:not(.bm-expand)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:36px;background:linear-gradient(180deg,transparent,#fff);}

/* 阅读进度条 */
.bm-progress{display:flex;align-items:center;font-size:12px;color:#999;}
.bm-progress .bm-progress-bar{flex:1;height:6px;background:#eef0f3;border-radius:3px;overflow:hidden;margin:0 10px;}
.bm-progress .bm-progress-bar i{display:block;height:100%;background:var(--bm-primary);border-radius:3px;}

/* 内容整篇模式 */
.bm-article-body{padding:30px 44px 40px;}
.bm-article-body .bm-article-title{font-size:24px;text-align:center;color:var(--bm-dark);margin-bottom:6px;}
.bm-article-body .bm-article-sub{text-align:center;color:#999;font-size:13px;margin-bottom:24px;}
.bm-article-content{font-size:16px;line-height:2;color:#3a3d42;}
.bm-article-content p{margin-bottom:1em;text-indent:2em;}

/* ---------------- 阅读页 ---------------- */
.bm-read-topbar{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--bm-border);}
.bm-read-topbar .bm-container{display:flex;align-items:center;height:56px;}
.bm-read-topbar .bm-rt-title{font-size:15px;color:var(--bm-dark);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bm-read-topbar .bm-rt-title b{font-weight:bold;}
.bm-read-topbar .bm-rt-title span{color:#999;font-size:13px;margin-left:10px;}
.bm-read-tools{display:flex;align-items:center;gap:14px;font-size:13px;color:#666;}
.bm-read-tools button{width:34px;height:34px;border-radius:6px;border:1px solid var(--bm-border);background:#fff;color:#555;font-size:15px;cursor:pointer;line-height:1;}
.bm-read-tools button:hover{color:var(--bm-primary);border-color:var(--bm-primary);}
.bm-read-tools .bm-rt-sizes{display:flex;align-items:center;gap:4px;font-size:12px;color:#999;}
.bm-read-tools .bm-rt-sizes i{display:block;width:22px;text-align:center;line-height:22px;border-radius:4px;cursor:pointer;font-style:normal;color:#666;}
.bm-read-tools .bm-rt-sizes i:hover{background:#f2f3f5;}
.bm-read-tools .bm-rt-sizes i.bm-sz-active{color:var(--bm-primary);font-weight:bold;background:#fff5f4;}

.bm-read-body{max-width:860px;margin:0 auto;padding:36px 20px 30px;}
.bm-read-book{text-align:center;margin-bottom:30px;}
.bm-read-book h1{font-size:22px;color:var(--bm-dark);margin-bottom:8px;}
.bm-read-book p{font-size:13px;color:#999;}
.bm-read-content{font-size:18px;line-height:2;color:#3a3d42;white-space:pre-wrap;}
.bm-read-content p{margin-bottom:1em;text-indent:2em;}
.bm-read-content.bm-font-small{font-size:16px;}
.bm-read-content.bm-font-large{font-size:20px;}
.bm-read-nav{display:flex;justify-content:space-between;align-items:center;margin:34px 0 10px;padding-top:22px;border-top:1px dashed var(--bm-border);}
.bm-read-nav .bm-btn{min-width:130px;}
.bm-read-nav .bm-rn-center{color:#bbb;font-size:13px;}
.bm-catalog-panel{margin-bottom:26px;background:#fff;border:1px solid var(--bm-border);border-radius:8px;overflow:hidden;}

/* 锁定提示 */
.bm-lock{background:#fff;border:1px solid var(--bm-border);border-radius:8px;padding:40px;text-align:center;max-width:100%;margin:1px auto;}
.bm-lock .bm-lock-icon{width:64px;height:64px;border-radius:50%;background:#fff5f4;color:var(--bm-primary);font-size:30px;line-height:64px;margin:0 auto 18px;}
.bm-lock h2{font-size:18px;color:var(--bm-dark);margin-bottom:10px;}
.bm-lock p{font-size:14px;color:#888;margin-bottom:24px;line-height:1.9;}
.bm-lock .bm-btn{margin:0 8px;}

/* ---------------- PDF 阅读页 ---------------- */
.bm-pdf-wrap{max-width:1100px;margin:0 auto;}
.bm-pdf-top{display:flex;align-items:center;gap:24px;background:#fff;border:1px solid var(--bm-border);border-radius:8px;padding:24px 30px;margin-bottom:18px;}
.bm-pdf-top img{width:120px;height:160px;object-fit:cover;border-radius:6px;box-shadow:0 4px 16px rgba(0,0,0,.15);}
.bm-pdf-top h1{font-size:20px;color:var(--bm-dark);margin-bottom:8px;}
.bm-pdf-top p{font-size:13px;color:#888;line-height:1.8;}
.bm-pdf-top .bm-pdf-info{font-size:12px;color:#999;margin-top:6px;}
.bm-pdf-viewer{background:#525659;border:1px solid var(--bm-border);border-radius:8px;overflow:hidden;}
.bm-pdf-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fff;border-bottom:1px solid var(--bm-border);padding:10px 16px;}
.bm-pdf-toolbar .bm-btn{height:32px;padding:0 14px;border-radius:6px;font-size:13px;line-height:30px;}
.bm-pdf-nav{display:flex;align-items:center;gap:10px;}
.bm-pdf-pageinfo{font-size:14px;color:var(--bm-dark);min-width:70px;text-align:center;}
.bm-pdf-tools{display:flex;align-items:center;gap:10px;}
.bm-pdf-zoomgroup{display:flex;align-items:center;gap:6px;}
.bm-pdf-zoomval{font-size:13px;color:#666;min-width:44px;text-align:center;}
.bm-pdf-canvas-wrap{position:relative;min-height:560px;max-height:calc(100vh - 260px);overflow:auto;background:#525659;padding:16px;text-align:center;}
.bm-pdf-canvas-wrap canvas{display:block;margin:0 auto;max-width:100%;box-shadow:0 2px 10px rgba(0,0,0,.35);background:#fff;}
/* 文字排版模式（有文字层的 PDF） */
.bm-pdf-text{background:#fff;color:#333;text-align:justify;line-height:1.85;word-break:break-word;min-height:560px;padding:24px 36px;font-size:17px;}
.bm-pdf-text p{margin:0 0 .7em;letter-spacing:.02em;}
.bm-pdf-loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#e8e8e8;font-size:14px;text-align:center;line-height:1.8;}
.bm-pdf-loading a{color:#fff;text-decoration:underline;}
/* PDF 全屏浏览 */
.bm-pdf-viewer:fullscreen,
.bm-pdf-viewer:-webkit-full-screen{width:100%;height:100%;border:0;border-radius:0;display:flex;flex-direction:column;background:#212121;}
.bm-pdf-viewer:fullscreen .bm-pdf-toolbar,
.bm-pdf-viewer:-webkit-full-screen .bm-pdf-toolbar{flex-shrink:0;background:#2f3136;border-bottom:1px solid #3a3d42;}
.bm-pdf-viewer:fullscreen .bm-pdf-toolbar .bm-btn,
.bm-pdf-viewer:-webkit-full-screen .bm-pdf-toolbar .bm-btn{border-color:#4b4e55;color:#e8e8e8;}
.bm-pdf-viewer:fullscreen .bm-pdf-zoomval,
.bm-pdf-viewer:-webkit-full-screen .bm-pdf-zoomval{color:#c8c8c8;}
.bm-pdf-viewer:fullscreen .bm-pdf-pageinfo,
.bm-pdf-viewer:-webkit-full-screen .bm-pdf-pageinfo{color:#fff;}
.bm-pdf-viewer:fullscreen .bm-pdf-canvas-wrap,
.bm-pdf-viewer:-webkit-full-screen .bm-pdf-canvas-wrap{flex:1;min-height:0;max-height:none;height:auto;padding:24px;background:#212121;}
.bm-pdf-viewer:fullscreen .bm-pdf-text,
.bm-pdf-viewer:-webkit-full-screen .bm-pdf-text{min-height:100%;}
.bm-pdf-tip{background:#fffbe6;border:1px solid #ffe58f;color:#ad6800;font-size:13px;padding:10px 18px;border-radius:6px;margin-bottom:14px;}
/* PDF下载栏与解锁弹窗 */
.bm-pdf-dlbar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--bm-border);border-radius:8px;padding:12px 18px;margin-bottom:14px;}
.bm-pdf-dlbar-label{font-size:14px;color:var(--bm-dark);font-weight:600;}
.bm-pdf-dlbar-btn{height:34px;padding:0 20px;border-radius:6px;font-size:13px;line-height:32px;}
.bm-pdf-modal{position:fixed;left:0;right:0;top:0;bottom:0;z-index:1000;display:flex;align-items:center;justify-content:center;}
.bm-pdf-modal-mask{position:absolute;left:0;right:0;top:0;bottom:0;background:rgba(0,0,0,.45);}
.bm-pdf-modal-box{position:relative;width:360px;max-width:90vw;background:#fff;border-radius:12px;padding:26px 28px 22px;text-align:center;box-shadow:0 12px 40px rgba(0,0,0,.2);}
.bm-pdf-modal-box h3{margin:0 0 12px;font-size:18px;color:var(--bm-dark);}
.bm-pdf-modal-need{font-size:14px;color:#666;line-height:1.7;margin:0 0 18px;}
.bm-pdf-modal-btns{display:flex;flex-direction:column;gap:10px;}
.bm-pdf-modal-btns .bm-btn{height:40px;line-height:38px;font-size:14px;}

/* ---------------- 侧边栏布局 ---------------- */
.bm-layout{display:flex;gap:18px;}
.bm-layout-main{flex:1;min-width:0;}
.bm-layout-side{width:280px;flex:0 0 auto;}

/* ---------------- 分页 ---------------- */
.bm-pagination{display:flex;justify-content:center;align-items:center;padding:26px 0 8px;gap:6px;}
.bm-pagination span,.bm-pagination a{min-width:36px;height:36px;line-height:36px;text-align:center;padding:0 12px;border-radius:6px;border:1px solid var(--bm-border);background:#fff;color:#555;font-size:13px;}
.bm-pagination a:hover{border-color:var(--bm-primary);color:var(--bm-primary);}
.bm-pagination span.bm-current,.bm-pagination span.current{background:var(--bm-primary);border-color:var(--bm-primary);color:#fff;}
.bm-pagination .bm-page-rows{color:#999;font-size:12px;margin-right:14px;border:0;background:transparent;}
/* 系统 think\Page 输出结构适配 */
.bm-pagination ul.pagination{display:flex;justify-content:center;align-items:center;gap:6px;list-style:none;padding:0;}
.bm-pagination ul.pagination li{list-style:none;}
.bm-pagination ul.pagination li a{display:inline-flex;min-width:36px;height:36px;line-height:36px;align-items:center;justify-content:center;padding:0 12px;border-radius:6px;border:1px solid var(--bm-border);background:#fff;color:#555;font-size:13px;text-decoration:none;}
.bm-pagination ul.pagination li a:hover{border-color:var(--bm-primary);color:var(--bm-primary);}
.bm-pagination ul.pagination li.active a{background:var(--bm-primary);border-color:var(--bm-primary);color:#fff;font-weight:bold;}
.bm-pagination ul.pagination li.disabled a{color:#c0c4cc;cursor:not-allowed;background:#fafbfc;}
.bm-pagination ul.pagination li a.prev,.bm-pagination ul.pagination li a.next,.bm-pagination ul.pagination li a.first,.bm-pagination ul.pagination li a.end{min-width:auto;}

/* ---------------- 搜索页 ---------------- */
.bm-search-head{padding:26px 30px;}
.bm-search-head h1{font-size:19px;color:var(--bm-dark);margin-bottom:16px;}
.bm-search-head h1 em{color:var(--bm-primary);font-style:normal;}
.bm-search-form-lg{display:flex;max-width:640px;height:46px;border:2px solid var(--bm-primary);border-radius:23px;overflow:hidden;}
.bm-search-form-lg input{flex:1;border:0;outline:none;padding:0 20px;font-size:14px;}
.bm-search-form-lg select{border:0;background:#f7f8fa;color:#666;font-size:13px;padding:0 10px;outline:none;}
.bm-search-form-lg button{width:100px;border:0;background:var(--bm-primary);color:#fff;font-size:15px;cursor:pointer;}
.bm-search-form-lg button:hover{background:var(--bm-primary-dark);}
.bm-search-hotwords{margin-top:12px;font-size:12px;color:#999;}
.bm-search-hotwords a{color:#777;margin-right:12px;}
.bm-search-hotwords a:hover{color:var(--bm-primary);}

/* ---------------- 列表条（搜索/列表页水平条） ---------------- */
.bm-book-row{display:flex;padding:16px 20px;border-bottom:1px dashed var(--bm-border);transition:background .2s;}
.bm-book-row:last-child{border-bottom:0;}
.bm-book-row:hover{background:#fffaf9;}
.bm-book-row .bm-row-cover{flex:0 0 auto;width:90px;height:120px;object-fit:cover;border-radius:5px;overflow:hidden;}
.bm-book-row .bm-row-info{flex:1;padding-left:18px;min-width:0;}
.bm-book-row h3{font-size:16px;color:var(--bm-text);margin-bottom:6px;}
.bm-book-row h3 a:hover{color:var(--bm-primary);}
.bm-book-row .bm-row-meta{font-size:12px;color:#999;margin-bottom:8px;display:flex;gap:14px;align-items:center;}
.bm-book-row .bm-row-meta .bm-row-tag{padding:1px 9px;border-radius:9px;font-size:11px;}
.bm-book-row .bm-row-intro{font-size:13px;color:#888;line-height:1.8;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.bm-book-row .bm-row-actions{flex:0 0 auto;display:flex;flex-direction:column;justify-content:center;align-items:center;padding-left:20px;gap:8px;}

/* ---------------- 侧栏组件 ---------------- */
.bm-side-box{background:#fff;border:1px solid var(--bm-border);border-radius:8px;margin-bottom:18px;overflow:hidden;}
.bm-side-box h3{height:46px;line-height:46px;padding:0 18px;font-size:15px;color:var(--bm-dark);border-bottom:1px solid var(--bm-border);display:flex;align-items:center;}
.bm-side-box h3::before{content:"";width:4px;height:15px;border-radius:2px;background:var(--bm-primary);margin-right:8px;}
.bm-side-box .bm-side-body{padding:12px 16px;}
.bm-side-rank li{display:flex;align-items:center;padding:8px 0;font-size:13px;color:#555;border-bottom:1px dashed #f0f1f4;}
.bm-side-rank li:last-child{border-bottom:0;}
.bm-side-rank li a{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bm-side-rank li a:hover{color:var(--bm-primary);}
.bm-side-rank li b{width:20px;height:20px;border-radius:4px;background:#eef0f3;color:#999;font-size:12px;text-align:center;line-height:20px;margin-right:9px;flex:0 0 auto;font-weight:normal;}
.bm-side-rank li:nth-child(-n+3) b{background:var(--bm-primary);color:#fff;}
.bm-side-cats a{display:block;padding:7px 10px;border-radius:5px;color:#555;font-size:13px;}
.bm-side-cats a:hover,.bm-side-cats a.bm-active{background:#fff5f4;color:var(--bm-primary);}
.bm-side-cats a.bm-sub{padding-left:26px;color:#999;font-size:12px;}
.bm-side-announce{font-size:13px;color:#777;line-height:2;}

/* 侧栏最近阅读 */
.bm-side-read{text-align:center;padding:6px 0;}
.bm-sr-chapter{font-size:12px;color:var(--bm-text-gray);}
.bm-sr-name{font-size:14px;color:var(--bm-dark);font-weight:bold;margin:6px 0 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bm-sr-btn{width:100%;}

/* ---------------- 底部 ---------------- */
.bm-footer{background:var(--bm-dark);color:#9aa0ac;font-size:13px;padding:34px 0;margin-top:20px;}
.bm-footer .bm-container{display:flex;flex-direction:column;align-items:center;gap:8px;}
.bm-footer .bm-f-nav a{color:#9aa0ac;margin:0 12px;}
.bm-footer .bm-f-nav a:hover{color:#fff;}
.bm-footer .bm-f-nav a + a{border-left:1px solid #454a55;padding-left:24px;}

/* ---------------- 空状态 ---------------- */
.bm-empty{text-align:center;padding:60px 0;color:#b0b4bb;font-size:14px;}
.bm-empty::before{content:"📚";display:block;font-size:46px;margin-bottom:14px;}

/* ---------------- 弹层（layer 自定义） ---------------- */
.bm-dialog-tip{font-size:14px;color:#555;line-height:1.9;padding:6px 2px;}
.bm-dialog-tip b{color:var(--bm-primary);}

/* ---------------- 响应式微调 ---------------- */
@media (max-width:1240px){
    .bm-container{width:auto;padding:0 14px;}
}

/* ============================================
   积分中心 / 每日签到 / 任务中心 / 积分充值
   ============================================ */

/* 积分概览 */
.bm-points-overview{display:flex;background:linear-gradient(180deg,#fff,#fff8f7);}
.bm-points-overview .bm-pt-stat{flex:1;text-align:center;padding:24px 10px;border-right:1px solid var(--bm-border);}
.bm-points-overview .bm-pt-stat:last-child{border-right:0;}
.bm-pt-num{font-size:30px;font-weight:bold;color:var(--bm-primary);line-height:1.2;}
.bm-pt-label{font-size:12px;color:var(--bm-text-gray);margin-top:6px;}

/* 通用表格（积分明细 / 充值记录） */
.bm-table{width:100%;border-collapse:collapse;font-size:13px;}
.bm-table thead th{background:#fafbfc;color:#666;font-weight:normal;text-align:left;padding:12px 20px;border-bottom:1px solid var(--bm-border);}
.bm-table tbody td{padding:12px 20px;border-bottom:1px dashed var(--bm-border);color:#555;}
.bm-table tbody tr:last-child td{border-bottom:0;}
.bm-table tbody tr:hover{background:#fffaf9;}

/* 积分正负 */
.bm-score-up{color:var(--bm-primary);font-weight:bold;}
.bm-score-down{color:#16a085;font-weight:bold;}

/* 徽标 */
.bm-badge{display:inline-block;padding:1px 10px;border-radius:10px;font-size:11px;color:#8a8f99;background:#f2f3f5;}
.bm-badge-ok{color:#16a085;background:#e8f8f4;}

/* 签到日历 */
.bm-cal{border:1px solid var(--bm-border);border-radius:8px;overflow:hidden;}
.bm-cal-week{display:grid;grid-template-columns:repeat(7,1fr);background:#fafbfc;border-bottom:1px solid var(--bm-border);}
.bm-cal-week span{text-align:center;padding:10px 0;font-size:13px;color:#999;}
.bm-cal-body{display:grid;grid-template-columns:repeat(7,1fr);}
.bm-cal-body .bm-cal-day{text-align:center;padding:13px 0;font-size:14px;color:#555;}
.bm-cal-signed{background:var(--bm-primary);color:#fff;font-weight:bold;box-shadow:inset 0 0 0 1px var(--bm-primary);}
.bm-cal-today{outline:2px solid #ffb800;outline-offset:-2px;}
.bm-cal-empty{visibility:hidden;}

/* 签到规则 */
.bm-sign-rules{font-size:13px;color:#777;line-height:2.2;}
.bm-sign-rules b{color:var(--bm-primary);}

/* 任务列表 */
.bm-task-list{padding:0 20px;}
.bm-task-item{display:flex;align-items:center;padding:18px 0;border-bottom:1px dashed var(--bm-border);}
.bm-task-item:last-child{border-bottom:0;}
.bm-task-info{flex:1;min-width:0;padding-right:24px;}
.bm-task-name{font-size:15px;color:var(--bm-dark);font-weight:bold;display:flex;align-items:center;gap:10px;}
.bm-task-name .bm-badge{flex:0 0 auto;}
.bm-task-desc{font-size:13px;color:#888;margin-top:6px;}
.bm-task-progress{height:8px;background:#eef0f3;border-radius:4px;overflow:hidden;margin-top:12px;}
.bm-task-progress i{display:block;height:100%;background:linear-gradient(90deg,#ff8f70,var(--bm-primary));border-radius:4px;}
.bm-task-progress-text{font-size:12px;color:var(--bm-text-gray);margin-top:6px;}
.bm-task-reward{flex:0 0 auto;text-align:center;min-width:84px;}
.bm-task-points{display:block;font-size:22px;font-weight:bold;color:var(--bm-primary);line-height:1.2;}
.bm-task-points-label{display:block;font-size:12px;color:var(--bm-text-gray);margin-top:2px;}

/* 充值表单 */
.bm-recharge-form{max-width:620px;}
.bm-rf-row{display:flex;align-items:center;margin-bottom:16px;gap:12px;}
.bm-rf-label{flex:0 0 96px;font-size:14px;color:#666;text-align:right;}
.bm-rf-input{flex:1;height:40px;border:1px solid var(--bm-border);border-radius:6px;padding:0 14px;font-size:14px;outline:none;transition:border-color .2s;}
.bm-rf-input:focus{border-color:var(--bm-primary);}
.bm-rf-tip{font-size:13px;color:var(--bm-primary);white-space:nowrap;}

/* 支付方式列表 */
.bm-pay-item{display:flex;align-items:center;gap:16px;padding:16px 20px;border:1px solid var(--bm-border);border-radius:8px;margin-bottom:12px;background:#fff;transition:border-color .2s, box-shadow .2s;}
.bm-pay-item:hover{border-color:var(--bm-primary);box-shadow:0 2px 10px rgba(0,0,0,.05);}
.bm-pay-icon{flex:0 0 auto;width:44px;height:44px;border-radius:8px;background:#fff5f4;color:var(--bm-primary);font-size:13px;font-weight:bold;display:flex;align-items:center;justify-content:center;}
.bm-pay-info{flex:1;min-width:0;}
.bm-pay-name{font-size:15px;color:var(--bm-dark);font-weight:bold;}
.bm-pay-desc{font-size:13px;color:#888;margin-top:4px;}
.bm-pay-btn{flex:0 0 auto;min-width:96px;}

/* 微信扫码支付弹窗 */
.bm-mask{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.55);z-index:1000;display:flex;align-items:center;justify-content:center;}
.bm-qrcode-box{background:#fff;border-radius:10px;padding:28px 34px;text-align:center;width:300px;}
.bm-qrcode-title{font-size:16px;color:var(--bm-dark);font-weight:bold;margin-bottom:16px;}
.bm-qrcode-img img{width:210px;height:210px;border:1px solid var(--bm-border);border-radius:6px;display:block;margin:0 auto;}
.bm-qrcode-tip{font-size:13px;color:#888;margin:14px 0 18px;}

/* ---------------- 广告位 ---------------- */
.bm-ad{margin-bottom:18px;border-radius:8px;overflow:hidden;text-align:center;}
.bm-ad img{width:100%;display:block;}
.bm-ad-text{display:block;padding:14px;background:#fff;border:1px solid var(--bm-border);color:#666;font-size:14px;text-align:center;border-radius:8px;}
.bm-ad-text:hover{color:var(--bm-primary);border-color:var(--bm-primary);}
