/*  app-core-overrides.css — 全站可读覆盖层（Phase3b 已抽离首页 husir-xl/md-home）
 * 来源归档：archive/app-core-overrides-phase3b-source/app-core-overrides.css
 * 含：排版基线 / com_page 主区 / :root 令牌 / custom-override / PC 浮窗·backtop / 暗黑双分支
 * 首页双卡/banner 分页见 home-critical.css（Phase4 已并入；完整产品层按端型见 home-xl-compact / home-xl-desktop）
 * 生成：scripts/split-app-core-home-overrides.mjs（2026-07-24）
 * 重生成：node scripts/split-app-core-home-overrides.mjs
 * 须在 app.core.min.css 之后；禁止手改 .min.*
  *//* ===========================================================================
   app-core-overrides.css — 从 app.core.min.css 拆出的可读覆盖样式
   ---------------------------------------------------------------------------
   历史问题：app.core.min.css 是「压缩件 + 手写追加」的混叠体——
   第 1 行是 swiper/主题/首页模块的压缩代码(138KB)，第 2-858 行是被 append 上去的
   可读业务样式。混叠导致压缩工具无法重新处理、维护只能继续往后堆。
   本次拆分(2026-06)：把可读部分抽到本文件，app.core.min.css 恢复为纯压缩件。

   引用方：header.htm / header_assets.htm / lists_single.htm
   （均在 app.core.min.css 之后引入本文件，保持覆盖优先级不变）
   =========================================================================== */

/* 全站排版基线必须位于压缩核心样式之后，避免其 body 14px 覆盖设计令牌。 */
html body {
	font-family: var(--hs-font-sans);
	font-size: var(--hs-fs-body);
	line-height: 1.7;
	letter-spacing: 0;
	background-color: var(--dm-bg, #ffffff);
}

/* 页面级父画布统一走公共主题令牌，内部 section/card 仍保留各自层级底色。 */
html body > main {
	background-color: var(--dm-bg, #ffffff);
}

html body button,
html body input,
html body select,
html body textarea {
	font-family: inherit;
	letter-spacing: 0;
}


/* ---------------------------------------------------------------------------
   侧栏移除后的主区拉满（2026-07-02）
   背景：「尊贵蟹礼」侧栏 left.htm（含 com_le--voucher）已从 view_product /
         lists_media 移除，com_ri 成为 .com_page 唯一子元素。app.core 里
         .com_le--voucher+.com_ri 相邻兄弟规则随侧栏一并剥离，需在此补一条
         不依赖相邻选择器的拉满规则，确保主区不留 18% 空白。
   app.core 已有 .com_page>.com_ri:first-child{width:100%} 兜底，本规则再加
   flex/max-width/margin 双保险，PC + 移动端（避免原 margin-top:50px 空隙）。
   --------------------------------------------------------------------------- */
.com_page .com_ri {
	width: 100%;
	max-width: 100%;
	flex: 1 1 100%;
}
@media (max-width: 900px) {
	.com_page .com_ri {
		margin-top: 0;
	}
}

/*
 * 自定义覆盖层（外部覆写，不改核心压缩文件）
 * 约束：所有覆盖规则必须放在 .custom-override 命名空间内
 */

:root {
  /* 颜色系统 */
  --co-color-primary: #cf1322;
  --co-color-primary-hover: #a8071a;
  --co-color-text: #1f1f1f;
  --co-color-text-secondary: #595959;
  --co-color-border: #e8e8e8;
  --co-color-bg: #ffffff;
  --co-color-bg-soft: #fafafa;

  /* 间距系统 */
  --co-space-0: 0;
  --co-space-1: 4px;
  --co-space-2: 8px;
  --co-space-3: 12px;
  --co-space-4: 16px;
  --co-space-5: 20px;
  --co-space-6: 24px;
  --co-space-8: 32px;

  /* 圆角与阴影 */
  --co-radius-sm: 4px;
  --co-radius-md: 8px;
  --co-radius-lg: 12px;
  --co-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08);
  --co-shadow-md: 0 6px 20px rgba(0, 0, 0, 0.12);

  /* 层级系统 */
  --co-z-base: 1;
  --co-z-dropdown: 1000;
  --co-z-sticky: 1020;
  --co-z-fixed: 1030;
  --co-z-modal: 1050;
  --co-z-toast: 1080;

  /* 动效 */
  --co-ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --co-duration-fast: 160ms;
  --co-duration-normal: 240ms;
}

.custom-override {
  color: var(--co-color-text);
}

.custom-override * {
  box-sizing: border-box;
}

/*
 * 覆写示例占位：
 * .custom-override .some-component { }
 * .custom-override .some-component.is-active { }
 */

/* 现代化 UI 覆盖层 (Custom Components) */
/* CSS Override Active */

:root {
    /* 设计令牌 */
    --carousel-gap: 32px; 
    --glass-bg: rgba(16, 18, 23, 0.32);
    --glass-border: 1px solid rgba(255, 255, 255, 0.24);
    --active-color: #ffffff;
    --inactive-color: rgba(255, 255, 255, 0.5);
}

/* 命名空间隔离 */
.custom-override {
    /* 预留扩展 */
}
/* mob-page-topbar 已整体移除（DOM/JS/CSS 三层清理）；原占位变量 --mob-topbar-placeholder 的外部消费者见 ipb-faq.css / news-list.css */
/* ============================================================
   PC 右侧快捷操作浮窗：默认收起，点击展开
   ============================================================ */
:root {
	--husir-bg: #ffffff;
	--husir-surface: #ffffff;
	--husir-text: #222222;
	--husir-text-muted: #666666;
	--pc-float-size: 56px;
	--pc-float-action-size: 52px;
	--pc-float-gap: 8px;
	--pc-float-offset: 20px;
	--pc-float-stack-shift: 32px;
	--pc-float-glass: rgba(255, 243, 232, 0.92);
	--pc-float-glass-strong: rgba(255, 225, 198, 0.96);
	--pc-float-border: rgba(198, 63, 0, 0.22);
	--pc-float-text: #8a2d00;
	--pc-float-text-muted: #8a2d00;
	--pc-float-icon-bg: rgba(255, 80, 0, 0.12);
	--pc-float-icon-active: linear-gradient(145deg, #ff8a00 0%, #c63f00 100%);
	--pc-float-icon-active-text: var(--dm-on-accent, #ffffff);
	--pc-float-shadow: 0 18px 42px rgba(156, 53, 0, 0.18);
	--pc-float-shadow-soft: 0 8px 20px rgba(156, 53, 0, 0.14);
	--pc-float-focus: var(--dm-focus);
	--pc-float-pop-bg: rgba(255, 255, 255, 0.96);
	--pc-float-pop-text: var(--dm-text);
	--pc-float-pop-sub: var(--dm-text-secondary);
}

@media (prefers-color-scheme: dark) {
	html:not(.husir-light) {
		--pc-float-glass: rgba(42, 42, 42, 0.92);
		--pc-float-glass-strong: rgba(56, 45, 38, 0.96);
		--pc-float-border: var(--dm-accent-strong);
		--pc-float-text: var(--dm-focus);
		--pc-float-text-muted: var(--dm-accent-hover);
		--pc-float-icon-bg: var(--dm-accent-soft);
		--pc-float-icon-active: linear-gradient(145deg, var(--dm-focus) 0%, var(--dm-accent) 100%);
		--pc-float-icon-active-text: var(--dm-on-accent, #151515);
		--pc-float-shadow: var(--dm-shadow-md);
		--pc-float-shadow-soft: var(--dm-shadow-sm);
		--pc-float-focus: var(--dm-focus);
		--pc-float-pop-bg: var(--dm-bg-elevated);
		--pc-float-pop-text: var(--dm-text);
		--pc-float-pop-sub: var(--dm-text-secondary);
	}
}

html.husir-dark {
	--pc-float-glass: rgba(42, 42, 42, 0.92);
	--pc-float-glass-strong: rgba(56, 45, 38, 0.96);
	--pc-float-border: var(--dm-accent-strong);
	--pc-float-text: var(--dm-focus);
	--pc-float-text-muted: var(--dm-accent-hover);
	--pc-float-icon-bg: var(--dm-accent-soft);
	--pc-float-icon-active: linear-gradient(145deg, var(--dm-focus) 0%, var(--dm-accent) 100%);
	--pc-float-icon-active-text: var(--dm-on-accent, #151515);
	--pc-float-shadow: var(--dm-shadow-md);
	--pc-float-shadow-soft: var(--dm-shadow-sm);
	--pc-float-focus: var(--dm-focus);
	--pc-float-pop-bg: var(--dm-bg-elevated);
	--pc-float-pop-text: var(--dm-text);
	--pc-float-pop-sub: var(--dm-text-secondary);
}

.pc-float-bar__sprite {
	position: absolute;
	width: 0;
	height: 0;
	overflow: hidden;
}

.pc-float-bar {
	position: fixed;
	right: var(--pc-float-offset);
	top: 50%;
	z-index: var(--dm-z-float-bar, 10400);
	transform: translateY(-50%);
	pointer-events: none;
	transition: transform 0.28s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.pc-float-bar.is-expanded {
	transform: translateY(calc(-50% + var(--pc-float-stack-shift)));
}

.pc-float-bar__inner,
aside#pcFloatBar .pc-float-bar__inner,
body.custom-override .pc-float-bar__inner,
.custom-override aside#pcFloatBar .pc-float-bar__inner {
	position: relative;
	display: flex;
	flex-direction: column-reverse;
	align-items: center;
	justify-content: center;
	width: var(--pc-float-size);
	min-height: var(--pc-float-size);
	padding: 0;
	margin: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	pointer-events: auto;
	transform: none;
	transform-origin: right center;
}

.pc-float-bar__toggle-item,
.pc-float-bar__item {
	position: relative;
}

.pc-float-bar__toggle-item {
	z-index: 3;
}

.pc-float-bar__actions {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	width: var(--pc-float-size);
	max-height: 0;
	box-sizing: border-box;
	gap: var(--pc-float-gap);
	padding: 0 7px;
	margin-bottom: 0;
	border: 0 solid transparent;
	border-radius: 999px;
	background: transparent;
	box-shadow: none;
	-webkit-backdrop-filter: blur(22px) saturate(1.55);
	backdrop-filter: blur(22px) saturate(1.55);
	opacity: 0;
	visibility: hidden;
	overflow: hidden;
	pointer-events: none;
	transform: translate3d(0, 12px, 0) scale(0.98);
	transform-origin: center center;
	transition: opacity 0.24s ease, visibility 0.24s ease, transform 0.28s cubic-bezier(0.2, 0.8, 0.2, 1), max-height 0.28s ease, padding 0.28s ease, margin 0.28s ease, border-color 0.28s ease;
}

.pc-float-bar.is-expanded .pc-float-bar__actions {
	max-height: calc(100vh - var(--pc-float-size) - 48px);
	max-height: calc(100dvh - var(--pc-float-size) - 48px);
	padding: 7px;
	margin-bottom: var(--pc-float-gap);
	border-width: 1px;
	border-color: var(--pc-float-border);
	background: var(--pc-float-glass);
	box-shadow: var(--pc-float-shadow);
	opacity: 1;
	visibility: visible;
	overflow: visible;
	pointer-events: auto;
	transform: translate3d(0, 0, 0) scale(1);
}

.pc-float-bar__btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	width: var(--pc-float-action-size);
	min-width: var(--pc-float-action-size);
	max-width: var(--pc-float-action-size);
	min-height: calc(var(--pc-float-action-size) + 16px);
	max-height: calc(var(--pc-float-action-size) + 18px);
	flex: 0 0 auto;
	padding: 7px 4px 6px;
	margin: 0;
	border: 0;
	border-radius: 22px;
	background: transparent;
	color: var(--pc-float-text);
	font: inherit;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, opacity 0.2s ease;
	-webkit-appearance: none;
	appearance: none;
	box-sizing: border-box;
}

.pc-float-bar__btn:hover,
.pc-float-bar__btn:focus-visible {
	background: transparent;
	color: var(--pc-float-text);
	transform: translateY(-1px);
	box-shadow: none;
	outline: none;
}

.pc-float-bar__btn:focus-visible {
	box-shadow: none;
}

/* 截断 app.core.min.css 的旧桃色展开态，交互状态统一消费当前浮栏主题令牌。 */
.pc-float-bar__item.is-pop-open .pc-float-bar__btn {
	background: var(--pc-float-glass-strong);
}

.pc-float-bar__toggle {
	width: var(--pc-float-size);
	min-width: var(--pc-float-size);
	max-width: var(--pc-float-size);
	min-height: var(--pc-float-size);
	max-height: var(--pc-float-size);
	padding: 0;
	border-radius: 50%;
	background: var(--pc-float-glass);
	border: 1px solid var(--pc-float-border);
	box-shadow: var(--pc-float-shadow);
	-webkit-backdrop-filter: blur(24px) saturate(1.55);
	backdrop-filter: blur(24px) saturate(1.55);
}

.pc-float-bar.is-expanded .pc-float-bar__toggle {
	background: var(--pc-float-glass-strong);
}

/* 夜间模式常驻按钮：圆形玻璃质感，与总开关（.pc-float-bar__toggle）/返回顶部（.husir-backtop）完全同款。
   它是 __inner 的静态直接子级（非 actions 折叠项），故常驻可见，立于总开关与返回顶部之间。
   尺寸用 --pc-float-size（与总开关一致），其余沿袭 __btn 基线，仅覆盖圆形/玻璃/边框/阴影。 */
.pc-float-bar__dark-toggle {
	width: var(--pc-float-size);
	min-width: var(--pc-float-size);
	max-width: var(--pc-float-size);
	min-height: var(--pc-float-size);
	max-height: var(--pc-float-size);
	padding: 0;
	gap: 0;
	border-radius: 50%;
	background: var(--pc-float-glass);
	border: 1px solid var(--pc-float-border);
	box-shadow: var(--pc-float-shadow);
	-webkit-backdrop-filter: blur(24px) saturate(1.55);
	backdrop-filter: blur(24px) saturate(1.55);
}

/* 图标同总开关：激活态渐变背景，hover/focus 与 __btn 基线一致（已在下方规则覆盖）。 */
.pc-float-bar__dark-toggle .pc-float-bar__icon {
	background: var(--pc-float-icon-active);
	color: var(--pc-float-icon-active-text);
}

/* label 仅供读屏，视觉隐藏（与总开关的 label 隐藏一致），避免圆形按钮下方冒出文字。 */
.pc-float-bar__dark-toggle .pc-float-bar__label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* 展开浮窗时夜间模式按钮不参与玻璃加强（它独立于 actions 折叠面板），保持自身质感即可 */

.pc-float-bar__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--pc-float-icon-bg);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3);
	transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease, background 0.2s ease;
}

.pc-float-bar__toggle .pc-float-bar__icon,
.pc-float-bar__item.is-pop-open .pc-float-bar__icon,
.husir-backtop .pc-float-bar__icon {
	background: var(--pc-float-icon-active);
	color: var(--pc-float-icon-active-text);
}

.pc-float-bar__btn:hover .pc-float-bar__icon,
.pc-float-bar__btn:focus-visible .pc-float-bar__icon {
	background: var(--pc-float-glass-strong);
	color: var(--pc-float-text);
	box-shadow: 0 0 0 3px var(--pc-float-focus), var(--pc-float-shadow-soft);
	transform: translateY(-1px) scale(1.04);
	filter: saturate(1.08);
}

.pc-float-bar__icon svg {
	display: block;
	width: 21px;
	height: 21px;
}

.pc-float-bar__label {
	font-size: 11px;
	line-height: 1.15;
	font-weight: 600;
	letter-spacing: 0.01em;
	white-space: nowrap;
	color: var(--pc-float-text-muted);
}

.pc-float-bar__toggle .pc-float-bar__label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.pc-float-bar__label[data-pc-float-label] {
	font-size: 0;
}

.pc-float-bar__label[data-pc-float-label]::after {
	content: attr(data-pc-float-label);
	font-size: 11px;
	line-height: 1.15;
	font-weight: 600;
	letter-spacing: 0.01em;
	white-space: nowrap;
}

/* 返回顶部已抽离为全端独立 FAB .husir-backtop（见文件末尾），原 .pc-float-bar__btn--top 规则已删除 */

/* 浮栏主题图标唯一状态机：默认亮色、系统暗黑、手动暗黑、手动亮色。 */
.pc-float-bar__ico-moon {
	display: block;
}

.pc-float-bar__ico-sun {
	display: none;
}

@media (prefers-color-scheme: dark) {
	html:not(.husir-light) .pc-float-bar__ico-moon {
		display: none;
	}

	html:not(.husir-light) .pc-float-bar__ico-sun {
		display: block;
	}
}

html.husir-dark .pc-float-bar__ico-moon {
	display: none;
}

html.husir-dark .pc-float-bar__ico-sun {
	display: block;
}

html.husir-light .pc-float-bar__ico-moon {
	display: block;
}

html.husir-light .pc-float-bar__ico-sun {
	display: none;
}

.pc-float-bar__pop {
	position: absolute;
	right: calc(100% + 14px);
	top: 50%;
	transform: translateY(-50%) scale(0.96);
	z-index: 4;
	width: 188px;
	padding: 14px 14px 12px;
	background: var(--pc-float-pop-bg);
	border: 1px solid var(--pc-float-border);
	border-radius: 18px;
	box-shadow: var(--pc-float-shadow);
	text-align: center;
	-webkit-backdrop-filter: blur(22px) saturate(1.45);
	backdrop-filter: blur(22px) saturate(1.45);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
}

.pc-float-bar__pop::after {
	content: "";
	position: absolute;
	right: -6px;
	top: 50%;
	width: 12px;
	height: 12px;
	margin-top: -6px;
	background: var(--pc-float-pop-bg);
	border-right: 1px solid var(--pc-float-border);
	border-top: 1px solid var(--pc-float-border);
	transform: rotate(45deg);
}

.pc-float-bar__pop-img {
	display: block;
	width: 160px;
	height: 160px;
	margin: 0 auto 8px;
	border-radius: 12px;
	object-fit: contain;
	background: rgba(255, 255, 255, 0.72);
}

.pc-float-bar__pop-cap {
	font-size: 13px;
	color: var(--pc-float-pop-text);
	line-height: 1.4;
	margin: 0;
}

.pc-float-bar__pop-sub {
	font-size: 12px;
	color: var(--pc-float-pop-sub);
	margin: 6px 0 0;
	line-height: 1.35;
}

.pc-float-bar__item.is-pop-open .pc-float-bar__pop {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(-50%) scale(1);
}

@media (max-height: 700px) {
	:root {
		--pc-float-action-size: 50px;
		--pc-float-gap: 6px;
	}

	.pc-float-bar__actions {
		padding: 6px;
	}
}

@media (max-height: 940px) {
	.pc-float-bar {
		top: 50%;
	}
}

@media (max-height: 520px) {
	:root {
		--pc-float-action-size: 46px;
		--pc-float-gap: 4px;
	}
}

@media (min-width: 1024px) and (max-width: 1199px) {
	.pc-float-bar,
	aside#pcFloatBar {
		display: block !important;
		visibility: visible !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pc-float-bar__btn,
	.pc-float-bar__icon,
	.pc-float-bar,
	.pc-float-bar__actions,
	.pc-float-bar__pop {
		transition: none;
	}
}

@media (max-width: 1023px) {
	.pc-float-bar,
	aside#pcFloatBar {
			display: none !important;
			visibility: hidden !important;
			pointer-events: none !important;
		}
}

/* ============================================================
   全端通用返回顶部按钮（.husir-backtop）
   - DOM 默认在 footer.htm body 末尾。
   - PC（≥1024px）：back-to-top.js 在 init 时把按钮移入浮窗 __inner、
     toggle-item 之前（column-reverse 下视觉在总开关下方），随浮窗定位
     自动对齐、跟随浮窗展开/收起，绝不与总开关错位。
   - 紧凑端（≤1023px）：浮窗 display:none（祖先隐藏会连带子树，position:fixed
     救不回），故 JS 不移入，按钮留 body 原位靠 position:fixed 悬浮右下角。
   滚动超过一屏后由 back-to-top.js 加 .is-visible 显示。
   ============================================================ */

/* PC 端：按钮由 JS prepend 到浮窗 __inner 首位（column-reverse 下视觉在最下=夜间模式之下），
   作为 flex 子项随浮窗定位，margin-top 即与夜间模式的间距。 */
.pc-float-bar__inner > .husir-backtop {
	margin-top: var(--pc-float-gap);
}

/* 夜间模式（DOM 在 toggle-item 之前、backtop 之后，column-reverse 下视觉夹在总开关与返回顶部之间）：
   margin-top 与总开关拉开间距；与返回顶部的间距由 backtop 的 margin-top 提供。 */
.pc-float-bar__inner > .pc-float-bar__dark-item {
	margin-top: var(--pc-float-gap);
}

/* 覆盖 .pc-float-bar__btn 带来的 action-size 尺寸/flex，改为与总开关一致的 pc-float-size 圆形。
   其余（flex 居中、字体、cursor）沿用 __btn 基线，无需重复。 */
.husir-backtop {
	width: var(--pc-float-size);
	min-width: var(--pc-float-size);
	max-width: var(--pc-float-size);
	height: var(--pc-float-size);
	min-height: var(--pc-float-size);
	max-height: var(--pc-float-size);
	flex: 0 0 auto;
	gap: 0;
	padding: 0;
	margin: 0;
	border: 1px solid var(--pc-float-border);
	border-radius: 50%;
	background: var(--pc-float-glass);
	box-shadow: var(--pc-float-shadow);
	-webkit-backdrop-filter: blur(24px) saturate(1.55);
	backdrop-filter: blur(24px) saturate(1.55);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(8px) scale(0.92);
	transition: opacity 0.28s ease, visibility 0.28s ease, transform 0.28s cubic-bezier(0.2, 0.8, 0.2, 1), background 0.2s ease, box-shadow 0.2s ease;
}

/* 滚动超过一屏后显示 */
.husir-backtop.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0) scale(1);
}

.husir-backtop:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px var(--pc-float-focus), var(--pc-float-shadow-soft);
}

.husir-backtop:hover {
	background: var(--pc-float-glass-strong);
	transform: translateY(-2px) scale(1.04);
}

/* 紧凑端（≤1023px）：浮窗 display:none，按钮留 body 原位，position:fixed。
   ≤833px 避让底部导航栏，834–1023px 靠近视口底部。
   触控反馈用 :active（按下缩小），与移动底部导航范式一致，替代桌面 hover 放大。 */
@media (max-width: 1023px) {
	.husir-backtop {
		position: fixed;
		right: 16px;
		bottom: calc(24px + env(safe-area-inset-bottom, 0px));
		z-index: var(--dm-z-float-bar, 10400);
		/* 与 .husir-backprev 同源：六向锁死 --pc-float-size，避免 48 与 min/max 56 打架 */
		width: var(--pc-float-size);
		min-width: var(--pc-float-size);
		max-width: var(--pc-float-size);
		height: var(--pc-float-size);
		min-height: var(--pc-float-size);
		max-height: var(--pc-float-size);
	}
	.husir-backtop .pc-float-bar__icon {
		width: 30px;
		height: 30px;
	}
	.husir-backtop .pc-float-bar__icon svg {
		width: 17px;
		height: 17px;
	}
	/* 移动端无 hover，用按下反馈（scale 0.96 同 .mob-bottom-nav__item:active） */
	.husir-backtop:hover {
		transform: none;
	}
	.husir-backtop:active {
		transform: scale(0.96);
	}
}

@media (max-width: 833px) {
	.husir-backtop {
		/* 80px + safe 的降级避让再加 42px，保持手机端原基线；竖屏平板则随 Dock 占位联动。 */
		bottom: calc(var(--mob-nav-page-reserve, calc(80px + env(safe-area-inset-bottom, 0px))) + 42px);
	}
}

@media (max-width: 900px) {
	body.product-detail-page .husir-backtop {
		bottom: calc(var(--vp-mobile-buybar-h, 76px) + 16px + env(safe-area-inset-bottom, 0px));
		z-index: var(--dm-z-float-bar, 10040);
	}
}

/* 暗黑双分支（系统暗黑 + 手动暗黑，AGENTS.md 红线：两套都要写） */
@media (prefers-color-scheme: dark) {
	html:not(.husir-light) .husir-backtop {
		background: var(--dm-glass-pill, rgba(44, 40, 37, 0.82));
		border-color: rgba(255, 255, 255, 0.13);
		color: var(--dm-text, #f3dcc8);
	}
}

html.husir-dark .husir-backtop {
	background: var(--dm-glass-pill, rgba(44, 40, 37, 0.82));
	border-color: rgba(255, 255, 255, 0.13);
	color: var(--dm-text, #f3dcc8);
}

/* 降级动画：尊重用户系统偏好 */
@media (prefers-reduced-motion: reduce) {
	.husir-backtop {
		transition: opacity 0.2s ease, visibility 0.2s ease;
	}
	.husir-backtop:hover {
		transform: none;
	}
}

/* app.core.min.css 仍引用历史图片，且这些图片已被 .gitignore 排除。
   在可读覆盖层中去掉 404 背景，避免继续请求不存在的资源。 */
#web-ietip {
	background-image: none;
}

.com_brand {
	background-image: linear-gradient(135deg, #4c3328 0%, #8b4a34 52%, #c46a4a 100%);
}

.hn-load-icon {
	position: relative;
	background-image: none;
}

.hn-load-icon::before {
	content: "";
	display: block;
	width: 28px;
	height: 28px;
	margin: 2px auto;
	border: 3px solid rgba(196, 30, 58, 0.18);
	border-top-color: #c41e3a;
	border-radius: 50%;
	animation: husir-load-spin 0.85s linear infinite;
}

@keyframes husir-load-spin {
	to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
	.hn-load-icon::before {
		animation: none;
	}
}

/* BACKTOP-SIZE-SYNC-AUTHORITY: keep last
   与 #husirBackPrev 同源：六向 --pc-float-size + 紧凑端 icon 30/17。 */
@media (max-width: 1023px) {
	#husirBackTop.husir-backtop {
		width: var(--pc-float-size, 56px);
		min-width: var(--pc-float-size, 56px);
		max-width: var(--pc-float-size, 56px);
		height: var(--pc-float-size, 56px);
		min-height: var(--pc-float-size, 56px);
		max-height: var(--pc-float-size, 56px);
	}
	#husirBackTop.husir-backtop .pc-float-bar__icon {
		width: 30px;
		height: 30px;
	}
	#husirBackTop.husir-backtop .pc-float-bar__icon svg {
		width: 17px;
		height: 17px;
	}
}
