/* 积分商城 oulin_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)}

/* 余额栏 */
.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}
}
