/* ============================================================
   DJZY通用BBS v5.0 — 论坛风格样式表
   GitHub Issue 风格 · 扁平现代 · 深浅双色
   ============================================================ */

:root {
    --bbs-primary: #2563eb;
    --bbs-primary-light: #60a5fa;
    --bbs-primary-dark: #1d4ed8;
    --bbs-primary-bg: rgba(37,99,235,0.05);
    --bbs-green: #1a7f37;
    --bbs-green-bg: rgba(26,127,55,0.06);
    --bbs-yellow: #bf8700;
    --bbs-yellow-bg: rgba(191,135,0,0.06);
    --bbs-red: #cf222e;
    --bbs-red-bg: rgba(207,34,46,0.06);
    --bbs-orange: #bc4c00;
    --bbs-bg: #f0f2f5;
    --bbs-bg-card: #ffffff;
    --bbs-bg-hover: #f6f8fa;
    --bbs-bg-active: #eef1f5;
    --bbs-bg-header: #1b2030;
    --bbs-bg-footer: #1b2030;
    --bbs-text: #1f2328;
    --bbs-text-sec: #656d76;
    --bbs-text-muted: #8b949e;
    --bbs-text-header: #e6edf3;
    --bbs-border: #d8dee4;
    --bbs-border-light: #e8ecf0;
    --bbs-shadow-sm: 0 1px 2px rgba(0,0,0,0.04);
    --bbs-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
    --bbs-shadow-md: 0 4px 12px rgba(0,0,0,0.08);
    --bbs-radius: 6px;
    --bbs-radius-lg: 10px;
    --bbs-radius-xl: 14px;
    --bbs-transition: all 0.2s ease;
    --bbs-container: 1200px;
    --bbs-header-height: 52px;
}

html[data-theme="dark"] {
    --bbs-bg: #0d1117;
    --bbs-bg-card: #161b22;
    --bbs-bg-hover: #1c2128;
    --bbs-bg-active: #21262d;
    --bbs-bg-header: #010409;
    --bbs-bg-footer: #010409;
    --bbs-text: #e6edf3;
    --bbs-text-sec: #8b949e;
    --bbs-text-muted: #484f58;
    --bbs-text-header: #e6edf3;
    --bbs-border: #30363d;
    --bbs-border-light: #21262d;
    --bbs-primary-bg: rgba(56,139,253,0.1);
    --bbs-green-bg: rgba(46,160,67,0.1);
    --bbs-yellow-bg: rgba(191,135,0,0.1);
    --bbs-red-bg: rgba(248,81,73,0.1);
}

html[data-scheme="blue"] { --bbs-primary: #2563eb; --bbs-bg-header: #0f1b2d; }
html[data-scheme="green"] { --bbs-primary: #1a7f37; --bbs-bg-header: #0a1f12; }
html[data-scheme="orange"] { --bbs-primary: #bc4c00; --bbs-bg-header: #1f0f04; }
html[data-scheme="purple"] { --bbs-primary: #7c3aed; --bbs-bg-header: #150d2e; }
html[data-scheme="red"] { --bbs-primary: #cf222e; --bbs-bg-header: #1f0808; }

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji"; background: var(--bbs-bg); color: var(--bbs-text); line-height: 1.5; font-size: 14px; -webkit-font-smoothing: antialiased; }
a { color: var(--bbs-primary); text-decoration: none; transition: var(--bbs-transition); }
a:hover { text-decoration: underline; }
img { max-width: 100%; }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font: inherit; color: inherit; }
input, select, textarea { font: inherit; }
::selection { background: var(--bbs-primary); color: #fff; }

.bbs-container { max-width: var(--bbs-container); margin: 0 auto; padding: 0 20px; }

/* ==================== 头部 ==================== */
.bbs-header { background: var(--bbs-bg-header); color: var(--bbs-text-header); height: var(--bbs-header-height); position: sticky; top: 0; z-index: 100; box-shadow: 0 1px 0 rgba(255,255,255,0.05); }
.bbs-header-inner { display: flex; align-items: center; height: 100%; gap: 20px; }
.bbs-logo-text { font-size: 18px; font-weight: 700; color: var(--bbs-text-header); letter-spacing: -0.3px; }
.bbs-logo-text:hover { color: var(--bbs-text-header); text-decoration: none; opacity: 0.9; }
.bbs-logo-img { height: 28px; }
.bbs-nav { display: flex; gap: 2px; flex: 1; justify-content: center; flex-wrap: wrap; }
.bbs-nav-link { padding: 6px 14px; border-radius: var(--bbs-radius); color: rgba(255,255,255,0.65); font-size: 14px; font-weight: 500; transition: var(--bbs-transition); white-space: nowrap; position: relative; }
.bbs-nav-item { position: relative; }
.bbs-nav-item:hover .bbs-nav-dropdown { display: block; }
.bbs-nav-dropdown { display: none; position: absolute; top: 100%; left: 0; min-width: 160px; background: var(--bbs-bg-card, #fff); border: 1px solid var(--bbs-border, #e2e8f0); border-radius: var(--bbs-radius, 6px); box-shadow: 0 4px 16px rgba(0,0,0,.12); padding: 4px; z-index: 100; margin-top: 4px; }
.bbs-nav-dropdown a { display: block; padding: 8px 14px; color: var(--bbs-text, #333); font-size: 13px; border-radius: 4px; transition: all .15s; white-space: nowrap; }
.bbs-nav-dropdown a:hover { background: var(--bbs-bg-hover, #f3f4f6); color: var(--bbs-primary, #2563eb); }
.bbs-nav-link:hover { color: #fff; background: rgba(255,255,255,0.08); text-decoration: none; }
.bbs-nav-link.active { color: #fff; background: rgba(255,255,255,0.12); }
.bbs-header-right { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.bbs-icon-btn { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; border-radius: var(--bbs-radius); color: rgba(255,255,255,0.6); font-size: 17px; transition: var(--bbs-transition); }
.bbs-icon-btn:hover { color: #fff; background: rgba(255,255,255,0.1); }
.bbs-hamburger { display: none; }

/* ==================== 按钮 ==================== */
.bbs-btn { display: inline-flex; align-items: center; gap: 5px; padding: 6px 14px; border-radius: var(--bbs-radius); font-size: 13px; font-weight: 500; border: 1px solid transparent; transition: var(--bbs-transition); white-space: nowrap; }
.bbs-btn:hover { text-decoration: none; }
.bbs-btn-sm { padding: 4px 12px; font-size: 12px; }
.bbs-btn-primary { background: var(--bbs-primary); color: #fff; border-color: var(--bbs-primary); }
.bbs-btn-primary:hover { background: var(--bbs-primary-dark); color: #fff; box-shadow: 0 2px 6px rgba(37,99,235,0.3); }
.bbs-btn-outline { border-color: var(--bbs-border); color: var(--bbs-text-sec); background: var(--bbs-bg-card); }
.bbs-btn-outline:hover { border-color: var(--bbs-primary); color: var(--bbs-primary); background: var(--bbs-primary-bg); }
.bbs-btn-block { display: flex; justify-content: center; width: 100%; margin-top: 12px; }

/* ==================== 搜索弹窗 ==================== */
.bbs-search-modal { display: none; position: fixed; inset: 0; z-index: 200; }
.bbs-search-modal.active { display: flex; align-items: flex-start; justify-content: center; padding-top: 15vh; }
.bbs-search-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.5); backdrop-filter: blur(3px); }
.bbs-search-box { position: relative; width: 90%; max-width: 580px; background: var(--bbs-bg-card); border-radius: var(--bbs-radius-xl); box-shadow: 0 16px 48px rgba(0,0,0,0.18); overflow: hidden; z-index: 1; border: 1px solid var(--bbs-border); }
.bbs-search-form { display: flex; align-items: center; padding: 14px 18px; gap: 10px; }
.bbs-search-form i { color: var(--bbs-text-muted); font-size: 18px; }
.bbs-search-form input { flex: 1; border: none; outline: none; background: none; font-size: 15px; color: var(--bbs-text); }
.bbs-search-form kbd { padding: 3px 7px; border-radius: 4px; background: var(--bbs-bg-hover); font-size: 11px; color: var(--bbs-text-muted); border: 1px solid var(--bbs-border); font-family: inherit; }
.bbs-search-suggest { border-top: 1px solid var(--bbs-border-light); }
.bbs-search-suggest:empty { display: none; }
.bbs-search-suggest a { display: block; padding: 10px 18px; color: var(--bbs-text); font-size: 14px; transition: var(--bbs-transition); }
.bbs-search-suggest a:hover { background: var(--bbs-primary-bg); color: var(--bbs-primary); text-decoration: none; }

/* ==================== 移动端菜单 ==================== */
.bbs-mobile-menu { display: none; position: fixed; inset: 0; z-index: 200; }
.bbs-mobile-menu.active { display: block; }
.bbs-mobile-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.5); }
.bbs-mobile-panel { position: absolute; left: 0; top: 0; bottom: 0; width: 280px; background: var(--bbs-bg-card); box-shadow: 4px 0 20px rgba(0,0,0,0.12); }
.bbs-mobile-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--bbs-border); font-weight: 600; font-size: 15px; }
.bbs-mobile-head button { font-size: 24px; color: var(--bbs-text-muted); }
.bbs-mobile-nav a { display: flex; align-items: center; gap: 12px; padding: 11px 20px; color: var(--bbs-text); font-size: 14px; transition: var(--bbs-transition); }
.bbs-mobile-nav a:hover { background: var(--bbs-bg-hover); color: var(--bbs-primary); text-decoration: none; }
.bbs-mobile-nav i { font-size: 17px; color: var(--bbs-text-muted); width: 20px; text-align: center; }

/* ==================== 分类板块导航 ==================== */
.bbs-board-nav { display: flex; flex-direction: row; align-items: center; justify-content: space-between; padding: 0; margin-bottom: 0; flex-wrap: wrap; gap: 10px; background: var(--bbs-bg-card); border: 1px solid var(--bbs-border-light, var(--bbs-border)); border-radius: var(--bbs-radius-lg, 12px); padding: 10px 14px; }
.bbs-board-tabs { display: flex; flex-direction: row; gap: 2px; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; flex: 1; min-width: 0; }
.bbs-board-tabs::-webkit-scrollbar { display: none; }
.bbs-board-tab { display: inline-flex; align-items: center; gap: 5px; padding: 6px 14px; border-radius: 8px; font-size: 13px; font-weight: 500; color: var(--bbs-text-sec); border: none; transition: all .2s ease; white-space: nowrap; position: relative; }
.bbs-board-tab:hover { color: var(--bbs-text); background: var(--bbs-bg-hover); text-decoration: none; }
.bbs-board-tab.active { color: var(--bbs-primary); background: var(--bbs-primary-bg); font-weight: 600; }
.bbs-board-tab i { font-size: 14px; }
.bbs-board-count { font-size: 11px; color: var(--bbs-text-muted); background: var(--bbs-bg-hover); padding: 1px 6px; border-radius: 10px; margin-left: 2px; font-weight: 400; }
.bbs-board-tab.active .bbs-board-count { background: var(--bbs-primary); color: #fff; }
.bbs-board-actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.bbs-sort-dropdown { position: relative; }
.bbs-sort-btn { display: flex; align-items: center; gap: 4px; padding: 6px 12px; border: 1px solid var(--bbs-border-light, var(--bbs-border)); border-radius: 8px; font-size: 12px; color: var(--bbs-text-sec); background: var(--bbs-bg-hover); transition: all .2s ease; cursor: pointer; }
.bbs-sort-btn:hover { border-color: var(--bbs-primary); color: var(--bbs-primary); background: var(--bbs-primary-bg); }
.bbs-sort-menu { display: none; position: absolute; right: 0; top: calc(100% + 4px); background: var(--bbs-bg-card); border: 1px solid var(--bbs-border-light, var(--bbs-border)); border-radius: var(--bbs-radius-lg, 12px); box-shadow: var(--bbs-shadow-md, 0 4px 12px rgba(0,0,0,.1)); min-width: 160px; z-index: 50; overflow: hidden; padding: 4px; }
.bbs-sort-menu::before { content: ''; position: absolute; top: -8px; left: 0; right: 0; height: 8px; }
.bbs-sort-dropdown:hover .bbs-sort-menu { display: block; }
.bbs-sort-item { display: flex; align-items: center; gap: 8px; padding: 8px 12px; font-size: 13px; color: var(--bbs-text); transition: all .15s ease; border-radius: 8px; margin: 2px; }
.bbs-sort-item:hover { background: var(--bbs-primary-bg); color: var(--bbs-primary); text-decoration: none; }
.bbs-sort-item.active { color: var(--bbs-primary); font-weight: 600; background: var(--bbs-primary-bg); }
.bbs-sort-item i { font-size: 15px; color: var(--bbs-text-muted); }
.bbs-sort-item.active i { color: var(--bbs-primary); }

/* ==================== 内容布局 ==================== */
.bbs-content-wrap { display: flex; gap: 20px; padding: 16px 0 40px; }
.bbs-main-content { flex: 1; min-width: 0; }
.bbs-sidebar { width: 290px; flex-shrink: 0; }

/* ==================== 帖子列表 ==================== */
.bbs-thread-list { border: 1px solid var(--bbs-border); border-radius: var(--bbs-radius-lg); overflow: hidden; background: var(--bbs-bg-card); box-shadow: var(--bbs-shadow-sm); }
.bbs-thread-header { display: flex; align-items: center; padding: 10px 16px; background: linear-gradient(var(--bbs-bg-hover), var(--bbs-bg)); border-bottom: 1px solid var(--bbs-border); font-size: 12px; font-weight: 600; color: var(--bbs-text-muted); text-transform: uppercase; letter-spacing: 0.3px; }
.bbs-thread-item { display: flex; align-items: center; padding: 14px 16px; border-bottom: 1px solid var(--bbs-border-light); transition: var(--bbs-transition); position: relative; }
.bbs-thread-item:last-child { border-bottom: none; }
.bbs-thread-item:hover { background: var(--bbs-bg-hover); }
.bbs-thread-item::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: var(--bbs-primary); transition: width 0.15s ease; }
.bbs-thread-item:hover::before { width: 3px; }
.bbs-thread-top { background: var(--bbs-primary-bg); }
.bbs-thread-top:hover { background: var(--bbs-primary-bg); }

/* 列定义 */
.bbs-th-status { width: 36px; flex-shrink: 0; text-align: center; }
.bbs-th-col.bbs-th-title { flex: 1; min-width: 0; display: flex; align-items: flex-start; gap: 12px; }
.bbs-th-col.bbs-th-author { width: 130px; text-align: center; flex-shrink: 0; }
.bbs-th-col.bbs-th-stats { width: 120px; text-align: center; flex-shrink: 0; }
.bbs-th-col.bbs-th-last { width: 110px; text-align: right; flex-shrink: 0; }
.bbs-thread-header .bbs-th-status { width: 36px; }
.bbs-thread-header .bbs-th-title { flex: 1; display: block; }
.bbs-thread-header .bbs-th-author { width: 130px; }
.bbs-thread-header .bbs-th-stats { width: 120px; }
.bbs-thread-header .bbs-th-last { width: 110px; }

/* 封面图 */
.bbs-thread-cover { flex-shrink: 0; border-radius: 6px; overflow: hidden; background: var(--bbs-bg-hover); }
.bbs-thread-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bbs-cover-16-10 { width: 80px; height: 50px; }
.bbs-cover-4-3 { width: 68px; height: 51px; }
.bbs-cover-1-1 { width: 50px; height: 50px; border-radius: 50%; }
.bbs-thread-info { flex: 1; min-width: 0; }

/* 徽章 */
.bbs-badge { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; font-size: 12px; }
.bbs-badge-top { background: var(--bbs-yellow-bg); color: var(--bbs-yellow); }
.bbs-badge-featured { background: var(--bbs-green-bg); color: var(--bbs-green); }
.bbs-badge-hot { background: var(--bbs-red-bg); color: var(--bbs-red); }
.bbs-badge-open { background: var(--bbs-bg-hover); color: var(--bbs-text-muted); }

/* 标题区 */
.bbs-thread-title-row { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 3px; }
.bbs-thread-title { font-size: 15px; font-weight: 600; color: var(--bbs-text); line-height: 1.4; transition: var(--bbs-transition); }
.bbs-thread-title:hover { color: var(--bbs-primary); text-decoration: none; }
.bbs-thread-excerpt { font-size: 12px; color: var(--bbs-text-muted); line-height: 1.4; max-width: 500px; }
.bbs-sort-tag { display: inline-block; padding: 2px 8px; border-radius: var(--bbs-radius); background: var(--bbs-primary-bg); color: var(--bbs-primary); font-size: 11px; font-weight: 500; }
.bbs-sort-tag:hover { text-decoration: none; opacity: 0.85; }
.bbs-edit-link { font-size: 11px; color: var(--bbs-text-muted); }
.bbs-edit-link:hover { color: var(--bbs-primary); }
.bbs-highlight, mark.bbs-highlight { background: #fff3bf; color: #e67700; padding: 1px 3px; border-radius: 3px; font-weight: 600; }
html[data-theme="dark"] .bbs-highlight, html[data-theme="dark"] mark.bbs-highlight { background: #4a3f1a; color: #ffd43b; }

/* 作者 */
.bbs-author-link { display: inline-flex; align-items: center; gap: 6px; }
.bbs-author-avatar { width: 22px; height: 22px; border-radius: 50%; border: 1px solid var(--bbs-border-light); }
.bbs-author-avatar-sm { width: 20px; height: 20px; border-radius: 50%; }
.bbs-author-name { font-size: 13px; color: var(--bbs-text-sec); font-weight: 500; }
.bbs-author-link:hover .bbs-author-name { color: var(--bbs-primary); text-decoration: none; }
.bbs-thread-date { font-size: 11px; color: var(--bbs-text-muted); margin-top: 3px; }

/* 统计 */
.bbs-stat-box { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.bbs-stat-replies, .bbs-stat-views { font-size: 12px; color: var(--bbs-text-muted); display: flex; align-items: center; gap: 3px; }
.bbs-stat-replies i, .bbs-stat-views i { font-size: 13px; }
.bbs-stat-replies { font-weight: 600; color: var(--bbs-text-sec); }

/* 最后活跃 */
.bbs-last-info { display: flex; align-items: center; gap: 4px; font-size: 12px; color: var(--bbs-text-muted); justify-content: flex-end; }
.bbs-last-info i { font-size: 13px; }

/* ==================== 分页 ==================== */
.bbs-pagination { padding: 20px 0 8px; text-align: center; }
.bbs-pagination a, .bbs-pagination span { display: inline-block; min-width: 34px; height: 34px; line-height: 34px; padding: 0 10px; margin: 0 3px; border-radius: var(--bbs-radius); font-size: 13px; color: var(--bbs-text-sec); border: 1px solid var(--bbs-border); background: var(--bbs-bg-card); transition: var(--bbs-transition); }
.bbs-pagination a:hover { border-color: var(--bbs-primary); color: var(--bbs-primary); text-decoration: none; background: var(--bbs-primary-bg); }
.bbs-pagination .active { background: var(--bbs-primary); color: #fff; border-color: var(--bbs-primary); font-weight: 600; }

/* 加载更多 */
.bbs-load-more-wrap { text-align: center; padding: 20px 0 0; }
.bbs-load-more-btn { display: inline-flex; align-items: center; gap: 6px; padding: 10px 36px; border: 1px solid var(--bbs-border); border-radius: 100px; background: var(--bbs-bg-card); color: var(--bbs-text-sec); font-size: 14px; font-weight: 500; transition: var(--bbs-transition); }
.bbs-load-more-btn:hover { border-color: var(--bbs-primary); color: var(--bbs-primary); background: var(--bbs-primary-bg); }
.bbs-load-more-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.bbs-load-more-info { font-size: 12px; color: var(--bbs-text-muted); margin-top: 10px; }

/* 自动加载 */
.bbs-auto-load-wrap { text-align: center; padding: 24px 0 0; }
.bbs-auto-load-spinner { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--bbs-text-muted); }
.bbs-auto-load-spinner i { font-size: 18px; animation: bbs-spin 1s linear infinite; color: var(--bbs-primary); }
@keyframes bbs-spin { to { transform: rotate(360deg); } }

/* ==================== 侧边栏 ==================== */
.bbs-widget { background: var(--bbs-bg-card); border: 1px solid var(--bbs-border); border-radius: var(--bbs-radius-lg); margin-bottom: 16px; overflow: hidden; box-shadow: var(--bbs-shadow-sm); }
.bbs-widget-title { padding: 12px 16px; font-size: 13px; font-weight: 600; color: var(--bbs-text); background: linear-gradient(var(--bbs-bg-hover), var(--bbs-bg)); border-bottom: 1px solid var(--bbs-border-light); display: flex; align-items: center; gap: 6px; }
.bbs-widget-list { padding: 4px 0; }
.bbs-widget-list li a { display: flex; align-items: center; justify-content: space-between; padding: 8px 16px; font-size: 13px; color: var(--bbs-text); transition: var(--bbs-transition); }
.bbs-widget-list li a:hover { background: var(--bbs-bg-hover); color: var(--bbs-primary); text-decoration: none; }
.bbs-count { font-size: 11px; color: var(--bbs-text-muted); background: var(--bbs-bg-hover); padding: 2px 8px; border-radius: 10px; font-weight: 500; }

/* 博主卡片 */
.bbs-widget-blogger { padding: 20px; text-align: center; }
.bbs-blogger-avatar { width: 60px; height: 60px; border-radius: 50%; margin-bottom: 10px; border: 3px solid var(--bbs-border-light); }
.bbs-blogger-name { font-size: 16px; font-weight: 700; }
.bbs-blogger-desc { font-size: 12px; color: var(--bbs-text-sec); margin-top: 4px; line-height: 1.5; }
.bbs-blogger-stats { display: flex; justify-content: center; gap: 32px; margin: 16px 0; }
.bbs-blogger-num { font-size: 20px; font-weight: 700; color: var(--bbs-primary); }
.bbs-blogger-label { font-size: 11px; color: var(--bbs-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-top: 2px; }

/* 最新回复 */
.bbs-reply-item { padding: 10px 16px; border-bottom: 1px solid var(--bbs-border-light); transition: var(--bbs-transition); }
.bbs-reply-item:last-child { border-bottom: none; }
.bbs-reply-item:hover { background: var(--bbs-bg-hover); }
.bbs-reply-user { font-size: 12px; font-weight: 600; color: var(--bbs-primary); }
.bbs-reply-text { font-size: 12px; color: var(--bbs-text-sec); margin-top: 3px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.bbs-reply-to { font-size: 11px; color: var(--bbs-text-muted); margin-top: 4px; }
.bbs-reply-to a { color: var(--bbs-text-sec); }
.bbs-reply-to a:hover { color: var(--bbs-primary); }

/* 标签云 */
.bbs-tag-cloud { padding: 12px 16px; display: flex; flex-wrap: wrap; gap: 6px; }
.bbs-tag-cloud a { display: inline-block; padding: 3px 10px; border-radius: var(--bbs-radius); background: var(--bbs-bg-hover); color: var(--bbs-text-sec); font-size: 12px; border: 1px solid var(--bbs-border-light); transition: var(--bbs-transition); }
.bbs-tag-cloud a:hover { border-color: var(--bbs-primary); color: var(--bbs-primary); background: var(--bbs-primary-bg); text-decoration: none; }

/* ==================== 帖子详情页 ==================== */
.bbs-post { background: var(--bbs-bg-card); border: 1px solid var(--bbs-border); border-radius: var(--bbs-radius-lg); overflow: hidden; box-shadow: var(--bbs-shadow-sm); }
.bbs-post-header { padding: 24px; border-bottom: 1px solid var(--bbs-border-light); }
.bbs-post-title { font-size: 24px; font-weight: 700; line-height: 1.3; margin-bottom: 12px; letter-spacing: -0.3px; }
.bbs-post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; font-size: 13px; color: var(--bbs-text-sec); margin-bottom: 10px; }
.bbs-post-meta i { margin-right: 3px; font-size: 14px; }
.bbs-post-author { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--bbs-text); }
.bbs-post-author:hover { color: var(--bbs-primary); text-decoration: none; }
.bbs-post-tags-row { display: flex; flex-wrap: wrap; gap: 6px; }
.bbs-post-content { padding: 28px; padding-top: 52px; font-size: 15px; line-height: 1.8; position: relative; }
.bbs-post-content h3 { font-size: 17px; margin: 24px 0 10px; font-weight: 600; }
.bbs-post-content p { margin-bottom: 16px; }
.bbs-post-content img { max-width: 100%; border-radius: var(--bbs-radius-lg); margin: 16px 0; cursor: zoom-in; box-shadow: var(--bbs-shadow); }
.bbs-post-content code { background: var(--bbs-bg-hover); padding: 2px 6px; border-radius: 4px; font-size: 13px; border: 1px solid var(--bbs-border-light); }
.bbs-post-content pre { background: var(--bbs-bg-hover); padding: 16px 18px; border-radius: var(--bbs-radius-lg); overflow-x: auto; margin: 16px 0; border: 1px solid var(--bbs-border); line-height: 1.6; }
.bbs-post-content pre code { background: none; padding: 0; border: none; }
.bbs-post-content blockquote { border-left: 4px solid var(--bbs-primary); padding: 12px 18px; margin: 16px 0; background: var(--bbs-primary-bg); border-radius: 0 var(--bbs-radius) var(--bbs-radius) 0; color: var(--bbs-text-sec); }
.bbs-post-content table { width: 100%; border-collapse: collapse; margin: 16px 0; border: 1px solid var(--bbs-border); border-radius: var(--bbs-radius); overflow: hidden; }
.bbs-post-content th, .bbs-post-content td { padding: 10px 14px; border: 1px solid var(--bbs-border); text-align: left; font-size: 14px; }
.bbs-post-content th { background: var(--bbs-bg-hover); font-weight: 600; }
.bbs-post-content a { color: var(--bbs-primary); }
.bbs-post-content ul, .bbs-post-content ol { padding-left: 24px; margin-bottom: 16px; }
.bbs-post-content li { margin-bottom: 4px; }
.bbs-post-content ul { list-style: disc; }
.bbs-post-content ol { list-style: decimal; }

/* 信息框 */
.bbs-info-box { background: linear-gradient(135deg, var(--bbs-bg-hover), var(--bbs-bg)); border: 1px solid var(--bbs-border); border-radius: var(--bbs-radius-lg); padding: 16px 18px; margin-bottom: 20px; display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; }
.bbs-info-item { display: flex; align-items: center; gap: 7px; font-size: 13px; }
.bbs-info-item i { color: var(--bbs-primary); font-size: 15px; }
.bbs-info-label { color: var(--bbs-text-muted); }

/* 操作栏 */
.bbs-post-actions { display: flex; justify-content: space-between; align-items: center; padding: 14px 24px; border-top: 1px solid var(--bbs-border-light); border-bottom: 1px solid var(--bbs-border-light); background: var(--bbs-bg-hover); }
.bbs-action-btns { display: flex; gap: 8px; }
.bbs-action-btn { display: inline-flex; align-items: center; gap: 5px; padding: 6px 14px; border: 1px solid var(--bbs-border); border-radius: var(--bbs-radius); font-size: 12px; font-weight: 500; color: var(--bbs-text-sec); background: var(--bbs-bg-card); transition: var(--bbs-transition); }
.bbs-action-btn:hover { border-color: var(--bbs-primary); color: var(--bbs-primary); }
.bbs-action-btn.active { background: var(--bbs-primary); color: #fff; border-color: var(--bbs-primary); }
.bbs-rating { display: inline-flex; gap: 2px; }
.bbs-star { font-size: 18px; color: var(--bbs-border); cursor: pointer; transition: var(--bbs-transition); }
.bbs-star:hover, .bbs-star.filled { color: #f59e0b; }

/* 相关帖子 */
.bbs-related { padding: 0 24px 20px; }
.bbs-section-title { font-size: 15px; font-weight: 700; margin-bottom: 12px; display: flex; align-items: center; gap: 7px; color: var(--bbs-text); }
.bbs-related-list { display: flex; flex-wrap: wrap; gap: 8px; }
.bbs-related-item { padding: 6px 14px; background: var(--bbs-bg-hover); border: 1px solid var(--bbs-border-light); border-radius: var(--bbs-radius); font-size: 13px; color: var(--bbs-text); transition: var(--bbs-transition); }
.bbs-related-item:hover { border-color: var(--bbs-primary); color: var(--bbs-primary); background: var(--bbs-primary-bg); text-decoration: none; }

/* 邻近帖子 */
.bbs-neighbor { padding: 16px 24px; border-top: 1px solid var(--bbs-border-light); }
.bbs-neighbor-wrap { display: flex; gap: 16px; }
.bbs-neighbor-item { flex: 1; display: flex; align-items: center; gap: 8px; padding: 10px 12px; color: var(--bbs-text); font-size: 13px; border: 1px solid var(--bbs-border-light); border-radius: var(--bbs-radius); transition: var(--bbs-transition); text-decoration: none; overflow: hidden; }
.bbs-neighbor-item:hover { color: var(--bbs-primary); border-color: var(--bbs-primary); background: var(--bbs-primary-bg); }
.bbs-neighbor-prev { justify-content: flex-start; }
.bbs-neighbor-next { justify-content: flex-end; text-align: right; }
.bbs-neighbor-item i { flex-shrink: 0; }
.bbs-neighbor-item { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }

/* 回复区 */
.bbs-reply-section { padding: 0 24px 28px; }

/* ==================== 面包屑 ==================== */
.bbs-breadcrumb { padding: 12px 0; font-size: 13px; color: var(--bbs-text-muted); }
.bbs-breadcrumb a { color: var(--bbs-text-sec); }
.bbs-breadcrumb a:hover { color: var(--bbs-primary); }
.bbs-breadcrumb-sep { margin: 0 8px; color: var(--bbs-border); }

/* ==================== 页脚 ==================== */
.bbs-footer { background: var(--bbs-bg-footer); color: rgba(255,255,255,0.5); padding: 24px 0; margin-top: 0; font-size: 12px; }
.bbs-footer-inner { display: flex; justify-content: space-between; align-items: center; padding-bottom: 14px; border-bottom: 1px solid rgba(255,255,255,0.06); flex-wrap: wrap; gap: 10px; }
.bbs-footer-brand { font-weight: 600; color: rgba(255,255,255,0.7); }
.bbs-footer-icp { margin-left: 16px; opacity: 0.5; }
.bbs-footer-copy { margin-left: 16px; opacity: 0.4; }
.bbs-footer-right { display: flex; gap: 14px; }
.bbs-footer-right a { color: rgba(255,255,255,0.45); transition: var(--bbs-transition); }
.bbs-footer-right a:hover { color: rgba(255,255,255,0.8); }
.bbs-footer-bottom { padding-top: 12px; text-align: center; opacity: 0.3; }
.bbs-footer-bottom a { color: inherit; }
.bbs-footer-bottom span { margin: 0 8px; }

/* ==================== 返回顶部（小圆点，不违和） ==================== */
.bbs-gotop { position: fixed; right: 24px; bottom: 24px; width: 36px; height: 36px; border-radius: 50%; background: var(--bbs-bg-card); color: var(--bbs-text-muted); border: 1px solid var(--bbs-border); display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; transform: translateY(8px); transition: all 0.25s ease; z-index: 50; box-shadow: 0 1px 4px rgba(0,0,0,0.06); }
.bbs-gotop.visible { opacity: 0.7; visibility: visible; transform: translateY(0); }
.bbs-gotop:hover { opacity: 1; color: var(--bbs-primary); border-color: var(--bbs-primary); box-shadow: 0 2px 8px rgba(0,0,0,0.1); transform: translateY(-2px); }
.bbs-gotop svg { width: 14px; height: 14px; }

/* ==================== 移动端底部导航（5项） ==================== */
.bbs-mbottom { display: none; position: fixed; bottom: 0; left: 0; right: 0; background: var(--bbs-bg-card); border-top: 1px solid var(--bbs-border); z-index: 100; padding: 4px 0 calc(4px + env(safe-area-inset-bottom, 0)); box-shadow: 0 -1px 6px rgba(0,0,0,0.04); }
.bbs-mb-item { display: flex; flex-direction: column; align-items: center; gap: 1px; font-size: 10px; color: var(--bbs-text-muted); padding: 5px 0 3px; flex: 1; position: relative; transition: color 0.15s; }
.bbs-mb-item i { font-size: 20px; line-height: 1; }
.bbs-mb-item span { line-height: 1; }
.bbs-mb-item.active { color: var(--bbs-primary); }
.bbs-mb-item:active { opacity: 0.7; }
.bbs-mb-badge { position: absolute; top: 2px; right: calc(50% - 18px); min-width: 16px; height: 16px; line-height: 16px; padding: 0 4px; border-radius: 8px; background: var(--bbs-red); color: #fff; font-size: 10px; font-style: normal; text-align: center; }

/* ==================== 灯箱 ==================== */
.bbs-lightbox { display: none; position: fixed; inset: 0; z-index: 300; }
.bbs-lightbox.active { display: flex; align-items: center; justify-content: center; }
.bbs-lightbox-bg { position: absolute; inset: 0; background: rgba(0,0,0,0.92); }
.bbs-lightbox-close { position: absolute; top: 20px; right: 20px; font-size: 30px; color: #fff; z-index: 1; opacity: 0.7; transition: opacity 0.2s; }
.bbs-lightbox-close:hover { opacity: 1; }
.bbs-lightbox-prev, .bbs-lightbox-next { position: absolute; top: 50%; transform: translateY(-50%); font-size: 32px; color: #fff; z-index: 1; opacity: 0.5; padding: 20px; transition: opacity 0.2s; }
.bbs-lightbox-prev { left: 12px; }
.bbs-lightbox-next { right: 12px; }
.bbs-lightbox-prev:hover, .bbs-lightbox-next:hover { opacity: 1; }
.bbs-lightbox-img { max-width: 92vw; max-height: 92vh; object-fit: contain; z-index: 1; border-radius: var(--bbs-radius); }

/* ==================== 杂项 ==================== */
.bbs-ad { margin: 14px 0; text-align: center; }
.bbs-ad img { max-width: 100%; border-radius: var(--bbs-radius-lg); }
.bbs-msg { padding: 12px 16px; border-radius: var(--bbs-radius); margin-bottom: 14px; font-size: 13px; }
.bbs-msg-success { background: #dafbe1; color: var(--bbs-green); border: 1px solid #a7f3d0; }
.bbs-msg-error { background: #ffebe9; color: var(--bbs-red); border: 1px solid #ffcecb; }
.bbs-empty { text-align: center; padding: 48px; color: var(--bbs-text-muted); font-size: 14px; }


/* P-001 fix: prevent table layout from affecting board nav */
.bbs-board-nav, .bbs-board-tabs, .bbs-board-actions { flex-direction: row !important; }
/* ==================== 响应式 ==================== */
@media (max-width: 1024px) {
    .bbs-sidebar { width: 250px; }
}


/* === 移动端导航栏修复 === */
@media (max-width: 768px) {
    .bbs-header-right { gap: 2px; flex-wrap: nowrap; }
    .bbs-header-right .bbs-checkin-wrap,
    .bbs-header-right .bbs-points-badge,
    .bbs-header-right .bbs-notify-wrap,
    .bbs-header-right .bbs-msg-trigger,
    .bbs-header-right .bbs-btn-primary,
    .bbs-header-right a.bbs-icon-btn[title="后台"] {
        display: none !important;
    }
    .bbs-header-right .bbs-icon-btn,
    .bbs-header-right .bbs-hamburger {
        width: 36px;
        height: 36px;
        min-width: 36px;
    }
    .bbs-header-inner { gap: 8px; }
    .bbs-logo-text { font-size: 16px; max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .bbs-container { padding: 0 10px; }
}

@media (max-width: 768px) {
    .bbs-nav { display: none; }
    .bbs-hamburger { display: flex; }
    .bbs-content-wrap { flex-direction: column; }
    .bbs-sidebar { width: 100%; }
    .bbs-mbottom { display: flex; }
    body { padding-bottom: 56px; }
    .bbs-footer { margin-bottom: 56px; }
    .bbs-container { padding: 0 12px; }

    .bbs-thread-header { display: none; }
    .bbs-thread-item { flex-wrap: wrap; padding: 12px; gap: 6px; }
    .bbs-th-status { width: auto; }
    .bbs-th-col.bbs-th-title { width: calc(100% - 42px); }
    .bbs-th-col.bbs-th-author { width: auto; order: 3; }
    .bbs-th-col.bbs-th-stats { width: auto; order: 4; }
    .bbs-th-col.bbs-th-last { width: auto; order: 5; }
    .bbs-stat-box { flex-direction: row; gap: 12px; }
    .bbs-author-link { justify-content: flex-start; }
    .bbs-last-info { justify-content: flex-start; }

    .bbs-post-header { padding: 16px; }
    .bbs-post-content { padding: 16px; }
    .bbs-related { padding: 0 16px 16px; }
    .bbs-neighbor { padding: 12px 16px; }
    .bbs-reply-section { padding: 0 16px 20px; }
    .bbs-post-title { font-size: 20px; }
    .bbs-board-nav { flex-direction: column; align-items: stretch; }
    .bbs-board-actions { justify-content: flex-end; }
}

@media (max-width: 480px) {
    .bbs-post-title { font-size: 18px; }
    .bbs-info-box { grid-template-columns: 1fr; }
    .bbs-thread-excerpt { display: none; }
}

/* ==================== 阅读进度条 ==================== */
.bbs-read-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 200; background: transparent; pointer-events: none; }
.bbs-read-progress-bar { height: 100%; width: 0; background: linear-gradient(90deg, var(--bbs-primary), var(--bbs-primary-light)); transition: width 0.1s linear; border-radius: 0 2px 2px 0; }
.bbs-read-progress-info { position: fixed; top: 8px; right: 12px; font-size: 11px; color: var(--bbs-primary); background: var(--bbs-bg-card); border: 1px solid var(--bbs-border); border-radius: 4px; padding: 1px 6px; opacity: 0; transition: opacity 0.3s; z-index: 201; pointer-events: none; box-shadow: var(--bbs-shadow-sm); }
.bbs-read-progress-info.visible { opacity: 0.8; }

/* ==================== 文章目录TOC ==================== */
/* TOC目录 - 浮动面板样式 */
/* TOC胶囊按钮 */
.bbs-toc-capsule { position: absolute; top: 0; left: 0; z-index: 60; transition: box-shadow 0.2s; }
.bbs-toc-capsule.bbs-toc-sticky { position: fixed; top: 72px; left: auto; box-shadow: 0 4px 12px rgba(0,0,0,0.1); border-radius: 20px; background: var(--bbs-bg-card, #fff); padding: 2px; }
.bbs-toc-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 16px;
    background: var(--bbs-bg-card, #fff);
    border: 1px solid var(--bbs-border, #e2e8f0);
    border-radius: 20px;
    color: var(--bbs-text-secondary, #64748b);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.bbs-toc-pill:hover,
.bbs-toc-pill.active {
    color: var(--bbs-primary, #6C5CE7);
    border-color: var(--bbs-primary, #6C5CE7);
    background: var(--bbs-primary-bg, #f5f3ff);
    box-shadow: 0 2px 8px rgba(108,92,231,0.15);
}
.bbs-toc-pill i { font-size: 15px; }
.bbs-toc-arrow {
    font-size: 14px !important;
    transition: transform 0.25s ease;
    margin-left: 2px;
}
.bbs-toc-pill.active .bbs-toc-arrow { transform: rotate(180deg); }

.bbs-toc-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    width: 280px;
    max-height: 400px;
    background: var(--bbs-bg-card, #fff);
    border: 1px solid var(--bbs-border, #e2e8f0);
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    overflow: hidden;
    z-index: 100;
    animation: bbsTocSlide 0.2s ease;
}
.bbs-toc-dropdown.show { display: block; }
.bbs-toc-nav { padding: 8px 0; max-height: 360px; overflow-y: auto; }
.bbs-toc-nav a {
    display: block;
    padding: 7px 16px;
    font-size: 13px;
    color: var(--bbs-text-secondary, #64748b);
    line-height: 1.5;
    border-left: 3px solid transparent;
    transition: all 0.15s ease;
    text-decoration: none;
}
.bbs-toc-nav a:hover {
    color: var(--bbs-primary, #6C5CE7);
    background: var(--bbs-primary-bg, #f5f3ff);
    border-left-color: var(--bbs-primary, #6C5CE7);
}
.bbs-toc-nav a.active {
    color: var(--bbs-primary, #6C5CE7);
    border-left-color: var(--bbs-primary, #6C5CE7);
    font-weight: 600;
    background: var(--bbs-primary-bg, #f5f3ff);
}
.bbs-toc-nav a.toc-h3 { padding-left: 32px; font-size: 12px; color: var(--bbs-text-muted, #94a3b8); }
@keyframes bbsTocSlide { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }

/* 深色模式 */
[data-theme="dark"] .bbs-toc-pill { background: var(--bbs-bg-card, #1e293b); border-color: var(--bbs-border, #334155); }
[data-theme="dark"] .bbs-toc-dropdown { background: var(--bbs-bg-card, #1e293b); border-color: var(--bbs-border, #334155); }

/* ==================== 点赞功能 ==================== */
.bbs-like-btn { display: inline-flex; align-items: center; gap: 5px; padding: 6px 14px; border: 1px solid var(--bbs-border); border-radius: var(--bbs-radius); font-size: 12px; font-weight: 500; color: var(--bbs-text-sec); background: var(--bbs-bg-card); transition: var(--bbs-transition); }
.bbs-like-btn:hover { border-color: var(--bbs-red); color: var(--bbs-red); }
.bbs-like-btn.liked { background: var(--bbs-red-bg); color: var(--bbs-red); border-color: var(--bbs-red); }
.bbs-like-btn.liked i { animation: bbs-like-pop 0.3s ease; }
@keyframes bbs-like-pop { 0% { transform: scale(1); } 50% { transform: scale(1.3); } 100% { transform: scale(1); } }
.bbs-like-count { font-weight: 600; min-width: 12px; text-align: center; }
.bbs-vote-group { display: inline-flex; gap: 4px; }
.bbs-dislike-btn { display: inline-flex; align-items: center; gap: 5px; padding: 6px 14px; border: 1px solid var(--bbs-border); border-radius: var(--bbs-radius); font-size: 12px; font-weight: 500; color: var(--bbs-text-sec); background: var(--bbs-bg-card); transition: var(--bbs-transition); }
.bbs-dislike-btn:hover { border-color: var(--bbs-blue); color: var(--bbs-blue); }
.bbs-dislike-btn.disliked { background: #eff6ff; color: var(--bbs-blue); border-color: var(--bbs-blue); }
[data-theme="dark"] .bbs-dislike-btn.disliked { background: #1e3a5f; }
.bbs-dislike-count { font-weight: 600; min-width: 12px; text-align: center; }
.bbs-action-btn.active { color: var(--bbs-red); border-color: var(--bbs-red); background: var(--bbs-red-bg); }

/* ==================== 登录/注册弹窗 ==================== */
.bbs-auth-modal { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 250; }
.bbs-auth-modal.active { display: flex !important; align-items: center; justify-content: center; }
.bbs-auth-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.5); backdrop-filter: blur(3px); }
.bbs-auth-box { position: relative; width: 90%; max-width: 400px; background: var(--bbs-bg-card); border-radius: var(--bbs-radius-xl); box-shadow: 0 16px 48px rgba(0,0,0,0.18); overflow: hidden; z-index: 1; border: 1px solid var(--bbs-border); }
.bbs-auth-header { padding: 20px 24px 0; text-align: center; }
.bbs-auth-header h3 { font-size: 18px; font-weight: 700; margin-bottom: 4px; }
.bbs-auth-header p { font-size: 13px; color: var(--bbs-text-sec); }
.bbs-auth-tabs { display: flex; border-bottom: 1px solid var(--bbs-border-light); margin-top: 16px; }
.bbs-auth-tab { flex: 1; padding: 10px; text-align: center; font-size: 14px; font-weight: 500; color: var(--bbs-text-sec); border-bottom: 2px solid transparent; cursor: pointer; transition: var(--bbs-transition); }
.bbs-auth-tab.active { color: var(--bbs-primary); border-bottom-color: var(--bbs-primary); }
.bbs-auth-body { padding: 20px 24px 24px; }
.bbs-auth-form { display: none; }
.bbs-auth-form.active { display: block; }
.bbs-form-group { margin-bottom: 14px; }
.bbs-form-group label { display: block; font-size: 12px; font-weight: 600; color: var(--bbs-text-sec); margin-bottom: 5px; }
.bbs-form-input { width: 100%; padding: 9px 12px; border: 1px solid var(--bbs-border); border-radius: var(--bbs-radius); font-size: 14px; color: var(--bbs-text); background: var(--bbs-bg); transition: var(--bbs-transition); }
.bbs-form-input:focus { outline: none; border-color: var(--bbs-primary); box-shadow: 0 0 0 3px var(--bbs-primary-bg); }
.bbs-form-textarea { width: 100%; padding: 9px 12px; border: 1px solid var(--bbs-border); border-radius: var(--bbs-radius); font-size: 14px; color: var(--bbs-text); background: var(--bbs-bg); resize: vertical; min-height: 100px; transition: var(--bbs-transition); }
.bbs-form-textarea:focus { outline: none; border-color: var(--bbs-primary); box-shadow: 0 0 0 3px var(--bbs-primary-bg); }
.bbs-form-input-sm { width: 120px; display: inline-block; }
.bbs-form-row { display: flex; gap: 8px; margin-bottom: 14px; align-items: center; }
.bbs-form-row .bbs-form-input { flex: 1; }
.bbs-verify-img { height: 36px; cursor: pointer; border-radius: var(--bbs-radius); border: 1px solid var(--bbs-border); }
.bbs-auth-close { position: absolute; top: 12px; right: 12px; font-size: 22px; color: var(--bbs-text-muted); z-index: 1; }
.bbs-auth-close:hover { color: var(--bbs-text); }
.bbs-auth-msg { padding: 8px 12px; border-radius: var(--bbs-radius); font-size: 12px; margin-bottom: 12px; display: none; }
.bbs-auth-msg.show { display: block; }
.bbs-auth-msg.error { background: var(--bbs-red-bg); color: var(--bbs-red); border: 1px solid rgba(207,34,46,0.2); }
.bbs-auth-msg.success { background: var(--bbs-green-bg); color: var(--bbs-green); border: 1px solid rgba(26,127,55,0.2); }

/* ==================== 投稿表单页 ==================== */
.bbs-submit-page { max-width: 720px; margin: 0 auto; padding: 20px 0; }
.bbs-submit-card { background: var(--bbs-bg-card); border: 1px solid var(--bbs-border); border-radius: var(--bbs-radius-lg); padding: 28px; box-shadow: var(--bbs-shadow-sm); }
.bbs-submit-card h2 { font-size: 20px; font-weight: 700; margin-bottom: 20px; display: flex; align-items: center; gap: 8px; }
.bbs-submit-hint { font-size: 12px; color: var(--bbs-text-muted); margin-top: 4px; }
.bbs-submit-actions { display: flex; gap: 10px; margin-top: 20px; }
.bbs-submit-result { padding: 14px 18px; border-radius: var(--bbs-radius-lg); margin-bottom: 16px; font-size: 14px; display: none; }
.bbs-submit-result.show { display: block; }
.bbs-submit-result.success { background: var(--bbs-green-bg); color: var(--bbs-green); border: 1px solid rgba(26,127,55,0.2); }
.bbs-submit-result.error { background: var(--bbs-red-bg); color: var(--bbs-red); border: 1px solid rgba(207,34,46,0.2); }


.bbs-read-progress { display: none; }
@media (max-width: 768px) {
    .bbs-toc-panel { width: 240px; }
    .bbs-auth-box { max-width: 92%; }
}
@media (max-width: 1024px) and (min-width: 769px) {
    .bbs-toc-panel { width: 220px; }
}

@media print {
    .bbs-header, .bbs-footer, .bbs-sidebar, .bbs-mobile-bottom, .bbs-back-top, .bbs-lightbox, .bbs-search-modal { display: none !important; }
    body { background: #fff; color: #000; padding-bottom: 0; }
    .bbs-post { border: none; box-shadow: none; }
}

/* ============================================
   Layout Switcher
   ============================================ */
.bbs-layout-switcher{display:flex;align-items:center;gap:3px;padding:8px 14px;margin-bottom:0;background:var(--bbs-bg-card);border:1px solid var(--bbs-border-light,var(--bbs-border));border-radius:var(--bbs-radius-lg,12px);margin-top:8px}
.bbs-layout-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--bbs-text-muted);cursor:pointer;transition:all .2s;padding:0}
.bbs-layout-btn:hover{color:var(--bbs-text);background:var(--bbs-bg-hover)}
.bbs-layout-btn.active{color:var(--bbs-primary);background:var(--bbs-primary-bg)}


/* ============================================
   Typecho BBS Structure - 8种布局样式
   ============================================ */

/* --- 布局切换器 --- */
.bbs-layout-switcher {
    display: flex;
    align-items: center;
    gap: 3px;
    padding: 8px 14px;
    margin-bottom: 0;
    margin-top: 8px;
    background: var(--bbs-bg-card);
    border: 1px solid var(--bbs-border-light, #e2e8f0);
    border-radius: var(--bbs-radius-lg, 12px);
}
.bbs-layout-switcher-label {
    font-size: 0.8rem;
    color: var(--bbs-text-muted, #94a3b8);
    margin-right: 4px;
    flex-shrink: 0;
}
.bbs-layout-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 1px solid transparent;
    border-radius: 7px;
    background: transparent;
    color: var(--bbs-text-muted, #94a3b8);
    cursor: pointer;
    transition: all 0.2s;
    padding: 0;
}
.bbs-layout-btn:hover {
    background: var(--bbs-bg-hover, #f1f5f9);
    color: var(--bbs-text-primary, #1e293b);
    border-color: var(--bbs-border, #e2e8f0);
}
.bbs-layout-btn.active {
    background: var(--bbs-primary-bg, #eff6ff);
    color: var(--bbs-primary, #3b82f6);
    border-color: var(--bbs-primary, #3b82f6);
}
.bbs-layout-btn svg { width: 16px; height: 16px; }

/* --- 基础帖子项样式 --- */
.bbs-topic-list { display: flex; flex-direction: column; gap: 0; }
.bbs-topic-item {
    display: flex;
    gap: 16px;
    padding: 16px 24px;
    border-bottom: 1px solid var(--bbs-border-light, #f1f5f9);
    transition: background 0.2s;
}
.bbs-topic-item:hover { background: var(--bbs-bg-hover, #f8fafc); }
.bbs-topic-cover {
    flex-shrink: 0;
    width: 140px;
    height: 90px;
    border-radius: 6px;
    overflow: hidden;
}
.bbs-topic-cover img,
.bbs-topic-cover svg { width: 100%; height: 100%; object-fit: cover; }
.bbs-topic-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.bbs-topic-header-row { margin-bottom: 4px; }
.bbs-topic-tags { display: flex; gap: 4px; flex-wrap: wrap; align-items: center; }
.bbs-topic-title { font-size: 1rem; font-weight: 600; line-height: 1.4; margin-bottom: 4px; }
.bbs-topic-title a { color: var(--bbs-text, #1e293b); }
.bbs-topic-title a:hover { color: var(--bbs-primary, #3b82f6); }
.bbs-topic-excerpt {
    font-size: 0.85rem;
    color: var(--bbs-text-secondary, #64748b);
    line-height: 1.5;
    margin-bottom: 4px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.bbs-topic-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.8rem;
    color: var(--bbs-text-muted, #94a3b8);
    flex-wrap: wrap;
}
.bbs-topic-meta svg { width: 14px; height: 14px; vertical-align: -2px; margin-right: 2px; }
.bbs-topic-author { display: flex; align-items: center; gap: 4px; }
.bbs-topic-author img { border-radius: 50%; }
.bbs-topic-author a { color: var(--bbs-text-secondary, #64748b); }
.bbs-topic-views,
.bbs-topic-comments { display: inline-flex; align-items: center; gap: 3px; }
.bbs-avatar { border-radius: 50%; }
.cate-badge-sm {
    display: inline-block;
    padding: 1px 6px;
    border-radius: 3px;
    font-size: 11px;
    background: var(--bbs-primary-bg, #eff6ff);
    color: var(--bbs-primary, #3b82f6);
    text-decoration: none;
}
.cate-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 12px;
    background: rgba(255,255,255,0.2);
    color: #fff;
    text-decoration: none;
}
.bbs-tag { display: inline-block; padding: 2px 6px; border-radius: 3px; font-size: 11px; font-weight: 600; }
.bbs-tag-pinned { background: #fef2f2; color: #ef4444; }
.bbs-tag-featured { background: #fffbeb; color: #f59e0b; }
.bbs-tag-hot { background: #fff7ed; color: #f97316; }
.bbs-highlight { background: #fef08a; color: #92400e; padding: 0 2px; border-radius: 2px; }

/* --- Card Layout (.bbs-layout-card) --- */
.bbs-layout-card .bbs-topic-item {
    gap: 24px;
    padding: 24px;
    background: var(--bbs-bg-card, #fff);
    border: 1px solid var(--bbs-border, #e2e8f0);
    border-radius: 12px;
    margin-bottom: 16px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
    transition: transform 0.2s, box-shadow 0.2s;
}
.bbs-layout-card .bbs-topic-item:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.1);
    border-color: var(--bbs-primary, #3b82f6);
}
.bbs-layout-card .bbs-topic-cover { width: 200px; min-width: 200px; height: 130px; border-radius: 8px; }

/* --- List Layout (.bbs-layout-list) --- */
.bbs-layout-list { background: var(--bbs-bg-card, #fff); border: 1px solid var(--bbs-border-light, #e2e8f0); border-radius: 12px; overflow: hidden; }
.bbs-layout-list .bbs-topic-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--bbs-border-light, #f1f5f9);
    background: transparent;
    margin-bottom: 0;
    border-radius: 0;
    transition: background 0.15s;
}
.bbs-layout-list .bbs-topic-item:last-child { border-bottom: none; }
.bbs-layout-list .bbs-topic-item:hover { background: var(--bbs-bg-hover, #f8fafc); }
.bbs-layout-list .bbs-topic-cover { display: none !important; }
.bbs-layout-list .bbs-topic-body { width: 100%; }
.bbs-layout-list .bbs-topic-title { font-size: 15px; margin-bottom: 6px; }
.bbs-layout-list .bbs-topic-title a { color: var(--bbs-text, #1e293b); font-weight: 500; }
.bbs-layout-list .bbs-topic-title a:hover { color: var(--bbs-primary, #3b82f6); }
.bbs-layout-list .bbs-topic-meta { font-size: 12px; gap: 14px; }
.bbs-layout-list .bbs-topic-excerpt { font-size: 13px; color: var(--bbs-text-sec, #656d76); margin: 4px 0 8px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* --- Table Layout v2 (.bbs-layout-table) --- */
.bbs-layout-table { background: var(--bbs-bg-card, #fff); border-radius: 12px; border: 1px solid var(--bbs-border, #e2e8f0); overflow: hidden; }
.bbs-layout-table .bbs-topic-item {
    display: flex !important;
    flex-direction: row !important;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    border-bottom: 1px solid var(--bbs-border-light, #f1f5f9);
    border-radius: 0;
    background: transparent;
    margin-bottom: 0;
    min-height: 44px;
    transition: background 0.15s;
}
.bbs-layout-table .bbs-topic-item:last-child { border-bottom: none; }
.bbs-layout-table .bbs-topic-item:hover { background: var(--bbs-bg-hover, #f8fafc); }
.bbs-layout-table .bbs-topic-cover { width: 40px; min-width: 40px; height: 30px; border-radius: 4px; overflow: hidden; }
.bbs-layout-table .bbs-topic-cover img,
.bbs-layout-table .bbs-topic-cover svg { width: 40px; height: 30px; border-radius: 4px; object-fit: cover; }
.bbs-layout-table .bbs-topic-body { flex: 1; min-width: 0; display: flex; flex-direction: row; align-items: center; gap: 8px; }
.bbs-layout-table .bbs-topic-header-row { margin-bottom: 0; flex-shrink: 0; }
.bbs-layout-table .bbs-topic-tags { gap: 2px; }
.bbs-layout-table .bbs-topic-tags .bbs-tag { font-size: 10px; padding: 1px 4px; }
.bbs-layout-table .bbs-topic-tags .bbs-tag-normal { display: none; }
.bbs-layout-table .bbs-topic-title { font-size: 13px; font-weight: 500; margin-bottom: 0; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: 1.3; }
.bbs-layout-table .bbs-topic-excerpt { display: none !important; }
.bbs-layout-table .bbs-topic-meta { font-size: 11px; gap: 10px; flex-shrink: 0; margin-left: auto; }
.bbs-layout-table .bbs-topic-meta svg { display: none; }
.bbs-layout-table .bbs-topic-views,
.bbs-layout-table .bbs-topic-comments { font-size: 11px; color: var(--bbs-text-muted, #94a3b8); }
.bbs-layout-table .bbs-topic-time { font-size: 11px; color: var(--bbs-text-muted, #94a3b8); min-width: 50px; text-align: right; }
.bbs-layout-table .bbs-topic-author { display: none; }

/* --- Bigcard/Hero Layout (.bbs-layout-hero-card) --- */
.bbs-layout-hero-card { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; background: transparent; border: none; padding: 0; }
.bbs-topic-bigcard {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: var(--bbs-bg-card, #fff);
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
    transition: transform 0.3s, box-shadow 0.3s;
}
.bbs-topic-bigcard:hover { transform: translateY(-4px); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
.bbs-bigcard-link { display: block; width: 100%; height: 100%; position: relative; color: #fff; }
.bbs-bigcard-cover { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; }
.bbs-bigcard-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
.bbs-topic-bigcard:hover .bbs-bigcard-cover img { transform: scale(1.08); }
.bbs-bigcard-overlay {
    position: absolute; bottom: 0; left: 0; right: 0; z-index: 2;
    padding: 24px 16px;
    background: linear-gradient(transparent, rgba(0,0,0,0.75));
}
.bbs-bigcard-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; margin-bottom: 4px; }
.bbs-bigcard-tags .bbs-tag { background: rgba(255,255,255,0.2); color: #fff; border: none; }
.bbs-bigcard-title { font-size: 1.05rem; font-weight: 600; color: #fff; margin-bottom: 8px; text-shadow: 0 1px 3px rgba(0,0,0,0.4); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.bbs-bigcard-meta { display: flex; align-items: center; gap: 8px; font-size: 0.75rem; color: rgba(255,255,255,0.85); }
.bbs-bigcard-author { display: flex; align-items: center; gap: 4px; }
.bbs-bigcard-author img { border-radius: 50%; border: 1px solid rgba(255,255,255,0.3); }

/* --- Waterfall/Masonry Layout (.bbs-layout-masonry) --- */
.bbs-layout-masonry { display: block; columns: 3; column-gap: 16px; background: transparent; border: none; padding: 0; }
.bbs-topic-waterfall {
    break-inside: avoid;
    margin-bottom: 16px;
    background: var(--bbs-bg-card, #fff);
    border-radius: 12px;
    border: 1px solid var(--bbs-border, #e2e8f0);
    overflow: hidden;
    transition: transform 0.2s, box-shadow 0.2s;
}
.bbs-topic-waterfall:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
.bbs-waterfall-cover { width: 100%; overflow: hidden; }
.bbs-waterfall-cover img { width: 100%; height: auto; display: block; transition: transform 0.3s; }
.bbs-topic-waterfall:hover .bbs-waterfall-cover img { transform: scale(1.05); }
.bbs-waterfall-body { padding: 16px; }
.bbs-waterfall-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; margin-bottom: 4px; }
.bbs-waterfall-title { font-size: 0.95rem; font-weight: 600; margin-bottom: 8px; }
.bbs-waterfall-title a { color: var(--bbs-text, #1e293b); }
.bbs-waterfall-excerpt { font-size: 0.8rem; color: var(--bbs-text-muted, #94a3b8); line-height: 1.5; margin-bottom: 8px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.bbs-waterfall-meta { display: flex; align-items: center; gap: 8px; font-size: 0.75rem; color: var(--bbs-text-muted, #94a3b8); padding-top: 8px; border-top: 1px solid var(--bbs-border-light, #f1f5f9); }
.bbs-waterfall-author { display: flex; align-items: center; gap: 4px; }
.bbs-waterfall-author img { border-radius: 50%; }

/* --- Timeline Layout (.bbs-layout-timeline) --- */
.bbs-layout-timeline { position: relative; background: transparent; border: none; padding: 0; }
.bbs-layout-timeline::before { content: ''; position: absolute; top: 0; left: 23px; width: 2px; height: 100%; background: var(--bbs-border-light, #f1f5f9); z-index: 0; }
.bbs-topic-timeline { display: flex; gap: 16px; padding: 16px 0; position: relative; z-index: 1; }
.bbs-timeline-avatar { flex-shrink: 0; width: 48px; height: 48px; }
.bbs-timeline-avatar img { width: 48px; height: 48px; border-radius: 50%; border: 3px solid var(--bbs-bg-white, #fff); box-shadow: 0 1px 3px rgba(0,0,0,0.06); }
.bbs-timeline-content { flex: 1; min-width: 0; background: var(--bbs-bg-card, #fff); border: 1px solid var(--bbs-border, #e2e8f0); border-radius: 12px; padding: 16px; }
.bbs-timeline-header { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.bbs-timeline-author { font-weight: 600; font-size: 0.9rem; }
.bbs-timeline-time { font-size: 0.75rem; color: var(--bbs-text-muted, #94a3b8); }
.bbs-timeline-tags { display: flex; gap: 4px; margin-bottom: 4px; }
.bbs-timeline-title { font-size: 1rem; font-weight: 600; margin-bottom: 4px; }
.bbs-timeline-title a { color: var(--bbs-text, #1e293b); }
.bbs-timeline-excerpt { font-size: 0.85rem; color: var(--bbs-text-secondary, #64748b); margin-bottom: 8px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.bbs-timeline-actions { display: flex; gap: 16px; padding-top: 8px; border-top: 1px solid var(--bbs-border-light, #f1f5f9); }
.bbs-timeline-action { font-size: 0.8rem; color: var(--bbs-text-muted, #94a3b8); cursor: pointer; padding: 2px 6px; border-radius: 4px; transition: all 0.2s; }
.bbs-timeline-action:hover { color: var(--bbs-primary, #3b82f6); background: var(--bbs-primary-bg, #eff6ff); }

/* --- Compact Layout (.bbs-layout-compact) --- */
.bbs-layout-compact { background: var(--bbs-bg-card, #fff); border-radius: 12px; border: 1px solid var(--bbs-border, #e2e8f0); overflow: hidden; }
.bbs-topic-compact {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 16px;
    height: 42px;
    border-bottom: 1px solid var(--bbs-border-light, #f1f5f9);
    transition: background 0.15s;
}
.bbs-topic-compact:last-child { border-bottom: none; }
.bbs-topic-compact:hover { background: var(--bbs-bg-hover, #f8fafc); }
.bbs-compact-status { display: flex; align-items: center; gap: 2px; flex-shrink: 0; width: 48px; justify-content: center; }
.bbs-compact-status span { font-size: 12px; }
.bbs-compact-title { flex: 1; min-width: 0; font-size: 0.875rem; font-weight: 500; line-height: 42px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bbs-compact-title a { color: var(--bbs-text, #1e293b); }
.bbs-compact-cat { flex-shrink: 0; max-width: 100px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bbs-compact-cat a { display: inline-block; padding: 1px 6px; font-size: 0.65rem; font-weight: 500; border-radius: 3px; background: var(--bbs-primary-bg, #eff6ff); color: var(--bbs-primary, #3b82f6); text-decoration: none; }
.bbs-compact-comments,
.bbs-compact-views { flex-shrink: 0; font-size: 0.75rem; color: var(--bbs-text-muted, #94a3b8); min-width: 48px; text-align: center; }
.bbs-compact-time { flex-shrink: 0; font-size: 0.75rem; color: var(--bbs-text-muted, #94a3b8); min-width: 60px; text-align: right; }

/* --- Grouped Layout (.bbs-layout-grouped) --- */
.bbs-layout-grouped { background: transparent; border: none; padding: 0; }
.bbs-group-panel { background: var(--bbs-bg-card, #fff); border: 1px solid var(--bbs-border-light, #e2e8f0); border-radius: 12px; margin-bottom: 12px; overflow: hidden; }
.bbs-group-toggle { display: none; }
.bbs-group-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    cursor: pointer;
    user-select: none;
    background: var(--bbs-bg-card, #fff);
    transition: background 0.2s;
}
.bbs-group-header:hover { background: var(--bbs-bg-hover, #f8fafc); }
.bbs-group-toggle:checked ~ .bbs-group-header { border-bottom: 1px solid var(--bbs-border-light, #e2e8f0); }
.bbs-group-name { font-weight: 600; font-size: 0.95rem; color: var(--bbs-text, #1e293b); }
.bbs-group-count {
    font-size: 11px;
    font-weight: 600;
    color: var(--bbs-primary, #3b82f6);
    background: var(--bbs-primary-bg, #eff6ff);
    padding: 2px 8px;
    border-radius: 10px;
}
.bbs-group-arrow { margin-left: auto; font-size: 0.9rem; color: var(--bbs-text-muted, #94a3b8); transition: transform 0.3s; }
.bbs-group-toggle:checked ~ .bbs-group-header .bbs-group-arrow { transform: rotate(90deg); }
.bbs-group-content { max-height: 2000px; overflow: hidden; transition: max-height 0.4s ease; }
.bbs-group-toggle:not(:checked) ~ .bbs-group-content { max-height: 0; }
.bbs-group-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--bbs-border-light, #f1f5f9);
    transition: background 0.15s;
}
.bbs-group-item:last-child { border-bottom: none; }
.bbs-group-item:hover { background: var(--bbs-bg-hover, #f8fafc); }
.bbs-group-item-title {
    flex: 1;
    min-width: 0;
    font-size: 14px;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--bbs-text, #1e293b);
    text-decoration: none;
}
.bbs-group-item-title:hover { color: var(--bbs-primary, #3b82f6); }
.bbs-group-item-tags {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
    flex-wrap: nowrap;
}
.bbs-group-item-tags .bbs-tag { font-size: 11px; padding: 1px 6px; }
.bbs-group-item-tags a.bbs-tag { font-size: 11px; padding: 1px 6px; }
.bbs-group-item-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
    font-size: 12px;
    color: var(--bbs-text-muted, #94a3b8);
}
.bbs-group-item-meta i { font-size: 13px; vertical-align: -1px; margin-right: 2px; }
.bbs-group-item-comments,
.bbs-group-item-views { display: inline-flex; align-items: center; gap: 2px; }
.bbs-group-item-time { display: inline-flex; align-items: center; }

/* --- Responsive --- */
@media (max-width: 1024px) {
    .bbs-layout-hero-card { grid-template-columns: repeat(2, 1fr); }
    .bbs-layout-masonry { columns: 2; }
}
@media (max-width: 768px) {
    .bbs-layout-card .bbs-topic-item { flex-direction: column; }
    .bbs-layout-card .bbs-topic-cover { width: 100%; min-width: 100%; height: 160px; }
    .bbs-layout-table .bbs-topic-meta svg { display: none; }
    .bbs-timeline-avatar { width: 36px; height: 36px; }
    .bbs-timeline-avatar img { width: 36px; height: 36px; }
    .bbs-layout-switcher { flex-wrap: wrap; }
    .bbs-layout-btn { width: 28px; height: 28px; }
}
@media (max-width: 480px) {
    .bbs-layout-hero-card { grid-template-columns: 1fr; }
    .bbs-layout-masonry { columns: 1; }
    .bbs-topic-cover { width: 100px; height: 70px; }
}


/* === 社区统计面板（页脚） === */
.bbs-footer-stats {
    display: flex;
    gap: 16px;
    font-size: 13px;
    color: rgba(255,255,255,0.5);
}
.bbs-footer-stats span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.bbs-footer-stats i {
    font-size: 14px;
}

/* === 社区统计面板 === */
.bbs-community-stats { display: flex; gap: 16px; margin-bottom: 16px; }
.bbs-cs-item { display: flex; align-items: center; gap: 6px; padding: 8px 16px; background: var(--bbs-bg-card); border: 1px solid var(--bbs-border); border-radius: var(--bbs-radius-md); }
.bbs-cs-item i { color: var(--bbs-primary); font-size: 18px; }
.bbs-cs-num { font-size: 18px; font-weight: 700; color: var(--bbs-text); }
.bbs-cs-label { font-size: 13px; color: var(--bbs-text-muted); }

@media (max-width: 480px) {
    .bbs-community-stats { gap: 8px; }
    .bbs-stat-card { padding: 12px 8px; }
    .bbs-stat-num { font-size: 20px; }
}

/* === 普通帖子灰色徽章 === */
.bbs-tag-normal {
    background: var(--bbs-bg-secondary, #f1f5f9);
    color: var(--bbs-text-muted, #94a3b8);
    border: 1px solid var(--bbs-border, #e2e8f0);
    font-size: 11px;
    padding: 1px 5px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    gap: 2px;
    line-height: 1.4;
}
[data-theme="dark"] .bbs-tag-normal {
    background: rgba(148,163,184,0.12);
    border-color: rgba(148,163,184,0.2);
}

/* === 下载按钮（正文内网盘链接自动替换） === */
.dl-inline-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 16px;
    background: var(--dl-color, #666);
    color: #fff !important;
    text-shadow: 0 1px 2px rgba(0,0,0,0.3);
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none !important;
    margin: 4px 4px 4px 0;
    transition: all 0.25s ease;
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(0,0,0,0.2);
    border: none;
    letter-spacing: 0.3px;
}
.dl-inline-btn i { font-size: 15px; }
.dl-inline-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0,0,0,0.25);
    color: #fff !important;
    filter: brightness(1.1);
}
.dl-pwd {
    background: rgba(255,255,255,0.25);
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 11px;
    backdrop-filter: blur(4px);
}

/* === 下载模块卡片 === */
.download-module {
    background: var(--bbs-bg-card, #fff);
    border: 1px solid var(--bbs-border, #e2e8f0);
    border-radius: 12px;
    margin-bottom: 20px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.download-header {
    background: linear-gradient(135deg, var(--bbs-primary, #6C5CE7), var(--bbs-primary-dark, #5a4bd1));
    color: #fff;
    padding: 14px 20px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    user-select: none;
    transition: all 0.2s;
}
.download-header:hover { filter: brightness(1.05); }
.download-header-left { display: flex; align-items: center; gap: 8px; }
.download-header-right { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 400; opacity: 0.9; }
.download-header-right .dl-toggle-icon { transition: transform 0.3s; font-size: 16px; }
.download-module.collapsed .download-header-right .dl-toggle-icon { transform: rotate(-90deg); }
.download-list { padding: 8px; max-height: 1000px; overflow: hidden; transition: max-height 0.3s ease, padding 0.3s ease, opacity 0.3s ease; opacity: 1; }
.download-module.collapsed .download-list { display: none !important; }
.download-module.collapsed .download-hint { display: none !important; }
.download-hint {
    padding: 10px 16px;
    font-size: 12px;
    color: var(--bbs-text-muted, #94a3b8);
    border-top: 1px dashed var(--bbs-border, #e2e8f0);
    background: var(--bbs-bg-secondary, #f8fafc);
    display: flex;
    align-items: center;
    gap: 6px;
}
.download-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 14px;
    border-radius: 10px;
    transition: all 0.2s;
    border: 1px solid transparent;
}
.download-item:hover {
    background: var(--bbs-bg-hover, #f0f2f5);
    border-color: var(--bbs-border, #e2e8f0);
}
.dl-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    color: #fff;
    flex-shrink: 0;
    box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}
.dl-info { flex: 1; min-width: 0; }
.dl-name { font-weight: 600; font-size: 14px; color: var(--bbs-text, #1e293b); display: flex; align-items: center; gap: 6px; }
.dl-meta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; font-size: 12px; color: var(--bbs-text-muted, #94a3b8); }
.dl-meta span { display: inline-flex; align-items: center; gap: 3px; }
.dl-meta i { font-size: 13px; }
.dl-btn {
    padding: 8px 22px;
    background: var(--bbs-primary, #6C5CE7);
    color: #fff !important;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none !important;
    white-space: nowrap;
    transition: all 0.25s ease;
    box-shadow: 0 2px 8px rgba(108,92,231,0.3);
    border: none;
    cursor: pointer;
}
.dl-btn:hover {
    background: var(--bbs-primary-dark, #5a4bd1);
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(108,92,231,0.4);
}

/* 深色模式适配 */
[data-theme="dark"] .download-module { background: var(--bbs-bg-card, #1e293b); border-color: var(--bbs-border, #334155); }
[data-theme="dark"] .download-item:hover { background: var(--bbs-bg-hover, #334155); border-color: var(--bbs-border, #475569); }
[data-theme="dark"] .dl-inline-btn { border-color: rgba(255,255,255,0.1); }

/* === 通知下拉框样式（从header.php迁移） === */
.bbs-notify-wrap{position:relative;display:inline-block}
.bbs-notify-badge{position:absolute;top:-4px;right:-4px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;padding:1px 5px;border-radius:10px;min-width:16px;text-align:center;line-height:14px}
.bbs-notify-dropdown{display:none;position:absolute;top:100%;right:0;width:320px;background:var(--bbs-bg,#fff);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.12);border:1px solid var(--bbs-border,#e2e8f0);z-index:1000;overflow:hidden}
.bbs-notify-dropdown.show{display:block;animation:bbsFadeIn .2s ease}
.bbs-notify-header{padding:12px 16px;font-weight:600;font-size:14px;border-bottom:1px solid var(--bbs-border,#f1f5f9);color:var(--bbs-text,#1e293b)}
.bbs-notify-list{max-height:300px;overflow-y:auto}
.bbs-notify-item{display:flex;gap:10px;padding:10px 16px;border-bottom:1px solid var(--bbs-border,#f8fafc);cursor:pointer;transition:background .15s}
.bbs-notify-item:hover{background:var(--bbs-hover,#f8fafc)}
.bbs-notify-item .icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px}
.bbs-notify-item .icon.comment{background:#eff6ff;color:#3b82f6}
.bbs-notify-item .icon.submission{background:#fef3c7;color:#d97706}
.bbs-notify-item .text{flex:1;font-size:13px;color:var(--bbs-text-secondary,#475569);line-height:1.4}
.bbs-notify-item .time{font-size:11px;color:var(--bbs-text-muted,#94a3b8);margin-top:2px}
.bbs-notify-empty{padding:24px;text-align:center;color:var(--bbs-text-muted,#94a3b8);font-size:13px}
.bbs-notify-footer{padding:8px 16px;text-align:center;border-top:1px solid var(--bbs-border,#f1f5f9)}
.bbs-notify-footer a{color:#6C5CE7;font-size:13px;text-decoration:none}

/* ========== P0功能样式 ========== */
.bbs-vote-wrap{display:inline-flex;gap:4px;margin-left:8px}
.bbs-vote-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--bbs-border,#e2e8f0);border-radius:6px;background:var(--bbs-bg,#fff);color:var(--bbs-text-secondary,#64748b);font-size:13px;cursor:pointer;transition:all .2s}
.bbs-vote-btn:hover{border-color:#3b82f6;color:#3b82f6}
.bbs-vote-btn.active.bbs-vote-up{background:#eff6ff;border-color:#3b82f6;color:#3b82f6}
.bbs-vote-btn.active.bbs-vote-down{background:#fef2f2;border-color:#ef4444;color:#ef4444}
.bbs-quote-block{border-left:3px solid #6C5CE7;background:var(--bbs-hover,#f8fafc);padding:8px 12px;margin:8px 0;border-radius:0 6px 6px 0;font-size:13px;color:var(--bbs-text-secondary,#64748b)}
.bbs-quote-reply-btn{background:none;border:none;color:var(--bbs-text-muted,#94a3b8);font-size:12px;cursor:pointer;padding:2px 6px;border-radius:4px}
.bbs-quote-reply-btn:hover{background:var(--bbs-hover,#f1f5f9);color:#6C5CE7}
.bbs-comment-best-answer{border:2px solid #22c55e;border-radius:8px;padding:12px;background:rgba(34,197,94,.05)}
.bbs-best-answer-badge{display:inline-flex;align-items:center;gap:4px;background:#22c55e;color:#fff;font-size:12px;padding:2px 8px;border-radius:4px;margin-bottom:8px;font-weight:600}
.bbs-accept-answer-btn{background:none;border:1px solid var(--bbs-border,#e2e8f0);color:var(--bbs-text-secondary,#64748b);font-size:12px;cursor:pointer;padding:2px 8px;border-radius:4px;margin-left:4px}
.bbs-accept-answer-btn:hover{border-color:#22c55e;color:#22c55e}
.bbs-accept-answer-btn.accepted{background:#22c55e;color:#fff;border-color:#22c55e}
.bbs-reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.bbs-reaction-btn{display:inline-flex;align-items:center;gap:2px;padding:2px 6px;border:1px solid var(--bbs-border,#e2e8f0);border-radius:12px;background:var(--bbs-bg,#fff);font-size:12px;cursor:pointer;transition:all .2s}
.bbs-reaction-btn:hover{border-color:#6C5CE7;background:#f5f3ff}
.bbs-reaction-btn.active{border-color:#6C5CE7;background:#ede9fe}
.bbs-reaction-add{width:24px;height:24px;border:1px dashed var(--bbs-border,#cbd5e1);border-radius:12px;background:none;color:var(--bbs-text-muted,#94a3b8);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.bbs-reaction-add:hover{border-color:#6C5CE7;color:#6C5CE7}
.bbs-locked-notice{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#ef4444;font-size:14px;margin:16px 0}
.bbs-rules-modal{position:fixed;top:0;left:0;width:100%;height:100%;z-index:10000;display:flex;align-items:center;justify-content:center}
.bbs-rules-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5)}
.bbs-rules-content{position:relative;background:var(--bbs-bg,#fff);border-radius:16px;max-width:520px;width:90%;max-height:80vh;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.bbs-rules-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--bbs-border,#e2e8f0)}
.bbs-rules-header h3{margin:0;font-size:16px;color:var(--bbs-text,#1e293b)}
.bbs-rules-close{background:none;border:none;font-size:24px;color:var(--bbs-text-muted,#94a3b8);cursor:pointer}
.bbs-rules-body{padding:16px 20px;overflow-y:auto;max-height:50vh;font-size:14px;line-height:1.8;color:var(--bbs-text-secondary,#475569)}
.bbs-rules-footer{padding:12px 20px;text-align:center;border-top:1px solid var(--bbs-border,#e2e8f0)}
.bbs-online-count{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--bbs-text-muted,#94a3b8)}
.bbs-online-count i{color:#22c55e}
.bbs-comment-actions{display:flex;align-items:center;gap:4px;margin-top:4px}
[data-theme="dark"] .bbs-vote-btn{border-color:var(--bbs-border,#334155);color:var(--bbs-text-secondary,#94a3b8)}
[data-theme="dark"] .bbs-reaction-btn{border-color:var(--bbs-border,#334155)}
[data-theme="dark"] .bbs-comment-best-answer{border-color:#22c55e;background:rgba(34,197,94,.1)}
/* ========== P1-20: 骨架屏 ========== */
.bbs-skeleton{background:linear-gradient(90deg,var(--bbs-hover,#f0f0f0) 25%,var(--bbs-bg,#e8e8e8) 50%,var(--bbs-hover,#f0f0f0) 75%);background-size:200% 100%;animation:bbsSkeletonShimmer 1.5s infinite;border-radius:4px}
.bbs-skeleton-text{height:14px;margin-bottom:8px;width:80%}
.bbs-skeleton-text.short{width:40%}
.bbs-skeleton-title{height:20px;margin-bottom:12px;width:60%}
.bbs-skeleton-avatar{width:40px;height:40px;border-radius:50%}
.bbs-skeleton-cover{width:100%;height:160px;border-radius:8px}
@keyframes bbsSkeletonShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.bbs-skeleton-wrap{padding:16px}
.bbs-skeleton-row{display:flex;gap:12px;margin-bottom:16px}
.bbs-skeleton-col{flex:1}
/* 批次1补充样式 */
.bbs-signature{font-size:12px;color:var(--bbs-text-muted,#94a3b8);border-top:1px dashed var(--bbs-border,#e2e8f0);padding-top:4px;margin-top:4px;font-style:italic}
.bbs-spoiler{margin:8px 0}
.bbs-spoiler-toggle{background:var(--bbs-hover,#f1f5f9);border:1px solid var(--bbs-border,#e2e8f0);padding:6px 12px;border-radius:6px;cursor:pointer;font-size:13px;color:var(--bbs-text-secondary,#64748b)}
.bbs-spoiler-content{display:none;margin-top:8px;padding:12px;background:var(--bbs-hover,#f8fafc);border-radius:6px;border:1px solid var(--bbs-border,#e2e8f0)}
.bbs-spoiler.open .bbs-spoiler-content{display:block}
.bbs-collapse{margin:8px 0;border:1px solid var(--bbs-border,#e2e8f0);border-radius:6px}
.bbs-collapse summary{padding:8px 12px;cursor:pointer;font-weight:600;background:var(--bbs-hover,#f8fafc)}
.bbs-collapse-content{padding:12px}
.bbs-lang-wrap{position:relative;display:inline-block}
.bbs-lang-btn{background:none;border:none;color:var(--bbs-text-secondary,#64748b);font-size:18px;cursor:pointer;padding:4px 8px}
.bbs-lang-dropdown{display:none;position:absolute;top:100%;right:0;background:var(--bbs-bg,#fff);border:1px solid var(--bbs-border,#e2e8f0);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1);z-index:100;min-width:120px}
.bbs-lang-item{display:block;padding:8px 12px;font-size:13px;color:var(--bbs-text,#1e293b);text-decoration:none}
.bbs-lang-item:hover{background:var(--bbs-hover,#f8fafc)}
.bbs-prefs-form{max-width:400px}
.bbs-pref-item{padding:8px 0;border-bottom:1px solid var(--bbs-border,#f1f5f9)}
.bbs-pref-item label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px}
[data-theme="dark"] .bbs-spoiler-content{background:var(--bbs-hover,#1e293b)}
[data-theme="dark"] .bbs-collapse summary{background:var(--bbs-hover,#1e293b)}

/* 分组模式 - 更多按钮 */
.bbs-group-more { padding: 10px 16px; text-align: center; border-top: 1px dashed var(--bbs-border, #e2e8f0); }
.bbs-group-more-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    color: var(--bbs-primary, #6C5CE7);
    text-decoration: none;
    font-weight: 500;
    padding: 6px 16px;
    border-radius: 20px;
    transition: all 0.2s;
}
.bbs-group-more-link:hover { background: var(--bbs-primary-bg, #f5f3ff); }
.bbs-group-more-link i { font-size: 15px; }




/* ============================================================
   下载模块样式
   ============================================================ */
.download-module {
    margin: 20px 0;
    border: 1px solid var(--bbs-border, #e2e8f0);
    border-radius: 10px;
    overflow: hidden;
    background: var(--bbs-bg, #fff);
}

.download-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    background: var(--bbs-hover, #f8fafc);
    cursor: pointer;
    user-select: none;
    transition: background 0.2s;
}
.download-header:hover {
    background: var(--bbs-primary-bg, #f5f3ff);
}

.download-header-left {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 500;
    color: var(--bbs-text, #1e293b);
}
.download-header-left i {
    font-size: 18px;
    color: var(--bbs-primary, #6C5CE7);
}

.download-header-right {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    color: var(--bbs-text-secondary, #64748b);
}
.download-header-right i {
    transition: transform 0.3s;
}

/* 展开/收起状态 */
.download-module .download-list {
    max-height: 2000px;
    opacity: 1;
    overflow: hidden;
    transition: max-height 0.4s ease, opacity 0.3s ease, padding 0.3s ease;
    padding: 0 16px;
}
.download-module.collapsed .download-list {
    max-height: 0;
    opacity: 0;
    padding: 0 16px;
}
.download-module.collapsed .dl-toggle-icon {
    transform: rotate(0deg);
}
.download-module:not(.collapsed) .dl-toggle-icon {
    transform: rotate(180deg);
}

/* 下载项 */
.download-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--bbs-border, #f1f5f9);
}
.download-item:last-child {
    border-bottom: none;
}

.dl-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 8px;
    color: #fff;
    font-size: 18px;
    flex-shrink: 0;
}

.dl-info {
    flex: 1;
    min-width: 0;
}
.dl-name {
    font-size: 14px;
    font-weight: 600;
    color: var(--bbs-text, #1e293b);
    margin-bottom: 4px;
}
.dl-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    font-size: 12px;
    color: var(--bbs-text-secondary, #64748b);
}
.dl-meta span {
    display: inline-flex;
    align-items: center;
    gap: 3px;
}
.dl-meta i {
    font-size: 13px;
}

.dl-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 8px 20px;
    background: var(--bbs-primary, #6C5CE7);
    color: #fff;
    font-size: 13px;
    font-weight: 500;
    border-radius: 6px;
    text-decoration: none;
    white-space: nowrap;
    transition: all 0.2s;
    flex-shrink: 0;
}
.dl-btn:hover {
    background: var(--bbs-primary-hover, #5a4bd1);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(108,92,231,0.3);
}

.download-hint {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 16px;
    font-size: 12px;
    color: var(--bbs-text-muted, #94a3b8);
    background: var(--bbs-hover, #f8fafc);
    border-top: 1px solid var(--bbs-border, #f1f5f9);
}
.download-hint i {
    font-size: 14px;
    flex-shrink: 0;
}

/* 深色模式 */
[data-theme="dark"] .download-module {
    border-color: var(--bbs-border, #334155);
    background: var(--bbs-bg, #1e293b);
}
[data-theme="dark"] .download-header {
    background: var(--bbs-hover, #0f172a);
}
[data-theme="dark"] .download-header:hover {
    background: rgba(108,92,231,0.1);
}
[data-theme="dark"] .download-hint {
    background: var(--bbs-hover, #0f172a);
}

/* 响应式 */
@media (max-width: 640px) {
    .download-item {
        flex-wrap: wrap;
    }
    .dl-btn {
        width: 100%;
        justify-content: center;
        margin-top: 4px;
    }
    .dl-meta {
        font-size: 11px;
    }
}


/* ============================================================
   论坛楼层式评论
   ============================================================ */
.bbs-comments-list { margin-top: 24px; }
.bbs-floor {
    border: 1px solid var(--bbs-border, #e2e8f0);
    border-radius: 10px;
    margin-bottom: 12px;
    background: var(--bbs-bg, #fff);
    overflow: hidden;
}
.bbs-floor.bbs-comment-best-answer {
    border-color: #22c55e;
    background: rgba(34, 197, 94, 0.03);
}
.bbs-floor-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--bbs-border, #f1f5f9);
    background: var(--bbs-hover, #f8fafc);
}
.bbs-floor-avatar { flex-shrink: 0; }
.bbs-floor-avatar .bbs-avatar { width: 36px; height: 36px; }
.bbs-floor-meta {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    min-width: 0;
}
.bbs-floor-user {
    font-weight: 600;
    font-size: 14px;
    color: var(--bbs-text, #1e293b);
}
.bbs-level-badge {
    display: inline-block;
    font-size: 11px;
    font-weight: 500;
    padding: 1px 6px;
    border-radius: 10px;
    background: var(--bbs-primary-bg, #f5f3ff);
    color: var(--bbs-primary, #6C5CE7);
}
.bbs-floor-time {
    font-size: 12px;
    color: var(--bbs-text-muted, #94a3b8);
}
.bbs-floor-num {
    font-size: 12px;
    font-weight: 600;
    color: var(--bbs-primary, #6C5CE7);
    background: var(--bbs-primary-bg, #f5f3ff);
    padding: 1px 8px;
    border-radius: 10px;
    margin-left: auto;
}
.bbs-best-badge {
    font-size: 12px;
    color: #22c55e;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 3px;
}
.bbs-floor-content {
    padding: 14px 16px;
    font-size: 14px;
    line-height: 1.7;
    color: var(--bbs-text, #1e293b);
    word-break: break-word;
}
.bbs-floor-content p { margin: 0 0 8px; }
.bbs-floor-content p:last-child { margin-bottom: 0; }
.bbs-floor-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-top: 1px solid var(--bbs-border, #f1f5f9);
}
.bbs-floor-reply-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    color: var(--bbs-text-secondary, #64748b);
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 6px;
    transition: all 0.2s;
}
.bbs-floor-reply-btn:hover {
    color: var(--bbs-primary, #6C5CE7);
    background: var(--bbs-primary-bg, #f5f3ff);
}
.bbs-floor-replies {
    margin-left: 20px;
    padding-left: 16px;
    border-left: 2px solid var(--bbs-border, #e2e8f0);
}
.bbs-floor-replies .bbs-floor {
    border-radius: 8px;
    margin-bottom: 8px;
}
.bbs-floor-replies .bbs-floor-header {
    padding: 8px 12px;
}
.bbs-floor-replies .bbs-floor-content {
    padding: 10px 12px;
}
.bbs-floor-replies .bbs-floor-actions {
    padding: 6px 12px;
}

/* 深色模式 */
[data-theme="dark"] .bbs-floor {
    border-color: var(--bbs-border, #334155);
    background: var(--bbs-bg, #1e293b);
}
[data-theme="dark"] .bbs-floor-header {
    background: var(--bbs-hover, #0f172a);
    border-color: var(--bbs-border, #334155);
}
[data-theme="dark"] .bbs-floor-actions {
    border-color: var(--bbs-border, #334155);
}
[data-theme="dark"] .bbs-floor-replies {
    border-color: var(--bbs-border, #334155);
}

/* 响应式 */
@media (max-width: 640px) {
    .bbs-floor-header { padding: 10px 12px; }
    .bbs-floor-content { padding: 10px 12px; font-size: 13px; }
    .bbs-floor-replies { margin-left: 8px; padding-left: 10px; }
}


/* === 移动端侧滑菜单 === */
.bbs-mobile-menu { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 9999; }
.bbs-mobile-menu.active { display: block; }
.bbs-mobile-backdrop { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.4); }
.bbs-mobile-panel { position: absolute; top: 0; right: 0; width: 280px; max-width: 85%; height: 100%; background: var(--bbs-bg-card, #fff); box-shadow: -4px 0 20px rgba(0,0,0,0.15); overflow-y: auto; transform: translateX(100%); transition: transform 0.3s ease; z-index: 1; }
.bbs-mobile-menu.active .bbs-mobile-panel { transform: translateX(0); }
.bbs-mobile-head { display: flex; align-items: center; justify-content: space-between; padding: 16px; border-bottom: 1px solid var(--bbs-border-light, #e2e8f0); font-weight: 600; font-size: 16px; }
.bbs-mobile-head button { background: none; border: none; font-size: 24px; cursor: pointer; color: var(--bbs-text, #333); padding: 0 4px; line-height: 1; }

/* === 公告栏 === */
.bbs-notice-bar {
    background: var(--bbs-primary-bg, #f5f3ff);
    border-bottom: 1px solid var(--bbs-border-light, #e2e8f0);
    padding: 10px 0;
}
.bbs-notice-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--bbs-text, #1e293b);
}
.bbs-notice-inner i {
    color: var(--bbs-primary, #6C5CE7);
    font-size: 16px;
    flex-shrink: 0;
}
.bbs-notice-inner span {
    flex: 1;
    line-height: 1.6;
}
.bbs-notice-close {
    background: none;
    border: none;
    font-size: 20px;
    cursor: pointer;
    color: var(--bbs-text-muted, #94a3b8);
    padding: 0 4px;
    line-height: 1;
    flex-shrink: 0;
}
.bbs-notice-close:hover {
    color: var(--bbs-text, #1e293b);
}
[data-theme="dark"] .bbs-notice-bar {
    background: var(--bbs-primary-bg, #1e1b4b);
    border-color: var(--bbs-border, #334155);
}
.bbs-mobile-nav { padding: 8px 0; }
.bbs-mobile-nav a { display: flex; align-items: center; gap: 10px; padding: 12px 16px; color: var(--bbs-text, #333); text-decoration: none; font-size: 14px; border-bottom: 1px solid var(--bbs-border-light, #f0f0f0); }
.bbs-mobile-nav a:hover, .bbs-mobile-nav a:active { background: var(--bbs-bg-hover, #f5f5f5); }
.bbs-mobile-nav a i { font-size: 18px; color: var(--bbs-text-muted, #999); width: 22px; text-align: center; }

/* === 社区管理面板 & 动态页 === */
.bbs-admin-card {
    background: var(--bbs-bg-card, #fff);
    border-radius: 12px;
    border: 1px solid var(--bbs-border, #e2e8f0);
    overflow: hidden;
}
.bbs-admin-card-header {
    padding: 16px;
    border-bottom: 1px solid var(--bbs-border, #e2e8f0);
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
    font-weight: 600;
}
.bbs-admin-empty {
    text-align: center;
    padding: 40px;
    color: var(--bbs-text-muted, #94a3b8);
}
.bbs-admin-empty-lg {
    text-align: center;
    padding: 60px;
    color: var(--bbs-text-muted, #94a3b8);
}
.bbs-admin-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.bbs-admin-table thead tr {
    background: var(--bbs-hover, #f8fafc);
    border-bottom: 1px solid var(--bbs-border, #e2e8f0);
}
.bbs-admin-table th {
    padding: 10px 16px;
    text-align: left;
    font-weight: 600;
    color: var(--bbs-text-secondary, #475569);
}
.bbs-admin-table td {
    padding: 10px 16px;
    color: var(--bbs-text, #1e293b);
}
.bbs-admin-table tbody tr {
    border-bottom: 1px solid var(--bbs-border-light, #f1f5f9);
}
.bbs-admin-text-muted {
    color: var(--bbs-text-muted, #94a3b8);
}
.bbs-admin-text-secondary {
    color: var(--bbs-text-secondary, #64748b);
}
.bbs-admin-text-tertiary {
    color: var(--bbs-text-tertiary, #475569);
}
.bbs-admin-text-danger {
    color: var(--bbs-danger, #ef4444);
}
.bbs-admin-badge {
    font-size: 11px;
    padding: 1px 6px;
    border-radius: 10px;
    margin-left: 4px;
}
.bbs-admin-badge-danger {
    background: var(--bbs-danger, #ef4444);
    color: #fff;
}
.bbs-admin-badge-primary {
    color: #fff;
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 10px;
}
.bbs-admin-btn-view {
    padding: 6px 16px;
    border-radius: 6px;
    border: 1px solid var(--bbs-border, #e2e8f0);
    background: var(--bbs-bg-card, #fff);
    color: var(--bbs-text-secondary, #475569);
    font-size: 13px;
    text-decoration: none;
}
.bbs-feed-item {
    display: flex;
    gap: 12px;
    padding: 14px 20px;
    border-bottom: 1px solid var(--bbs-border-light, #f1f5f9);
}
.bbs-feed-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}
.bbs-feed-text-secondary {
    color: var(--bbs-text-secondary, #64748b);
}
.bbs-feed-text-primary {
    color: var(--bbs-text, #1e293b);
    text-decoration: none;
    font-weight: 500;
}
.bbs-feed-link-primary {
    font-weight: 600;
    color: var(--bbs-primary, #6C5CE7);
    text-decoration: none;
}
.bbs-rank-gold {
    color: var(--bbs-rank-gold, #d97706);
}
.bbs-admin-icon-empty {
    font-size: 48px;
    margin-bottom: 12px;
}
[data-theme="dark"] .bbs-admin-card {
    background: var(--bbs-bg-card, #1e293b);
    border-color: var(--bbs-border, #334155);
}
[data-theme="dark"] .bbs-admin-table thead tr {
    background: var(--bbs-hover, #0f172a);
}
[data-theme="dark"] .bbs-admin-btn-view {
    background: var(--bbs-bg-card, #1e293b);
    border-color: var(--bbs-border, #334155);
    color: var(--bbs-text-secondary, #94a3b8);
}

/* ========== v1.3.0-p5: 付费内容付费墙 ========== */
.bbs-paywall{position:relative;margin-bottom:16px}
.bbs-paywall-preview{color:var(--bbs-text-sec);line-height:1.8;padding:16px 0;font-size:14px;max-height:120px;overflow:hidden}
.bbs-paywall-overlay{position:relative;padding:40px 24px;background:linear-gradient(180deg,transparent 0%,var(--bbs-bg) 15%);text-align:center;margin-top:-60px}
.bbs-paywall-box{max-width:400px;margin:0 auto;padding:32px;background:var(--bbs-card-bg);border-radius:12px;border:1px solid var(--bbs-border-light);box-shadow:0 4px 24px rgba(0,0,0,0.08)}
.bbs-paywall-icon{width:56px;height:56px;margin:0 auto 16px;background:linear-gradient(135deg,var(--bbs-primary),var(--bbs-primary-hover));border-radius:50%;display:flex;align-items:center;justify-content:center}
.bbs-paywall-icon i{font-size:24px;color:#fff}
.bbs-paywall-title{font-size:18px;font-weight:600;margin-bottom:8px;color:var(--bbs-text)}
.bbs-paywall-desc{font-size:13px;color:var(--bbs-text-sec);margin-bottom:20px}
.bbs-paywall-info{display:flex;justify-content:center;gap:24px;margin-bottom:20px;font-size:13px}
.bbs-paywall-price{display:flex;align-items:center;gap:4px;font-size:18px;font-weight:700;color:var(--bbs-primary)}
.bbs-paywall-price i{font-size:20px}
.bbs-paywall-balance{color:var(--bbs-text-sec);line-height:1.8}
.bbs-purchase-btn{margin-top:16px;padding:10px 32px;font-size:15px;border-radius:8px;cursor:pointer;transition:all 0.2s}
.bbs-purchase-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,0.15)}
.bbs-purchase-btn:disabled{opacity:0.6;cursor:not-allowed;transform:none}
[data-theme="dark"] .bbs-paywall-box{box-shadow:0 4px 24px rgba(0,0,0,0.3)}
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}

/* ========== v1.3.0-p5: OAuth登录按钮 ========== */
.bbs-oauth-section .bbs-btn{font-size:13px;padding:8px 12px;border-radius:8px;transition:all 0.2s}
.bbs-oauth-section .bbs-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,0.1)}


/* ========== v1.3.0-p6: [hide] 和 [pay] 标签框 ========== */
.bbs-tag-box{margin:16px 0;border-radius:8px;overflow:hidden}
.bbs-tag-label{display:flex;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600}
.bbs-tag-content{padding:14px 16px;line-height:1.8}
.bbs-tag-locked-body{display:flex;align-items:center;gap:8px;padding:14px 16px;font-size:13px;color:var(--bbs-text-sec)}
.bbs-tag-preview-text{font-size:12px;color:var(--bbs-text-muted);filter:blur(2px);user-select:none;max-width:200px;overflow:hidden;white-space:nowrap}




/* ========== v1.3.0-p6: 快速回复 ========== */
.bbs-quick-reply-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.bbs-qr-btn{padding:3px 10px;font-size:12px;border:1px solid var(--bbs-border-light);border-radius:14px;background:var(--bbs-card-bg);color:var(--bbs-text-sec);cursor:pointer;transition:all 0.15s;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}
.bbs-qr-btn:hover{background:var(--bbs-primary);color:#fff;border-color:var(--bbs-primary)}
/* ========== v1.3.0-p6: 访客查看模式 ========== */
.bbs-guest-blocked{text-align:center;padding:60px 24px}
.bbs-guest-blocked-inner{max-width:400px;margin:0 auto;padding:32px;background:var(--bbs-card-bg);border-radius:12px;border:1px solid var(--bbs-border-light)}
.bbs-guest-blocked-inner i{font-size:40px;color:var(--bbs-primary);display:block;margin-bottom:12px}
.bbs-guest-blocked-inner h3{margin:0 0 8px;font-size:18px;color:var(--bbs-text)}
.bbs-guest-blocked-inner p{margin:0;color:var(--bbs-text-sec);font-size:14px}
.bbs-guest-blur-zone{position:relative;margin-top:0;padding:0 0 40px}
.bbs-guest-blur-overlay{height:120px;background:linear-gradient(to bottom,transparent,var(--bbs-bg));pointer-events:none}
.bbs-guest-blur-prompt{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;font-size:14px;color:var(--bbs-text-sec)}
[data-theme="dark"] .bbs-guest-blocked-inner{box-shadow:0 4px 24px rgba(0,0,0,0.3)}

/* [login] 登录可见 - 蓝色系 */
.bbs-tag-box-login{background:var(--bbs-card-bg);border:1px solid #93c5fd}
.bbs-tag-box-login .bbs-tag-label{background:#dbeafe;color:#1e40af;border-bottom:1px solid #93c5fd}
.bbs-tag-box-login-locked{background:var(--bbs-card-bg);border:1px dashed #93c5fd}
.bbs-tag-box-login-locked .bbs-tag-label{background:#eff6ff;color:#1d4ed8;border-bottom:1px dashed #93c5fd}
[data-theme="dark"] .bbs-tag-box-login{border-color:#1e40af}
[data-theme="dark"] .bbs-tag-box-login .bbs-tag-label{background:#1e3a5f;color:#93c5fd}
[data-theme="dark"] .bbs-tag-box-login-locked{border-color:#1e40af}
[data-theme="dark"] .bbs-tag-box-login-locked .bbs-tag-label{background:#172554;color:#93c5fd}

/* [hide] 回复可见 - 绿色系 */
.bbs-tag-box-hide{background:var(--bbs-card-bg);border:1px solid #d1f5d1}
.bbs-tag-box-hide .bbs-tag-label{background:#dcfce7;color:#166534;border-bottom:1px solid #d1f5d1}
.bbs-tag-box-hide-locked{background:var(--bbs-card-bg);border:1px dashed #86efac}
.bbs-tag-box-hide-locked .bbs-tag-label{background:#f0fdf4;color:#15803d;border-bottom:1px dashed #86efac}

/* [pay] 付费可见 - 紫色系 */
.bbs-tag-box-pay{background:var(--bbs-card-bg);border:1px solid #e9d5ff}
.bbs-tag-box-pay .bbs-tag-label{background:#f3e8ff;color:#7c3aed;border-bottom:1px solid #e9d5ff}
.bbs-tag-box-pay-locked{background:var(--bbs-card-bg);border:1px dashed #c4b5fd}
.bbs-tag-box-pay-locked .bbs-tag-label{background:#faf5ff;color:#6d28d9;border-bottom:1px dashed #c4b5fd}

[data-theme="dark"] .bbs-tag-box-hide{border-color:#166534}
[data-theme="dark"] .bbs-tag-box-hide .bbs-tag-label{background:#14532d;color:#86efac}
[data-theme="dark"] .bbs-tag-box-hide-locked{border-color:#166534}
[data-theme="dark"] .bbs-tag-box-hide-locked .bbs-tag-label{background:#052e16;color:#86efac}
[data-theme="dark"] .bbs-tag-box-pay{border-color:#7c3aed}
[data-theme="dark"] .bbs-tag-box-pay .bbs-tag-label{background:#2e1065;color:#c4b5fd}
[data-theme="dark"] .bbs-tag-box-pay-locked{border-color:#7c3aed}
[data-theme="dark"] .bbs-tag-box-pay-locked .bbs-tag-label{background:#1e0a3e;color:#c4b5fd}

/* ========== v1.3.0-p5: 悬赏帖子样式 ========== */
.bbs-bounty-banner{animation:bounty-glow 2s ease-in-out infinite alternate}
@keyframes bounty-glow{from{box-shadow:0 0 0 0 rgba(245,158,11,0)}to{box-shadow:0 0 12px 2px rgba(245,158,11,0.15)}}
/* ========== v1.3.0-p6: [hide] 回复查看标签 ========== */
.bbs-hide-block{position:relative;margin:16px 0}
.bbs-hide-locked{display:flex;align-items:center;gap:8px;padding:16px 20px;background:linear-gradient(135deg,var(--bbs-hover),var(--bbs-card-bg));border:1px dashed var(--bbs-border-light);border-radius:8px;color:var(--bbs-text-sec);font-size:14px}
.bbs-hide-locked i{font-size:20px;color:var(--bbs-primary)}

/* ========== v1.3.0-p6: [pay] 付费查看标签 ========== */
.bbs-pay-block{position:relative;margin:16px 0;border-radius:8px;overflow:hidden}
.bbs-pay-preview{padding:16px;color:var(--bbs-text-sec);font-size:13px;line-height:1.6;max-height:60px;overflow:hidden;filter:blur(2px);user-select:none}
.bbs-pay-overlay{display:flex;align-items:center;padding:12px 16px;background:linear-gradient(135deg,rgba(9,105,218,0.05),rgba(9,105,218,0.02));border:1px solid var(--bbs-border-light);border-top:none;border-radius:0 0 8px 8px}
.bbs-pay-tag-btn{padding:8px 20px;font-size:13px;border-radius:6px;cursor:pointer;transition:all 0.2s}
.bbs-pay-tag-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,0.1)}
[data-theme="dark"] .bbs-pay-overlay{background:linear-gradient(135deg,rgba(9,105,218,0.1),rgba(9,105,218,0.05))}

