/*!
 * 积分商城 · 前台商城页样式（v1.9.0）
 * 复刻「刻画商城」store 首页的版式与视觉语言：浅灰底 + 白卡片 + 手绘波浪标题
 * 全部选择器收敛在 .mall-store 下，不污染站点主题
 */

.mall-store{
	--mall-primary:#5b8c5a;
	--mall-primary-dark:#4a8b5f;
	--mall-primary-soft:#e8f5ec;
	--mall-bg:#f5f6f8;
	--mall-surface:#fff;
	--mall-border:#e9edf2;
	--mall-title:#1e293b;
	--mall-text:#475569;
	--mall-muted:#94a3b8;
	--mall-price:#e54d42;
	--mall-radius:14px;
	--mall-shadow:0 8px 24px rgba(15,23,42,.06);
	position:relative;
	padding:18px 0 32px;
	color:var(--mall-text);
	font-size:14px;
	line-height:1.6;
	background:var(--mall-bg);
	/* 让浅灰底在宽屏时铺满整幅（内容仍居中） */
	box-shadow:0 0 0 100vmax var(--mall-bg);
	clip-path:inset(0 -100vmax);
}
.mall-store *,
.mall-store *::before,
.mall-store *::after{box-sizing:border-box;}
.mall-store a{text-decoration:none;}
.mall-store img{max-width:100%;}

.mall-store__inner{
	width:100%;
	max-width:1280px;
	margin:0 auto;
	padding:0 16px;
}

/* ================= 顶部三栏：分类导航 / 轮播 / 账户+公告 ================= */
.mall-store__top{
	display:grid;
	grid-template-columns:220px minmax(0,1fr) 280px;
	gap:16px;
	align-items:stretch;
	margin-bottom:24px;
}
.mall-store__top--no-nav{grid-template-columns:minmax(0,1fr) 280px;}
.mall-store__nav{min-width:0;}
.mall-store__center{display:flex;flex-direction:column;min-width:0;}
.mall-store__side{display:flex;flex-direction:column;gap:16px;min-width:0;}

/* ---------- 左侧分类导航 ---------- */
.mall-nav{
	display:flex;
	flex-direction:column;
	height:100%;
	padding:10px;
	background:var(--mall-surface);
	border-radius:var(--mall-radius);
	box-shadow:var(--mall-shadow);
}
.mall-nav__entry{position:relative;}
.mall-nav__item{
	display:flex;
	align-items:center;
	gap:10px;
	padding:10px 10px;
	border-radius:10px;
	color:var(--mall-text);
	font-size:14px;
	line-height:1.35;
	transition:background .15s ease,color .15s ease;
}
.mall-nav__item:hover,
.mall-nav__item.is-active{background:var(--mall-primary-soft);color:var(--mall-primary);}
.mall-nav__ico{
	flex:0 0 20px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	font-size:17px;
	color:#64748b;
	transition:color .15s ease;
}
.mall-nav__item:hover .mall-nav__ico,
.mall-nav__item.is-active .mall-nav__ico{color:var(--mall-primary);}
.mall-nav__txt{
	flex:1 1 auto;
	min-width:0;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}
.mall-nav__arrow{font-size:13px;color:#cbd5e1;transition:transform .15s ease,color .15s ease;}
.mall-nav__entry--flyout:hover .mall-nav__arrow{color:var(--mall-primary);transform:translateX(2px);}

.mall-nav__flyout{
	position:absolute;
	left:100%;
	top:-6px;
	/* v1.12.4：原 40 在分类页被右侧 Hero 卡片的层叠上下文压住，这里靠 nav 自身的 z-index 一起抬高 */
	z-index:35;
	min-width:260px;
	max-width:420px;
	padding:18px 22px;
	display:flex;
	flex-wrap:wrap;
	gap:10px 24px;
	background:var(--mall-surface);
	border-radius:12px;
	box-shadow:0 12px 32px rgba(15,23,42,.12);
	opacity:0;
	visibility:hidden;
	transform:translateX(-6px);
	transition:opacity .16s ease,transform .16s ease,visibility .16s ease;
}
.mall-nav__entry--flyout:hover .mall-nav__flyout,
.mall-nav__entry--flyout:focus-within .mall-nav__flyout{opacity:1;visibility:visible;transform:translateX(0);}
.mall-nav__flyout-link{
	color:#64748b;
	font-size:14px;
	white-space:nowrap;
	transition:color .15s ease;
}
.mall-nav__flyout-link:hover,
.mall-nav__flyout-link.is-active{color:var(--mall-primary);font-weight:600;}

/* ---------- 移动端分类横滑 ---------- */
.mall-mnav{display:none;}
.mall-mnav__track{
	display:flex;
	gap:8px;
	overflow-x:auto;
	padding:2px 2px 10px;
	scrollbar-width:none;
	-webkit-overflow-scrolling:touch;
}
.mall-mnav__track::-webkit-scrollbar{display:none;}
.mall-mnav__item{
	flex:0 0 auto;
	padding:7px 14px;
	border-radius:999px;
	background:var(--mall-surface);
	color:var(--mall-text);
	font-size:13px;
	white-space:nowrap;
	box-shadow:0 2px 8px rgba(15,23,42,.05);
}
.mall-mnav__item.is-active{background:var(--mall-primary);color:#fff;}

/* ---------- 中间轮播 ---------- */
.mall-hero{
	position:relative;
	flex:1 1 auto;
	min-height:220px;
	border-radius:var(--mall-radius);
	overflow:hidden;
	background:var(--mall-surface);
	box-shadow:var(--mall-shadow);
}
.mall-hero__viewport{position:relative;width:100%;height:100%;min-height:220px;aspect-ratio:16/7;}
.mall-hero__slide{
	position:absolute;
	inset:0;
	display:block;
	opacity:0;
	transform:scale(1.015);
	transition:opacity .5s ease,transform 1.2s ease;
	pointer-events:none;
}
.mall-hero__slide.is-active{opacity:1;transform:scale(1);pointer-events:auto;}
.mall-hero__slide img{display:block;width:100%;height:100%;object-fit:cover;}
.mall-hero__nav{
	position:absolute;
	top:50%;
	transform:translateY(-50%);
	width:36px;
	height:36px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	border:0;
	border-radius:50%;
	background:rgba(15,23,42,.42);
	color:#fff;
	font-size:16px;
	cursor:pointer;
	opacity:0;
	transition:opacity .25s ease,background .15s ease;
}
.mall-hero__nav--prev{left:12px;}
.mall-hero__nav--next{right:12px;}
.mall-hero:hover .mall-hero__nav,
.mall-hero__nav:focus-visible{opacity:1;}
.mall-hero__nav:hover{background:rgba(15,23,42,.66);}
.mall-hero__dots{
	position:absolute;
	left:50%;
	bottom:12px;
	transform:translateX(-50%);
	display:flex;
	gap:6px;
}
.mall-hero__dot{
	width:18px;
	height:4px;
	padding:0;
	border:0;
	border-radius:999px;
	background:rgba(255,255,255,.55);
	cursor:pointer;
	transition:background .15s ease,width .15s ease;
}
.mall-hero__dot.is-active{background:#fff;width:26px;}

/* 无轮播图时的空状态 */
.mall-hero--empty{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eef4ee 0%,#f7faf8 60%,#eef2f7 100%);}
.mall-hero__empty-inner{text-align:center;padding:28px 20px;}
.mall-hero__empty-ico{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:56px;
	height:56px;
	margin-bottom:12px;
	border-radius:50%;
	background:var(--mall-primary-soft);
	color:var(--mall-primary);
	font-size:26px;
}
.mall-hero__empty-title{margin:0 0 6px;font-size:18px;font-weight:700;color:var(--mall-title);}
.mall-hero__empty-desc{margin:0 0 16px;font-size:13px;color:var(--mall-muted);}

/* ---------- 通用面板 ---------- */
.mall-panel{
	background:var(--mall-surface);
	border-radius:var(--mall-radius);
	box-shadow:var(--mall-shadow);
}
.mall-panel__head{
	display:flex;
	align-items:flex-end;
	justify-content:space-between;
	gap:12px;
	padding:15px 16px 10px;
}
.mall-panel__title{
	position:relative;
	margin:0;
	padding:0 0 9px;
	font-size:15px;
	font-weight:700;
	color:#1e293b;
	line-height:1.35;
	letter-spacing:-.01em;
}
.mall-panel__title::after{
	content:"";
	position:absolute;
	left:0;
	right:0;
	bottom:0;
	height:6px;
	background:var(--mall-primary);
	opacity:.9;
	-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 7' preserveAspectRatio='none'%3E%3Cpath d='M0 3.5 Q12.5 1 25 3.5 T50 3.5 T75 3.5 T100 3.5' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E");
	mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 7' preserveAspectRatio='none'%3E%3Cpath d='M0 3.5 Q12.5 1 25 3.5 T50 3.5 T75 3.5 T100 3.5' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E");
	-webkit-mask-repeat:no-repeat;
	mask-repeat:no-repeat;
	-webkit-mask-position:0 100%;
	mask-position:0 100%;
	-webkit-mask-size:100% 6px;
	mask-size:100% 6px;
}
.mall-panel__more{
	font-size:13px;
	color:var(--mall-muted);
	padding-bottom:2px;
	white-space:nowrap;
	transition:color .15s ease;
}
.mall-panel__more:hover{color:var(--mall-primary);}

/* ---------- 账户面板 ---------- */
.mall-user{padding:16px;display:flex;flex-direction:column;}
.mall-user__head{display:flex;align-items:center;gap:10px;}
.mall-user__avatar{
	width:44px;
	height:44px;
	flex:0 0 44px;
	border-radius:50%;
	object-fit:cover;
	background:var(--mall-primary-soft);
}
.mall-user__avatar--empty{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	color:var(--mall-primary);
	font-size:22px;
}
.mall-user__meta{min-width:0;}
.mall-user__name{
	margin:0;
	font-size:15px;
	font-weight:700;
	color:var(--mall-title);
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}
.mall-user__hint{margin:2px 0 0;font-size:12px;color:var(--mall-muted);}
.mall-user__bal{
	display:flex;
	gap:8px;
	margin:14px 0 12px;
	padding:0;
	list-style:none;
}
.mall-user__bal-item{
	flex:1 1 0;
	min-width:0;
	padding:8px 6px;
	border-radius:10px;
	background:var(--mall-bg);
	text-align:center;
}
.mall-user__bal-label{display:block;font-size:11px;color:var(--mall-muted);line-height:1.3;}
.mall-user__bal-num{display:block;font-size:17px;font-weight:800;color:var(--mall-primary);line-height:1.25;}
.mall-user__bal-num--golds{color:#d97706;}
.mall-user__bal-num--rmbs{color:var(--mall-price);}
.mall-user__actions{display:flex;gap:8px;margin-top:auto;}

.mall-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:6px;
	flex:1 1 auto;
	padding:9px 16px;
	border-radius:999px;
	font-size:13px;
	font-weight:600;
	line-height:1.3;
	transition:filter .15s ease,background .15s ease,color .15s ease;
}
.mall-btn--primary{background:var(--mall-primary);color:#fff;}
.mall-btn--primary:hover{filter:brightness(.93);color:#fff;}
.mall-btn--soft{background:var(--mall-primary-soft);color:var(--mall-primary-dark);}
.mall-btn--soft:hover{filter:brightness(.96);color:var(--mall-primary-dark);}
.mall-btn--ghost{background:var(--mall-bg);color:var(--mall-text);}
.mall-btn--ghost:hover{background:#eceff3;color:var(--mall-title);}

/* 未登录引导 */
.mall-user--guest{align-items:center;justify-content:center;text-align:center;padding:20px 16px 18px;}
.mall-user__guest-ico{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:56px;
	height:56px;
	margin-bottom:12px;
	border-radius:50%;
	background:var(--mall-primary-soft);
	color:var(--mall-primary);
	font-size:26px;
}
.mall-user__guest-title{margin:0 0 6px;font-size:15px;font-weight:700;color:var(--mall-title);}
.mall-user__guest-desc{margin:0 0 14px;font-size:12px;color:var(--mall-muted);line-height:1.5;}
.mall-user--guest .mall-btn{flex:0 0 auto;padding:9px 26px;}
.mall-user__reg{display:inline-block;margin-top:10px;font-size:12px;color:var(--mall-muted);}
.mall-user__reg:hover{color:var(--mall-primary);}

/* ---------- 公告 ---------- */
.mall-notice{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;padding-bottom:8px;}
.mall-notice__list{list-style:none;margin:0;padding:6px 16px 8px;display:flex;flex-direction:column;gap:12px;}
.mall-notice__item{min-width:0;}
.mall-notice__link,
.mall-notice__plain{display:block;min-width:0;}
.mall-notice__t{
	display:block;
	font-size:13px;
	font-weight:500;
	color:#334155;
	line-height:1.45;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
	transition:color .15s ease;
}
.mall-notice__link:hover .mall-notice__t{color:var(--mall-primary);}
.mall-notice__d{display:block;margin-top:3px;font-size:11px;color:var(--mall-muted);line-height:1.4;}

/* ================= 楼层（推荐商品 / 分类楼层） ================= */
.mall-floor{margin-bottom:24px;}

/* v1.12.4：首页通栏广告位（插在第 2、3 层之间），外壳与楼层保持同样的圆角阴影 */
.mall-ad-banner{
	display:block;
	margin:0 0 24px;
	overflow:hidden;
	line-height:0;
	transition:box-shadow .18s ease;
}
.mall-ad-banner:hover{box-shadow:0 10px 26px rgba(15,23,42,.10);}
.mall-ad-banner__link,
.mall-ad-banner__img{
	display:block;
	width:100%;
	line-height:0;
}
.mall-ad-banner img{
	display:block;
	width:100%;
	height:auto;
	max-height:180px;
	object-fit:cover;
	object-position:center;
}
@media (max-width:767.98px){
	.mall-ad-banner img{max-height:120px;}
}
.mall-floor__head{
	display:flex;
	align-items:flex-end;
	justify-content:space-between;
	gap:12px;
	padding:2px 6px 14px;
}
.mall-floor__title{
	position:relative;
	margin:0;
	padding:0 0 11px;
	font-size:18px;
	font-weight:700;
	color:#1e293b;
	line-height:1.35;
	letter-spacing:-.02em;
}
.mall-floor__title::after{
	content:"";
	position:absolute;
	left:0;
	right:0;
	bottom:0;
	height:7px;
	background:var(--mall-primary);
	opacity:.9;
	-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 7' preserveAspectRatio='none'%3E%3Cpath d='M0 3.5 Q12.5 1 25 3.5 T50 3.5 T75 3.5 T100 3.5' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E");
	mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 7' preserveAspectRatio='none'%3E%3Cpath d='M0 3.5 Q12.5 1 25 3.5 T50 3.5 T75 3.5 T100 3.5' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E");
	-webkit-mask-repeat:no-repeat;
	mask-repeat:no-repeat;
	-webkit-mask-position:0 100%;
	mask-position:0 100%;
	-webkit-mask-size:100% 7px;
	mask-size:100% 7px;
}
.mall-floor__more{font-size:13px;color:#64748b;padding-bottom:2px;white-space:nowrap;}
.mall-floor__more:hover{color:var(--mall-primary);}

/* ================= 商品网格与卡片 ================= */
.mall-grid{
	display:grid;
	grid-template-columns:repeat(5,minmax(0,1fr));
	gap:16px;
}
.mall-card{
	position:relative;
	display:flex;
	flex-direction:column;
	min-width:0;
	padding:10px;
	background:var(--mall-surface);
	border-radius:var(--mall-radius);
	transition:transform .2s ease,box-shadow .2s ease;
}
.mall-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(15,23,42,.1);}
.mall-card__media{
	position:relative;
	display:block;
	width:100%;
	aspect-ratio:1/1;
	border-radius:10px;
	overflow:hidden;
	background:#ececec;
}
.mall-card__media img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform .35s ease;
}
.mall-card:hover .mall-card__media img{transform:scale(1.04);}
.mall-card__ph{
	display:flex;
	align-items:center;
	justify-content:center;
	width:100%;
	height:100%;
	color:#c7ccd4;
	font-size:34px;
}
.mall-card__tag{
	position:absolute;
	z-index:1;
	padding:2px 7px;
	border-radius:6px;
	font-size:11px;
	font-weight:600;
	line-height:1.5;
	color:#fff;
	backdrop-filter:blur(2px);
}
.mall-card__tag--type{left:8px;top:8px;background:rgba(15,23,42,.55);}
.mall-card__tag--out{right:8px;top:8px;background:rgba(100,116,139,.9);}
.mall-card__tag--low{right:8px;top:8px;background:rgba(217,119,6,.92);}
.mall-card--out .mall-card__media img{opacity:.55;}
.mall-card__body{display:flex;flex-direction:column;flex:1;min-width:0;padding:10px 2px 2px;}
.mall-card__title{
	margin:0 0 4px;
	font-size:14px;
	font-weight:700;
	line-height:1.35;
}
.mall-card__title a{
	display:-webkit-box;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical;
	overflow:hidden;
	color:#1a1a1a;
	word-break:break-word;
}
.mall-card__title a:hover{color:var(--mall-primary);}
.mall-card__desc{
	margin:0;
	font-size:12px;
	color:#9aa4b2;
	line-height:1.45;
	display:-webkit-box;
	-webkit-line-clamp:1;
	-webkit-box-orient:vertical;
	overflow:hidden;
}
.mall-card__price{
	display:flex;
	align-items:baseline;
	gap:3px;
	margin:8px 0 6px;
	line-height:1.2;
}
.mall-card__num{font-size:17px;font-weight:800;color:var(--mall-price);letter-spacing:-.01em;}
.mall-card__unit{font-size:12px;font-weight:600;color:var(--mall-price);}
.mall-card__meta{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:8px;
	margin-top:auto;
	font-size:12px;
	color:#aab2bd;
}
.mall-card__shop{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mall-card__sold{flex:0 0 auto;}

/* ================= 服务保障 ================= */
.mall-guarantee{padding:18px 16px;}
.mall-guarantee__list{display:flex;flex-wrap:wrap;gap:10px 8px;}
.mall-guarantee__item{
	flex:1 1 0;
	min-width:160px;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:10px;
}
.mall-guarantee__ico{
	flex:0 0 40px;
	width:40px;
	height:40px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	border-radius:50%;
	background:var(--mall-primary-soft);
	color:var(--mall-primary);
	font-size:20px;
}
.mall-guarantee__text{display:flex;flex-direction:column;gap:2px;min-width:0;}
.mall-guarantee__title{font-size:14px;font-weight:700;color:#1e293b;line-height:1.35;}
.mall-guarantee__desc{font-size:12px;color:var(--mall-muted);line-height:1.4;}

/* ================= 列表页 ================= */
.mall-list{
	display:grid;
	grid-template-columns:220px minmax(0,1fr);
	gap:16px;
	align-items:start;
}
.mall-store__nav--list{position:sticky;top:16px;/* v1.12.4：让二级分类浮层盖在右侧 Hero 卡片之上 */z-index:30;}
.mall-list__main{min-width:0;}
.mall-list__head{padding:2px 6px 12px;}
.mall-list__crumb{
	display:flex;
	align-items:center;
	gap:6px;
	font-size:12px;
	color:var(--mall-muted);
	margin-bottom:6px;
	flex-wrap:wrap;
}
.mall-list__crumb a{color:var(--mall-muted);}
.mall-list__crumb a:hover{color:var(--mall-primary);}
.mall-list__crumb .ti{font-size:12px;opacity:.7;}
.mall-list__crumb .is-current{color:var(--mall-text);}
.mall-list__title{
	position:relative;
	display:inline-block;
	margin:0;
	padding:0 0 11px;
	font-size:20px;
	font-weight:700;
	color:#1e293b;
	letter-spacing:-.02em;
}
.mall-list__title::after{
	content:"";
	position:absolute;
	left:0;
	right:0;
	bottom:0;
	height:7px;
	background:var(--mall-primary);
	opacity:.9;
	-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 7' preserveAspectRatio='none'%3E%3Cpath d='M0 3.5 Q12.5 1 25 3.5 T50 3.5 T75 3.5 T100 3.5' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E");
	mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 7' preserveAspectRatio='none'%3E%3Cpath d='M0 3.5 Q12.5 1 25 3.5 T50 3.5 T75 3.5 T100 3.5' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E");
	-webkit-mask-repeat:no-repeat;
	mask-repeat:no-repeat;
	-webkit-mask-position:0 100%;
	mask-position:0 100%;
	-webkit-mask-size:100% 7px;
	mask-size:100% 7px;
}
.mall-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 6px 14px;}
.mall-chip{
	padding:6px 14px;
	border-radius:999px;
	background:var(--mall-surface);
	color:var(--mall-text);
	font-size:13px;
	box-shadow:0 1px 4px rgba(15,23,42,.06);
	transition:background .15s ease,color .15s ease;
}
.mall-chip:hover{color:var(--mall-primary);}
.mall-chip.is-active{background:var(--mall-primary);color:#fff;}
.mall-list .mall-grid{grid-template-columns:repeat(4,minmax(0,1fr));}

/* 空状态 */
.mall-empty{padding:56px 20px;text-align:center;color:var(--mall-muted);}
.mall-empty .ti{display:block;font-size:44px;opacity:.35;margin-bottom:10px;}
.mall-empty p{margin:0;font-size:14px;}

/* 分页 */
.mall-pagination{display:flex;justify-content:center;margin-top:24px;}
.mall-pagination .pagination{margin-bottom:0;}

/* ================= 商品详情页（同一视觉语言） ================= */
.mall-goods-page{padding:18px 0 32px;}
.mall-goods-page .mall-goods-card{
	background:var(--mall-surface);
	border-radius:var(--mall-radius);
	box-shadow:var(--mall-shadow);
	padding:18px;
}
.mall-goods-page .mall-goods-img{background:var(--mall-bg);border-radius:12px;}
.mall-goods-page .mall-goods-title{font-size:20px;font-weight:700;color:var(--mall-title);}

/* ================= 响应式 ================= */
@media (min-width:1200px){
	.mall-list .mall-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
}
@media (max-width:1199.98px){
	.mall-store__top{grid-template-columns:200px minmax(0,1fr) 260px;}
	.mall-store__top--no-nav{grid-template-columns:minmax(0,1fr) 260px;}
	.mall-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
	.mall-store .mall-card__title{font-size:13px;}
}
@media (max-width:991.98px){
	.mall-store__top,
	.mall-store__top--no-nav{grid-template-columns:minmax(0,1fr);gap:12px;}
	.mall-store__nav{display:none;}
	.mall-mnav{display:block;margin-bottom:4px;}
	.mall-store__side{flex-direction:row;flex-wrap:wrap;gap:12px;}
	.mall-store__side>*{flex:1 1 240px;}
	.mall-hero__viewport{aspect-ratio:16/8;min-height:180px;}
	.mall-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
	.mall-list{grid-template-columns:minmax(0,1fr);}
	.mall-store__nav--list{display:none;}
	.mall-list .mall-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
	.mall-guarantee__item{flex:1 1 45%;justify-content:flex-start;min-width:0;}
}
@media (max-width:767.98px){
	.mall-store{padding:12px 0 24px;}
	.mall-store__inner{padding:0 12px;}
	.mall-store__top{margin-bottom:18px;}
	.mall-hero__viewport{aspect-ratio:16/9;min-height:150px;}
	.mall-card{padding:8px;}
	.mall-card__title{font-size:13px;}
	.mall-card__num{font-size:15px;}
	.mall-card__meta{font-size:11px;}
	.mall-card__desc{display:none;}
	.mall-floor__title{font-size:16px;}
	.mall-list__title{font-size:17px;}
	.mall-guarantee{padding:14px 12px;}
	.mall-guarantee__ico{width:34px;height:34px;flex:0 0 34px;font-size:17px;}
	.mall-guarantee__title{font-size:13px;}
	.mall-guarantee__desc{font-size:11px;}
}
@media (max-width:575.98px){
	.mall-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
	.mall-list .mall-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
	.mall-store__side{flex-direction:column;}
	.mall-store__side>*{flex:1 1 auto;}
	.mall-user__bal-num{font-size:15px;}
	.mall-card__title a{-webkit-line-clamp:2;}
}
@media (prefers-reduced-motion:reduce){
	.mall-store *{transition:none !important;animation:none !important;}
}

/* ================= 暗色模式 ================= */
[data-bs-theme="dark"] .mall-store,
html.dark .mall-store{
	--mall-bg:#141619;
	--mall-surface:#1c1f24;
	--mall-border:#2a2f37;
	--mall-title:#e8eaed;
	--mall-text:#c2c8d0;
	--mall-muted:#8b95a3;
}
[data-bs-theme="dark"] .mall-nav__item{color:#c2c8d0;}
[data-bs-theme="dark"] .mall-nav__item:hover,
[data-bs-theme="dark"] .mall-nav__item.is-active{background:rgba(255,255,255,.06);color:var(--mall-primary);}
[data-bs-theme="dark"] .mall-card__title a{color:#e8eaed;}
[data-bs-theme="dark"] .mall-card__media{background:#242830;}
[data-bs-theme="dark"] .mall-card__ph{color:#3a4048;}
[data-bs-theme="dark"] .mall-notice__t{color:#cdd3db;}
[data-bs-theme="dark"] .mall-user__bal-item{background:#23272e;}
[data-bs-theme="dark"] .mall-btn--ghost{background:#23272e;color:#c2c8d0;}
[data-bs-theme="dark"] .mall-chip{background:#1c1f24;color:#c2c8d0;}
[data-bs-theme="dark"] .mall-hero--empty{background:linear-gradient(135deg,#1d2620 0%,#1a1f24 60%,#1b1f26 100%);}

/* ==================== 商品详情页（v1.9.0 与首页同源） ==================== */
/* v1.11.0：标题 + 「返回商城」同排，省掉独立一行 */
.mall-headline__brand{
	display:flex;
	align-items:center;
	gap:10px;
	flex-wrap:wrap;
	min-width:0;
}
.mall-head-back{
	display:inline-flex;
	align-items:center;
	gap:4px;
	height:26px;
	padding:0 10px;
	border-radius:999px;
	font-size:12.5px;
	font-weight:600;
	color:var(--mall-muted);
	background:transparent;
	border:1px solid var(--mall-border);
	white-space:nowrap;
	transition:color .18s ease,border-color .18s ease,background .18s ease;
}
.mall-head-back:hover,
.mall-head-back:focus-visible{
	color:var(--mall-primary);
	border-color:var(--mall-primary);
	background:var(--mall-primary-soft);
}
.mall-head-back i{font-size:14px;}

/* v1.12.0：头部两行式
   第一行：店名 + 返回商城（左）｜货币三项（右）
   第二行：公告（左）+ 我的兑换/收藏/优惠券/购物车（右） */
.mall-headline{
	display:flex;
	align-items:center;
	justify-content:space-between;
	flex-wrap:wrap;
	gap:10px 16px;
	padding:12px 16px;
	background:var(--mall-surface);
	border-radius:var(--mall-radius);
	box-shadow:var(--mall-shadow);
}
.mall-headline .h4{
	display:flex;
	align-items:center;
	gap:8px;
	margin:0;
	font-size:17px;
	font-weight:800;
	color:var(--mall-title);
	letter-spacing:.2px;
}
.mall-headline .h4 i{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:30px;
	height:30px;
	border-radius:9px;
	font-size:17px;
	color:var(--mall-primary);
	background:var(--mall-primary-soft);
}
.mall-balance-inline{margin-left:auto;}
/* v1.12.2：余额前缀「我的资产」，右侧细分割线，与三项数值区分 */
.mall-bal-title{
	display:inline-block;
	margin-right:6px;
	padding-right:9px;
	border-right:1px solid var(--mall-border);
	font-size:12px;
	font-weight:500;
	color:var(--mall-muted);
	letter-spacing:.2px;
	white-space:nowrap;
	vertical-align:middle;
}
.mall-head-tools{
	display:flex;
	align-items:center;
	justify-content:flex-end;
	flex-wrap:wrap;
	flex:1 0 100%;
	gap:10px 12px;
}
.mall-head-tools .mall-notice-chip{margin-right:auto;flex:0 1 auto;}

.mall-goods-page .mall-wrap{
	max-width:1280px;
	padding:0 16px;
}

/* 顶部信息条：由旧工具条改造为首页同款白卡片 */
.mall-goods-page .mall-header-stack{
	margin-bottom:16px;
}
.mall-goods-page .mall-headline{
	display:flex;
	align-items:center;
	justify-content:space-between;
	flex-wrap:wrap;
	gap:12px 18px;
	padding:14px 18px;
	background:var(--mall-surface);
	border-radius:var(--mall-radius);
	box-shadow:var(--mall-shadow);
}
.mall-goods-page .mall-headline .h4{
	display:flex;
	align-items:center;
	gap:8px;
	margin:0;
	font-size:17px;
	font-weight:800;
	color:var(--mall-title);
	letter-spacing:.2px;
}
.mall-goods-page .mall-headline .h4 i{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:30px;
	height:30px;
	border-radius:9px;
	font-size:17px;
	color:var(--mall-primary);
	background:var(--mall-primary-soft);
}
.mall-goods-page .mall-head-tools{gap:10px 14px;}
.mall-goods-page .mall-notice-chip{
	display:flex;
	align-items:center;
	gap:7px;
	max-width:360px;
	padding:6px 12px;
	border-radius:999px;
	background:var(--mall-bg);
	color:var(--mall-muted);
	font-size:12.5px;
}
.mall-goods-page .mall-notice-chip i{color:var(--mall-primary);font-size:15px;}
.mall-goods-page .mall-notice-viewport{max-width:280px;}
.mall-goods-page .mall-balance-inline{
	display:flex;
	align-items:center;
	gap:6px;
	padding:4px 8px;
	border-radius:10px;
	background:var(--mall-bg);
}
.mall-goods-page .mall-bal-inline-item{
	display:inline-flex;
	align-items:center;
	gap:4px;
	padding:0 6px;
	font-size:12.5px;
	color:var(--mall-muted);
}
.mall-goods-page .mall-bal-inline-item i{font-size:14px;color:var(--mall-muted);}
.mall-goods-page .mall-bal-inline-item small{font-size:12px;color:var(--mall-muted);}
.mall-goods-page .mall-bal-inline-item strong{
	font-size:14px;
	font-weight:800;
	color:var(--mall-title);
}
/* v1.12.2：三项数值的颜色必须带上 strong，否则被上一条 `.mall-bal-inline-item strong`
   的 `color:var(--mall-title)` 压掉（两者同为 0,2,1，靠文件顺序取胜），数值会变黑。
   色值沿用 mall.css 的既有配色，保证与商城其它页面的余额显示一致。 */
.mall-goods-page .mall-bal-inline-item strong.mall-balance-credits{color:var(--bs-primary,#0d6efd);}
.mall-goods-page .mall-bal-inline-item strong.mall-balance-golds{color:#f59e0b;}
.mall-goods-page .mall-bal-inline-item strong.mall-balance-rmbs{color:#ef4444;}
.mall-goods-page .mall-head-tools .btn-outline-secondary{
	--bs-btn-color:var(--mall-text);
	--bs-btn-border-color:var(--mall-border);
	--bs-btn-hover-color:var(--mall-primary);
	--bs-btn-hover-bg:var(--mall-primary-soft);
	--bs-btn-hover-border-color:var(--mall-primary);
	border-radius:9px;
	font-size:12.5px;
	font-weight:600;
	padding:6px 12px;
}

/* 返回按钮 */
.mall-goods-page .btn-outline-secondary.btn-sm{
	--bs-btn-color:var(--mall-text);
	--bs-btn-border-color:var(--mall-border);
	--bs-btn-bg:var(--mall-surface);
	--bs-btn-hover-color:var(--mall-primary);
	--bs-btn-hover-bg:var(--mall-primary-soft);
	--bs-btn-hover-border-color:var(--mall-primary);
	border-radius:999px;
	padding:5px 14px;
	font-size:12.5px;
	box-shadow:0 2px 6px rgba(15,23,42,.04);
}

/* 左侧主图 */
.mall-goods-page .mall-gallery-main{
	overflow:hidden;
	padding:10px;
	background:var(--mall-surface);
	border-radius:var(--mall-radius);
	box-shadow:var(--mall-shadow);
	cursor:zoom-in;
}
.mall-goods-page .mall-gallery-main .mall-goods-img{
	width:100%;
	height:auto;
	aspect-ratio:1/1;
	max-height:none;
	object-fit:contain;
	border-radius:10px;
	background:#f7f8f9;
	box-shadow:none;
}
.mall-goods-page .mall-goods-img-placeholder{
	aspect-ratio:1/1;
	height:auto;
	background:var(--mall-surface);
	border-radius:var(--mall-radius);
	box-shadow:var(--mall-shadow);
}
.mall-goods-page .mall-zoom-hint{
	margin-top:8px;
	font-size:12px;
	color:var(--mall-muted);
}
.mall-goods-page .mall-gallery-thumbs{margin-top:10px;gap:8px;}
.mall-goods-page .mall-gallery-thumb{
	border-radius:10px;
	background:var(--mall-surface);
}
.mall-goods-page .mall-gallery-thumb img{
	width:60px;
	height:60px;
	border-radius:8px;
}
.mall-goods-page .mall-gallery-thumb.active{border-color:var(--mall-primary);}
.mall-goods-page .mall-gallery-thumb:hover{border-color:var(--mall-primary);}

/* 右侧标题与类型 */
.mall-goods-page .mall-goods-title{
	margin:0 0 10px;
	font-size:20px;
	font-weight:800;
	line-height:1.45;
	color:var(--mall-title);
}
.mall-goods-page .badge{
	padding:4px 9px;
	border-radius:6px;
	font-size:11.5px;
	font-weight:600;
}

/* 描述区 */
.mall-goods-page .mall-goods-desc{
	padding:14px 18px;
	background:var(--mall-surface);
	border-radius:var(--mall-radius);
	box-shadow:var(--mall-shadow);
}
.mall-goods-page h3.h6{
	font-size:13px;
	font-weight:700;
	color:var(--mall-title);
}

/* 提示条 */
.mall-goods-page .alert{
	border:0;
	border-radius:12px;
	padding:10px 14px;
	font-size:13px;
}
.mall-goods-page .alert-info{background:#eef6ff;color:#2c5f8f;}
.mall-goods-page .alert-success{background:#ecfdf3;color:#177245;}
.mall-goods-page .alert-warning{background:#fff8e8;color:#8a5a08;}

/* 表单卡片 */
.mall-goods-page .card{
	border:0;
	border-radius:var(--mall-radius);
	background:var(--mall-surface);
	box-shadow:var(--mall-shadow);
}
.mall-goods-page .card-body{padding:16px 18px;}
.mall-goods-page .form-label{
	font-size:12px;
	color:var(--mall-muted);
	font-weight:500;
}
.mall-goods-page .form-control{
	border-radius:9px;
	border-color:var(--mall-border);
	font-size:13.5px;
	padding:8px 12px;
	background:var(--mall-surface);
	color:var(--mall-text);
}
.mall-goods-page .form-control::placeholder{color:#c2cad6;}
.mall-goods-page .form-control:focus{
	border-color:var(--mall-primary);
	box-shadow:0 0 0 3px rgba(91,140,90,.12);
}

/* 合计条 */
.mall-goods-page .mall-total{
	display:flex;
	align-items:center;
	gap:10px;
	padding:12px 16px;
	background:var(--mall-surface);
	border-radius:12px;
	box-shadow:var(--mall-shadow);
	font-size:13px;
	color:var(--mall-muted);
}
.mall-goods-page .mall-total strong{
	font-size:20px;
	font-weight:800;
	color:var(--mall-price);
}

/* 兑换按钮：跟随主题色 */
.mall-goods-page .btn-primary{
	--bs-btn-bg:var(--mall-primary);
	--bs-btn-border-color:var(--mall-primary);
	--bs-btn-hover-bg:var(--mall-primary-dark);
	--bs-btn-hover-border-color:var(--mall-primary-dark);
	--bs-btn-active-bg:var(--mall-primary-dark);
	--bs-btn-active-border-color:var(--mall-primary-dark);
	--bs-btn-disabled-bg:var(--mall-primary);
	--bs-btn-disabled-border-color:var(--mall-primary);
	--bs-btn-color:#fff;
	--bs-btn-hover-color:#fff;
	--bs-btn-focus-shadow-rgb:91,140,90;
}
.mall-goods-page .btn-primary.btn-lg{
	padding:12px 20px;
	border-radius:12px;
	font-size:15px;
	font-weight:700;
	letter-spacing:.5px;
	box-shadow:0 8px 20px rgba(91,140,90,.28);
}
.mall-goods-page .btn-outline-primary{
	--bs-btn-color:var(--mall-primary);
	--bs-btn-border-color:var(--mall-primary);
	--bs-btn-hover-bg:var(--mall-primary);
	--bs-btn-hover-border-color:var(--mall-primary);
	border-radius:9px;
}

/* 详情页暗色 */
[data-bs-theme="dark"] .mall-goods-page .mall-gallery-main .mall-goods-img,
html.dark .mall-goods-page .mall-gallery-main .mall-goods-img{background:#242830;}
[data-bs-theme="dark"] .mall-goods-page .mall-gallery-thumb,
html.dark .mall-goods-page .mall-gallery-thumb{background:#1c1f24;}
[data-bs-theme="dark"] .mall-goods-page .alert-info,
html.dark .mall-goods-page .alert-info{background:rgba(56,139,253,.12);color:#9ec5fe;}
[data-bs-theme="dark"] .mall-goods-page .alert-success,
html.dark .mall-goods-page .alert-success{background:rgba(46,160,67,.12);color:#8ee0a2;}
[data-bs-theme="dark"] .mall-goods-page .alert-warning,
html.dark .mall-goods-page .alert-warning{background:rgba(217,119,6,.12);color:#f0c17b;}
[data-bs-theme="dark"] .mall-goods-page .form-control{background:#23272e;border-color:#2a2f37;color:#e8eaed;}

@media (max-width:767.98px){
	.mall-goods-page .mall-goods-title{font-size:17px;}
	.mall-goods-page .mall-headline{padding:12px 14px;}
	.mall-goods-page .mall-notice-chip{max-width:100%;}
	.mall-goods-page .mall-notice-viewport{max-width:200px;}
}

/* ==================== v1.10.0 首页右上角四联入口 ==================== */
.mall-user__links{
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:6px;
	margin-top:12px;
}
.mall-user__link{
	position:relative;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:3px;
	padding:8px 2px;
	border-radius:9px;
	background:var(--mall-bg);
	color:var(--mall-text);
	font-size:11px;
	line-height:1.2;
	text-align:center;
	transition:background .15s ease,color .15s ease;
}
.mall-user__link i{font-size:17px;color:var(--mall-muted);transition:color .15s ease;}
.mall-user__link:hover{background:var(--mall-primary-soft);color:var(--mall-primary);}
.mall-user__link:hover i{color:var(--mall-primary);}
.mall-user__dot{
	position:absolute;
	top:3px;
	right:5px;
	min-width:15px;
	height:15px;
	padding:0 4px;
	border-radius:999px;
	background:var(--mall-price);
	color:#fff;
	font-size:10px;
	font-style:normal;
	font-weight:700;
	line-height:15px;
	text-align:center;
}
.mall-user__dot.is-hidden{display:none;}
.mall-user__links--guest{margin-top:10px;}

/* ==================== v1.10.0 通用小元件 ==================== */
.mall-page-head{margin:0 0 14px;}
.mall-page-head__title{
	display:flex;
	align-items:center;
	gap:8px;
	margin:0;
	font-size:22px;
	font-weight:800;
	color:var(--mall-title);
}
.mall-page-head__title i{color:var(--mall-primary);font-size:22px;}
.mall-page-head__count{
	margin-left:4px;
	font-size:12px;
	font-weight:500;
	color:var(--mall-muted);
}
.mall-panel__badge{
	margin-left:8px;
	padding:1px 8px;
	border-radius:999px;
	background:var(--mall-bg);
	color:var(--mall-muted);
	font-size:11px;
	font-weight:600;
}
.mall-check{
	display:inline-flex;
	align-items:center;
	gap:7px;
	cursor:pointer;
	user-select:none;
}
.mall-check input{
	width:16px;
	height:16px;
	margin:0;
	accent-color:var(--mall-primary);
	cursor:pointer;
}

/* 数量步进器 */
.mall-qty{
	display:inline-flex;
	align-items:center;
	height:34px;
	border:1px solid var(--mall-border);
	border-radius:9px;
	background:var(--mall-surface);
	overflow:hidden;
}
.mall-qty__btn{
	width:32px;
	height:100%;
	border:0;
	background:transparent;
	color:var(--mall-text);
	font-size:15px;
	line-height:1;
	cursor:pointer;
	transition:background .15s ease;
}
.mall-qty__btn:hover{background:var(--mall-primary-soft);color:var(--mall-primary);}
.mall-qty__btn:disabled{color:#cbd5e1;cursor:not-allowed;background:transparent;}
.mall-qty__input{
	width:42px;
	height:100%;
	border:0;
	background:transparent;
	color:var(--mall-title);
	font-size:13.5px;
	font-weight:600;
	text-align:center;
	-moz-appearance:textfield;
}
.mall-qty__input::-webkit-outer-spin-button,
.mall-qty__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.mall-qty__input:focus{outline:none;}

/* 按钮补充变体 */
.mall-btn--block{display:flex;width:100%;justify-content:center;}
.mall-btn--sm{height:32px;padding:0 14px;font-size:12.5px;border-radius:8px;}
.mall-btn--outline{
	background:transparent;
	border-color:var(--mall-primary);
	color:var(--mall-primary);
}
.mall-btn--outline:hover{background:var(--mall-primary-soft);}
.mall-btn--outline:disabled,
.mall-btn--primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;}

/* ==================== v1.10.0 分类页（复刻 store-wenchuang） ==================== */
.mall-cat-layout{
	display:grid;
	grid-template-columns:220px minmax(0,1fr);
	gap:16px;
	align-items:start;
}
.mall-cat__main{min-width:0;}

.mall-cat__crumb{
	display:flex;
	align-items:center;
	flex-wrap:wrap;
	gap:6px;
	margin:0 0 12px;
	font-size:13px;
	line-height:1.4;
	color:var(--mall-muted);
}
.mall-cat__crumb-link{color:var(--mall-muted);transition:color .15s ease;}
.mall-cat__crumb-link:hover{color:var(--mall-primary);}
.mall-cat__crumb-sep{color:#c3ccd8;}
.mall-cat__crumb-current{color:var(--mall-text);}

.mall-cat__hero{
	position:relative;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:20px;
	min-height:148px;
	margin-bottom:10px;
	padding:28px 32px;
	border-radius:var(--mall-radius);
	background:var(--mall-surface);
	box-shadow:var(--mall-shadow);
	overflow:hidden;
}
.mall-cat__hero--plain{
	background:linear-gradient(120deg,var(--mall-primary-soft) 0%,var(--mall-surface) 62%);
}
.mall-cat__hero-main{
	position:relative;
	z-index:2;
	flex:1 1 auto;
	min-width:0;
	max-width:calc(100% - 280px);
}
.mall-cat__hero--plain .mall-cat__hero-main{max-width:100%;}
.mall-cat__title{
	margin:0 0 8px;
	font-size:30px;
	font-weight:800;
	color:var(--mall-title);
	line-height:1.2;
	letter-spacing:-.02em;
}
.mall-cat__subtitle{
	margin:0;
	font-size:14px;
	color:var(--mall-text);
	line-height:1.5;
}
.mall-cat__hero-cover{
	position:absolute;
	right:0;
	top:0;
	bottom:0;
	width:min(52%,520px);
	z-index:1;
	pointer-events:none;
}
.mall-cat__hero-cover img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:center;
}
.mall-cat__hero-cover::before{
	content:'';
	position:absolute;
	inset:0 auto 0 0;
	width:46%;
	z-index:1;
	background:linear-gradient(90deg,var(--mall-surface) 0%,rgba(255,255,255,.92) 28%,rgba(255,255,255,0) 100%);
	pointer-events:none;
}

.mall-cat__panel{
	margin-bottom:12px;
	padding:18px 22px 16px;
	border-radius:var(--mall-radius);
	background:var(--mall-surface);
	box-shadow:var(--mall-shadow);
}
.mall-cat__row{
	display:flex;
	align-items:center;
	flex-wrap:wrap;
	gap:10px 14px;
}
.mall-cat__row + .mall-cat__row{
	margin-top:10px;
	padding-top:12px;
	border-top:1px dashed var(--mall-border);
}
.mall-cat__label{
	flex:0 0 42px;
	width:42px;
	flex-shrink:0;
	font-size:14px;
	font-weight:700;
	color:var(--mall-text);
	line-height:1.4;
}
.mall-cat__chips{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	min-width:0;
}
.mall-cat__chip{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:32px;
	padding:0 14px;
	border-radius:8px;
	font-size:13px;
	line-height:1.2;
	color:var(--mall-text);
	transition:background .15s ease,color .15s ease;
}
.mall-cat__chip:hover{background:var(--mall-bg);color:var(--mall-primary);}
.mall-cat__chip.is-active{
	background:var(--mall-primary-soft);
	color:var(--mall-primary);
	font-weight:600;
}
.mall-cat__meta{
	display:flex;
	align-items:center;
	gap:14px;
	margin-left:auto;
}
.mall-cat__count{font-size:13px;color:var(--mall-muted);white-space:nowrap;}
.mall-cat__view{display:flex;align-items:center;gap:2px;}
.mall-cat__view-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:34px;
	height:34px;
	border:0;
	border-radius:8px;
	background:transparent;
	color:#a8b3c2;
	cursor:pointer;
	transition:background .15s ease,color .15s ease;
}
.mall-cat__view-btn:hover{background:var(--mall-bg);color:var(--mall-text);}
.mall-cat__view-btn.is-active{background:var(--mall-primary-soft);color:var(--mall-primary);}

.mall-cat__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;}
/* 列表视图：卡片横排（图片 104px，信息右置） */
.mall-cat__grid[data-view="list"]{grid-template-columns:1fr;gap:10px;}
.mall-cat__grid[data-view="list"] .mall-card{
	flex-direction:row;
	align-items:stretch;
	gap:14px;
	padding:10px;
}
.mall-cat__grid[data-view="list"] .mall-card__media{
	flex:0 0 104px;
	width:104px;
	border-radius:10px;
}
.mall-cat__grid[data-view="list"] .mall-card__body{
	display:grid;
	grid-template-columns:minmax(0,1fr) auto;
	grid-template-areas:
		"title price"
		"desc  price"
		"meta  price";
	column-gap:24px;
	align-content:center;
	padding:2px 12px 2px 0;
}
.mall-cat__grid[data-view="list"] .mall-card__title{grid-area:title;}
.mall-cat__grid[data-view="list"] .mall-card__desc{grid-area:desc;}
.mall-cat__grid[data-view="list"] .mall-card__price{
	grid-area:price;
	align-self:center;
	justify-self:end;
	margin:0;
	padding-right:34px;
}
.mall-cat__grid[data-view="list"] .mall-card__meta{
	grid-area:meta;
	justify-content:flex-start;
	margin-top:6px;
}
.mall-cat__grid[data-view="list"] .mall-card__shop{flex:0 1 auto;}
.mall-cat__grid[data-view="list"] .mall-card__title a{-webkit-line-clamp:1;}

/* 卡片快捷加购 */
.mall-card__quick{
	position:absolute;
	right:16px;
	bottom:16px;
	z-index:3;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:30px;
	height:30px;
	padding:0;
	border:0;
	border-radius:50%;
	background:rgba(255,255,255,.92);
	color:var(--mall-primary);
	font-size:16px;
	box-shadow:0 2px 8px rgba(15,23,42,.14);
	opacity:0;
	transform:translateY(4px);
	transition:opacity .18s ease,transform .18s ease,background .15s ease;
	cursor:pointer;
}
.mall-card:hover .mall-card__quick{opacity:1;transform:translateY(0);}
.mall-card__quick:hover{background:var(--mall-primary);color:#fff;}
.mall-card__quick.is-busy{opacity:1;pointer-events:none;}

/* ==================== v1.10.0 商品详情：同类推荐 / 购买区 ==================== */
.mall-goods-subtitle{
	margin:-4px 0 10px;
	font-size:13px;
	color:var(--mall-muted);
}
/* v1.11.0：与主图拉开距离，避免两块贴在一起 */
.mall-related{margin-top:30px;padding-top:4px;}
.mall-related__title{
	display:flex;
	align-items:center;
	gap:6px;
	margin:0 0 10px;
	font-size:14px;
	font-weight:800;
	color:var(--mall-title);
}
.mall-related__title i{color:var(--mall-primary);font-size:15px;}
.mall-related__grid{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:8px;
}
.mall-related__item{
	display:flex;
	flex-direction:column;
	gap:5px;
	padding:7px;
	border-radius:11px;
	background:var(--mall-surface);
	box-shadow:0 2px 8px rgba(15,23,42,.05);
	transition:transform .18s ease,box-shadow .18s ease;
}
.mall-related__item:hover{transform:translateY(-2px);box-shadow:var(--mall-shadow);}
.mall-related__img{
	display:flex;
	align-items:center;
	justify-content:center;
	width:100%;
	aspect-ratio:1/1;
	border-radius:8px;
	background:#f2f4f6;
	overflow:hidden;
	color:#c7ccd4;
	font-size:22px;
}
.mall-related__img img{width:100%;height:100%;object-fit:cover;display:block;}
.mall-related__name{
	display:-webkit-box;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical;
	overflow:hidden;
	font-size:12px;
	font-weight:600;
	color:var(--mall-title);
	line-height:1.35;
}
.mall-related__price{font-size:12.5px;font-weight:800;color:var(--mall-price);}

/* ==================== v1.12.0 详情页信息行（类型 + 栏目 / 所需·库存·已兑） ==================== */
.mall-goods-meta{
	display:flex;
	align-items:center;
	justify-content:space-between;
	flex-wrap:wrap;
	gap:8px 16px;
	margin:0 0 12px;
	padding:8px 14px;
	border-radius:var(--mall-radius);
	background:var(--mall-surface);
	box-shadow:var(--mall-shadow);
}
.mall-goods-meta__tags{
	display:flex;
	align-items:center;
	gap:8px;
	flex-wrap:wrap;
	min-width:0;
}
.mall-goods-meta__cats{
	display:inline-flex;
	align-items:center;
	gap:4px;
	flex-wrap:wrap;
	min-width:0;
}
.mall-goods-meta .badge{
	padding:5px 11px;
	border-radius:999px;
	font-size:12px;
	font-weight:600;
	letter-spacing:.2px;
}
.mall-cat-tag{
	display:inline-flex;
	align-items:center;
	gap:4px;
	max-width:190px;
	padding:4px 10px;
	border-radius:999px;
	font-size:12.5px;
	font-weight:600;
	color:var(--mall-text);
	background:#f2f4f6;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
	transition:color .18s ease,background .18s ease;
}
.mall-cat-tag:hover,
.mall-cat-tag:focus-visible{color:var(--mall-primary);background:var(--mall-primary-soft);}
.mall-cat-tag i{font-size:13px;color:var(--mall-muted);flex:0 0 auto;}
.mall-cat-tag:hover i{color:var(--mall-primary);}
.mall-cat-sep{font-size:12px;color:#c3cad4;flex:0 0 auto;}

/* 所需 / 库存 / 已兑：与类型标签同行、靠右 */
.mall-goods-meta__stats{
	display:flex;
	align-items:baseline;
	flex-wrap:wrap;
	gap:6px 20px;
	margin-left:auto;
}
.mall-gstat{
	display:inline-flex;
	align-items:baseline;
	gap:6px;
	white-space:nowrap;
}
.mall-gstat em{
	font-style:normal;
	font-size:12px;
	color:var(--mall-muted);
}
.mall-gstat strong{
	font-size:15px;
	font-weight:800;
	color:var(--mall-title);
	line-height:1.2;
}
.mall-gstat__price{color:var(--mall-price)!important;}

.mall-buy{
	margin-top:4px;
	padding:12px 14px;
	border-radius:var(--mall-radius);
	background:var(--mall-surface);
	box-shadow:var(--mall-shadow);
}
/* v1.12.0：数量 + 合计同排，合计紧跟数量框后面 */
.mall-buy__qtyrow{
	display:flex;
	align-items:center;
	flex-wrap:wrap;
	gap:10px 14px;
	margin:0 0 12px;
	padding-bottom:12px;
	border-bottom:1px dashed var(--mall-border);
}
.mall-buy__qty{display:flex;align-items:center;gap:12px;}
.mall-buy__qty-label{font-size:13px;color:var(--mall-muted);}
.mall-buy__total{
	display:flex;
	align-items:baseline;
	gap:6px;
	margin:0;
	padding:0;
	border-top:0;
	font-size:13px;
	color:var(--mall-muted);
}
.mall-buy__total-label{font-size:13px;}
.mall-buy__total strong{font-size:22px;font-weight:800;color:var(--mall-price);line-height:1.1;}
.mall-buy__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.mall-buy__actions .mall-btn{height:44px;padding:0 18px;font-size:14px;}
.mall-buy__actions .mall-btn--primary{flex:1 1 160px;justify-content:center;}
.mall-fav-btn.is-on{color:var(--mall-price);border-color:var(--mall-price);}
.mall-fav-btn.is-on i{color:var(--mall-price);}

/* ==================== v1.10.0 购物车 ==================== */
.mall-cart{
	display:grid;
	grid-template-columns:minmax(0,1fr) 300px;
	gap:16px;
	align-items:start;
}
.mall-cart__main{
	border-radius:var(--mall-radius);
	background:var(--mall-surface);
	box-shadow:var(--mall-shadow);
	overflow:hidden;
}
.mall-cart__bar{
	display:flex;
	align-items:center;
	gap:12px;
	padding:12px 16px;
	border-bottom:1px solid var(--mall-border);
	font-size:12px;
	color:var(--mall-muted);
}
.mall-cart__bar .mall-check{flex:1;color:var(--mall-text);font-weight:600;}
.mall-cart__bar-col--price{width:92px;text-align:center;}
.mall-cart__bar-col--qty{width:132px;text-align:center;}
.mall-cart__bar-col--sum{width:100px;text-align:right;}
.mall-cart__bar-col--op{width:32px;}

.mall-cart__item{
	display:flex;
	align-items:center;
	gap:12px;
	padding:14px 16px;
	border-bottom:1px solid var(--mall-border);
	transition:background .15s ease;
}
.mall-cart__item:hover{background:#fafbfc;}
.mall-cart__item.is-invalid{background:#fffaf5;}
.mall-cart__check{width:28px;flex:0 0 28px;}
.mall-cart__media{
	flex:0 0 84px;
	width:84px;
	aspect-ratio:1/1;
	display:flex;
	align-items:center;
	justify-content:center;
	border-radius:10px;
	background:#f2f4f6;
	overflow:hidden;
	color:#c7ccd4;
	font-size:24px;
}
.mall-cart__media img{width:100%;height:100%;object-fit:cover;display:block;}
.mall-cart__info{flex:1;min-width:0;}
.mall-cart__name{
	margin:0 0 4px;
	font-size:13.5px;
	font-weight:700;
	line-height:1.4;
}
.mall-cart__name a{color:var(--mall-title);}
.mall-cart__name a:hover{color:var(--mall-primary);}
.mall-cart__desc{
	margin:0;
	font-size:12px;
	color:var(--mall-muted);
	display:-webkit-box;
	-webkit-line-clamp:1;
	-webkit-box-orient:vertical;
	overflow:hidden;
}
.mall-cart__invalid{
	display:flex;
	align-items:center;
	gap:4px;
	margin:5px 0 0;
	font-size:11.5px;
	color:#d97706;
}
.mall-cart__price{
	width:92px;
	flex:0 0 92px;
	text-align:center;
	font-size:13px;
	font-weight:700;
	color:var(--mall-title);
}
.mall-cart__price small,
.mall-cart__sum small{font-size:11px;font-weight:500;color:var(--mall-muted);}
.mall-cart__qty{
	width:132px;
	flex:0 0 132px;
	display:flex;
	justify-content:center;
}
.mall-cart__sum{
	width:100px;
	flex:0 0 100px;
	text-align:right;
	font-size:15px;
	font-weight:800;
	color:var(--mall-price);
}
.mall-cart__del{
	width:32px;
	height:32px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	border:0;
	border-radius:8px;
	background:transparent;
	color:#b6c0cd;
	font-size:15px;
	cursor:pointer;
	transition:background .15s ease,color .15s ease;
}
.mall-cart__del:hover{background:#feeceb;color:var(--mall-price);}
.mall-cart__foot{
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:12px 16px;
	font-size:12.5px;
}
.mall-cart__clear,
.mall-cart__more{
	display:inline-flex;
	align-items:center;
	gap:5px;
	border:0;
	background:transparent;
	color:var(--mall-muted);
	cursor:pointer;
	font-size:12.5px;
	transition:color .15s ease;
}
.mall-cart__clear:hover{color:var(--mall-price);}
.mall-cart__more:hover{color:var(--mall-primary);}

.mall-cart__side{position:sticky;top:16px;}
.mall-cart__panel{padding:18px;}
.mall-cart__panel .mall-panel__title{margin-bottom:14px;}
.mall-cart__sums{display:flex;flex-direction:column;gap:8px;}
.mall-cart__sum-row{
	display:flex;
	align-items:center;
	justify-content:space-between;
	font-size:13px;
	color:var(--mall-text);
}
.mall-cart__sum-row strong{font-size:15px;font-weight:800;color:var(--mall-title);}
.mall-cart__count-line{margin:12px 0;font-size:12.5px;color:var(--mall-muted);}
.mall-cart__tip{
	display:flex;
	align-items:flex-start;
	gap:5px;
	margin:10px 0 0;
	font-size:11.5px;
	line-height:1.5;
	color:var(--mall-muted);
}
.mall-cart__tip i{margin-top:1px;font-size:13px;}

/* ==================== v1.10.0 结算页 ==================== */
.mall-checkout{
	display:grid;
	grid-template-columns:minmax(0,1fr) 320px;
	gap:16px;
	align-items:start;
}
.mall-checkout__main{display:flex;flex-direction:column;gap:14px;min-width:0;}
/* 结算页每个分区都是独立白卡：标题与内容统一左右留白，避免商品图/合计贴边 */
.mall-checkout__main > .mall-panel{padding:16px 18px 18px;}
.mall-checkout__main .mall-panel__title{margin-bottom:12px;}
.mall-checkout__main .mall-co-good__sum{padding-right:0;}
.mall-checkout__side{position:sticky;top:16px;}
.mall-form-grid{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:12px;
}
.mall-field{display:flex;flex-direction:column;gap:5px;min-width:0;}
.mall-field--full{grid-column:1 / -1;}
.mall-field__label{font-size:12px;color:var(--mall-muted);}
.mall-field__tip{
	display:flex;
	align-items:center;
	gap:5px;
	margin:10px 0 0;
	font-size:11.5px;
	color:var(--mall-muted);
}
.mall-co-goods{display:flex;flex-direction:column;}
.mall-co-good{
	display:flex;
	align-items:center;
	gap:12px;
	padding:12px 0;
	border-bottom:1px dashed var(--mall-border);
}
.mall-co-good:last-child{border-bottom:0;padding-bottom:0;}
.mall-co-good__media{
	flex:0 0 64px;
	width:64px;
	aspect-ratio:1/1;
	display:flex;
	align-items:center;
	justify-content:center;
	border-radius:10px;
	background:#f2f4f6;
	overflow:hidden;
	color:#c7ccd4;
	font-size:20px;
}
.mall-co-good__media img{width:100%;height:100%;object-fit:cover;display:block;}
.mall-co-good__info{flex:1;min-width:0;}
.mall-co-good__name{margin:0 0 4px;font-size:13.5px;font-weight:700;line-height:1.4;}
.mall-co-good__name a{color:var(--mall-title);}
.mall-co-good__meta{
	display:flex;
	align-items:center;
	gap:8px;
	margin:0;
	font-size:11.5px;
	color:var(--mall-muted);
}
.mall-co-good__sub{
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}
.mall-co-good__price{
	flex:0 0 84px;
	text-align:right;
	font-size:12.5px;
	color:var(--mall-text);
}
.mall-co-good__qty{flex:0 0 44px;text-align:center;font-size:12.5px;color:var(--mall-muted);}
.mall-co-good__sum{
	flex:0 0 96px;
	text-align:right;
	font-size:14px;
	font-weight:800;
	color:var(--mall-price);
}
.mall-co-good__price small,.mall-co-good__sum small{font-size:10.5px;font-weight:500;color:var(--mall-muted);}
.mall-co-none{
	display:flex;
	align-items:center;
	gap:6px;
	margin:0;
	font-size:12.5px;
	color:var(--mall-muted);
}
.mall-co-none a{color:var(--mall-primary);font-weight:600;}

.mall-co-coupons{display:flex;flex-direction:column;gap:8px;}
.mall-co-coupon{
	display:flex;
	align-items:center;
	gap:10px;
	padding:10px 12px;
	border:1px solid #dde5ee;
	border-radius:10px;
	cursor:pointer;
	transition:border-color .15s ease,background .15s ease;
}
.mall-co-coupon:hover{border-color:var(--mall-primary);}
.mall-co-coupon input{width:15px;height:15px;margin:0;accent-color:var(--mall-primary);}
.mall-co-coupon.is-selected{
	border-color:var(--mall-primary);
	background:var(--mall-primary-soft);
}
.mall-co-coupon__body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;}
.mall-co-coupon__name{font-size:13px;font-weight:700;color:var(--mall-title);}
.mall-co-coupon__rule{font-size:11.5px;color:var(--mall-muted);}
.mall-co-coupon__cut{
	font-size:14px;
	font-weight:800;
	color:var(--mall-price);
	white-space:nowrap;
}

.mall-co-summary{padding:18px;}
.mall-co-summary__rows{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;}
.mall-co-summary__row{
	display:flex;
	align-items:center;
	justify-content:space-between;
	font-size:12.5px;
	color:var(--mall-text);
}
.mall-co-summary__row strong{font-weight:700;color:var(--mall-title);}
.mall-co-summary__row--cut strong{color:var(--mall-price);}
.mall-co-summary__pay{
	display:flex;
	align-items:baseline;
	justify-content:space-between;
	gap:8px;
	padding:12px 0;
	border-top:1px dashed var(--mall-border);
	font-size:13px;
	color:var(--mall-muted);
}
.mall-co-summary__pay strong{
	font-size:19px;
	font-weight:800;
	color:var(--mall-price);
	text-align:right;
	line-height:1.3;
}
.mall-co-summary__bal{
	display:flex;
	flex-wrap:wrap;
	gap:6px 10px;
	margin-bottom:14px;
	font-size:11.5px;
	color:var(--mall-muted);
}

/* ==================== v1.10.0 收藏 ==================== */
.mall-fav__grid{grid-template-columns:repeat(4,minmax(0,1fr));}
.mall-fav__item{position:relative;min-width:0;}
.mall-fav__remove{
	position:absolute;
	left:16px;
	right:16px;
	bottom:12px;
	z-index:3;
	height:30px;
	border:0;
	border-radius:8px;
	background:rgba(15,23,42,.62);
	color:#fff;
	font-size:11.5px;
	cursor:pointer;
	opacity:0;
	transition:opacity .18s ease,background .15s ease;
	backdrop-filter:blur(2px);
}
.mall-fav__item:hover .mall-fav__remove,
.mall-fav__item:focus-within .mall-fav__remove{opacity:1;}
@media (hover:none){
	.mall-fav__remove{opacity:1;position:static;display:flex;align-items:center;justify-content:center;
		width:calc(100% - 32px);margin:8px 16px 0;height:28px;background:rgba(15,23,42,.08);color:var(--mall-text);}
}
.mall-fav__remove:hover{background:var(--mall-price);}

/* ==================== v1.10.0 优惠券 ==================== */
.mall-cp-section{padding:16px 18px 18px;}
.mall-cp-section .mall-panel__title{margin-bottom:12px;}
.mall-cp-section + .mall-cp-section{margin-top:14px;}
.mall-cp-grid{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:12px;
	margin-top:14px;
}
.mall-cp{
	position:relative;
	display:flex;
	align-items:stretch;
	gap:12px;
	padding:14px;
	border-radius:12px;
	background:var(--mall-bg);
	overflow:hidden;
}
.mall-cp::before{
	content:'';
	position:absolute;
	left:0;
	top:0;
	bottom:0;
	width:4px;
	background:var(--mall-primary);
}
.mall-cp__left{
	flex:0 0 104px;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:4px;
	padding:6px 8px;
	border-radius:9px;
	background:var(--mall-surface);
	text-align:center;
}
.mall-cp__val{
	font-size:15px;
	font-weight:800;
	color:var(--mall-primary);
	line-height:1.25;
	word-break:break-word;
}
.mall-cp__scope{font-size:11px;color:var(--mall-muted);}
.mall-cp__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;justify-content:center;}
.mall-cp__name{
	margin:0;
	font-size:13.5px;
	font-weight:700;
	color:var(--mall-title);
	line-height:1.4;
}
.mall-cp__time{
	display:flex;
	align-items:center;
	gap:4px;
	margin:0;
	font-size:11.5px;
	color:var(--mall-muted);
}
.mall-cp__left-num{margin:0;font-size:11.5px;color:var(--mall-price);font-weight:600;}
.mall-cp__act{display:flex;align-items:center;flex-shrink:0;}
.mall-cp__got{font-size:11.5px;color:var(--mall-muted);white-space:nowrap;}
.mall-cp.is-got{opacity:.72;}
.mall-cp.is-got::before{background:#cbd5e1;}
.mall-cp.is-dim{opacity:.58;}
.mall-cp.is-dim::before{background:#cbd5e1;}

/* ==================== v1.10.0 响应式 ==================== */
@media (max-width:1199.98px){
	.mall-cat-layout{grid-template-columns:200px minmax(0,1fr);}
	.mall-cat__title{font-size:26px;}
	.mall-cart{grid-template-columns:minmax(0,1fr) 280px;}
}
@media (max-width:991.98px){
	.mall-cat-layout{grid-template-columns:minmax(0,1fr);}
	.mall-cat-layout > .mall-store__nav{display:none;}
	.mall-cat__hero{min-height:132px;padding:22px 24px;}
	.mall-cat__hero-main{max-width:calc(100% - 180px);}
	.mall-cat__title{font-size:24px;}
	.mall-cat__grid{grid-template-columns:repeat(3,minmax(0,1fr));}
	.mall-cart{grid-template-columns:minmax(0,1fr);}
	.mall-cart__side{position:static;}
	.mall-checkout{grid-template-columns:minmax(0,1fr);}
	.mall-checkout__side{position:static;}
	.mall-fav__grid{grid-template-columns:repeat(3,minmax(0,1fr));}
	.mall-cp-grid{grid-template-columns:1fr;}
}
@media (max-width:767.98px){
	.mall-cat__hero{padding:18px 18px;min-height:0;}
	.mall-cat__hero-main{max-width:100%;}
	.mall-cat__hero-cover{
		position:relative;
		width:100%;
		height:120px;
		margin-top:12px;
		border-radius:10px;
		order:2;
	}
	.mall-cat__hero{flex-wrap:wrap;}
	.mall-cat__hero-cover::before{display:none;}
	.mall-cat__title{font-size:20px;}
	.mall-cat__panel{padding:14px 16px;}
	.mall-cat__label{flex-basis:100%;width:auto;}
	.mall-cat__meta{width:100%;margin-left:0;justify-content:space-between;}
	.mall-cat__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
	.mall-cat__grid[data-view="list"] .mall-card__media{flex-basis:88px;width:88px;}
	.mall-cat__grid[data-view="list"] .mall-card{padding:8px;gap:10px;}
	.mall-form-grid{grid-template-columns:1fr;}
	.mall-cp-grid{grid-template-columns:1fr;}
	.mall-cp__left{flex-basis:88px;}
	.mall-fav__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
	.mall-related__grid{grid-template-columns:repeat(4,minmax(0,1fr));}
	.mall-user__links{grid-template-columns:repeat(4,minmax(0,1fr));}

	/* 购物车：移动端改为两行卡片式 */
	.mall-cart__bar{display:none;}
	.mall-cart__item{
		display:grid;
		grid-template-columns:22px 72px minmax(0,1fr) 30px;
		grid-template-areas:
			"check media info del"
			"qty   qty   sum  sum";
		gap:10px;
		align-items:center;
	}
	.mall-cart__check{grid-area:check;width:22px;flex:none;}
	.mall-cart__media{grid-area:media;flex:none;width:72px;}
	.mall-cart__info{grid-area:info;}
	.mall-cart__price{display:none;}
	.mall-cart__qty{grid-area:qty;width:auto;flex:none;justify-content:flex-start;}
	.mall-cart__sum{grid-area:sum;width:auto;flex:none;text-align:right;}
	.mall-cart__del{grid-area:del;width:30px;height:30px;}
	.mall-cart__foot{flex-direction:column;gap:8px;align-items:flex-start;}

	/* 结算商品行：信息独占一行，价格/数量/小计换行到第二行 */
	.mall-co-good{flex-wrap:wrap;row-gap:8px;align-items:flex-start;}
	.mall-co-good__media{flex:0 0 56px;width:56px;}
	.mall-co-good__info{flex:1 1 calc(100% - 68px);}
	.mall-co-good__price{flex:1 1 auto;text-align:left;font-size:12px;}
	.mall-co-good__qty{flex:0 0 auto;}
	.mall-co-good__sum{flex:0 0 auto;margin-left:auto;font-size:13px;}
	.mall-buy__actions .mall-btn{flex:1 1 100%;}

	/* v1.12.0 详情页信息行：窄屏时所需/库存/已兑换到第二行，靠右 */
	.mall-goods-meta{padding:8px 12px;gap:8px 10px;}
	.mall-goods-meta__stats{margin-left:0;width:100%;justify-content:flex-end;gap:6px 16px;}
	.mall-gstat strong{font-size:14px;}
	.mall-buy__qtyrow{gap:8px 12px;}
	.mall-buy__total strong{font-size:20px;}
	.mall-headline__brand{gap:8px;}
	.mall-head-back{height:24px;padding:0 9px;font-size:12px;}
	.mall-related{margin-top:24px;}
}
@media (max-width:575.98px){
	.mall-cat__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
	.mall-related__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
	.mall-page-head__title{font-size:19px;}
	.mall-cat-tag{max-width:132px;}
	/* v1.12.0：窄屏隐藏货币名称，只留图标 + 数值，保证与店名同排不换行 */
	.mall-bal-inline-item small{display:none;}
	.mall-bal-inline-item{padding:0 3px;}
	/* v1.12.2：380px 以下连「我的资产」也收起，避免与店名挤成两行 */
	.mall-bal-title{display:none;}
	/* v1.12.3：窄屏收紧头部内边距与返回胶囊，给「返回商城」留出位置 */
	.mall-headline{gap:8px 8px;padding:10px 12px;}
	.mall-head-back{padding:0 8px;}
	/* v1.12.0：窄屏收起入口按钮图标，四个按钮压到一行 */
	.mall-head-tools{gap:6px;}
	.mall-headline .mall-head-tools .btn-sm{padding:4px 8px;font-size:11.5px;}
	.mall-headline .mall-head-tools .btn-sm i{display:none;}
	.mall-head-tools .mall-notice-chip{flex:1 1 100%;margin-right:0;max-width:none;}
	.mall-head-tools .mall-notice-viewport{max-width:none;}
}

/* ==================== v1.10.0 暗色 ==================== */
[data-bs-theme="dark"] .mall-user__link,
html.dark .mall-user__link{background:#23272e;color:#c2c8d0;}
[data-bs-theme="dark"] .mall-user__link:hover,
html.dark .mall-user__link:hover{background:rgba(255,255,255,.08);}
[data-bs-theme="dark"] .mall-cat__hero,
[data-bs-theme="dark"] .mall-cat__panel,
[data-bs-theme="dark"] .mall-cart__main,
[data-bs-theme="dark"] .mall-buy,
[data-bs-theme="dark"] .mall-related__item,
html.dark .mall-cat__hero,
html.dark .mall-cat__panel,
html.dark .mall-cart__main,
html.dark .mall-buy,
html.dark .mall-related__item{background:var(--mall-surface);}
[data-bs-theme="dark"] .mall-cat__hero--plain,
html.dark .mall-cat__hero--plain{background:linear-gradient(120deg,rgba(91,140,90,.16) 0%,var(--mall-surface) 62%);}
[data-bs-theme="dark"] .mall-cat__hero-cover::before,
html.dark .mall-cat__hero-cover::before{
	background:linear-gradient(90deg,var(--mall-surface) 0%,rgba(28,31,36,.9) 28%,rgba(28,31,36,0) 100%);
}
[data-bs-theme="dark"] .mall-cat__chip:hover,
html.dark .mall-cat__chip:hover{background:rgba(255,255,255,.06);}
[data-bs-theme="dark"] .mall-cart__item:hover,
html.dark .mall-cart__item:hover{background:#1f2329;}
[data-bs-theme="dark"] .mall-cart__item.is-invalid,
html.dark .mall-cart__item.is-invalid{background:#2a241c;}
[data-bs-theme="dark"] .mall-cart__media,
[data-bs-theme="dark"] .mall-co-good__media,
[data-bs-theme="dark"] .mall-related__img,
html.dark .mall-cart__media,
html.dark .mall-co-good__media,
html.dark .mall-related__img{background:#242830;}
[data-bs-theme="dark"] .mall-card__quick,
html.dark .mall-card__quick{background:rgba(36,40,48,.92);color:var(--mall-primary);}
[data-bs-theme="dark"] .mall-cp,
html.dark .mall-cp{background:#23272e;}
[data-bs-theme="dark"] .mall-cp__left,
html.dark .mall-cp__left{background:#1c1f24;}
[data-bs-theme="dark"] .mall-co-coupon:hover,
html.dark .mall-co-coupon:hover{border-color:var(--mall-primary);}

/* v1.11.0 详情页标签行 / 返回按钮 暗色 */
[data-bs-theme="dark"] .mall-goods-meta,
html.dark .mall-goods-meta{background:var(--mall-surface);}
[data-bs-theme="dark"] .mall-cat-tag,
html.dark .mall-cat-tag{background:#242830;color:#c2c8d0;}
[data-bs-theme="dark"] .mall-cat-tag:hover,
html.dark .mall-cat-tag:hover{background:rgba(255,255,255,.08);color:var(--mall-primary);}
[data-bs-theme="dark"] .mall-cat-sep,
html.dark .mall-cat-sep{color:#4a515b;}

/* ===== v1.10.0 补充：公共头部入口 / AJAX 交互状态 ===== */
.mall-head-link{position:relative;}
.mall-head-dot{
	position:absolute;top:-5px;right:-5px;
	min-width:16px;height:16px;padding:0 4px;
	display:inline-flex;align-items:center;justify-content:center;
	border-radius:999px;background:var(--mall-price);color:#fff;
	font-size:10px;font-weight:700;font-style:normal;line-height:1;
	box-shadow:0 0 0 2px var(--mall-surface);
}
.mall-head-dot.is-hidden{display:none;}

/* 按钮 / 卡片在 AJAX 往返中的过渡状态 */
.mall-btn.is-busy,.mall-card__quick.is-busy,.mall-cart__del.is-busy,
.mall-fav-btn.is-busy{opacity:.6;pointer-events:none;}
.mall-btn.is-disabled{opacity:.5;pointer-events:none;box-shadow:none;}
.mall-btn.is-done,.mall-card__quick.is-done{
	background:var(--mall-primary-soft);border-color:var(--mall-primary);color:var(--mall-primary);
}
.mall-spin{animation:mall-spin .9s linear infinite;}
@keyframes mall-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
	.mall-spin{animation:none;}
	.mall-cp,.mall-btn,.mall-card__quick{transition:none;}
}
/* 列表视图下快捷加购按钮贴右下，避免遮挡价格 */
.mall-cat__grid[data-view="list"] .mall-card__quick,
.mall-cat__grid[data-view="list"] .mall-card:hover .mall-card__quick{
	right:14px;top:50%;bottom:auto;transform:translateY(-50%);
}

/* 触屏无 hover：快捷加购常显，避免手机端无法加购 */
@media (hover:none){
	.mall-card__quick{opacity:1;transform:none;}
}
.mall-card__quick:focus-visible{opacity:1;transform:none;outline:2px solid var(--mall-primary);outline-offset:2px;}

/* ===================== v1.13.0 商品规格 ===================== */
.mall-spec{
	margin:0 0 12px;
	padding:12px 14px;
	border:1px solid var(--mall-border);
	border-radius:var(--mall-radius);
	background:var(--mall-surface);
}
.mall-spec__head{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.mall-spec__label{color:var(--mall-muted);font-size:13px;flex:0 0 auto;}
.mall-spec__picked{
	display:inline-flex;align-items:center;height:22px;padding:0 9px;
	border-radius:999px;background:var(--mall-primary-soft);color:var(--mall-primary-dark);
	font-size:12px;font-weight:600;
}
.mall-spec__opts{display:flex;flex-wrap:wrap;gap:10px;}
.mall-spec__opt{
	display:inline-flex;align-items:center;gap:8px;
	min-height:44px;padding:6px 14px 6px 8px;
	border:1.5px solid var(--mall-border);border-radius:10px;
	background:var(--mall-surface);color:var(--mall-title);
	font-size:13px;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s;
}
.mall-spec__opt:hover{border-color:var(--mall-primary);}
.mall-spec__opt.is-active{
	border-color:var(--mall-primary);
	background:var(--mall-primary-soft);
	box-shadow:0 0 0 3px color-mix(in srgb,var(--mall-primary) 12%,transparent);
}
.mall-spec__opt.is-active .mall-spec__name{color:var(--mall-primary-dark);font-weight:600;}
.mall-spec__img{
	display:inline-flex;align-items:center;justify-content:center;
	width:34px;height:34px;border-radius:6px;overflow:hidden;background:var(--mall-bg);flex:0 0 auto;
}
.mall-spec__img img{width:100%;height:100%;object-fit:cover;display:block;}
.mall-spec__name{white-space:nowrap;}
.mall-spec__out{font-size:11px;color:var(--mall-muted);}
.mall-spec__opt.is-out{opacity:.5;cursor:not-allowed;background:var(--mall-bg);}
.mall-spec__opt:focus-visible{outline:2px solid var(--mall-primary);outline-offset:2px;}

/* 购物车行上的规格标签 */
.mall-cart__spec{
	display:inline-flex;align-items:center;gap:4px;margin:2px 0 0;
	padding:1px 8px;border-radius:999px;
	background:var(--mall-bg);color:var(--mall-text);font-size:12px;
}
/* 结算页商品行的规格 */
.mall-co-good__spec{display:inline-flex;align-items:center;gap:3px;color:var(--mall-muted);}
.mall-co-good__spec i{font-size:12px;}

@media (max-width:575.98px){
	.mall-spec{padding:10px 12px;}
	.mall-spec__opt{min-height:40px;padding:5px 10px 5px 6px;font-size:12px;}
	.mall-spec__img{width:30px;height:30px;}
}

/* ===================== v1.14.0 原价（划线价） / 余额不足提示 ===================== */
/* 详情页价格后面的划线原价：仅作参考，弱化到不抢主价 */
.mall-price-old{
	display:inline-block;
	margin-left:6px;
	font-size:12px;
	font-weight:400;
	color:var(--mall-muted);
	text-decoration:line-through;
}
.mall-price-old[hidden]{display:none;}
/* v1.14.2：详情页「原价」独立条目（原价 + 划线价），与前面的售价稍作区分 */
.mall-gstat--market .mall-price-old{
	margin-left:0;
	font-size:14px;
	line-height:1.2;
}
/* v1.14.2：售价/原价 与 库存/已兑 之间的竖分割线 */
.mall-gstat__div{
	display:inline-block;
	width:1px;
	height:12px;
	align-self:center;
	margin:0 -8px;          /* 抵消 flex gap 的一半，让分割线两侧留白均匀 */
	background:var(--mall-border);
}
/* 卡片价签上的划线原价 */
.mall-card__market{
	margin-left:4px;
	font-size:12px;
	font-weight:500;
	color:var(--mall-muted);
	text-decoration:line-through;
}

/* 数量 / 合计这一行的附注：实扣金额、余额不足 */
.mall-buy__total{flex-wrap:wrap;row-gap:4px;}
.mall-buy__charge{
	flex:0 0 auto;
	font-size:12px;
	color:var(--mall-muted);
}
.mall-buy__charge[hidden]{display:none;}
.mall-buy__lack{
	display:inline-flex;
	align-items:center;
	gap:4px;
	padding:2px 10px;
	border-radius:999px;
	background:#fdecea;
	color:var(--mall-price);
	font-size:12px;
	font-weight:600;
	line-height:1.7;
	white-space:nowrap;
}
.mall-buy__lack[hidden]{display:none;}
.mall-buy__lack i{font-size:13px;}
.mall-buy__lack-link{
	display:inline-flex;
	align-items:center;
	gap:1px;
	margin-left:2px;
	color:var(--mall-price);
	font-weight:700;
	text-decoration:none;
}
.mall-buy__lack-link:hover{text-decoration:underline;}
.mall-buy__lack-link i{font-size:12px;}

@media (max-width:575.98px){
	.mall-buy__lack{font-size:11px;padding:1px 8px;}
}

/* 结算页：余额不足提示 */
.mall-co-summary__lack{
	display:flex;
	align-items:center;
	flex-wrap:wrap;
	gap:4px;
	margin-top:6px;
	padding:6px 10px;
	border-radius:8px;
	background:#fdecea;
	color:var(--mall-price);
	font-size:12px;
	font-weight:600;
}
.mall-co-summary__lack a{
	display:inline-flex;
	align-items:center;
	gap:1px;
	margin-left:auto;
	color:var(--mall-price);
	font-weight:700;
}
.mall-co-summary__lack a:hover{text-decoration:underline;}

/* 结算页：余额按整数扣取的实际扣款说明（v1.14.0） */
.mall-co-summary__round{
	margin-top:6px;
	color:var(--mall-muted, #8a8f99);
	font-size:12px;
	line-height:1.5;
}
.mall-co-summary__round[hidden]{display:none;}
