/* ============================================================
   论坛模块样式 - 两栏列表布局（参考论坛列表截图）
   左侧: 网站统一导航  |  主区: 帖子列表 + 筛选栏  |  右栏: 用户/签到
   ============================================================ */

/* ---- 全局变量 ---- */
:root {
    --forum-primary: #ff4713;
    --forum-primary-light: #ffeef1;
    --forum-secondary: #f7f8fa;
    --forum-border: #ebedf0;
    --forum-text: #1a1a2e;
    --forum-muted: #8590a6;
    --forum-link: #ff4713;
    --forum-card-radius: 8px;
    --forum-primary-hover: #d63a0f;
    --card-bg: #ffffff;
}

/* ============================================================
   论坛首页：筛选栏内排序按钮
   ============================================================ */
.forum-sort-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 0 0 0;
	margin-left: auto;
}
.forum-sort-bar a {
    color: var(--forum-muted);
    text-decoration: none;
    padding: 2px 10px;
    border-radius: 20px;
    transition: all 0.15s;
    font-size: 13px;
}
.forum-sort-bar a:hover { color: var(--forum-primary); background: var(--forum-primary-light); }
.forum-sort-bar a.active {
    color: #fff;
    background: var(--forum-primary);
    font-weight: 500;
}

/* ============================================================
   论坛首页：侧边栏分类导航
   ============================================================ */
.forum-sidebar-cats {
    display: flex;
    align-items: flex-start;
    gap: 0;
}
.forum-cats-label {
    display: inline-flex;
    align-items: center;
    color: #666;
    border-radius: 4px;
    font-size: 13px;
    white-space: nowrap;
    margin-right: 4px;
    margin-bottom: 4px;
    line-height: 1.4;
}
.forum-cats-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    flex: 1;
}
.forum-sidebar-tag {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 12px;
    color: var(--forum-muted);
    text-decoration: none;
    background: var(--forum-secondary);
    transition: all .15s;
    white-space: nowrap;
    border: 1px solid transparent;
}
.forum-sidebar-tag:hover {
    color: var(--forum-primary);
    background: var(--forum-primary-light);
    text-decoration: none;
}
.forum-sidebar-tag.active {
    color: #fff;
    background: var(--forum-primary);
    font-weight: 500;
}
.forum-sidebar-sort {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.forum-sidebar-tag-sm {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 12px;
    color: var(--forum-muted);
    text-decoration: none;
    background: var(--forum-secondary);
    transition: all .15s;
    white-space: nowrap;
    border: 1px solid transparent;
}
.forum-sidebar-tag-sm:hover {
    color: var(--forum-primary);
    background: var(--forum-primary-light);
    text-decoration: none;
}
.forum-sidebar-tag-sm.active {
    color: #fff;
    background: var(--forum-primary);
    font-weight: 500;
}

/* ============================================================
   论坛首页：工具栏（排序 + 发布按钮）
   ============================================================ */
.forum-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-left: auto;
}
.forum-publish-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px 18px;
    background: var(--forum-primary);
    color: #fff;
    border-radius: 20px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 500;
    transition: all 0.2s;
    white-space: nowrap;
    flex-shrink: 0;
}
.forum-publish-btn:hover {
    background: var(--forum-primary-hover);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(255,71,19,.3);
}
.forum-publish-btn .iconfont {
    font-size: 14px;
}

/* ============================================================
   论坛首页：帖子列表（仿图片卡片风格）
   ============================================================ */
/* 列表容器 */
.forum-post-list {
    background: transparent;
    border-radius: 0;
    border: none;
    overflow: visible;
}
.forum-post-item {
    display: flex;
    flex-direction: column;
    padding: 16px 18px;
    background: #fff;
    border-radius: var(--forum-card-radius);
    border: 1px solid var(--forum-border);
    margin-bottom: 12px;
    transition: background 0.15s, box-shadow 0.15s;
    text-decoration: none;
    color: inherit;
    gap: 10px;
}
.forum-post-item:last-child { margin-bottom: 0; }
.forum-post-item:hover { background: #fafbfc; box-shadow: 0 2px 8px rgba(0,0,0,0.04); }

/* 头部：作者头像 + 昵称 + 分类标签 */
.forum-post-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.fph-author {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 0;
}
.fph-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    background: var(--forum-secondary);
}
.fph-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.fph-meta {
    display: flex;
    align-items: center;
    gap: 6px;
}
.fph-name {
    font-size: 14px;
    font-weight: 500;
    color: #555;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.fph-level {
    height: 16px;
    width: auto;
    display: inline-block;
    flex-shrink: 0;
    align-self: flex-start;
    object-fit: contain;
}
.fph-time {
    font-size: 12px;
    color: var(--forum-muted);
    white-space: nowrap;
}
.fph-tag {
    font-size: 12px;
    color: var(--forum-primary);
    background: var(--forum-primary-light);
    padding: 2px 10px;
    border-radius: 12px;
    white-space: nowrap;
    flex-shrink: 0;
}

/* 标题行 */
.forum-post-title-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
    line-height: 1.4;
}

/* 彩色胶囊标签 */
.forum-tag-pill {
    display: inline-block;
    font-size: 11px;
    padding: 1px 8px;
    border-radius: 10px;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
    line-height: 1.7;
}
.forum-tag-pill.tag-top {
    background: linear-gradient(135deg, #ff6b6b, #e8344f);
    color: #fff;
}
.forum-tag-pill.tag-cat {
    background: #fff0eb;
    color: #e8344f;
    border: 1px solid #ffd1cc;
}
.forum-tag-pill.tag-essence {
    background: linear-gradient(135deg, #ffd700, #ff8c00);
    color: #fff;
}

/* 标题文字 */
.forum-post-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--forum-text);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color 0.15s;
    margin: 0;
    line-height: 1.4;
}
.forum-post-item:hover .forum-post-title { color: var(--forum-primary); }

/* 内容摘要 */
.forum-post-summary {
    font-size: 14px;
    color: #666;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 图片预览区 */
.forum-post-images {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-top: 2px;
}
.forum-post-images.images-1 {
    grid-template-columns: repeat(2, 1fr);
}
.forum-post-images.images-1 .fpi-img-wrap:first-child {
    grid-column: span 1;
    max-width: 70%;  /* 单张图/视频封面显示更大 */
}
.forum-post-images.images-2 { grid-template-columns: repeat(2, 1fr); }
.forum-post-images.images-2 .fpi-img-wrap { grid-column: span 1; }
.fpi-img-wrap {
    position: relative;
    aspect-ratio: 4 / 3;
    border-radius: 8px;
    overflow: hidden;
    background: #f5f6f7;
}
.fpi-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s;
}
.forum-post-item:hover .fpi-img-wrap img {
    transform: scale(1.03);
}
/* 超过3张的角标 */
.fpi-img-more {
    position: absolute;
    right: 6px;
    bottom: 6px;
    background: rgba(0,0,0,0.55);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    padding: 8px 10px;
    border-radius: 18%;
    line-height: 1;
	text-align: center;
    backdrop-filter: blur(2px);
}
/* 视频封面播放按钮 */
.fpi-video-cover { position: relative; }
.fpi-play-btn {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 48px; height: 48px;
    background: rgba(0,0,0,0.5);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 22px;
    pointer-events: none;
    backdrop-filter: blur(2px);
    transition: background 0.2s, transform 0.2s;
}
.fpi-video-cover:hover .fpi-play-btn {
    background: rgba(0,0,0,0.7);
    transform: translate(-50%, -50%) scale(1.08);
}
.fpi-play-btn i { margin-left: 2px; }
.fpi-play-btn::before {
    content: '';
    display: block;
    width: 0; height: 0;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
    border-left: 16px solid #fff;
    margin-left: 3px;
}
.fpi-video-placeholder {
    width: 100%; height: 100%;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}
/* 视频封面 - 16:9 更宽更矮 */
.fpi-video-wrap {
    position: relative;
    aspect-ratio: 16 / 9;        /* 视频常用比例 */
    border-radius: 8px;
    overflow: hidden;
    background: #1a1a2e;
}
.fpi-video-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s;
}
.forum-post-item:hover .fpi-video-wrap img {
    transform: scale(1.03);
}
@media (max-width: 767px) {
    /* 视频封面在手机端占满整行 */
    .fpi-video-wrap {
        width: 100% !important;
        aspect-ratio: 16 / 9;
        border-radius: 6px;
    }
    .fpi-video-wrap img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover;
    }

    /* 确保父容器也是100% */
    .forum-post-images .fpi-video-wrap {
        grid-column: 1 / -1 !important;  /* 占满整行 */
    }
}
/*屏幕小于768px分页样式*/
@media (max-width:768px) {
.fpi-img-more {
    padding: 6px 8px;
}
}
/* 底部：最后回复信息 + 统计 */
.forum-post-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    font-size: 12px;
    color: var(--forum-muted);
    margin-top: 2px;
}
.fpf-left {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    flex: 1;
}
.fpf-reply-avatar {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}
.fpf-reply-name {
    color: #555;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 80px;
}
.fpf-reply-time,
.fpf-time {
    white-space: nowrap;
    color: #bbb;
}
.fpf-stats {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}
.fpf-stat {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    white-space: nowrap;
}
.fpf-stat i {
    font-size: 12px;
}

/* 旧版兼容样式（保留以防其他地方引用） */
.forum-post-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    background: var(--forum-secondary);
}
.forum-post-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.forum-post-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
}
.forum-post-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--forum-muted);
    flex-wrap: wrap;
}
.forum-post-meta .author {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    text-decoration: none;
    color: #555;
    white-space: nowrap;
}
.forum-post-meta .author img {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    object-fit: cover;
}
.forum-post-meta .author-name {
    color: #555;
}
.forum-post-meta .dot { color: #ddd; font-size: 10px; }
.forum-post-meta .stat {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    white-space: nowrap;
    font-size: 12px;
}
.forum-post-meta .stat-time { white-space: nowrap; }

/* 右侧：评论数 + 最后回复信息（旧版） */
.forum-post-right {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    margin-left: 4px;
}
.forum-post-comment-count {
    min-width: 28px;
    height: 28px;
    padding: 0 8px;
    border-radius: 14px;
    background: #f0f2f5;
    color: #666;
    font-size: 13px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
/* 最后回复区 */
.forum-post-last-reply {
    display: flex;
    align-items: center;
    gap: 5px;
}
.forum-post-last-reply img {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    object-fit: cover;
    border: 1.5px solid #eee;
}
.last-reply-name {
    font-size: 12px;
    color: #555;
    max-width: 50px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.last-reply-time {
    font-size: 11px;
    color: #bbb;
    white-space: nowrap;
}

/* 评论数小徽章（标题旁） */
.forum-post-comment-badge {
    display: none;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 10px;
    background: #f0f2f5;
    color: #666;
    font-size: 11px;
    font-weight: 700;
    align-items: center;
    justify-content: center;
    line-height: 1;
    flex-shrink: 0;
    margin-left: auto;
}

/* ============================================================
   会员中心：帖子编辑按钮
   ============================================================ */
.forum-post-edit-btn {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #f5f6f7;
    color: #888;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-size: 13px;
    transition: all 0.2s;
    z-index: 2;
}
.forum-post-edit-btn:hover {
    background: var(--forum-primary);
    color: #fff;
}

/* ============================================================
   移动端适配
   ============================================================ */
.pc-only { display: inline-flex; }
.mobile-only { display: none !important; }

@media (max-width: 767px) {
    /* 隐藏/显示控制 */
    .pc-only { display: none !important; }
    .mobile-only { display: inline-flex !important; }

    /* 帖子列表项更紧凑 */
    .forum-post-item {
        padding: 12px 14px;
        gap: 8px;
        margin-bottom: 8px;
    }

    /* 头部头像缩小 */
    .fph-avatar {
        width: 32px;
        height: 32px;
    }
    .fph-name {
        font-size: 13px;
    }
    .fph-level {
        height: 12px;
    }
    .fph-tag {
        font-size: 11px;
        padding: 1px 8px;
    }

    /* 标题可以多行 */
    .forum-post-title {
        font-size: 15px;
        -webkit-line-clamp: 2;
        line-height: 1.4;
    }

    /* 标题行更紧凑 */
    .forum-post-title-row {
        gap: 4px;
        margin-bottom: 2px;
    }

    /* 内容摘要 */
    .forum-post-summary {
        font-size: 13px;
        -webkit-line-clamp: 2;
    }

    /* 图片网格 */
    .forum-post-images {
        gap: 6px;
    }
    .forum-post-images.images-1 .fpi-img-wrap:first-child {
        max-width: 90%;  /* 手机端单张图/视频更大 */
    }
    .fpi-img-wrap {
        border-radius: 6px;
    }
    .fpi-play-btn {
        width: 40px; height: 40px;
        font-size: 18px;
    }
    .fpi-play-btn::before {
        border-top: 8px solid transparent;
        border-bottom: 8px solid transparent;
        border-left: 13px solid #fff;
        margin-left: 2px;
    }
    .fpi-img-more {
        font-size: 12px;
        padding: 1px 8px;
        right: 4px;
        bottom: 4px;
    }

    /* 底部更紧凑 */
    .forum-post-footer {
        gap: 6px;
        font-size: 11px;
    }
    .fpf-stats {
        gap: 8px;
    }
    .fpf-stat i {
        font-size: 11px;
    }

    /* 评论数小徽章显示 */
    .forum-post-comment-badge {
        display: inline-flex;
    }

    /* 元信息行更紧凑（旧版兼容） */
    .forum-post-meta {
        gap: 4px;
        font-size: 12px;
    }
    .forum-post-meta .author-name {
        font-size: 12px;
    }
    .forum-post-meta .dot {
        font-size: 9px;
    }
    .forum-post-meta .stat {
        font-size: 11px;
    }
    .forum-post-meta .stat-time {
        font-size: 11px;
    }

    /* 最后回复人信息（手机端简化） */
    .forum-post-meta .last-reply-mobile {
        font-size: 11px;
        color: #999;
        align-items: center;
        gap: 2px;
    }
    .forum-post-meta .last-reply-mobile i {
        font-size: 10px;
    }

    /* 会员中心编辑按钮缩小 */
    .forum-post-edit-btn {
        width: 28px;
        height: 28px;
        font-size: 12px;
        top: 10px;
        right: 10px;
    }

    /* 分页控件简化 */
    .posts-nav { padding: 0 8px; }
    .posts-nav a, .posts-nav span {
        padding: 4px 8px;
        font-size: 13px;
        margin: 0 1px;
    }
    .posts-nav .jumpbox,
    .posts-nav .jumppage,
    .posts-nav input[type="text"] {
        display: none !important;
    }
}

/* ============================================================
   会员中心：统计卡片与快捷按钮美化
   ============================================================ */
.user-center-stats .card {
    border-radius: 12px;
    border: none;
    transition: transform 0.2s, box-shadow 0.2s;
}
.user-center-stats .card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.08) !important;
}
.user-center-stats .col {
    transition: background 0.2s;
    border-radius: 8px;
}
.user-center-stats .col:hover {
    background: #fafbfc;
}
.user-center-stats .h4 {
    color: var(--forum-text);
    font-size: 22px;
}

.user-center-actions .btn {
    border-radius: 12px;
    border-width: 1.5px;
    transition: all 0.2s;
    font-size: 14px;
}
.user-center-actions .btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.user-center-actions .btn i {
    transition: transform 0.2s;
}
.user-center-actions .btn:hover i {
    transform: scale(1.1);
}

/* ============================================================
   三栏布局容器
   ============================================================ */
.forum-layout {
    display: flex;
    gap: 16px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 16px 0;
    align-items: flex-start;
}
.forum-left {
    width: 200px;
    flex-shrink: 0;
    position: sticky;
    top: 70px;
}
.forum-main {
    flex: 1;
    min-width: 0;
}
.forum-right {
    width: 260px;
    flex-shrink: 0;
    position: sticky;
    top: 70px;
}
@media (max-width: 992px) {
    .forum-left { display: none; }
    .forum-right { display: none; }
}

/* ============================================================
   通用卡片
   ============================================================ */
.forum-card {
    background: #fff;
    border-radius: var(--forum-card-radius);
    border: 1px solid var(--forum-border);
    margin-bottom: 12px;
    overflow: hidden;
}
.forum-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid var(--forum-border);
    font-size: 14px;
    font-weight: 600;
    color: var(--forum-text);
}
.forum-card-header .icon { color: var(--forum-primary); margin-right: 6px; }
.forum-card-header .more-link {
    font-size: 12px;
    color: var(--forum-muted);
    font-weight: normal;
    text-decoration: none;
}
.forum-card-header .more-link:hover { color: var(--forum-primary); }

/* ============================================================
   左侧版块导航
   ============================================================ */
.forum-board-nav {
    list-style: none;
    margin: 0;
    padding: 8px 0;
}
.forum-board-nav li a {
    display: flex;
    align-items: center;
    padding: 9px 16px;
    font-size: 13px;
    color: var(--forum-text);
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
    gap: 8px;
}
.forum-board-nav li a:hover {
    background: var(--forum-primary-light);
    color: var(--forum-primary);
}
.forum-board-nav li a.active {
    background: var(--forum-primary-light);
    color: var(--forum-primary);
    font-weight: 600;
}
.forum-board-nav li a .board-icon {
    width: 28px;
    height: 28px;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    flex-shrink: 0;
}
.forum-board-nav li a .board-name {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.forum-board-nav li a .board-count {
    font-size: 11px;
    color: var(--forum-muted);
    background: var(--forum-secondary);
    padding: 1px 6px;
    border-radius: 10px;
}
.forum-board-nav li a:hover .board-count,
.forum-board-nav li a.active .board-count {
    background: var(--forum-primary);
    color: #fff;
}

/* 发帖按钮 */
.forum-post-btn {
    display: block;
    width: calc(100% - 16px);
    margin: 10px 8px;
    padding: 9px 0;
    background: var(--forum-primary);
    color: #fff !important;
    border: none;
    border-radius: 20px;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.2s, transform 0.1s;
    letter-spacing: 1px;
}
.forum-post-btn:hover {
    background: #c82a42;
    transform: translateY(-1px);
}

/* ============================================================
   中间 - 分类排序栏
   ============================================================ */
.forum-filter-bar {
    display: flex;
    align-items: center;
    padding: 10px 16px;
    gap: 8px;
    background: #fff;
    border-radius: var(--forum-card-radius);
    border: 1px solid var(--forum-border);
    margin-bottom: 10px;
    flex-wrap: wrap;
}
.forum-filter-cats {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    flex: 1;
}
.forum-filter-cats a {
    padding: 4px 12px;
    border-radius: 14px;
    font-size: 13px;
    color: var(--forum-muted);
    text-decoration: none;
    border: 1px solid var(--forum-border);
    background: var(--forum-secondary);
    transition: all 0.15s;
    white-space: nowrap;
}
.forum-filter-cats a:hover,
.forum-filter-cats a.active {
    background: var(--forum-primary);
    border-color: var(--forum-primary);
    color: #fff;
}
.forum-filter-sort {
    display: flex;
    gap: 4px;
    align-items: center;
    border-left: 1px solid var(--forum-border);
    padding-left: 12px;
}
.forum-filter-sort a {
    padding: 4px 10px;
    font-size: 12px;
    color: var(--forum-muted);
    text-decoration: none;
    border-radius: 4px;
    white-space: nowrap;
    transition: color 0.15s;
}
.forum-filter-sort a.active,
.forum-filter-sort a:hover {
    color: var(--forum-primary);
    font-weight: 600;
}

/* 无帖子空状态 */
.forum-empty {
    text-align: center;
    padding: 50px 20px;
    color: var(--forum-muted);
}
.forum-empty i { font-size: 48px; display: block; margin-bottom: 12px; opacity: .3; }

/* ============================================================
   发帖区 - 顶部输入框（仿论坛发帖入口）
   ============================================================ */
.forum-publish-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: #fff;
    border-radius: var(--forum-card-radius);
    border: 1px solid var(--forum-border);
    margin-bottom: 10px;
}
.forum-publish-bar .avatar-wrap img,
.forum-publish-bar .avatar-wrap span {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    display: block;
}
.forum-publish-bar .avatar-wrap span {
    background: var(--forum-secondary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--forum-muted);
    font-size: 16px;
}
.forum-publish-input {
    flex: 1;
    border: 1px solid var(--forum-border);
    border-radius: 18px;
    padding: 8px 16px;
    font-size: 14px;
    color: var(--forum-muted);
    cursor: pointer;
    background: var(--forum-secondary);
    transition: border-color 0.15s;
    outline: none;
}
.forum-publish-input:focus,
.forum-publish-input:hover {
    border-color: var(--forum-primary);
    background: #fff;
}
.forum-publish-bar .post-btn-inline {
    padding: 8px 18px;
    background: var(--forum-primary);
    color: #fff;
    border: none;
    border-radius: 18px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
    transition: background 0.15s;
}
.forum-publish-bar .post-btn-inline:hover { background: #c82a42; }

/* ============================================================
   右侧 - 用户信息卡片
   ============================================================ */
.forum-user-card {
    padding: 20px 16px;
    text-align: center;
}
.forum-user-card .avatar {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    object-fit: cover;
    margin: 0 auto 8px;
    display: block;
    border: 3px solid var(--forum-primary-light);
}
.forum-user-card .username {
    font-size: 15px;
    font-weight: 600;
    color: var(--forum-text);
    margin-bottom: 4px;
}
.forum-user-card .bio {
    font-size: 12px;
    color: var(--forum-muted);
    margin-bottom: 12px;
    line-height: 1.5;
}
.forum-user-stats {
    display: flex;
    border-top: 1px solid var(--forum-border);
    padding-top: 12px;
    margin-top: 4px;
}
.forum-user-stats .stat-item {
    flex: 1;
    text-align: center;
    border-right: 1px solid var(--forum-border);
}
.forum-user-stats .stat-item:last-child { border-right: none; }
.forum-user-stats .stat-num {
    font-size: 18px;
    font-weight: 700;
    color: var(--forum-text);
    display: block;
}
.forum-user-stats .stat-label {
    font-size: 11px;
    color: var(--forum-muted);
}
.forum-user-actions {
    display: flex;
    gap: 8px;
    padding: 12px 16px;
    border-top: 1px solid var(--forum-border);
}
.forum-user-actions a {
    flex: 1;
    text-align: center;
    padding: 7px 0;
    border-radius: 16px;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.15s;
}
.forum-user-actions .btn-primary-forum {
    background: var(--forum-primary);
    color: #fff;
}
.forum-user-actions .btn-primary-forum:hover { background: #c82a42; }
.forum-user-actions .btn-outline-forum {
    border: 1px solid var(--forum-border);
    color: #555;
}
.forum-user-actions .btn-outline-forum:hover { border-color: var(--forum-primary); color: var(--forum-primary); }

/* 未登录时的右侧引导 */
.forum-login-card {
    padding: 20px 16px;
    text-align: center;
}
.forum-login-card .welcome-text {
    font-size: 14px;
    color: var(--forum-muted);
    margin-bottom: 14px;
    line-height: 1.6;
}
.forum-login-card .login-btns {
    display: flex;
    gap: 8px;
}
.forum-login-card .login-btns a {
    flex: 1;
    padding: 8px 0;
    border-radius: 16px;
    font-size: 13px;
    font-weight: 500;
    text-align: center;
    text-decoration: none;
    transition: all 0.15s;
}
.forum-login-card .btn-login {
    background: var(--forum-primary);
    color: #fff;
}
.forum-login-card .btn-login:hover { background: #c82a42; }
.forum-login-card .btn-reg {
    border: 1px solid var(--forum-primary);
    color: var(--forum-primary);
}
.forum-login-card .btn-reg:hover { background: var(--forum-primary-light); }

/* ============================================================
   右侧 - 签到日历（网格版）
   ============================================================ */
.forum-sign-calendar-wrap {
    padding: 12px;
}
.sign-cal-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 10px;
    padding-top: 10px;
}
.sign-cal-footer .sign-status.signed {
    font-size: 12px;
    color: var(--forum-primary);
    font-weight: 600;
}
.sign-cal-footer .sign-detail-link {
    font-size: 11px;
    color: #8590a6;
    text-decoration: none;
}
.sign-cal-footer .sign-detail-link:hover { color: var(--forum-primary); }

/* 隐藏 generate_calendar 自带的图例（今日/已签到/节气），论坛侧栏不需要 */
.forum-sign-calendar-wrap .calendar-legend {
    display: none !important;
}

/* generate_calendar() 输出的日历容器 - 论坛侧栏适配 */
.forum-sign-calendar-wrap > div:first-child { margin-bottom: 0; }

.forum-sign-calendar-wrap .calendar-header,
.forum-sign-calendar-wrap .calendar-navigation {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.forum-sign-calendar-wrap .calendar-header {
    padding-bottom: 8px;
}
.forum-sign-calendar-wrap .calendar-title {
    font-size: 13px;
    font-weight: 600;
    color: #333;
    min-width: 90px;
    text-align: center;
}
.forum-sign-calendar-wrap .calendar-nav-btn,
.forum-sign-calendar-wrap .calendar-today-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    font-size: 11px;
    color: #666;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}
.forum-sign-calendar-wrap .calendar-nav-btn:hover,
.forum-sign-calendar-wrap .calendar-today-btn:hover {
    background: #f0f0f0;
    color: #333;
}

/* 星期标题 */
.forum-sign-calendar-wrap .calendar-weekdays {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    margin-bottom: 4px;
}
.forum-sign-calendar-wrap .weekday {
    text-align: center;
    font-size: 10px;
    color: #999;
    padding: 2px 0;
}

/* 日期格子 - 核心：7列紧凑网格 */
.forum-sign-calendar-wrap .calendar-dates {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 3px;
}
.forum-sign-calendar-wrap .calendar-date {
    position: relative;
    aspect-ratio: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 5px;
    background: #f5f5f5;
    border: 1.5px solid transparent;
    cursor: default;
    transition: all 0.15s;
    overflow: hidden;
    min-height: 28px;
}
.forum-sign-calendar-wrap .calendar-date .solar-day {
    font-size: 11px;
    line-height: 1.2;
    color: #999;
    z-index: 1;
}
.forum-sign-calendar-wrap .calendar-date .lunar-day {
    font-size: 9px;
    line-height: 1;
    color: #bbb;
    z-index: 1;
}

/* 已签到 - 品红色填充（参考图1风格） */
.forum-sign-calendar-wrap .calendar-date.signed {
    background: linear-gradient(135deg, #e8344f 0%, #ff6b81 100%);
    border-color: #e8344f;
}
.forum-sign-calendar-wrap .calendar-date.signed .solar-day,
.forum-sign-calendar-wrap .calendar-date.signed .lunar-day {
    color: #fff !important;
}
.forum-sign-calendar-wrap .calendar-date.signed .solar-day {
    font-weight: 600;
}

/* 今天 - 红色边框高亮（参考图1） */
.forum-sign-calendar-wrap .calendar-date.today:not(.signed) {
    border-color: #e8344f;
    background: #fff5f6;
}
.forum-sign-calendar-wrap .calendar-date.today:not(.signed) .solar-day {
    color: #e8344f;
    font-weight: 600;
}

/* 非当月日期 - 更淡 */
.forum-sign-calendar-wrap .calendar-date.other-month {
    opacity: 0.35;
}
.forum-sign-calendar-wrap .calendar-date.other-month .calendar-date:hover {
    opacity: 0.5;
}
.forum-checkin-card {
    padding: 12px 16px;
}
.forum-checkin-card .title {
    font-size: 13px;
    font-weight: 600;
    color: var(--forum-text);
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 4px;
}
.forum-checkin-calendar {
    width: 100%;
    font-size: 12px;
}
.forum-checkin-calendar .cal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    color: var(--forum-muted);
    font-size: 12px;
}
.forum-checkin-calendar .cal-header span { font-weight: 600; color: var(--forum-text); }
.cal-week-labels {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    margin-bottom: 4px;
}
.cal-week-labels span {
    text-align: center;
    font-size: 11px;
    color: var(--forum-muted);
    padding: 2px 0;
}
.cal-days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
}
.cal-days .day {
    text-align: center;
    padding: 4px 0;
    border-radius: 4px;
    font-size: 12px;
    color: var(--forum-text);
    cursor: default;
}
.cal-days .day.checked {
    background: var(--forum-primary);
    color: #fff;
    font-weight: 600;
    border-radius: 50%;
}
.cal-days .day.today {
    border: 1px solid var(--forum-primary);
    color: var(--forum-primary);
    font-weight: 600;
    border-radius: 50%;
}
.cal-days .day.other-month { color: #ccc; }
.forum-checkin-btn {
    display: block;
    width: 100%;
    margin-top: 10px;
    padding: 7px 0;
    background: var(--forum-primary);
    color: #fff;
    border: none;
    border-radius: 16px;
    font-size: 13px;
    cursor: pointer;
    transition: background 0.15s;
    text-align: center;
}
.forum-checkin-btn:hover { background: #c82a42; }
.forum-checkin-btn.checked-in {
    background: #f1f2f6;
    color: var(--forum-muted);
    cursor: default;
}

/* ============================================================
   右侧 - 本周最热帖子列表
   ============================================================ */
.forum-hot-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.forum-hot-list li {
    display: flex;
    align-items: flex-start;
    padding: 10px 16px;
    border-bottom: 1px solid var(--forum-border);
    gap: 10px;
}
.forum-hot-list li:last-child { border-bottom: none; }
.forum-hot-list .rank-num {
    width: 20px;
    height: 20px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    flex-shrink: 0;
    margin-top: 1px;
    background: var(--forum-secondary);
    color: var(--forum-muted);
}
.forum-hot-list li:nth-child(1) .rank-num { background: #e8344f; color: #fff; }
.forum-hot-list li:nth-child(2) .rank-num { background: #ff7043; color: #fff; }
.forum-hot-list li:nth-child(3) .rank-num { background: #ffa726; color: #fff; }
.forum-hot-list .hot-title {
    flex: 1;
    font-size: 13px;
    color: var(--forum-text);
    text-decoration: none;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.forum-hot-list .hot-title:hover { color: var(--forum-primary); }
.forum-hot-list .hot-views {
    font-size: 11px;
    color: var(--forum-muted);
    white-space: nowrap;
    margin-top: 2px;
}

/* ============================================================
   分类列表页
   ============================================================ */
/* 分类头部 */
.forum-category-header {
    background: var(--forum-card-bg);
    border-radius: var(--forum-card-radius);
    border: 1px solid var(--forum-border);
    padding: 20px 24px;
    margin-bottom: 16px;
}
.forum-category-header .fch-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.forum-category-header .fch-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--forum-text);
    margin: 0;
    flex: 1;
}
.forum-category-header .fch-publish-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 8px 18px;
    background: var(--forum-primary);
    color: #fff;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    white-space: nowrap;
    transition: all .2s;
}
.forum-category-header .fch-publish-btn:hover {
    opacity: .85;
    color: #fff;
}
.forum-category-header .fch-desc {
    font-size: 13px;
    color: var(--forum-muted);
    margin-top: 10px;
    line-height: 1.6;
}
/* 暗黑模式 */
.io-black-mode .forum-category-header {
    background: rgba(255,255,255,.04);
    border-color: rgba(255,255,255,.08);
}
.io-black-mode .forum-category-header .fch-title {
    color: #e0e0e0;
}

/* ============================================================
   帖子详情页
   ============================================================ */
#forum-post-detail .content-card {
    background: #fff;
    border-radius: var(--forum-card-radius);
    border: 1px solid var(--forum-border);
    padding: 20px;
    margin-bottom: 16px;
}
.forum-post-author-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--forum-border);
    margin-bottom: 14px;
}
.forum-post-author-bar .author-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}
.forum-post-author-bar .author-info { flex: 1; }
.forum-post-author-bar .author-name {
    font-weight: 600;
    font-size: 15px;
    color: var(--forum-text);
    text-decoration: none;
    display: block;
}
.forum-post-author-bar .author-name:hover { color: var(--forum-primary); }
.forum-post-author-bar .post-time {
    font-size: 12px;
    color: var(--forum-muted);
    margin-top: 2px;
}

/* 互动按钮组 */
.forum-action-bar {
    display: flex;
    justify-content: space-around;
    padding: 12px 0;
    border-top: 1px solid var(--forum-border);
    border-bottom: 1px solid var(--forum-border);
    margin: 14px 0;
}
.forum-action-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    border: none;
    background: none;
    cursor: pointer;
    color: var(--forum-muted);
    padding: 6px 14px;
    border-radius: 8px;
    transition: background 0.15s, color 0.15s;
    text-decoration: none;
}
.forum-action-btn:hover { background: var(--forum-secondary); }
.forum-action-btn i { font-size: 22px; }
.forum-action-btn span { font-size: 12px; }
.forum-action-btn.liked { color: var(--forum-primary); }
.forum-action-btn.collected { color: #ffa726; }

/* 评论区 */
.forum-comment-input-wrap {
    background: var(--forum-secondary);
    border-radius: 8px;
    padding: 12px;
    margin-bottom: 14px;
}
.forum-comment-input-wrap textarea {
    border: 1px solid var(--forum-border);
    border-radius: 6px;
    resize: none;
    width: 100%;
    padding: 8px 12px;
    font-size: 13px;
    outline: none;
    transition: border-color 0.15s;
}
.forum-comment-input-wrap textarea:focus { border-color: var(--forum-primary); }
.forum-comment-input-wrap .submit-row {
    display: flex;
    justify-content: flex-end;
    margin-top: 8px;
}
.forum-comment-submit {
    padding: 6px 18px;
    background: var(--forum-primary);
    color: #fff;
    border: none;
    border-radius: 14px;
    font-size: 13px;
    cursor: pointer;
    transition: background 0.15s;
}
.forum-comment-submit:hover { background: #c82a42; }

.forum-comment-item {
    display: flex;
    gap: 10px;
    padding: 12px 0;
    border-bottom: 1px solid var(--forum-border);
}
.forum-comment-item:last-child { border-bottom: none; }
.forum-comment-item .c-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}
.forum-comment-item .c-body { flex: 1; min-width: 0; }
.forum-comment-item .c-author {
    font-size: 13px;
    font-weight: 600;
    color: var(--forum-text);
    text-decoration: none;
}
.forum-comment-item .c-author:hover { color: var(--forum-primary); }
.forum-comment-item .c-time {
    font-size: 11px;
    color: var(--forum-muted);
    margin-left: 8px;
}
.forum-comment-item .c-content {
    font-size: 13px;
    color: var(--forum-text);
    margin: 4px 0 6px;
    line-height: 1.6;
}
.forum-comment-item .c-actions {
    display: flex;
    gap: 12px;
}
.forum-comment-item .c-actions a,
.forum-comment-item .c-actions button {
    font-size: 12px;
    color: var(--forum-muted);
    border: none;
    background: none;
    cursor: pointer;
    padding: 0;
    text-decoration: none;
    transition: color 0.15s;
}
.forum-comment-item .c-actions a:hover,
.forum-comment-item .c-actions button:hover { color: var(--forum-primary); }
.forum-comment-reply-box {
    background: var(--forum-secondary);
    border-radius: 6px;
    padding: 8px 12px;
    margin: 6px 0;
    font-size: 12px;
    line-height: 1.7;
}

/* ============================================================
   发帖页（forum_publish.html）
   ============================================================ */

/* 强制两栏布局：确保 ioui-content 在发帖页正确 flex 排列 */
#forum-publish-page {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    gap: 20px !important;
}
#forum-publish-page .ioui-main {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    max-width: calc(100% - 320px) !important;
}
#forum-publish-page .sidebar {
    flex: 0 0 300px !important;
    max-width: 300px !important;
    min-width: 0 !important;
}


/* 强制两栏布局：用户主页 */
#forum-user-page {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    gap: 20px !important;
}
#forum-user-page .ioui-main {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    max-width: calc(100% - 320px) !important;
}
#forum-user-page .sidebar {
    flex: 0 0 300px !important;
    max-width: 300px !important;
    min-width: 0 !important;
}

/* 表单字段 */
.publish-field {
    padding: 14px 20px;
    border-bottom: 1px solid var(--forum-border);
}
.publish-field:last-of-type {
    border-bottom: none;
}

.publish-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--forum-text);
    margin-bottom: 8px;
    display: block;
}

.publish-input {
    width: 100%;
    border: 1px solid var(--forum-border);
    border-radius: 6px;
    padding: 10px 14px;
    font-size: 14px;
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
    background: var(--forum-secondary);
    color: var(--forum-text);
    box-sizing: border-box;
}
.publish-input:focus {
    border-color: var(--forum-primary);
    box-shadow: 0 0 0 3px rgba(232,52,79,0.08);
    background: #fff;
}
.publish-input::placeholder {
    color: var(--forum-muted);
}

.publish-textarea {
    min-height: 180px;
    resize: vertical;
    line-height: 1.6;
}

/* 内容类型切换按钮组 */
.publish-type-group {
    display: flex;
    gap: 10px;
}

.publish-type-btn {
    display: inline-flex;
    align-items: center;
    padding: 7px 18px;
    border: 1px solid var(--forum-border);
    border-radius: 20px;
    font-size: 13px;
    cursor: pointer;
    background: var(--forum-secondary);
    color: var(--forum-text);
    transition: all 0.2s;
    user-select: none;
}
.publish-type-btn.active,
.publish-type-btn:hover {
    background: var(--forum-primary-light);
    border-color: var(--forum-primary);
    color: var(--forum-primary);
}

/* 上传区域 */
.publish-upload-area {
    border: 2px dashed var(--forum-border);
    border-radius: 10px;
    padding: 28px 20px;
    text-align: center;
    cursor: pointer;
    transition: all 0.2s;
    background: var(--forum-secondary);
}
.publish-upload-area:hover {
    border-color: var(--forum-primary);
    background: var(--forum-primary-light);
}

.publish-upload-icon {
    font-size: 36px;
    color: var(--forum-muted);
    margin-bottom: 6px;
    display: block;
    transition: color 0.2s;
}
.publish-upload-area:hover .publish-upload-icon {
    color: var(--forum-primary);
}

.publish-upload-tip {
    font-size: 13px;
    color: var(--forum-muted);
    margin: 0;
}

/* 话题输入 */
.publish-topic-wrap {
    position: relative;
}
.publish-topic-input {
    border: 1px solid var(--forum-border);
    border-radius: 6px;
    padding: 8px 12px;
    font-size: 13px;
}
.publish-topic-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid var(--forum-border);
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    z-index: 50;
    max-height: 200px;
    overflow-y: auto;
    margin-top: 4px;
}
.publish-topic-dropdown .topic-item {
    padding: 8px 12px;
    cursor: pointer;
    font-size: 13px;
    transition: background 0.15s;
}
.publish-topic-dropdown .topic-item:hover {
    background: var(--forum-secondary);
}

/* 提交栏 */
.publish-submit-bar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    padding: 16px 20px;
    border-top: 1px solid var(--forum-border);
    background: var(--forum-secondary);
    border-radius: 0 0 var(--forum-card-radius) var(--forum-card-radius);
}

.publish-cancel-btn {
    font-size: 13px;
    color: var(--forum-muted);
    text-decoration: none;
    padding: 8px 16px;
    border-radius: 6px;
    transition: color 0.15s, background 0.15s;
}
.publish-cancel-btn:hover {
    color: var(--forum-text);
    background: rgba(0,0,0,0.04);
}

.publish-submit-btn {
    display: inline-flex;
    align-items: center;
    padding: 9px 32px;
    background: var(--forum-primary);
    color: #fff;
    border: none;
    border-radius: 20px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s, transform 0.1s;
}
.publish-submit-btn:hover {
    background: #c82a42;
    transform: translateY(-1px);
}
.publish-submit-btn:active {
    transform: translateY(0);
}

/* 暗黑模式 */
.io-black-mode .publish-input {
    background: rgba(255,255,255,0.06);
    border-color: rgba(255,255,255,0.12);
    color: rgba(255,255,255,0.88);
}
.io-black-mode .publish-input:focus {
    border-color: var(--forum-primary);
    background: rgba(255,255,255,0.08);
    box-shadow: 0 0 0 3px rgba(232,52,79,0.15);
}
.io-black-mode .publish-type-btn {
    background: rgba(255,255,255,0.06);
    border-color: rgba(255,255,255,0.12);
    color: rgba(255,255,255,0.75);
}
.io-black-mode .publish-type-btn.active,
.io-black-mode .publish-type-btn:hover {
    background: var(--forum-primary-light);
    border-color: var(--forum-primary);
    color: var(--forum-primary);
}
.io-black-mode .publish-upload-area {
    background: rgba(255,255,255,0.04);
    border-color: rgba(255,255,255,0.12);
}
.io-black-mode .publish-upload-area:hover {
    border-color: var(--forum-primary);
    background: var(--forum-primary-light);
}
.io-black-mode .publish-upload-icon { color: rgba(255,255,255,0.35); }
.io-black-mode .publish-upload-area:hover .publish-upload-icon { color: var(--forum-primary); }
.io-black-mode .publish-upload-tip { color: rgba(255,255,255,0.4); }
.io-black-mode .publish-topic-input {
    background: rgba(255,255,255,0.06);
    border-color: rgba(255,255,255,0.12);
    color: rgba(255,255,255,0.88);
}
.io-black-mode .publish-topic-dropdown {
    background: #1e1e2e;
    border-color: rgba(255,255,255,0.12);
}
.io-black-mode .publish-topic-dropdown .topic-item:hover {
    background: rgba(255,255,255,0.06);
    color: rgba(255,255,255,0.95);
}
.io-black-mode .publish-submit-bar {
    background: rgba(255,255,255,0.03);
    border-top-color: rgba(255,255,255,0.08);
}
.io-black-mode .publish-cancel-btn { color: rgba(255,255,255,0.45); }
.io-black-mode .publish-cancel-btn:hover {
    color: rgba(255,255,255,0.85);
    background: rgba(255,255,255,0.06);
}
.io-black-mode .publish-field {
    border-bottom-color: rgba(255,255,255,0.08);
}

/* ============================================================
   用户主页（forum_user.html）个人资料卡
   ============================================================ */

.user-profile-header {
    display: flex;
    align-items: flex-start;
    padding: 24px 20px 16px;
}

/* 头像 */
.user-profile-avatar {
    flex-shrink: 0;
    margin-right: 18px;
}
.user-profile-avatar img {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--forum-border);
    transition: border-color 0.2s;
}
.user-profile-header:hover .user-profile-avatar img {
    border-color: var(--forum-primary);
}

/* 信息区 */
.user-profile-info {
    flex: 1;
    min-width: 0;
}

.user-profile-name-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}

.user-profile-name {
    font-size: 18px;
    font-weight: 700;
    color: var(--forum-text);
    line-height: 1.3;
}

.user-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    font-size: 11px;
    font-weight: 600;
    border-radius: 10px;
    line-height: 1.4;
}
.user-badge.verified {
    background: #fff8e1;
    color: #f9a825;
    border: 1px solid #ffe082;
}

.user-profile-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
    flex-wrap: wrap;
}
.user-id {
    font-size: 12px;
    color: var(--forum-muted);
}
.user-group {
    font-size: 12px;
    color: var(--forum-muted);
}

.user-bio {
    font-size: 13px;
    color: var(--forum-text);
    opacity: 0.75;
    margin: 0;
    line-height: 1.5;
    max-width: 420px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 关注按钮区 */
.user-profile-action {
    flex-shrink: 0;
    margin-left: 12px;
    padding-top: 4px;
}

/* 统计栏 */
.user-profile-stats {
    display: flex;
    text-align: center;
    border-top: 1px solid var(--forum-border);
    margin-top: 14px;
    padding-top: 14px;
}

.ups-stat {
    flex: 1;
    cursor: default;
    transition: background 0.15s;
    padding: 6px 0;
    border-radius: 6px;
}
.ups-stat:hover {
    background: var(--forum-secondary);
}
.ups-stat[onclick] {
    cursor: pointer;
}

.ups-stat-num {
    font-size: 18px;
    font-weight: 700;
    color: var(--forum-text);
    line-height: 1.2;
}
.ups-stat-label {
    font-size: 12px;
    color: var(--forum-muted);
    margin-top: 2px;
}

/* Tab 导航 */
.forum-card-tabs {
    display: flex;
    gap: 4px;
    padding: 12px 16px;
}
.fct-tab {
    display: inline-flex;
    align-items: center;
    padding: 7px 20px;
    font-size: 13px;
    font-weight: 500;
    color: var(--forum-muted);
    text-decoration: none;
    border-radius: 18px;
    transition: all 0.2s;
}
.fct-tab:hover {
    color: var(--forum-primary);
    background: var(--forum-primary-light);
}
.fct-tab.active {
    background: var(--forum-primary);
    color: #fff;
    font-weight: 600;
}

/* 暗黑模式 - 用户主页 */
.io-black-mode .user-profile-avatar img {
    border-color: rgba(255,255,255,0.1);
}
.io-black-mode .user-profile-header:hover .user-profile-avatar img {
    border-color: var(--forum-primary);
}
.io-black-mode .user-profile-name { color: rgba(255,255,255,0.92); }
.io-black-mode .user-badge.verified {
    background: rgba(232,179,0,0.15);
    color: #ffc107;
    border-color: rgba(232,179,0,0.25);
}
.io-black-mode .user-id,
.io-black-mode .user-group { color: rgba(255,255,255,0.35); }
.io-black-mode .user-bio { color: rgba(255,255,255,0.55); }
.io-black-mode .ups-stat:hover { background: rgba(255,255,255,0.04); }
.io-black-mode .ups-stat-num { color: rgba(255,255,255,0.88); }
.io-black-mode .ups-stat-label { color: rgba(255,255,255,0.35); }
.io-black-mode .user-profile-stats {
    border-top-color: rgba(255,255,255,0.08);
}
.io-black-mode .fct-tab { color: rgba(255,255,255,0.55); }
.io-black-mode .fct-tab:hover {
    color: var(--forum-primary);
    background: var(--forum-primary-light);
}
.io-black-mode .fct-tab.active {
    background: var(--forum-primary);
    color: #fff;
}

/* ============================================================
   关注/粉丝列表（forum_my_following / forum_my_followers）
   ============================================================ */

.follow-list {
    padding: 0;
}

.follow-item {
    display: flex;
    align-items: center;
    padding: 14px 20px;
    border-bottom: 1px solid var(--forum-border);
    transition: background 0.15s;
}
.follow-item:last-child {
    border-bottom: none;
}
.follow-item:hover {
    background: var(--forum-secondary);
}

.follow-avatar {
    display: block;
    flex-shrink: 0;
    margin-right: 14px;
}
.follow-avatar img {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--forum-border);
    transition: border-color 0.2s;
}
.follow-item:hover .follow-avatar img {
    border-color: var(--forum-primary);
}

.follow-info {
    flex: 1;
    min-width: 0;
}

.follow-name {
    font-size: 14px;
    font-weight: 600;
    color: var(--forum-text);
    text-decoration: none;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 200px;
    transition: color 0.15s;
}
.follow-name:hover {
    color: var(--forum-primary);
}

.follow-id {
    font-size: 12px;
    color: var(--forum-muted);
    margin-top: 2px;
}

.btn-follow {
    display: inline-flex;
    align-items: center;
    padding: 6px 16px;
    font-size: 13px;
    font-weight: 500;
    border-radius: 18px;
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
    flex-shrink: 0;
    border: none;
    outline: none;
}

.btn-follow-action {
    /* +关注 按钮（默认态） */
    background: var(--forum-secondary);
    color: var(--forum-text);
    border: 1px solid var(--forum-border);
}
.btn-follow-action:hover {
    background: var(--forum-primary-light);
    border-color: var(--forum-primary);
    color: var(--forum-primary);
}

.btn-unfollow {
    /* 已关注 按钮 */
    background: #f0f0f0;
    color: #666;
}
.btn-unfollow:hover {
    background: #ffebee;
    color: #e8344f;
}

/* 空状态 */
.forum-empty-state {
    padding: 60px 30px;
    text-align: center;
}

.empty-icon-wrapper {
    width: 80px;
    height: 80px;
    margin: 0 auto 16px;
    background: var(--forum-secondary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.empty-icon {
    font-size: 32px;
    color: var(--forum-muted);
    opacity: 0.5;
}

.empty-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--forum-text);
    margin: 0 0 6px;
}

.empty-desc {
    font-size: 13px;
    color: var(--forum-muted);
    margin: 0 0 20px;
}

.empty-action-btn {
    display: inline-flex;
    align-items: center;
    padding: 8px 22px;
    background: var(--forum-primary);
    color: #fff;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.2s;
}
.empty-action-btn:hover {
    background: #c82a42;
    color: #fff;
    transform: translateY(-1px);
}

/* 暗黑模式 - 关注/粉丝 */
.io-black-mode .follow-item {
    border-bottom-color: rgba(255,255,255,0.06);
}
.io-black-mode .follow-item:hover {
    background: rgba(255,255,255,0.04);
}
.io-black-mode .follow-avatar img {
    border-color: rgba(255,255,255,0.1);
}
.io-black-mode .follow-item:hover .follow-avatar img {
    border-color: var(--forum-primary);
}
.io-black-mode .follow-name { color: rgba(255,255,255,0.88); }
.io-black-mode .follow-name:hover { color: var(--forum-primary); }
.io-black-mode .follow-id { color: rgba(255,255,255,0.35); }
.io-black-mode .btn-follow-action {
    background: rgba(255,255,255,0.06);
    border-color: rgba(255,255,255,0.12);
    color: rgba(255,255,255,0.75);
}
.io-black-mode .btn-follow-action:hover {
    background: var(--forum-primary-light);
    border-color: var(--forum-primary);
    color: var(--forum-primary);
}
.io-black-mode .btn-unfollow {
    background: rgba(255,255,255,0.08);
    color: rgba(255,255,255,0.55);
}
.io-black-mode .btn-unfollow:hover {
    background: rgba(232,52,79,0.12);
    color: #ff6b6b;
}
.io-black-mode .empty-icon-wrapper {
    background: rgba(255,255,255,0.05);
}
.io-black-mode .empty-title { color: rgba(255,255,255,0.8); }
.io-black-mode .empty-desc { color: rgba(255,255,255,0.35); }

/* ============================================================
   通用工具
   ============================================================ */
.forum-badge-primary {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 10px;
    background: var(--forum-primary-light);
    color: var(--forum-primary);
    font-size: 11px;
    font-weight: 600;
}
.forum-divider {
    height: 1px;
    background: var(--forum-border);
    margin: 8px 0;
}
.forum-pagination {
    display: flex;
    justify-content: center;
    padding: 16px 0;
}
/* 点赞/收藏弹跳动画 */
@keyframes forumPopIn {
    0% { transform: scale(1); }
    50% { transform: scale(1.35); }
    100% { transform: scale(1); }
}
.pop-anim { animation: forumPopIn 0.3s ease; }

/* ============================================================
   Toast 提示
   ============================================================ */
.forum-toast {
    position: fixed;
    top: 60px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0,0,0,0.75);
    color: #fff;
    padding: 9px 22px;
    border-radius: 18px;
    font-size: 13px;
    z-index: 9999;
    pointer-events: none;
    animation: toastFadeIn 0.25s ease;
}
@keyframes toastFadeIn {
    from { opacity: 0; transform: translateX(-50%) translateY(-8px); }
    to { opacity: 1; transform: translateX(-50%) translateY(0); }
}

/* ============================================================
   新版评论样式（仿截图风格）
   ============================================================ */

/* 评论输入栏 */
.comment-input-bar { background:#f5f6f7; border-radius:20px; padding:10px 14px; transition:box-shadow .2s; }
.comment-input-bar:focus-within { box-shadow:0 0 0 2px rgba(232,52,79,.25); background:#fff; }

.comment-input-inner {
    display:flex; align-items:center;
    position:relative; padding-right:115px;
}
.comment-input-inner textarea {
    width:100%; border:none; background:transparent; resize:none;
    font-size:14px; line-height:1.6; outline:none;
    min-height:36px; max-height:120px; overflow-y:auto; color:#333;
    flex:1;
}
.comment-input-inner textarea::placeholder { color:#999; }

.cib-actions {
    display:flex; align-items:center; justify-content:space-between;
    margin-top:6px; padding-left:4px;
}

/* 工具栏统一样式（图片/@/表情 三个按钮完全一致的尺寸） */
.cib-tools {
    position:absolute; right:0; top:0; bottom:0;
    display:flex !important; align-items:center; gap:3px;
    z-index:2;
}

/* 统一所有工具按钮的基础样式 */
.cib-tools button,
.cib-tools label,
.cib-tools .cib-btn,
.cib-tools .cib-btn-emoji {
    width:32px !important; height:32px !important;
    border-radius:8px; border:none; background:transparent;
    display:inline-flex !important; align-items:center !important;
    justify-content:center !important;
    cursor:pointer; color:#888; font-size:15px !important;
    transition:background,color .15s; padding:0 !important;
    flex-shrink:0; box-sizing:border-box;
    line-height:1; overflow:hidden; vertical-align:middle;
    margin:0 !important;
}

/* 表情 span 内文字 */
.cib-tools .cib-btn-emoji span,
.cib-btn-emoji span {
    font-size:16px !important; line-height:1; display:block;
}

.cib-tools button:hover,
.cib-tools label:hover,
.cib-tools .cib-btn:hover,
.cib-tools .cib-btn-emoji:hover {
    background:#e8e8e8; color:#e8344f !important;
}
@media (max-width: 576px) {
    .comment-input-bar {
        padding:8px 10px; border-radius:14px;
    }
    .comment-input-inner {
        padding-right: 105px !important;
        min-height: 36px;
    }
    .cib-tools {
        gap: 2px;
        right: 0;
    }
    .cib-tools button,
    .cib-tools label,
    .cib-tools .cib-btn,
    .cib-tools .cib-btn-emoji,
    .cib-tool-label {
        width: 30px !important;
        height: 30px !important;
        font-size: 14px !important;
        border-radius:6px !important;
    }
    .cib-tools .cib-btn-emoji span,
    .cib-btn-emoji span { font-size:15px !important; }
    .comment-input-inner textarea { font-size:13px; min-height:32px; }
}

/* 表情面板（浮动层）- 防止手机端溢出 */
.emoji-panel-float {
    position:absolute !important;
    background:#fff !important;
    border:1px solid #e0e0e0 !important;
    border-radius:12px !important;
    padding:10px !important;
    z-index:9999 !important;
    box-shadow:0 4px 20px rgba(0,0,0,.18) !important;
    display:flex !important;
    flex-wrap:wrap !important;
    /* 用 min-width 确保不被压成单列 */
    width:228px !important;
    min-width:200px !important;
    max-width:240px !important;
    gap:4px !important;
    box-sizing:border-box !important;
}
.emoji-panel-float button {
    width:36px; height:36px;
    font-size:22px; border:none;
    background:transparent; border-radius:8px;
    cursor:pointer; flex-shrink:0;
}
.emoji-panel-float button:hover { background:#f0f0f0; }

@media (max-width: 576px) {
    .emoji-panel-float {
        width:198px !important;
        min-width:180px !important;
        padding:8px !important;
        gap:3px !important;
    }
    .emoji-panel-float button {
        width:32px !important; height:32px !important;
        font-size:18px !important; border-radius:6px !important;
    }
}

/* 评论列表项 */
.cmt-item {
    display:flex; padding:16px 0; border-bottom:1px solid #f0f0f0;
}
.cmt-item:last-child { border-bottom:none; }

.cmt-left { margin-right:12px; flex-shrink:0; }
.cmt-avatar {
    width:40px; height:40px; border-radius:50%; object-fit:cover;
}

.cmt-right { flex:1; min-width:0; }

.cmt-head { margin-bottom:3px; }
.cmt-name {
    font-weight:600; font-size:14px; color:#222; text-decoration:none;
}
.cmt-name:hover { color:#e8344f; }

.cmt-body {
    font-size:14px; line-height:1.65; color:#333; word-break:break-all; margin-top:4px;
}
.cmt-at { color:#e8344f; font-weight:500; }

.cmt-meta {
    margin-top:6px; font-size:12px; color:#999; display:flex; align-items:center; gap:8px;
}

/* 工具栏：回复 | 分享 | ❤️N | 👎 */
.cmt-toolbar {
    margin-top:8px; display:flex; align-items:center; gap:18px;
}
.cmt-toolbar a {
    text-decoration:none; font-size:13px; color:#999; display:inline-flex; align-items:center; gap:4px;
    cursor:pointer; transition:color .15s; padding:2px 0;
}
.cmt-toolbar a:hover { color:#666; }
.cmt-toolbar a:hover i { color:#e8344f; }
.cmt-like-icon.liked, .cmt-toolbar a:hover .cmt-like-icon { color:#e8344f !important; }
.cmt-dislike:hover i { color:#999; }

/* 编辑/删除按钮 */
.cmt-action-btn { color:#999 !important; }
.cmt-action-btn:hover { color:#e8344f !important; }
.cmt-delete-btn:hover { color:#ff4757 !important; }
.cmt-sub-actions .cmt-action-btn { font-size:12px; }

/* 内联编辑区域 */
.cmt-edit-area { animation:cmtSlideDown .2s ease; }
.cmt-edit-editor { transition:border-color .15s; }
.cmt-edit-editor:focus { border-color:#e8344f !important; }
.cmt-edit-editor img { max-width:100%; max-height:200px; border-radius:8px; margin:4px 0; }
.io-black-mode .cmt-edit-editor { background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.1); color:#ccc; }

/* 回复输入框（内嵌） */
.cmt-reply-box { margin-top:12px; animation:cmtSlideDown .2s ease; }
@keyframes cmtSlideDown { from{opacity:0;transform:translateY(-6px);} to{opacity:1;transform:translateY(0);} }

/* 子回复 */
.cmt-sub-list {
    background:#f9fafb; border-radius:10px; padding:10px 14px;
    margin-top:10px;
}
.cmt-sub-item {
    font-size:13px; line-height:1.7; color:#555; word-break:break-all;
    overflow: hidden; display: block;
}
.cmt-sub-name { color:#333; text-decoration:none; font-weight:600; font-size:13px; }
.cmt-sub-name:hover { color:#e8344f; }
.cmt-sub-text { color:#444; }
.cmt-sub-reply {
    float:right; color:#999; font-size:12px; text-decoration:none; cursor:pointer;
    margin-left:8px; white-space:nowrap;
}
.cmt-sub-reply:hover { color:#e8344f; }
/* 子回复新布局 */
.cmt-sub-item { padding:8px 0; border-bottom:1px solid #eee; overflow:hidden; display:block; }
.cmt-sub-item:last-child { border-bottom:none; }
.cmt-sub-head { display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-bottom:2px; }
.cmt-sub-head .cmt-sub-name { font-size:13px; }
.cmt-sub-time { color:#999; font-size:11px; }
.cmt-sub-body { font-size:13px; line-height:1.7; color:#444; word-break:break-all; }
.cmt-sub-body p { margin:2px 0; }
.cmt-sub-body img { max-width:100%; border-radius:4px; margin:2px 0; }
.cmt-sub-at { color:#e8344f; margin-right:2px; }
.cmt-sub-actions { margin-top:2px; font-size:12px; display:flex; align-items:center; gap:10px; }
.cmt-sub-actions a { color:#999; text-decoration:none; cursor:pointer; font-size:12px; }
.cmt-sub-actions a:hover { color:#e8344f; }
.cmt-sub-actions .cmt-like-icon { margin-right:2px; }
.cmt-like-num { font-size:12px; }
/* 暗黑模式 - 子回复 */
.io-black-mode .cmt-sub-list { background:rgba(255,255,255,.04); }
.io-black-mode .cmt-sub-item { border-color:rgba(255,255,255,.08); }
.io-black-mode .cmt-sub-body { color:#ccc; }
.io-black-mode .cmt-sub-text { color: var(--muted-color); }
.io-black-mode .cmt-sub-time { color:#666; }
.io-black-mode .cmt-sub-actions a { color:#666; }

.cmt-more {
    display:block; font-size:12px; color:#e8344f; text-decoration:none;
    margin-top:6px; padding-top:6px; border-top:1px solid #eee;
}
.cmt-more:hover { text-decoration:underline; }

/* ============================================================
   暗黑模式 (.io-black-mode) — 与 main.min.css 暗黑变量一致
   参考变量：--main-bg-color:#2D2E2F, --main-radius-bg:#43464a,
            --body-bg-color:#1b1d1f, --muted-color:#73757a
   ============================================================ */
.io-black-mode {
    /* 覆盖论坛CSS变量 */
    --forum-primary: #ff6b6b;
    --forum-primary-light: rgba(255,71,107,.15);
    --forum-secondary: #2a2b2d;
    --forum-border: #3a3c40;
    --forum-text: #d4d4d8;
    --forum-muted: #73757a;
    --forum-link: #ff6b6b;
}
.io-black-mode .forum-post-list,
.io-black-mode .forum-card,
.io-black-mode .forum-publish-bar,
.io-black-mode .forum-publish-input {
    background: var(--main-radius-bg);
    border-color: var(--forum-border);
}
.io-black-mode .forum-post-item {
    background: var(--main-radius-bg);
    border-color: var(--forum-border);
}
.io-black-mode .forum-post-item:hover { background: rgba(255,255,255,.04); }
.io-black-mode .forum-post-title { color: var(--forum-text); }
.io-black-mode .forum-post-title:hover { color: var(--forum-primary); }
.io-black-mode .forum-post-meta { color: var(--muted-color); }
.io-black-mode .forum-post-meta .author-name { color: #a6a8ab; }
.io-black-mode .forum-post-comment-count { background: rgba(255,255,255,.08); color: var(--muted-color); }
.io-black-mode .forum-post-comment-badge { background: rgba(255,255,255,.08); color: var(--muted-color); }
.io-black-mode .forum-post-meta .last-reply-mobile { color: var(--muted-color); }
/* 卡片头部 */
.io-black-mode .forum-card-header {
    color: var(--forum-text);
    border-bottom-color: var(--forum-border);
}
/* 筛选栏 */
.io-black-mode .forum-filter-bar,
.io-black-mode .forum-filter-cats a,
.io-black-mode .forum-publish-input {
    background: var(--main-radius-bg);
    border-color: var(--forum-border);
}
.io-black-mode .forum-filter-cats a:hover,
.io-black-mode .forum-filter-cats a.active {
    background: var(--forum-primary);
    border-color: var(--forum-primary);
}
/* 发帖按钮 */
.io-black-mode .forum-post-btn { background: var(--forum-primary); }
.io-black-mode .forum-post-btn:hover { background: #c82a42; }
/* 用户卡片 */
.io-black-mode .forum-user-card .username { color: var(--forum-text); }
.io-black-mode .forum-user-card .bio { color: var(--muted-color); }
.io-black-mode .forum-user-stats { border-top-color: var(--forum-border); }
.io-black-mode .forum-user-stats .stat-item { border-right-color: var(--forum-border); }
.io-black-mode .forum-user-stats .stat-num { color: var(--forum-text); }
.io-black-mode .forum-user-actions { border-top-color: var(--forum-border); }
.io-black-mode .forum-user-actions .btn-outline-forum {
    border-color: var(--forum-border);
    color: var(--muted-color);
}
.io-black-mode .forum-user-actions .btn-outline-forum:hover { border-color: var(--forum-primary); color: var(--forum-primary); }
/* 未登录卡片 */
.io-black-mode .forum-login-card .welcome-text { color: var(--muted-color); }
.io-black-mode .forum-login-card .btn-reg {
    border-color: var(--forum-primary);
    color: var(--forum-primary);
}
/* 热帖列表 */
.io-black-mode .forum-hot-list li { border-bottom-color: var(--forum-border); }
.io-black-mode .forum-hot-list .rank-num { background: rgba(255,255,255,.08); color: var(--muted-color); }
.io-black-mode .forum-hot-list .hot-title { color: var(--forum-text); }
.io-black-mode .forum-hot-list .hot-views { color: var(--muted-color); }
/* 帖子详情 - 作者栏 */
.io-black-mode .forum-post-author-bar { border-bottom-color: var(--forum-border); }
.io-black-mode .forum-post-author-bar .author-name { color: var(--forum-text); }
.io-black-mode .forum-post-author-bar .post-time { color: var(--muted-color); }
/* 帖子详情 - 正文（富文本 HTML 支持） */
.post-content-body { color: var(--forum-text); word-break: break-word; overflow-wrap: anywhere; }
.post-content-body h1,.post-content-body h2,.post-content-body h3,
.post-content-body h4,.post-content-body h5,.post-content-body h6 {
    margin: 1em 0 .5em; font-weight: 600; line-height: 1.4;
}
.post-content-body h1 { font-size: 1.5em; }
.post-content-body h2 { font-size: 1.3em; }
.post-content-body h3 { font-size: 1.15em; }
.post-content-body p { margin: .5em 0; }
.post-content-body ul,.post-content-body ol { padding-left: 1.8em; margin: .5em 0; }
.post-content-body li { margin: .25em 0; }
.post-content-body blockquote {
    border-left: 4px solid var(--forum-primary);
    padding: 8px 16px;
    margin: .5em 0;
    background: rgba(0,0,0,.03);
    border-radius: 0 6px 6px 0;
    color: var(--forum-muted);
    font-style: italic;
}
.post-content-body pre {
    background: #1e1e2e;
    color: #cdd6f4;
    border-radius: 6px;
    padding: 14px 16px;
    overflow-x: auto;
    font-size: 13px;
    line-height: 1.6;
    margin: .75em 0;
}
.post-content-body code {
    background: rgba(0,0,0,.06);
    border-radius: 3px;
    padding: 1px 5px;
    font-size: .88em;
    font-family: 'Fira Code', Consolas, monospace;
}
.post-content-body pre code { background: none; padding: 0; font-size: inherit; color: inherit; }
.post-content-body img { max-width: 100%; border-radius: 6px; margin: 4px 0; cursor: pointer; }
.post-content-body video { max-width: 100%; border-radius: 8px; margin: 8px 0; background: #000; outline: none; }
.post-content-body a { color: var(--forum-primary); text-decoration: none; }
.post-content-body a:hover { text-decoration: underline; }
.post-content-body table { width: 100%; border-collapse: collapse; margin: .75em 0; font-size: 14px; }
.post-content-body th,.post-content-body td { border: 1px solid var(--forum-border); padding: 8px 12px; }
.post-content-body th { background: rgba(0,0,0,.04); font-weight: 600; }
.post-content-body hr { border: none; border-top: 1px solid var(--forum-border); margin: 1em 0; }
/* 暗黑模式 - 正文 */
.io-black-mode .post-content-body { color: #c8cad0; }
.io-black-mode .post-content-body blockquote { background: rgba(255,255,255,.04); }
.io-black-mode .post-content-body code { background: rgba(255,255,255,.08); }
.io-black-mode .post-content-body th { background: rgba(255,255,255,.06); }
/* 操作栏 */
.io-black-mode .forum-action-bar {
    border-top-color: var(--forum-border);
    border-bottom-color: var(--forum-border);
}
.io-black-mode .forum-action-btn { color: var(--muted-color); }
.io-black-mode .forum-action-btn:hover { background: rgba(255,255,255,.06); }
/* 底部统计 */
.io-black-mode .forum-action-bar + .d-flex { border-top-color: var(--forum-border); color: var(--muted-color); }
/* 评论输入栏 */
.io-black-mode .comment-input-bar { background: var(--main-radius-bg); }
.io-black-mode .comment-input-inner textarea { color: #c8cad0; }
.io-black-mode .comment-input-inner textarea::placeholder { color: #555; }
.io-black-mode .cib-tools button,
.io-black-mode .cib-tool-label,
.io-black-mode .cib-btn-emoji { color: var(--muted-color); }
.io-black-mode .cib-tools button:hover,
.io-black-mode .cib-tool-label:hover,
.io-black-mode .cib-btn-emoji:hover { background: rgba(255,255,255,.08); color: var(--forum-primary); }
/* 评论列表 */
.io-black-mode .cmt-item { border-bottom-color: var(--forum-border); }
.io-black-mode .cmt-name { color: var(--forum-text); }
.io-black-mode .cmt-body { color: #c8cad0; }
.io-black-mode .cmt-meta { color: var(--muted-color); }
.io-black-mode .cmt-toolbar a { color: var(--muted-color); }
.io-black-mode .cmt-action-btn { color: var(--muted-color) !important; }
.io-black-mode .cmt-action-btn:hover { color: var(--forum-primary) !important; }
.io-black-mode .cmt-sub-list { background: rgba(255,255,255,.03); }
.io-black-mode .cmt-sub-item { color: #a6a8ab; }
.io-black-mode .cmt-sub-name { color: var(--forum-text); }
.io-black-mode .cmt-sub-reply { color: var(--muted-color); }
.io-black-mode .cmt-more { border-top-color: var(--forum-border); }
/* 回复输入框（内嵌） */
.io-black-mode .cmt-reply-box .comment-input-bar { background: rgba(255,255,255,.05); }
/* 签到日历 */
.io-black-mode .forum-sign-calendar-wrap .calendar-date:not(.signed):not(.today) {
    background: #36383c;
    border-color: transparent;
}
.io-black-mode .forum-sign-calendar-wrap .calendar-date.today:not(.signed) {
    background: rgba(232,52,79,.12);
    border-color: var(--forum-primary);
}
.io-black-mode .forum-sign-calendar-wrap .calendar-date.solar-day,
.io-black-mode .forum-sign-calendar-wrap .calendar-date.lunar-day { color: #888; }
.io-black-mode .forum-sign-calendar-wrap .weekday { color: #666; }
.io-black-mode .forum-sign-calendar-wrap .calendar-title { color: var(--forum-text); }
.io-black-mode .forum-sign-calendar-wrap .calendar-nav-btn,
.io-black-mode .forum-sign-calendar-wrap .calendar-today-btn { color: var(--muted-color); }
.io-black-mode .forum-sign-calendar-wrap .calendar-nav-btn:hover,
.io-black-mode .forum-sign-calendar-wrap .calendar-today-btn:hover { background: rgba(255,255,255,.08); }
/* 分类标签 */
.io-black-mode .forum-tag-pill.tag-cat {
    background: rgba(255,71,107,.12);
    color: var(--forum-primary);
    border-color: rgba(255,71,107,.25);
}
.io-black-mode .forum-tag-pill.tag-essence {
    background: linear-gradient(135deg, rgba(255,215,0,.25), rgba(255,140,0,.25));
    color: #ffd700;
}
/* 排序/筛选文字 */
.io-black-mode .forum-sort-bar a { color: var(--muted-color); }
.io-black-mode .forum-sort-bar a:hover { background: var(--forum-primary-light); color: var(--forum-primary); }
.io-black-mode .forum-sort-bar a.active { background: var(--forum-primary); color: #fff; }
/* 侧边栏导航暗黑模式 */
.io-black-mode .forum-cats-label {
    background: rgba(255,255,255,.08);
    color: var(--muted-color);
}
.io-black-mode .forum-sidebar-tag {
    background: rgba(255,255,255,.05);
    color: var(--muted-color);
}
.io-black-mode .forum-sidebar-tag:hover {
    background: var(--forum-primary-light);
    color: var(--forum-primary);
}
.io-black-mode .forum-sidebar-tag.active {
    background: var(--forum-primary);
    color: #fff;
}
.io-black-mode .forum-sidebar-tag-sm {
    background: rgba(255,255,255,.05);
    color: var(--muted-color);
}
.io-black-mode .forum-sidebar-tag-sm:hover {
    background: var(--forum-primary-light);
    color: var(--forum-primary);
}
.io-black-mode .forum-sidebar-tag-sm.active {
    background: var(--forum-primary);
    color: #fff;
}
/* 发布按钮暗黑模式 */
.io-black-mode .forum-publish-btn { background: var(--forum-primary); }
.io-black-mode .forum-publish-btn:hover { background: var(--forum-primary-hover); box-shadow: 0 2px 12px rgba(255,71,19,.4); }

/* ============================================================
   快速发帖框（首页）
   ============================================================ */
.forum-quick-post {
    background: #fff;
    border-radius: var(--forum-card-radius);
    box-shadow: 0 1px 3px rgba(0,0,0,.06);
    margin-bottom: 12px;
    transition: box-shadow 0.2s;
}
.forum-quick-post:hover { box-shadow: 0 2px 8px rgba(0,0,0,.1); }
.fqp-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    cursor: pointer;
    user-select: none;
}
.fqp-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}
.fqp-placeholder {
    flex: 1;
    color: var(--forum-muted);
    font-size: 14px;
    padding: 8px 14px;
    background: #f2f3f5;
    border-radius: 20px;
    transition: background 0.15s;
}
.fqp-header:hover .fqp-placeholder { background: #e8e8eb; }
.fqp-arrow {
    color: var(--forum-muted);
    font-size: 12px;
    transition: transform 0.2s;
}
.forum-quick-post.expanded .fqp-arrow { transform: rotate(180deg); }
.fqp-body {
    display: none;
    padding: 0 16px 14px;
}
.forum-quick-post.expanded .fqp-body { display: block; }
.fqp-title {
    width: 100%;
    border: 1px solid var(--forum-border);
    border-radius: 6px;
    padding: 8px 12px;
    font-size: 14px;
    outline: none;
    transition: border-color 0.15s;
    margin-bottom: 8px;
    box-sizing: border-box;
}
.fqp-title:focus { border-color: var(--forum-primary); }
.fqp-content {
    width: 100%;
    border: 1px solid var(--forum-border);
    border-radius: 6px;
    padding: 10px 12px;
    font-size: 14px;
    outline: none;
    resize: vertical;
    min-height: 60px;
    max-height: 200px;
    transition: border-color 0.15s;
    box-sizing: border-box;
    font-family: inherit;
}
.fqp-content:focus { border-color: var(--forum-primary); }
.fqp-upload-wrap {
    margin-top: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.fqp-upload-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 12px;
    font-size: 13px;
    color: var(--forum-muted);
    border: 1px dashed var(--forum-border);
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.15s;
}
.fqp-upload-btn:hover {
    color: var(--forum-primary);
    border-color: var(--forum-primary);
    background: var(--forum-primary-light);
}
.fqp-upload-preview {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 6px;
}
.fqp-upload-preview img {
    width: 56px;
    height: 56px;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid var(--forum-border);
}
.fqp-upload-preview .fqp-img-wrap {
    position: relative;
    display: inline-block;
}
.fqp-upload-preview .fqp-img-remove {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 18px;
    height: 18px;
    background: #f56c6c;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    cursor: pointer;
    line-height: 1;
}
.fqp-footer {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
}
.fqp-cat {
    flex: 1;
    border: 1px solid var(--forum-border);
    border-radius: 6px;
    padding: 6px 10px;
    font-size: 13px;
    outline: none;
    color: var(--forum-text);
    background: #fff;
    cursor: pointer;
}
.fqp-cat:focus { border-color: var(--forum-primary); }
.fqp-submit {
    padding: 7px 24px;
    background: var(--forum-primary);
    color: #fff;
    border: none;
    border-radius: 20px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
}
.fqp-submit:hover {
    background: var(--forum-primary-hover);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(255,71,19,.3);
}
.fqp-submit:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none !important;
    box-shadow: none !important;
}
.fqp-error {
    color: #f56c6c;
    font-size: 13px;
    margin-top: 6px;
    display: none;
}
.fqp-error.show { display: block; }

/* 暗黑模式 - 快速发帖框 */
.io-black-mode .forum-quick-post { background: var(--card-bg); }
.io-black-mode .fqp-placeholder { background: rgba(255,255,255,.06); color: var(--muted-color); }
.io-black-mode .fqp-header:hover .fqp-placeholder { background: rgba(255,255,255,.1); }
.io-black-mode .fqp-title,
.io-black-mode .fqp-content { background: var(--card-bg); color: var(--forum-text); border-color: rgba(255,255,255,.1); }
.io-black-mode .fqp-title:focus,
.io-black-mode .fqp-content:focus { border-color: var(--forum-primary); }
.io-black-mode .fqp-upload-btn { color: var(--muted-color); border-color: rgba(255,255,255,.12); }
.io-black-mode .fqp-upload-btn:hover { color: var(--forum-primary); border-color: var(--forum-primary); background: var(--forum-primary-light); }
.io-black-mode .fqp-cat { background: var(--card-bg); color: var(--forum-text); border-color: rgba(255,255,255,.12); }
.io-black-mode .forum-filter-sort a { color: var(--muted-color); }
.io-black-mode .forum-filter-sort a.active,
.io-black-mode .forum-filter-sort a:hover { color: var(--forum-primary); }
/* 左侧导航 */
.io-black-mode .forum-board-nav li a { color: var(--forum-text); }
.io-black-mode .forum-board-nav li a:hover,
.io-black-mode .forum-board-nav li a.active { background: var(--forum-primary-light); color: var(--forum-primary); }
.io-black-mode .forum-board-nav li a .board-count { background: rgba(255,255,255,.08); color: var(--muted-color); }
.io-black-mode .forum-board-nav li a:hover .board-count,
.io-black-mode .forum-board-nav li a.active .board-count { background: var(--forum-primary); color: #fff; }
/* 通用 */
.io-black-mode .forum-empty { color: var(--muted-color); }
.io-black-mode .forum-pagination { color: var(--muted-color); }
.io-black-mode .forum-badge-primary { background: var(--forum-primary-light); color: var(--forum-primary); }
.io-black-mode .forum-divider { background: var(--forum-border); }
.io-black-mode .forum-post-avatar,
.io-black-mode .cal-days .day.other-month { background: var(--main-radius-bg); }
/* 登录提示区 */
.io-black-mode div[style*="background:#f7f8fa"] { background: var(--main-radius-bg) !important; }

/* ===== 右侧作者卡片底部按钮 ===== */
.author-card-footer { margin-top: 0; }
.author-card-footer a {
    color: var(--forum-text);
    font-size: 13px;
    text-decoration: none;
    transition: background .2s, color .2s;
}
.author-card-footer a:hover {
    background: var(--forum-primary-light);
    color: var(--forum-primary);
}
.author-card-footer a i { margin-right: 4px; }
.io-black-mode .author-card-footer a { color: var(--forum-text); }
.io-black-mode .author-card-footer a:hover { background: rgba(255,255,255,.06); color: var(--forum-primary); }
.io-black-mode .author-card-footer { border-top-color: var(--forum-border) !important; }
.io-black-mode .author-card-footer a[style*="border-right"] { border-right-color: var(--forum-border) !important; }

/* ============================================================
   我的回复列表（forum_my_comments.html）
   ============================================================ */

/* 外层卡片 */
.my-replies-card {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
    padding: 0;
    overflow: hidden;
}
.my-replies-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    padding: 18px 20px 14px;
    border-bottom: 1px solid #eee;
}
.my-replies-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--forum-text);
    margin: 0;
}
.my-replies-meta {
    font-size: 13px;
    color: #999;
}
.my-replies-meta em {
    color: var(--forum-primary);
    font-style: normal;
    font-weight: 700;
}

/* 列表 */
.my-replies-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* 单条卡片 */
.reply-card {
    padding: 18px 20px;
    border-bottom: 1px solid #f0f0f0;
    position: relative;
}
.reply-card:last-child {
    border-bottom: none;
}
.reply-card::before {
    content: '';
    position: absolute;
    left: 0;
    top: 16px;
    bottom: 16px;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: var(--forum-primary);
    opacity: 0;
    transition: opacity 0.15s;
}
.reply-card:hover::before {
    opacity: 1;
}

/* 头部：帖子标题 + 标签 */
.reply-card-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}
.reply-card-postlink {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    text-decoration: none;
    max-width: 80%;
}
.reply-card-prefix {
    font-size: 12px;
    color: #999;
    white-space: nowrap;
}
.reply-card-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--forum-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.reply-card-postlink:hover .reply-card-title {
    text-decoration: underline;
}
.reply-card-tag {
    font-size: 11px;
    padding: 1px 8px;
    border-radius: 4px;
    background: #f5f5f5;
    color: #999;
    font-weight: 500;
    white-space: nowrap;
}
.reply-card-tag-reply {
    background: var(--forum-primary-light);
    color: var(--forum-primary);
}

/* 正文 */
.reply-card-body {
    font-size: 15px;
    line-height: 1.8;
    color: #333;
    word-break: break-word;
    margin-bottom: 14px;
}
.reply-card-body img {
    max-width: 100%;
    max-height: 280px;
    border-radius: 6px;
    margin: 8px 0;
    vertical-align: middle;
}
.reply-card-body video,
.reply-card-body .video-player,
.reply-card-body iframe[src*="video"] {
    max-width: 100%;
    max-height: 280px;
    border-radius: 6px;
    margin: 8px 0;
    display: block;
}
.reply-card-edited {
    font-size: 12px;
    color: #999;
    margin-left: 8px;
    white-space: nowrap;
}

/* 底部 */
.reply-card-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}
.reply-card-time {
    font-size: 13px;
    color: #bbb;
}
.reply-card-actions {
    display: flex;
    align-items: center;
    gap: 2px;
}
.reply-card-actions a {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 12px;
    border-radius: 4px;
    font-size: 13px;
    color: #888;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.12s;
    border: none;
    background: none;
}
.reply-card-actions a:hover {
    background: var(--forum-primary-light);
    color: var(--forum-primary);
}
.reply-card-actions a.reply-card-del:hover {
    background: #fff0f0;
    color: #ff4757;
}
.reply-card-actions a i {
    font-size: 12px;
}

/* 分页 */
.my-replies-pages {
    padding: 14px 20px;
    border-top: 1px solid #f0f0f0;
}

/* 空状态 */
.my-replies-empty {
    text-align: center;
    padding: 60px 20px;
}
.my-replies-empty p {
    font-size: 15px;
    color: #999;
    margin: 0 0 16px;
}
.my-replies-empty a {
    display: inline-block;
    padding: 8px 24px;
    background: var(--forum-primary);
    color: #fff;
    font-size: 14px;
    border-radius: 6px;
    text-decoration: none;
    transition: opacity 0.15s;
}
.my-replies-empty a:hover {
    opacity: 0.85;
}

/* 编辑器（编辑时展开） */
.fc-loading {
    padding: 16px;
    color: #999;
    font-size: 13px;
    text-align: center;
}
.forum-comment-edit-area {
    padding: 0;
}
.forum-comment-editor {
    min-height: 60px;
    padding: 10px 14px;
    border: 1px solid #ddd;
    border-radius: 8px;
    outline: none;
    font-size: 15px;
    line-height: 1.7;
    word-break: break-word;
    background: #fff;
    transition: border-color 0.15s;
    margin-bottom: 10px;
}
.forum-comment-editor:focus {
    border-color: var(--forum-primary);
}
.forum-comment-editor img {
    max-width: 100%;
    max-height: 200px;
    border-radius: 8px;
    margin: 4px 0;
}
.forum-comment-edit-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}
.fc-edit-cancel {
    border: 1px solid #ddd;
    background: #fff;
    color: #666;
    font-size: 13px;
    padding: 6px 18px;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.15s;
}
.fc-edit-cancel:hover {
    background: #f5f5f5;
    color: #333;
}
.fc-edit-save {
    border: none;
    background: var(--forum-primary);
    color: #fff;
    font-size: 13px;
    font-weight: 500;
    padding: 6px 22px;
    border-radius: 6px;
    cursor: pointer;
    transition: opacity 0.15s;
}
.fc-edit-save:hover {
    opacity: 0.85;
}
.fc-edit-save:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ---- 暗黑模式 ---- */
.io-black-mode .my-replies-card {
    background: var(--main-radius-bg);
    box-shadow: none;
}
.io-black-mode .my-replies-head {
    border-bottom-color: var(--forum-border);
}
.io-black-mode .my-replies-title {
    color: var(--forum-text);
}
.io-black-mode .reply-card {
    border-bottom-color: var(--forum-border);
}
.io-black-mode .reply-card::before {
    background: var(--forum-primary);
}
.io-black-mode .reply-card-prefix {
    color: var(--muted-color);
}
.io-black-mode .reply-card-title {
    color: var(--forum-primary);
}
.io-black-mode .reply-card-tag {
    background: rgba(255,255,255,0.05);
    color: var(--muted-color);
}
.io-black-mode .reply-card-tag-reply {
    background: rgba(255,71,19,0.12);
    color: var(--forum-primary);
}
.io-black-mode .reply-card-body {
    color: #c8cad0;
}
.io-black-mode .reply-card-edited {
    color: var(--muted-color);
}
.io-black-mode .reply-card-foot {
    border-top-color: var(--forum-border);
}
.io-black-mode .reply-card-time {
    color: var(--muted-color);
}
.io-black-mode .reply-card-actions a {
    color: var(--muted-color);
}
.io-black-mode .reply-card-actions a:hover {
    background: rgba(255,71,19,0.1);
    color: var(--forum-primary);
}
.io-black-mode .reply-card-actions a.reply-card-del:hover {
    background: rgba(255,71,87,0.1);
    color: #ff6b6b;
}
.io-black-mode .forum-comment-editor {
    background: rgba(255,255,255,0.03);
    border-color: rgba(255,255,255,0.1);
    color: #ccc;
}
.io-black-mode .fc-edit-cancel {
    background: rgba(255,255,255,0.05);
    border-color: rgba(255,255,255,0.1);
    color: var(--muted-color);
}
.io-black-mode .fc-edit-cancel:hover {
    background: rgba(255,255,255,0.08);
    color: #ccc;
}

/* ---- 手机端 ---- */
@media (max-width: 768px) {
    .my-replies-head {
        padding: 14px 14px 10px;
    }
    .my-replies-title {
        font-size: 17px;
    }
    .reply-card {
        padding: 14px;
    }
    .reply-card::before {
        display: none;
    }
    .reply-card-head {
        margin-bottom: 10px;
    }
    .reply-card-postlink {
        max-width: 100%;
    }
    .reply-card-title {
        font-size: 14px;
    }
    .reply-card-body {
        font-size: 14px;
        line-height: 1.7;
        margin-bottom: 12px;
    }
    .reply-card-foot {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
    .reply-card-actions {
        width: 100%;
        justify-content: flex-end;
    }
    .reply-card-actions a {
        padding: 5px 10px;
        font-size: 12px;
    }
    .reply-card-actions a span {
        display: none;
    }
    .my-replies-empty {
        padding: 48px 16px;
    }
    .my-replies-empty p {
        font-size: 14px;
    }
}

/* ============================================================
   我的帖子列表（forum_my_posts.html）
   — 复用 my-replies-card 外层 + 独立 post-card 内层
   ============================================================ */

.my-posts-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* 单条帖子卡片 */
.post-card {
    padding: 20px;
    border-bottom: 1px solid #f0f0f0;
    position: relative;
}
.post-card:last-child { border-bottom: none; }
.post-card-link {
    position: absolute;
    inset: 0;
    z-index: 2;
}

/* 头部：作者 + 分类/状态 */
.post-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 14px;
}
.post-card-author {
    display: flex;
    align-items: center;
    gap: 10px;
}
.post-card-avatar {
    width: 36px; height: 36px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}
.post-card-author-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.post-card-name {
    font-size: 14px;
    font-weight: 600;
    color: #333;
    line-height: 1.3;
}
.post-card-author-meta {
    display: flex;
    align-items: center;
    gap: 6px;
}
.post-card-level {
    height: 18px;
    flex-shrink: 0;
}
.post-card-time {
    font-size: 12px;
    color: #bbb;
}
.post-card-top-right {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}
.post-card-cat {
    font-size: 12px;
    color: #999;
    background: #f5f5f5;
    padding: 2px 10px;
    border-radius: 4px;
}
.post-card-auditing {
    font-size: 11px;
    color: #856404;
    background: #fff3cd;
    padding: 2px 8px;
    border-radius: 4px;
}
.post-card-deleted {
    font-size: 11px;
    color: #721c24;
    background: #f8d7da;
    padding: 2px 8px;
    border-radius: 4px;
}

/* 标题 */
.post-card-title {
    font-size: 17px;
    font-weight: 700;
    color: var(--forum-text);
    margin: 0 0 14px;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.post-card:hover .post-card-title {
    color: var(--forum-primary);
}

/* 图片/视频预览  — 复用通用 forum-post-images / fpi-* 结构 */
.post-card .forum-post-images {
    margin-bottom: 16px;
}

/* 底部：统计 + 编辑 */
.post-card-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.post-card-stats {
    display: flex;
    align-items: center;
    gap: 16px;
}
.post-card-stats span {
    font-size: 13px;
    color: #bbb;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.post-card-edit {
    position: relative;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 14px;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    font-size: 13px;
    color: #888;
    text-decoration: none;
    background: #fff;
    transition: all 0.12s;
}
.post-card-edit:hover {
    border-color: var(--forum-primary);
    color: var(--forum-primary);
    background: var(--forum-primary-light);
}

/* 暗黑模式 */
.io-black-mode .post-card {
    border-bottom-color: var(--forum-border);
}
.io-black-mode .post-card-name { color: #a6a8ab; }
.io-black-mode .post-card-time { color: var(--muted-color); }
.io-black-mode .post-card-cat {
    background: rgba(255,255,255,0.05);
    color: var(--muted-color);
}
.io-black-mode .post-card-title { color: var(--forum-text); }
.io-black-mode .post-card-title:hover { color: var(--forum-primary); }
.io-black-mode .post-card-stats span { color: var(--muted-color); }
.io-black-mode .post-card-edit {
    background: transparent;
    border-color: var(--forum-border);
    color: var(--muted-color);
}
.io-black-mode .post-card-edit:hover {
    border-color: var(--forum-primary);
    color: var(--forum-primary);
    background: rgba(255,71,19,0.1);
}

/* 手机端 */
@media (max-width: 768px) {
    .post-card { padding: 14px; }
    .post-card-head { margin-bottom: 10px; }
    .post-card-avatar { width: 30px; height: 30px; }
    .post-card-name { font-size: 13px; }
    .post-card-title { font-size: 15px; margin-bottom: 10px; }
    .post-card-images { margin-bottom: 12px; }
    .post-card-foot { flex-wrap: wrap; }
    .post-card-stats { gap: 12px; }
    .post-card-stats span { font-size: 12px; }
    .post-card-edit { padding: 4px 10px; font-size: 12px; }
}

/* ============================================================
   暗黑模式补完 — 卡片列表内元素
   ============================================================ */
.io-black-mode .fph-name { color: #a6a8ab; }
.io-black-mode .forum-post-summary { color: #a6a8ab; }
.io-black-mode .fpi-img-wrap { background: rgba(255,255,255,.06); }
.io-black-mode .fpf-reply-name { color: #a6a8ab; }
.io-black-mode .fpf-reply-time,
.io-black-mode .fpf-time { color: #666; }
.io-black-mode .forum-post-meta .author { color: #a6a8ab; }
.io-black-mode .forum-post-meta .dot { color: #555; }
.io-black-mode .last-reply-name { color: #a6a8ab; }
.io-black-mode .last-reply-time { color: #666; }

/* ============================================================
   暗黑模式补完 — 分页导航
   ============================================================ */
.io-black-mode .posts-nav a,
.io-black-mode .posts-nav span {
    color: var(--muted-color);
    border-color: rgba(255,255,255,.1);
}
.io-black-mode .posts-nav a:hover {
    background: rgba(255,255,255,.06);
    color: var(--forum-primary);
    border-color: var(--forum-primary);
}
.io-black-mode .posts-nav .disabled { color: #555; }

/* ============================================================
   暗黑模式补完 — 编辑按钮
   ============================================================ */
.io-black-mode .forum-post-edit-btn {
    background: rgba(255,255,255,.06);
    color: var(--muted-color);
}
.io-black-mode .forum-post-edit-btn:hover {
    background: var(--forum-primary);
    color: #fff;
}

/* ============================================================
   暗黑模式补完 — 会员中心 hover
   ============================================================ */
.io-black-mode .user-center-stats .col:hover {
    background: rgba(255,255,255,.04);
}

/* ============================================================
   暗黑模式补完 — 表情面板
   ============================================================ */
.io-black-mode .emoji-panel-float {
    background: #2a2b2d !important;
    border-color: rgba(255,255,255,.12) !important;
}
.io-black-mode .emoji-panel-float button:hover {
    background: rgba(255,255,255,.08) !important;
}

/* ============================================================
   暗黑模式补完 — 帖子详情页正文卡片
   ============================================================ */
.io-black-mode #forum-post-detail .content-card {
    background: var(--main-radius-bg);
    border-color: var(--forum-border);
}

/* ============================================================
   暗黑模式补完 — 关注/粉丝列表空状态按钮
   ============================================================ */
.io-black-mode .empty-action-btn:hover {
    background: #c82a42;
    color: #fff;
}

/* ===== 菜谱风格覆盖 ===== */
.forum-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
    border: 1px solid #f0f0f0;
    transition: box-shadow .2s;
}
.forum-card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.forum-card .card-body {
    padding: 1.5rem;
}
.forum-card-header {
    padding: 0.75rem 1.5rem;
    border-bottom: 1px solid #f0f0f0;
    font-weight: 600;
    font-size: 0.95rem;
    background: #fafafa;
    border-radius: 12px 12px 0 0;
}
/* 作者栏 */
.forum-post-author-bar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid #f0f0f0;
}
.author-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #fff;
    box-shadow: 0 0 0 1px #e8e8e8;
}
.author-info {
    flex: 1;
}
.author-name {
    font-weight: 600;
    color: #333;
    font-size: 0.95rem;
}
.author-name:hover { color: #e8344f; }
.post-time {
    font-size: 0.75rem;
    color: #999;
}
/* 标签 */
.forum-tag-pill {
    display: inline-block;
    padding: 0.1rem 0.6rem;
    border-radius: 20px;
    font-size: 0.7rem;
    font-weight: 500;
    margin-right: 4px;
}
.tag-top { background: #ff6b6b; color: #fff; }
.tag-cat { background: #ff922b; color: #fff; }
.tag-essence { background: #fcc419; color: #333; }
/* 正文 */
.post-content-body {
    font-size: 15px;
    line-height: 1.8;
    color: #333;
}
.post-content-body img {
    max-width: 100%;
    border-radius: 8px;
}
/* 操作按钮 */
.forum-action-bar {
    display: flex;
    gap: 20px;
    padding: 12px 0;
    border-top: 1px solid #f0f0f0;
    margin-top: 12px;
}
.forum-action-btn {
    background: none;
    border: none;
    color: #888;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    gap: 5px;
    cursor: pointer;
    transition: color .2s;
}
.forum-action-btn:hover { color: #e8344f; }
.forum-action-btn.liked { color: #e8344f; }
.forum-action-btn i { font-size: 1.1rem; }
/* 评论项 */
.cmt-item {
    display: flex;
    gap: 12px;
    padding: 14px 0;
    border-bottom: 1px solid #f0f0f0;
}
.cmt-item:last-child { border-bottom: none; }
.cmt-left { flex-shrink: 0; }
.cmt-avatar {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    object-fit: cover;
}
.cmt-right { flex: 1; min-width: 0; }
.cmt-head {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 2px;
}
.cmt-name {
    font-weight: 600;
    font-size: 0.95rem;
    color: #333;
}
.cmt-name:hover { color: #e8344f; }
.cmt-meta-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    font-size: 0.72rem;
    color: #aaa;
    margin-bottom: 4px;
}
.cmt-body {
    font-size: 0.9rem;
    color: #444;
    margin-top: 2px;
    word-break: break-word;
}
.cmt-body img { max-width: 100%; border-radius: 6px; }
.cmt-at { color: #e8344f; font-weight: 500; }
.cmt-meta {
    font-size: 0.7rem;
    color: #aaa;
    margin-top: 4px;
}
.cmt-toolbar {
    display: flex;
    gap: 14px;
    margin-top: 6px;
    font-size: 0.8rem;
}
.cmt-toolbar a {
    color: #999;
    cursor: pointer;
}
.cmt-toolbar a:hover { color: #e8344f; }
.cmt-toolbar .cmt-delete-btn:hover { color: #ff6b6b; }
/* 子回复 */
.cmt-sub-item {
    padding: 10px 0 10px 48px;
    border-top: 1px dashed #eee;
    position: relative;
}
.cmt-sub-item:first-child { border-top: none; }
.cmt-sub-avatar {
    position: absolute;
    left: 0;
    top: 12px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
}
.cmt-sub-name-row {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 2px;
}
.cmt-sub-name { font-weight: 600; color: #333; font-size: 0.85rem; }
.cmt-sub-meta-row {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    font-size: 0.7rem;
    color: #aaa;
}
.cmt-sub-level {
    height: 14px;
    vertical-align: -2px;
    display: inline-block;
}
.cmt-sub-body {
    font-size: 0.85rem;
    color: #444;
    word-break: break-word;
}
.cmt-sub-body img { max-width: 100%; border-radius: 6px; }
.cmt-sub-at { color: #e8344f; }
.cmt-sub-actions {
    display: flex;
    gap: 12px;
    margin-top: 4px;
    font-size: 0.75rem;
}
.cmt-sub-actions a {
    color: #999;
    cursor: pointer;
}
.cmt-sub-actions a:hover { color: #e8344f; }
.cmt-sub-reply { color: #e8344f !important; }

/* 楼主标识 */
.cmt-author-badge {
    display: inline-block;
    padding: 1px 6px;
    font-size: 11px;
    font-weight: 600;
    color: #fff;
    background: #e8344f;
    border-radius: 3px;
    vertical-align: 2px;
    margin-left: 4px;
    line-height: 1.4;
}

/* 等级图标（主评论/子回复） */
.cmt-level {
    height: 16px;
    vertical-align: -3px;
    display: inline-block;
    margin: 0 2px;
}
/* 回复输入框 */
.comment-input-bar {
    background: #f7f8fa;
    padding: 12px 14px;
    border-radius: 16px;
}
.cib-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
}
/* 分页 */
.forum-pagination {
    display: flex;
    justify-content: center;
    padding-top: 16px;
}
/* 空状态 */
.empty-comment {
    text-align: center;
    padding: 40px 0;
    color: #bbb;
}
.empty-comment i {
    font-size: 36px;
    opacity: 0.3;
    display: block;
    margin-bottom: 10px;
}
/* 暗色适配 */
.io-black-mode .forum-card {
    background: #1e1e1e;
    border-color: #333;
}
.io-black-mode .forum-card-header {
    background: #2a2a2a;
    border-color: #333;
}
.io-black-mode .forum-post-author-bar {
    border-color: #333;
}
.io-black-mode .post-content-body { color: #ddd; }
.io-black-mode .cmt-item { border-color: #333; }
.io-black-mode .cmt-name { color: #ddd; }
.io-black-mode .cmt-meta-row { color: #888; }
.io-black-mode .cmt-body { color: #ccc; }
.io-black-mode .cmt-sub-item { border-color: #333; }
.io-black-mode .cmt-sub-name { color: #ddd; }
.io-black-mode .cmt-sub-meta-row { color: #888; }
.io-black-mode .cmt-sub-body { color: #ccc; }
.io-black-mode .comment-input-bar { background: #2a2a2a; }
.io-black-mode .forum-action-bar { border-color: #333; }
.io-black-mode .forum-action-btn { color: #888; }
.io-black-mode .forum-action-btn:hover { color: #e8344f; }
.io-black-mode .cmt-toolbar a { color: #888; }
.io-black-mode .cmt-toolbar a:hover { color: #e8344f; }

/* AiEditor 评论适配 */
#comment-aieditor-wrap .aie-container {
    border: 1px solid #e8e8e8 !important;
    border-radius: 12px !important;
    overflow: hidden;
}
#comment-aieditor-wrap .aie-container:focus-within {
    border-color: #e8344f !important;
    box-shadow: 0 0 0 3px rgba(232,52,79,.1);
}
#comment-aieditor-wrap .aie-content {
    min-height: 60px;
    max-height: 200px;
    font-size: 14px;
    line-height: 1.7;
    padding: 10px 14px;
    overflow-y: auto;
}
#comment-aieditor-wrap .aie-toolbar {
    background: #fafafa;
    border-bottom: 1px solid #eee;
}
[id^="reply-aieditor-wrap-"] .aie-container {
    border: 1px solid #ddd !important;
    border-radius: 10px !important;
}
[id^="reply-aieditor-wrap-"] .aie-content {
    min-height: 50px;
    max-height: 150px;
    font-size: 13px;
    padding: 8px 10px;
}
.io-black-mode #comment-aieditor-wrap .aie-container,
.io-black-mode [id^="reply-aieditor-wrap-"] .aie-container {
    border-color: rgba(255,255,255,.15) !important;
}
.io-black-mode #comment-aieditor-wrap .aie-toolbar,
.io-black-mode [id^="reply-aieditor-wrap-"] .aie-toolbar {
    background: rgba(255,255,255,.04);
    border-color: rgba(255,255,255,.08);
}

/* ============================================================
   移动端响应式 — 评论头像 + 等级图标缩小
   ============================================================ */
@media (max-width: 576px) {
    /* 主评论头像 */
    .cmt-avatar {
        width: 30px !important;
        height: 30px !important;
    }
    .cmt-left { margin-right: 8px; }
    .cmt-item { gap: 8px; padding: 12px 0; }

    /* 主评论等级图标 */
    .cmt-level {
        height: 12px;
    }

    /* 子回复区域 */
    .cmt-sub-item {
        padding-left: 36px;
    }
    .cmt-sub-avatar {
        width: 24px;
        height: 24px;
        top: 10px;
    }
    .cmt-sub-level {
        height: 11px;
    }

    /* 名字字号缩小 */
    .cmt-name { font-size: 0.85rem; }
    .cmt-sub-name { font-size: 0.8rem; }
    .cmt-sub-name-row { gap: 4px; }

    /* 楼主标识缩小 */
    .cmt-author-badge {
        padding: 0 5px;
        font-size: 10px;
        vertical-align: 1px;
    }
}