
/* ========== 强化配置清单 - 每一行清晰展示 ========== */
.config-list {
    background: #f9fafc;
    border-radius: 24px;
    padding: 14px 16px;
    margin: 12px 0 8px;
}
.config-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid #eef2f8;
}
.config-item:last-child {
    border-bottom: none;
}
.config-type {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 600;
    font-size: 14px;
    color: #2d3e50;
    width: 90px;
}
.config-type i {
    width: 24px;
    font-size: 16px;
    color: #6c5ce7;
}
.config-name {
    flex: 1;
    font-size: 14px;
    color: #1e293b;
    font-weight: 500;
    word-break: break-all;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    white-space: normal;
}
.config-price {
    font-weight: 600;
    color: #5b4bc4;
    font-size: 14px;
    white-space: nowrap;
}
/* ---- 没价格的件(2026-10-29)----
 * 站内没采集到参考价、用户也没填价的件(主板最常见)照样要显示这一行,
 * 只是价格位写「暂无价格」—— 少了这行,页面看着像"没配主板"。 */
.config-price-none {
    font-weight: 500;
    color: #a6b0c2;
    font-size: 12.5px;
}
/* 总价行后面那句「不含 N 件暂无报价」 */
.config-total-note {
    display: block;
    font-weight: 500;
    font-size: 11.5px;
    color: #a6b0c2;
    margin-top: 1px;
}

/* ---- 去购买(2026-10-28)----
 * 方案 E(用户从 5 个方案里选的):价格 + 「去购买」**竖排成一组靠右**。
 * 为什么不用药丸按钮:按钮占横向空间,手机上会把这个型号名挤成
 * 「铭瑄 终结者 B850M PRO D…」;竖排之后型号名能完整显示,代价是行略高。
 * ⚠ 有站内报价的件才渲染(后端查不到转链地址就不出)。 */
.config-price-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1px;
    flex: 0 0 auto;
    margin-left: 12px;
}
.config-buy {
    font-size: 11px;
    font-weight: 600;
    line-height: 1.3;
    color: #e4393c;
    text-decoration: none;
    white-space: nowrap;
}
.config-buy:hover {
    color: #c0392b;
    text-decoration: underline;
}
/* ===================== 装机圈 · 分享面板 / 配置海报 =====================
 * 列表页(/q/)和详情页(/t/)共用,配合 q/common/share.js。
 * ⚠ 配色用装机圈自己的紫(#6c5ce7),不依赖个人中心那套 --color-primary
 *   (两个页面的主题变量不一定都定义了)。
 */
.zjs-modal { position: fixed; left: 0; right: 0; top: 0; bottom: 0; z-index: 9999; display: none; }
.zjs-modal.on { display: block; }
.zjs-mask { position: absolute; left: 0; right: 0; top: 0; bottom: 0; background: rgba(15, 30, 47, .45); }
.zjs-box {
    position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
    width: min(520px, calc(100vw - 32px)); max-height: calc(100vh - 40px);
    background: #fff; border-radius: 18px; box-shadow: 0 18px 60px rgba(15, 30, 47, .25);
    display: flex; flex-direction: column; overflow: hidden;
}
.zjs-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 15px 20px; border-bottom: 1px solid #f2f4f8; flex: none;
}
.zjs-head .zjs-title { font-size: 15px; font-weight: 700; color: #0f1e2f; }
.zjs-x {
    background: none; border: none; font-size: 25px; line-height: 1;
    color: #a9b3c4; cursor: pointer; padding: 0 2px;
}
.zjs-x:hover { color: #0f1e2f; }
.zjs-body { padding: 18px 20px 20px; overflow-y: auto; }

/* ---- 分享面板 ---- */
.zjs-list { display: flex; flex-direction: column; gap: 10px; }
.zjs-item {
    display: flex; align-items: center; gap: 12px; padding: 13px 14px;
    border: 1px solid #eef2fa; border-radius: 14px; cursor: pointer; background: #fff;
    text-align: left; width: 100%; font-family: inherit;
}
.zjs-item:hover { border-color: #6c5ce7; background: #fbfaff; }
.zjs-item .ic {
    width: 38px; height: 38px; border-radius: 11px; flex: none;
    display: flex; align-items: center; justify-content: center;
    font-size: 19px; background: #f0edff;
}
.zjs-item .tx { flex: 1; min-width: 0; }
.zjs-item .tx b { display: block; font-size: 14px; color: #0f1e2f; font-weight: 700; margin-bottom: 3px; }
.zjs-item .tx span { font-size: 12px; color: #8a95a8; line-height: 1.55; display: block; }

/* ---- 海报预览 ---- */
.zjs-poster-box { background: #f1f4f9; border-radius: 14px; padding: 14px; display: flex; justify-content: center; }
.zjs-poster-box canvas {
    width: 100%; height: auto; border-radius: 10px;
    box-shadow: 0 6px 22px rgba(15, 30, 47, .14); display: block;
}
.zjs-acts {
    display: flex; gap: 10px; margin-top: 15px; flex-wrap: wrap;
    /* 长配置海报很高,按钮曾被挤出弹窗 → sticky 悬浮在可视区底部,海报从下面滚过(2026-10-30) */
    position: sticky; bottom: 0;
    background: #fff; padding: 12px 2px 4px;
    box-shadow: 0 -10px 18px rgba(15, 30, 47, .07);
}
.zjs-acts button {
    flex: 1; min-width: 118px; background: #fff; border: 1px solid #e6ebf5; border-radius: 60px;
    padding: 11px 16px; color: #5c6f87; cursor: pointer;
    font-size: 13.5px; font-weight: 600; font-family: inherit;
}
.zjs-acts button:hover { border-color: #6c5ce7; color: #6c5ce7; }
.zjs-acts button.primary { background: #6c5ce7; border-color: #6c5ce7; color: #fff; }
.zjs-acts button.primary:hover { background: #5b4bc4; border-color: #5b4bc4; color: #fff; }
.zjs-hint { font-size: 12px; color: #a9b3c4; margin: 11px 0 0; text-align: center; line-height: 1.6; }

@media (max-width: 760px) {
    .zjs-box { width: calc(100vw - 24px); max-height: calc(100vh - 24px); }
    .zjs-body { padding: 14px 14px 16px; }
}
.xinyue_container {
    background: #f0f2f8;
}

/* 主容器 */
.tang_post_container {
    max-width: 100%;
    margin: 0 auto;
}

/* 返回导航 */
.tang_post_nav {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 20px;
}
.tang_post_back_btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 40px;
    padding: 8px 18px;
    font-size: 14px;
    font-weight: 500;
    color: #334155;
    cursor: pointer;
    transition: 0.2s;
}
.tang_post_back_btn:active {
    transform: scale(0.96);
    background: #f8fafc;
}
.tang_post_breadcrumb {
    font-size: 13px;
    color: #8192aa;
}

/* 主卡片 */
.tang_post_card {
    background: white;
    padding: 24px 20px;
    margin-bottom: 20px;
    border: 1px solid #eef2f8;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.02);
}

/* 用户信息区 */
.tang_post_user_row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
    flex-wrap: wrap;
    gap: 12px;
}
.tang_post_user_info {
    display: flex;
    align-items: center;
    gap: 14px;
}
.tang_post_avatar {
    /* 头像现在是「去 TA 主页」的链接(<a>),要保留 flex 布局 */
    flex: none;
    text-decoration: none;
    transition: .2s;
    width: 52px;
    height: 52px;
    background: linear-gradient(145deg, #eef2ff, #e9e6ff);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 24px;
    color: #5b4bc4;
}
.tang_post_avatar img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
}
.tang_post_user_details {
    display: flex;
    flex-direction: column;
}
/* 邀请头衔徽章(2026-10-30) */
.zjt-inv-badge{display:inline-block;font-size:10px;font-weight:700;line-height:1;padding:3px 7px;border-radius:100px;margin-left:6px;vertical-align:2px;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;}
.zjt-inv-badge-envoy{background:#f0edff;color:#6b5cff;border-color:#ded9ff;}
.zjt-inv-badge-apostle{background:#ecfdf5;color:#059669;border-color:#a7f3d0;}
.zjt-inv-badge-legend{background:#fff7e6;color:#d48806;border-color:#ffe1a8;}
/* VIP 徽章(2026-11-02):金色渐变+白字,和邀请头衔(浅底深字)一眼区分开 */
.zjt-vip-badge{display:inline-block;font-size:9.5px;font-weight:800;line-height:1;padding:3px 7px;border-radius:100px;margin-left:6px;vertical-align:2px;color:#fff;background:linear-gradient(135deg,#f5b942,#e8890c);letter-spacing:.5px;text-shadow:0 1px 1px rgba(122,68,0,.28);box-shadow:0 1px 3px rgba(232,137,12,.35)}

.tang_post_user_name {
    font-weight: 700;
    font-size: 17px;
    color: #0f1825;
}
.tang_post_meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    font-size: 12px;
    color: #8192aa;
}
.tang_post_badge {
    background: #f1f5f9;
    padding: 2px 10px;
    border-radius: 30px;
    font-size: 10px;
    font-weight: 500;
    color: #5b6e8c;
}

/* 管理按钮组 */
.post-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}
.post-action-btn {
    background: #f1f5f9;
    border: none;
    border-radius: 30px;
    padding: 6px 12px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: 0.2s;
    color: #334155;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.post-action-btn:hover {
    background: #e2e8f0;
}
.post-action-btn.danger {
    color: #ef4444;
}
.post-action-btn.danger:hover {
    background: #fee2e2;
}

/* 帖子标题和内容 */
.tang_post_title {
    font-size: 22px;
    font-weight: 700;
    color: #0f1825;
    line-height: 1.3;
    margin: 8px 0 14px;
}
.tang_post_content {
    font-size: 15px;
    color: #2c3e50;
}

.tang_post_content p {
    margin-bottom: 20px;
    font: 16px / 30px 'Microsoft Yahei';
    word-break: normal;
    word-wrap: break-word;
}

.tang_post_content br {
}
/* 硬件标签 */
.tang_post_tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 16px 0 14px;
}
.tang_post_tag {
    background: #f1f5f9;
    padding: 5px 15px;
    border-radius: 40px;
    font-size: 12px;
    font-weight: 500;
    color: #2d3e50;
}
.tang_post_tag.highlight {
    background: #e9e6ff;
    color: #6c5ce7;
}

/* 配图区（横向滚动） */
.tang_post_images {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    margin: 16px 0 20px;
    padding-bottom: 4px;
}
.tang_post_img_item {
    width: 110px;
    height: 110px;
    background: #eef2f8;
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    flex-shrink: 0;
    color: #94a3b8;
}
.tang_post_img_item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 20px;
}

/* 互动栏 */
/* ⚠ 手机上原来只有 浏览/点赞/评论 三项,加了「分享」「生成海报」之后
 *   5 项横向排会把文字挤成竖排(实测「生成海报」被压成一列单字)→ 允许换行。 */
.tang_post_stats {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 28px;
    padding: 16px 0 8px;
    border-top: 1px solid #eff3f8;
    border-bottom: 1px solid #eff3f8;
    margin: 8px 0 20px;
}
.tang_post_stat_item { white-space: nowrap; }
.tang_post_share_btns { display: flex; gap: 6px; }
.tang_post_stat_item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: #5a6e8c;
}
.tang_post_like_btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: transparent;
    border: none;
    font-size: 15px;
    font-weight: 500;
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 40px;
    transition: 0.2s;
}
.tang_post_like_btn.active {
    color: #ef4444;
}

/* 评论区 */
.comment-tree {
    list-style: none;
    margin: 0;
    padding: 0;
    background: white;
    border-radius: 8px;
    padding: 20px;
    border: 1px solid #eef2f8;
}
.comment-item {
    margin-bottom: 20px;
}
.comment-main {
    display: flex;
    gap: 12px;
}
.comment-avatar {
    /* 同上:<a> 要 flex:none,否则 flex 布局里会被压扁 */
    flex: none;
    text-decoration: none;
    width: 36px;
    height: 36px;
    background: #f1f5f9;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 14px;
    flex-shrink: 0;
}
.comment-avatar img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
}
.comment-body {
    flex: 1;
}
.comment-name {
    font-weight: 600;
    font-size: 14px;
    color: #0f1825;
}
.comment-time {
    font-size: 10px;
    color: #94a3b8;
    margin-left: 8px;
}
.comment-text {
    font-size: 14px;
    color: #334155;
    margin-top: 4px;
    line-height: 1.4;
}
.comment-actions {
    margin-top: 6px;
    display: flex;
    gap: 16px;
    font-size: 12px;
    color: #8192aa;
}
.comment-like-btn, .comment-reply-btn, .comment-del-btn {
    cursor: pointer;
}
.reply-input-area {
    margin-top: 12px;
    margin-left: 48px;
    display: flex;
    gap: 8px;
    align-items: center;
}
.reply-input {
    flex: 1;
    background: #f8fafd;
    border: 1px solid #e2e8f0;
    border-radius: 40px;
    padding: 8px 16px;
    font-size: 13px;
    outline: none;
}
.reply-submit {
    background: #6c5ce7;
    border: none;
    border-radius: 40px;
    padding: 6px 18px;
    color: white;
    font-weight: 600;
    font-size: 12px;
    cursor: pointer;
}
.reply-submit:active {
    transform: scale(0.96);
}
/* 嵌套回复缩进样式 */
.comment-replies {
    margin-left: 48px;
    margin-top: 12px;
    padding-left: 12px;
    border-left: 2px solid #eef2f8;
}
.comment-replies .comment-item {
    margin-bottom: 12px;
}
.empty_comments {
    text-align: center;
    padding: 40px 20px;
    color: #94a3b8;
}
.tang_post_comment_title {
    font-weight: 700;
    font-size: 18px;
    margin-bottom: 18px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.tang_post_comment_input_wrap {
    display: flex;
    gap: 12px;
    margin-bottom: 24px;
    align-items: flex-start;
    position: relative;
}
.tang_post_comment_input_wrap_fill {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}   
@media (min-width: 768px) {
    .tang_post_comment_input_wrap_fill {
        display: none;
    }
}

.tang_post_comment_avatar_small {
    width: 40px;
    height: 40px;
    background: #eef2ff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
}
.tang_post_comment_field {
    flex: 1;
    background: #f8fafd;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 12px 18px;
    font-size: 14px;
    outline: none;
    transition: 0.2s;
    font-family: inherit;
    resize: vertical;
}
.tang_post_comment_field:focus {
    border-color: #6c5ce7;
    background: white;
}
.tang_post_comment_submit {
    background: #6c5ce7;
    border: none;
    border-radius: 40px;
    padding: 0 20px;
    height: 44px;
    font-weight: 600;
    color: white;
    cursor: pointer;
}
.tang_post_pic {
    max-width: 600px;
    margin: 15px auto;
    text-align: center;
}
.tang_post_pic img {
    max-width: 100%;
}
@media (max-width: 480px) {
    body {
        padding:0;
        background: #ffffff;
    }
    .tang_post_stats { gap: 10px 16px; }
    .tang_post_stat_item { font-size: 13px; }
    .tang_post_share_btns { gap: 4px; }
    .tang_post_like_btn { font-size: 13px; padding: 2px 4px; }
    .tang_post_title {
        font-size: 20px;
    }
    .tang_post_img_item {
        width: 85px;
        height: 85px;
    }
    .tang_post_comment_field {
        padding: 10px 14px;
    }
    .xinyue_container{
        padding:16px;
    }
}

/* 「已从装机圈移除」提示条(仅作者/管理员可见,visibility=0/遗留 status=5) */
.zjt-unpub-bar{
    display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
    background:#fffbeb;border:1px solid #fde68a;border-radius:12px;
    padding:11px 16px;margin-bottom:14px;
}
.zjt-unpub-bar .tx{display:flex;flex-direction:column;gap:2px;min-width:0}
.zjt-unpub-bar .tx b{font-size:13.5px;color:#92400e}
.zjt-unpub-bar .tx span{font-size:12px;color:#a16207;line-height:1.6}
.zjt-unpub-pub{
    border:none;cursor:pointer;flex:0 0 auto;
    background:#6c5ce7;color:#fff;font-weight:700;font-size:12.5px;
    border-radius:20px;padding:8px 18px;transition:background .2s;
}
.zjt-unpub-pub:hover{background:#5b4bcf}

/* 「装机堂性能推导」大框(2026-10-30 用户从四版设计稿选 V4 渐变头卡):
 * 把「站内实测成绩」墙和「游戏实测结论」卡圈进同一块,框头统一注明
 * 「非本配置实测跑分」—— 内部模块就不用各自再说一遍免责话。
 * 框由 view.html 渲染(哪个模块先有数据谁开框),CSS 放这份页面的内联样式里,
 * 不能塞进两个碎片 —— 只出其中一个模块时框也得有样式。 */
.perf-zone{margin:16px 0 4px;border-radius:16px;overflow:hidden;border:1px solid #e9edf4;background:#fff;box-shadow:0 4px 18px rgba(15,24,37,.05)}
.perf-zone-hd{background:linear-gradient(100deg,#5b4bcf 0%,#6c5ce7 45%,#10b981 130%);color:#fff;padding:12px 18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.perf-zone-hd .t{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:800;white-space:nowrap}
.perf-zone-hd .note{font-size:11.5px;color:rgba(255,255,255,.85);line-height:1.6;flex:1;min-width:220px}
.perf-zone-bd{padding:2px 18px 12px}
@media (max-width:640px){
    .perf-zone{border-radius:12px}
    .perf-zone-hd{padding:11px 13px}
    .perf-zone-hd .t{font-size:13.5px}
    .perf-zone-bd{padding:2px 12px 10px}
}

