
/* ========== 强化配置清单 - 每一行清晰展示 ========== */
.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;
}
/* 兼容要点标签(2026-11-12):
 *   型号名下面一排胶囊(CPU 接口 / 主板版型 / 芯片组 / 内存 CL 时序 / 硬盘接口…)。
 *   ⚠ 样式跟装机页(.zj-sel-tags i)一致 —— 白底、4px 圆角、11px、灰字。
 *   站主要求「和装机页的标签显示一样的」。 */
.config-main {
    flex: 1;
    min-width: 0;   /* flex 子项默认 min-width:auto,长型号名会把这一列撑爆 */
    display: flex;
    gap: 10px;
    align-items: center;
}
/* 封面图框(2026-11-12):42×42,样式抄装机页 .zj-sel-img —— 品牌字打底,图叠在上面,
 * onerror 摘掉图露出品牌字。没查到图的件只显示品牌字,行高不塌。 */
.config-pic {
    position: relative;
    overflow: hidden;
    width: 42px;
    height: 42px;
    border-radius: 8px;
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
    color: #7b8aa3;
    background: linear-gradient(140deg, #e8eefb, #c3d4ef);
}
.config-pic > span {
    position: relative;
    z-index: 1;
    width: 100%;
    text-align: center;
}
.config-pic > img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    z-index: 2;
    background: #fff;
}
/* 名字 + 标签列(包一层才能跟图并排) */
.config-txt {
    flex: 1;
    min-width: 0;
}
.config-specs {
    display: flex;
    gap: 5px;
    margin-top: 4px;
    flex-wrap: wrap;
}
.config-spec {
    font-size: 11px;
    line-height: 1.5;
    color: #77839a;
    background: #fff;
    border-radius: 4px;
    padding: 1px 5px;
    white-space: nowrap;
}
/* 字段名(如「CPU 接口: AM5」)走 title 悬停提示,不占正文宽度 ——
 * 装机页那边就是纯值胶囊,这边保持一致。 */

.config-name {
    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;
}
/* 型号名链接(2026-11-11):点型号跳产品页。
 * ⚠ 样式跟着站内主色走,别自造颜色 —— 型号名本来是正文色(#1e293b),
 *   链接态用主色 + 下划线,一眼看得出能点,但不喧宾夺主。 */
.config-name-link {
    color: #1e293b;
    text-decoration: none;
    border-bottom: 1px solid #d9d4ff;
    transition: color .15s, border-color .15s;
}
.config-name-link:hover {
    color: #5b4bc4;
    border-bottom-color: #6c5ce7;
}
.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;
}

/* ==========================================================================
 *  详情页 · 「单据版式」(2026-11-13 站主选定丙版,桌面+手机同一套)
 * --------------------------------------------------------------------------
 *  结构:单据头(品牌/标题/合计大字) → 每件一行
 *        行内:图 | 「部件名 · 参数…」+ 型号名 | 价格
 *  为什么:
 *    手机 390px 下「90px 类型列 + 图 + 名字 + 价格」挤成一团(站主截图报障);
 *    把类型列去掉、和参数并成一行小字,型号名独占一行,价格靠右 —— 省一整列宽度。
 *    2026-11-13 站主:「电脑版也用刚才那样的样式」→ 桌面同样口径,只是字号/图更大。
 *  口径:
 *    · **只作用于详情页** .config-list-detail,装机圈列表页(/q/)不动;
 *    · 桌面用本段默认值,≤768px 用文末的断点覆盖(字号/间距收一档)。
 * ========================================================================== */

/* 手机端专用元素:默认藏,详情页里再打开(列表页既不输出这些节点,也没有 detail 类) */
.config-doc { display: none; }
.config-meta { display: none; }

/* ---- 整块:一张浅紫单据卡 ---- */
.config-list-detail {
  background: #f8f8fd;
  border-radius: 18px;
  padding: 14px 16px 6px;
  margin: 12px 0 12px;
}

/* ---- 单据头 ---- */
.config-list-detail .config-doc { display: block; }
.config-list-detail .cd-brand { display: flex; align-items: center; gap: 7px; margin-bottom: 10px; }
.config-list-detail .cd-mark {
  width: 22px; height: 22px; border-radius: 6px;
  background: linear-gradient(135deg, #7b6cf0, #5b4bcf);
  color: #fff; font-size: 11px; font-weight: 800;
  display: flex; align-items: center; justify-content: center; flex: none;
}
.config-list-detail .cd-nm { font-size: 13px; font-weight: 800; color: #6c5ce7; letter-spacing: .4px; }
.config-list-detail .cd-tag { margin-left: auto; font-size: 11.5px; color: #9aa5b8; }
.config-list-detail .cd-title {
  font-size: 19px; font-weight: 800; line-height: 1.35; color: #14203a;
  letter-spacing: -.2px; margin-bottom: 10px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.config-list-detail .cd-sum {
  display: flex; align-items: flex-end; justify-content: space-between;
  padding-bottom: 10px; border-bottom: 1px solid #e6e9f2; margin-bottom: 2px;
}
.config-list-detail .cd-k { display: block; font-size: 11.5px; color: #9aa5b8; margin-bottom: 0; }
.config-list-detail .cd-v {
  display: block; font-size: 28px; font-weight: 800; color: #e33a3a;
  letter-spacing: -.8px; line-height: 1.1; font-variant-numeric: tabular-nums;
}
.config-list-detail .cd-c { font-size: 11.5px; color: #9aa5b8; padding-bottom: 4px; }

/* ---- 行:图 | (部件名·参数 + 型号) | 价格 ---- */
.config-list-detail .config-type { display: none; }
.config-list-detail .config-item {
  align-items: flex-start;
  padding: 10px 0;
  border-bottom: 1px solid #eef0f7;
}
.config-list-detail .config-item:last-child { border-bottom: none; }
.config-list-detail .config-main { gap: 11px; align-items: flex-start; }
.config-list-detail .config-pic { width: 38px; height: 38px; border-radius: 8px; }

.config-list-detail .config-meta {
  display: flex; align-items: baseline; gap: 5px;
  font-size: 11.5px; line-height: 1.4; min-width: 0;
}
.config-list-detail .config-meta b { flex: none; font-weight: 700; color: #8b97ac; }
.config-list-detail .config-meta i { flex: none; font-style: normal; color: #ccd3e0; }
/* 每个参数一个 span(2026-11-13):容器 flex-wrap,折行以「参数」为单位 ——
 * 机箱行(ATX · 显卡限长390mm · 散热限高160mm · 49.4L)在 390 宽会折成两行,
 * 但不会把「散热限高160mm」从中间拆开,也不会再拿省略号把 49.4L 吞掉。 */
.config-list-detail .config-meta { flex-wrap: wrap; }
.config-list-detail .config-meta span {
  flex: none; min-width: 0; font-size: 11px; color: #aab4c4;
  white-space: nowrap;
}

.config-list-detail .config-name {
  display: block;
  font-size: 14px; font-weight: 700; line-height: 1.45; color: #14203a;
  margin-top: 1px;
  /* 2026-11-13 站主:型号名允许换行,别再拿省略号砍成「B550M-P...」。
   * ⚠ 用 break-word 而不是 anywhere —— anywhere 会把 GAMING 拆成 GAMI/NG、DDR5 拆成 D/DR5 */
  overflow: visible; text-overflow: clip; white-space: normal;
  word-break: normal;
  -webkit-line-clamp: unset;
  overflow-wrap: break-word;
}
/* 参数已上移到 meta 行,名字下的胶囊收起 */
.config-list-detail .config-specs { display: none; }
.config-list-detail .config-name-link { border-bottom: none; }

.config-list-detail .config-price-wrap { margin-left: 12px; padding-top: 14px; }
.config-list-detail .config-price {
  font-size: 14px; font-weight: 800; color: #e33a3a;
  font-variant-numeric: tabular-nums;
}
.config-list-detail .config-price-none { font-size: 12px; color: #a6b0c2; }
.config-list-detail .config-buy { font-size: 10px; color: #e33a3a; opacity: .85; }

/* 合计已在大字里,底部总价行收掉 */
.config-list-detail .total-row { display: none; }
.config-list-detail .config-total-note { display: none; }

/* ---- ≤768px:字号/间距收一档,图缩到 42 ---- */
@media (max-width: 768px) {
  /* 2026-11-13 站主:「手机这个模块字还是有点大」→ 手机端整体再收一档
   * 标题 22→18 / 合计 34→28 / 品牌名 15→14 / 参数 12→11 / 型号名 14 / 单价 15→14 */
  .config-list-detail { border-radius: 20px; padding: 15px 14px 6px; margin: 8px 0 10px; }
  .config-list-detail .cd-brand { gap: 7px; margin-bottom: 12px; }
  .config-list-detail .cd-mark { width: 24px; height: 24px; border-radius: 7px; font-size: 12px; }
  .config-list-detail .cd-nm { font-size: 14px; }
  .config-list-detail .cd-tag { font-size: 11px; }
  .config-list-detail .cd-title { font-size: 18px; margin-bottom: 11px; }
  .config-list-detail .cd-k { font-size: 11px; }
  .config-list-detail .cd-v { font-size: 22px; letter-spacing: -1px; }
  .config-list-detail .cd-c { font-size: 11px; padding-bottom: 6px; }
  .config-list-detail .config-item { padding: 10px 0; }
  .config-list-detail .config-main { gap: 11px; }
  .config-list-detail .config-pic { width: 42px; height: 42px; border-radius: 9px; }
  .config-list-detail .config-meta { font-size: 11px; }
  .config-list-detail .config-meta span { font-size: 10.5px; }
  .config-list-detail .config-name { font-size: 14px; margin-top: 1px; }
  .config-list-detail .config-price-wrap { margin-left: 9px; padding-top: 15px; }
  .config-list-detail .config-price { font-size: 14px; }
  .config-list-detail .config-buy { font-size: 10px; }
}

/* 站主指定(2026-11-13):单价不再下沉对齐型号名,改为贴行顶(和「部件名 · 参数」同一条基线)。
 * 放最后做覆盖,桌面/手机都生效。 */
.config-list-detail .config-price-wrap {
  padding-top: 0;
}

/* ---- 「生成分享海报」按钮(2026-11-13 站主在四版里拍板「甲 · 品牌行右端描边胶囊」)----
 * 位置:单据头品牌行最右端,紧跟「装机配置」标签。
 * ⚠ 图标是内联 SVG(图片框+山形+太阳),不用 emoji —— 字体符号跨设备显示不一致。
 * ⚠ 只在详情页(.config-list-detail)出;列表页 /q/ 和用户主页的卡片没有这个按钮。
 * ⚠ 点击事件不在这里绑:thread.php 是公共渲染器,事件用委托在 q/view.html 里接
 *   (那边才有 ZJTShare / ZJT_SHARE_DATA)。 */
.config-list-detail .cd-poster {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  flex: none;
  font-family: inherit;
  line-height: 1;
  cursor: pointer;
  background: none;
  border: 0;
  padding: 0;
}
.config-list-detail .cd-poster .cd-pic {
  width: 1em; height: 1em; flex: none; display: block;
}
/* 甲版:白底紫字描边胶囊 */
.config-list-detail .cd-poster--pill {
  margin-left: 10px;
  padding: 5px 10px 5px 8px;
  font-size: 11.5px;
  font-weight: 700;
  color: #5b4bcf;
  background: #fff;
  border: 1px solid #ded9fb;
  border-radius: 999px;
}
.config-list-detail .cd-poster--pill:hover {
  border-color: #6c5ce7;
  background: #f6f4ff;
}
@media (max-width: 768px) {
  .config-list-detail .cd-poster--pill {
    font-size: 11px; padding: 4px 9px 4px 7px; margin-left: 8px;
  }
}

/* 「⋯」更多(2026-11-13):跟「生成海报」胶囊并排的圆钮,点开弹气泡菜单。
 * 气泡本体不在这里 —— 详情页专属,样式在 q/common/share.css 的 .zjs-menu。
 * 图标是内联 SVG(三个圆点),别换成「⋯」字符。
 * ⚠ 列表页/用户主页也调 thread.php,但 ⋯ 只在 $to_item 时输出,不会漏到卡片上。 */
.config-list-detail .cd-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 24px; height: 24px;
  margin-left: 6px;
  padding: 0;
  background: #fff;
  border: 1px solid #ded9fb;
  border-radius: 50%;
  color: #5b4bcf;
  cursor: pointer;
  font-family: inherit;
  transition: .15s;
}
.config-list-detail .cd-more svg { width: 14px; height: 14px; display: block; }
.config-list-detail .cd-more:hover,
.config-list-detail .cd-more[aria-expanded="true"] {
  background: #f6f4ff;
  border-color: #bfb2f7;
}
@media (max-width: 768px) {
  .config-list-detail .cd-more { width: 22px; height: 22px; margin-left: 5px; }
  .config-list-detail .cd-more svg { width: 13px; height: 13px; }
}
/* ===================== 装机圈 · 分享面板 / 配置海报 =====================
 * 列表页(/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; }

/* ---------- 气泡菜单(2026-11-13) ----------
 * 站主照小红书那张图定的:点「⋯」/「分享」在按钮旁边弹一小块白气泡,
 * 不遮全屏、没有标题栏,行=图标+文字,分隔线下面是红色删除。
 * ⚠ 定位走 position:fixed,top/left/箭头位置都由 q/view.html 的 JS 现算
 *   (锚点可能在单据头,也可能在底部互动栏,不能写死)。
 * ⚠ z-index 9998:要压过全页水印(body::before 是 101),但低于海报弹窗 9999。 */
.zjs-menu {
    position: fixed; z-index: 9998;
    width: 186px; padding: 6px;
    background: #fff; border-radius: 16px;
    box-shadow: 0 14px 40px rgba(15, 30, 47, .18), 0 0 0 1px rgba(15, 30, 47, .05);
    animation: zjsMenuIn .13s ease-out;
}
.zjs-menu[hidden] { display: none; }
@keyframes zjsMenuIn { from { opacity: 0; transform: translateY(-3px) scale(.98); } to { opacity: 1; transform: none; } }
.zjs-menu::after {
    content: ""; position: absolute; width: 11px; height: 11px; background: #fff;
    transform: rotate(45deg); border-radius: 2px;
    left: var(--zjs-arrow-x, 152px);
}
.zjs-menu.down::after { top: -5px; box-shadow: -1px -1px 1px rgba(15, 30, 47, .05); }
.zjs-menu.up::after { bottom: -5px; box-shadow: 1px 1px 1px rgba(15, 30, 47, .05); }
.zjs-menu-row {
    display: flex; align-items: center; gap: 10px; width: 100%;
    background: none; border: 0; border-radius: 10px; padding: 11px;
    font-family: inherit; font-size: 14px; font-weight: 600; color: #22304a;
    cursor: pointer; text-align: left; line-height: 1.2;
}
.zjs-menu-row svg { width: 16px; height: 16px; flex: none; opacity: .78; }
.zjs-menu-row:hover { background: #f6f5ff; }
.zjs-menu-row.danger { color: #e03131; }
.zjs-menu-row.danger:hover { background: #fff5f5; }
.zjs-menu-sep { height: 1px; background: #f0f2f7; margin: 5px 9px; }

@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;
}
/* v2 配置单:标题已由配置单的 .config-doc 单据头输出(桌面+手机同一套),
 * 这里藏掉页面自己这行,避免同一句标题出现两次(2026-11-13) */
.tang_post_title.title-in-doc { display: none; }
.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;
}

/* 互动栏·四图标版(2026-11-13 站主照图定稿:♡ ☆ 💬 ↗ + 灰色数字)
 * ⚠ 选择器都带 .zjt-s4 前缀:下面 @media(max-width:480px) 里还有一条
 *   .tang_post_stats{gap:10px 16px} 的老规则,不带前缀会被它盖掉。 */
.tang_post_stats.zjt-s4 {
    gap: 34px;
    padding: 13px 2px;
    align-items: center;
    /* 2026-11-13:底下这块原来空得离谱 —— 行自己 margin-bottom 20 + 卡片 padding-bottom 24 = 45px 白,
     * 站主圈出来「空隙太大」;改成 0 之后还剩卡片那 24px,他仍然嫌大 → 负 margin 抵掉 14px,
     * 线上留 ~10px。⚠ 别去动 .tang_post_card 的 padding:那是全站帖子卡的公共值。 */
    margin: 8px 0 -14px;
}
.zjt-s4-btn {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    background: none;
    border: 0;
    padding: 2px 0;
    cursor: pointer;
    font-family: inherit;
    color: #2b3240;
    transition: color .15s;
}
.zjt-s4-btn svg { width: 26px; height: 26px; display: block; flex: none; }
.zjt-s4-btn .zjt-s4-n {
    font-size: 15px;
    font-weight: 500;
    color: #9aa3b2;
    line-height: 1;
    min-width: 10px;
    transition: color .15s;
}
.zjt-s4-btn:hover, .zjt-s4-btn:hover .zjt-s4-n { color: #5b4bcf; }
/* 点过的状态:心/星实心高亮(沿用手机底部栏的红/橙口径) */
.zjt-s4-like.active, .zjt-s4-like.active .zjt-s4-n { color: #ef4444; }
.zjt-s4-like.active svg { fill: #ef4444; stroke: #ef4444; }
.zjt-s4-fav.active, .zjt-s4-fav.active .zjt-s4-n { color: #ff9800; }
.zjt-s4-fav.active svg { fill: #ff9800; stroke: #ff9800; }
@media (max-width: 480px) {
    .tang_post_stats.zjt-s4 { gap: 26px; padding: 11px 0; }
    .zjt-s4-btn svg { width: 23px; height: 23px; }
    .zjt-s4-btn .zjt-s4-n { font-size: 14px; }
}

/* 评论区 */
.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;
    }
    .tang_post_nav {
        display: none;
    }
    .tang_post_card {
        margin-bottom: 8px;
        /* 2026-11-13 站主指定:≤480 卡片内边距收到 16/12,给配置单让出横向空间 */
        padding: 16px 12px;
    }
    .q-rail {
        display: none;
    }

}

/* 「已从装机圈移除」提示条(仅作者/管理员可见,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 放这份页面的内联样式里,
 * 不能塞进两个碎片 —— 只出其中一个模块时框也得有样式。 */
/* ---- 装机堂性能推导(2026-11-13 站主选定丙版) ----
 * 位置:帖子卡与评论区之间;一条渐变头常驻,点右侧「收起」只留头(默认展开)。
 * ⚠ 原来 .perf-zone 那套(卡在帖子内容区)已废弃,别再往回加。 */
.perf-fold2{margin:12px 0;border:1px solid #e9edf4;border-radius:14px;background:#fff;
    box-shadow:0 4px 18px rgba(15,24,37,.05);overflow:hidden}
.perf-fold2 .pf2-hd{display:flex;align-items:center;gap:10px;padding:11px 16px;cursor:pointer;
    background:linear-gradient(100deg,#5b4bcf 0%,#6c5ce7 45%,#10b981 130%);color:#fff;
    border:0;width:100%;font-family:inherit;text-align:left}
.perf-fold2 .pf2-t{font-size:14px;font-weight:800;white-space:nowrap}
.perf-fold2 .pf2-note{font-size:11.5px;color:rgba(255,255,255,.85);flex:1;min-width:0;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.perf-fold2 .pf2-btn{font-size:11.5px;font-weight:700;background:rgba(255,255,255,.2);
    border-radius:999px;padding:4px 10px;white-space:nowrap;flex:none}
.perf-fold2 .pf2-bd{padding:0 20px 12px}
.perf-fold2 .pf2-bd[hidden]{display:none}
@media (max-width:640px){
    /* 2026-11-13 站主:手机上收窄边距、去描边,块更像"嵌在中间的一条" */
    .perf-fold2{border-radius:8px;margin:8px 8px;border:0}
    .perf-fold2 .pf2-hd{padding:10px 13px;gap:8px}
    .perf-fold2 .pf2-t{font-size:13.5px}
    .perf-fold2 .pf2-bd{padding:0 14px 10px}
}

