/* ============================================================
   Emoji 禁用规则（强制，详见 docs/页面模块创建规范.md）
   空白字体接管 U+1F000-1FAFF emoji 区段（📖🏠🎬🔥 等），与 style.css 中规则保持一致；
   ✓ ✗ ❌ ✅ ★ 等普通符号不在覆盖区段内，不受影响。
   ============================================================ */
@font-face { font-family: 'XD Emoji Block'; src: url('../fonts/emoji-blank.woff2') format('woff2'); font-display: block; unicode-range: U+1F000-1FAFF; }
@font-face { font-family: 'Apple Color Emoji'; src: url('../fonts/emoji-blank.woff2') format('woff2'); font-display: block; unicode-range: U+1F000-1FAFF; }
@font-face { font-family: 'Segoe UI Emoji'; src: url('../fonts/emoji-blank.woff2') format('woff2'); font-display: block; unicode-range: U+1F000-1FAFF; }
@font-face { font-family: 'Noto Color Emoji'; src: url('../fonts/emoji-blank.woff2') format('woff2'); font-display: block; unicode-range: U+1F000-1FAFF; }

/* ============================================================
   X-Dream CMS - 内容区样式表（content.css）
   ------------------------------------------------------------
   本文件只包含"内容区"（<main class="main-content"> 内部）的
   组件样式，与顶部导航/底部页脚完全隔离：
   - 优化内容区样式时只允许修改本文件
   - 导航条 / 页脚 / 全局基础样式位于 style.css，禁止在此重复定义
   - 全站页面（前台 header.php、后台 admin/header.php、
     作者 author/header.php）均在 style.css 之后加载本文件
   ============================================================ */

/* ============================================================
   Novel Grid & Cards
   ============================================================ */
.novel-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 20px;
}
.novel-card {
    background: #fff;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
    transition: transform .2s, box-shadow .2s;
}
.novel-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-hover);
}
.novel-cover {
    aspect-ratio: 3/4;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    position: relative;
    overflow: hidden;
}
.novel-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.cover-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 48px;
    font-weight: 700;
}
.novel-card h4 {
    padding: 12px 12px 4px;
    font-size: 15px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.novel-card p {
    padding: 0 12px 12px;
    font-size: 13px;
    color: var(--text-light);
}
.novel-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 12px 12px;
    font-size: 12px;
    color: var(--text-light);
}

/* ============================================================
   Section & Page Header
   ============================================================ */
.section { padding: 30px 0; }
.section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}
.section-header h2 {
    font-size: 20px;
    font-weight: 700;
}
.page-header {
    text-align: center;
    margin: 30px 0;
}
.page-title {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 8px;
}
.page-subtitle {
    color: var(--text-light);
    font-size: 15px;
}

/* ============================================================
   Novel Detail
   ============================================================ */
.novel-detail {
    display: flex;
    gap: 30px;
    background: #fff;
    border-radius: var(--radius);
    padding: 24px;
    box-shadow: var(--shadow);
    margin-bottom: 24px;
}
.novel-detail-cover {
    width: 200px;
    flex-shrink: 0;
}
.novel-detail-cover img {
    width: 100%;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}
.cover-placeholder-lg {
    width: 100%;
    aspect-ratio: 3/4;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: var(--radius);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 64px;
    font-weight: 700;
}
.novel-detail-info { flex: 1; min-width: 0; }
.novel-detail-title {
    font-size: 24px;
    line-height: 1.3;
    margin-bottom: 12px;
}
.novel-detail-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 24px;
}
.novel-detail-meta p {
    margin: 0;
    color: var(--text-light);
    font-size: 14px;
}
.novel-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 18px;
}
.novel-actions {
    display: flex;
    gap: 12px;
    margin-top: 16px;
}
/* 简介卡片 */
.novel-description {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 20px 24px;
    margin-bottom: 24px;
}
.novel-description h3 { font-size: 16px; margin: 0 0 10px; color: var(--dark); }
.description-text { font-size: 14px; line-height: 1.9; color: var(--text); word-break: break-word; }

/* ============================================================
   Chapter List
   ============================================================ */
.chapter-list {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    overflow: hidden;
}
.chapter-list-section {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 20px 24px;
    margin-bottom: 24px;
}
/* 章节网格：PC 多列磁贴，窄屏自动降列直至单列 */
.chapter-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 10px;
}
.chapter-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: var(--gray-bg);
    border: 1px solid transparent;
    border-radius: 8px;
    font-size: 14px;
    color: var(--text);
    text-decoration: none;
    min-width: 0;
    transition: all .15s;
}
.chapter-item:hover { background: #fff; border-color: var(--primary); color: var(--primary); }
.chapter-order { flex-shrink: 0; font-size: 12px; color: var(--text-light); }
.chapter-item:hover .chapter-order { color: var(--primary); }
.chapter-item .chapter-title {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.chapter-words { flex-shrink: 0; font-size: 12px; color: var(--text-light); }

/* ============================================================
   Reading Page
   ============================================================ */
.reading-page { background: #fff; min-height: 100vh; }
.reading-header {
    position: relative;
    background: var(--dark);
    color: #fff;
    padding: 20px 0;
}
.reading-header .breadcrumb a { color: rgba(255,255,255,0.7); }
.reading-header .breadcrumb a:hover { color: #fff; }
.reading-title {
    font-size: 22px;
    margin: 12px 0 8px;
}
.reading-info {
    font-size: 14px;
    color: rgba(255,255,255,0.6);
}
.reading-info .sep { margin: 0 8px; }
.reading-content { padding: 40px 0; }
.chapter-text {
    max-width: 800px;
    margin: 0 auto;
    font-size: 18px;
    line-height: 1.8;
    color: var(--text);
    word-break: break-word;
}
.chapter-text p { margin-bottom: 1.5em; text-indent: 2em; }

/* 章节付费 / 登录门控（服务端未下发正文时展示的锁面板） */
.chapter-gate {
    max-width: 520px;
    margin: 0 auto;
    padding: 40px 28px;
    text-align: center;
    background: var(--gray-bg);
    border: 1px solid var(--gray-border);
    border-radius: 12px;
}
.chapter-gate .gate-icon { font-size: 34px; line-height: 1; }
.chapter-gate .gate-title { font-size: 20px; margin: 14px 0 8px; }
.chapter-gate .gate-desc { font-size: 14px; color: var(--text-light); margin-bottom: 20px; }
.chapter-gate .gate-desc .sep { margin: 0 8px; }
.chapter-gate .gate-actions { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; }
.chapter-gate .gate-hint { margin-top: 14px; font-size: 12px; color: var(--text-light); }

/* 目录中的未发布草稿标记 */
.chapter-draft {
    display: inline-block;
    margin-left: 4px;
    padding: 1px 6px;
    font-size: 11px;
    font-style: normal;
    border-radius: 4px;
    background: var(--primary);
    color: #fff;
    vertical-align: 1px;
}

/* 阅读工具组（头部右上角：设置 + 目录） */
.reader-tools {
    position: absolute;
    top: 16px;
    right: 16px;
    display: flex;
    gap: 8px;
    z-index: 6;
}
.toc-toggle {
    background: rgba(255,255,255,0.12);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.25);
    border-radius: 6px;
    padding: 6px 14px;
    font-size: 13px;
    cursor: pointer;
    transition: background .15s;
}
.toc-toggle:hover { background: rgba(255,255,255,0.22); }

/* 禁用态按钮（如"已是第一章 / 已是最后一章"） */
.btn-disabled {
    opacity: .55;
    cursor: not-allowed;
    background: transparent;
    color: var(--text-light);
    border-color: var(--gray-border);
}

/* 底部上下章导航：与正文同宽居中 */
.reading-nav { padding: 8px 0 48px; }
.reading-nav-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    max-width: 800px;
    margin: 0 auto;
    flex-wrap: wrap;
}
.reading-nav-inner .btn { flex: 1; text-align: center; min-width: 110px; }

/* 章节目录侧拉抽屉 */
.chapter-toc {
    position: fixed;
    top: 0;
    right: 0;
    width: 300px;
    max-width: 85vw;
    height: 100%;
    background: #fff;
    z-index: 1001;
    box-shadow: -4px 0 24px rgba(0,0,0,0.15);
    transform: translateX(100%);
    transition: transform .25s ease;
    display: flex;
    flex-direction: column;
}
.chapter-toc.open { transform: translateX(0); }
.toc-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 16px;
    border-bottom: 1px solid var(--gray-border);
    flex-shrink: 0;
}
.toc-header h3 { margin: 0; font-size: 15px; color: var(--dark); }
.toc-close {
    background: none;
    border: none;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    color: var(--text-light);
    padding: 0 4px;
}
.toc-body { overflow-y: auto; padding: 10px; }
.toc-item {
    display: block;
    padding: 10px 12px;
    border-radius: 6px;
    font-size: 14px;
    color: var(--text);
    text-decoration: none;
}
.toc-item:hover { background: var(--gray-bg); color: var(--primary); }
.toc-item.active { background: var(--primary); color: #fff; }
.toc-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 1000;
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s;
}
.toc-overlay.show { opacity: 1; pointer-events: auto; }

/* ============================================================
   Comments
   ============================================================ */
.comment-list { margin-top: 24px; }
.comment-item {
    display: flex;
    gap: 12px;
    padding: 16px 0;
    border-bottom: 1px solid var(--gray-bg);
}
.comment-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    flex-shrink: 0;
    position: relative;
    isolation: isolate;
    overflow: hidden;
}
.comment-avatar img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
}
.comment-body { flex: 1; }
.comment-header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 6px;
}
.comment-author { font-weight: 600; font-size: 14px; }
.comment-time { font-size: 12px; color: var(--text-light); }
.comment-content { font-size: 14px; line-height: 1.6; }
.comment-form {
    background: #fff;
    border-radius: var(--radius);
    padding: 20px;
    box-shadow: var(--shadow);
    margin-bottom: 20px;
}

/* ============================================================
   Moments 动态卡片（广场列表 + 详情页共用）
   原为 moments.php 页内 <style>，仅广场分支输出导致详情页裸奔，
   迁移至此统一加载（详情页/广场页/首页引用处均生效）
   ============================================================ */
.moment-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
.moment-avatar {
    width: 40px; height: 40px;
    border-radius: 50%;
    background: var(--gray-bg);
    display: flex; align-items: center; justify-content: center;
    font-size: 18px; font-weight: 600; color: var(--primary);
    flex-shrink: 0; overflow: hidden;
    text-decoration: none;
}
.moment-avatar img {
    width: 100%; height: 100%;
    border-radius: 50%; object-fit: cover;
}
.moment-author-name {
    font-weight: 600; font-size: 14px;
    color: var(--dark);
    text-decoration: none;
}
.moment-author-name:hover { color: var(--primary); }
.moment-time {
    font-size: 12px; color: var(--text-light);
    margin-top: 2px;
}
.moment-content {
    font-size: 15px; line-height: 1.7;
    color: var(--text);
    margin-bottom: 12px;
    word-break: break-word;
}
.moment-media-grid {
    display: grid;
    gap: 6px;
    margin-bottom: 12px;
    max-width: 100%;
    overflow: hidden;
}
.moment-media-grid.grid-1 { grid-template-columns: 1fr; max-width: 480px; }
.moment-media-grid.grid-2 { grid-template-columns: repeat(2, 1fr); max-width: 480px; }
.moment-media-grid.grid-3 { grid-template-columns: repeat(3, 1fr); }
.moment-media-grid.grid-4, .moment-media-grid.grid-5, .moment-media-grid.grid-6 {
    grid-template-columns: repeat(3, 1fr);
}
.moment-media-grid.grid-7, .moment-media-grid.grid-8, .moment-media-grid.grid-9 {
    grid-template-columns: repeat(3, 1fr);
}
.moment-media-item {
    border-radius: 6px; overflow: hidden;
    background: var(--gray-bg);
    cursor: pointer;
    position: relative;
    min-width: 0;
    aspect-ratio: 1;
}
.moment-media-item img, .moment-media-item video {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    max-width: 100%;
}
.moment-media-item.video-item {
    aspect-ratio: auto;
}
.moment-media-item.video-item video {
    max-height: 360px;
    object-fit: contain;
    background: #000;
}
.moment-media-grid.grid-1 .moment-media-item {
    aspect-ratio: auto;
}
.moment-media-grid.grid-1 .moment-media-item img {
    max-height: 500px;
    object-fit: contain;
    background: var(--gray-bg);
}
.moment-media-grid.grid-1 .moment-media-item video {
    max-height: 400px;
    object-fit: contain;
    background: #000;
}
.moment-media-item .media-placeholder {
    width: 100%; aspect-ratio: 1;
    display: flex; align-items: center; justify-content: center;
    background: var(--gray-bg);
    font-size: 24px; color: var(--text-light);
}
.moment-media-item .video-badge {
    position: absolute; top: 6px; right: 6px;
    background: rgba(0,0,0,0.6); color: #fff;
    border-radius: 4px; padding: 2px 6px;
    font-size: 11px;
}
.moment-actions {
    display: flex; gap: 20px;
    padding-top: 10px;
    border-top: 1px solid var(--gray-border);
}
.moment-action-btn {
    display: flex; align-items: center; gap: 5px;
    background: none; border: none;
    font-size: 13px; color: var(--text-light);
    cursor: pointer; padding: 4px 8px;
    border-radius: 4px; transition: all 0.15s;
    text-decoration: none;
}
.moment-action-btn:hover {
    background: var(--gray-bg);
    color: var(--primary);
}
.moment-action-btn.liked {
    color: var(--danger);
}
.moment-action-btn.liked .icon svg { fill: currentColor; }
/* 图标统一为内联 SVG，颜色跟随 currentColor（点赞态由 .liked 变红） */
.moment-action-btn .icon {
    display: flex; align-items: center; justify-content: center;
    width: 16px; height: 16px;
}
.moment-action-btn .icon svg { width: 16px; height: 16px; display: block; }
.moment-delete-btn {
    margin-left: auto;
    color: var(--danger) !important;
}
/* 动态评论区紧凑样式（作用域限定，不污染全局 Comments 区块） */
.moment-comments-section .comment-list { margin-top: 0; }
.moment-comments-section .comment-item {
    display: flex; gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid var(--gray-border);
}
.moment-comments-section .comment-item:last-child { border-bottom: none; }
.moment-comments-section .comment-avatar {
    width: 32px; height: 32px;
    border-radius: 50%;
    background: var(--gray-bg);
    color: var(--primary);
    display: flex; align-items: center; justify-content: center;
    font-size: 14px; font-weight: 600;
    flex-shrink: 0; overflow: hidden;
}
.moment-comments-section .comment-avatar img {
    width: 100%; height: 100%;
    border-radius: 50%; object-fit: cover;
}
.moment-comments-section .comment-body { flex: 1; }
.moment-comments-section .comment-author {
    font-size: 13px; font-weight: 600;
    color: var(--dark);
    text-decoration: none;
}
.moment-comments-section .comment-content {
    font-size: 13px; line-height: 1.5;
    color: var(--text);
    margin: 2px 0;
    word-break: break-word;
}
.moment-comments-section .comment-time {
    font-size: 11px; color: var(--text-light);
}
.btn-sm {
    padding: 4px 12px; font-size: 13px;
}
@media (max-width: 600px) {
    .moment-media-grid.grid-2 { grid-template-columns: 1fr; max-width: 100%; }
    .moment-media-grid.grid-1 { max-width: 100%; }
    .moment-media-grid.grid-1 .moment-media-item img { max-height: 300px; }
    .moment-media-grid.grid-1 .moment-media-item video { max-height: 240px; }
    .moment-media-item.video-item video { max-height: 240px; }
}

/* ============================================================
   Bookshelf
   ============================================================ */
.bookshelf-list { display: flex; flex-direction: column; gap: 16px; }
.bookshelf-item {
    display: flex;
    gap: 16px;
    background: #fff;
    border-radius: var(--radius);
    padding: 16px;
    box-shadow: var(--shadow);
}
.novel-cover-sm { width: 80px; height: 110px; flex-shrink: 0; border-radius: 4px; overflow: hidden; }
.novel-cover-sm img { width: 100%; height: 100%; object-fit: cover; }
.cover-placeholder-sm {
    width: 100%; height: 100%;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-size: 28px; font-weight: 700;
}
.bookshelf-info { flex: 1; }
.bookshelf-info h4 { font-size: 16px; margin-bottom: 6px; }
.bookshelf-info p { font-size: 13px; color: var(--text-light); margin-bottom: 4px; }
.bookshelf-actions { display: flex; gap: 8px; margin-top: 8px; }

/* ============================================================
   Search
   ============================================================ */
.search-page-header { text-align: center; margin-bottom: 24px; }
.search-large {
    max-width: 600px;
    margin: 0 auto 30px;
}
.search-large form {
    display: flex;
    gap: 8px;
}
.search-large input {
    flex: 1;
    padding: 14px 20px;
    border: 2px solid var(--gray-border);
    border-radius: var(--radius);
    font-size: 16px;
}
.search-large input:focus {
    outline: none;
    border-color: var(--primary);
}

/* ============================================================
   Pagination
   ============================================================ */
.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    margin-top: 30px;
}
.pagination a, .pagination span {
    padding: 8px 14px;
    border-radius: var(--radius);
    font-size: 14px;
    background: #fff;
    color: var(--text);
    border: 1px solid var(--gray-border);
}
.pagination a:hover { background: var(--primary); color: #fff; border-color: var(--primary); }
.pagination .current { background: var(--primary); color: #fff; border-color: var(--primary); }

/* ============================================================
   Empty State
   ============================================================ */
.empty-state {
    text-align: center;
    padding: 60px 20px;
    color: var(--text-light);
}
.empty-state p { font-size: 16px; margin-bottom: 12px; }
.empty-hint { font-size: 14px; }

/* ============================================================
   Breadcrumb
   ============================================================ */
.breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--text-light);
    margin-bottom: 16px;
}
.breadcrumb a { color: var(--text-light); }
.breadcrumb a:hover { color: var(--primary); }

/* ============================================================
   Mobile Category Nav
   ============================================================ */
.mobile-cat-nav {
    display: none;
    background: #fff;
    border-bottom: 1px solid var(--gray-border);
    padding: 10px 0;
    margin-bottom: 6px;
    overflow: hidden;
}
.mobile-cat-scroll {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 0 20px;
    scrollbar-width: none;
}
.mobile-cat-scroll::-webkit-scrollbar { display: none; }
.mobile-cat-item {
    white-space: nowrap;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 13px;
    background: var(--gray-bg);
    color: var(--text);
    border: 1px solid transparent;
}
.mobile-cat-item.active {
    background: var(--primary);
    color: #fff;
}

/* ============================================================
   Profile Page
   ============================================================ */
.profile-basic-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.profile-basic-grid .profile-private-row {
    grid-column: 1 / -1;
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-left: 3px solid var(--primary);
    padding: 12px 16px;
    border-radius: 0 var(--radius) var(--radius) 0;
}

/* ============================================================
   Verification System - 认证系统样式
   ============================================================ */
.veri-avatar-wrap {
    position: relative;
    display: inline-block;
}
.veri-avatar-badges {
    position: absolute;
    bottom: -6px;
    right: -6px;
    display: flex;
    gap: 2px;
    flex-wrap: wrap;
    justify-content: flex-end;
    max-width: 80px;
}
.veri-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    font-size: 12px;
    line-height: 1;
    background: var(--primary);
    color: #fff;
    border-radius: 50%;
    cursor: pointer;
    user-select: none;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
.veri-badge-inline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    font-size: 10px;
    line-height: 1;
    background: var(--primary);
    color: #fff;
    border-radius: 50%;
    cursor: pointer;
    user-select: none;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
    vertical-align: middle;
    margin-left: 2px;
}
.veri-tooltip {
    position: fixed;
    z-index: 9999;
    background: var(--dark);
    color: #fff;
    font-size: 13px;
    padding: 6px 12px;
    border-radius: 6px;
    max-width: 280px;
    word-wrap: break-word;
    pointer-events: none;
    white-space: pre-wrap;
    line-height: 1.5;
    box-shadow: 0 4px 12px rgba(0,0,0,0.25);
}
.veri-tooltip::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 6px solid transparent;
    border-top-color: var(--dark);
}
.veri-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}
.veri-list-item {
    display: flex;
    align-items: center;
    gap: 6px;
    background: var(--gray-bg);
    border: 1px solid var(--gray-border);
    border-radius: var(--radius);
    padding: 6px 12px;
    font-size: 14px;
}
.veri-list-item .veri-icon {
    font-size: 16px;
}
.veri-list-item .veri-name {
    font-weight: 500;
}
.veri-list-item .veri-data {
    color: var(--text-light);
    font-size: 13px;
}
.veri-apply-card {
    background: #fff;
    border-radius: var(--radius);
    padding: 20px;
    box-shadow: var(--shadow);
    margin-bottom: 16px;
}
.veri-apply-status {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}
.veri-status-0 { background: #fff3e0; color: #e65100; }
.veri-status-1 { background: #e8f5e9; color: #2e7d32; }
.veri-status-2 { background: #ffebee; color: #c62828; }
.veri-status-text { font-size: 12px; color: var(--text-light); margin-top: 4px; }

/* 移动端适配 */
@media (max-width: 768px) {
    .veri-avatar-badges { max-width: 60px; }
    .veri-badge { width: 16px; height: 16px; font-size: 10px; }
}

/* ============================================================
   内容区响应式规则（自 style.css Responsive 区块迁出）
   ============================================================ */

/* BUG-2026-0007：移除移动端对 .mobile-cat-nav 的 display:block 开启规则。
   该首页分类快捷导航与 v0.3.70 起"导航不直接渲染分类"的设计冲突，
   基础规则保持 display:none，全端不再出现；markup 保留但 inert。 */

@media (max-width: 768px) {
    .novel-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; }
    .novel-cover { aspect-ratio: 3/4; }
    /* 详情页移动端：封面左 / 信息右 水平并排 */
    .novel-detail { flex-direction: row; align-items: flex-start; gap: 16px; padding: 16px; }
    .novel-detail-cover { width: 108px; margin: 0; flex-shrink: 0; }
    .novel-detail-title { font-size: 18px; text-align: left; }
    .novel-detail-meta { flex-direction: column; gap: 6px; }
    .novel-detail-actions { margin-top: 12px; }
    .novel-detail-actions .btn { flex: 1; padding: 8px 10px; font-size: 13px; }
    .novel-description { padding: 16px 18px; }
    .chapter-list-section { padding: 16px 18px; }
    .chapter-grid { grid-template-columns: 1fr; }
    /* 阅读页移动端 */
    .reading-content { padding: 20px 0; }
    .chapter-text { font-size: 16px; }
    .reading-title { font-size: 18px; }
    .reading-nav { padding-bottom: 32px; }
    .reader-tools { top: 12px; right: 12px; }
    .bookshelf-item { flex-direction: column; align-items: stretch; text-align: center; }
    .bookshelf-actions { justify-content: center; }
    .search-large form { flex-direction: column; }
}

/* ============================================================
   全站热搜榜（首页 hotsearch 栏目，百度热搜榜式双列排名）
   ============================================================ */
.hotsearch-board {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2px 36px;
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 16px 24px;
}
.hotsearch-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 4px;
    border-bottom: 1px dashed #f0f0f0;
    font-size: 14px;
    color: var(--text);
    min-width: 0;
}
.hotsearch-item:hover .hotsearch-title { color: var(--primary); }
.hotsearch-rank {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    font-style: italic;
    color: #999;
    background: var(--gray-bg);
    border-radius: 4px;
}
.hotsearch-rank.top1 { color: #fff; background: #fe2d46; }
.hotsearch-rank.top2 { color: #fff; background: #ff7f1d; }
.hotsearch-rank.top3 { color: #fff; background: #ffaa00; }
.hotsearch-title {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.hotsearch-type {
    flex-shrink: 0;
    font-size: 11px;
    padding: 1px 7px;
    border-radius: 3px;
    background: var(--gray-bg);
    color: var(--text-light);
    border: 1px solid var(--gray-border);
}
.hotsearch-type.type-news { color: #c0392b; background: #fdecea; border-color: #f5c6c0; }
.hotsearch-type.type-encyclopedia { color: var(--primary); background: #f0edfd; border-color: #d6cff8; }
.hotsearch-type.type-novel { color: #0e8a5f; background: #e7f6ef; border-color: #bfe5d3; }
.hotsearch-type.type-drama { color: #b45f06; background: #fdf3e3; border-color: #f0dcb0; }
.hotsearch-type.type-video { color: #1a6fb0; background: #e8f2fb; border-color: #c4ddf2; }
.hotsearch-heat {
    flex-shrink: 0;
    font-size: 12px;
    color: #bbb;
    min-width: 44px;
    text-align: right;
}
@media (max-width: 768px) {
    .hotsearch-board { grid-template-columns: 1fr; gap: 0; padding: 10px 16px; }
    .hotsearch-item { padding: 8px 2px; font-size: 13.5px; }
}

