/* ============================================================
   私信 / 实时交流（续9 2026-06-10）—— Better Messages 对接层样式
   ① 主题侧入口 UI（顶栏 💬 / 底栏「消息」角标 / 入口按钮）= b-* 自有类
   ② BM 信使套皮 = 插件内部 DOM/变量耦合隔离层（⚠️ BM 2.15.12：
      --bm-* 自定义属性取「RGB 三元组」、.bp-messages-wrap=信使容器
      —— 升级插件需复测本文件全部「BM 2.15.12」标注规则；角标已改纯
      主题元素+事件求和，见 inc/messages.php unread_badge + app.js）
   颜色纪律（CODEGEN §2）：三元组无法直接引用 hex token → 本文件集中定义
   「三元组桥」，每行注释标对应 token；除此以外 0 硬编码色。
   ============================================================ */

/* ------------------------------------------------------------
   ① 顶栏 💬（镜像 .b-notif__trigger：44px 触控、图标 20px 居中）
   ------------------------------------------------------------ */
.b-msg-bell {
	position: relative;
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px;
	border-radius: var(--r-pill); color: var(--ink-1);
}
.b-msg-bell:hover { background: var(--bg-2); color: var(--ink-0); }

/* 未读角标（顶栏）：镜像 .b-notif__badge（danger 底白字，锚定图标右上角）。
   纯主题元素（私信+通知合计，见 inc/messages.php unread_badge；不带 BM 类、不受 BM CSS
   `.bpbmuc{background:…!important}` 刷色影响），活更新由 app.js 监听 BM 事件求和。 */
.b-msg-bell .b-msg-bell__badge {
	position: absolute; top: 6px; right: 6px;
	width: auto; min-width: 16px; height: 16px; padding: 0 4px;
	margin: 0;
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: var(--r-pill);
	background: var(--danger); color: #fff; /* 同 .b-notif__badge 既有写法 */
	font-size: 10px; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums;
}
/* 计数 0 隐藏（主题自有规则；合计角标不再依赖 BM 的 .bpbmuc-hide-when-null）。 */
.b-msg-bell .b-msg-bell__badge[data-count="0"] { display: none; }

/* 移动端（≤1099）顶栏顺序：💬 排最左、紧挨 🔔（🔔=order:-1，见 header-footer.css）→ 💬🔔 并列。 */
@media (max-width: 1099px) {
	.b-topbar__actions > .b-msg-bell { order: -2; }
}

/* 〔0.4.443〕底栏「消息」tab 已移除：底栏第 4 位恒「社区」、消息入口走顶栏 💬（推翻 0.4.338）。
   原底栏消息角标规则 .b-mobile-tabbar__item--msg / .b-mobile-tabbar__msg-badge 随之删除（死规则）；
   顶栏 💬 未读角标见下方 .b-msg-bell__badge。别再加回底栏消息角标。 */

/* ------------------------------------------------------------
   ① 入口按钮 / 容器（按钮本体继承 .b-btn .b-btn--ghost .b-btn--sm）
   ------------------------------------------------------------ */
.b-order-msg-seller { margin: var(--s-4) 0 0; }

/* ------------------------------------------------------------
   ①b /messages/ 页顶「系统通知」折叠段（0.4.344：<details> 就地展开，不再跳转独立页）
      收起 = 置顶会话样式一行（🔔 圆底 + 标题/最新摘要 + 时间/未读 pill/›）；
      〔批X429〕行=直达「我的账户→通知」链接卡（原行内直出列表已撤）。
   ------------------------------------------------------------ */
.b-msg-notif {
	margin: 0 0 var(--s-3);
	background: var(--bg-0);
	border: 1px solid var(--line);
	border-radius: var(--r-3);
}
/* 〔批X429〕折叠段改直达链接行：summary 规则退役·链接卡整体可点。 */
.b-msg-notif--link { display: block; text-decoration: none; color: inherit; border-radius: var(--r-3); }
.b-msg-notif-row {
	display: flex; align-items: center; gap: var(--s-3);
	padding: var(--s-3) var(--s-4);
	color: var(--ink-0);
	min-height: 44px; /* 触控达标 */
}
.b-msg-notif--link:hover { background: var(--bg-1); }
/* 〔批X429〕行内展开列表（__bd/__list/__empty）与 chevron 旋转随折叠段退役已删。 */
.b-msg-notif-row__icon {
	flex: 0 0 40px;
	width: 40px; height: 40px;
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: var(--r-pill);
	background: var(--bg-2);
	font-size: 18px;
}
.b-msg-notif-row__body {
	flex: 1 1 auto; min-width: 0; /* 摘要省略号必需 */
	display: flex; flex-direction: column; gap: 2px;
}
.b-msg-notif-row__title { font-size: 14px; font-weight: 600; line-height: 1.3; }
.b-msg-notif-row__snippet {
	font-size: 13px; color: var(--ink-3); line-height: 1.4;
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.b-msg-notif-row__meta {
	flex: 0 0 auto;
	display: inline-flex; align-items: center; gap: var(--s-2);
}
.b-msg-notif-row__time { font-size: 12px; color: var(--ink-4); }
.b-msg-notif-row__count {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 18px; height: 18px; padding: 0 5px;
	border-radius: var(--r-pill);
	background: var(--danger); color: #fff; /* 同 .b-notif__badge 既有写法 */
	font-size: 11px; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums;
}
.b-msg-notif-row__chevron { font-size: 18px; color: var(--ink-4); line-height: 1; }

/* ------------------------------------------------------------
   ② BM 信使变量桥（BM 2.15.12 内部 --bm-* 多为 RGB 三元组，经
      rgb(var(--xxx)) 消费；body 级定义压过插件 :root 默认值）。
      三元组 = 主题 token 等值（逐行注释），亮/暗各一组。
   ------------------------------------------------------------ */
body {
	--bm-font-family: var(--font-sans);
	--main-bm-color: 109, 77, 255;             /* = --brand #6d4dff（亮） */
	--bm-button-bg: 109, 77, 255;              /* = --btn-primary-bg #6d4dff（白字 AA） */
	--bm-button-color: 255, 255, 255;
	--bm-border-radius: 8px;                   /* = --r-2 */
	--bm-message-border-radius: 10px;          /* 气泡圆角（介于 --r-2/3，BM 单值） */
	--bm-avatar-radius: 999px;                 /* = --r-pill（头像圆形，配主题头像契约） */
	--bm-border-color: 236, 235, 226;          /* = --line #ecebe2 */
	--bm-border-secondary-color: 236, 235, 226;/* = --line */
	--bm-bg-color: 255, 255, 255;              /* = --bg-0 #ffffff */
	--bm-bg-secondary: 250, 250, 246;          /* = --bg-1 #fafaf6 */
	--bm-hover-bg: 243, 241, 234;              /* = --bg-2 #f3f1ea */
	--bm-text-color: 24, 24, 31;               /* = --ink-0 #18181f */
	--bm-placeholder: 131, 131, 145;           /* = --ink-4 #838391 */
	--right-message-bg-color: 109, 77, 255;    /* 我方气泡 = --btn-primary-bg（白字 AA 5.05） */
	--right-message-text-color: 255, 255, 255;
	--right-message-nickname-color: 109, 77, 255; /* = --brand */
	--left-message-bg-color: 243, 241, 234;    /* 对方气泡 = --bg-2 */
	--left-message-text-color: 24, 24, 31;     /* = --ink-0 */
	--left-message-nickname-color: 81, 81, 95; /* = --ink-2 #51515f */
}

/* 暗色（与 tokens.css 同款三层之①②；变量直接改基础值，不依赖 BM 的 body.bm-messages-dark 类）。 */
[data-theme="dark"] body {
	--main-bm-color: 131, 106, 255;            /* = --brand 暗 #836aff */
	--bm-button-bg: 109, 77, 255;              /* = --btn-primary-bg 暗（--brand-600 #6d4dff，白字 AA） */
	--bm-border-color: 44, 44, 64;             /* = --line 暗 #2c2c40 */
	--bm-border-secondary-color: 44, 44, 64;   /* = --line 暗 */
	--bm-bg-color: 28, 28, 42;                 /* = --bg-0 暗 #1c1c2a */
	--bm-bg-secondary: 19, 19, 32;             /* = --bg-1 暗 #131320 */
	--bm-hover-bg: 37, 37, 58;                 /* = --bg-2 暗 #25253a */
	--bm-text-color: 245, 245, 250;            /* = --ink-0 暗 #f5f5fa */
	--bm-placeholder: 140, 140, 158;           /* = --ink-3 暗 #8c8c9e */
	--right-message-bg-color: 109, 77, 255;    /* = --btn-primary-bg 暗 */
	--right-message-text-color: 255, 255, 255;
	--right-message-nickname-color: 131, 106, 255; /* = --brand 暗 */
	--left-message-bg-color: 37, 37, 58;       /* = --bg-2 暗 */
	--left-message-text-color: 245, 245, 250;  /* = --ink-0 暗 */
	--left-message-nickname-color: 165, 165, 184; /* = --ink-2 暗 #a5a5b8 */
	--bm-scrollbar: rgba(255, 255, 255, 0.1);
	--bm-scrollbar-active: rgba(255, 255, 255, 0.55);
	--bm-scrollbar-focus: rgba(255, 255, 255, 0.7);
	--bm-button-hover: #ffffff24;              /* BM 自带暗色等值（按钮悬浮叠加层） */
	--bm-button-active: #ffffff45;
	--bm-sticky-date-bg: #1d2333;              /* BM 自带暗色等值（悬浮日期条） */
	--bm-sticky-date-color: #fff;
	--bm-tooltip-bg: 0, 0, 0;
	--bm-tooltip-color: 255, 255, 255;
}
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]):not([data-theme="dark"]) body {
		--main-bm-color: 131, 106, 255;            /* 与上方 [data-theme=dark] 同步 */
		--bm-button-bg: 109, 77, 255;
		--bm-border-color: 44, 44, 64;
		--bm-border-secondary-color: 44, 44, 64;
		--bm-bg-color: 28, 28, 42;
		--bm-bg-secondary: 19, 19, 32;
		--bm-hover-bg: 37, 37, 58;
		--bm-text-color: 245, 245, 250;
		--bm-placeholder: 140, 140, 158;
		--right-message-bg-color: 109, 77, 255;
		--right-message-text-color: 255, 255, 255;
		--right-message-nickname-color: 131, 106, 255;
		--left-message-bg-color: 37, 37, 58;
		--left-message-text-color: 245, 245, 250;
		--left-message-nickname-color: 165, 165, 184;
		--bm-scrollbar: rgba(255, 255, 255, 0.1);
		--bm-scrollbar-active: rgba(255, 255, 255, 0.55);
		--bm-scrollbar-focus: rgba(255, 255, 255, 0.7);
		--bm-button-hover: #ffffff24;
		--bm-button-active: #ffffff45;
		--bm-sticky-date-bg: #1d2333;
		--bm-sticky-date-color: #fff;
		--bm-tooltip-bg: 0, 0, 0;
		--bm-tooltip-color: 255, 255, 255;
	}
}

/* ------------------------------------------------------------
   ② BM 信使容器结构微调（插件内部 DOM 耦合，BM 2.15.12）
   ------------------------------------------------------------ */
/* 信使外框贴主题卡片语言（圆角 + token 边线）。
   s12 UI批3（2026-06-13 用户报「没有框」）：原边线 --line 过淡几乎看不出 → 提到 --line-strong + 轻阴影，
   让聊天区读成一个明确的「框」（卡片化容器）。 */
.bp-messages-wrap.bp-messages-wrap {
	border: 1px solid var(--line-strong);
	border-radius: var(--r-3);
	box-shadow: 0 1px 3px rgba(0, 0, 0, .05);
	background: var(--bg-0);
}

/* 移动端（≤1099 有固定底栏）：内嵌信使（非全屏态，如会话深链直达）尾部输入条让位底栏，
   不被 .b-mobile-tabbar 盖住（BM 真机点击进会话默认 autoFullScreen 全屏、自带让位，此为兜底）。 */
@media (max-width: 1099px) {
	.b-page-content .bp-messages-wrap {
		margin-bottom: calc(var(--mobile-tab-h) + env(safe-area-inset-bottom));
	}
}

/* ------------------------------------------------------------
   ② /messages/ 应用化布局（0.4.346，body.b-msgapp 由 inc/messages.php 注入）
      联网核实行业共识（WhatsApp Web / Telegram Web / Amazon Message Center 等）：
      聊天区充满视口、输入框恒在视口内、页面自身不滚。
      此前 BM 内联 <style> 写死 .bp-messages-threads-wrapper{height:650px} 嵌在内容流里 →
      1366×768 笔记本上输入框沉到首屏外 + 页面/聊天双滚动条反模式（实测 wrapTop：PC 245 / 移动 264）。
      覆盖 BM 内联 style 标签规则需 !important（BM 2.15.12 hooks.php max_height_css）；
      :not(.bp-messages-mobile) = 不碰 BM 自身的移动全屏会话态。
      ⚠️ ICP 合规：页脚含工信部强制的 ICP 备案号。〔续34 用户拍板 2026-06-23〕**移动端聊天页(≤1099)整块隐藏页脚**
      = 用户明确走选项 C「聊天页不需要备案显示」；备案号在**首页及其余各页**页脚照常显著展示，仅这三个沉浸式聊天页
      （b-msgapp/b-dokan-msg）移动端不挂。🔴 **后续窗口勿当合规回退改回**——区别于 0.4.346 那次全站误隐
      （本次是用户知情决策、且仅移动端聊天页、其余页备案号都在）。隐藏规则见下方〔续34〕app-shell 块。
      **PC/平板(≥1100) 仍按下行保留页脚**（备案号在、紧跟信使、可微滚见）。 */
body.b-msgapp .b-footer { margin-top: var(--s-4); }            /* 〔PC/平板〕收大留白、法务栏紧跟信使仍可见（移动端被下方 app-shell display:none 覆盖） */
body.b-msgapp .b-footer__grid:empty { display: none; }         /* 无导航菜单时的空网格不占位 */
/* s12 UI批3（2026-06-13 用户报「碰一下页面就移动」）：消息页关掉过卷橡皮筋/下拉刷新连带，
   让触碰聊天区的滚动手感更「应用化」、不再松垮回弹。页面仍可向下微滚一点露出页脚 ICP（合规要求页脚可见）。 */
body.b-msgapp { overscroll-behavior-y: contain; }

/* BM JS 在外层 wrap 写内联 height:630px（messagesHeight-20，bp-messages-free.min.js）→ 还原为
   随内容（threads-wrapper 已显式定高），否则视口公式只缩内层、外层留白+页面照滚。 */
body.b-msgapp:not(.bp-messages-mobile) .bp-messages-wrap.bp-messages-wrap { height: auto !important; }

/* 页面壳层底部呼吸收敛为普通间距（避免大留白把页脚推得过远）。 */
body.b-msgapp .b-main { padding-bottom: 0; }
body.b-msgapp .b-main > .b-container { padding-bottom: var(--s-3); }

/* ============================================================
   〔续34 用户拍板 2026-06-23〕移动端聊天「满屏 app shell」：整页锁死不滚、信使填满顶栏与底栏之间、
   只有消息列表 / 会话内消息列内部滚（顶栏 + 底栏 5 tab + 系统通知卡全保留）。
   两个聊天上下文统一：b-msgapp(消息中心) / b-dokan-msg(卖家咨询)。〔精简批 0.4.736〕群聊(b-groupchat)已随社区层删除。
   高度坑根治：body 定高用 chat-fit.js 实测 visualViewport 写的 --app-vh（地址栏伸缩 / 软键盘弹出都跟手），
   100dvh 仅作 JS 未跑时的兜底；min-height:0 解掉基础布局的 min-height:844 让其能随键盘收缩。
   外层 overflow:hidden + overscroll-behavior:none = 触碰聊天区不连带整页滚 / 不橡皮筋。
   页脚隐藏见上方 ICP 注释（选项 C，仅移动端聊天页、备案号其余页都在）。PC/平板(≥1100) 完全不受影响。
   ============================================================ */
@media (max-width: 1099px) {
	body.b-msgapp,body.b-dokan-msg {
		height: var(--app-vh, 100dvh);
		min-height: 0;
		overflow: hidden;
		overscroll-behavior: none;
	}
	/* JS（chat-fit.js）加在 <html> 上，把仅锁 body 时残留的几 px 整页溢出也夹掉。
	   body 那条带 dvh 兜底 = JS 未跑前即生效不闪；本条 = JS 跑后把 <html> 也彻底锁死。 */
	html.b-appshell-lock {
		height: var(--app-vh, 100dvh);
		min-height: 0;
		overflow: hidden;
		overscroll-behavior: none;
	}
	body.b-msgapp .b-footer,body.b-dokan-msg .b-footer { display: none !important; }
	/* 软键盘弹出：固定底栏被键盘盖在可视区外 → 收掉其占位，输入框紧贴键盘上方（b-kb-up 由 chat-fit.js 标）。 */
	body.b-msgapp.b-kb-up,body.b-dokan-msg.b-kb-up { padding-bottom: 0; }
}

/* 信使高度 = 视口减去其上方固定块（顶栏/标题/通知行/留白）→ 输入框正好落在视口底、恒可见；
   页脚（含 ICP）自然落到视口下方，向下微滚即见（合规）。 */
@media (min-width: 1100px) {
	body.b-msgapp:not(.bp-messages-mobile) .bp-messages-threads-wrapper {
		height: calc(100vh - 270px) !important;  /* 270 = 顶栏 60 + 标题 + 通知折叠行 + 留白（收起态 wrapTop 245） */
		height: calc(100dvh - 270px) !important; /* dvh 优先（移动浏览器地址栏伸缩友好），旧内核回落上行 vh */
		min-height: 450px; /* 矮窗口下限：宁可页面微滚、不压扁聊天 */
	}
}
@media (max-width: 1099px) {
	body.b-msgapp:not(.bp-messages-mobile) .bp-messages-threads-wrapper {
		height: calc(100vh - 336px - env(safe-area-inset-bottom)) !important; /* 336 = wrapTop 264 + 底栏 56 + 留白 */
		height: calc(100dvh - 336px - env(safe-area-inset-bottom)) !important;
		min-height: 160px; /* 〔续29〕勿设高：chat-fit.js 量 visualViewport 动态设高，高 min-height 会在软键盘弹出/矮屏顶飞输入框 */
	}
	/* 高度公式已扣除底栏 → 通用让位 margin 归零，防双倍清空撑出滚动。 */
	body.b-msgapp .b-page-content .bp-messages-wrap {
		margin-bottom: 0;
	}
}

/* 〔精简批 0.4.736〕原 ③/③b「群聊(BP 群组)应用化布局」整段已随社区层删除。 */

/* ------------------------------------------------------------
   ⑤ 卖家工作台「买家咨询」（/dashboard/messages/，body.b-dokan-msg，批31 注入）移动端应用化布局（s12 批33，
      用户报「聊天输入框看不见，要像移动端消息那样随时能输入」）。
      该端点批31 已隐 Dokan 后台导航网格，但 BM 信使仍用内联 630px、嵌内容流 → 会话视图里输入框沉到视口外。
      与 b-msgapp 同口径：信使外框高度还原 auto + 聊天框定高 = 视口减上方 chrome（顶栏 60 + 搜索条 ≈ 66 = 126）与底栏
      → 输入框恒落视口底、可见；配合 header.php 给本页 viewport 加 interactive-widget=resizes-content，键盘弹出时
      布局收缩、输入框顶到键盘上方。仅移动端（≤1099，有固定底栏）；PC（≥1100）dashboard 2 栏布局不动。
   ------------------------------------------------------------ */
@media (max-width: 1099px) {
	body.b-dokan-msg:not(.bp-messages-mobile) .bp-messages-wrap.bp-messages-wrap { height: auto !important; }
	body.b-dokan-msg:not(.bp-messages-mobile) .bp-messages-threads-wrapper {
		height: calc(100vh - 190px - env(safe-area-inset-bottom)) !important;
		height: calc(100dvh - 190px - env(safe-area-inset-bottom)) !important; /* 190 = wrapTop 126(顶栏60+搜索66) + 底栏 56 + 余隙 8 */
		min-height: 160px; /* 〔续29〕勿设高：chat-fit.js 量 visualViewport 动态设高，高 min-height 会在软键盘弹出/矮屏顶飞输入框 */
	}
	/* 高度已扣底栏 → 通用让位 margin 归零，防双倍清空撑出滚动（同 b-msgapp）。 */
	body.b-dokan-msg .b-page-content .bp-messages-wrap { margin-bottom: 0; }
	/* 触碰聊天区不连带整页橡皮筋（同 b-msgapp 应用化手感）。 */
	body.b-dokan-msg { overscroll-behavior-y: contain; }
}

/* ------------------------------------------------------------
   ⑤b 买家咨询 PC（≥1100）〔0.4.752 站长报「点咨询创作者进来没有输入框」〕：
      上面 ⑤ 只修了 ≤1099 移动端，PC 档一直漏配——BM 信使外框仍是内联 630px 定高 + overflow:hidden，
      而其内部 .bp-messages-threads-wrapper 实际 ~700px → 底部回复框（.bm-reply ≈70px）整个被裁在框外，
      卖家在会话里无处打字（卖家身份点作品页「咨询创作者」被 BM Dokan 集成带到本页 = 必经路径）。
      与 b-msgapp PC 同口径：外框还原 auto、聊天列定高 = 视口减上方 chrome（顶栏 60 + 外框上边距 ≈ 78，
      再留 ~32px 底部呼吸）→ 输入框恒落视口内；页脚自然沉到视口下方，微滚即见。
   ------------------------------------------------------------ */
@media (min-width: 1100px) {
	body.b-dokan-msg:not(.bp-messages-mobile) .bp-messages-wrap.bp-messages-wrap { height: auto !important; }
	body.b-dokan-msg:not(.bp-messages-mobile) .bp-messages-threads-wrapper {
		height: calc(100vh - 110px) !important;
		height: calc(100dvh - 110px) !important; /* dvh 优先，旧内核回落上行 vh */
		min-height: 450px; /* 矮窗口下限：宁可页面微滚、不压扁聊天（同 b-msgapp）。 */
	}
}

/* ④ 自己消息的「头像 / 昵称」显隐：
   - 昵称（.bm-info）：全局隐——不必显示「自己」的昵称。
   - 头像（.bm-pic）：私信隐（批24 WhatsApp 范式）。
   !important 压过 BM .bm-template-modern；对方消息(.incoming)头像+昵称始终保留。 */
.bp-messages-threads-wrapper .bm-messages-stack.outgoing .bm-info { display: none !important; }
/* 〔精简批 0.4.736〕群聊已删——原「body:not(.b-groupchat) 才隐自己头像」的否定条件恒真，收敛为无条件规则。 */
.bp-messages-threads-wrapper .bm-messages-stack.outgoing .bm-pic { display: none !important; }

/* 〔续29〕隐藏每条消息悬停浮出的「⋮ 更多 / ☆ 收藏」快捷动作组（.bm-options-group = .bm-more-actions + .bm-favorite-empty）：
   私聊里发出方头像(.bm-pic)已隐 → 这组动作浮在空位上「错位」（用户实测反馈），且对买卖咨询是冗余杂项。
   消息窗口统一移除 → 聊天更干净、无错位。要恢复：去掉本规则。 */
.bp-messages-wrap .bm-options-group { display: none !important; }
/* 〔续29〕消息中心/咨询 2 栏视图「未选会话」空状态：去掉那枚大灰气泡符号（BM `.bpbm-empty-icon`）——用户嫌多余；
   保留「选择一个对话以显示消息」文案（仍有引导意义）。 */
.bp-messages-wrap .bpbm-empty-icon { display: none !important; }

/* 〔精简批 0.4.736〕原 ⑥「群聊纯聊天化」段头已随社区层删除；下方输入框/最大化等规则为私聊·咨询共用、保留。 */

/* 私聊页（/messages/ = b-msgapp、卖家工作台「买家咨询」/dashboard/messages/ = b-dokan-msg）也去掉「最大化」图标
   ——已是消息专页、弹全屏无意义（续20，2026-06-18 用户拍板「零成本能补的去补」）。
   私聊保留「新对话/搜索/收藏/更多(可静音某会话)」，只去最大化。 */
body.b-msgapp .bpbm-maximize,
body.b-dokan-msg .bpbm-maximize { display: none !important; }

/* 〔续29 v3〕输入框去「刻意」——**全部消息窗口共用**（私聊·咨询 b-msgapp / 卖家咨询 b-dokan-msg 都是 BM 同一个 .bm-editor）。原 1.5px 粗描边 + 聚焦 3px 大光环 = 丑；纯填充无边 = 焦点态发白看不见。
   定稿 = 柔和填充(bg-2) + 1px 细描边(line，给清晰边界) + r-3 圆角，聚焦只换 brand 描边、底色不变(不发白)、无光环。 */
.bp-messages-wrap .bm-editor {
	border: 1px solid var(--line);
	background: var(--bg-2);
	border-radius: var(--r-3);
	transition: border-color .15s;
}
.bp-messages-wrap .bm-editor:focus-within {
	border-color: var(--brand);
	box-shadow: none;
}
/* 内容区透明 → 填充统一为外层 .bm-editor 的柔和 pill 底，否则 BM 给内容区写死白底(`.bp-messages-wrap .bm-reply .bm-editor .bm-editor-content{background:var(--bm-bg-color)!important}`)
   会在米灰 pill 里再现一个白框 = 框中框。须同等(0,4,0)选择器 + body 提权(0,4,1) + !important 才压过。 */
body .bp-messages-wrap .bm-reply .bm-editor .bm-editor-content { background: transparent !important; }

/* 〔续29〕去掉 BM composer 行 `.bm-reply` 的白底 + border-top（BM 默认给输入区一层底+顶线）——它和输入框 `.bm-editor`
   的柔和 pill 叠成「框中框」、丑（用户反馈）。清成透明无边 → 只剩输入框那一个 pill，emoji/发送钮坐在其右的聊天底上。 */
.bp-messages-wrap .bm-reply { background: transparent !important; border: 0 !important; }

/* 〔续21 撤〕原自建「加入群聊」框外灰条 .b-gc-joins/.b-gc-join 已删——改用 BM 原生系统消息内联渲染（见上 ③）。 */

/* ------------------------------------------------------------
   ② 会话防诈提示横幅（B2.5，经 BM threadInfo 注入，BM 2.15.12）
   ------------------------------------------------------------ */
/* 〔续29〕防诈横幅大黄块 → 一行细灰提示（用户：太占地方/抢戏）：去黄底、文字转次级灰 + 底部细线分隔，
   只留 alert 图标着警示色（仍是提醒、不喧宾夺主）。 */
.b-msg-scam-note {
	display: flex;
	align-items: center;
	gap: 5px;
	padding: var(--s-1) var(--s-3);
	background: none;
	color: var(--ink-3);
	font-size: 11px;
	line-height: 1.4;
	border-radius: 0;
	margin: 0;
	border-bottom: 1px solid var(--line);
}
.b-msg-scam-note .b-ic { flex: 0 0 auto; color: var(--warning); }

/* ------------------------------------------------------------
   ⑥ 收件箱底栏右下角「自己头像 + 昵称」隐藏（s12 批42，2026-06-14 用户：右下角自己的头像和「测试买家」
      会被误读成"前面有个发消息输入框"，应去掉——自己是谁无需在收件箱重复显示）。
      底栏 .chat-footer = 左 a.settings 齿轮 + 右 .bpbm-user-me（含头像 .bpbm-user-me-avatar + 昵称 .bpbm-user-info）。
      隐整个 .bpbm-user-me（头像+昵称一起去）；左下角设置齿轮保留。BM 各视图通用。
   ------------------------------------------------------------ */
.bp-messages-wrap .chat-footer .bpbm-user-me { display: none !important; }

/* ============================================================
   ⑦〔续22 用户拍板，2026-06-19〕消息页(b-msgapp)工具栏整理 + 聊天日期分隔居中
   ============================================================ */
/* (a) 去掉顶部工具栏「✏️ 新对话」(.new-message) +「☆ 收藏」(.starred-messages)——本平台私信从创作者/作品/订单页
       「咨询·联系」发起(带实名闸)、不从消息页凭空发起；收藏=低频杂项。保留「🔍 搜索」(.bm-search-btn)。 */
body.b-msgapp .new-message,
body.b-msgapp .starred-messages { display: none !important; }

/* (b) 移动端：底部「⚙️ 设置」(.chat-footer 内 a.settings，昵称已隐) 移到顶部左上角(原 ✏️ 位)。
       .bp-messages-column = position:relative 参照；footer 改绝对定位贴顶左 + 去掉底部空 bar。
       ⚙️ 仍是 <a href="#/settings"> 点击照开设置；🔍 搜索仍在右上。 */
@media (max-width: 768px) {
	body.b-msgapp .bp-messages-column > .chat-footer {
		position: absolute; top: 1px; left: 0;
		width: auto; height: auto; min-height: 0;
		margin: 0; padding: 0; border: 0; background: none; box-shadow: none;
		z-index: 6;
	}
}

/* (c) 聊天「日期分隔」(BM .bm-sticky-date)强制居中——某些 BM 版本/状态下它在 text-align:left 容器里被推到气泡
       左边、与内容叠一起(错版)。改成居中块(margin auto)、不依赖父级 text-align，各状态都居中(像微信 —— 6月11日 ——)。
       ⚠️ 必须 !important：BM 自带 `.bp-messages-wrap .bm-messages-list .bm-list .bm-sticky-date`(0,4,0) 比本选择器特异性高、
          且把它写死 display:inline-block + text-align 继承居中；生产某些状态下继承失效→左对齐，故强制覆盖。 */
body.b-msgapp .bp-messages-wrap .bm-sticky-date {
	display: block !important;
	width: -moz-fit-content;
	width: fit-content !important;
	max-width: 88%;
	margin-left: auto !important;
	margin-right: auto !important;
	float: none !important;
}

/* (c2) 〔续34 用户拍板·真机发现〕私聊/卖家咨询(1对1)BM 走 `bm-date-position-message` 模式：每个 `.bm-date-stack`
   里 日期(.bm-sticky-date) 与当天消息组(.bm-messages-stack) 是两个子级、stack 默认**横排**→ 日期被挤到右对齐
   (outgoing/bm-right-side)气泡的左边同一行(错位、与内容碰一起)。群聊走 bm-template-modern=日期居中独占行(对的)。
   修：强制 `.bm-date-stack` **纵向堆叠** → 日期(已被上方规则 margin auto 居中)独占一行、消息组落到下一行，与群聊一致。 */
body.b-msgapp .bm-date-position-message .bm-date-stack,
body.b-dokan-msg .bm-date-position-message .bm-date-stack {
	display: flex !important;
	flex-direction: column !important;       /* 日期与当天消息组纵向堆叠，不再并排 */
}
body.b-msgapp .bm-date-position-message .bm-date-stack > .bm-sticky-date,
body.b-dokan-msg .bm-date-position-message .bm-date-stack > .bm-sticky-date {
	position: static !important;             /* 解掉 sticky 浮动，回到流内占一整行 */
	order: -1 !important;                     /* 日期排最上 */
	align-self: center !important;            /* 居中 */
}
/* 〔续34 用户拍板·真机发现〕咨询/私聊「还没开始聊」(空会话 .empty-thread)时 BM 显示的大「打招呼」气泡图标
   （.empty-thread 里的无类名 <svg>）——用户不要这个客气图标。隐掉图标、保留「写一条消息以开始对话」引导文字。 */
body.b-msgapp .empty-thread > svg,body.b-dokan-msg .empty-thread > svg { display: none !important; }

body.b-msgapp .bm-date-position-message .bm-date-stack > .bm-messages-stack,
body.b-dokan-msg .bm-date-position-message .bm-date-stack > .bm-messages-stack {
	/* 当天消息组里 .bm-content 有 margin-top:-35px（贴齐左侧头像用；自己消息头像隐藏→把内容上拉与日期重叠）。
	   日期独占行后给消息组补回 35px + 8px 间距，让首条消息稳稳落到日期下方、不再与日期碰一起。 */
	margin-top: 43px !important;
	transform: none !important;
}

/* 〔续25 用户拍板〕消息页工具栏精简：只留右上角「搜索」(.bpbm-search)，隐藏 新建对话 / 收藏 / 左下角设置齿轮。
   body.b-msg-toolbar-min 由 inc/messages.php 据 filter `bumian_messages_show_toolbar_extras`(默认 false) 注入；
   要恢复显示：add_filter('bumian_messages_show_toolbar_extras','__return_true')。
   ⚠️ 耦合 BM 内部 DOM（Better Messages 2.15.12）：a.new-message(新对话) / .chat-header .bm-btn(✓全部标记为已读，仅有未读时出现) / a.starred-messages(收藏) / a.settings(设置齿轮)；升级 BM 需复测。 */
body.b-msg-toolbar-min .chat-header a.new-message,
body.b-msg-toolbar-min .chat-header .bm-btn,
body.b-msg-toolbar-min a.starred-messages,
body.b-msg-toolbar-min .chat-footer a.settings { display: none !important; }
