/* 积分商城 cyz_credit_mall */
.mall-wrap{max-width:1200px;margin:0 auto;padding:1.5rem .75rem}

/* 头部 */
.mall-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem}
.mall-header h2{font-weight:700;margin:0;display:flex;align-items:center;gap:.5rem}
.mall-header h2 i{color:var(--bs-primary,#0d6efd)}

/* v1.6.3 首页顶部：标题 + 分类紧随其下；右侧工具条（公告/余额在「我的兑换」左侧） */
.mall-headline{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.6rem .9rem;width:100%}
.mall-head-tools{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem .9rem;margin-left:auto;min-width:0}
.mall-notice-chip{display:inline-flex;align-items:center;gap:.4rem;max-width:min(46vw,430px);padding:.3rem .7rem;border-radius:50rem;background:var(--bs-tertiary-bg,#f8f9fa);border:1px solid var(--bs-border-color,rgba(0,0,0,.08));font-size:.8rem;color:var(--bs-secondary-color,#6c757d);line-height:1.25;overflow:hidden}
.mall-notice-chip i{flex:0 0 auto;opacity:.75}
.mall-notice-chip>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* v1.6.4 公告滚动跑马灯：内容超宽时自动滚动，完整显示 */
.mall-notice-viewport{flex:1 1 auto;min-width:0;overflow:hidden;position:relative;white-space:nowrap}
.mall-notice-text{display:inline-block;white-space:nowrap;will-change:transform}
.mall-notice-viewport.is-scrolling .mall-notice-text{animation:mall-marquee-scroll var(--mall-marquee-dur,16s) linear infinite}
.mall-notice-viewport.is-scrolling:hover .mall-notice-text{animation-play-state:paused}
@keyframes mall-marquee-scroll{
	0%{transform:translateX(0)}
	100%{transform:translateX(calc(-1 * var(--mall-marquee-dist,100%)))}
}
@media (prefers-reduced-motion:reduce){
	.mall-notice-viewport.is-scrolling .mall-notice-text{animation:none}
	.mall-notice-viewport{overflow-x:auto}
}
.mall-balance-inline{display:inline-flex;align-items:center;gap:.85rem;flex-wrap:wrap}
.mall-bal-inline-item{display:inline-flex;align-items:center;gap:.28rem;line-height:1}
.mall-bal-inline-item i{font-size:1rem;opacity:.7}
.mall-bal-inline-item strong{font-size:1.02rem;font-weight:700}
.mall-bal-inline-item strong.mall-balance-credits{color:var(--bs-primary,#0d6efd)}
.mall-bal-inline-item strong.mall-balance-golds{color:#f59e0b}
.mall-bal-inline-item strong.mall-balance-rmbs{color:#ef4444}
/* 分类栏紧跟标题 */
.mall-headline+.mall-category-bar{margin-top:-.5rem}
@media (max-width:767.98px){
	.mall-headline{gap:.5rem}
	.mall-head-tools{width:100%;margin-left:0;justify-content:flex-start}
	.mall-notice-chip{max-width:100%;flex:1 1 100%}
	/* 移动端公告仍用滚动展示，避免长文案被截断 */
	.mall-notice-viewport{width:100%}
}

/* 余额栏 */
.mall-balance-bar{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}
.mall-balance-item{display:flex;align-items:center;gap:.4rem}
.mall-balance-item i{font-size:1.1rem;opacity:.7}
.mall-balance-item strong{font-size:1.15rem;font-weight:700}
.mall-balance-item .mall-balance-credits{color:var(--bs-primary,#0d6efd)}
.mall-balance-item .mall-balance-golds{color:#f59e0b}
.mall-balance-item .mall-balance-rmbs{color:#ef4444}

/* 分类标签栏 */
.mall-category-bar{display:flex;flex-wrap:wrap;gap:.375rem;align-items:center;padding:.25rem 0}
.mall-cat-btn{display:inline-block;padding:.3rem .85rem;border-radius:50rem;font-size:.85rem;font-weight:500;text-decoration:none;color:var(--bs-secondary-color,#6c757d);background:var(--bs-tertiary-bg,#f8f9fa);border:1px solid var(--bs-border-color,rgba(0,0,0,.08));transition:all .15s ease;white-space:nowrap}
.mall-cat-btn:hover{color:var(--bs-primary,#0d6efd);border-color:var(--bs-primary,#0d6efd);text-decoration:none;transform:translateY(-1px)}
.mall-cat-btn.active{color:#fff;background:var(--bs-primary,#0d6efd);border-color:var(--bs-primary,#0d6efd)}

/* 商品卡片网格 */
.mall-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.875rem}
.mall-card{transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease;overflow:hidden;border:1px solid rgba(0,0,0,.08);border-radius:.75rem}
.mall-card:hover{box-shadow:0 .5rem 1.5rem rgba(0,0,0,.13);transform:translateY(-3px);border-color:rgba(13,110,253,.3);text-decoration:none}
.mall-card .card-img-wrap{position:relative;height:140px;overflow:hidden;background:var(--bs-tertiary-bg,#f8f9fa)}
.mall-card .card-img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.mall-card:hover .card-img-wrap img{transform:scale(1.05)}
.mall-card .card-img-placeholder{display:flex;align-items:center;justify-content:center;height:100%;font-size:3rem;opacity:.25}
.mall-card .card-body{padding:.75rem}
.mall-card .card-title{font-size:.9rem;font-weight:600;margin-bottom:.4rem;line-height:1.4}
.mall-card .card-badge{position:absolute;top:.5rem;left:.5rem;z-index:1}
.mall-card .card-stock-badge{position:absolute;top:.5rem;right:.5rem;z-index:1}
.mall-card .mall-price{font-size:1rem;font-weight:700;color:#ef4444}
.mall-card .mall-meta{font-size:.75rem;color:var(--bs-secondary-color,#6c757d);margin-top:.35rem;display:flex;gap:.75rem}

/* 商品详情页 */
.mall-goods-img{border-radius:.75rem;box-shadow:0 .25rem .75rem rgba(0,0,0,.08);width:100%;max-height:260px;object-fit:contain;background:var(--bs-tertiary-bg,#f8f9fa)}
.mall-goods-img-placeholder{border-radius:.75rem;display:flex;align-items:center;justify-content:center;height:260px;background:var(--bs-tertiary-bg,#f8f9fa)}
.mall-goods-title{font-weight:700;margin-bottom:.75rem}
.mall-info-card{border-radius:.75rem}
.mall-info-card .mall-info-price{font-size:1.4rem;font-weight:700;color:#ef4444}
.mall-info-card .mall-info-label{font-size:.8rem;color:var(--bs-secondary-color,#6c757d)}

/* 合计栏 */
.mall-total{display:flex;align-items:center;gap:.5rem;font-size:1rem;padding:.75rem 1rem;background:var(--bs-tertiary-bg,#f8f9fa);border-radius:.5rem}
.mall-total strong{font-size:1.3rem;font-weight:700;color:#ef4444}

/* 空状态 */
.mall-empty{text-align:center;padding:3.5rem 1rem}
.mall-empty i{font-size:3.5rem;opacity:.2;display:block;margin-bottom:1rem}

/* 分页 */
.mall-pagination{margin-top:1.5rem;display:flex;justify-content:center}

/* 后台 */
.mall-admin-shell{padding:1rem}
.mall-card-content{word-break:break-all}
.mall-discover-entry{color:inherit}

/* Toast 通知 */
.mall-toast{position:fixed;top:1.5rem;left:50%;transform:translateX(-50%) translateY(-1rem);z-index:99999;display:flex;align-items:center;gap:.5rem;padding:.7rem 1.5rem;border-radius:.5rem;font-size:.95rem;font-weight:600;box-shadow:0 .5rem 1.5rem rgba(0,0,0,.18);opacity:0;transition:all .3s cubic-bezier(.4,0,.2,1);pointer-events:none}
.mall-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.mall-toast-success{background:linear-gradient(135deg,#198754,#20c997);color:#fff}
.mall-toast-danger{background:linear-gradient(135deg,#dc3545,#e35d6a);color:#fff}
.mall-toast i{font-size:1.3rem;line-height:1}

/* 卡密展示弹窗 */
.mall-card-modal{position:fixed;inset:0;z-index:99998;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.5);padding:1rem}
.mall-card-modal.show{display:flex}
.mall-card-modal-box{background:var(--bs-body-bg,#fff);border-radius:.75rem;padding:1.5rem;max-width:420px;width:100%;box-shadow:0 .5rem 2rem rgba(0,0,0,.25)}
.mall-card-modal-box h6{font-weight:700;margin-bottom:.75rem}
.mall-card-modal-box .card-content-box{background:var(--bs-tertiary-bg,#f8f9fa);border-radius:.5rem;padding:.75rem 1rem;font-family:monospace;font-size:.85rem;word-break:break-all;line-height:1.6;max-height:200px;overflow-y:auto;user-select:all}

/* 暗色模式适配 */
[data-bs-theme="dark"] .mall-card{border-color:rgba(255,255,255,.1)}
[data-bs-theme="dark"] .mall-card:hover{border-color:rgba(13,110,253,.4)}
[data-bs-theme="dark"] .mall-goods-img-placeholder{background:var(--bs-tertiary-bg)}
[data-bs-theme="dark"] .mall-card .card-img-placeholder{opacity:.15}
[data-bs-theme="dark"] .mall-cat-btn{background:var(--bs-tertiary-bg);border-color:rgba(255,255,255,.1)}
[data-bs-theme="dark"] .mall-cat-btn:hover{border-color:var(--bs-primary,#0d6efd)}
[data-bs-theme="dark"] .mall-card-modal-box{background:var(--bs-body-bg);box-shadow:0 .5rem 2rem rgba(0,0,0,.5)}

/* ===== 响应式 ===== */

/* 手机 (≤575px) */
@media (max-width:575.98px){
	.mall-wrap{padding:1rem .5rem}
	.mall-header{margin-bottom:1rem}
	.mall-header h2{font-size:1.1rem}
	.mall-balance-bar{gap:.75rem}
	.mall-balance-item strong{font-size:1rem}
	.mall-balance-item i{font-size:.95rem}
	.mall-category-bar{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.3rem}
	.mall-cat-btn{flex-shrink:0;font-size:.78rem;padding:.25rem .65rem}
	.mall-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}
	.mall-card .card-img-wrap{height:110px}
	.mall-card .card-body{padding:.5rem}
	.mall-card .card-title{font-size:.8rem}
	.mall-card .mall-price{font-size:.85rem}
	.mall-card .mall-meta{font-size:.68rem;flex-direction:column;gap:.15rem}
	.mall-card .card-badge{font-size:.65rem;top:.25rem;left:.25rem}
	.mall-card .card-stock-badge{top:.25rem;right:.25rem}
	.mall-goods-img{max-height:200px;border-radius:.5rem}
	.mall-goods-img-placeholder{height:200px;border-radius:.5rem}
	.mall-goods-title{font-size:1.1rem}
	.mall-info-card .mall-info-price{font-size:1.15rem}
	.mall-info-card .mall-info-label{font-size:.72rem}
	.mall-total{font-size:.9rem;padding:.5rem .75rem}
	.mall-total strong{font-size:1.1rem}
	.mall-empty{padding:2rem .5rem}
	.mall-empty i{font-size:2.5rem}
	.mall-orders-table th:nth-child(2),
	.mall-orders-table td:nth-child(2){display:none}
}

/* 平板 (576px-767px) */
@media (min-width:576px) and (max-width:767.98px){
	.mall-grid{grid-template-columns:repeat(3,1fr);gap:.625rem}
	.mall-card .card-img-wrap{height:120px}
	.mall-card .card-body{padding:.6rem}
	.mall-card .card-title{font-size:.82rem}
	.mall-card .mall-price{font-size:.9rem}
	.mall-card .mall-meta{font-size:.7rem}
	.mall-goods-img{max-height:240px}
	.mall-goods-img-placeholder{height:240px}
}

/* 小桌面 (768px-991px) */
@media (min-width:768px) and (max-width:991.98px){
	.mall-grid{grid-template-columns:repeat(4,1fr);gap:.75rem}
	.mall-card .card-img-wrap{height:130px}
}

/* 大屏 (≥1200px) */
@media (min-width:1200px){
	.mall-wrap{padding:2rem 1rem}
	.mall-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}
	.mall-card .card-img-wrap{height:160px}
}

/* ===== v1.6.0 首页通栏广告位 ===== */
.mall-ad-banner{width:100%;overflow:hidden;border-radius:.5rem;background:var(--bs-tertiary-bg,#f8f9fa)}
.mall-ad-banner>a,.mall-ad-banner>img{display:block;width:100%}
.mall-ad-banner img{display:block;width:100%;height:auto;object-fit:cover;transition:opacity .15s ease}
.mall-ad-banner>a:hover img{opacity:.92}
@media (max-width:575.98px){
	.mall-ad-banner{border-radius:.375rem}
	.mall-ad-banner img{max-height:110px}
}

[data-bs-theme="dark"] .mall-ad-banner{background:rgba(255,255,255,.04)}


/* ===== v1.6.1 前台两级分类下拉 ===== */
.mall-cat-dropdown{display:inline-flex;align-items:stretch;position:relative;vertical-align:middle}
.mall-cat-dropdown .mall-cat-main{padding-right:.6rem;border-top-right-radius:0;border-bottom-right-radius:0}
.mall-cat-dropdown .mall-cat-toggle{padding-left:.45rem;padding-right:.45rem;border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid rgba(255,255,255,.35);font-size:.72rem;line-height:1}
.mall-cat-dropdown .mall-cat-toggle::after{display:none}
.mall-cat-menu{min-width:11rem;max-width:16rem;margin-top:.25rem;border-radius:.5rem;padding:.3rem;box-shadow:0 .5rem 1.25rem rgba(0,0,0,.12);max-height:60vh;overflow-y:auto}
.mall-cat-menu .dropdown-item{border-radius:.35rem;padding:.35rem .6rem;font-size:.85rem;white-space:normal}
.mall-cat-menu .dropdown-item.active{background:var(--bs-primary,#0d6efd);color:#fff}
.mall-cat-menu .dropdown-item:active{background:var(--bs-primary,#0d6efd);color:#fff}
[data-bs-theme="dark"] .mall-cat-menu{box-shadow:0 .5rem 1.25rem rgba(0,0,0,.5)}
[data-bs-theme="dark"] .mall-cat-dropdown .mall-cat-toggle{border-left-color:rgba(0,0,0,.35)}
.mall-crumb a{color:var(--bs-secondary-color,#6c757d)}
.mall-crumb a:hover{color:var(--bs-primary,#0d6efd)}
@media (max-width:575.98px){
	.mall-cat-menu{position:fixed;left:.5rem;right:.5rem;top:auto;max-width:none}
}

/* ===== v1.6.5 商品多图画廊 + 描述插图 ===== */
.mall-gallery-main{margin-bottom:.5rem;position:relative;cursor:zoom-in}
.mall-gallery-main .mall-goods-img{width:100%;height:auto;border-radius:.5rem;object-fit:contain;display:block}
.mall-gallery-thumbs{display:flex;gap:.4rem;flex-wrap:wrap}
.mall-gallery-thumb{padding:0;border:2px solid transparent;border-radius:.4rem;background:none;overflow:hidden;line-height:0;cursor:pointer}
.mall-gallery-thumb img{width:56px;height:56px;object-fit:cover;border-radius:.3rem}
.mall-gallery-thumb.active{border-color:var(--bs-primary,#0d6efd)}
.mall-gallery-thumb:hover{border-color:rgba(13,110,253,.5)}
.mall-goods-desc img{max-width:100%;width:auto;height:auto;border-radius:.4rem;margin:.35rem 0;display:block}
.mall-goods-desc p{margin-bottom:.5rem}
/* 后台多图预览缩略图 */
.mall-img-preview .mall-img-thumb{position:relative;width:64px;height:64px;border-radius:.35rem;overflow:hidden;border:1px solid var(--bs-border-color,rgba(0,0,0,.1))}
.mall-img-preview .mall-img-thumb img{width:100%;height:100%;object-fit:cover}
.mall-img-preview .mall-img-thumb-del{position:absolute;top:0;right:0;border:0;background:rgba(220,53,69,.9);color:#fff;font-size:12px;line-height:1;padding:2px 5px;cursor:pointer;border-bottom-left-radius:.3rem}
.mall-desc-toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}

/* ===== v1.6.6 后台商品描述可视化编辑器 ===== */
.mall-editor{border:1px solid var(--bs-border-color,rgba(0,0,0,.15));border-radius:.45rem;overflow:hidden;background:var(--bs-body-bg,#fff)}
.mall-editor-toolbar{display:flex;align-items:center;gap:.15rem;flex-wrap:wrap;padding:.3rem .4rem;background:var(--bs-tertiary-bg,#f8f9fa);border-bottom:1px solid var(--bs-border-color,rgba(0,0,0,.1))}
.mall-ed-btn{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:28px;padding:0 .35rem;border:0;border-radius:.3rem;background:transparent;color:var(--bs-body-color,#212529);font-size:.95rem;cursor:pointer}
.mall-ed-btn:hover{background:rgba(13,110,253,.12);color:var(--bs-primary,#0d6efd)}
.mall-ed-btn:active{transform:scale(.96)}
.mall-ed-sep{width:1px;height:18px;background:var(--bs-border-color,rgba(0,0,0,.15));margin:0 .25rem}
.mall-editor-area{min-height:120px;max-height:420px;overflow-y:auto;padding:.6rem .75rem;outline:none;font-size:.9rem;line-height:1.7}
.mall-editor-area:empty:before{content:attr(data-placeholder);color:var(--bs-secondary-color,#adb5bd);pointer-events:none}
.mall-editor-area img{max-width:100%;height:auto;border-radius:.35rem;margin:.25rem 0}
.mall-editor-area p{margin-bottom:.5rem}
.mall-editor-area ul,.mall-editor-area ol{padding-left:1.4rem;margin-bottom:.5rem}
.mall-editor-uploading{font-size:.8rem;color:var(--bs-secondary-color,#6c757d);padding:.2rem .75rem .5rem}

/* ===== v1.6.8 后台编辑器放大/全屏 ===== */
.mall-editor-area{resize:vertical}
.mall-editor.mall-editor-fullscreen{position:fixed;inset:16px;z-index:1060;background:var(--bs-body-bg,#fff);display:flex;flex-direction:column;box-shadow:0 1rem 3rem rgba(0,0,0,.35)}
.mall-editor.mall-editor-fullscreen .mall-editor-area{flex:1 1 auto;max-height:none !important;min-height:0}
.mall-editor-exit-fs{position:absolute;top:.45rem;right:.45rem;z-index:2}
/* 发帖编辑器容器在商城后台里的高度收敛，避免占满整屏 */
.mall-desc-editor-wrap .aieditor-container{min-height:220px !important}
.mall-desc-editor-wrap .aieditor-container .aieditor{min-height:220px !important}
.mall-desc-editor-wrap .aieditor-container .aie-content{min-height:180px !important;max-height:60vh;overflow:auto !important}

/* ===== v1.7.0 后台主图 / 多图分区 ===== */
.mall-cover-preview{width:100%;height:110px;border:1px dashed var(--bs-border-color,rgba(0,0,0,.2));border-radius:.45rem;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--bs-tertiary-bg,#f8f9fa)}
.mall-cover-preview img{width:100%;height:100%;object-fit:contain}
.mall-cover-empty{font-size:.8rem;color:var(--bs-secondary-color,#adb5bd)}
.mall-img-preview{min-height:68px;padding:.35rem;border:1px dashed var(--bs-border-color,rgba(0,0,0,.15));border-radius:.45rem;align-content:flex-start}
.mall-edit-btn,.mall-ed-btn{border:1px solid var(--bs-border-color,rgba(0,0,0,.12));background:var(--bs-body-bg,#fff)}
.mall-ed-btn{min-width:32px;height:30px}
.mall-ed-btn:hover{background:rgba(13,110,253,.1);border-color:var(--bs-primary,#0d6efd)}
.mall-editor-toolbar{background:var(--bs-tertiary-bg,#f8f9fa)}

/* ===== v1.7.4 公共头部（首页 / 商品详情页共用） ===== */
.mall-header-stack{margin-bottom:.75rem}
.mall-header+.mall-category-bar{margin-top:0}
.mall-headline+.mall-category-bar{margin-top:-.5rem}
/* 详情页头部下方与「返回商城」的间距 */
.mall-header-stack+.mb-3{margin-top:-.25rem}

/* ===== v1.7.9 主图放大镜 ===== */
.mall-zoom-lens{position:absolute;width:150px;height:150px;border-radius:50%;border:2px solid rgba(255,255,255,.9);box-shadow:0 0 0 1px rgba(0,0,0,.15),0 .5rem 1.5rem rgba(0,0,0,.25);background-repeat:no-repeat;background-color:var(--bs-body-bg,#fff);pointer-events:none;display:none;z-index:5}
.mall-gallery-main.zoom-on .mall-zoom-lens{display:block}
.mall-zoom-hint{font-size:.75rem;color:var(--bs-secondary-color,#6c757d);margin:-.1rem 0 .5rem}
@media (hover:none){
	/* 触屏设备没有悬停，隐藏放大镜与提示，点击查看大图更自然 */
	.mall-zoom-lens,.mall-zoom-hint{display:none !important}
}

/* ===== v1.7.9 编辑器默认字号 16px（与发帖编辑器一致，前台描述同字号） ===== */
.mall-desc-editor-wrap .aie-content,
.mall-desc-editor-wrap .aie-content p,
.mall-desc-editor-wrap .aie-content div,
.mall-desc-editor-wrap .aie-content li{font-size:16px !important;line-height:1.75}
.mall-desc-editor-wrap .aie-content h1{font-size:24px !important}
.mall-desc-editor-wrap .aie-content h2{font-size:21px !important}
.mall-desc-editor-wrap .aie-content h3{font-size:18px !important}
.mall-desc-editor-wrap textarea.form-control{font-size:16px;line-height:1.75}
/* 自研编辑器兜底（若核心编辑器不可用） */
.mall-editor-area{font-size:16px;line-height:1.75}
.mall-editor-area p,.mall-editor-area div,.mall-editor-area li{font-size:16px}
/* 前台商品描述：统一 16px，图片按原始尺寸、超宽才压缩 */
.mall-goods-desc{font-size:16px;line-height:1.8}
.mall-goods-desc p,.mall-goods-desc div,.mall-goods-desc li,.mall-goods-desc span{font-size:inherit}
.mall-goods-desc img{max-width:100%;width:auto;height:auto}

/* ===== v1.13.0 后台：商品规格缩略图 ===== */
.mall-spec-thumb{
	width:44px;height:44px;border-radius:6px;overflow:hidden;
	border:1px solid #e2e8f0;background:#f8fafc;
	display:flex;align-items:center;justify-content:center;
}
.mall-spec-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.mall-spec-thumb__ph{font-size:11px;color:#94a3b8;}
