/* 评论列表（_CommentBoard，2026-10-29 用户从效果图里挑的方案 B：问答式）。
   详情页「项目讨论」和「全部评论」两页共用这一份，类名一律 cb- 开头、都挂在 .cb-board 下面 ——
   两页各自那份老样式（CDN 上的 codedetail.css、codethreadlist.css）里没有 cb- 开头的规则，互不打架。 */
/* 「全部评论」那一页：老页面的白底面板（.right_area）自己没有内边距，原来是 .discuss_list 给的 20px */
.right_area > .cb-host { padding: 16px 20px 20px; }

.cb-board { --cb-green: #278426; --cb-ink: #1f2937; --cb-text: #2f3a44; --cb-muted: #8a949e; --cb-line: #eef2ef; font-size: 14px; color: var(--cb-text); }
.cb-board ul { list-style: none; margin: 0; padding: 0; }
.cb-board p { margin: 0; }
.cb-board .ui-icon { width: 14px; height: 14px; flex: 0 0 auto; }

/* 顶上那一行：几个提问、作者回复了几个、最近一次回复；右边一句屏蔽说明 */
.cb-board .cb-sum { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; padding: 0 0 14px; border-bottom: 1px solid var(--cb-line); }
.cb-board .cb-sum-stat { font-size: 13px; color: #5b6670; }
.cb-board .cb-sum-stat b { margin: 0 3px; font-size: 15px; color: #172333; }
.cb-board .cb-sum-note { margin-left: auto; font-size: 12px; color: #9aa5ae; }

/* 作者公告：没人回复的作者帖子折成这一张卡，只露最新一条 */
.cb-board .cb-notice { display: flex; gap: 12px; margin: 14px 0 4px; padding: 12px 16px; border: 1px solid #f6e3bf; border-radius: 10px; background: #fff8ec; }
.cb-board .cb-notice-icon { flex: 0 0 18px; width: 18px; height: 18px; margin-top: 2px; color: #c9771a; }
.cb-board .cb-notice-bd { flex: 1 1 auto; min-width: 0; }
.cb-board .cb-notice-hd { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.cb-board .cb-notice-hd b { font-size: 13px; color: #8a5a17; }
.cb-board .cb-notice .cb-text { margin-top: 4px; color: #4a3b24; }
.cb-board .cb-notice-list li { padding: 10px 0 0; margin-top: 10px; border-top: 1px dashed #f0dcb4; }
.cb-board .cb-notice .cb-fold > summary { color: #b06b10; }

/* 一条讨论 */
.cb-board .cb-item { display: flex; gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--cb-line); }
.cb-board .cb-list > .cb-item:last-child { border-bottom: 0; }
.cb-board .cb-av { flex: 0 0 36px; width: 36px; height: 36px; border-radius: 50%; object-fit: cover; background: #eef2ef; }
.cb-board .cb-av.is-sm { flex-basis: 26px; width: 26px; height: 26px; }
.cb-board .cb-body { flex: 1 1 auto; min-width: 0; }
.cb-board .cb-head { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; line-height: 20px; }
.cb-board .cb-name { font-size: 14px; font-weight: 600; color: var(--cb-ink); }
.cb-board .cb-badge { display: inline-flex; align-items: center; height: 18px; padding: 0 6px; border-radius: 4px; font-size: 11.5px; font-weight: 600; line-height: 1; }
.cb-board .cb-badge.is-author { background: var(--cb-green); color: #fff; }
.cb-board .cb-badge.is-editor { background: #e8f0fe; color: #1a56c4; }
.cb-board .cb-badge.is-dl { background: #f1f4f2; color: #5b6b62; font-weight: 500; }
.cb-board .cb-meta { font-size: 12.5px; color: var(--cb-muted); white-space: nowrap; }
.cb-board .cb-meta i { display: inline-block; width: 3px; height: 3px; margin: 0 6px 3px; border-radius: 50%; background: #c7cfd6; }
.cb-board .cb-pending { padding: 0 6px; border-radius: 4px; background: #fff4e5; color: #b26a00; font-size: 12px; line-height: 18px; }
/* 标题行右端：状态 +「回复」。margin-left:auto 挂在这一格上，有没有状态都靠右；
   名字、徽章、日期排不下时这一格整个换到下一行，照样靠右（inline-flex 不折行，状态和「回复」不分开） */
.cb-board .cb-head-end { margin-left: auto; display: inline-flex; align-items: center; gap: 4px 12px; }
.cb-board .cb-status { height: 22px; padding: 0 8px; display: inline-flex; align-items: center; gap: 4px; border-radius: 999px; font-size: 12px; white-space: nowrap; }
.cb-board .cb-status.is-done { background: #eaf6ec; color: #1f7a1f; }
.cb-board .cb-status.is-wait { background: #f3f4f6; color: #6b7280; }
.cb-board .cb-status.is-post { background: #fff4e5; color: #a3620f; }
/* 店铺 AI 助理代答（Aspx.Domain/SellerAgent.cs）：紫色跟站上 .ai-badge 同一层意思 —— 这条是机器说的，不是作者本人 */
.cb-board .cb-status.is-ai { background: #f1edff; color: #5b3fd0; }
.cb-board .cb-badge.is-confirmed { background: #eaf6ec; color: #1f7a1f; }
.cb-board .cb-answer.is-ai { border-color: #e2dbff; background: #f8f6ff; }
.cb-board .cb-answer.is-ai .cb-answer-hd b { color: #3f2a9e; }
.cb-board .cb-answer.is-ai .cb-text { color: #2b2450; }
.cb-board .cb-reply.is-ai { margin: 2px 0; padding: 8px 10px; border-radius: 8px; background: #f8f6ff; }
.cb-board .cb-ai-note { margin-top: 4px; font-size: 12px; color: var(--cb-muted); }
.cb-board .cb-text { margin-top: 6px; font-size: 14.5px; line-height: 1.7; color: var(--cb-text); white-space: pre-line; word-break: normal; overflow-wrap: anywhere; }
.cb-board .cb-masked { display: inline-block; margin: 0 2px; padding: 0 6px; border-radius: 4px; background: #f1f3f5; color: #8a949e; font-size: 12px; line-height: 20px; vertical-align: 1px; }

/* 作者对这一条提问的回复：做成答案框 */
.cb-board .cb-answer { margin-top: 10px; padding: 10px 14px; border: 1px solid #e1efe4; border-radius: 8px; background: #f3f9f4; }
.cb-board .cb-answer-hd { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.cb-board .cb-answer-hd b { font-size: 13px; color: #1f6b1f; }
.cb-board .cb-answer .cb-text { margin-top: 4px; font-size: 14px; color: #1f3d24; }

/* 其他回复：左边一条竖线 */
.cb-board .cb-replies { margin: 10px 0 0; padding-left: 14px; border-left: 2px solid #e4ece6; }
.cb-board .cb-reply { display: flex; gap: 10px; padding: 8px 0; }
.cb-board .cb-reply.is-author { margin: 2px 0; padding: 8px 10px; border-radius: 8px; background: #f3f9f4; }
.cb-board .cb-reply .cb-name { font-size: 13px; }
.cb-board .cb-reply .cb-text { margin-top: 3px; font-size: 14px; }

/* 折起来的那几条（原生 details，不靠脚本） */
.cb-board .cb-fold { margin-top: 8px; }
.cb-board .cb-fold > summary { display: inline-flex; align-items: center; gap: 4px; list-style: none; font-size: 13px; color: var(--cb-green); cursor: pointer; }
.cb-board .cb-fold > summary::-webkit-details-marker { display: none; }
.cb-board .cb-fold > summary::after { content: ""; width: 6px; height: 6px; margin-left: 2px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); }
.cb-board .cb-fold[open] > summary::after { transform: rotate(-135deg) translateY(-1px); }
.cb-board .cb-fold > summary:focus-visible { outline: 2px solid var(--cb-green); outline-offset: 2px; border-radius: 4px; }

.cb-board .cb-act { display: inline-flex; align-items: center; gap: 5px; height: 22px; padding: 0; border: 0; background: none; font: inherit; font-size: 13px; color: #6b7680; cursor: pointer; white-space: nowrap; }
.cb-board .cb-act:hover, .cb-board .cb-act:focus-visible { color: var(--cb-green); }
.cb-board .cb-reply-slot:empty { display: none; }
.cb-board .cb-reply-slot { margin-top: 10px; }

/* 回复框（comment-reply.js）：错误提示贴在输入框正下方；验证码那一行有风险才露出来。
   form 要显式 display:block —— 详情页那份 CDN 老样式表让表单成了横排的 flex，textarea、按钮那一排、提示挤成三列 */
.cb-board form.cb-reply { display: block; margin: 0; padding: 10px 12px 8px; border: 1px solid #d9e3dc; border-radius: 8px; background: #fff; }
.cb-board form.cb-reply:focus-within { border-color: var(--cb-green); box-shadow: 0 0 0 3px rgba(39, 132, 38, .10); }
.cb-board .cb-reply textarea { display: block; box-sizing: border-box; width: 100%; min-height: 60px; margin: 0; padding: 0; border: 0; resize: vertical; font: inherit; font-size: 14px; line-height: 1.6; color: inherit; background: transparent; outline: none; }
.cb-board .cb-reply-err { margin: 6px 0 0; color: #c0392b; font-size: 12.5px; line-height: 1.5; }
.cb-board .cb-reply-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; padding-top: 8px; border-top: 1px dashed #e3eae5; }
.cb-board .cb-reply-count { margin-right: auto; color: var(--cb-muted); font-size: 12px; }
.cb-board .cb-reply-count.is-over { color: #c0392b; }
.cb-board .cb-reply-code { display: inline-flex; align-items: center; gap: 6px; }
.cb-board .cb-reply-code input { box-sizing: border-box; width: 78px; height: 30px; padding: 0 8px; border: 1px solid #d9e3dc; border-radius: 4px; font-size: 13px; }
.cb-board .cb-reply-code img { width: 72px; height: 30px; border-radius: 4px; background: #eef3ef; cursor: pointer; }
.cb-board .cb-reply-cancel { height: 30px; padding: 0 12px; border: 0; background: none; font: inherit; font-size: 13px; color: #6b7a71; cursor: pointer; }
.cb-board .cb-reply-send { height: 30px; padding: 0 18px; border: 0; border-radius: 4px; background: var(--cb-green); color: #fff; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.cb-board .cb-reply-send:disabled { opacity: .6; cursor: default; }
.cb-board .cb-reply-tip { margin: 6px 0 0; color: var(--cb-muted); font-size: 12px; line-height: 1.5; }
/* 上面几条写了 display，hidden 属性就不灵了；这一条特指度更高，按回去 */
.cb-board .cb-reply [hidden] { display: none; }

.cb-board .cb-empty { padding: 28px 0; text-align: center; color: var(--cb-muted); font-size: 14px; }
.cb-board .cb-more { display: inline-flex; align-items: center; gap: 2px; margin-top: 12px; font-size: 13px; color: var(--cb-green); text-decoration: none; }

@media (max-width: 760px) {
    .cb-board .cb-sum-note { flex-basis: 100%; margin-left: 0; }
    .cb-board .cb-item { gap: 10px; }
    .cb-board .cb-av { flex-basis: 32px; width: 32px; height: 32px; }
    .cb-board .cb-replies { padding-left: 10px; }
    .cb-board .cb-reply-count { flex-basis: 100%; }
    /* 窄屏装不下一行：验证码单独一行，取消 / 发表靠右（不然「发表」一个人掉到下一行左边） */
    .cb-board .cb-reply-code { flex-basis: 100%; }
    .cb-board .cb-reply-cancel { margin-left: auto; }
}
