/* =====================================================================
 * 求书管理（ebook-book-request）样式
 * 同时覆盖后台（元框 / 列表徽标 / 状态切换）与前台（广场 / 详情 / 表单）。
 * 配色与 ebook-cloud 主题一致：主色靛蓝，待响应=琥珀，已满足=绿。
 * ===================================================================== */

:root {
	--br-primary: #4f46e5;
	--br-primary-d: #4338ca;
	--br-ink: #1f2937;
	--br-sub: #6b7280;
	--br-line: #e5e7eb;
	--br-bg: #f8fafc;
	--br-wait-bg: #fef3c7;
	--br-wait-ink: #b45309;
	--br-ok-bg: #dcfce7;
	--br-ok-ink: #15803d;
	--br-radius: 12px;
}

/* ---------- 通用：徽标 ---------- */
.br-badge {
	display: inline-block;
	padding: 2px 9px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.6;
	white-space: nowrap;
}
.br-badge--wait { background: var(--br-wait-bg); color: var(--br-wait-ink); }
.br-badge--ok   { background: var(--br-ok-bg);   color: var(--br-ok-ink); }

/* 后台列表徽标可点击切换 */
td .br-badge[data-br-toggle-status] { cursor: pointer; user-select: none; }

/* ---------- 答复状态徽章：待回复 / 待采纳 / 已解决 ----------
 * 广场卡片与详情页共用，取代原先的「待响应 / 已满足」两态标签。
 * 配色三档，语义递进：待回复=橙（还没人接手）、待采纳=蓝（等求书人拍板）、已解决=绿（事情闭环）。
 * 色值优先取 PHP 注入的 --st-ink（状态定义与展示同一份来源）；
 * 万一内联变量被 kses 过滤，下面每个变体也各有一份同值定义兜底，不会掉色。 */
.br-ask-state {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 2px 8px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.6;
	white-space: nowrap;
	vertical-align: 1px;
	color: var(--st-ink, #2563eb);
	background: rgba(37, 99, 235, .1);
	background: color-mix(in srgb, var(--st-ink, #2563eb) 13%, #fff);
	border: 1px solid rgba(37, 99, 235, .2);
	border-color: color-mix(in srgb, var(--st-ink, #2563eb) 28%, transparent);
}
.br-ask-state--pending { --st-ink: #d97706; }
.br-ask-state--adopt   { --st-ink: #2563eb; }
.br-ask-state--solved  { --st-ink: #059669; }

.br-ask-state__icon { flex: 0 0 auto; }
.br-ask-state__n {
	margin-left: 1px;
	padding: 0 5px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .72);
	font-size: 11px;
	font-weight: 700;
}

/* 采纳结果提示（处理 ?br_adopt_msg 跳回时展示） */
.br-ask-notice {
	margin: 0 0 14px;
	padding: 10px 14px;
	border-radius: 10px;
	border: 1px solid #e5e7eb;
	background: #f8fafc;
	color: var(--br-ink);
	font-size: 13.5px;
	line-height: 1.6;
}
.br-ask-notice--ok    { border-color: #bbf7d0; background: #f0fdf4; color: #15803d; }
.br-ask-notice--info  { border-color: #bae6fd; background: #f0f9ff; color: #0369a1; }
.br-ask-notice--error { border-color: #fecaca; background: #fef2f2; color: #b91c1c; }

/* 答案条目上的「采纳此答案 / 已采纳」（求书人视角） */
.br-answer__adopt,
.br-answer__adopted {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	padding: 2px 9px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.6;
	white-space: nowrap;
	text-decoration: none;
}
.br-answer__adopt {
	border: 1px solid #bbf7d0;
	background: #f0fdf4;
	color: #15803d;
	text-decoration-line: none;
	transition: background .15s ease, border-color .15s ease;
}
.br-answer__adopt:hover { background: #dcfce7; border-color: #86efac; color: #166534; }
.br-answer__adopted { background: #059669; color: #fff; }
.br-answer.is-adopted { border-color: #a7f3d0; box-shadow: inset 3px 0 0 #059669; }

/* 私信里那条「是否采纳」正文（发在主题的私信抽屉里，样式随插件 CSS 全站可用） */
.br-ask-pm__quote {
	display: block;
	margin: 6px 0;
	padding: 6px 10px;
	border-left: 3px solid var(--br-line);
	background: rgba(15, 23, 42, .04);
	border-radius: 0 6px 6px 0;
	color: var(--br-sub);
}
.br-ask-pm__actions {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 8px;
}
.br-ask-pm__adopt,
.br-ask-pm__view {
	display: inline-flex;
	align-items: center;
	padding: 6px 13px;
	border-radius: 8px;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration-line: none;
}
/* 主题的 `.entry-content a{border-bottom}` 影响不到抽屉，但抽屉里也不该有下划线，double 保险 */
.es-msg-item__body .br-ask-pm__adopt,
.es-msg-item__body .br-ask-pm__view { text-decoration: none; }
.br-ask-pm__adopt { background: #059669; color: #fff; }
.br-ask-pm__adopt:hover { background: #047857; color: #fff; }
.br-ask-pm__view { background: #f1f5f9; color: #334155; }
.br-ask-pm__view:hover { background: #e2e8f0; color: #0f172a; }

/* ---------- 通用：按钮 ---------- */
.br-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 9px 16px;
	border: 1px solid transparent;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	text-decoration: none;
	transition: background .15s, border-color .15s, color .15s;
}
.br-btn--primary { background: var(--br-primary); color: #fff; }
.br-btn--primary:hover { background: var(--br-primary-d); color: #fff; }
.br-btn--ghost { background: #fff; color: var(--br-ink); border-color: var(--br-line); }
.br-btn--ghost:hover { border-color: var(--br-primary); color: var(--br-primary); }
.br-btn--sm { padding: 7px 12px; font-size: 13px; }
.br-btn--block { width: 100%; }

/* ---------- 通用：chip / 分段 ---------- */
.br-chip {
	display: inline-block;
	padding: 2px 10px;
	border-radius: 999px;
	background: #eef2ff;
	color: var(--br-primary-d);
	font-size: 12px;
	text-decoration: none;
}
.br-chip:hover { background: #e0e7ff; }

.br-seg {
	display: inline-flex;
	background: #f1f5f9;
	border-radius: 9px;
	padding: 3px;
}
.br-seg__item {
	padding: 6px 14px;
	border-radius: 7px;
	font-size: 13px;
	font-weight: 600;
	color: var(--br-sub);
	text-decoration: none;
}
.br-seg__item.is-active { background: #fff; color: var(--br-primary); box-shadow: 0 1px 2px rgba(0,0,0,.08); }

/* =====================================================================
 * 后台：关联电子书元框
 * ===================================================================== */
.br-book-picker { position: relative; }
.br-book-search { margin-bottom: 6px; }
.br-book-results {
	position: relative;
	max-height: 200px;
	overflow-y: auto;
	border: 1px solid var(--br-line);
	border-radius: 8px;
	background: #fff;
	margin-bottom: 6px;
}
.br-book-results:empty { display: none; }
.br-book-result {
	padding: 8px 10px;
	font-size: 13px;
	cursor: pointer;
	border-bottom: 1px solid #f1f5f9;
}
.br-book-result:hover { background: #f8fafc; }
.br-book-result.is-active { background: #eef2ff; color: var(--br-primary-d); }
.br-book-selected { display: flex; flex-wrap: wrap; gap: 6px; }
.br-book-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 8px 4px 10px;
	background: #eef2ff;
	color: var(--br-primary-d);
	border-radius: 999px;
	font-size: 13px;
}
.br-book-remove {
	border: none;
	background: transparent;
	color: var(--br-primary-d);
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
	padding: 0 2px;
}

/* =====================================================================
 * 前台：求书广场
 * ===================================================================== */
/* ---------- 链接体系（广场 / 详情 / 弹窗） ----------
 * 根因：ebook-cloud 主题 main.css 在插件样式【之后】加载，其中的
 *   .entry-content a { text-decoration: underline; text-underline-offset: 3px }   (0,1,1)
 * 会给整个广场（落在正文 .entry-content 内）的按钮、分类、标签、标题一律套上黑下划线，
 * 而插件里同权重的 text-decoration:none 因加载在前而失效——这才是"下划线难看"的真正来源，
 * 并非有意设计。对策：选择器提到 (0,2,1) 反向压制主题，并按用途分三类重做：
 *   ① 控件型（按钮/标签/分段/分类/侧栏列表）—— 无下划线，hover 用颜色与背景反馈；
 *   ② 标题型 —— 下划线默认透明，hover 渐显为品牌色（text-decoration 天然支持多行换行）；
 *   ③ 正文型（详情页正文）—— 保留下划线但更精致：品牌色细线 + 加大偏移，hover 转实色。
 * 注意：正文容器是 <div class="br-detail__body entry-content">，两个 class 在【同一元素】上，
 *   后代写法 .entry-content .br-detail__body a 匹配不到，须用 .entry-content.br-detail__body a。
 */
.br-square a,
.br-modal a { text-decoration: none; }                 /* 兜底：无主题干扰的场景（如 CPT 归档） */
.entry-content .br-square a,
.entry-content .br-modal a { text-decoration: none; }  /* (0,2,1) 压过主题的 (0,1,1) */

/* ① 控件型：统一柔和过渡，让 hover 反馈不生硬 */
.br-square .br-chip,
.br-square .br-catnav__item,
.br-square .br-seg__item,
.br-square .br-rank__link,
.br-square .br-recent__item a,
.br-square .page-numbers {
	transition: color .16s ease, background-color .16s ease, border-color .16s ease;
}

/* ② 标题型：下划线默认隐形，hover 由透明渐显为品牌色（比硬切换更有质感） */
.entry-content .br-card__title a,
.br-square .br-card__title a {
	color: var(--br-ink);
	text-decoration-line: underline;
	text-decoration-style: solid;
	text-decoration-thickness: 2px;
	text-decoration-color: transparent;
	text-underline-offset: 3px;
	transition: color .18s ease, text-decoration-color .18s ease;
}
.entry-content .br-card__title a:hover,
.br-square .br-card__title a:hover {
	color: var(--br-primary);
	text-decoration-color: var(--br-primary);
}

/* ③ 正文型：保留下划线但换成品牌色细线（可读性与观感兼顾） */
.br-square .br-detail__body a,
.entry-content.br-detail__body a {
	color: var(--br-primary-d);
	text-decoration-line: underline;
	text-decoration-style: solid;
	text-decoration-thickness: 1.5px;
	/* 下划线取主色的低透明版本：跟随后台「强调色」设置。
	   先给一个靛蓝兜底值，再让支持 color-mix 的浏览器改用实际主色。 */
	text-decoration-color: rgba(79, 70, 229, .38);
	text-decoration-color: color-mix(in srgb, var(--br-primary) 38%, transparent);
	text-underline-offset: 3px;
	transition: color .18s ease, text-decoration-color .18s ease;
}
.br-square .br-detail__body a:hover,
.entry-content.br-detail__body a:hover {
	color: var(--br-primary);
	text-decoration-color: var(--br-primary);
}

/* 去掉下划线后，键盘导航仍需要明确的焦点指示（无障碍） */
.br-square a:focus-visible,
.br-modal a:focus-visible {
	outline: 2px solid var(--br-primary);
	outline-offset: 2px;
	border-radius: 4px;
}

/* 整页三栏：左栏分类 + 中栏信息流 + 右栏侧边组件。
 * 中栏 .br-square__main 设为容器（container-type），卡片网格与工具栏改走 @container
 * 查询，按「中栏实际宽度」自适应，而不是视口宽度——避免中栏被两侧挤压时仍套用全宽断点。
 *
 * 左右两栏宽度：后台「求书设置 → 侧边栏模块 → 侧栏宽度」可调（140–320px，出厂默认左 200 / 右 180）。
 * ⚠️ 变量定义在 .br-square 上而不是 :root —— 后台覆盖同样写成 .br-square{--br-side-left:…}
 *    （见 BR_Settings::css_vars()），同为 (0,1,0)，靠「inline CSS 排在样式表之后」取胜。
 *    若这里改写 :root，自定义属性会因「元素自身声明 > 从 :root 继承」而被本规则压掉，
 *    表现为「后台改了宽度、前台没反应」。 */
.br-square {
	--br-side-left: 200px;
	--br-side-right: 180px;
	padding: 6px 0 30px;
	display: grid;
	grid-template-columns: var(--br-side-left) minmax(0, 1fr) var(--br-side-right);
	grid-template-areas: "left main right";
	gap: 20px;
	align-items: start;
}
.br-square__left  { grid-area: left; }
.br-square__main  {
	grid-area: main;
	min-width: 0;
	container-type: inline-size;
}
.br-square__right { grid-area: right; }

/* 后台可关闭某侧全部模块：整栏收起，中间内容区自动加宽（桌面规则，特异性高于基础 .br-square）。
 * 移动端在下方 @media 里把同样的修饰类一并纳入，确保窄屏仍强制单列。 */
.br-square--no-left  { grid-template-columns: minmax(0, 1fr) var(--br-side-right); grid-template-areas: "main right"; }
.br-square--no-right { grid-template-columns: var(--br-side-left) minmax(0, 1fr); grid-template-areas: "left main"; }
.br-square--no-left.br-square--no-right { grid-template-columns: minmax(0, 1fr); grid-template-areas: "main"; }

/* 窄屏（≤991px）：只保留中栏信息流，左右侧栏内容整体不显示（隐藏规则见下方）。
 * 注意：必须用 minmax(0,1fr) 而非 1fr——1fr 的隐含最小尺寸为 auto（= 中栏内容最小宽度，
 * 受工具栏 min-content 影响约 406px），在极窄屏会被撑破导致横向溢出。 */
@media (max-width: 991px) {
	.br-square,
	.br-square--no-left,
	.br-square--no-right,
	.br-square--no-left.br-square--no-right {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "main";
		gap: 18px;
	}
}

/* 左 / 右栏：吸顶，中栏滚动时保持可见。 */
.br-square__left,
.br-square__right {
	display: flex;
	flex-direction: column;
	gap: 16px;
	align-self: start;
	position: sticky;
	top: 20px;
}

/* 窄屏：隐藏左右侧栏，并在工具栏下补一条横向分类筛选条。
 * 必须放在上面那条基础规则「之后」——同 specificity 时后写的赢，
 * 放前面会被基础的 display:flex 覆盖掉。 */
.br-square__cats { display: none; }
@media (max-width: 991px) {
	.br-square__left,
	.br-square__right { display: none; }

	.br-square__cats { display: block; margin-top: 12px; }
	.br-square__cats .br-seg {
		display: flex;
		max-width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.br-square__cats .br-seg::-webkit-scrollbar { display: none; }
	.br-square__cats .br-seg > * { flex: 0 0 auto; }
	.br-seg--cat .br-seg__label { padding: 6px 4px; font-size: 13px; font-weight: 600; color: var(--br-sub); }
}

.br-square__bar { margin-bottom: 18px; }

/* 侧栏通用卡片 */
.br-side-widget {
	background: #fff;
	border: 1px solid var(--br-line);
	border-radius: var(--br-radius);
	padding: 16px;
	box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
.br-side-widget__title {
	margin: 0 0 12px;
	font-size: 15px;
	font-weight: 700;
	color: var(--br-ink);
	display: flex;
	align-items: center;
	gap: 8px;
}
.br-side-widget__title::before {
	content: "";
	width: 4px;
	height: 14px;
	border-radius: 2px;
	background: var(--br-primary);
	display: inline-block;
	flex: 0 0 auto;
}
.br-side-widget--nav .br-side-widget__head { margin-bottom: 12px; }

/* 自定义组件内容区（HTML 内容块 / 短代码的输出容器） */
.br-side-widget__body {
	font-size: 14px;
	line-height: 1.7;
	color: #374151;
	/* 侧栏只有 180–200px，这里必须允许收缩：否则短代码渲染出的
	   min-width / 长单词 / 定宽网格会把整栏顶宽、撑破三栏布局。 */
	min-width: 0;
	max-width: 100%;
	overflow-wrap: anywhere;
}
.br-side-widget__body > :first-child { margin-top: 0; }
.br-side-widget__body > :last-child { margin-bottom: 0; }
.br-side-widget__body > * { max-width: 100%; }
.br-side-widget__body p { margin: 0 0 10px; }
.br-side-widget__body img { max-width: 100%; height: auto; border-radius: 8px; }
.br-side-widget__body ul,
.br-side-widget__body ol { margin: 0 0 10px; padding-left: 20px; }
.br-side-widget__body li { margin-bottom: 4px; }
/* 表格 / 预格式化内容在窄栏里改为可横向滚动，而不是撑破布局 */
.br-side-widget__body table,
.br-side-widget__body pre { display: block; max-width: 100%; overflow-x: auto; }

/* 左栏：分类导航 */
.br-catnav {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.br-catnav__item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 8px 12px;
	border-radius: 8px;
	color: var(--br-ink);
	text-decoration: none;
	font-size: 14px;
	transition: background .15s, color .15s;
}
.br-catnav__item:hover { background: #f1f5f9; color: var(--br-primary); }
.br-catnav__item.is-active { background: #eef2ff; color: var(--br-primary-d); font-weight: 600; }
.br-catnav__count {
	font-size: 12px;
	color: var(--br-sub);
	background: #f1f5f9;
	border-radius: 999px;
	padding: 1px 8px;
	min-width: 20px;
	text-align: center;
	flex: 0 0 auto;
}
.br-catnav__item.is-active .br-catnav__count { background: #e0e7ff; color: var(--br-primary-d); }

/* 右栏：统计 */
.br-stat {
	display: flex;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.br-stat__item {
	flex: 1;
	text-align: center;
	background: var(--br-bg);
	border-radius: 10px;
	padding: 10px 4px;
}
.br-stat__num {
	display: block;
	font-size: 20px;
	font-weight: 800;
	color: var(--br-primary);
	line-height: 1.2;
}
.br-stat__num--wait { color: var(--br-wait-ink); }
.br-stat__num--ok   { color: var(--br-ok-ink); }
.br-stat__label { display: block; font-size: 12px; color: var(--br-sub); margin-top: 2px; }

/* 右栏：热门求书排行 */
.br-rank {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 8px;
	counter-reset: br-rank;
}
.br-rank__item { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.br-rank__no {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	border-radius: 6px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #f1f5f9;
	color: var(--br-sub);
	font-size: 12px;
	font-weight: 700;
}
.br-rank__no.is-top { background: var(--br-primary); color: #fff; }
.br-rank__link {
	flex: 1;
	min-width: 0;
	color: var(--br-ink);
	text-decoration: none;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.br-rank__link:hover { color: var(--br-primary); }
.br-rank__likes { flex: 0 0 auto; font-size: 12px; color: var(--br-sub); }

/* 右栏：最新已满足 */
.br-recent {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.br-recent__item { display: flex; align-items: center; gap: 6px; font-size: 14px; }
.br-recent__item a {
	flex: 1;
	min-width: 0;
	color: var(--br-ink);
	text-decoration: none;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.br-recent__item a:hover { color: var(--br-primary); }
.br-recent__ok { flex: 0 0 auto; color: var(--br-ok-ink); font-weight: 700; }

/*
 * 工具栏栅格：三列 [auto | 1fr | auto]，两行。
 *   第一行：发布求书（左） + 排序下拉        搜索框 + 按钮（右）
 *   第二行：筛选分段（整行，跨满三列）
 * ⚠️ 筛选行必须跨满三列。早期版本写的是 `"sort chips chips"`，于是筛选区宽度
 * = 总宽 − 第一列 − 一个 gap，被压到 570px（1440 下），而三组分段（我发布的/响应状态/悬赏）
 * 实际需要约 630px → 最后一组被挤到第二行、且分组间的竖分隔符孤零零留在行尾，
 * 呈现为「参差两行」。把排序挪到第一行、筛选独占一行后即可一行放下。
 */
.br-square__filters {
	display: grid;
	gap: 10px 12px;
	grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-areas:
		"actions sort   search"
		"chips   chips  chips";
	align-items: center;
}

.br-square__actions { grid-area: actions; justify-self: start; display: flex; align-items: center; gap: 8px; }

.br-square__search {
	grid-area: search;
	display: flex;
	align-items: center;
	gap: 8px;
	justify-self: end;
	min-width: 0;
}

.br-square__sort { grid-area: sort; display: flex; align-items: center; justify-self: start; }

.br-square__chips {
	grid-area: chips;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	min-width: 0;
}
/* 工具栏里的分段控件是密集控件，内边距比别处收 2px：
 * 三组（我发布的 / 响应状态 / 悬赏）合计约省 40px，正好让 1080 宽的三栏布局也能一行放下。 */
.br-square__chips .br-seg__item { padding: 6px 12px; }

.br-square__filters .br-sort,
.br-square__filters .br-search {
	height: 36px;
	border: 1px solid var(--br-line);
	border-radius: 8px;
	padding: 0 10px;
	font-size: 14px;
	background: #fff;
	color: var(--br-ink);
}
.br-square__filters .br-sort { max-width: 100%; }
.br-square__filters .br-search { width: 220px; max-width: 100%; }

.br-new-wrap {
	background: #fff;
	border: 1px solid var(--br-line);
	border-radius: var(--br-radius);
	padding: 18px;
	margin-bottom: 18px;
	box-shadow: 0 1px 3px rgba(0,0,0,.04);
}

/* =====================================================================
 * 前台：发布求书弹窗（modal）
 * 结构与内联表单解耦：表单由 render_form() 注入到 .br-modal__body，
 * 因此所有既有的提交 / 图片预览 / 悬赏切换 / 游客字段逻辑均不受影响。
 * ===================================================================== */
.br-modal {
	position: fixed;
	inset: 0;
	/* ⚠️ 必须高于主题的顶栏(sticky 600)、悬浮按钮(100000)、目录(9999)、登录弹窗(1200)，
	 * 否则移动端这些层会盖住弹窗头部，右上角 × 点不到（表现为"关不掉弹窗"）。
	 * 主题 admin-messages.css 到 99999，这里取 100001 稳定压过它。 */
	z-index: 100001;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}
.br-modal[hidden] { display: none; }
.br-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(15,23,42,.55);
}
.br-modal__dialog {
	position: relative;
	z-index: 1;
	width: 100%;
	/* 适当加宽：单行能并排放「书名/分类」「说明/标签」，减少堆叠行数 → 一屏装下、不出滚动条 */
	max-width: 680px;
	max-height: calc(100vh - 40px);
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: var(--br-radius);
	box-shadow: 0 20px 60px rgba(15,23,42,.28);
	overflow: hidden;
}
.br-modal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 18px;
	border-bottom: 1px solid var(--br-line);
}
/* ⚠️ 提权到 (0,2,0)：主题的全局 h2（含 `.entry-content h2`）会给弹窗标题加
 * margin-top:34px / margin-bottom:14px 并把字号顶到 21px，导致弹窗头部凭空高 40px。
 * 这里用 .br-modal 前缀压过主题，重新锁死 margin 与行高。 */
.br-modal .br-modal__title {
	margin: 0;
	font-size: 17px;
	line-height: 1.35;
	font-weight: 700;
	color: var(--br-ink);
	outline: none;
}
.br-modal__close {
	border: none;
	background: transparent;
	cursor: pointer;
	font-size: 24px;
	line-height: 1;
	color: var(--br-sub);
	width: 36px;
	height: 36px;
	border-radius: 8px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
}
.br-modal__close:hover { background: #f1f5f9; color: var(--br-ink); }
.br-modal__body {
	padding: 18px;
	overflow-y: auto;
	flex: 1 1 auto;
	min-height: 0;
}

/* 弹窗打开时锁定背景滚动 */
body.br-modal-open { overflow: hidden; }

@media (max-width: 600px) {
	.br-modal { padding: 0; }
	.br-modal__dialog {
		max-width: 100%;
		/* 移动端用动态视口高度，避免地址栏收起/展开时 100vh 算错导致底部被截 */
		max-height: 100dvh;
		height: 100dvh;
		border-radius: 0;
	}
	.br-modal__head { padding: 13px 14px; }
	.br-modal__body { padding: 14px; }
}

/* 「暂不发布」按钮：只在弹窗内出现（广场内联表单不需要），默认隐藏后由弹窗上下文放开。
 * 目的是给移动端一个不依赖右上角 × 的关闭入口——顶栏 fixed 且z-index 更高时会把 × 压住点不到。 */
.br-form__cancel--modal { display: none; }
.br-modal .br-form__cancel--modal { display: inline-flex; }

/* 移动端：弹窗底部操作区吸底常驻，「暂不发布」无需滚动就能点到（表单较长时尤其重要）。
 * sticky 挂在 .br-form__actions 上、滚动容器是 .br-modal__body，所以要负 margin 抵消 body 的 padding。 */
@media (max-width: 600px) {
	.br-modal .br-form__actions {
		gap: 10px;
		position: sticky;
		bottom: 0;
		margin: 0 -14px -14px;
		padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
		background: #fff;
		border-top: 1px solid var(--br-line);
		flex-wrap: wrap;
	}
	.br-modal .br-form__actions .br-btn { flex: 1 1 0; justify-content: center; }
	.br-modal .br-form__msg { flex: 1 1 100%; }
	.br-modal .br-form__msg:empty { display: none; }
}

/* =====================================================================
 * 弹窗表单紧凑化：目标是「一屏装下、不出滚动条」
 *
 * 未优化前（390x844）表单内容 997px / 可视 741px，溢出 256px：
 * 大头是 label 独占一行 + hint 独占一行，六个区块各占 74~177px。
 * 优化后实测 9 个视口**竖向/横向溢出均为 0**（弹窗高也不超视口）：
 *   360x640  375x667  390x844  414x896  768x1024
 *   1280x720  1366x768  1440x900  1920x1080
 * 下面只压缩**弹窗内**的表单（.br-modal 前缀），广场内联表单保持原样。
 * ===================================================================== */

/* 桌面（≥601px）：两列栅格 —— 短字段（书名/分类）并排，长区块整行占满 */
@media (min-width: 601px) {
	.br-modal .br-form {
		display: grid;
		/* ⚠️ 必须 minmax(0,1fr)：裸写 1fr 时轨道下限是 min-content，
		 * 「置顶」那一行 .br-sticky-pick 是 nowrap 横滑容器、min-content 极大，
		 * 会把两列挤成 122/510 这种畸形比例。 */
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 8px 16px;
		align-content: start;
	}
	.br-modal .br-form__row { gap: 4px; min-width: 0; }
	.br-modal .br-form__row > label { font-size: 13px; }
	/* 占满整行：含多行控件的区块 + 底部操作区（--full 由模板标注） */
	.br-modal .br-form > .br-form__row--full,
	.br-modal .br-form > .br-form__actions { grid-column: 1 / -1; }
}

/* 移动端（≤600px）：label 与控件同行、hint 压成小字、间距收紧 */
@media (max-width: 600px) {
	.br-modal .br-modal__body { padding: 12px 14px; }
	.br-modal .br-form { gap: 9px; }

	/* label 左、控件右（flex 行向；⚠️ 必须显式 row，基类是 column，
	 *   否则 flex-basis 作用在纵轴 → 控件被撑成 150px 高、行高暴涨） */
	.br-modal .br-form__row {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		gap: 4px 10px;
	}
	.br-modal .br-form__row > label {
		flex: 0 0 auto;
		min-width: 56px;
		font-size: 12.5px;
		font-weight: 600;
		line-height: 1.5;
		color: var(--br-sub);
	}
	/* 长控件区块（--full：说明/标签/图片/悬赏/置顶）label 另起一行，控件独占整宽 */
	.br-modal .br-form__row--full > label { flex: 1 1 100%; min-width: 0; }

	.br-modal .br-form__row > .br-input,
	.br-modal .br-form__row > select,
	.br-modal .br-form__row > textarea,
	.br-modal .br-form__row > .br-reward-pick,
	.br-modal .br-form__row > .br-sticky-pick,
	.br-modal .br-form__row > .br-tag-pick,
	.br-modal .br-form__row > .br-img-preview,
	.br-modal .br-form__row > input[type="file"] { flex: 1 1 150px; min-width: 0; }

	/* hint 单独一行、压成一行小字（移动端文案再长也不占多行高度） */
	.br-modal .br-form__row > .br-form__hint {
		flex: 1 1 100%;
		margin: 0;
		font-size: 11px;
		line-height: 1.45;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	/* 悬赏/置顶的说明含余额与折扣等关键信息，允许折行 */
	.br-modal .br-form__row--reward > .br-form__hint,
	.br-modal .br-form__row--sticky > .br-form__hint { white-space: normal; }

	.br-modal .br-input { min-height: 34px; padding: 6px 10px; }
	.br-modal textarea.br-input { min-height: 52px; }

	/* 置顶套餐选项（仅移动端弹窗）：把「天数」与「本月免费 / 价格」拆成两行、字号收小。
	 * 单个档位更矮更窄 → 一屏能多露几个档位，横向滑动更少。
	 * ⚠️ 用 inline-grid 显式分行，不要用 flex-wrap：flex 的收缩容器会按「三项同一行」
	 *    算 max-content 宽度，wrap 后标签宽度不会变窄，白改。
	 * ⚠️ 只作用于弹窗（.br-modal 前缀），广场内联表单保持原样。 */
	.br-modal .br-sticky-pick { gap: 6px; }
	.br-modal .br-sticky-opt {
		display: inline-grid;
		grid-template-columns: auto auto; /* 第一行：单选框 + 天数 */
		align-items: center;
		column-gap: 5px;
		row-gap: 1px;
		padding: 5px 9px;
		font-size: 12px;
	}
	.br-modal .br-sticky-opt input { grid-column: 1; grid-row: 1; width: 14px; height: 14px; }
	.br-modal .br-sticky-opt__t { grid-column: 2; grid-row: 1; font-size: 12px; line-height: 1.3; }
	/* 第二行独占：本月免费 / 折扣价 / 原价（文案随会员等级变化） */
	.br-modal .br-sticky-opt__p {
		grid-column: 1 / -1;
		grid-row: 2;
		justify-content: flex-start;
		gap: 4px;
		font-size: 10.5px;
		line-height: 1.3;
	}
}

/* =====================================================================
 * 矮屏兜底：可视高度受限时（360x640 小屏机、375x667 iPhone SE、
 * 1280x720 / 1366x768 笔记本）再压一档，力争仍是「一屏装下」。
 * 用 max-height 限定作用域，常规高度（≥844 手机 / ≥900 桌面）完全不受影响。
 * ===================================================================== */

/* 移动端矮屏（≤730px 高） */
@media (max-width: 600px) and (max-height: 730px) {
	.br-modal__head { padding: 10px 14px; }
	.br-modal .br-modal__body { padding: 9px 12px; }
	.br-modal .br-form { gap: 6px; }
	.br-modal .br-form__row { gap: 3px 8px; }
	.br-modal .br-form__row > label { font-size: 12px; line-height: 1.35; }
	.br-modal .br-input { min-height: 30px; padding: 4px 9px; }
	/* ⚠️ textarea 高度由 rows="4" 决定，min-height 压不下去，矮屏必须显式给 height。 */
	.br-modal textarea.br-input { height: 46px; min-height: 0; }
	.br-modal .br-form__row > .br-form__hint { font-size: 10.5px; line-height: 1.3; }
	.br-modal .br-form__actions {
		gap: 8px;
		/* ⚠️ 负外边距必须与上面 .br-modal__body 的 padding(9px 12px) 一一对应，
		 * 沿用基类的 -14px 会比新内边距多出 2px → 操作区左右各溢出 2px 触发横向滚动。 */
		margin: 0 -12px -9px;
		padding: 8px 12px calc(8px + env(safe-area-inset-bottom, 0px));
	}
}

/* 矮屏桌面（笔记本常见 720 / 768 高）：把「悬赏」「置顶」并排，省掉一整行 */
@media (min-width: 601px) and (max-height: 800px) {
	.br-modal__head { padding: 9px 16px; }
	.br-modal .br-modal__body { padding: 12px 16px; }
	.br-modal .br-form { gap: 7px 16px; }
	.br-modal .br-form__row { gap: 3px; }
	.br-modal .br-form__row > label { font-size: 12.5px; }
	.br-modal textarea.br-input { height: 62px; min-height: 0; }
	/* 取消整行占位 → 两者落入同一行的左右两列 */
	.br-modal .br-form > .br-form__row--reward,
	.br-modal .br-form > .br-form__row--sticky { grid-column: auto; }
	/* 半列宽度下，置顶套餐改成换行排布（默认 nowrap 横滑在半列里体验差） */
	.br-modal .br-form__row--sticky .br-sticky-pick { flex-wrap: wrap; overflow-x: visible; }
}

.br-square__count {
	margin: 0 0 12px;
	font-size: 13px;
	color: var(--br-sub);
}

/* =====================================================================
 * 求书内容区（.br-list / .br-card）：一行一条的列表形态
 * ===================================================================== */
.br-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr); /* 一行一列 */
	gap: 12px;
}
/* 主题的 `.entry-content ul` / `.entry-content li`（specificity 0,1,1）会盖过上面的
 * `.br-list`（0,1,0），把 padding-left:22px / margin-bottom:8px 渗进列表：
 * 卡片区左侧凭空多出一条 22px 空槽、每张卡底部多 8px，行距还不一致。
 * 这里按主题结构提权复位（0,2,0 > 0,1,1）。 */
.entry-content .br-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.entry-content .br-card { margin-bottom: 0; }

.br-card {
	display: flex;
	flex-direction: row; /* 列表：左侧内容 + 右侧「同求」 */
	align-items: center;
	gap: 16px;
	min-width: 0;
	background: #fff;
	border: 1px solid var(--br-line);
	border-radius: var(--br-radius);
	padding: 14px 16px;
	transition: box-shadow .15s, transform .15s;
}
.br-card:hover { box-shadow: 0 6px 18px rgba(15,23,42,.08); transform: translateY(-1px); }
.br-card__main { flex: 1 1 auto; min-width: 0; }
.br-card__title {
	font-size: 16.5px;
	margin: 0 0 4px;
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}
.br-card__title a { color: var(--br-ink); text-decoration: none; }
.br-card__title a:hover { color: var(--br-primary); }
.br-card__excerpt {
	margin: 0 0 6px;
	color: var(--br-sub);
	font-size: 14px;
	line-height: 1.6;
	display: -webkit-box;
	-webkit-line-clamp: 2; /* 列表形态更紧凑：摘要收为 2 行 */
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.br-card__meta {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	font-size: 12px;
	color: var(--br-sub);
}
.br-card__meta .dot,
.br-detail__meta .dot {
	width: 3px; height: 3px; border-radius: 50%; background: #cbd5e1; display: inline-block;
}
/* 列表形态：「同求」固定在右侧竖排小方块，不再横向铺满卡片底部 */
.br-card__side { flex: 0 0 auto; display: flex; align-items: center; }
.br-card__side .br-like {
	flex-direction: column;
	width: auto;
	min-width: 76px;
	justify-content: center;
	gap: 1px;
	padding: 8px 10px;
}

/* 中栏很窄时（手机等）收紧内边距与「同求」按钮，保证标题可读 */
@container (max-width: 420px) {
	.br-card { gap: 12px; padding: 12px 13px; }
	.br-card__side .br-like { min-width: 62px; padding: 7px 8px; }
	.br-card__side .br-like__heart { font-size: 17px; }
	.br-card__side .br-like__count { font-size: 14px; }
}

/* 同求按钮 */
.br-like {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1px;
	min-width: 64px;
	padding: 10px 8px;
	border: 1px solid var(--br-line);
	border-radius: 12px;
	background: #fff;
	cursor: pointer;
	color: var(--br-sub);
	transition: all .15s;
}
.br-like:hover { border-color: #fca5a5; color: #ef4444; }
.br-like.is-liked { border-color: #fca5a5; color: #ef4444; background: #fef2f2; }
.br-like__heart { font-size: 20px; line-height: 1; }
.br-like__count { font-size: 15px; font-weight: 700; }
.br-like small { font-size: 11px; }
.br-like--lg { min-width: 88px; padding: 14px 12px; }

/* 列表为空 */
.br-empty {
	text-align: center;
	color: var(--br-sub);
	padding: 40px 0;
	background: #fff;
	border: 1px dashed var(--br-line);
	border-radius: var(--br-radius);
}

/* 分页（复用 WP 默认 .page-numbers 外观微调） */
.br-square .page-numbers {
	display: inline-block;
	padding: 7px 12px;
	margin: 18px 4px 0;
	border: 1px solid var(--br-line);
	border-radius: 8px;
	color: var(--br-ink);
	text-decoration: none;
	font-size: 13px;
}
.br-square .page-numbers.current { background: var(--br-primary); color: #fff; border-color: var(--br-primary); }
.br-square .page-numbers:hover:not(.current) { border-color: var(--br-primary); color: var(--br-primary); }

/* =====================================================================
 * 前台：发帖表单
 * ===================================================================== */
.br-form { display: flex; flex-direction: column; gap: 14px; }
.br-form__row { display: flex; flex-direction: column; gap: 6px; }
.br-form__row label { font-size: 14px; font-weight: 600; color: var(--br-ink); }
.br-req { color: #ef4444; margin-left: 2px; }
.br-input {
	border: 1px solid var(--br-line);
	border-radius: 8px;
	padding: 10px 12px;
	font-size: 14px;
	font-family: inherit;
	background: #fff;
	width: 100%;
	box-sizing: border-box;
}
.br-input:focus { outline: none; border-color: var(--br-primary); box-shadow: 0 0 0 3px rgba(79,70,229,.12); }
.br-input--area { resize: vertical; }
.br-form__hint { font-size: 12px; color: var(--br-sub); margin: 0; }
/* ⚠️ 提权到 (0,2,0)：主题在 main.css 有 `.entry-content p { margin: 0 0 18px }`(0,1,1)，
 * 会压过上一行的 margin:0，给**每条**表单提示凭空加 18px 下边距 ——
 * 弹窗表单因此虚高，矮屏（1280x720）直接被顶出滚动条。 */
.entry-content .br-form__hint,
.br-modal .br-form__hint { margin: 0; }
.br-form__actions { display: flex; align-items: center; gap: 12px; }
.br-form__msg { font-size: 13px; }
.br-form__msg.is-err { color: #ef4444; }
.br-form__msg.is-ok { color: var(--br-ok-ink); }

/* =====================================================================
 * 前台：详情页
 * ===================================================================== */
.br-detail { padding: 6px 0 10px; }
.br-detail__head {
	display: flex;
	gap: 18px;
	align-items: flex-start;
	justify-content: space-between;
	margin-bottom: 14px;
}
.br-detail__head-main { flex: 1; min-width: 0; }
.br-detail__cats { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.br-detail__title { font-size: 24px; margin: 0 0 8px; color: var(--br-ink); }
.br-detail__meta { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--br-sub); margin: 0; }
.br-detail__body { font-size: 15px; line-height: 1.8; color: #374151; }
.br-detail__body p { margin: 0 0 12px; }

/* 去下载卡片 */
.br-bookcard {
	display: flex;
	align-items: center;
	gap: 14px;
	background: linear-gradient(135deg, #eef2ff, #f5f3ff);
	border: 1px solid #e0e7ff;
	border-radius: var(--br-radius);
	padding: 14px 16px;
	margin: 18px 0 6px;
}
.br-bookcard__cover img { border-radius: 6px; box-shadow: 0 2px 6px rgba(0,0,0,.12); }
.br-bookcard__info { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.br-bookcard__tag { font-size: 12px; color: var(--br-primary-d); font-weight: 600; }
.br-bookcard__title { font-size: 16px; color: var(--br-ink); }
.br-bookcard__info .br-btn { align-self: flex-start; margin-top: 4px; }

/* 求书帖已关闭 WP 原生评论（互动走悬赏答案），.br-comments 不再输出，样式一并移除。 */

/* =====================================================================
 * 前台：搜索提醒横幅（纯提示，样式 + 图标）
 * ===================================================================== */
.br-notice {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	background: linear-gradient(135deg, #fff7ed, #fef9f3);
	border: 1px solid #fed7aa;
	border-left: 4px solid #f59e0b;
	border-radius: 10px;
	padding: 12px 14px;
	margin-bottom: 16px;
}
.br-notice[hidden] { display: none; }
.br-notice__icon { font-size: 20px; line-height: 1.4; flex: 0 0 auto; }
.br-notice__body { flex: 1; min-width: 0; }
.br-notice__title { display: block; font-size: 14px; font-weight: 700; color: #b45309; margin-bottom: 2px; }
.br-notice__text { margin: 0; font-size: 13px; line-height: 1.6; color: #92400e; }
.br-notice__close {
	flex: 0 0 auto;
	border: none;
	background: transparent;
	color: #b45309;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	padding: 0 2px;
	opacity: .7;
}
.br-notice__close:hover { opacity: 1; }

/* =====================================================================
 * 悬赏：表单选择 + 徽标
 * ===================================================================== */
.br-reward-pick { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.br-radio { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: var(--br-ink); cursor: pointer; }
.br-radio input { width: 16px; height: 16px; accent-color: var(--br-primary); }
.br-input--coins { width: 92px; }
.br-input__unit { font-size: 13px; color: var(--br-sub); }

/* 发布表单：置顶套餐选择（强制单行排布，超出可横向滚动） */
.br-sticky-pick { display: flex; align-items: stretch; gap: 10px; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 2px; }
.br-sticky-opt {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 8px 12px; border: 1px solid var(--br-line); border-radius: 10px;
	background: #fff; cursor: pointer; font-size: 14px; color: var(--br-ink);
	transition: border-color .15s ease, box-shadow .15s ease;
}
.br-sticky-opt input { width: 16px; height: 16px; accent-color: var(--br-primary); margin: 0; }
.br-sticky-opt:hover { border-color: var(--br-primary); }
.br-sticky-opt:has(input:checked) { border-color: #b45309; box-shadow: inset 0 0 0 1px #b45309; background: #fff7ed; }
.br-sticky-opt.is-disabled { opacity: .55; cursor: not-allowed; }
.br-sticky-opt.is-disabled:hover { border-color: var(--br-line); }
.br-sticky-opt__t { font-weight: 600; white-space: nowrap; }
.br-sticky-opt__p { display: inline-flex; align-items: baseline; gap: 5px; font-size: 12px; color: var(--br-sub); white-space: nowrap; }
.br-sticky-opt__p b { font-weight: 600; color: #b45309; }
.br-sticky-opt__p b.is-free { color: #0f766e; }
.br-sticky-opt__p s { color: var(--br-muted); }

/* 悬赏徽标：卡片 / 详情 / 后台列表通用 */
.br-reward {
	display: inline-block;
	padding: 2px 9px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.6;
	white-space: nowrap;
}
.br-reward__label { font-weight: 600; }
.br-reward--free { background: #f1f5f9; color: #475569; }
.br-reward--pay { background: #fef3c7; color: #b45309; }
/* 悬赏状态：冻结中 / 已发放（经济闭环可视化） */
.br-reward__state {
	display: inline-block;
	margin-left: 4px;
	padding: 0 5px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 600;
	background: #fff7ed;
	color: #c2410c;
	border: 1px solid #fed7aa;
}
.br-reward__state:empty { display: none; }

/* 筛选栏：悬赏分段与分隔 */
/* 分段控件组之间不再用竖分隔符：每组本身就是独立灰底胶囊（.br-seg 有 background +
 * border-radius），分组已经足够清楚；而竖线在换行时会孤零零留在行尾，反而像渲染错位。 */
.br-seg--reward .br-seg__label { padding: 6px 4px; font-size: 13px; font-weight: 600; color: var(--br-sub); }

/* 后台元框：付费币数行 */
.br-reward-coins-row { margin: 8px 0 14px; }
.br-reward-coins-row label { font-size: 13px; color: var(--br-sub); margin-right: 6px; }

/* =====================================================================
 * 前台：作者块 / 收藏 / 举报 / 复制 / 登录门 / 我的筛选
 * ===================================================================== */
.br-author { display: inline-flex; align-items: center; gap: 6px; }
/* position:relative 是照片层的定位参照；首字母在底层，照片层盖在其上 */
.br-author__avatar-wrap { display: inline-flex; position: relative; }
.br-author__avatar { width: 24px; height: 24px; border-radius: 50%; display: block; }
/* 头像图片层：用背景图而非 <img>，加载失败时该层不绘制，首字母自然透出（无破图图标） */
.br-author__photo {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
.br-author__name { color: var(--br-ink); font-weight: 600; }
.br-author__tag {
	display: inline-block;
	padding: 1px 7px;
	border-radius: 999px;
	background: #eef2ff;
	color: var(--br-primary-d);
	font-size: 11px;
	font-weight: 600;
}

/* 游客求书：没有 WP 头像，用首字圆形占位，标签换中性色以区别于注册用户 */
.br-author--guest .br-author__tag { background: #f3f4f6; color: var(--br-sub); }
.br-author__initial {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #e5e7eb;
	color: #4b5563;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
}

/* 收藏按钮（行内小按钮，复用主色） */
.br-fav {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 10px;
	border: 1px solid var(--br-line);
	border-radius: 999px;
	background: #fff;
	cursor: pointer;
	color: var(--br-sub);
	font-size: 12px;
	line-height: 1.4;
	transition: all .15s;
}
.br-fav:hover { border-color: #fbbf24; color: #d97706; }
.br-fav.is-faved { border-color: #fbbf24; color: #d97706; background: #fffbeb; }
.br-fav__icon { font-size: 14px; line-height: 1; }
.br-fav__count { font-weight: 700; }

/* 举报控件 */
.br-report { position: relative; display: inline-block; }
/* 展开面板时提升层级，避免被相邻卡片（层叠上下文）遮挡 */
.br-report.is-open { z-index: 200; }
.br-report__toggle {
	border: none;
	background: transparent;
	color: var(--br-sub);
	font-size: 12px;
	cursor: pointer;
	padding: 4px 6px;
	border-radius: 6px;
}
.br-report__toggle:hover { color: #ef4444; background: #fef2f2; }
.br-report__panel {
	position: absolute;
	z-index: 20;
	top: calc(100% + 6px);
	right: 0;
	width: 200px;
	background: #fff;
	border: 1px solid var(--br-line);
	border-radius: 10px;
	box-shadow: 0 8px 24px rgba(15,23,42,.12);
	padding: 12px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.br-report__panel[hidden] { display: none; }
/* 视口边缘自适应翻转：左溢出改贴左、底溢出改向上展开 */
.br-report__panel--flip-left { left: 0; right: auto; }
.br-report__panel--flip-up { top: auto; bottom: calc(100% + 6px); }
.br-report__title { font-size: 13px; font-weight: 700; color: var(--br-ink); }
.br-report__opt { font-size: 13px; color: var(--br-ink); display: flex; align-items: center; gap: 6px; cursor: pointer; }
/* 修正 native radio 在部分主题下的尺寸/可点区域 */
.br-report__opt input[type="radio"] { width: 16px; height: 16px; accent-color: var(--br-primary); cursor: pointer; }

/* 复制链接 */
.br-copy {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 6px 12px;
	border: 1px solid var(--br-line);
	border-radius: 999px;
	background: #fff;
	cursor: pointer;
	color: var(--br-ink);
	font-size: 13px;
	transition: all .15s;
}
.br-copy:hover { border-color: var(--br-primary); color: var(--br-primary); }

/* 登录门（未登录发布求书引导） */
.br-login-gate {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	text-align: center;
	background: #fff;
	border: 1px dashed var(--br-line);
	border-radius: var(--br-radius);
	padding: 26px 18px;
}
.br-login-gate__icon { font-size: 28px; }
.br-login-gate__text { margin: 0; color: var(--br-sub); font-size: 14px; line-height: 1.6; }

/* 详情页动作条 */
.br-detail__actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 12px; }

/* 后台：举报徽标与列表 */
.br-badge--report { background: #fee2e2; color: #b91c1c; cursor: default; }
.br-report-list { margin: 6px 0 8px; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 5px; }

/* 后台元框：游客信息（仅后台可见） */
.br-guest-info { margin: 0 0 8px; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 4px; }
.br-guest-info li { display: flex; gap: 8px; align-items: baseline; font-size: 12px; }
.br-guest-info__k { flex: 0 0 56px; color: var(--br-sub); }
.br-guest-info__v { color: var(--br-ink); font-weight: 600; word-break: break-all; }
.br-guest-info__v--mono { font-family: Consolas, Monaco, monospace; }

/* 后台元框：求书图片缩略图墙 */
.br-admin-images {
	margin: 4px 0 8px;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.br-admin-images__item {
	width: 84px;
	text-align: center;
	font-size: 11px;
	color: var(--br-sub);
}
.br-admin-images__item img {
	width: 84px;
	height: 84px;
	object-fit: cover;
	border-radius: 6px;
	border: 1px solid #dcdcde;
	display: block;
}
.br-admin-images__item img:hover { opacity: .88; }
.br-admin-images__meta { display: block; margin-top: 2px; }
.br-report-list li { font-size: 12px; color: var(--br-ink); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.br-report-list__reason { background: #fee2e2; color: #b91c1c; padding: 1px 7px; border-radius: 999px; font-weight: 600; }
.br-report-list__time { color: var(--br-sub); }

/* 后台：被举报求书汇总页 */
.br-reports-bulk { margin: 14px 0; display: flex; align-items: center; gap: 12px; }
.br-reports-bulk .br-bulk-msg { font-size: 13px; }
.br-reports-bulk .br-bulk-msg.is-err { color: #d63638; }
.br-reports-filters { margin: 12px 0; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.br-reports-filters label { font-size: 13px; display: inline-flex; align-items: center; gap: 6px; }
.br-reports-filters select { margin: 0; }
.br-reports-table .col-num { width: 72px; text-align: center; }
.br-reports-table .col-num .br-badge--report { font-size: 13px; min-width: 22px; display: inline-block; }
.br-reports-table .col-actions { width: 168px; }
.br-reports-table .col-actions .button { margin-right: 6px; }
.br-reports-table .col-title .row-actions { font-size: 12px; margin-top: 2px; }
.br-reports-table td .br-report-list__reason { display: inline-block; font-size: 12px; }
.br-reports-table td .br-report-list__time { display: block; color: var(--br-sub); font-size: 12px; margin-top: 2px; }

/* 后台：举报设置面板 */
.br-report-settings { background: #fff; border: 1px solid #c3c4c7; border-radius: 4px; padding: 8px 20px 16px; margin-top: 12px; max-width: 900px; box-shadow: 0 1px 1px rgba(0, 0, 0, .04); }
.br-report-settings .form-table th { width: 110px; font-weight: 600; padding-left: 0; }
.br-report-settings textarea { min-height: 260px; font-family: inherit; }
.br-report-settings .submit { margin: 8px 0 0; padding: 0; }

/* 后台：举报类型说明卡 */
.br-report-help { background: #fff; border: 1px solid #c3c4c7; border-left: 4px solid #72aee6; border-radius: 4px; padding: 12px 18px; margin: 12px 0; max-width: 900px; }
.br-report-help h3 { margin: 0 0 6px; font-size: 14px; }
.br-report-help p { margin: 6px 0; font-size: 13px; color: #50575e; line-height: 1.6; }
.br-report-help__list { margin: 8px 0 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 6px; }
.br-report-help__list li { background: #f0f6fc; border: 1px solid #c3c4c7; color: #1d2327; font-size: 12px; padding: 3px 10px; border-radius: 999px; }

/* =====================================================================
 * 后台：置顶设置套餐表 / 等级权益表
 * ===================================================================== */
.br-sticky-table { border-collapse: collapse; margin-bottom: 6px; }
.br-sticky-table th,
.br-sticky-table td { padding: 6px 12px 6px 0; text-align: left; font-weight: 400; vertical-align: middle; }
.br-sticky-table thead th { font-weight: 600; color: #1d2327; border-bottom: 1px solid #dcdcde; }
.br-sticky-table td input[type="number"] { width: 92px; }
/* 置顶套餐表：多了「会员折扣价 / 免费次数」两列，单元格窄一点以免撑破设置页。 */
.br-pkg-table td input[type="number"] { width: 78px; }
.br-pkg-table td { padding-right: 10px; white-space: nowrap; }
.br-pkg-table .br-pkg-del { text-decoration: none; }
.br-pkg-table .br-pkg-del:hover { text-decoration: underline; }
#br-pkg-add { margin-right: 6px; }

/* =====================================================================
 * 后台：侧边栏组件列表（拖拽排序 / 启停 / 增删自定义组件）
 * ===================================================================== */
.br-panel__sub { margin: 18px 0 8px; font-size: 14px; font-weight: 700; color: #1d2327; }
.br-sidemods { list-style: none; margin: 0 0 10px; padding: 0; max-width: 720px; }
.br-sidemod { background: #f6f7f7; border: 1px solid #dcdcde; border-radius: 10px; margin-bottom: 8px; padding: 10px 12px; }
.br-sidemod--custom { background: #fbfcfe; border-color: #c9d7ea; }
.br-sidemod__head { display: flex; align-items: center; gap: 10px; }
.br-sidemod__handle { cursor: move; color: #8c8f94; font-size: 18px; line-height: 1; user-select: none; padding: 0 2px; }
.br-sidemod__handle:hover { color: #2271b1; }
.br-sidemod__enable { display: inline-flex; align-items: center; gap: 5px; font-weight: 600; color: #1d2327; }
.br-sidemod__title { font-weight: 700; color: #1d2327; flex: 1; }
.br-sidemod__badge { font-size: 11px; line-height: 1.6; padding: 1px 7px; border-radius: 999px; background: #e6f0fb; color: #2271b1; border: 1px solid #c9d7ea; font-weight: 600; white-space: nowrap; }
.br-sidemod__del { border: 1px solid #dcdcde; background: #fff; color: #b32d2e; border-radius: 6px; padding: 3px 9px; font-size: 12.5px; cursor: pointer; }
.br-sidemod__del:hover { background: #f7e6e6; border-color: #b32d2e; }
.br-sidemod__toggle { border: 1px solid #dcdcde; background: #fff; color: #2271b1; border-radius: 6px; padding: 3px 9px; font-size: 12.5px; cursor: pointer; white-space: nowrap; }
.br-sidemod__toggle:hover { background: #eef4fb; border-color: #2271b1; }
/* 收起态：默认（无 JS / 初始渲染）不隐藏，靠脚本加 .is-collapsed 折叠，保证无 JS 时字段仍可见可编辑。 */
.br-sidemod.is-collapsed .br-sidemod__body { display: none; }
.br-sidemod__desc { margin: 6px 0 0 30px; }
.br-sidemod__body { margin: 8px 0 0 30px; display: grid; gap: 8px; }
.br-sidemod__field { display: grid; grid-template-columns: 60px minmax(0, 1fr); gap: 8px; align-items: start; }
.br-sidemod__field > span { font-weight: 600; color: #3c434a; font-size: 13px; padding-top: 4px; }
.br-sidemod__field input[type="text"],
.br-sidemod__field select,
.br-sidemod__field textarea { width: 100%; }
.br-sidemod__field textarea { font-family: Consolas, Monaco, monospace; font-size: 12.5px; }
.br-sidemod-placeholder { background: #e6f0fb; border: 1px dashed #2271b1; border-radius: 10px; height: 46px; margin-bottom: 8px; }
.br-sidemods-add { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; max-width: 720px; }
.br-sidemods-add__label { font-weight: 600; color: #1d2327; font-size: 13px; }
.br-sidemods-add .description { margin: 0; }
@media (max-width: 600px) {
	.br-sidemod__field { grid-template-columns: minmax(0, 1fr); }
}

/* 工具栏按「中栏宽度」自适应（container 查询）：中栏偏窄（≤480px）时堆叠为单列，
 * 顺序 发布 → 搜索 → 排序 → 筛选；筛选分段单行横向滚动。
 * 桌面三栏下中栏宽 616px（1080 视口）～736px（≥1280 视口），走上面的两行栅格
 * （第一行 发布+排序 / 搜索，第二行 筛选分段整行），三组分段可一行放下。 */
@container (max-width: 480px) {
	.br-square__filters {
		width: 100%;
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"actions"
			"search"
			"sort"
			"chips";
		gap: 10px;
	}
	.br-square__actions,
	.br-square__search,
	.br-square__sort { justify-self: stretch; }
	.br-square__actions .br-btn { width: 100%; }
	.br-square__search .br-search { flex: 1 1 auto; min-width: 0; width: auto; }
	.br-square__search .br-btn { flex: 0 0 auto; }
	.br-square__sort .br-sort { width: 100%; }
	.br-square__filters .br-sort,
	.br-square__filters .br-search { font-size: 16px; height: 40px; }
	/* 筛选分段：窄屏单行横向滚动，避免 3 组 chip 折成参差的 3 行 */
	.br-square__chips {
		flex-wrap: nowrap;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 2px;
		scrollbar-width: none;
	}
	.br-square__chips::-webkit-scrollbar { display: none; }
	.br-square__chips > * { flex: 0 0 auto; }
}

@media (max-width: 600px) {
	/* 求书内容区是「一行一条」的列表，窄屏也保持左内容 + 右「同求」，
	   不再像旧三列卡片那样改成竖排（否则同求按钮会掉到内容下方）。 */
	.br-card__side { justify-content: flex-start; }
	.br-detail__head { flex-direction: column; }

	/* chip / 筛选链接扩大可点区域 */
	.br-chip { padding: 5px 13px; }

	/* 按钮与关闭图标触控高度 */
	.br-btn { min-height: 40px; }
	.br-notice__close { min-width: 32px; min-height: 32px; display: inline-flex; align-items: center; justify-content: center; }
}

/* ---------- 求书关闭提示 ---------- */
.br-disabled {
	background: #fff; border: 1px solid #dcdcde; border-left: 4px solid #dba617;
	border-radius: 4px; padding: 16px 20px; margin: 12px 0;
}
.br-disabled p { margin: 0; font-size: 14px; color: #50575e; }

/* ---------- 标签 ---------- */
.br-chip--tag { background: #f0f6fc; border-color: #c5d9ed; color: #1d2327; }
.br-tag-pick { display: flex; flex-wrap: wrap; gap: 8px; }
.br-tag-pick__item {
	display: inline-flex; align-items: center; gap: 5px;
	padding: 5px 12px; border: 1px solid #c3c4c7; border-radius: 999px;
	background: #fff; font-size: 13px; cursor: pointer;
}
.br-tag-pick__item:hover { border-color: #2271b1; }
.br-tag-pick__item input { margin: 0; }

/* ---------- 求书图片 ---------- */
.br-img-preview { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.br-img-preview img { width: 88px; height: 88px; object-fit: cover; border-radius: 6px; border: 1px solid #dcdcde; }
.br-img-preview__warn {
	align-self: center;
	font-size: 12px;
	color: #b45309;
	background: #fff7ed;
	border: 1px solid #fed7aa;
	border-radius: 6px;
	padding: 4px 8px;
}
.br-images { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.br-images__item { margin: 0; }
.br-images__item img {
	width: 140px; height: 140px; object-fit: cover;
	border-radius: 8px; border: 1px solid #dcdcde; display: block;
}
.br-images__item img:hover { opacity: .88; }

/* ---------- 后台：求书设置页 ---------- */
.br-settings .br-panel {
	background: #fff; border: 1px solid #c3c4c7; border-radius: 4px;
	padding: 8px 20px 18px; margin: 16px 0; max-width: 900px;
}
.br-settings .br-panel h2 { margin: 14px 0 6px; font-size: 14px; }
.br-settings .form-table th { width: 170px; }
.br-inline { display: inline-flex; align-items: center; gap: 5px; margin-right: 18px; }

/* =====================================================================
 * 后台：求书列表「关联电子书」行内链接编辑器 + 「联系方式」列
 * ===================================================================== */
/* 注意：这里不能写死 min-width。列表是 table-layout:fixed，单元格的 min-content
   会把整张表顶宽、逼出横向滚动条；宽度一律交给列宽系统（含拖拽）来定。 */
.br-bookcell {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	min-width: 0;
	width: 100%;
}
.br-bookcell__link {
	display: inline-block;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	vertical-align: middle;
}
.br-bookcell__input {
	flex: 1 1 120px;
	min-width: 96px;
	max-width: 320px;
	font-size: 12px;
	padding: 3px 6px;
}
.br-bookcell__input.has-value { border-color: #2271b1; }
.br-bookcell__status {
	flex: 1 0 100%;
	font-size: 11px;
	line-height: 1.5;
	color: #646970;
}
.br-bookcell__status.is-ok { color: #007017; }
.br-bookcell__status.is-warn { color: #996800; }
.br-bookcell__status.is-err { color: #b32d2e; }

/* 联系方式列：仅后台可见，游客联系方式用等宽字体便于辨认 / 复制 */
.br-contact-cell { display: inline-flex; flex-direction: column; gap: 2px; }
.br-contact-cell__name { font-weight: 600; }
.br-contact-cell__v {
	font-family: Consolas, Monaco, monospace;
	font-size: 12px;
	color: #1d2327;
	word-break: break-all;
}

/* ---------- 置顶：后台列表按钮 + 前台徽标 ---------- */
.br-sticky-btn {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	white-space: nowrap;
}
.br-sticky-btn .dashicons {
	font-size: 15px;
	width: 15px;
	height: 15px;
	line-height: 1;
	/* 未置顶时图标是「躺倒」的别针，旋转后更像图钉，状态差异更直观。 */
	transform: rotate(45deg);
	transition: transform .15s ease;
}
.br-sticky-btn.is-on { border-color: #b45309; background: #fff7ed; color: #b45309; }
.br-sticky-btn.is-on .dashicons { transform: rotate(0deg); color: #b45309; }
.br-sticky-btn__state { font-size: 11px; color: #646970; margin-left: 6px; }
.br-sticky-btn__state.is-err { color: #b32d2e; }
/* 列表列副标题：来源 · 剩余天数（或已过期） · 扣币数 */
.br-sticky-btn__meta { margin-top: 3px; font-size: 11px; line-height: 1.5; color: #8a5a00; }
.br-sticky-btn__meta.is-expired { color: #b32d2e; }

/* 元框里的置顶勾选项 */
.br-sticky-row { margin: 0 0 12px; }
.br-sticky-row label { font-size: 13px; display: inline-flex; align-items: center; gap: 6px; }
.br-sticky-days-row { margin: -6px 0 12px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.br-sticky-days-row > label { font-size: 13px; font-weight: 600; }
.br-sticky-days-row .description { flex: 1 1 260px; margin: 0; }

/* 前台：置顶的卡片加一条左侧橙色竖条，一眼能看出是管理员手动顶上去的 */
.br-card.is-sticky {
	border-color: #fed7aa;
	box-shadow: inset 3px 0 0 #fbbf24;
}
.br-card.is-sticky:hover { box-shadow: inset 3px 0 0 #fbbf24, 0 6px 18px rgba(15, 23, 42, .08); }

/* 前台：置顶徽标（橙色，与「已满足」绿色区分开） */
.br-badge--sticky {
	background: #fff7ed;
	color: #b45309;
	border: 1px solid #fed7aa;
	font-size: 11px;
	padding: 1px 8px;
	white-space: nowrap;
}

/* ---------- 后台：分类列下拉框 + 列宽拖拽 ---------- */
.br-cat-select { max-width: 140px; }
body.br-resizing { cursor: col-resize; user-select: none; }
.wp-list-table th { position: relative; }
.wp-list-table th .br-colgrip {
	position: absolute;
	top: 0;
	right: 0;
	width: 7px;
	height: 100%;
	cursor: col-resize;
	background: transparent;
	transition: background .15s;
}
.wp-list-table th .br-colgrip:hover,
.wp-list-table th .br-colgrip.is-active { background: #2271b1; }
.br-colwidth-tools {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-left: 10px;
	vertical-align: middle;
}
.br-colwidth-hint { color: #646970; font-size: 12px; }

/* 前台：已满足的求书在列表里直接给「去下载」 */
.br-card.has-download .br-card__side { flex-direction: column; gap: 8px; }
.br-card__download { white-space: nowrap; }

/* =====================================================================
 * 前台：悬赏答案（私密回答 + 付费偷看）
 * 结构见 BR_Frontend::render_answers()。可见性由服务端决定，
 * 这里只负责「锁着」与「已解锁」两种外观的差异。
 * ===================================================================== */
.br-answers {
	margin-top: 26px;
	background: #fff;
	border: 1px solid var(--br-line);
	border-radius: var(--br-radius, 12px);
	padding: 18px 20px 20px;
}
.br-answers__head { margin-bottom: 14px; }
.br-answers__title { margin: 0; font-size: 17px; font-weight: 700; color: var(--br-ink); }
.br-answers__title em { font-style: normal; color: var(--br-primary); font-size: 15px; margin-left: 4px; }
.br-answers__tip { margin: 6px 0 0; font-size: 12.5px; color: var(--br-ink-3, #64748b); line-height: 1.7; }
.br-answers__empty { margin: 4px 0 16px; font-size: 13.5px; color: var(--br-ink-3, #64748b); }

.br-answer-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.br-answer {
	border: 1px solid var(--br-line);
	border-radius: 10px;
	padding: 12px 14px;
	background: #fcfdff;
}
.br-answer.is-locked { background: #f8fafc; border-style: dashed; }
.br-answer__head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.br-answer__head .br-author__initial { width: 26px; height: 26px; font-size: 12px; }
.br-answer__author { font-size: 13.5px; font-weight: 600; color: var(--br-ink); }
.br-answer__tag {
	font-size: 11.5px; padding: 1px 7px; border-radius: 999px;
	background: #eef2ff; color: var(--br-primary-d, #4338ca);
}
.br-answer__date { font-size: 12px; color: var(--br-ink-3, #94a3b8); }
.br-answer__price {
	margin-left: auto; font-size: 12.5px; font-weight: 600;
	background: #fff7ed; color: #c2410c; border-radius: 999px; padding: 2px 10px;
}
.br-answer__price.is-free { background: #ecfdf5; color: #047857; }
.br-answer__del {
	border: 0; background: transparent; color: var(--br-ink-3, #94a3b8);
	font-size: 12px; cursor: pointer; padding: 2px 4px;
}
.br-answer__del:hover { color: #dc2626; }

.br-answer__body { margin-top: 10px; font-size: 14px; color: var(--br-ink); line-height: 1.78; }
.br-answer__body p { margin: 0 0 10px; }
.br-answer__body p:last-child { margin-bottom: 0; }

/* ⚠️ 这段必须写成 (0,2,0)：主题 main.css 的 .entry-content ul/li（0,1,1）
   会给区块内的列表加上 18px 外边距与 22px 缩进，网盘清单会凭空多出左槽与底部空隙。 */
.entry-content .br-answer__pan,
.br-answer__pan { margin: 10px 0 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.entry-content .br-answer__pan-item,
.br-answer__pan-item { margin: 0; padding: 0; }
.br-answer__pan-item {
	display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
	background: #f1f5f9; border-radius: 8px; padding: 7px 10px; font-size: 13px;
}
.br-answer__pan-type {
	font-size: 11.5px; font-weight: 600; color: #fff; background: var(--br-primary);
	padding: 1px 8px; border-radius: 999px;
}
.br-answer__pan-url { color: var(--br-primary-d, #4338ca); text-decoration: none; overflow-wrap: anywhere; }
.br-answer__pan-url:hover { text-decoration: underline; }
.br-answer__pan-code { font-size: 12.5px; color: var(--br-ink-3, #64748b); }
.br-answer__pan-code b { color: #b45309; letter-spacing: 1px; }
.br-answer__copy {
	border: 1px solid var(--br-line); background: #fff; border-radius: 6px;
	font-size: 12px; padding: 2px 8px; cursor: pointer; color: var(--br-ink);
}
.br-answer__copy:hover { border-color: var(--br-primary); color: var(--br-primary); }

.br-answer__locked { margin-top: 10px; }
.br-answer__locked-text { margin: 0 0 10px; font-size: 13.5px; color: var(--br-ink-3, #64748b); }
.br-answer__balance { margin-left: 10px; font-size: 12.5px; color: var(--br-ink-3, #64748b); }

/* 提交表单 */
.br-answer-form {
	margin-top: 18px; padding-top: 16px; border-top: 1px dashed var(--br-line);
}
.br-answer-form--guest { text-align: center; }
.br-answer-form--guest p { margin: 0 0 10px; font-size: 13.5px; color: var(--br-ink-3, #64748b); }
.br-answer-form__title { margin: 0 0 12px; font-size: 15px; font-weight: 700; color: var(--br-ink); }
.br-answer-form__notice {
	margin: 0 0 12px; padding: 8px 12px; border-radius: 8px;
	background: #fef2f2; border: 1px solid #fecaca; color: #b91c1c;
	font-size: 12.5px; line-height: 1.6;
}
.br-answer-form__text,
.br-answer-form__pan textarea {
	width: 100%; box-sizing: border-box; border: 1px solid var(--br-line); border-radius: 8px;
	padding: 10px 12px; font-size: 14px; line-height: 1.7; resize: vertical;
	font-family: inherit; color: var(--br-ink); background: #fff;
}
.br-answer-form__text:focus,
.br-answer-form__pan textarea:focus { outline: none; border-color: var(--br-primary); }
.br-answer-form__row { margin-top: 12px; }
.br-answer-form__peek { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13.5px; color: var(--br-ink); }
.br-answer-form__peek select {
	border: 1px solid var(--br-line); border-radius: 6px; padding: 5px 8px; font-size: 13px; background: #fff;
}
.br-answer-form__hint { font-size: 12px; color: var(--br-ink-3, #94a3b8); }
.br-answer-form__pan { display: block; margin-top: 12px; font-size: 13.5px; color: var(--br-ink); }
.br-answer-form__pan > span { display: block; margin-bottom: 6px; }

.br-answer-form__foot {
	margin-top: 14px; display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.br-answer-form__status { margin: 10px 0 0; font-size: 13px; min-height: 18px; }
.br-answer-form__status.is-on[data-type="ok"] { color: #047857; }
.br-answer-form__status.is-on[data-type="error"] { color: #dc2626; }

@media (max-width: 560px) {
	.br-answers { padding: 14px 14px 16px; }
	.br-answer__price { margin-left: 0; }
	.br-answer-form__foot { align-items: stretch; }
	.br-answer-form__foot .br-btn { width: 100%; }
}
