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

/* ============================================================
   X-Dream CMS - 百科模块样式（对标百度百科）
   频道首页 + 词条详情（概述框/目录/正文）+ 编辑页
   ============================================================ */

/* ========== 频道首页：搜索区 ========== */
.baike-hero {
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
    border-radius: var(--radius);
    padding: 36px 24px;
    text-align: center;
    margin-bottom: 24px;
    color: #fff;
}
.baike-hero h1 { font-size: 26px; font-weight: 700; margin-bottom: 6px; }
.baike-hero p { font-size: 14px; opacity: 0.85; margin-bottom: 18px; }
.baike-search {
    display: flex;
    max-width: 560px;
    margin: 0 auto;
    gap: 8px;
}
.baike-search input {
    flex: 1;
    padding: 11px 16px;
    border: none;
    border-radius: var(--radius);
    font-size: 14px;
    outline: none;
}
.baike-search button {
    padding: 11px 26px;
    border: none;
    border-radius: var(--radius);
    background: var(--dark);
    color: #fff;
    font-size: 14px;
    cursor: pointer;
    transition: opacity .2s;
}
.baike-search button:hover { opacity: 0.85; }

/* ========== 分类导航条 ========== */
.baike-cats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 22px;
}
.baike-cat {
    padding: 6px 16px;
    border-radius: 20px;
    background: #fff;
    border: 1px solid var(--gray-border);
    font-size: 13px;
    color: var(--text);
    transition: all .2s;
}
.baike-cat:hover { border-color: var(--primary); color: var(--primary); }
.baike-cat.active {
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
}

/* ========== 特色词条横排 ========== */
.baike-featured {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 8px;
}
.baike-feat-card {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    overflow: hidden;
    display: flex;
    transition: box-shadow .2s, transform .2s;
}
.baike-feat-card:hover { box-shadow: var(--shadow-hover); transform: translateY(-2px); }
.baike-feat-cover {
    width: 92px;
    flex-shrink: 0;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    overflow: hidden;
}
.baike-feat-cover img { width: 100%; height: 100%; object-fit: cover; }
.baike-feat-info { padding: 12px 14px; min-width: 0; }
.baike-feat-info h3 {
    font-size: 15px;
    font-weight: 700;
    margin-bottom: 6px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.baike-feat-info h3 a { color: var(--text); }
.baike-feat-info h3 a:hover { color: var(--primary); }
.baike-feat-info p {
    font-size: 12px;
    color: var(--text-light);
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.baike-feat-badge {
    display: inline-block;
    font-size: 11px;
    color: #b8860b;
    background: #fdf6e3;
    border: 1px solid #f0e0b0;
    padding: 0 6px;
    border-radius: 3px;
    margin-right: 6px;
    vertical-align: 1px;
}

/* ========== 词条列表（搜索结果/分类浏览） ========== */
.baike-list { display: flex; flex-direction: column; gap: 14px; }
.baike-item {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 16px 18px;
    display: flex;
    gap: 16px;
    transition: box-shadow .2s;
}
.baike-item:hover { box-shadow: var(--shadow-hover); }
.baike-item-main { flex: 1; min-width: 0; }
.baike-item-title { font-size: 17px; font-weight: 700; margin-bottom: 6px; }
.baike-item-title a { color: var(--primary); }
.baike-item-title a:hover { text-decoration: underline; }
.baike-item-summary {
    font-size: 13px;
    color: var(--text-light);
    line-height: 1.7;
    margin-bottom: 8px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.baike-item-meta { font-size: 12px; color: #aaa; display: flex; flex-wrap: wrap; gap: 12px; }
.baike-item-cover {
    width: 110px;
    height: 82px;
    flex-shrink: 0;
    border-radius: 6px;
    overflow: hidden;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}
.baike-item-cover img { width: 100%; height: 100%; object-fit: cover; }

/* ========== 词条详情页 ========== */
.baike-entry-head { margin-bottom: 18px; }
.baike-entry-head h1 {
    font-size: 26px;
    font-weight: 700;
    display: inline-block;
    margin-right: 12px;
}
.baike-entry-meta {
    font-size: 12px;
    color: var(--text-light);
    margin-top: 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: center;
}
.baike-entry-actions { float: right; display: flex; gap: 8px; }
.baike-entry-actions .btn { padding: 6px 16px; font-size: 13px; }

/* 概述框：摘要 + 封面右浮（百度百科式） */
.baike-summary-box {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 20px 22px;
    margin-bottom: 20px;
    overflow: hidden;
}
.baike-summary-cover {
    float: right;
    width: 180px;
    margin: 0 0 12px 20px;
    border-radius: 6px;
    overflow: hidden;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}
.baike-summary-cover img { width: 100%; display: block; }
.baike-summary-box h2 {
    font-size: 15px;
    font-weight: 700;
    color: var(--primary);
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--gray-border);
}
.baike-summary-text { font-size: 14px; line-height: 1.9; color: var(--text); text-align: justify; }

/* 主体两栏：正文 + 侧边目录 */
.baike-body-wrap { display: grid; grid-template-columns: 1fr 250px; gap: 20px; align-items: start; }
.baike-content {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 24px 28px;
    min-width: 0;
}
.baike-content h2 {
    font-size: 18px;
    font-weight: 700;
    margin: 22px 0 12px;
    padding-left: 10px;
    border-left: 4px solid var(--primary);
    scroll-margin-top: 80px;
}
.baike-content h2:first-child { margin-top: 0; }
.baike-content h3 {
    font-size: 15px;
    font-weight: 700;
    margin: 16px 0 8px;
    scroll-margin-top: 80px;
}
.baike-content h4, .baike-content h5 { font-size: 14px; font-weight: 700; margin: 12px 0 6px; }
.baike-content p { font-size: 14px; line-height: 2; margin-bottom: 10px; text-align: justify; }
.baike-content ul, .baike-content ol { margin: 0 0 12px 22px; font-size: 14px; line-height: 1.9; }
.baike-content blockquote {
    border-left: 3px solid var(--gray-border);
    padding: 8px 14px;
    margin: 10px 0;
    color: var(--text-light);
    background: var(--gray-bg);
    border-radius: 0 6px 6px 0;
}
.baike-content img { max-width: 100%; border-radius: 6px; margin: 8px 0; }
.baike-content table { border-collapse: collapse; width: 100%; margin: 12px 0; font-size: 13px; }
.baike-content td, .baike-content th { border: 1px solid var(--gray-border); padding: 7px 10px; }
.baike-content th { background: var(--gray-bg); font-weight: 600; }
.baike-content pre {
    background: #1a1a2e;
    color: #e8e8f0;
    padding: 12px 16px;
    border-radius: 6px;
    overflow-x: auto;
    font-size: 13px;
    margin: 10px 0;
}
.baike-content a { color: var(--primary); }
.baike-content a:hover { text-decoration: underline; }

/* 侧边目录（百科式 TOC） */
.baike-toc {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 16px 18px;
    position: sticky;
    top: 80px;
}
.baike-toc-title {
    font-size: 14px;
    font-weight: 700;
    padding-bottom: 10px;
    margin-bottom: 8px;
    border-bottom: 1px solid var(--gray-border);
}
.baike-toc a {
    display: block;
    font-size: 13px;
    color: var(--text);
    padding: 5px 0;
    line-height: 1.5;
    border-left: 2px solid transparent;
    padding-left: 8px;
}
.baike-toc a:hover { color: var(--primary); border-left-color: var(--primary); }
.baike-toc a.toc-l3 { padding-left: 22px; font-size: 12px; color: var(--text-light); }

/* 标签 */
.baike-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--gray-border); }
.baike-tag {
    font-size: 12px;
    padding: 3px 12px;
    border-radius: 14px;
    background: var(--gray-bg);
    color: var(--text-light);
    border: 1px solid var(--gray-border);
}
.baike-tag:hover { color: var(--primary); border-color: var(--primary); }

/* 侧栏卡片：相关词条 / 编辑历史 */
.baike-side-card {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 16px 18px;
    margin-top: 16px;
}
.baike-side-card h3 {
    font-size: 14px;
    font-weight: 700;
    padding-bottom: 10px;
    margin-bottom: 8px;
    border-bottom: 1px solid var(--gray-border);
}
.baike-related a {
    display: block;
    font-size: 13px;
    padding: 6px 0;
    color: var(--text);
    border-bottom: 1px dashed #f0f0f0;
}
.baike-related a:last-child { border-bottom: none; }
.baike-related a:hover { color: var(--primary); }
.baike-related .rel-views { float: right; font-size: 11px; color: #bbb; }
.baike-history-item { font-size: 12px; color: var(--text-light); padding: 6px 0; border-bottom: 1px dashed #f0f0f0; line-height: 1.6; }
.baike-history-item:last-child { border-bottom: none; }
.baike-history-item .h-user { color: var(--primary); }
.baike-history-item .h-time { float: right; color: #bbb; font-size: 11px; }

/* 审核状态提示条 */
.baike-status-banner {
    border-radius: var(--radius);
    padding: 12px 18px;
    margin-bottom: 16px;
    font-size: 13px;
}
.baike-status-pending { background: #fdf6e3; border: 1px solid #f0e0b0; color: #8a6d1a; }
.baike-status-rejected { background: #fdecea; border: 1px solid #f5c6c0; color: #a03428; }

/* ========== 编辑页 ========== */
.baike-edit-wrap {
    max-width: 860px;
    margin: 0 auto;
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 28px 32px;
}
.baike-edit-wrap h1 { font-size: 20px; font-weight: 700; margin-bottom: 20px; }
.baike-edit-tip {
    background: var(--gray-bg);
    border-radius: 6px;
    padding: 10px 14px;
    font-size: 12px;
    color: var(--text-light);
    line-height: 1.8;
    margin-bottom: 18px;
}
.baike-edit-wrap textarea[name="content"] {
    width: 100%;
    min-height: 340px;
    padding: 12px 14px;
    border: 1px solid var(--gray-border);
    border-radius: 6px;
    font-size: 13px;
    line-height: 1.8;
    font-family: Consolas, Monaco, monospace;
    resize: vertical;
}
.baike-edit-wrap textarea[name="summary"] {
    width: 100%;
    min-height: 90px;
    padding: 10px 14px;
    border: 1px solid var(--gray-border);
    border-radius: 6px;
    font-size: 13px;
    line-height: 1.8;
    resize: vertical;
}
.baike-cover-preview { max-width: 140px; border-radius: 6px; margin-top: 8px; }

/* ========== 首页栏目：横向扑克牌卡片网格（与短剧/短视频卡片同规格） ========== */
.baike-card-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
}
.baike-card {
    position: relative;
    display: block;
    border-radius: 8px;
    overflow: hidden;
    background: #1a1a2e;
    cursor: pointer;
    transition: transform .2s, box-shadow .2s;
    /* 扑克牌横放（宽:高 = 1.4 : 1）：同列宽下高度约为竖版的一半 */
    aspect-ratio: 1.4 / 1;
}
.baike-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); }
.baike-card:active { transform: scale(0.98); }
.baike-card-thumb {
    position: relative;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    overflow: hidden;
}
.baike-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* 无封面时：渐变底 + 词条首字（横版矮卡，字号相应缩小） */
.baike-card-letter {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
    font-weight: 700;
    color: rgba(255,255,255,0.88);
    text-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
.baike-card-badge {
    position: absolute;
    top: 6px;
    left: 6px;
    font-size: 10px;
    font-weight: 600;
    color: #b8860b;
    background: #fdf6e3;
    border: 1px solid #f0e0b0;
    padding: 0 5px;
    border-radius: 3px;
}
.baike-card-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 26px 10px 8px;
    background: linear-gradient(transparent, rgba(0,0,0,0.78));
    color: #fff;
}
.baike-card-title {
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.35;
    margin-bottom: 3px;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.baike-card-meta {
    font-size: 10.5px;
    color: rgba(255,255,255,0.75);
    display: flex;
    gap: 10px;
}
@media (max-width: 1024px) {
    .baike-card-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
    .baike-card-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
}

/* ========== 响应式 ========== */
@media (max-width: 900px) {
    .baike-featured { grid-template-columns: 1fr; }
    .baike-body-wrap { grid-template-columns: 1fr; }
    .baike-toc { position: static; order: -1; }
    .baike-summary-cover { width: 120px; }
    .baike-item { flex-direction: column-reverse; }
    .baike-item-cover { width: 100%; height: 160px; }
    .baike-entry-actions { float: none; margin-top: 10px; }
    .baike-edit-wrap { padding: 20px 16px; }
}
