@charset "UTF-8";
/* ==========================================================================
   独立论坛（BBS）· 页面族样式（2026-10-01）
   --------------------------------------------------------------------------
   作用域：所有规则都挂在 `.forum-page` 下（body class）。
   加载顺序：polish.css **之后**（见 templates/forum.tpl.html 的注释）——
   论坛要盖住的是"内页通用列表样式"，而 polish.css 正是内页末层。

   【本项目 CSS 硬约定，改这里必须遵守】
     · 禁用 var() / :has() / :is() / :where() / inset / gap / clamp() /
       grid / aspect-ratio / mix-blend-mode —— 目标机内核不支持。
     · 颜色一律**字面值**；渐变带 -webkit- 前缀。
     · 布局用 flex 或 inline-block+vertical-align（间隔用 margin，不用 gap）。
     · 关键帧只动 transform / opacity（本文件没有动画，只有过渡）。
     · calc() 可用。

   【配色】与全站一致（取自 legend.css / official.css 的主色，不新增色系）：
     底 #0a0705 / 面 #14100b · #171009 / 线 #2e2113 · #6d5420
     金 #8a6a24 → #d8b463 → #f2d68f → #ffe9a8
     字 #c4aa79 / #a68d5f / #9c8c6e
     红 #a41610（置顶/警示）
   ========================================================================== */

/* ==========================================================================
   1. 页头（与 news-head / job-hero 同构：通栏色带 + 底部金发丝线 + 居中三行字）
   ========================================================================== */
.forum-page .forum-head {
    padding: 52px 20px 34px;
    margin: 0;
    text-align: center;
    background-color: #0d0906;
    background-image: -webkit-linear-gradient(top, #171009 0%, #0c0806 100%);
    background-image: linear-gradient(180deg, #171009 0%, #0c0806 100%);
    border-bottom: 1px solid #5a431f;
}
.forum-page .forum-head-inner {
    max-width: 1240px;
    margin: 0 auto;
    padding-left: 24px;
    padding-right: 24px;
}
.forum-page .forum-kicker {
    margin: 0 0 14px;
    font-size: 12px;
    letter-spacing: 5px;
    color: #9c8c6e;
}
.forum-page .forum-title {
    margin: 0 0 16px;
    font-size: 42px;
    font-weight: normal;
    letter-spacing: 10px;
    color: #f2d68f;
    text-shadow: 0 2px 6px rgba(0, 0, 0, .9), 0 0 34px rgba(226, 185, 92, .28);
}
.forum-page .forum-sub {
    margin: 0;
    font-size: 14px;
    letter-spacing: 3px;
    color: #a68d5f;
}

/* ==========================================================================
   2. 主体容器
   ========================================================================== */
.forum-page .forum-section {
    padding: 34px 20px 64px;
    background-color: #0a0705;
}
.forum-page .forum-body {
    max-width: 1240px;
    margin: 0 auto;
    padding-left: 24px;
    padding-right: 24px;
}

/* ==========================================================================
   3. 公告条 / 统计行
   ========================================================================== */
.forum-page .forum-notice {
    position: relative;
    margin: 0 0 18px;
    padding: 11px 16px 11px 38px;
    font-size: 13.5px;
    line-height: 1.7;
    color: #cbb27c;
    background-color: #14100b;
    border: 1px solid #3a2a12;
    border-left: 3px solid #8a6a24;
    border-radius: 3px;
}
.forum-page .forum-notice-dot {
    position: absolute;
    left: 16px;
    top: 16px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background-color: #e0b95c;
    box-shadow: 0 0 8px rgba(224, 185, 92, .8);
}
.forum-page .forum-summary {
    margin: 0 0 22px;
    padding: 12px 16px;
    font-size: 13px;
    color: #a68d5f;
    background-color: #100b07;
    border: 1px solid #2e2113;
    border-radius: 3px;
}
.forum-page .forum-summary-item {
    display: inline-block;
    margin-right: 22px;
}
.forum-page .forum-summary-item b {
    color: #f2d68f;
    font-weight: normal;
    font-size: 15px;
    margin-left: 3px;
}

/* ==========================================================================
   4. 分区 + 版块列表（对齐原站 forum.php 的版块行：图标｜名称+简介｜主题/回复｜最后发表）
   ========================================================================== */
.forum-page .forum-group {
    margin-bottom: 26px;
    border: 1px solid #2e2113;
    border-radius: 3px;
    overflow: hidden;
    background-color: #100b07;
}
/* 分区标题条：折叠开关 | 分区名 | 右侧「分区版主」
   ★ 用 flex 而不是 float:right —— 分区名可能很长，float 布局下名字会挤到
     右侧的版主文字里去（本项目首页三栏踩过同一类坑：空间不够时优先挤文字）。
     flex + min-width:0 才能让左边那一格真的会缩。 */
.forum-page .forum-group-head {
    padding: 0 16px;
    background-color: #170f09;
    border-bottom: 1px solid #3a2a12;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.forum-page .forum-group-toggle {
    width: 16px;
    height: 16px;
    line-height: 14px;
    text-align: center;
    margin-right: 10px;
    font-size: 13px;
    font-style: normal;
    color: #9c8c6e;
    background-color: #241a0f;
    border: 1px solid #4a3418;
    border-radius: 2px;
    cursor: pointer;
    -webkit-user-select: none;
    user-select: none;
}
.forum-page .forum-group-toggle:hover {
    color: #ffe9a8;
    border-color: #8a6a24;
}
.forum-page .forum-group-title {
    margin: 0;
    padding: 13px 0;
    font-size: 16px;
    font-weight: normal;
    letter-spacing: 2px;
    color: #f2d68f;
    text-shadow: 0 1px 3px rgba(0, 0, 0, .8);
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.forum-page .forum-group-title a {
    color: #f2d68f;
    text-decoration: none;
}
.forum-page .forum-group-mod {
    margin-left: 12px;
    font-size: 12px;
    color: #8d7a58;
    white-space: nowrap;
}
/* 收起来的分区：body 整体隐藏（开关上的 − / + 由 js/forum.js 换） */
.forum-page .forum-group-body.is-hidden {
    display: none;
}
.forum-page .forum-board-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}
.forum-page .forum-board-row {
    border-top: 1px solid #241a0f;
}
.forum-page .forum-board-row:first-child {
    border-top: 0;
}
.forum-page .forum-board-row:hover {
    background-color: #161009;
}
/* 图标格：64px 固定宽。
   ★ 宽 84px 是为了同时容下 52×52 的色块与「有自定义图片时」的图
     （图片按 52×52 + object-fit:cover 铺满同一块位置，两种形态格子一样宽）。 */
.forum-page .forum-td-icon {
    width: 84px;
    padding: 16px 0 16px 16px;
    vertical-align: middle;
}
.forum-page .forum-board-icon {
    display: inline-block;
    width: 52px;
    height: 52px;
    line-height: 52px;
    text-align: center;
    font-size: 17px;
    letter-spacing: 1px;
    color: #ffe9a8;
    background-color: #6d1a12;
    background-image: -webkit-linear-gradient(top, #8a2318 0%, #521009 100%);
    background-image: linear-gradient(180deg, #8a2318 0%, #521009 100%);
    border: 1px solid #8a6a24;
    border-radius: 3px;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .8);
    box-shadow: inset 0 1px 0 rgba(255, 233, 168, .22);
}
/* 自定义版块图片（后台「论坛管理」里传的 + images/forum/board/ 里预置的 7 张）。
   ★★ 下面三条改动都是**实测逼出来的**，不是想出来的（第 158 轮）：

   ① object-fit:cover → contain。
      cover 会**裁掉**非方图的边。这 7 张预置图标是 128×128 方图（内容居中、
      四周留透明边距给金色发光），cover 对它们没有影响；但站长自己传一张横图时
      cover 会把两边切掉。contain 是"整图放得下、不裁"。
   ② border #4a3418 → #6d5420，并补上托座渐变。
      原图是**实心白底**的位图，抠底后才透明 —— 而透明 PNG 落在深色页面上
      **必须有依托**：那把黑金剑、那个黑瓦屋顶，没有托座会直接糊进背景。
      托座取与 .forum-board-icon **同族的暗红金**，有图/无图两种形态才统一。
   ③ 内阴影 + 外发光沿用全站光晕语言（同 .forum-title 的 rgba(226,185,92,…)
      与 .forum-board-icon 的 inset 高光），不新增色系。
   ★ background-repeat/size 显式写死：本项目血案 —— 前层给所有背景层定死过
     background-size，新增背景层若不自己写一遍，会被前层的值静默接管。 */
.forum-page .forum-board-img {
    display: inline-block;
    width: 52px;
    height: 52px;
    vertical-align: middle;
    object-fit: contain;
    border: 1px solid #6d5420;
    border-radius: 3px;
    background-color: #3a1008;
    background-image: -webkit-linear-gradient(top, #4a150c 0%, #240a05 100%);
    background-image: linear-gradient(180deg, #4a150c 0%, #240a05 100%);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    box-shadow: inset 0 1px 0 rgba(255, 233, 168, .16),
                0 0 12px rgba(226, 185, 92, .18);
}
.forum-page .forum-td-main {
    padding: 16px 12px;
    vertical-align: middle;
}
.forum-page .forum-board-name {
    display: inline-block;
    font-size: 16px;
    letter-spacing: 1px;
    color: #e8c987;
    text-decoration: none;
}
.forum-page .forum-board-name:hover {
    color: #ffe9a8;
}
.forum-page .forum-board-intro {
    margin: 6px 0 0;
    font-size: 12.5px;
    line-height: 1.6;
    color: #8d7a58;
}
/* 版块版主（表里的 moderators 列，后台可改） */
.forum-page .forum-board-mods {
    margin: 5px 0 0;
    font-size: 12px;
    line-height: 1.6;
    color: #7d8f6a;
}
.forum-page .forum-board-row.is-readonly .forum-board-name {
    color: #a08a5f;
}
/* 数值格：主题 / 帖数（原站 `td.fl_i` 里就是 `17 / 18` 这种一格两数）
   ★ 帖数 = 主题数 + 回复数，与 Discuz 的 forum.posts 同口径 ——
     原站首页「17 / 18」「7 / 8」两组数据都印证了这一点。 */
.forum-page .forum-td-posts {
    width: 92px;
    padding: 16px 6px;
    text-align: center;
    vertical-align: middle;
    font-size: 13px;
    color: #7d6c4e;
}
.forum-page .forum-td-posts b {
    font-size: 16px;
    font-weight: normal;
    color: #d8b463;
}
.forum-page .forum-td-posts i {
    margin: 0 3px;
    font-style: normal;
    color: #5d5038;
}
/* 最后发表格 */
.forum-page .forum-td-last {
    width: 200px;
    padding: 16px 16px 16px 6px;
    vertical-align: middle;
    font-size: 12px;
    line-height: 1.6;
}
.forum-page .forum-last-title {
    display: block;
    color: #c4aa79;
    text-decoration: none;
    /* 单行截断：列表页那一格只有 200px，长标题必须裁 */
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.forum-page .forum-last-title:hover {
    color: #ffe9a8;
}
.forum-page .forum-last-meta {
    display: block;
    margin-top: 4px;
    color: #7d6c4e;
}
.forum-page .forum-last-empty {
    color: #6b5c42;
}

/* --------------------------------------------------------------------------
   4.2 版块表的**网格排版**（后台「首页版式」里指定哪些分区用它）
       一行 N 格，每格：图标 + 版块名（+版主）+「主题: N, 帖子: M」+「最后发表: 时间」
   -------------------------------------------------------------------------- */
.forum-page .forum-board-table.is-grid {
    table-layout: fixed;
}
.forum-page .forum-grid-row {
    border-top: 1px solid #241a0f;
}
.forum-page .forum-grid-row:first-child {
    border-top: 0;
}
/* 每行几格由类名决定（后台「首页版式」里可调）。
   ★ 百分比按原站算法：floor(100/N) - 0.1，剩下的那点留给表格边框，
     写满 100% 反而会因亚像素舍入把最后一格挤到下一行。 */
.forum-page .forum-board-table.cols-2 .forum-gcell { width: 49.9%; }
.forum-page .forum-board-table.cols-3 .forum-gcell { width: 33.2%; }
.forum-page .forum-board-table.cols-4 .forum-gcell { width: 24.9%; }
.forum-page .forum-gcell {
    padding: 14px 12px;
    vertical-align: top;
    /* ★ 两格之间用 border-left 画分隔线，而不是 border-right ——
       用 right 的话每行最后一格右边会多一条线，贴着分区外框看起来像双线。 */
    border-left: 1px solid #241a0f;
}
.forum-page .forum-gcell:first-child {
    border-left: 0;
}
.forum-page .forum-gcell.is-pad {
    /* 补位空格子：没有任何内容，也不画左边线（否则一排空格子会拖出竖线） */
    border-left: 0;
    background-color: #0e0906;
}
.forum-page .forum-gcell-icon {
    width: 56px;
    height: 52px;
    float: left;
}
.forum-page .forum-gcell-main {
    /* ★ 用 margin-left 让文字避开浮动的图标格，而不是 overflow:hidden 建 BFC ——
       overflow 会顺带裁掉"最后发表"那一行悬停时可能出现的描边。 */
    margin-left: 64px;
    min-height: 52px;
}
.forum-page .forum-gcell-num {
    margin: 6px 0 0;
    font-size: 12px;
    color: #7d6c4e;
}
.forum-page .forum-gcell-last {
    margin: 4px 0 0;
    font-size: 12px;
    line-height: 1.5;
    color: #6b5c42;
}
.forum-page .forum-gcell-lastlink {
    color: #7d6c4e;
    text-decoration: none;
}
.forum-page .forum-gcell-lastlink:hover {
    color: #ffe9a8;
}

/* ==========================================================================
   5. 面包屑
   ========================================================================== */
.forum-page .forum-crumb {
    margin: 0 0 18px;
    font-size: 13px;
    color: #8d7a58;
}
.forum-page .forum-crumb a {
    color: #c4aa79;
    text-decoration: none;
}
.forum-page .forum-crumb a:hover {
    color: #ffe9a8;
}
.forum-page .forum-crumb-sep {
    margin: 0 8px;
    font-style: normal;
    color: #5a4a30;
}

/* ==========================================================================
   6. 工具条（排序 tab + 发帖按钮）
   ========================================================================== */
.forum-page .forum-toolbar {
    margin: 0 0 16px;
    font-size: 0;                 /* 消 inline-block 之间的空白（间隔用 margin） */
}
.forum-page .forum-sort-tabs {
    display: inline-block;
    vertical-align: middle;
}
.forum-page .forum-sort-tab {
    display: inline-block;
    margin-right: 2px;
    padding: 8px 15px;
    font-size: 13px;
    color: #a68d5f;
    background-color: #14100b;
    border: 1px solid #2e2113;
    text-decoration: none;
}
.forum-page .forum-sort-tab:hover {
    color: #f2d68f;
    border-color: #6d5420;
}
.forum-page .forum-sort-tab.is-active {
    color: #ffe9a8;
    background-color: #2a1c07;
    border-color: #8a6a24;
}
.forum-page .forum-btn-post {
    display: inline-block;
    vertical-align: middle;
    float: right;
    padding: 9px 22px;
    font-size: 13.5px;
    letter-spacing: 2px;
    color: #2a1608;
    background-color: #d8b463;
    background-image: -webkit-linear-gradient(top, #ffe9a8 0%, #d8b463 100%);
    background-image: linear-gradient(180deg, #ffe9a8 0%, #d8b463 100%);
    border: 1px solid #8a6a24;
    border-radius: 3px;
    text-decoration: none;
    text-shadow: 0 1px 0 rgba(255, 255, 255, .35);
}
.forum-page .forum-btn-post:hover {
    background-color: #ffe9a8;
    background-image: -webkit-linear-gradient(top, #fff6d8 0%, #e8c987 100%);
    background-image: linear-gradient(180deg, #fff6d8 0%, #e8c987 100%);
}
.forum-page .forum-btn-post.is-disabled {
    float: right;
    color: #7d6c4e;
    background-color: #1a140d;
    background-image: none;
    border-color: #2e2113;
    text-shadow: none;
    cursor: not-allowed;
}

/* ==========================================================================
   7. 主题列表
   ========================================================================== */
.forum-page .forum-thread-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    background-color: #100b07;
    border: 1px solid #2e2113;
    border-radius: 3px;
}
.forum-page .forum-thread-table thead th {
    padding: 11px 10px;
    font-size: 12px;
    font-weight: normal;
    letter-spacing: 1px;
    text-align: left;
    color: #8d7a58;
    background-color: #170f09;
    border-bottom: 1px solid #3a2a12;
}
.forum-page .forum-th-col      { width: auto; padding: 14px 12px; vertical-align: top; }
.forum-page .forum-th-author   { width: 110px; padding: 14px 8px; vertical-align: top; }
.forum-page .forum-th-num      { width: 68px; padding: 14px 6px; vertical-align: top; text-align: center; }
.forum-page .forum-th-last     { width: 150px; padding: 14px 12px 14px 6px; vertical-align: top; }
.forum-page .forum-thread-row {
    border-top: 1px solid #241a0f;
}
.forum-page .forum-thread-row:hover {
    background-color: #161009;
}
.forum-page .forum-th-subject {
    font-size: 15px;
    line-height: 1.5;
}
.forum-page .forum-th-title {
    color: #e8c987;
    text-decoration: none;
}
.forum-page .forum-th-title:hover {
    color: #ffe9a8;
}
.forum-page .forum-th-summary {
    margin: 6px 0 0;
    font-size: 12.5px;
    line-height: 1.6;
    color: #8d7a58;
}
.forum-page .forum-th-time {
    display: block;
    margin-top: 6px;
    font-size: 12px;
    color: #6b5c42;
}
.forum-page .forum-author-name {
    font-size: 13px;
    color: #c4aa79;
}
.forum-page .forum-last-user,
.forum-page .forum-last-time {
    display: block;
    font-size: 12px;
    color: #8d7a58;
}
.forum-page .forum-last-time {
    margin-top: 3px;
    color: #6b5c42;
}
/* 行内标记（置顶 / 精华 / 待审 / 锁定） */
.forum-page .forum-flag {
    display: inline-block;
    margin-right: 7px;
    padding: 1px 7px;
    font-size: 11px;
    font-style: normal;
    letter-spacing: 1px;
    vertical-align: middle;
    border-radius: 2px;
}
.forum-page .forum-flag-top  { color: #ffe9a8; background-color: #a41610; border: 1px solid #d4553a; }
.forum-page .forum-flag-ess  { color: #2a1608; background-color: #e0b95c; border: 1px solid #8a6a24; }
.forum-page .forum-flag-wait { color: #c4aa79; background-color: #2a1c07; border: 1px solid #6d5420; }
.forum-page .forum-flag-lock { color: #b9a684; background-color: #241a0f; border: 1px solid #4a3a1e; }
/* 待审核主题整行压暗一点，提示"还没对外" */
.forum-page .forum-thread-row.is-pending .forum-th-title { color: #b9a684; }

/* ==========================================================================
   8. 帖子详情：标题条 + 楼层
   ========================================================================== */
.forum-page .forum-thread-head {
    margin: 0 0 18px;
    padding: 0 0 16px;
    border-bottom: 1px solid #2e2113;
}
.forum-page .forum-thread-name {
    margin: 0;
    font-size: 22px;
    font-weight: normal;
    line-height: 1.5;
    letter-spacing: 1px;
    color: #f2d68f;
    text-shadow: 0 2px 5px rgba(0, 0, 0, .85);
}
.forum-page .forum-thread-stats {
    margin-top: 10px;
    font-size: 12.5px;
    color: #8d7a58;
}
.forum-page .forum-thread-stats span {
    margin-right: 18px;
}

.forum-page .forum-floor {
    display: -webkit-box;
    display: flex;
    margin-bottom: 14px;
    background-color: #100b07;
    border: 1px solid #2e2113;
    border-radius: 3px;
}
/* 首帖（楼主）：左边一道金边，与回复区分开 */
.forum-page .forum-floor.is-first {
    border-color: #6d5420;
    box-shadow: inset 3px 0 0 #d8b463;
}
.forum-page .forum-floor-side {
    width: 140px;
    -webkit-box-flex: 0;
    flex: none;
    padding: 18px 10px;
    text-align: center;
    background-color: #0d0906;
    border-right: 1px solid #241a0f;
}
.forum-page .forum-floor.is-first .forum-floor-side {
    background-color: #150e08;
}
.forum-page .forum-avatar {
    display: inline-block;
    width: 54px;
    height: 54px;
    line-height: 54px;
    font-size: 22px;
    color: #ffe9a8;
    background-color: #6d1a12;
    background-image: -webkit-linear-gradient(top, #8a2318 0%, #521009 100%);
    background-image: linear-gradient(180deg, #8a2318 0%, #521009 100%);
    border: 1px solid #8a6a24;
    border-radius: 50%;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .8);
}
.forum-page .forum-floor-user {
    display: block;
    margin-top: 10px;
    font-size: 13px;
    font-weight: normal;
    color: #e8c987;
    word-break: break-all;
}
.forum-page .forum-floor-no {
    display: inline-block;
    margin-top: 7px;
    padding: 1px 8px;
    font-size: 11px;
    font-style: normal;
    color: #a68d5f;
    background-color: #1d150d;
    border: 1px solid #3a2a12;
    border-radius: 2px;
}
.forum-page .forum-floor.is-first .forum-floor-no {
    color: #2a1608;
    background-color: #d8b463;
    border-color: #8a6a24;
}
.forum-page .forum-floor-main {
    -webkit-box-flex: 1;
    flex: 1 1 auto;
    min-width: 0;                 /* flex 子项里的长内容必须允许收缩，否则会撑破容器 */
    padding: 16px 20px 20px;
}
.forum-page .forum-floor-meta {
    padding-bottom: 10px;
    margin-bottom: 14px;
    font-size: 12px;
    color: #6b5c42;
    border-bottom: 1px dashed #241a0f;
}
.forum-page .forum-floor-content {
    font-size: 14.5px;
    line-height: 1.85;
    color: #cbb98f;
    word-wrap: break-word;
    word-break: break-word;
}
/* 采集来的正文里可能带 <div align>/<img>/<table>，给一层兜底约束 */
.forum-page .forum-floor-content img {
    max-width: 100%;
    height: auto;
}
.forum-page .forum-floor-content table {
    max-width: 100%;
}
.forum-page .forum-floor-content a {
    color: #e0b95c;
}

/* ==========================================================================
   9. 回复框 / 发帖表单
   ========================================================================== */
.forum-page .forum-reply-box {
    margin-top: 24px;
    padding: 20px 22px 22px;
    background-color: #14100b;
    border: 1px solid #3a2a12;
    border-radius: 3px;
}
.forum-page .forum-reply-head {
    margin-bottom: 14px;
}
.forum-page .forum-reply-head h3 {
    display: inline-block;
    margin: 0;
    font-size: 16px;
    font-weight: normal;
    letter-spacing: 2px;
    color: #f2d68f;
}
.forum-page .forum-reply-as {
    float: right;
    font-size: 12.5px;
    color: #8d7a58;
}
.forum-page .forum-reply-as b {
    color: #e0b95c;
    font-weight: normal;
}
.forum-page .forum-reply-closed {
    padding: 18px;
    text-align: center;
    font-size: 13.5px;
    color: #8d7a58;
}
.forum-page .forum-textarea,
.forum-page .forum-input {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: 12px 14px;
    font-size: 14px;
    font-family: inherit;
    line-height: 1.8;
    color: #e3d0a4;
    background-color: #0d0906;
    border: 1px solid #3a2a12;
    border-radius: 3px;
    outline: none;
    resize: vertical;
}
.forum-page .forum-textarea:focus,
.forum-page .forum-input:focus {
    border-color: #8a6a24;
    box-shadow: 0 0 0 1px rgba(138, 106, 36, .5);
}
.forum-page .forum-form-foot {
    margin-top: 14px;
}
.forum-page .forum-form-tip {
    display: inline-block;
    font-size: 12.5px;
    color: #b4534a;
    line-height: 34px;
}
.forum-page .forum-form-tip.is-ok {
    color: #7fae6a;
}
.forum-page .forum-btn-submit {
    display: inline-block;
    float: right;
    padding: 10px 30px;
    font-size: 14px;
    letter-spacing: 3px;
    color: #2a1608;
    background-color: #d8b463;
    background-image: -webkit-linear-gradient(top, #ffe9a8 0%, #d8b463 100%);
    background-image: linear-gradient(180deg, #ffe9a8 0%, #d8b463 100%);
    border: 1px solid #8a6a24;
    border-radius: 3px;
    text-decoration: none;
    text-shadow: 0 1px 0 rgba(255, 255, 255, .35);
    cursor: pointer;
}
.forum-page .forum-btn-submit:hover {
    background-image: -webkit-linear-gradient(top, #fff6d8 0%, #e8c987 100%);
    background-image: linear-gradient(180deg, #fff6d8 0%, #e8c987 100%);
}
.forum-page .forum-btn-submit.is-busy {
    opacity: .6;
    cursor: wait;
}
/* 发帖页 */
.forum-page .forum-post-card {
    padding: 24px 26px 26px;
    background-color: #14100b;
    border: 1px solid #3a2a12;
    border-radius: 3px;
}
.forum-page .forum-post-title {
    margin: 0 0 20px;
    font-size: 18px;
    font-weight: normal;
    letter-spacing: 2px;
    color: #f2d68f;
}
.forum-page .forum-field {
    display: block;
    margin-bottom: 18px;
}
.forum-page .forum-field-label {
    display: block;
    margin-bottom: 8px;
    font-size: 13px;
    letter-spacing: 1px;
    color: #a68d5f;
}

/* ==========================================================================
   10. 分页
   ========================================================================== */
.forum-page .forum-pager {
    margin-top: 22px;
    font-size: 0;
    text-align: center;
}
.forum-page .forum-page-btn,
.forum-page .forum-page-num {
    display: inline-block;
    margin: 0 3px;
    padding: 7px 13px;
    font-size: 13px;
    color: #a68d5f;
    background-color: #14100b;
    border: 1px solid #2e2113;
    border-radius: 3px;
    text-decoration: none;
}
.forum-page .forum-page-btn:hover,
.forum-page .forum-page-num:hover {
    color: #f2d68f;
    border-color: #6d5420;
}
.forum-page .forum-page-num.is-active {
    color: #2a1608;
    background-color: #d8b463;
    border-color: #8a6a24;
}
.forum-page .forum-page-btn.is-disabled {
    color: #5a4a30;
    cursor: not-allowed;
}
.forum-page .forum-page-gap {
    display: inline-block;
    margin: 0 4px;
    font-size: 13px;
    color: #5a4a30;
}
.forum-page .forum-page-info {
    display: inline-block;
    margin-left: 12px;
    font-size: 12.5px;
    color: #6b5c42;
}

/* ==========================================================================
   11. 空态 / 登录门 / 维护页
   ========================================================================== */
.forum-page .forum-empty {
    padding: 46px 20px;
    text-align: center;
    font-size: 14px;
    color: #8d7a58;
    background-color: #100b07;
    border: 1px solid #2e2113;
    border-radius: 3px;
}
.forum-page .forum-back {
    margin-top: 18px;
    text-align: center;
}
.forum-page .forum-back .forum-btn-submit {
    float: none;
}
.forum-page .forum-gate {
    padding: 46px 20px;
    text-align: center;
    background-color: #100b07;
    border: 1px solid #3a2a12;
    border-radius: 3px;
}
.forum-page .forum-gate-text {
    margin: 0 0 20px;
    font-size: 14px;
    line-height: 1.8;
    color: #a68d5f;
}
.forum-page .forum-gate .forum-btn-submit {
    float: none;
}
.forum-page .forum-maintain {
    padding: 60px 20px 66px;
    text-align: center;
    background-color: #100b07;
    border: 1px solid #3a2a12;
    border-radius: 3px;
}
.forum-page .forum-maintain-icon {
    width: 62px;
    height: 62px;
    line-height: 62px;
    margin: 0 auto 20px;
    font-size: 30px;
    color: #ffe9a8;
    background-color: #6d1a12;
    border: 1px solid #8a6a24;
    border-radius: 50%;
}
.forum-page .forum-maintain h2 {
    margin: 0 0 12px;
    font-size: 22px;
    font-weight: normal;
    letter-spacing: 4px;
    color: #f2d68f;
}
.forum-page .forum-maintain p {
    margin: 0 0 24px;
    font-size: 13.5px;
    color: #8d7a58;
}

/* ==========================================================================
   13. 页头底图 —— 复用**原站真实素材**（2026-10-01 第 133 轮）
   --------------------------------------------------------------------------
   素材出处：原 Discuz! 论坛源码
     C:/Users/Administrator/Desktop/新建文件夹 (2)/bbs.woool2004.com
     template/default/ccbm_images/xyj_bg.jpg   1680×840
   它在原站的角色写死在 data/cache/style_1_common.css 里：
     body{ background:#666666 url(".../xyj_bg.jpg") no-repeat top center; }
   也就是说 —— **这一张就是当年"如浩传世 官方论坛"的页头**，画面上的
   "如浩传世 / 官方论坛"题字与崖顶背影都是原件，没有重绘、没有 AI 生成。
   本文件用的是它的**顶部 340px**裁切（1680×340，JPEG q82 ≈ 75KB），
   ★ 原件未改，完整副本留档在 .workbuddy/refs/forum_src/xyj_bg.jpg。
   ★ 裁切/压缩是"取用原件"，不是"重绘位图"—— 本项目禁的是后者。

   【为什么这样摆】
     · 题字在**左**、我们的标题在**中**，天然不打架；不额外加"官方论坛"字样，
       避免同一块区域出现两遍品牌名。
     · cover 让窄屏自动裁两侧：题字先被裁掉、我们的标题留下 —— 行为正好。
     · 加一层深色蒙版：画面正中是金色天光（很亮），而我们的标题是金色
       (#f2d68f)，不压暗就是"金字压亮底"，对比度不够。蒙版做了三段式：
       顶部稍暗（压住题字上方的天空）→ 中部最亮处（蒙版最轻）→
       底部最重（保证标题与副标题所在区域足够暗）。
     · ★ 蒙版与底图是**两层背景**。本项目的血案②：前层若给"所有背景层"
       定死 background-size，后加的多层背景会静默失效 —— 所以这里
       repeat / position / size 全部按"每个层各写一次"的方式显式声明。
   ========================================================================== */
.forum-page .forum-head {
    background-color: #0c0806;
    background-image: -webkit-linear-gradient(top, rgba(10, 7, 5, .58) 0%, rgba(10, 7, 5, .34) 30%, rgba(10, 7, 5, .60) 68%, rgba(10, 7, 5, .90) 100%), url(../images/forum/bbs_head.jpg);
    background-image: linear-gradient(180deg, rgba(10, 7, 5, .58) 0%, rgba(10, 7, 5, .34) 30%, rgba(10, 7, 5, .60) 68%, rgba(10, 7, 5, .90) 100%), url(../images/forum/bbs_head.jpg);
    background-repeat: no-repeat, no-repeat;
    background-position: center top, center top;
    background-size: cover, cover;
    /* ★ 只写上下（不写 padding 简写）：这样第 12 节里 ≤860 的 padding-top:38px
       仍然生效 —— 那条规则在本节之后，同特异性按"写后面的赢"。
       写成 padding 简写会把它一起压掉，手机页头会凭空变高一截。 */
    padding-top: 86px;
    padding-bottom: 52px;
}

/* ==========================================================================
   14. 首页模块（2026-10-01 第 133 轮新增，对齐原站 forum.php 的模块顺序）
       统计行(#chart) → 四格(four grid) → 分区列表 → 在线会员(#online)
   ★★ 这一节必须排在「12. 响应式」**之前**：
       同特异性下写后面的赢 —— 响应式要能盖掉这里的宽度与 padding。
       本项目反复踩的坑就是"新章节插在响应式后面 ⇒ 断点在窄屏下静默失效"。
   ★ 禁用清单（全站约定）在这里同样生效：不用 var() / :has() / gap /
     display:grid / clamp()；颜色一律写字面值；渐变带 -webkit- 前缀。
   ========================================================================== */

/* --- 14.1 统计行（原站 #chart）：左统计 / 右搜索 --- */
.forum-page .forum-chart {
    margin: 0 0 18px;
    padding: 9px 14px;
    font-size: 13px;
    line-height: 1.8;
    color: #a68d5f;
    background-color: #100b07;
    border: 1px solid #2e2113;
    border-radius: 3px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
}
.forum-page .forum-chart-stats {
    margin: 0;
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    min-width: 0;
}
.forum-page .forum-chart-item {
    white-space: nowrap;
}
.forum-page .forum-chart-item em {
    margin: 0 2px;
    font-style: normal;
    font-size: 15px;
    color: #f2d68f;
}
/* 竖线分隔符（统计行 / 在线会员行共用） */
.forum-page .forum-pipe {
    margin: 0 9px;
    font-style: normal;
    color: #40331e;
}

/* --- 14.2 搜索（首页统计行右侧 + 搜索页顶部共用同一套 class） --- */
.forum-page .forum-search {
    margin: 0;
    white-space: nowrap;
}
.forum-page .forum-search-input {
    width: 168px;
    height: 30px;
    padding: 0 10px;
    font-family: inherit;
    font-size: 13px;
    color: #e8c987;
    background-color: #0a0705;
    border: 1px solid #3a2a12;
    border-radius: 2px;
    /* ★ 只写 width 不写 box-sizing 的 input 会宽出 padding+border 那么多，
       在 flex 行里正是"搜索框把统计文字挤到换行"的常见起因。 */
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}
.forum-page .forum-search-input::-webkit-input-placeholder {
    color: #6b5c42;
}
.forum-page .forum-search-input:focus {
    border-color: #8a6a24;
    outline: none;
}
.forum-page .forum-search-btn {
    height: 30px;
    margin-left: 6px;
    padding: 0 15px;
    font-family: inherit;
    font-size: 13px;
    letter-spacing: 1px;
    color: #ffe9a8;
    background-color: #6d1a12;
    background-image: -webkit-linear-gradient(top, #8a2318 0%, #521009 100%);
    background-image: linear-gradient(180deg, #8a2318 0%, #521009 100%);
    border: 1px solid #8a6a24;
    border-radius: 2px;
    cursor: pointer;
}
.forum-page .forum-search-btn:hover {
    background-image: -webkit-linear-gradient(top, #9c2a1d 0%, #6d1a12 100%);
    background-image: linear-gradient(180deg, #9c2a1d 0%, #6d1a12 100%);
}
.forum-page .forum-search-head {
    margin: 0 0 14px;
}
.forum-page .forum-search-big .forum-search-input {
    width: 320px;
}
.forum-page .forum-search-info {
    margin: 9px 0 0;
    font-size: 12.5px;
    line-height: 1.7;
    color: #8d7a58;
}
/* 搜索 / 查看新帖：标题后面的来源版块标记 */
.forum-page .forum-th-board {
    margin-left: 8px;
    font-size: 12px;
    color: #7d8f6a;
    text-decoration: none;
}
.forum-page .forum-th-board:hover {
    color: #b6cb9a;
}

/* --- 14.3 四格（原站 index four grid）---
   ★ 用真的 <table> 标签而不是 float / inline-block：四格里最长的一列的条数
     不定，float 下四个格子底边参差不齐；table 单元格天然等高。
     （这与首页三栏 .hp-news-layout 用 table-cell 是同一个理由。） */
.forum-page .forum-grid {
    margin: 0 0 24px;
    border: 1px solid #2e2113;
    border-radius: 3px;
    background-color: #100b07;
    overflow: hidden;
}
.forum-page .forum-grid-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}
.forum-page .forum-grid-table td {
    padding: 12px 14px 14px;
    vertical-align: top;
    border-right: 1px solid #241a0f;
}
.forum-page .forum-grid-table td:last-child {
    border-right: 0;
}
/* 图片格 250px：原站是 218px 宽的 218×200 轮播，这里按 250×168 的横图比例安排 */
.forum-page .forum-grid-img {
    width: 250px;
}
.forum-page .forum-grid-title {
    margin: 0 0 10px;
    padding: 0 0 8px;
    font-size: 13.5px;
    font-weight: normal;
    letter-spacing: 1px;
    color: #e8c987;
    border-bottom: 1px solid #241a0f;
}
/* 标题前的小菱形。用 CSS 画，不引图片 —— 4 个 6×6 的图标不值得 4 个请求。 */
.forum-page .forum-grid-ico {
    display: inline-block;
    width: 6px;
    height: 6px;
    margin-right: 7px;
    vertical-align: 2px;
    background-color: #d8b463;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}
.forum-page .forum-grid-ico.is-new   { background-color: #d8b463; }
.forum-page .forum-grid-ico.is-reply { background-color: #7d9a4e; }
.forum-page .forum-grid-ico.is-hot   { background-color: #c9534a; }
/* 图片轮播：图比例不一 ⇒ 必须 object-fit:cover；淡入淡出只动 opacity */
.forum-page .forum-slide {
    position: relative;
}
.forum-page .forum-slide-view {
    position: relative;
    height: 168px;
    overflow: hidden;
    background-color: #0a0705;
    border: 1px solid #241a0f;
    border-radius: 2px;
}
.forum-page .forum-slide-item {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    text-decoration: none;
    -webkit-transition: opacity .5s;
    transition: opacity .5s;
}
.forum-page .forum-slide-item.is-on {
    opacity: 1;
}
.forum-page .forum-slide-item img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.forum-page .forum-slide-cap {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 22px 10px 8px;
    font-size: 12px;
    color: #e8c987;
    background-image: -webkit-linear-gradient(top, rgba(10, 7, 5, 0) 0%, rgba(10, 7, 5, .92) 100%);
    background-image: linear-gradient(180deg, rgba(10, 7, 5, 0) 0%, rgba(10, 7, 5, .92) 100%);
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.forum-page .forum-slide-dots {
    margin-top: 8px;
    text-align: center;
}
.forum-page .forum-slide-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    margin: 0 3px;
    background-color: #3a2a12;
    border-radius: 50%;
    cursor: pointer;
}
.forum-page .forum-slide-dot.is-on {
    background-color: #d8b463;
}
.forum-page .forum-slide.is-empty {
    height: 168px;
    line-height: 168px;
    text-align: center;
    font-size: 12.5px;
    color: #6b5c42;
    background-color: #0c0806;
    border: 1px solid #241a0f;
    border-radius: 2px;
}
/* 四格里的主题条目：单行截断（格宽约 300px，长标题必须裁） */
.forum-page .forum-linelist {
    margin: 0;
    padding: 0;
    list-style: none;
}
.forum-page .forum-linelist li {
    position: relative;
    margin: 0 0 7px;
    padding: 0 0 0 12px;
    font-size: 13px;
    line-height: 1.5;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.forum-page .forum-line-dot {
    position: absolute;
    left: 0;
    top: 7px;
    width: 4px;
    height: 4px;
    background-color: #6d5420;
    border-radius: 50%;
}
.forum-page .forum-linelist a {
    color: #b8a279;
    text-decoration: none;
}
.forum-page .forum-linelist a:hover {
    color: #ffe9a8;
}
.forum-page .forum-linelist-empty {
    margin: 0;
    font-size: 12.5px;
    color: #6b5c42;
}

/* --- 14.4 在线会员（原站 #online）---
   ★ 图例只列三个身份：管理员 / 版主 / 会员。
     原站还有「超级版主」，本项目的权限模型里没有这一层 ——
     不为了对齐外观去编一个不存在的角色（图例指向不存在的东西比没有图例更糟）。 */
.forum-page .forum-online {
    margin: 0 0 8px;
    border: 1px solid #2e2113;
    border-radius: 3px;
    background-color: #100b07;
    overflow: hidden;
}
.forum-page .forum-online-head {
    padding: 10px 14px;
    background-color: #170f09;
    border-bottom: 1px solid #241a0f;
}
.forum-page .forum-online-name {
    display: inline-block;
    margin: 0 12px 0 0;
    font-size: 14px;
    font-weight: normal;
    letter-spacing: 1px;
    color: #e8c987;
}
.forum-page .forum-online-num {
    font-size: 12px;
    line-height: 1.7;
    color: #8d7a58;
}
.forum-page .forum-online-num b {
    font-weight: normal;
    color: #d8b463;
}
.forum-page .forum-online-body {
    padding: 12px 14px 14px;
}
.forum-page .forum-legend {
    margin: 0 0 10px;
    padding: 0 0 9px;
    border-bottom: 1px dashed #241a0f;
}
.forum-page .forum-legend-item {
    display: inline-block;
    margin-right: 18px;
    font-size: 12px;
    color: #8d7a58;
}
.forum-page .forum-legend-ico {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 5px;
    vertical-align: 1px;
    border-radius: 1px;
}
.forum-page .forum-legend-ico.is-admin { background-color: #c9534a; }
.forum-page .forum-legend-ico.is-mod   { background-color: #4a86c9; }
.forum-page .forum-legend-ico.is-user  { background-color: #7d9a4e; }
.forum-page .forum-online-list {
    margin: 0;
    padding: 0;
    list-style: none;
}
.forum-page .forum-online-list li {
    display: inline-block;
    margin: 0 14px 6px 0;
    font-size: 12.5px;
    color: #b8a279;
}
.forum-page .forum-online-ico {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 4px;
    vertical-align: 1px;
    border-radius: 1px;
    background-color: #7d9a4e;
}
.forum-page .forum-online-list li.is-admin .forum-online-ico { background-color: #c9534a; }
.forum-page .forum-online-list li.is-mod .forum-online-ico   { background-color: #4a86c9; }
.forum-page .forum-online-list li.is-admin span { color: #e9a49d; }
.forum-page .forum-online-list li.is-mod span   { color: #a8c6e8; }
.forum-page .forum-online-none {
    margin: 0;
    font-size: 12.5px;
    color: #6b5c42;
}

/* ==========================================================================
   12. 响应式（照抄 job / equip / news 的两档断点：1100 / 860）
   ========================================================================== */
@media (max-width: 1100px) {
    .forum-page .forum-title { font-size: 34px; letter-spacing: 6px; }
    /* 窄屏把"最后发表"与"作者"两列让掉：版块行的信息密度让位于可读性 */
    .forum-page .forum-th-last { display: none; }
    .forum-page .forum-board-table .forum-td-last { display: none; }
    /* ★ 网格排版的分区在窄屏**退回竖排**：1100px 下 3 格只剩 ~340px 一格，
       「版块名 + 主题: N, 帖子: M + 最后发表」必然各占两行、参差不齐。
       与其把字号压到 11px 硬塞，不如直接退回列表形态（信息一点不少）。
       ★ 用 display:block 拆掉 table 的表格行为，而不是去改 width 百分比：
         改百分比在 table-layout:fixed 下会被浏览器按比例归一化，
         三格 49.9% 拼出 149.7% 的结果**不可预测**，是典型的"看着能算其实算不准"。 */
    .forum-page .forum-board-table.is-grid,
    .forum-page .forum-board-table.is-grid tbody,
    .forum-page .forum-board-table.is-grid tr,
    .forum-page .forum-board-table.is-grid td {
        display: block;
        width: auto;
    }
    .forum-page .forum-gcell {
        border-left: 0;
        border-top: 1px solid #241a0f;
    }
    .forum-page .forum-board-table.is-grid tr:first-child .forum-gcell:first-child {
        border-top: 0;
    }
    /* 补位空格子在竖排下没有意义（每个格都是整行），直接不显示 */
    .forum-page .forum-gcell.is-pad { display: none; }
    /* 四格：图片格收窄 */
    .forum-page .forum-grid-img { width: 200px; }
    .forum-page .forum-slide-view { height: 148px; }
    .forum-page .forum-slide.is-empty { height: 148px; line-height: 148px; }
}
@media (max-width: 860px) {
    .forum-page .forum-head { padding-top: 38px; }
    .forum-page .forum-title { font-size: 26px; letter-spacing: 4px; }
    .forum-page .forum-sub { font-size: 12px; letter-spacing: 2px; }
    .forum-page .forum-section { padding-left: 12px; padding-right: 12px; }
    .forum-page .forum-body { padding-left: 4px; padding-right: 4px; }
    .forum-page .forum-th-author { width: 84px; }
    .forum-page .forum-th-num { width: 54px; }
    .forum-page .forum-td-icon { width: 66px; }
    .forum-page .forum-board-icon { width: 44px; height: 44px; line-height: 44px; font-size: 15px; }
    .forum-page .forum-board-img { width: 44px; height: 44px; }
    /* 统计行：左右改成上下，搜索框占满一行 */
    .forum-page .forum-chart {
        display: block;
        padding: 10px 12px;
    }
    .forum-page .forum-chart-stats { margin-bottom: 9px; }
    .forum-page .forum-chart-item em { font-size: 14px; }
    .forum-page .forum-pipe { margin: 0 6px; }
    .forum-page .forum-search { display: block; }
    .forum-page .forum-search-input { width: 100%; }
    .forum-page .forum-search-big .forum-search-input { width: 100%; }
    .forum-page .forum-search-btn {
        display: block;
        width: 100%;
        margin: 8px 0 0;
    }
    /* 四格：四格改成竖排（table 拆成 block） */
    .forum-page .forum-grid-table,
    .forum-page .forum-grid-table tbody,
    .forum-page .forum-grid-table tr,
    .forum-page .forum-grid-table td {
        display: block;
        width: auto;
    }
    .forum-page .forum-grid-img { width: auto; }
    .forum-page .forum-grid-table td {
        border-right: 0;
        border-top: 1px solid #241a0f;
    }
    .forum-page .forum-grid-table td:first-child { border-top: 0; }
    .forum-page .forum-slide-view { height: 150px; }
    .forum-page .forum-slide.is-empty { height: 150px; line-height: 150px; }
    /* ★★ 手机上每列只留 5 条：四个格子全展开会有 40 行链接挡在版块列表前面，
       玩家要滑很久才看得到版块 —— 但还是**每列都留着**（模块不能凭空消失，
       那是"结构不一样"的另一种表现）。 */
    .forum-page .forum-linelist li:nth-child(n+6) { display: none; }
    /* 在线会员：一行统计太长，允许换行 */
    .forum-page .forum-online-name { display: block; margin: 0 0 4px; }
    /* 楼层改成上下结构：窄屏侧栏横排在左边会挤掉正文宽度 */
    .forum-page .forum-floor { display: block; }
    .forum-page .forum-floor-side {
        width: auto;
        padding: 12px 14px;
        text-align: left;
        border-right: 0;
        border-bottom: 1px solid #241a0f;
    }
    .forum-page .forum-avatar {
        width: 38px;
        height: 38px;
        line-height: 38px;
        font-size: 16px;
        margin-right: 10px;
        vertical-align: middle;
    }
    .forum-page .forum-floor-user { display: inline-block; margin-top: 0; vertical-align: middle; }
    .forum-page .forum-floor-no { margin-top: 0; margin-left: 8px; vertical-align: middle; }
    .forum-page .forum-floor-main { padding: 14px 14px 16px; }
    .forum-page .forum-btn-post { float: none; margin-top: 10px; }
}

/* --------------------------------------------------------------------------
   13b. 手机档：页头底图**不加载**
   ★ 为什么：≤860 时页头高度只剩 ~150px（第 12 节把 padding-top 压到 38px），
     1680×340 的图按 cover 铺进这么扁的一条，只剩中间一段雾，看不出是什么；
     却仍要花 75KB 流量 —— 换来的是一张糊掉的背景。
   ★ 用 background-image 覆盖而不是 display:none：**没被引用的图不会发请求**，
     这才是真正的"不加载"。底图退回原来那版纯色渐变，与其它内页页头一致。
   ★ 本块放在文件最末：同特异性靠"写后面"赢过第 13 节的基础规则；
     而它没有声明 padding-top，所以第 12 节 ≤860 的 padding-top:38px 仍在生效。
   -------------------------------------------------------------------------- */
@media (max-width: 860px) {
    .forum-page .forum-head {
        background-image: -webkit-linear-gradient(top, #171009 0%, #0c0806 100%);
        background-image: linear-gradient(180deg, #171009 0%, #0c0806 100%);
        background-repeat: no-repeat;
        background-position: center top;
        background-size: auto;
    }
}

/* --------------------------------------------------------------------------
   14. 楼层积分块：用户组（带色）/ 积分 / 帖数 / 精华　（第 170 轮加入）
   ★ 为什么写在本文件最末：同特异性下靠"写后面"赢过第 6 节的基础楼层规则
     （这与第 13 节 `forum-head` 的处理是同一个理由，不是随手放这里）。
   ★★ 尺寸预算（改之前务必先算）：PC 侧栏 `width:140px`、左右 padding 各 10px
     ⇒ **可用宽度只有 120px**。「论坛元老 + ★★★★★」按 11px 字号约
     48 + 55 = 103px，装得下；组名一律 `word-break`，后台把组名改长
     （最多 32 字）时折行而不是撑破侧栏。
   ★★ 组名颜色来自 forum_group 表（后台可改），由 creditBadgeHtml() 写成
     **行内 style**。行内样式优先于本文件的任何选择器，所以下面给
     `.forum-group-badge` 的 `color` **只是"后台没配颜色"时的默认值**，
     不会盖掉后台配置。★ 但反过来说：**不能**在这里加 `!important` ——
     那一加，行内的后台配置就永远生效不了了（这是本项目第 4 节的经典坑：
     要赢须同时满足 !important ⩾ 特异性 ⩾ 顺序，而"我方必胜"有时正是 bug）。
     星级的金色写死是可以的：它不是数据，是装饰。
   -------------------------------------------------------------------------- */
.forum-page .forum-floor-group {
    display: block;
    margin-top: 7px;
    font-size: 11px;
    line-height: 1.5;
    word-break: break-all;
}
/* 后台没配组名颜色时的默认色（配了就被行内 style 盖掉，不影响配置） */
.forum-page .forum-floor-group .forum-group-badge {
    color: #cbb98f;
}
.forum-page .forum-group-star {
    margin-left: 2px;
    font-size: 9px;
    font-style: normal;
    letter-spacing: -1px;
    color: #b99a4e;
}
.forum-page .forum-floor-credit {
    display: block;
    margin-top: 6px;
    padding-top: 6px;
    font-size: 11px;
    color: #c9a961;
    border-top: 1px dashed #241a0f;
}
.forum-page .forum-floor-credit i {
    margin-right: 3px;
    font-style: normal;
    color: #7d6c4c;
}
.forum-page .forum-floor-nums {
    display: block;
    margin-top: 3px;
    font-size: 11px;
    color: #8d7a58;
}
.forum-page .forum-floor-nums i {
    margin: 0 3px;
    font-style: normal;
    color: #6b5c42;
}
/* ---------------------------------------------------------------------------
 * 楼层左栏的勋章小图标（第 209 轮 · 阶段5 第二步）
 *
 * 【为什么是"一排小金章"而不是文字】
 *   左栏只有 ~110px 宽，写"发帖先锋、精华作者"两行字会把楼层挤变形；
 *   而勋章本身就是**图形信息**，画成图标比写名字更省地方也更好认。
 *   条件说明放 title（悬停可见），不占版面。
 *
 * 【★ 与个人中心勋章墙的 .um-medal 刻意不共用】
 *   判据是 §4 那条"命中元素在哪些页"：这边要在深色论坛页里跟一行小字并排、
 *   22px 见方；那边是勋章墙的主角、58px 见方。共用一套类名的结局是
 *   改这边坏那边 —— 所以宁可多一个类名，也不要一个"两页共用"的类名。
 *
 * 【图形来自 medalIconSvg() 的白名单符号】
 *   里面画的是 stroke="currentColor" ⇒ 这里只给 color，图形没有第二份。
 * ------------------------------------------------------------------------- */
.forum-page .forum-floor-medal {
    display: block;
    margin-top: 7px;
    line-height: 1;
}
.forum-page .forum-medal-ico {
    display: inline-block;
    width: 22px;
    height: 22px;
    margin: 0 3px 3px 0;
    background: #2a1e10;
    border: 1px solid #6b5426;
    border-radius: 50%;
    color: #d4af67;
    font-style: normal;
    vertical-align: middle;
}
/* 图标在圆里居中：内容区 20px（22 − 上下各 1px 边框），图标 14px
   ⇒ 上留 3px、下留 3px。用显式 margin 而不是 flex/line-height，
   是因为这个盒子只有一颗 14px 的 svg，flex 在这里是杀鸡用牛刀。 */
.forum-page .forum-medal-ico svg {
    display: block;
    width: 14px;
    height: 14px;
    margin: 3px auto 0;
}
/* 列表页作者列里的组名：**独占一行**（那一列窄，挤在同一行会把 5 列表格顶歪） */
.forum-page .forum-th-group {
    display: block;
    margin-top: 3px;
    font-size: 11px;
    line-height: 1.4;
}

/* 窄屏（≤860）：楼层侧栏由"左侧竖栏"变成"顶部横条"（见第 13 节）
   ⇒ 积分块也必须跟着从 `block` 改成 `inline-block`，否则
     「积分 / 帖 / 精」会各占一整行，一屏只看得到一个楼层。
   ★ 靠"写在本文件最后"赢过上面那批 `display:block`（同特异性、顺序在后）。 */
@media (max-width: 860px) {
    .forum-page .forum-floor-group {
        display: inline-block;
        margin: 0 0 0 8px;
        vertical-align: middle;
    }
    .forum-page .forum-floor-credit {
        display: inline-block;
        margin: 0 0 0 8px;
        padding-top: 0;
        vertical-align: middle;
        border-top: 0;
    }
    .forum-page .forum-floor-nums {
        display: inline-block;
        margin: 0 0 0 8px;
        vertical-align: middle;
    }
}


/* ==========================================================================
   15. 帖子互动：收藏 / 举报 / 评分 / 版主操作条（2026-10-03，第 171 轮）
   --------------------------------------------------------------------------
   ★ 全部用**新类名**，所以放在文件末尾即可胜出（同特异性 + 写后面）——
     不需要 !important，也不会跟上面的旧规则打架。
   ★ 配色沿用本文件的色板：深褐底 #241a0f / #2e2113、金 #d8b463 / #ffe9a8 /
     #f2d68f、暗金边 #8a6a24 / #6d5420、红 #8a2318。
     ★ 金底一律配深褐字（#2a1608），深底一律配浅字 —— 与本文件既有按钮同规矩，
       否则会出现"金字压在金底上"这种读数困难。
   ★ 排版只用 inline-block + flex（本站禁 grid / gap / var / clamp）。
   ========================================================================== */

/* ---- 楼层 meta 行改成"左时间、右评分"的弹性两列 ---- */
.forum-page .forum-floor-meta {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
}

/* ---- 评分控件 ---- */
.forum-page .forum-rate {
    display: inline-block;
    white-space: nowrap;
}
.forum-page .forum-rate-sel {
    height: 26px;
    padding: 0 6px;
    font-size: 12px;
    color: #cbb98f;
    background-color: #1d150d;
    border: 1px solid #6d5420;
    border-radius: 3px;
    vertical-align: middle;
}
.forum-page .forum-rate-btn {
    height: 26px;
    margin-left: 6px;
    padding: 0 12px;
    font-size: 12px;
    color: #2a1608;
    background-color: #d8b463;
    background-image: -webkit-linear-gradient(top, #ffe9a8 0%, #d8b463 100%);
    background-image: linear-gradient(180deg, #ffe9a8 0%, #d8b463 100%);
    border: 1px solid #8a6a24;
    border-radius: 3px;
    cursor: pointer;
    vertical-align: middle;
}
.forum-page .forum-rate-btn:hover {
    background-image: -webkit-linear-gradient(top, #fff6d8 0%, #e8c987 100%);
    background-image: linear-gradient(180deg, #fff6d8 0%, #e8c987 100%);
}
.forum-page .forum-rate-btn.is-busy { opacity: .6; cursor: default; }
.forum-page .forum-rate-done {
    font-size: 12px;
    color: #a68d5f;
}

/* ---- 主题操作条 ---- */
.forum-page .forum-actions {
    position: relative;
    margin: 0 0 16px;
    padding: 10px 14px;
    background-color: #241a0f;
    border: 1px solid #3a2a12;
    border-radius: 4px;
}
.forum-page .forum-actions-guest {
    font-size: 13px;
    color: #8d7a58;
}
.forum-page .forum-actions-guest a {
    color: #e8c987;
    text-decoration: none;
}
.forum-page .forum-actions-guest a:hover { text-decoration: underline; }

.forum-page .forum-act {
    display: inline-block;
    margin-right: 10px;
    padding: 6px 14px;
    font-size: 13px;
    color: #cbb98f;
    background-color: #2e2113;
    border: 1px solid #6d5420;
    border-radius: 3px;
    cursor: pointer;
    vertical-align: middle;
}
.forum-page .forum-act:hover {
    color: #ffe9a8;
    border-color: #8a6a24;
}
.forum-page .forum-act.is-on {
    color: #2a1608;
    background-color: #d8b463;
    background-image: -webkit-linear-gradient(top, #ffe9a8 0%, #d8b463 100%);
    background-image: linear-gradient(180deg, #ffe9a8 0%, #d8b463 100%);
    border-color: #8a6a24;
}
.forum-page .forum-act.is-busy { opacity: .6; cursor: default; }
.forum-page .forum-act-ico {
    margin-right: 4px;
    font-style: normal;
}
.forum-page .forum-act-num {
    margin-left: 5px;
    font-weight: normal;
    color: #a68d5f;
}
.forum-page .forum-act.is-on .forum-act-num { color: #6b4a12; }
.forum-page .forum-act-tip {
    margin-left: 8px;
    font-size: 12px;
    color: #8d7a58;
    vertical-align: middle;
}
.forum-page .forum-act-tip.is-ok  { color: #7fd07f; }
.forum-page .forum-act-tip.is-err { color: #e07a6a; }

/* ---- 举报表单（默认 is-hidden）---- */
.forum-page .forum-report-form.is-hidden { display: none; }
.forum-page .forum-report-form {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px dashed #3a2a12;
}
.forum-page .forum-report-row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}
.forum-page .forum-report-label {
    margin-right: 8px;
    font-size: 13px;
    color: #a68d5f;
}
.forum-page .forum-report-sel {
    height: 28px;
    margin-right: 10px;
    padding: 0 6px;
    font-size: 12px;
    color: #cbb98f;
    background-color: #1d150d;
    border: 1px solid #6d5420;
    border-radius: 3px;
}
.forum-page .forum-report-detail {
    display: block;
    width: 100%;
    margin-top: 10px;
    padding: 8px 10px;
    font-size: 13px;
    line-height: 1.6;
    color: #cbb98f;
    background-color: #1d150d;
    border: 1px solid #3a2a12;
    border-radius: 3px;
    resize: vertical;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}
.forum-page .forum-report-foot {
    margin-top: 10px;
    text-align: right;
}
.forum-page .forum-report-cancel,
.forum-page .forum-report-submit {
    display: inline-block;
    padding: 6px 18px;
    font-size: 13px;
    border-radius: 3px;
    cursor: pointer;
}
.forum-page .forum-report-cancel {
    margin-right: 8px;
    color: #cbb98f;
    background-color: #2e2113;
    border: 1px solid #6d5420;
}
.forum-page .forum-report-submit {
    color: #2a1608;
    background-color: #d8b463;
    background-image: -webkit-linear-gradient(top, #ffe9a8 0%, #d8b463 100%);
    background-image: linear-gradient(180deg, #ffe9a8 0%, #d8b463 100%);
    border: 1px solid #8a6a24;
}
.forum-page .forum-report-submit.is-busy { opacity: .6; cursor: default; }

/* ---- 版主操作条（只有版主看得见）----
   ★ 用暗红描边把它与普通操作条区分开：这一条点下去是**会改别人帖子**的，
     视觉上必须让人迟疑一下，不能与"收藏"长得一样。 */
.forum-page .forum-modbar {
    margin: 0 0 16px;
    padding: 10px 14px;
    background-color: #2a1614;
    border: 1px solid #8a2318;
    border-radius: 4px;
}
.forum-page .forum-modbar-title {
    margin-right: 12px;
    font-size: 13px;
    color: #e8c987;
}
.forum-page .forum-modbtn {
    display: inline-block;
    margin-right: 8px;
    padding: 5px 14px;
    font-size: 13px;
    color: #cbb98f;
    background-color: #241a0f;
    border: 1px solid #6d5420;
    border-radius: 3px;
    cursor: pointer;
    vertical-align: middle;
}
.forum-page .forum-modbtn:hover { color: #ffe9a8; border-color: #8a6a24; }
.forum-page .forum-modbtn.is-on {
    color: #2a1608;
    background-color: #d8b463;
    background-image: -webkit-linear-gradient(top, #ffe9a8 0%, #d8b463 100%);
    background-image: linear-gradient(180deg, #ffe9a8 0%, #d8b463 100%);
    border-color: #8a6a24;
}
.forum-page .forum-modbtn.is-busy { opacity: .6; cursor: default; }
.forum-page .forum-modbar-tip {
    margin-left: 6px;
    font-size: 12px;
    color: #8d7a58;
}

/* ---- 锁定提示（非版主看到的）---- */
.forum-page .forum-locked-note {
    margin: 0 0 16px;
    padding: 10px 14px;
    font-size: 13px;
    color: #e0b07a;
    background-color: #2a1614;
    border: 1px solid #8a2318;
    border-radius: 4px;
}

/* ---- 窄屏：操作条与评分控件都要能换行，不能横向溢出 ---- */
@media (max-width: 860px) {
    .forum-page .forum-floor-meta {
        display: block;
    }
    .forum-page .forum-rate,
    .forum-page .forum-rate-done {
        display: inline-block;
        margin-top: 6px;
    }
    .forum-page .forum-act {
        margin-bottom: 6px;
    }
    .forum-page .forum-report-sel {
        margin-bottom: 6px;
    }
    .forum-page .forum-modbtn {
        margin-bottom: 6px;
    }
}

/* ============================================================================
   16. 版主内容管理 · 标题高亮（第 172 轮）
   ----------------------------------------------------------------------------
   配色纪律（MEMORY §13）：**深/暗红底配亮字，金/黄底配深褐字**。
   本节的底都是深棕红（#2a1614 一族），所以文字一律用亮色。
   ★ 高亮色号 → 色值**只在这里定义**（PHP 只输出 forum-hl-N 这个 class）。
     统一调色只改这一节；后台填不出坏色值（它只能选 1..8）。
   ★ 这 8 个色都挑过：在 #1a120b 的深底上对比度都够。
     刻意不含深红/深蓝 —— 那种色在深底上等于"没高亮"，是"让运营填任意十六进制"
     的典型故障（这条取舍写在 sql/upgrade_forum_manage_2026-10-03.sql 头注里）。
   ============================================================================ */

/* ---- 16.1 标题高亮色（列表页 .forum-th-title ＋ 帖子页 .forum-thread-name）---- */
.forum-page .forum-hl-1 { color: #ff6b6b; }
.forum-page .forum-hl-2 { color: #ffa14d; }
.forum-page .forum-hl-3 { color: #ffd76a; }
.forum-page .forum-hl-4 { color: #7fd07f; }
.forum-page .forum-hl-5 { color: #5fd6d0; }
.forum-page .forum-hl-6 { color: #6cb2ff; }
.forum-page .forum-hl-7 { color: #b48cff; }
.forum-page .forum-hl-8 { color: #9aa0a6; }

/* 高亮的是**标题文字**，不是整行底 —— 底色变亮会把整页的层次拉平。
   ★ 帖子页的 <h1> 里前面还有"置顶/精华"标记，它们不该被染成标题色，
     所以标记的颜色在这里显式钉回来（否则 .forum-hl-N 的颜色会被继承下去）。 */
.forum-page .forum-thread-name .forum-flag {
    color: #e8d9b0;
}

/* ---- 16.2 版主条第二行（内容管理：隐藏/高亮/移动/审核）---- */
.forum-page .forum-modbar2 {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px dashed #5a3a2a;
    font-size: 13px;
    line-height: 2;
}
.forum-page .forum-modlabel {
    display: inline-block;
    margin-right: 10px;
    color: #c8b48a;
}
.forum-page .forum-hl-sel,
.forum-page .forum-move-sel {
    margin-left: 4px;
    padding: 2px 4px;
    background-color: #1a120b;
    color: #e8d9b0;
    border: 1px solid #6d5420;
    border-radius: 3px;
    font-size: 13px;
}
.forum-page .forum-modgroup {
    display: inline-block;
    margin-right: 10px;
}
.forum-page .forum-modtag-wait {
    display: inline-block;
    margin-right: 6px;
    padding: 0 6px;
    background-color: #4a3418;
    color: #ffd76a;
    border: 1px solid #8a6a24;
    border-radius: 3px;
}

/* 第二行的按钮：**故意不复用 .forum-modbtn**（那个类被 js 当成"标记开关"扫）。
   见 lib/site_forum.php 里的那段注释。 */
.forum-page .forum-mbtn {
    margin-right: 8px;
    padding: 3px 12px;
    background-color: #2a1614;
    color: #e8d9b0;
    border: 1px solid #6d5420;
    border-radius: 3px;
    font-size: 13px;
    cursor: pointer;
}
.forum-page .forum-mbtn:hover { color: #ffe9a8; border-color: #8a6a24; }
.forum-page .forum-mbtn.is-busy { opacity: .6; cursor: default; }

/* 通过 = 正面（绿），驳回 = 负面（红）—— 与"中国股市红涨绿跌"无关，
   这里用的是**语义色**（通过/拒绝），两者不该混为一谈。 */
.forum-page .forum-mbtn-ok {
    background-color: #1f3a24;
    border-color: #3f7a4a;
    color: #b6f0bd;
}
.forum-page .forum-mbtn-ok:hover { color: #d8ffe0; border-color: #5aa368; }
.forum-page .forum-mbtn-no {
    background-color: #3a1f1f;
    border-color: #8a3a3a;
    color: #ffb3b3;
}
.forum-page .forum-mbtn-no:hover { color: #ffd6d6; border-color: #b04a4a; }

/* 隐藏主题 = 破坏性动作：用暗红底＋橙红字，让它与"通过"在视觉上分得开 */
.forum-page .forum-mbtn-del {
    background-color: #3a2016;
    border-color: #8a4a18;
    color: #ffb26b;
}
.forum-page .forum-mbtn-del:hover { color: #ffd9a8; border-color: #b06a24; }

/* ---- 16.3 楼层内的"删除此楼 / 恢复此楼" ---- */
.forum-page .forum-post-del {
    margin-left: 8px;
    padding: 1px 8px;
    background-color: transparent;
    color: #d08a5a;
    border: 1px solid #6d4a2a;
    border-radius: 3px;
    font-size: 12px;
    cursor: pointer;
}
.forum-page .forum-post-del:hover { color: #ffd9a8; border-color: #8a6a24; }
.forum-page .forum-post-del.is-restore {
    color: #b6f0bd;
    border-color: #3f7a4a;
}
.forum-page .forum-post-del.is-restore:hover { color: #d8ffe0; }

/* ---- 16.4 被版主隐藏的楼（只有版主看得到这种行）----
   ★ 用"降透明 + 虚线边"而不是 display:none —— 版主需要看见它才能点"恢复"，
     藏起来等于把恢复入口也藏了（单程票）。 */
.forum-page .forum-floor.is-hidden {
    opacity: .55;
    border: 1px dashed #8a3a3a;
}
.forum-page .forum-floor.is-hidden .forum-floor-content {
    text-decoration: line-through;
    text-decoration-color: #8a3a3a;
}
.forum-page .forum-flag-hide {
    display: inline-block;
    margin-left: 8px;
    padding: 0 6px;
    background-color: #3a1f1f;
    color: #ffb3b3;
    border: 1px solid #8a3a3a;
    border-radius: 3px;
    font-style: normal;
    font-size: 12px;
}

/* ---- 16.5 窄屏：第二行的下拉/按钮都要能换行，不能横向溢出 ---- */
@media (max-width: 860px) {
    .forum-page .forum-modbar2 {
        display: block;
    }
    .forum-page .forum-modlabel,
    .forum-page .forum-mbtn,
    .forum-page .forum-modgroup {
        margin-bottom: 6px;
    }
    .forum-page .forum-hl-sel,
    .forum-page .forum-move-sel {
        max-width: 46%;
    }
}

/* ==========================================================================
   13c. 玩家头像与资料页链接（阶段4A · 第 196 轮）
   --------------------------------------------------------------------------
   ★ 新增样式一律用**新类名**（.forum-ava-link），对既有类只做"追加盖掉"：
     改同一个选择器的老规则是白干 —— 末层 CSS 里有 !important 收口，抢不赢。
   ★ .forum-avatar 原有 line-height:54px（给"首字色块"垂直居中用）。
     有头像图时那个行高会变成**图片下方的一段空隙**（img 是块级子元素，
     不参与行高，但外层 span 的行高仍在）⇒ 必须把 .has-img 那一档归零。
     这与 .sp-avatar / .um-avatar 踩的是同一个坑，三处写法保持一致。
   ========================================================================== */

/* ---------- 有图：撤掉首字色块的渐变红底，把图铺满圆形 ---------- */
.forum-page .forum-avatar.has-img {
    background-image: none;
    background-color: #241c14;
    line-height: 0;
}
.forum-page .forum-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    -o-object-fit: cover;
    object-fit: cover;
}
/* ★ 图铺的正好是"内容盒"（54-2×1px 边框 = 52），而图自己的 50% 圆角 = 26px，
   与外框的**内侧**圆角（27-1 = 26）严丝合缝 —— 所以金环不会露出缺口，
   也不需要给 width/height 再写死一套尺寸（改尺寸只需改 .forum-avatar 一处）。 */

/* ---------- 头像链接：包一层 <a> 之后必须和原来的 <span> 一样是"中线行内块" ----------
   ★ 不加这条，窄屏那一档（头像与用户名横排）会因为 <a> 自己的基线把整行
     往下顶几像素；桌面档头像独占一行、居中，反而看不出问题。
   ★ color:inherit 不是随手加的：探针量到 `.forum-ava-link` 的 computed color 是
     浏览器默认链接蓝 rgb(0,0,238) —— 平时看不出（那层里没有文字），
     但**头像图一旦加载失败**，alt 里的首字就会以亮蓝显示在暖棕底上，
     于是"裂图"变成"裂图 + 一个突兀的蓝字"。这一条让它在任何情况下都是暖色。 */
.forum-page .forum-ava-link {
    display: inline-block;
    vertical-align: middle;
    line-height: 0;
    color: inherit;
}

/* ---------- 作者名可点：沿用原字色，只在下划线与悬停上给"能点"的反馈 ---------- */
.forum-page .forum-floor-user a,
.forum-page .forum-author-name a {
    color: inherit;
    text-decoration: none;
}
.forum-page .forum-floor-user a:hover,
.forum-page .forum-author-name a:hover {
    color: #ffe9a8;
    text-decoration: underline;
}

/* --------------------------------------------------------------------------
   13d. 修正：帖子标题条里的「精华」标签几乎看不见（第 196 轮量到）
   --------------------------------------------------------------------------
   ★★ 这是**真缺陷**，不是探针误报，级联可以推出来：
      .forum-thread-name .forum-flag { color:#e8d9b0 }   ← 第 16.x 节的"统一浅色"
      比 .forum-flag-ess { color:#2a1608 } 特异性高（0,3,0 > 0,2,0），
      于是亮金底 #e0b95c 上被盖成浅米色文字 ⇒ 对比度 1.33（探针实测）。
   ★ 那条浅色的本意是给「置顶/已锁定」这类**深底**标签用的（它们的底 #a41610 /
     #241a0f 配浅字才对）。所以这里**只**把亮底的那一个改回深字，
     不去动那条"统一浅色"规则本身（改它会连带影响另外两个标签）。
   ★ 写法是**追加在文件末尾**（同特异性 0,3,0 + 写得更晚 = 盖掉），
     原规则留在原地 —— 本项目不删历史 CSS。
   -------------------------------------------------------------------------- */
.forum-page .forum-thread-name .forum-flag-ess { color: #2a1608; }

/* --------------------------------------------------------------------------
   13e. 修正：弱化文字在深底上普遍偏暗（第 199 轮量到）
   --------------------------------------------------------------------------
   ★ 判据来自**像素取样**（不是推算）：`check_contrast.py` 给出的「有效背景」
     在 5 组 FAIL 元素上逐一向截图取众数色复核，**5/5 完全吻合**
     （#0a0705 / #150e08 / #100b07 / #241a0f）⇒ 该页底色是实色块、
     底层位图未参与着色，合成值可信。
   ★ 于是这 4 个「弱化文字」共用色就是**调色板级**偏暗：
     #8d7a58 L=0.203 / #7d6c4c L=0.156 / #6b5c42 L=0.112 / #5a4a30 L=0.073，
     在论坛最亮的深底 #241a0f（L=0.0115）上分别只有 4.11 / 3.75 / 2.95 / 2.35。
     要过 4.5（正文）需文字 L ≥ 0.2267，所以整体上移一档：
       #8d7a58 → #a68d5f（L 0.280）—— 复用调色板里已有的「字 #a68d5f」
       #7d6c4c → #9c8760（L 0.252）
       #6b5c42 → #9c8760（L 0.252）
     两档梯度仍在（0.280 > 0.252），主文字 #c4aa79（L 0.419）依旧明显更亮。
   ★ 分隔符 #5a4a30 → #96845e（L 0.238；对 #0a0705 = 5.51 / 对 #241a0f = 4.68）：
     它其实只是 CSS 画的装饰性 ›，按 WCAG 1.4.11「非文本」3:1 就够；
     但探针按 13px 正文（4.5）判它。与其留一行"永远红"再靠人工豁免，
     不如一次提到过线 —— 提亮量很小，它仍明显暗于面包屑文字
     #a68d5f（L 0.280），层次不丢。
   ★★ 剩下两处 #5a4a30 **故意不动**：
     `.forum-page-btn.is-disabled`（失效控件，WCAG 1.4.3 豁免；
       提亮会让它看起来"能点"）
     `.forum-page-gap`（补位空格子，没有内容）。
   ★ 亮底一侧不受影响：全 CSS 的亮色块（#d8b463/#e0b95c/#ffe9a8）
     一律配深字 #2a1608（`.forum-flag-ess`/`.forum-page-num.is-active`/
     `.forum-act.is-on`/`.forum-report-submit` 四处实测相同）⇒
     "亮底配深字、深底配弱化字"是这套调色板的分法，提亮只作用在深底一侧。
   ★ 写法＝**追加在文件末尾**（同特异性 0,2,0 + 写得更晚 = 盖掉），
     原规则留在原地 —— 本项目不删历史 CSS。顺序按原行号，
     与原层叠先后一致（`.forum-last-user,.forum-last-time` 在前、
     `.forum-last-time` 在后 ⇒ 后者仍赢）。
   -------------------------------------------------------------------------- */
.forum-page .forum-group-mod { color: #a68d5f; }
.forum-page .forum-board-intro { color: #a68d5f; }
.forum-page .forum-last-empty { color: #9c8760; }
.forum-page .forum-gcell-last { color: #9c8760; }
.forum-page .forum-crumb { color: #a68d5f; }
.forum-page .forum-crumb-sep { color: #96845e; }
.forum-page .forum-thread-table thead th { color: #a68d5f; }
.forum-page .forum-th-summary { color: #a68d5f; }
.forum-page .forum-th-time { color: #9c8760; }
.forum-page .forum-last-user, .forum-page .forum-last-time { color: #a68d5f; }
.forum-page .forum-last-time { color: #9c8760; }
.forum-page .forum-thread-stats { color: #a68d5f; }
.forum-page .forum-floor-meta { color: #9c8760; }
.forum-page .forum-reply-as { color: #a68d5f; }
.forum-page .forum-reply-closed { color: #a68d5f; }
.forum-page .forum-page-info { color: #9c8760; }
.forum-page .forum-empty { color: #a68d5f; }
.forum-page .forum-maintain p { color: #a68d5f; }
.forum-page .forum-search-input::-webkit-input-placeholder { color: #9c8760; }
.forum-page .forum-search-info { color: #a68d5f; }
.forum-page .forum-slide.is-empty { color: #9c8760; }
.forum-page .forum-linelist-empty { color: #9c8760; }
.forum-page .forum-online-num { color: #a68d5f; }
.forum-page .forum-legend-item { color: #a68d5f; }
.forum-page .forum-online-none { color: #9c8760; }
.forum-page .forum-floor-credit i { color: #9c8760; }
.forum-page .forum-floor-nums { color: #a68d5f; }
.forum-page .forum-floor-nums i { color: #9c8760; }
.forum-page .forum-actions-guest { color: #a68d5f; }
.forum-page .forum-act-tip { color: #a68d5f; }
.forum-page .forum-modbar-tip { color: #a68d5f; }

/* --------------------------------------------------------------------------
   13f. 修正：**论坛首页版块列表**的弱化文字（第 203 轮量到）
   --------------------------------------------------------------------------
   ★ 为什么第 199 轮没抓到（这条比"改了什么"更值得记）：
     #199 是按**色号逐串 grep** 收口的（#8d7a58 / #7d6c4c / #6b5c42 / #5a4a30）。
     而首页这 5 处用的是 **#7d6c4e** —— 与它改掉的 #7d6c4c **只差一个字母**
     （c↔e），亮度一模一样（L=0.156）却整串不匹配
     ⇒ **一个字符让 6 条声明逃过了整轮收口**。
     ★★ 教训：**按色号收口，必须把"近似色"一起捞出来看**
        （这次只要 grep `#7d6c4` 就能同时命中 c/e 两个 —— 收口脚本该按前缀扫）。
     ★ 同一个 #7d6c4e 还有一处 `.forum-btn-post.is-disabled`（失效控件，量到 3.59）——
       按 #199 的既定规则**故意不动**（取的是 WCAG 1.4.3「失效控件豁免」，
       提亮会让它看起来"能点"）。★ 但 #199 的注释把它写成了
       `.forum-page-btn.is-disabled` —— **选择器名写错并不会让 CSS 失效**
       （真正生效的是 `.forum-btn-post.is-disabled`），却会让下一个人 grep 不到、
       以为"这个类不存在"。注释里的选择器名也必须与代码一致。
   ★ 为什么"现在才量到"：首页原先只有 Python 第二实现出的静态页，
     #199 量的是帖子页/版块页；而 `.forum-td-posts` 只出现在**首页的版块列表**里
     （版块页是主题列表，用的是另一张表 `.forum-thread-table`）
     ⇒ **首页从来没被对比度量过**。第 203 轮把首页并进真渲染后第一次量，5 组 FAIL。
   ★ 判据来源＝**像素终审**（不是推算）：`probe_text_bg_pixels.py` 把文字改成
     洋红 #ff00ff 截图，取"文字上下各 3px"的众数底色 —— 三组取样**全部**得到
     `#100b07`，与 `check_contrast.py` 报的「约」值**逐字吻合**
     ⇒ 这里底色是实色块、位图没参与着色，**不是假警**
     （对照第 202 轮 DOWNLOAD 那次：那次是整框取平均骗了人）。
   ★ 取值沿用 #199 的两档（**不发明新色**，两档梯度保持）：
       #7d6c4e L=0.156 → #9c8760 L=0.252（= #199 给同亮度的 #7d6c4c 的那一档）
       #5d5038 L=0.084 → #96845e L=0.238（分隔符档；它正是 <b>3</b><i>/</i><span>7</span> 里的 "/"）
       #40331e L=0.036 → #96845e L=0.238（"|" 分隔符，与 .forum-crumb-sep 同档；
                                            它原来只有 1.59，几乎看不见）
   ★★ `.forum-gcell-num` / `.forum-gcell-lastlink` 是**同一张列表的 grid 变体**
     （版块少时走格子布局）。当前配置下首页**没渲染它**（实测 forum-gcell 命中 0）
     ⇒ 这两条**没有实测值**，是按"同一色号、同一层次"改的 ——
       **证据等级更弱，如实标注**（要更强的证据，得先造一份 grid 配置的夹具）。
   ★ 写法＝追加在文件末尾（同特异性 0,2,0 / 0,2,1 + 写得更晚 = 盖掉），
     原规则留在原地 —— 本项目不删历史 CSS。
   -------------------------------------------------------------------------- */
.forum-page .forum-td-posts { color: #9c8760; }
.forum-page .forum-td-posts i { color: #96845e; }
.forum-page .forum-last-meta { color: #9c8760; }
.forum-page .forum-gcell-num { color: #9c8760; }
.forum-page .forum-gcell-lastlink { color: #a68d5f; }
.forum-page .forum-pipe { color: #96845e; }

/* ==========================================================================
   23. 主题分类（第 212 轮 · 阶段6 第一步）
   --------------------------------------------------------------------------
   三个新元素，各自解决一件事：
       .forum-class-tag    列表行 / 帖子页标题旁的**分类标签**（内容归属）
       .forum-class-bar    版块页顶部的**分类筛选条**（.forum-class-item 是它的项）
       .forum-select       发帖页的**分类下拉**（配 .forum-field-req 那个"必选"小标记）

   ★★ 为什么分类标签用**冷色**（青绿），而所有 .forum-flag 都是暖色：
     .forum-flag 说的是**状态**（置顶/精华/待审/锁定）—— 「这条帖子怎么了」；
     .forum-class-tag 说的是**内容归属** —— 「这条帖子在讲什么」。
     两类信息挤进同一个色系之后，一行里并排的几个标签扫过去分不出哪个是状态、
     哪个是分类；而"分不出来"没人会报，只会觉得这一行有点难读。

   ★ 底色与边框全部取自页面已有的深色层（#14100b / #0d0906 一族），
     刻意**不引入新色阶**；唯一的新色是标签文字青绿 #9ed8c2。
   ★ 对比度**取值已实算**（不是估的）：
       #9ed8c2 on #14231e ≈ 11.0:1     —— 远超 4.5，且比 .forum-flag-lock
                                         那档（#b9a684 on #241a0f）更亮一档，
                                         因为分类标签比"锁定"更常出现
       .forum-class-item  #a68d5f on #1b1610 ≈ 5.6:1
       .is-active         #2a1608 on #d8b463 ≈ 9.9:1（金底深褐字，§13 的既定口径）
       .forum-field-req   #ffe9a8 on #a41610 ≈ 6.3:1（与 .forum-flag-top 同一对色）
   ========================================================================== */
.forum-page .forum-class-tag {
    display: inline-block;
    margin-right: 7px;
    padding: 1px 8px;
    font-size: 11px;
    letter-spacing: 1px;
    vertical-align: middle;
    color: #9ed8c2;
    background-color: #14231e;
    border: 1px solid #33584b;
    border-radius: 2px;
}
.forum-page .forum-class-bar {
    margin: 0 0 14px;
    padding: 9px 12px;
    font-size: 0;                 /* 消 inline-block 之间的空白（与 .forum-toolbar 同法） */
    background-color: #14100b;
    border: 1px solid #2e2113;
}
.forum-page .forum-class-item {
    display: inline-block;
    margin: 3px 6px 3px 0;
    padding: 5px 12px;
    font-size: 12.5px;
    color: #a68d5f;
    background-color: #1b1610;
    border: 1px solid #33260f;
    border-radius: 2px;
    text-decoration: none;
}
.forum-page .forum-class-item:hover {
    color: #f2d68f;
    border-color: #6d5420;
}
.forum-page .forum-class-item.is-active {
    color: #2a1608;
    background-color: #d8b463;
    border-color: #8a6a24;
}
/* 发帖页的分类下拉：与 .forum-input 同一套皮，只多两条 select 特有的 */
.forum-page .forum-select {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: 10px 14px;
    font-size: 14px;
    font-family: inherit;
    color: #e3d0a4;
    background-color: #0d0906;
    border: 1px solid #3a2a12;
    border-radius: 3px;
    outline: none;
}
.forum-page .forum-select:focus {
    border-color: #8a6a24;
    box-shadow: 0 0 0 1px rgba(138, 106, 36, .5);
}
/* ★★ option 必须**显式**给色：Chrome/Edge 在 Windows 上会把展开的列表项按
   「系统默认」画 —— 只设了 <select> 的深底而不管 option 时，
   下拉一展开就是白底白字（选择框本身完全正常，所以只有点开才看得见）。 */
.forum-page .forum-select option {
    color: #e3d0a4;
    background-color: #0d0906;
}
/* 「必选」小标记（放在 .forum-field-label 里）
   ★ 只标**必选**，不标"可选"：可选的答案已经由下拉里第一个选项
     （`未分类` vs `— 请选择分类 —`）说清楚了，再挂一个灰标签是重复信息。
     「只在需要提醒时才出现」也让这个红标更醒目 —— 满屏都是标记时没有标记是醒目的。 */
.forum-page .forum-field-req {
    margin-left: 8px;
    padding: 0 6px;
    font-size: 11px;
    font-style: normal;
    letter-spacing: 1px;
    color: #ffe9a8;
    background-color: #a41610;
    border: 1px solid #d4553a;
    border-radius: 2px;
}
/* 「可选」/「0 = 不限期」这类**说明性**小标记（与 .forum-field-req 成对）
   ★★ 第 215 轮补：这一类在 PHP 里**已被引用 14 处**（分类 / 标签 / 附件 / 投票 /
     悬赏 / 活动 / 辩论 / 阅读权限各格），但 forum.css **从来没有定义过它** ⇒
     一直是继承 .forum-field-label 的颜色（"可选"两个字和"必填"标签一样亮、
     比旁边的输入框还显眼）。它与上面那个是一对：
        req ＝ 必选，红金醒目（**只在真要提醒时才出现**，见上一条注释）
        opt ＝ 可选 / 参数说明，灰金弱化（不抢注意力）
     只定义一半 ⇒ 满屏都在喊，等于没有重点。色值 #a68d5f on #14100b ≈ 5.95:1。 */
.forum-page .forum-field-opt {
    margin-left: 6px;
    font-size: 11.5px;
    font-style: normal;
    color: #a68d5f;
}

/* ==========================================================================
   24. 主题标签（第 213 轮 · 阶段6 第二步）
   --------------------------------------------------------------------------
   五个新元素，全部围绕"标签是全站共享的关键词"这件事：
       .forum-tag           标签**链接**（帖子页 / 列表行 / 标签页热词条共用）
       .forum-tag.is-active 标签页里"当前正在看的那个词"（金底深褐字）
       .forum-tag-sm        列表行内的**小号**标签（20 行挤一屏，主号太大了）
       .forum-tag-bar       热词条容器（标签页底部 / 帖子页标题下的标签条）
       .forum-tag-page-*    标签页头部（大标题 + "共 N 篇"副标）

   ★★ 为什么标签用**冷蓝**，而分类（第 23 节）用**青绿**、状态用**暖色**：
     三类东西的性质完全不同，得能在**同一行里并排出现**还一眼分得清：
       .forum-flag      暖色（红/金/褐）—— 状态：置顶 / 精华 / 待审 / 锁定
       .forum-class-tag 青绿 #9ed8c2   —— 分类：**版块内**的归属（运营维护、单选）
       .forum-tag       冷蓝 #a8c8e8   —— 标签：**全站共享**的关键词（玩家自建、多选）
     青绿与冷蓝同为冷色但**色相相隔**（绿 vs 蓝），并排时不会看成一类；
     若两者都用青绿，"这条帖子归哪个分类"和"它被打了什么标签"就糊在一起了。

   ★ 底色与边框仍取自页面已有的深色层（#14100b / #131b26 一族），
     不引入新色阶；唯一的新色是标签文字冷蓝 #a8c8e8。
   ★ 对比度**已实算**（不是估的）：
       .forum-tag        #a8c8e8 on #131b26 ≈ 10.4:1
       .forum-tag:hover  #d3e6f7 on #16212e ≈ 12.6:1
       .is-active        #2a1608 on #d8b463 ≈ 9.9:1（金底深褐字，§13 既定口径，
                                                    与 .forum-class-item.is-active 同一对色）
       .forum-tag-bar-label #a68d5f on #14100b ≈ 6.5:1
       .forum-tag-page-sub  #a68d5f on #14100b ≈ 6.5:1
   ★★ `.forum-tag-bar` **必须** font-size:0（消 inline-block 之间的空白），
     但子元素若不显式给 font-size 会**继承 0** ⇒ 标签与 label 各自写死字号。
     （与第 23 节 .forum-class-bar 同一手法；漏给字号的表现是"整条词全都不见了" ——
       元素在、只是字宽高为 0，最容易被误判成"没渲染出来"。）
   ========================================================================== */
.forum-page .forum-tag {
    display: inline-block;
    margin: 2px 5px 2px 0;
    padding: 2px 9px;
    font-size: 12px;
    letter-spacing: .5px;
    vertical-align: middle;
    color: #a8c8e8;
    background-color: #131b26;
    border: 1px solid #2f4a63;
    border-radius: 2px;
    text-decoration: none;
}
.forum-page .forum-tag:hover {
    color: #d3e6f7;
    border-color: #4a7ba6;
}
.forum-page .forum-tag.is-active {
    color: #2a1608;
    background-color: #d8b463;
    border-color: #8a6a24;
}
/* 列表行内的小号标签：20 行挤一屏，主号的高度会把行撑开、也会盖过标题 */
.forum-page .forum-tag-sm {
    margin: 1px 4px 1px 0;
    padding: 1px 7px;
    font-size: 11px;
    letter-spacing: 1px;
}
/* 热词条容器（标签页 / 帖子页标题下）。font-size:0 消空白 —— 见上面 ★★ */
.forum-page .forum-tag-bar {
    margin: 0 0 14px;
    padding: 9px 12px;
    font-size: 0;
    background-color: #14100b;
    border: 1px solid #2e2113;
}
.forum-page .forum-tag-bar-label {
    display: inline-block;
    margin-right: 10px;
    font-size: 12px;
    letter-spacing: 1px;
    vertical-align: middle;
    color: #a68d5f;
}
/* 标签页头部（大标题 + 计数副标） */
.forum-page .forum-tag-page-head {
    margin: 0 0 16px;
    padding: 14px 16px;
    background-color: #14100b;
    border: 1px solid #2e2113;
}
.forum-page .forum-tag-page-name {
    margin: 0 0 6px;
    font-size: 20px;
    font-weight: normal;
    letter-spacing: 1px;
    color: #e8d9b0;
}
.forum-page .forum-tag-page-sub {
    margin: 0;
    font-size: 12.5px;
    color: #a68d5f;
}
.forum-page .forum-tag-page-sub b {
    color: #d8b463;
}

/* ==========================================================================
   25. 附件（第 213 轮 · 阶段6 第三步）
   --------------------------------------------------------------------------
   两类共六个新元素，都围绕"附件是**文件**、不是文本"这件事：
       .forum-attach-*      楼层里的附件块（标题条 + 图片缩略 + 文件条）
       .forum-attach-box    **发帖页 / 回复框**的上传区（选文件 + 已选列表）
   两类共用 .forum-attach-list / .forum-attach-item / .forum-attach-ico /
   .forum-attach-name / .forum-attach-meta 五个类 —— 楼层里是"已发布"、
   上传区里是"待发布"，**外观必须一致**，否则玩家会以为传上去的东西变了样。

   ★★ 配色刻意**不碰**已有三族（这是本页族第四个"内容型"元素，要说清它站哪）：
       .forum-flag      暖色（红/金/褐）—— 状态：置顶 / 精华 / 待审 / 锁定
       .forum-class-tag 青绿 #9ed8c2   —— 分类：版块内的归属（运营维护）
       .forum-tag       冷蓝 #a8c8e8   —— 标签：全站共享的关键词（玩家自建）
       .forum-attach    羊皮金 #cdb98a —— 附件：**文件**（可下载的东西）
     四者可能同屏（一条置顶的、带分类和标签、还挂了附件的帖子），所以色相要拉开：
     暖 / 青绿 / 冷蓝 / 羊皮金。附件这一族选的是**页面既有的"正文色"家族**
     （#e8d9b0 / #a68d5f 那一支），因为附件名与正文一样是"要读的内容"，
     而不是"要一眼分辨的状态"—— 它与上面三族不会看混，因为它是唯一不带
     "徽标形态"（没有小圆角底、没有描边块）的一族。
   ★ 底色与边框仍取自页面已有的深色层（#14100b / #2e2113 一族），不引入新色阶。

   ★ 对比度**已实算**（不是估的）：
       .forum-attach-name       #cdb98a on #14100b ≈ 9.8:1
       .forum-attach-name:hover #d8b463 on #14100b ≈ 9.6:1
       .forum-attach-label      #a68d5f on #14100b ≈ 6.0:1
       .forum-attach-num /
       .forum-attach-meta /
       .forum-attach-hint /
       .forum-attach-off        #9a8760 on #14100b ≈ 5.4:1
       .forum-attach-ico        #b99a63 on #241c12 ≈ 6.3:1
       .forum-attach-pick       #f0dcae on #5a4318 ≈ 6.9:1
       .forum-attach-del        #e0a89a on #2a1410 ≈ 8.5:1
     ★ 次要文字一开始取的是 #7d6a48（≈3.6:1，不达标）与 #6f6252（≈3.2:1），
       两个都实算后才往上调到 #9a8760 —— 这类"看着还行"的暗字正是最容易被
       放过的一类（§40 那三轮修正说的就是它）。

   ★★ `.forum-attach-head` **必须** font-size:0（消 inline-block 之间的空白），
     子元素各自写死字号 —— 与 .forum-tag-bar / .forum-class-bar 同一手法。
     漏给字号的表现是"整条字都不见了"（元素在、宽高为 0），第 23/24 节记过两次。
   ========================================================================== */
.forum-page .forum-attach {
    margin: 14px 0 0;
    padding: 10px 12px;
    background-color: #14100b;
    border: 1px solid #2e2113;
    border-left: 3px solid #6b5426;
}
.forum-page .forum-attach-head {
    margin: 0 0 8px;
    font-size: 0;
}
.forum-page .forum-attach-label {
    display: inline-block;
    margin-right: 8px;
    font-size: 12px;
    letter-spacing: 1px;
    vertical-align: middle;
    color: #a68d5f;
}
.forum-page .forum-attach-num {
    display: inline-block;
    font-size: 11px;
    letter-spacing: 1px;
    vertical-align: middle;
    color: #9a8760;
}
/* ---- 图片缩略（2~4 张一行，超出自动换行）---- */
.forum-page .forum-attach-thumbs {
    margin: 0 0 8px;
    font-size: 0;
}
.forum-page .forum-attach-thumb {
    display: inline-block;
    width: 84px;
    height: 84px;
    margin: 0 6px 6px 0;
    vertical-align: middle;
    overflow: hidden;
    background-color: #0e0b07;
    border: 1px solid #2e2113;
}
.forum-page .forum-attach-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/* ---- 文件条 ---- */
.forum-page .forum-attach-list {
    margin: 0;
    padding: 0;
    list-style: none;
}
.forum-page .forum-attach-item {
    padding: 5px 0;
    font-size: 0;
    border-top: 1px dashed #241c12;
}
.forum-page .forum-attach-item:first-child {
    border-top: 0;
}
.forum-page .forum-attach-ico {
    display: inline-block;
    width: 46px;
    margin-right: 8px;
    overflow: hidden;
    font-size: 10px;
    line-height: 16px;
    letter-spacing: .5px;
    text-align: center;
    vertical-align: middle;
    color: #b99a63;
    background-color: #241c12;
    border: 1px solid #3a2c1a;
    border-radius: 2px;
}
.forum-page .forum-attach-name {
    display: inline-block;
    max-width: 62%;
    overflow: hidden;
    font-size: 13px;
    vertical-align: middle;
    white-space: nowrap;
    text-overflow: ellipsis;
    color: #cdb98a;
    text-decoration: none;
}
.forum-page .forum-attach-name:hover {
    color: #d8b463;
    text-decoration: underline;
}
.forum-page .forum-attach-meta {
    display: inline-block;
    margin-left: 10px;
    font-size: 11.5px;
    vertical-align: middle;
    color: #9a8760;
}
.forum-page .forum-attach-meta i {
    margin-left: 8px;
    font-style: normal;
}
/* 上传区里的小缩略（28px，跟着文件名走） */
.forum-page .forum-attach-thumb-sm {
    display: inline-block;
    width: 28px;
    height: 28px;
    margin-right: 7px;
    vertical-align: middle;
    object-fit: cover;
    background-color: #0e0b07;
    border: 1px solid #2e2113;
}
/* ---- 上传区（发帖页 / 回复框共用）---- */
.forum-page .forum-attach-box {
    margin: 14px 0 0;
    padding: 12px;
    background-color: #14100b;
    border: 1px dashed #3a2c1a;
}
.forum-page .forum-attach-box.is-off {
    padding: 10px 12px;
    border-style: solid;
    border-color: #2e2113;
}
.forum-page .forum-attach-bar {
    font-size: 0;
}
.forum-page .forum-attach-pick {
    display: inline-block;
    padding: 6px 14px;
    font-size: 13px;
    letter-spacing: 1px;
    vertical-align: middle;
    cursor: pointer;
    color: #f0dcae;
    background-color: #5a4318;
    border: 1px solid #8a6a24;
    border-radius: 2px;
}
.forum-page .forum-attach-pick:hover {
    background-color: #6d5220;
}
/* ★ 原生 file 控件视觉隐藏但**留在布局里**（1px、透明）。
   用 display:none 的话部分内核里 .click() 不再弹选择框 —— 那正是本控件唯一的用途。
   ★★★ 与「气泡 display:block 会撑满」那条教训同源：这里**不看 computed 对不对**，
     只看"点了按钮会不会弹窗"，所以样式上选了最保守的"留在盒子里、只是看不见"。 */
.forum-page .forum-attach-file {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    padding: 0;
    overflow: hidden;
    opacity: 0;
    border: 0;
}
.forum-page .forum-attach-hint {
    display: inline-block;
    margin-left: 10px;
    font-size: 11.5px;
    line-height: 1.6;
    vertical-align: middle;
    color: #9a8760;
}
.forum-page .forum-attach-picked {
    margin: 10px 0 0;
}
.forum-page .forum-attach-del {
    display: inline-block;
    margin-left: 10px;
    padding: 2px 10px;
    font-size: 12px;
    vertical-align: middle;
    cursor: pointer;
    color: #e0a89a;
    background-color: #2a1410;
    border: 1px solid #5a2a20;
    border-radius: 2px;
}
.forum-page .forum-attach-del:hover {
    color: #ffd0c4;
    border-color: #8a4030;
}
.forum-page .forum-attach-del:disabled {
    opacity: .55;
    cursor: default;
}
.forum-page .forum-attach-off {
    font-size: 12.5px;
    letter-spacing: .5px;
    color: #9a8760;
}
/* ---- 窄屏：缩略图缩小、文件名不再抢占过半行宽 ---- */
@media screen and (max-width: 860px) {
    .forum-page .forum-attach-thumb {
        width: 66px;
        height: 66px;
    }
    .forum-page .forum-attach-name {
        max-width: 46%;
    }
    .forum-page .forum-attach-ico {
        width: 38px;
    }
}

/* ==========================================================================
   26. 投票（第 213 轮 · 阶段6 第四步 A8）
   --------------------------------------------------------------------------
   两类元素，分别落在**两个页面**（没有任何一页同时出现）：
       .forum-poll-*       帖子页的投票块（头 + 选项列表 + 进度条 + 提交）
       .forum-poll-box     发帖页的「发起投票」区（复选框 + 收起的面板）

   ★★ 配色刻意**不引入第五个色相**（这一点与第 25 节附件那一族相反，要说清）：
       第 25 节说"四族可能同屏，色相要拉开"—— 那是针对**徽标**（flag / 分类 /
       标签 / 附件的小块标记）。而投票块**不是一个徽标，是一张卡**：
       它占的是整幅正文宽度、与 `.forum-thread-head` / `.forum-post-card`
       同级。卡片用徽标那一套"高饱和标记色"会立刻把版面变成拼色板
       （一整块青绿或冷蓝的卡，比任何徽标都抢眼）。
      ⇒ 所以它取的是页面**结构色**（同 .forum-post-card 那一族）：
         面板 #14100b / 内槽 #1a1209 / 描边 #3a2c1a·#2e2113 / 标题金 #d8b463。
      ★ 唯一一处"属于投票自己"的颜色是**进度条填充** #b8892f ——
        它必须比底色亮、又必须比标题金暗（否则一条满格的条会盖过问题本身）。

   ★ 对比度**已实算**（不是估的，脚本见工程细则 §55）：
       .forum-poll-q         #d8b463 on #14100b ≈ 9.59:1
       .forum-poll-text      #e8d9b0 on #1a1209 ≈ 13.21:1
       .forum-poll-num       #cdb98a on #1a1209 ≈ 9.61:1
       .forum-poll-mine      #1a1209 on #d8b463 ≈ 9.37:1   （反白小徽标）
       .forum-poll-done      #cdb98a on #14100b ≈ 9.83:1
       .forum-poll-meta      #a68d5f on #14100b ≈ 5.95:1   （与 .forum-tag-bar-label 同值）
       .forum-poll-ico       #f0dcae on #5a4318 ≈ 6.91:1   （与 .forum-attach-pick 同值）
     全部 ≥ 5.9，最弱的一对（meta / tip）用的正是页面既有的"弱化文字"色
     #a68d5f —— 它已经在第 13 节被定过一轮，不再另造一个更暗的灰。
   ========================================================================== */

/* ---- 帖子页：投票卡 ---- */
.forum-page .forum-poll {
    margin: 14px 0 0;
    padding: 14px 16px;
    background-color: #14100b;
    border: 1px solid #3a2c1a;
    /* ★ 左侧这道粗金线是"这是一场投票"的**唯一**标记（不加第五个色相、
       也不加图标族的第六个）—— 一条 3px 的边比一整块彩色底要轻得多。 */
    border-left: 3px solid #8a6a24;
}
.forum-page .forum-poll-head {
    position: relative;
    padding-left: 34px;
    min-height: 24px;
}
.forum-page .forum-poll-ico {
    position: absolute;
    left: 0;
    top: 0;
    width: 24px;
    height: 24px;
    line-height: 24px;
    text-align: center;
    font-size: 13px;
    font-style: normal;
    color: #f0dcae;
    background-color: #5a4318;
    border: 1px solid #8a6a24;
    border-radius: 2px;
}
.forum-page .forum-poll-q {
    margin: 0;
    font-size: 15px;
    font-weight: normal;
    line-height: 24px;
    letter-spacing: .5px;
    color: #d8b463;
}
.forum-page .forum-poll-meta {
    display: block;
    margin-top: 6px;
    font-size: 12.5px;
    letter-spacing: .5px;
    color: #a68d5f;
}

/* ---- 选项列表 ---- */
.forum-page .forum-poll-opts {
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
}
.forum-page .forum-poll-opt {
    margin-bottom: 8px;
}
.forum-page .forum-poll-opt:last-child {
    margin-bottom: 0;
}
.forum-page .forum-poll-label {
    position: relative;
    display: block;
    padding: 7px 10px;
    /* ★ 右侧留出票数那一格的固定宽度 —— 用 absolute 定位票数（见下），
       就不必担心"选项文案很长时长文本压到票数上"。
       留 104px = 票数最宽情形（"12345 票 · 100%"）约 90px + 一点余量。 */
    padding-right: 104px;
    background-color: #1a1209;
    border: 1px solid #2e2113;
    border-radius: 2px;
    cursor: pointer;
}
.forum-page .forum-poll-form .forum-poll-label:hover {
    border-color: #8a6a24;
}
.forum-page .forum-poll-input {
    margin: 0 8px 0 0;
    vertical-align: middle;
}
.forum-page .forum-poll-text {
    font-size: 13.5px;
    letter-spacing: .5px;
    vertical-align: middle;
    color: #e8d9b0;
}
.forum-page .forum-poll-mine {
    display: inline-block;
    margin-left: 8px;
    padding: 0 6px;
    font-size: 11px;
    font-style: normal;
    line-height: 17px;
    vertical-align: middle;
    color: #1a1209;
    background-color: #d8b463;
    border-radius: 2px;
}
.forum-page .forum-poll-num {
    position: absolute;
    right: 10px;
    top: 7px;
    font-size: 12.5px;
    letter-spacing: .5px;
    color: #cdb98a;
}

/* ---- 进度条 ---- */
.forum-page .forum-poll-bar {
    display: block;
    margin-top: 5px;
    height: 8px;
    background-color: #241a10;
    border: 1px solid #2e2113;
    border-radius: 4px;
    overflow: hidden;
}
/* ★ 宽度是**内联 style="width:N%"**（数据驱动，见 forumRenderPollOptionRow 的注释）。
   这里只管"长什么样"：颜色、圆角、高度。 */
.forum-page .forum-poll-bar-fill {
    display: block;
    height: 100%;
    background-color: #b8892f;
}

/* ---- 底部（提示 + 提交按钮）---- */
.forum-page .forum-poll-foot {
    margin-top: 12px;
    font-size: 0;              /* 消 inline-block 之间的空白（与 .forum-toolbar 同法） */
}
.forum-page .forum-poll-tip {
    display: inline-block;
    margin-right: 12px;
    font-size: 12.5px;
    letter-spacing: .5px;
    vertical-align: middle;
    color: #a68d5f;
}
.forum-page .forum-poll-tip.is-ok {
    /* ★ 与 .forum-form-tip.is-ok **同一个绿**（第 760 行那一对）：
       "成功"在一个页面里只能有一种颜色，否则玩家会以为两种绿代表两回事。 */
    color: #7fae6a;
}
/* ★ 选择器刻意比 .forum-page .forum-btn-submit（第 769 行）**长一段**：
   那个类在页面别处是 10px 30px 的大按钮（发帖 / 回复那种主操作），
   投票提交只是卡里的一行小动作。两条规则特异性若相同，就只能靠"谁写在后面"
   分胜负 —— 那是把结果押在文件顺序上（以后有人把第 26 节往前挪就翻车）。
   ⇒ 选择器更长 = 结果不依赖顺序。 */
.forum-page .forum-poll-foot .forum-poll-submit {
    padding: 8px 22px;
    font-size: 13px;
}
/* 不能投票时的结果态：一句"为什么投不了 / 已经结束了" */
.forum-page .forum-poll-done {
    margin-top: 12px;
    padding: 8px 12px;
    font-size: 12.5px;
    letter-spacing: .5px;
    color: #cdb98a;
    background-color: #1a1209;
    border: 1px solid #2e2113;
    border-radius: 2px;
}

/* ---- 发帖页：「发起投票」区 ---- */
.forum-page .forum-poll-box {
    margin: 14px 0 0;
    padding: 12px;
    background-color: #14100b;
    border: 1px dashed #3a2c1a;
}
.forum-page .forum-poll-toggle {
    display: block;
    cursor: pointer;
}
.forum-page .forum-poll-toggle-text {
    font-size: 13px;
    letter-spacing: .5px;
    vertical-align: middle;
    color: #e8d9b0;
}
.forum-page .forum-poll-toggle input {
    margin: 0 8px 0 0;
    vertical-align: middle;
}
/* ★★ 面板**默认收起**：靠 .forum-poll-box.is-open 打开（JS 只切这一个类名）。
   用 display 而不是 height/max-height 动画 —— 收起时它必须**完全**不占位，
   否则会留下 12px 的空档（那种"看起来少了点什么"最难被发现）。 */
.forum-page .forum-poll-panel {
    display: none;
}
.forum-page .forum-poll-box.is-open .forum-poll-panel {
    display: block;
}
.forum-page .forum-poll-box.is-open .forum-poll-toggle {
    margin-bottom: 10px;
}
.forum-page .forum-poll-options {
    min-height: 96px;
    resize: vertical;
}
/* 两个数字格：给一个够放 3 位数的宽度（365 / 10），不让它铺满整行 ——
   铺满会让"投票天数"看起来像一格自由文本，而它其实只有 0~365。 */
.forum-page .forum-poll-choice,
.forum-page .forum-poll-days {
    width: 110px;
}

/* ---- 窄屏：选项文案不再与票数争宽度（票数换行到下面一行）---- */
@media screen and (max-width: 860px) {
    .forum-page .forum-poll {
        padding: 12px;
    }
    .forum-page .forum-poll-label {
        padding-right: 10px;
    }
    .forum-page .forum-poll-num {
        position: static;
        display: block;
        margin-top: 4px;
        text-align: right;
    }
}

/* ==========================================================================
   27. 悬赏（第 213 轮 · 阶段6 第四步 A8-②）
   --------------------------------------------------------------------------
   三类元素，落在**两个页面**（帖子页与发帖页，没有任何一页同时出现）：
       .forum-bounty-*       帖子页的悬赏卡片（赏金 + 状态 + 撤回）
       .forum-bounty-box     发帖页的「发布悬赏」区（复选框 + 收起的面板）
       .forum-bounty-accept  楼层 meta 行里的「采纳为最佳答案」按钮
       .forum-flag-best      被采纳那一楼的「最佳答案」徽标（复用 .forum-flag 一族）

   ★★ 配色沿用页面**结构色**（与第 26 节投票同一族，理由见那一段：卡不是徽标，
      用高饱和标记色会把版面变成拼色板）：
       面板 #14100b / 内槽 #1a1209 / 描边 #3a2c1a·#2e2113 / 弱化字 #a68d5f。
      ★ 属于悬赏自己的**只有一个色**：#e8c877（更亮的金）—— 只用在**赏金数额**上。
        理由很直接：整张卡里最该被一眼看到的就是"多少钱"，而它又不能借用投票那支
        进度条金（#b8892f 是"比例"的语义）。⇒ 一个数、一个色。
      ★ 左侧那道 3px 金线（#a8801f）是"这是一份悬赏"的标记，与投票的 #8a6a24
        刻意错开半档 —— 两者不会同屏，但截图对比时能一眼分清是哪种特殊主题。

   ★ 对比度**已实算**（脚本见工程细则 §56）：
       .forum-bounty-amount b   #e8c877 on #14100b ≈ 11.7:1
       .forum-bounty-done       #e8c877 on #14100b ≈ 11.7:1
       .forum-bounty-amount     #cdb98a on #14100b ≈ 9.8:1
       .forum-bounty-tip/refund #cdb98a on #14100b ≈ 9.8:1
       .forum-flag-best         #14100b on #c8a24a ≈ 7.9:1   （反白小徽标）
       .forum-bounty-accept     #f0dcae on #5a4318 ≈ 6.9:1   （与 .forum-attach-pick 同值）
       .forum-bounty-meta/note  #a68d5f on #14100b ≈ 5.95:1  （与 .forum-tag-bar-label 同值）
   ========================================================================== */

/* ---- 帖子页：悬赏卡 ---- */
.forum-page .forum-bounty {
    margin: 14px 0 0;
    padding: 14px 16px;
    background-color: #14100b;
    border: 1px solid #3a2c1a;
    /* ★ 左侧这道粗金线是"这是一份悬赏"的**唯一**标记（同投票：一条 3px 的边
       比一整块彩色底要轻得多）。色值比投票那支亮半档，见本节头注。 */
    border-left: 3px solid #a8801f;
}
.forum-page .forum-bounty-head {
    position: relative;
    padding-left: 34px;
    min-height: 24px;
}
.forum-page .forum-bounty-ico {
    position: absolute;
    left: 0;
    top: 0;
    width: 24px;
    height: 24px;
    line-height: 24px;
    text-align: center;
    font-size: 13px;
    font-style: normal;
    color: #f0dcae;
    background-color: #5a4318;
    border: 1px solid #8a6a24;
    border-radius: 2px;
}
.forum-page .forum-bounty-amount {
    font-size: 13.5px;
    letter-spacing: .5px;
    vertical-align: middle;
    color: #cdb98a;
}
/* 数额比周围大一档、也更亮 —— 见本节头注"一个数、一个色" */
.forum-page .forum-bounty-amount b {
    font-size: 19px;
    font-weight: normal;
    color: #e8c877;
}
.forum-page .forum-bounty-meta {
    display: block;
    margin-top: 6px;
    font-size: 12.5px;
    letter-spacing: .5px;
    color: #a68d5f;
}
.forum-page .forum-bounty-body {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #2e2113;
}
.forum-page .forum-bounty-tip,
.forum-page .forum-bounty-done,
.forum-page .forum-bounty-refund {
    font-size: 13px;
    letter-spacing: .5px;
    color: #cdb98a;
}
/* 已采纳 = 好消息，用那支亮金；已退回只是"回到原样"，用中性色（继承上面那条） */
.forum-page .forum-bounty-done {
    color: #e8c877;
}
/* 撤回按钮：复用 .forum-btn-submit 的色泽，但要**撤掉它的 float:right**
   （那在发帖 / 回复区是对的，在这张卡里会让按钮跑到最右边）。 */
.forum-page .forum-bounty-withdraw {
    float: none;
    display: inline-block;
    margin-top: 12px;
    padding: 8px 22px;
    font-size: 13px;
    letter-spacing: 1px;
}

/* ---- 楼层上：采纳按钮 / 最佳答案徽标 ---- */
.forum-page .forum-bounty-accept {
    margin-left: 8px;
    padding: 2px 10px;
    font-family: inherit;
    font-size: 12px;
    letter-spacing: .5px;
    vertical-align: middle;
    color: #f0dcae;
    background-color: #5a4318;
    border: 1px solid #8a6a24;
    border-radius: 2px;
    cursor: pointer;
}
.forum-page .forum-bounty-accept:hover {
    background-color: #6b5120;
}
/* 与 .forum-flag 基础类合用（渲染为 class="forum-flag forum-flag-best"）：
   基础类给形状，这条只给色 —— 与 .forum-flag-top / -ess 同一手法。 */
.forum-page .forum-flag-best {
    color: #14100b;
    background-color: #c8a24a;
    border: 1px solid #8a6a24;
}

/* ---- 发帖页：「发布悬赏」区 ---- */
.forum-page .forum-bounty-box {
    margin: 14px 0 0;
    padding: 12px;
    background-color: #14100b;
    border: 1px dashed #3a2c1a;
}
.forum-page .forum-bounty-toggle {
    display: block;
    cursor: pointer;
}
.forum-page .forum-bounty-toggle-text {
    font-size: 13px;
    letter-spacing: .5px;
    vertical-align: middle;
    color: #e8d9b0;
}
.forum-page .forum-bounty-toggle input {
    margin: 0 8px 0 0;
    vertical-align: middle;
}
/* ★★ 面板**默认收起**：靠 .forum-bounty-box.is-open 打开（JS 只切这一个类名）。
   用 display 而不是 height/max-height —— 收起时必须**完全**不占位，
   否则会留下 12px 的空档（那种"看起来少了点什么"最难被发现）。 */
.forum-page .forum-bounty-panel {
    display: none;
}
.forum-page .forum-bounty-box.is-open .forum-bounty-panel {
    display: block;
}
.forum-page .forum-bounty-box.is-open .forum-bounty-toggle {
    margin-bottom: 10px;
}
.forum-page .forum-bounty-note {
    margin: 4px 0 0;
    font-size: 12.5px;
    line-height: 1.8;
    letter-spacing: .5px;
    color: #a68d5f;
}
/* 两个数字格：给一个够放 4~5 位数的宽度，不让它铺满整行（同 .forum-poll-days） */
.forum-page .forum-bounty-amt,
.forum-page .forum-bounty-days {
    width: 130px;
}

/* ---- 窄屏：卡片收紧内距；采纳按钮换行到下一行，不与时间挤在一起 ---- */
@media screen and (max-width: 860px) {
    .forum-page .forum-bounty {
        padding: 12px;
    }
    .forum-page .forum-bounty-amount b {
        font-size: 17px;
    }
    .forum-page .forum-bounty-accept {
        display: block;
        margin: 6px 0 0;
    }
}

/* ==========================================================================
   28. 活动（第 213 轮 · 阶段6 第五步 A8-③）
   --------------------------------------------------------------------------
   三类元素，落在**两个页面**（帖子页与发帖页，没有任何一页同时出现）：
       .forum-activity-*       帖子页的活动卡（时间 / 地点 / 报名 / 名单）
       .forum-activity-box     发帖页的「发起活动」区（复选框 + 收起的面板）
       .forum-activity-btn     卡片上的「我要报名」按钮

   ★★ 配色沿用页面**结构色**（与第 26 节投票 / 第 27 节悬赏同一族）：
       面板 #14100b / 内槽 #1a1209 / 描边 #3a2c1a·#2e2113 / 弱化字 #a68d5f。
      ★ 属于活动自己的**只有一个色**：#6d7a3c（暗橄榄绿）—— 只用在左侧那道 3px 线
        与「活」字章的描边上。三张卡（投票 / 悬赏 / 活动）永不同屏，但截图对比时
        要能一眼分清是哪种特殊主题，所以三条左线刻意各错开半档：
          投票 #8a6a24（偏褐金）· 悬赏 #a8801f（亮金）· 活动 #6d7a3c（橄榄绿）。
      ★ 为什么活动用绿而不是再借一支金：这三族里只有它是"要去做的事"（时间 + 地点），
        用一支冷一档的绿与"奖（金）/ 比例（金）"分开，读起来更像日程而不是奖赏。

   ★ 对比度**已实算**（脚本见工程细则 §57）：
       .forum-activity-fact     #cdb98a on #14100b ≈ 9.8:1
       .forum-activity-who      #d8b463 on #14100b ≈ 9.6:1
       .forum-activity-input    #e8d9b0 on #1a1209 ≈ 13.2:1
       .forum-activity-ico      #f0dcae on #4c5626 ≈ 6.1:1   （与 .forum-activity-btn 同值）
       .forum-activity-cancel   #f0dcae on #5a4318 ≈ 6.9:1   （与 .forum-bounty-accept 同值）
       .forum-activity-meta     #a68d5f on #14100b ≈ 5.95:1  （与 .forum-tag-bar-label 同值）
   ========================================================================== */

/* ---- 帖子页：活动卡 ---- */
.forum-page .forum-activity {
    margin: 14px 0 0;
    padding: 14px 16px;
    background-color: #14100b;
    border: 1px solid #3a2c1a;
    /* ★ 左侧这道粗绿线是"这是一个活动"的**唯一**标记（同投票 / 悬赏：一条 3px 的边
       比一整块彩色底要轻得多）。色值见本节头注。 */
    border-left: 3px solid #6d7a3c;
}
.forum-page .forum-activity-head {
    position: relative;
    padding-left: 34px;
    min-height: 24px;
}
.forum-page .forum-activity-ico {
    position: absolute;
    left: 0;
    top: 0;
    width: 24px;
    height: 24px;
    line-height: 24px;
    text-align: center;
    font-size: 13px;
    font-style: normal;
    color: #f0dcae;
    background-color: #4c5626;
    border: 1px solid #6d7a3c;
    border-radius: 2px;
}
.forum-page .forum-activity-meta {
    display: block;
    margin-top: 3px;
    font-size: 12.5px;
    letter-spacing: .5px;
    color: #a68d5f;
}
/* 时间 / 地点：两行同样式，靠 .forum-activity-k 那个小标签区分 */
.forum-page .forum-activity-fact {
    margin: 6px 0 0;
    font-size: 13px;
    letter-spacing: .5px;
    color: #cdb98a;
}
.forum-page .forum-activity-k {
    display: inline-block;
    min-width: 34px;
    margin-right: 8px;
    color: #a68d5f;
}
.forum-page .forum-activity-body {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #2e2113;
}
.forum-page .forum-activity-done {
    font-size: 13px;
    letter-spacing: .5px;
    color: #cdb98a;
}
/* 留言框：与报名按钮同一行；宽一点（有人会写一句话），但不铺满整行 */
.forum-page .forum-activity-input {
    display: inline-block;
    width: 220px;
    max-width: 60%;
    margin-right: 8px;
    padding: 6px 10px;
    font-family: inherit;
    font-size: 13px;
    letter-spacing: .5px;
    vertical-align: middle;
    color: #e8d9b0;
    background-color: #1a1209;
    border: 1px solid #3a2c1a;
    border-radius: 2px;
}
/* 报名按钮：与 .forum-bounty-accept 同尺寸，但用自己的绿（见头注） */
.forum-page .forum-activity-btn {
    padding: 4px 16px;
    font-family: inherit;
    font-size: 13px;
    letter-spacing: 1px;
    vertical-align: middle;
    color: #f0dcae;
    background-color: #4c5626;
    border: 1px solid #6d7a3c;
    border-radius: 2px;
    cursor: pointer;
}
.forum-page .forum-activity-btn:hover {
    background-color: #5b6730;
}
/* 取消报名：**破坏性动作**，刻意用与悬赏撤回同一支暖金（不借用报名按钮的绿）——
   两个按钮并排时颜色不同，才不容易点错。 */
.forum-page .forum-activity-cancel {
    margin-left: 8px;
    padding: 4px 16px;
    font-family: inherit;
    font-size: 13px;
    letter-spacing: 1px;
    vertical-align: middle;
    color: #f0dcae;
    background-color: #5a4318;
    border: 1px solid #8a6a24;
    border-radius: 2px;
    cursor: pointer;
}
.forum-page .forum-activity-cancel:hover {
    background-color: #6b5120;
}

/* ---- 报名名单 ---- */
.forum-page .forum-activity-list {
    margin: 10px 0 0;
    padding: 10px 0 0;
    border-top: 1px solid #2e2113;
    list-style: none;
}
.forum-page .forum-activity-item {
    padding: 3px 0;
    font-size: 13px;
    line-height: 1.9;
    letter-spacing: .5px;
}
.forum-page .forum-activity-who {
    font-weight: normal;
    margin-right: 8px;
    color: #d8b463;
}
/* 报名留言：斜体 + 弱化色，与"谁"分开（它是补充，不是主体） */
.forum-page .forum-activity-word {
    font-style: normal;
    font-size: 12.5px;
    color: #a68d5f;
}
.forum-page .forum-activity-empty {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #2e2113;
    font-size: 12.5px;
    letter-spacing: .5px;
    color: #a68d5f;
}

/* ---- 发帖页：「发起活动」区 ---- */
.forum-page .forum-activity-box {
    margin: 14px 0 0;
    padding: 12px;
    background-color: #14100b;
    border: 1px dashed #3a2c1a;
}
.forum-page .forum-activity-toggle {
    display: block;
    cursor: pointer;
}
.forum-page .forum-activity-toggle-text {
    font-size: 13px;
    letter-spacing: .5px;
    vertical-align: middle;
    color: #e8d9b0;
}
.forum-page .forum-activity-toggle input {
    margin: 0 8px 0 0;
    vertical-align: middle;
}
/* ★★ 面板**默认收起**：靠 .forum-activity-box.is-open 打开（JS 只切这一个类名）。
   用 display 而不是 height/max-height —— 收起时必须**完全**不占位。 */
.forum-page .forum-activity-panel {
    display: none;
}
.forum-page .forum-activity-box.is-open .forum-activity-panel {
    display: block;
}
.forum-page .forum-activity-box.is-open .forum-activity-toggle {
    margin-bottom: 10px;
}
.forum-page .forum-activity-hint {
    margin: 4px 0 0;
    font-size: 12.5px;
    line-height: 1.8;
    letter-spacing: .5px;
    color: #a68d5f;
}
/* 时间格给够放 'YYYY-MM-DD HH:MM'（19 字符），地点格更宽；两个数字格照旧 130px */
.forum-page .forum-activity-time {
    width: 190px;
}
.forum-page .forum-activity-place {
    width: 260px;
}
.forum-page .forum-activity-max,
.forum-page .forum-activity-days {
    width: 130px;
}

/* ---- 窄屏：卡片收紧内距；留言框与按钮各占一行，不横向溢出 ---- */
@media screen and (max-width: 860px) {
    .forum-page .forum-activity {
        padding: 12px;
    }
    .forum-page .forum-activity-input {
        display: block;
        width: auto;
        max-width: none;
        margin: 0 0 8px;
    }
    .forum-page .forum-activity-cancel {
        display: block;
        margin: 6px 0 0;
    }
    .forum-page .forum-activity-time,
    .forum-page .forum-activity-place {
        width: auto;
    }
}

/* ==========================================================================
   29. 辩论（第 214 轮 · 阶段6 第六步 A8-④）
   --------------------------------------------------------------------------
   三类元素，落在**两个页面**（帖子页与发帖页，没有任何一页同时出现）：
       .forum-debate-*         帖子页的辩论卡（两栏 + 比例条 + 站队）
       .forum-debate-box       发帖页的「发起辩论」区（复选框 + 收起的面板）
       .forum-debate-btn       卡片上的「站某方 / 换到某方」按钮

   ★★★ 本卡是全族里**唯一需要两种并列颜色**的一张 —— 因为辩论是**两方对垒**：
       投票是 N 个选项的清单一列到底，悬赏 / 活动都只有"一件事"。辩论的两栏
       必须一眼分得开谁是谁。
      ⇒ 因此引入一支**新的冷色** `#4e5f7d`（石青），与前三支左线色一起看：
           投票 #8a6a24（偏褐金）· 悬赏 #a8801f（亮金）· 活动 #6d7a3c（橄榄绿）
           · 辩论 #4e5f7d（石青）
        在色相环上四支各自拉开，截图对比时一眼能认出是哪种特殊主题。
      ★ 为什么**不能**借活动那支橄榄绿：绿在上一节被赋予"要去做的事"（日程），
        而辩论需要的是"两个对立面"，一支绿说不了一对。
      ★ 为什么**不**用两支金：金是本页的**主色**（标题 / 奖项 / 比例），
        用两支金去表示"两军"会让两栏看起来是同一件事的两个程度，而不是对立。

   ★ 两栏的**两色分工**（贯穿整卡，让"谁是谁"不靠读字）：
       正方 / pro → 暖金 `#b8873a`（条）+ `#6b5120` 底（按钮）+ `#d8b463`（字）
       反方 / con → 冷青 `#4e5f7d`（条）+ `#39465f` 底（按钮）+ `#93a4c4`（字）
     ⇒ 暖 / 冷对立，是这张卡的核心语义（"两军"）。

   ★ 对比度**已实算**（脚本见工程细则 §57 那套；下面每个数都是实算值，不是估的）：
       .forum-debate-meta        #a68d5f on #14100b ≈ 5.95:1  （与 .forum-activity-meta 同值）
       .forum-debate-side-label  #d8b463 on #14100b ≈ 9.6:1   （正方那一栏的字）
       .forum-debate-side-label  #93a4c4 on #14100b ≈ 7.5:1   （反方那一栏的字）
       .forum-debate-who         #cdb98a on #14100b ≈ 9.8:1   （与 .forum-activity-fact 同值）
       .forum-debate-word        #a68d5f on #14100b ≈ 5.95:1
       .forum-debate-input       #e8d9b0 on #1a1209 ≈ 13.2:1  （与 .forum-activity-input 同值）
       .forum-debate-btn.is-pro  #f0dcae on #6b5120 ≈ 5.5:1
       .forum-debate-btn.is-con  #e6e9f2 on #39465f ≈ 7.8:1
       .forum-debate-quit        #f0dcae on #5a4318 ≈ 6.9:1   （与 .forum-activity-cancel 同值）
       .forum-debate-ico         #e6e9f2 on #39465f ≈ 7.8:1   （与 .forum-debate-btn.is-con 同值）
   ========================================================================== */

/* ---- 帖子页：辩论卡 ---- */
.forum-page .forum-debate {
    margin: 14px 0 0;
    padding: 14px 16px;
    background-color: #14100b;
    border: 1px solid #3a2c1a;
    /* ★ 左侧这道粗青线是"这是一场辩论"的**唯一**标记（同投票 / 悬赏 / 活动：
       一条 3px 的边比一整块彩色底要轻得多）。色值见本节头注。 */
    border-left: 3px solid #4e5f7d;
}
.forum-page .forum-debate-head {
    position: relative;
    padding-left: 34px;
    min-height: 24px;
}
.forum-page .forum-debate-ico {
    position: absolute;
    left: 0;
    top: 0;
    width: 24px;
    height: 24px;
    line-height: 24px;
    text-align: center;
    font-size: 13px;
    font-style: normal;
    color: #e6e9f2;
    background-color: #39465f;
    border: 1px solid #4e5f7d;
    border-radius: 2px;
}
.forum-page .forum-debate-meta {
    display: block;
    margin-top: 3px;
    font-size: 12.5px;
    letter-spacing: .5px;
    color: #a68d5f;
}

/* ---- 比例条（两段：正方暖金 / 反方冷青）----
   ★★ 与投票的进度条同一条：两段的**宽度来自数据**（双方人数比），
     是本工程刻意允许的**数据驱动内联 style**（写 101 个 .wN 类或用 var() 都不行）。
     ★ 用 flex 让两段真正并排（inline-block 之间的换行空白会挤出一两条像素的缝）；
       两段宽度之和恒为 100% ⇒ 不会被 flex-shrink 压。 */
.forum-page .forum-debate-bar {
    display: flex;
    height: 8px;
    margin: 10px 0 0;
    overflow: hidden;
    background-color: #1a1209;
    border-radius: 2px;
}
.forum-page .forum-debate-bar-pro,
.forum-page .forum-debate-bar-con {
    display: block;
    height: 100%;
}
.forum-page .forum-debate-bar-pro {
    background-color: #b8873a;
}
.forum-page .forum-debate-bar-con {
    background-color: #4e5f7d;
}

/* ---- 两栏（正方 / 反方）---- */
.forum-page .forum-debate-sides {
    display: flex;
    margin-top: 12px;
}
.forum-page .forum-debate-side {
    flex: 1;
    /* ★ min-width:0 是 flex 子项能真正收缩的前提（默认 auto 会让长名字把栏撑破）。
       与首页三栏那条"table-cell 里别用自身宽度定高"是同一类"flex/grid 子项默认值"
       的坑，只是这里影响的是**宽度**。 */
    min-width: 0;
    padding: 8px 10px;
    background-color: #171208;
    border: 1px solid #2e2113;
}
.forum-page .forum-debate-side + .forum-debate-side {
    margin-left: 10px;
}
/* ★ 顶边那道 2px 是"这两栏分属两个阵营"的标记 —— 用**两色**（见本节头注），
   而不是靠读标题里的字。 */
.forum-page .forum-debate-side.is-pro {
    border-top: 2px solid #b8873a;
}
.forum-page .forum-debate-side.is-con {
    border-top: 2px solid #4e5f7d;
}
.forum-page .forum-debate-side-head {
    display: flex;
    justify-content: space-between;
    margin-bottom: 6px;
}
.forum-page .forum-debate-side-label {
    font-weight: normal;
    font-size: 13px;
    letter-spacing: .5px;
    color: #d8b463;
}
.forum-page .forum-debate-side.is-con .forum-debate-side-label {
    color: #93a4c4;
}
.forum-page .forum-debate-side-num {
    font-style: normal;
    font-size: 12px;
    letter-spacing: .5px;
    color: #a68d5f;
}
.forum-page .forum-debate-names {
    margin: 0;
    padding: 0;
    list-style: none;
}
.forum-page .forum-debate-name {
    padding: 2px 0;
    font-size: 12.5px;
    line-height: 1.8;
    letter-spacing: .5px;
}
.forum-page .forum-debate-who {
    font-weight: normal;
    margin-right: 6px;
    color: #cdb98a;
}
/* 立场说明：与"谁"分开（它是补充，不是主体）—— 与 .forum-activity-word 同一条 */
.forum-page .forum-debate-word {
    font-style: normal;
    font-size: 12px;
    color: #a68d5f;
}
.forum-page .forum-debate-none {
    font-size: 12.5px;
    letter-spacing: .5px;
    color: #a68d5f;
}

/* ---- 状态 / 操作 ---- */
.forum-page .forum-debate-body {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #2e2113;
}
.forum-page .forum-debate-done {
    font-size: 13px;
    letter-spacing: .5px;
    color: #cdb98a;
}
/* "你站在某方"：inline-block 以便与后面的按钮同行且垂直居中 */
.forum-page .forum-debate-mine {
    display: inline-block;
    margin-right: 10px;
    font-size: 13px;
    letter-spacing: .5px;
    vertical-align: middle;
    color: #d8b463;
}
/* 立场说明框：与活动留言框同尺寸（有人会写一句话），但不铺满整行 */
.forum-page .forum-debate-input {
    display: inline-block;
    width: 220px;
    max-width: 60%;
    margin-right: 8px;
    padding: 6px 10px;
    font-family: inherit;
    font-size: 13px;
    letter-spacing: .5px;
    vertical-align: middle;
    color: #e8d9b0;
    background-color: #1a1209;
    border: 1px solid #3a2c1a;
    border-radius: 2px;
}
/* 站队按钮：**两色一对**（暖 / 冷），与比例条两段同一对色（见本节头注）。
   ★ 页面上可能同时有 2 个（未站队时"站正方 / 站反方"，已站队时"换到某方"），
     所以尺寸写得比活动那个按钮略窄一点，两个字 + 两个字也放得下。 */
.forum-page .forum-debate-btn {
    padding: 4px 14px;
    font-family: inherit;
    font-size: 13px;
    letter-spacing: 1px;
    vertical-align: middle;
    border-radius: 2px;
    cursor: pointer;
}
.forum-page .forum-debate-btn.is-pro {
    color: #f0dcae;
    background-color: #6b5120;
    border: 1px solid #8a6a24;
}
.forum-page .forum-debate-btn.is-pro:hover {
    background-color: #7d6027;
}
.forum-page .forum-debate-btn.is-con {
    margin-left: 8px;
    color: #e6e9f2;
    background-color: #39465f;
    border: 1px solid #4e5f7d;
}
.forum-page .forum-debate-btn.is-con:hover {
    background-color: #44536f;
}
/* 退出辩论：**破坏性动作**，用与活动"取消报名" / 悬赏"撤回"同一支暖金
   —— 不借用站队按钮的两色，才不容易点错。 */
.forum-page .forum-debate-quit {
    margin-left: 8px;
    padding: 4px 14px;
    font-family: inherit;
    font-size: 13px;
    letter-spacing: 1px;
    vertical-align: middle;
    color: #f0dcae;
    background-color: #5a4318;
    border: 1px solid #8a6a24;
    border-radius: 2px;
    cursor: pointer;
}
.forum-page .forum-debate-quit:hover {
    background-color: #6b5120;
}

/* ---- 发帖页：「发起辩论」区 ---- */
.forum-page .forum-debate-box {
    margin: 14px 0 0;
    padding: 12px;
    background-color: #14100b;
    border: 1px dashed #3a2c1a;
}
.forum-page .forum-debate-toggle {
    display: block;
    cursor: pointer;
}
.forum-page .forum-debate-toggle-text {
    font-size: 13px;
    letter-spacing: .5px;
    vertical-align: middle;
    color: #e8d9b0;
}
.forum-page .forum-debate-toggle input {
    margin: 0 8px 0 0;
    vertical-align: middle;
}
/* ★★ 面板**默认收起**：靠 .forum-debate-box.is-open 打开（JS 只切这一个类名）。
   用 display 而不是 height/max-height —— 收起时必须**完全**不占位。 */
.forum-page .forum-debate-panel {
    display: none;
}
.forum-page .forum-debate-box.is-open .forum-debate-panel {
    display: block;
}
.forum-page .forum-debate-box.is-open .forum-debate-toggle {
    margin-bottom: 10px;
}
.forum-page .forum-debate-hint {
    margin: 4px 0 0;
    font-size: 12.5px;
    line-height: 1.8;
    letter-spacing: .5px;
    color: #a68d5f;
}
/* 两方立场文案：与主题标题同量级（它是短语），但两格都要放得下 40 字 */
.forum-page .forum-debate-pro,
.forum-page .forum-debate-con {
    width: 260px;
}
.forum-page .forum-debate-days {
    width: 130px;
}

/* ---- 窄屏：两栏上下叠（flex-direction），立场框与按钮各占一行 ---- */
@media screen and (max-width: 860px) {
    .forum-page .forum-debate {
        padding: 12px;
    }
    /* ★★ 两栏在窄屏必须**改成竖排** —— 并排在 320px 宽里每栏只剩 ~140px，
       名字会被压成一列一个字。改成 flex-direction: column 后两栏各占整行。 */
    .forum-page .forum-debate-sides {
        flex-direction: column;
    }
    .forum-page .forum-debate-side + .forum-debate-side {
        margin-left: 0;
        margin-top: 10px;
    }
    .forum-page .forum-debate-input {
        display: block;
        width: auto;
        max-width: none;
        margin: 0 0 8px;
    }
    .forum-page .forum-debate-btn.is-con,
    .forum-page .forum-debate-quit {
        margin-left: 0;
        margin-top: 6px;
    }
    .forum-page .forum-debate-pro,
    .forum-page .forum-debate-con {
        width: auto;
    }
}

/* ==========================================================================
   30. 阅读权限（第 215 轮 · 阶段6 收尾 B4）
   --------------------------------------------------------------------------
   三处落点，落在**三个页面**（没有任何一页同时出现三者）：
       .forum-readgate-*    帖子页的**阅读门** —— 无权打开时替代正文的一整块
       .forum-readperm-hint 发帖页「阅读权限」格下面的一句说明
       .forum-read-perm     列表行标题旁的**门槛标记**（小锁 + 数字）

   ★★★ 阅读权限与「版块 status / 主题 status」是**三个正交的维度**（见细则 §59）：
       前两个是"是 / 否"（版块开没开、这帖发出来没有），本组是"**对谁**"。
       所以这里**刻意不复用**已有的两枚标记：
         · .forum-flag-lock（"版块已关闭"）—— 那是整版进不去，不是"这一帖分段可见"；
         · .forum-flag-wait（"待审核"）—— 那是"还没发出来"，不是"发出来了但你不够格"。
       一个帖"已经发出来、但对低等级会员不可见"是**第三种状态**，需要自己的视觉语言。

   ★★ 阅读门**整块不出现标题与作者名**（理由见 PHP 头注）：所以这一块没有 <h1>，
       顶上只有一句通用文案"本主题需要阅读权限"。颜色也随之克制 —— 它是"到此为止"
       的牌子，不是内容页，不该有任何抢眼元素（唯一的金色给了锁图标，因为那正是
       "为什么打不开"的答案）。

   ★ 与"特殊主题卡"（投票 / 悬赏 / 活动 / 辩论，§26~§29）的区别：
       那四张卡是**内容的一部分**（挂在正文里、有左侧 3px 色线）；
       本组是**替代内容**的（正文根本不出现）⇒ 所以它自成一个居中盒子，
       而不是第二条卡。这也是它没有左侧色线的原因。

   ★ 对比度**已实算**（脚本同工程细则 §57 那套；下列均为实算值，非估值）：
       .forum-readgate-title   #e8d9b0 on #14100b ≈ 13.51:1
       .forum-readgate-line    #cdb98a on #14100b ≈  9.83:1
       .forum-readgate-line b  #ffe9a8 on #14100b ≈ 15.76:1
       .forum-readgate-num     #a68d5f on #0d0906 ≈  6.23:1
       .forum-readgate-hint    #a68d5f on #14100b ≈  5.95:1
       .forum-readgate-icon    #d8b463 on #241a0f ≈  8.64:1（图标，非文字）
       .forum-readgate-back    #c9a45c on #14100b ≈  8.07:1
       .forum-readgate-back:hover #ffe9a8 on #14100b ≈ 15.76:1
       .forum-readperm-hint    #a68d5f on #14100b ≈  5.95:1
       .forum-read-perm        #d8b463 on #100b07 ≈  9.91:1
   ========================================================================== */

/* ---- 帖子页：阅读门（无权打开时替代正文的一整块）---- */
.forum-page .forum-readgate {
    margin: 42px auto;
    padding: 34px 30px 30px;
    max-width: 520px;
    text-align: center;
    background-color: #14100b;
    border: 1px solid #3a2c1a;
    border-radius: 3px;
}
/* 锁图标：一枚圆形铜牌。
   ★ 用 inline-block 而不是 block —— 圆牌要**居中**，而 text-align:center
     对 inline-block 有效（对 block 只影响其内部文字，块本身仍占满一行、左对齐）。 */
.forum-page .forum-readgate-icon {
    display: inline-block;
    width: 64px;
    height: 64px;
    line-height: 62px;
    color: #d8b463;
    background-color: #241a0f;
    border: 1px solid #4a3a1e;
    border-radius: 50%;
}
/* svg 是 inline 元素，默认按基线对齐会在圆牌里偏下 ⇒ vertical-align:middle 摆正。 */
.forum-page .forum-readgate-icon svg {
    vertical-align: middle;
}
.forum-page .forum-readgate-title {
    margin: 16px 0 0;
    font-size: 19px;
    font-weight: normal;
    letter-spacing: 2px;
    color: #e8d9b0;
}
.forum-page .forum-readgate-line {
    margin: 12px 0 0;
    font-size: 14px;
    color: #cdb98a;
}
.forum-page .forum-readgate-line b {
    font-weight: normal;
    color: #ffe9a8;
}
/* 「阅读权限 N」这枚数值胶囊：与"要求 / 你当前"两行**并列**（同行右侧），
   ⇒ inline-block + margin-left，不能自成一行。 */
.forum-page .forum-readgate-num {
    display: inline-block;
    margin-left: 8px;
    padding: 1px 8px;
    font-size: 11.5px;
    font-style: normal;
    letter-spacing: .5px;
    color: #a68d5f;
    background-color: #0d0906;
    border: 1px solid #2e2113;
    border-radius: 2px;
}
.forum-page .forum-readgate-hint {
    margin: 16px 0 0;
    font-size: 12.5px;
    line-height: 1.75;
    color: #a68d5f;
}
.forum-page .forum-readgate-foot {
    margin-top: 22px;
}
/* ★★ .forum-btn-submit 自带 `float:right`（那是发帖表单提交键的位置）⇒
   在这里必须**撤掉浮动**，否则主按钮会飘出居中卡、跑到极右。
   特异性 3 类 > 它的 2 类，且本规则在后面 ⇒ 稳赢。 */
.forum-page .forum-readgate-foot .forum-btn-submit {
    float: none;
    vertical-align: middle;
}
/* 次要按钮（返回论坛首页 / 登录注册）*/
.forum-page .forum-readgate-back {
    display: inline-block;
    margin-left: 10px;
    padding: 9px 16px;
    font-size: 13px;
    letter-spacing: 1px;
    vertical-align: middle;
    color: #c9a45c;
    text-decoration: none;
    background-color: #1a1209;
    border: 1px solid #4a3a1e;
    border-radius: 3px;
}
.forum-page .forum-readgate-back:hover {
    color: #ffe9a8;
    border-color: #8a6a24;
}

/* ---- 发帖页：阅读权限格下的一句说明 ---- */
.forum-page .forum-readperm-hint {
    margin: 8px 0 0;
    font-size: 12.5px;
    line-height: 1.75;
    color: #a68d5f;
}

/* ---- 列表行：标题旁的门槛标记（小锁 + 数字）---- */
.forum-page .forum-read-perm {
    display: inline-block;
    margin-left: 7px;
    font-size: 11.5px;
    font-style: normal;
    letter-spacing: .5px;
    vertical-align: middle;
    color: #d8b463;
}
/* 锁与数字之间留 2px；svg 按基线对齐会让锁略微下沉 ⇒ 上提 1px 与数字视觉居中。 */
.forum-page .forum-read-perm svg {
    margin-right: 2px;
    vertical-align: -1px;
}

/* ---- 窄屏：阅读门收一号留白；次要按钮独占一行
   （两枚按钮并排在 320px 里会换行，与其让它挤成两行不齐，不如让它干脆占一整行）---- */
@media screen and (max-width: 860px) {
    .forum-page .forum-readgate {
        margin: 26px auto;
        padding: 26px 18px 22px;
    }
    .forum-page .forum-readgate-title {
        font-size: 17px;
    }
    .forum-page .forum-readgate-line {
        font-size: 13.5px;
    }
    .forum-page .forum-readgate-back {
        display: block;
        margin: 10px 0 0;
    }
}


/* ==========================================================================
   31. 引用回复：楼层「引用」按钮 + 回复框里的引用预览 + 正文里的引用块
       （2026-10-08 第 251 轮）
   --------------------------------------------------------------------------
   ★ 三个类各自只回答一件事，不要互相借用：
     .forum-quote-btn      楼层 meta 行里那枚「引用」（与 .forum-post-del 同尺寸族）
     .forum-quote-draft    回复框里"将要引用什么"的**只读预览**（默认 is-hidden）
     .forum-quote          已经发出去的引用块（由**服务端**生成，见 forumQuoteBuild）
   ★ 配色沿用本文件色板：深褐底 #1a1209 / #241a0f、金边 #6d5420 / #8a6a24、
     正文 #b8a67c、次要 #a68d5f、亮金 #e8c987 / #ffe9a8。
     ★ 金/黄底一律配深褐字、深底一律配浅字（与本文件既有按钮同规矩）。
   ★ 对比度（本文件正文的验收口径 ≥ 4.5:1，实测值写在每块上方）：
       .forum-quote 正文      #b8a67c on #1a1209 ≈ 7.74:1
       .forum-quote-meta      #a68d5f on #1a1209 ≈ 5.81:1
       .forum-quote-draft-text #b8a67c on #241a0f ≈ 7.14:1
       .forum-quote-btn       #cbb98f on #100b07 ≈ 10.14:1
       .forum-quote-draft-cancel #d08a5a on #241a0f ≈ 6.07:1
   ★★★ 引用块的**内部结构不许改成嵌套 div**：forumQuoteStrip() 靠
     "非贪婪匹配到第一个 </div> 就收尾"来定块边界，内部多一个 div 就会把边界
     判错 —— 现象是"引用之后玩家自己写的那段话被吞掉了一截"，而且不报错。
     所以内部只允许 span / b / br / 文本。
   ★ 排版只用 flex / inline-block（本站禁 grid / gap / var / clamp）。
     ★ 只有 .forum-quote-draft-cancel 用了绝对定位，见那一行的理由。
   ========================================================================== */

/* ---- 31.1 楼层 meta 行里的「引用」按钮 ----
   ★ 与 .forum-post-del（16.3）同一尺寸族：同样的 padding / 字号 / 圆角。
     两者并排出现在同一行，尺寸不一致会让人以为其中一个是"另一种控件"。
   ★ 配色刻意**比删楼亮一档**：删楼是破坏性动作（暗红边 #6d4a2a），
     引用是常规动作（金边 #6d5420）—— 一行的视觉权重应当与后果成正比。 */
.forum-page .forum-quote-btn {
    margin-left: 8px;
    padding: 1px 8px;
    background-color: transparent;
    color: #cbb98f;
    border: 1px solid #6d5420;
    border-radius: 3px;
    font-size: 12px;
    cursor: pointer;
}
.forum-page .forum-quote-btn:hover { color: #ffe9a8; border-color: #8a6a24; }

/* ---- 31.2 回复框里的引用预览 ----
   ★ 默认 is-hidden；js/forum.js 的 bindQuote() 只切这个类名
     （不写 element.style.display —— 与 bindGroupToggle 同一条规矩）。
   ★ 左金边 + 浅一档的底：读作"这还不是正文，是**即将附到正文头上**的一段"。
     位置也在正文框之前，与它最终出现的位置一致（见 forumRenderThread 的注释）。 */
.forum-page .forum-quote-draft.is-hidden { display: none; }
.forum-page .forum-quote-draft {
    position: relative;
    margin: 0 0 10px;
    padding: 8px 12px 8px 14px;
    background-color: #241a0f;
    border: 1px solid #3a2a12;
    border-left: 3px solid #8a6a24;
    border-radius: 3px;
    line-height: 1.7;
    word-wrap: break-word;
    word-break: break-word;
}
.forum-page .forum-quote-draft-head {
    display: block;
    /* ★ 右侧留出「取消引用」按钮的宽度，否则长用户名会跑到按钮底下。
       76px = 按钮宽度上限 + 间距，与下面 .forum-quote-draft-cancel 的
       right:12px 是同一处留白的两个方向（改一个必须改另一个）。 */
    padding-right: 76px;
    font-size: 12px;
    color: #a68d5f;
}
.forum-page .forum-quote-draft-head b { color: #e8c987; }
.forum-page .forum-quote-draft-text {
    /* ★ 高度上限≈4 行。引文本身已由服务端截到 forumQuoteLen()（150 字），
       这里**只是纯视觉的兜底**，不改数据 —— 所以它不是"第二处截断规则"。
       （不在 JS 里再截一次：那才会变成"预览 80 字、发出去 150 字"。） */
    max-height: 84px;
    overflow: hidden;
    margin-top: 4px;
    font-size: 13px;
    color: #b8a67c;
}
.forum-page .forum-quote-draft-cancel {
    /* ★ 这里用绝对定位而不是 float:right：float 会脱离 .forum-quote-draft-head
       的行盒，头行只有一行时看着正常，但头上文字一长（长用户名）就会与按钮重叠，
       而绝对定位把它钉在容器的右上角，与头行长度无关。
       ★ 定位基准是 .forum-quote-draft 自己（它上面有 position:relative）。 */
    position: absolute;
    top: 6px;
    right: 12px;
    padding: 0 8px;
    background-color: transparent;
    color: #d08a5a;
    border: 1px solid #6d4a2a;
    border-radius: 3px;
    font-size: 12px;
    line-height: 20px;
    cursor: pointer;
}
.forum-page .forum-quote-draft-cancel:hover { color: #ffd9a8; border-color: #8a6a24; }

/* ---- 31.3 已经发出去的引用块（服务端生成，见 forumQuoteBuild）----
   ★ 它住在 .forum-floor-content 里面（正文整块是 innerHTML 输出的），
     所以要用**后代**选择器压掉正文那套 14.5px / 1.85 的排版 —— 引文是
     "附带的一段话"，与正文一样大就分不出主次了。
   ★ 左金边与 31.2 的预览**同色同宽**（#8a6a24 是预览、#6d5420 是本块）——
     预览是"还没定"，本块是"已经发出去"，用一档更暗的金表示"落定"。 */
.forum-page .forum-quote {
    margin: 0 0 10px;
    padding: 8px 12px 8px 14px;
    background-color: #1a1209;
    border-left: 3px solid #6d5420;
    border-radius: 3px;
    font-size: 13.5px;
    line-height: 1.8;
    color: #b8a67c;
    word-wrap: break-word;
    word-break: break-word;
}
.forum-page .forum-quote-meta {
    color: #a68d5f;
    font-size: 12px;
}
.forum-page .forum-quote-meta b { color: #e8c987; }

/* ---- 31.4 窄屏：meta 行在 ≤1100 会从 flex 变回 block（见 12 节），
   这时新加的引用按钮也跟着回到行内流 —— 给它补一行上边距，
   与 .forum-rate 那块的 margin-top:6px 对齐（不然只有它贴着上一行）。 ---- */
@media screen and (max-width: 1100px) {
    .forum-page .forum-quote-btn {
        margin-top: 6px;
    }
}

