/* 悦己严选 - 仿APP移动端样式 */
* { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html,body { background:#f6f5f8; font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif; color:#2a2733; }
a { text-decoration:none; color:inherit; }
img { display:block; max-width:100%; }
.app { max-width:480px; margin:0 auto; min-height:100vh; padding-bottom:60px; position:relative; }

/* 顶栏 */
.topbar { position:sticky; top:0; z-index:50; display:flex; align-items:center; height:48px; background:linear-gradient(135deg,#7b4fd0,#b04fc4); color:#fff; padding:0 12px; }
.topbar-back { font-size:26px; width:30px; color:#fff; }
.topbar-title { flex:1; text-align:center; font-size:17px; font-weight:600; }
.topbar-cart { position:relative; font-size:13px; width:34px; text-align:right; color:#fff; }
.badge { position:absolute; top:-6px; right:-6px; background:#ff4d6a; color:#fff; font-size:10px; min-width:16px; height:16px; line-height:16px; border-radius:8px; text-align:center; padding:0 4px; font-style:normal; }

/* 底部Tab */
.tabbar { position:fixed; bottom:0; left:50%; transform:translateX(-50%); width:100%; max-width:480px; background:#fff; border-top:1px solid #eee; display:flex; z-index:60; }
.tabbar a { flex:1; text-align:center; padding:7px 0 8px; color:#8a8794; font-size:11px; position:relative; }
.tabbar a i { font-style:normal; display:block; font-size:19px; }
.tabbar a.on { color:#7b4fd0; font-weight:600; }
.tabbar .badge { right:calc(50% - 22px); top:2px; }

/* 轮播 */
.banner { padding:10px 12px 0; }
.banner-item img { width:100%; height:150px; object-fit:cover; border-radius:12px; }
.privacy-strip { margin:10px 12px 0; background:#fff; border-radius:10px; text-align:center; font-size:12px; color:#7b4fd0; padding:8px 0; letter-spacing:1px; }

/* 分类宫格 */
.cat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px 4px; background:#fff; margin:10px 12px 0; border-radius:12px; padding:14px 6px; }
.cat-item { display:flex; flex-direction:column; align-items:center; gap:6px; }
.cat-ico { width:46px; height:46px; border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:20px; font-weight:700; color:#7b4fd0; }
.cat-name { font-size:12px; color:#555; }

/* 商品区块 */
.section { margin-top:14px; }
.sec-head { display:flex; justify-content:space-between; align-items:center; padding:0 14px 8px; font-size:15px; }
.sec-head a { color:#999; font-size:12px; }
.grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:0 12px; }
.card { background:#fff; border-radius:12px; overflow:hidden; }
.card img { width:100%; aspect-ratio:1/1; object-fit:cover; }
.card-body { padding:8px 10px 10px; }
.card-name { font-size:13px; line-height:1.4; height:36px; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.card-price { margin-top:6px; display:flex; align-items:baseline; gap:6px; }
.card-price em { font-style:normal; color:#ff2e63; font-weight:700; font-size:17px; }
.card-price del { color:#bbb; font-size:11px; }

/* 分类页 */
.cate-wrap { display:flex; min-height:calc(100vh - 48px); }
.cate-side { width:92px; background:#fff; }
.cate-side a { display:block; padding:14px 8px; font-size:13px; color:#666; border-left:3px solid transparent; }
.cate-side a.on { color:#7b4fd0; font-weight:600; border-left-color:#7b4fd0; background:#faf7ff; }
.cate-main { flex:1; padding:10px; }
.pager { display:flex; gap:8px; justify-content:center; padding:14px 0; flex-wrap:wrap; }
.pager a { background:#fff; padding:6px 12px; border-radius:8px; font-size:13px; }
.pager a.on { background:#7b4fd0; color:#fff; }

/* 详情页 */
.gallery-main img { width:100%; aspect-ratio:1/1; object-fit:cover; }
.gallery-thumbs { display:flex; gap:8px; padding:10px 12px; overflow-x:auto; background:#fff; }
.gallery-thumbs img { width:56px; height:56px; object-fit:cover; border-radius:8px; border:2px solid transparent; }
.pd-box { background:#fff; margin:10px 12px 0; border-radius:12px; padding:14px; }
.pd-price { color:#ff2e63; }
.pd-price b { font-size:28px; }
.pd-price .cur { font-size:16px; }
.mp { color:#bbb; font-size:12px; margin-left:8px; }
.pd-name { font-size:17px; font-weight:600; margin-top:8px; line-height:1.45; }
.pd-tags { display:flex; gap:6px; margin-top:10px; flex-wrap:wrap; }
.pd-tags span { font-size:11px; color:#7b4fd0; background:#f3ecff; border-radius:6px; padding:3px 8px; }
.pd-meta { font-size:12px; color:#999; margin-top:10px; }
.pd-service { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; margin:10px 12px 0; background:#fff; border-radius:12px; padding:12px 10px; }
.pd-service div { text-align:center; font-size:11px; color:#888; line-height:1.6; }
.pd-service b { color:#444; font-size:12px; }
.pd-detail { background:#fff; margin:10px 12px 0; border-radius:12px; padding:14px; }
.pd-desc { font-size:13px; color:#555; line-height:1.8; }
.pd-img { margin-top:12px; border-radius:10px; }

/* 详情购买栏 */
.buybar { position:fixed; bottom:0; left:50%; transform:translateX(-50%); width:100%; max-width:480px; background:#fff; border-top:1px solid #eee; display:flex; align-items:center; padding:8px 10px; gap:8px; z-index:60; }
.bb-cart { text-align:center; font-size:10px; color:#777; width:44px; }
.bb-cart i { font-style:normal; font-size:20px; display:block; }
.bb-form { flex:1; display:flex; }
.btn-add { flex:1; background:#ffd9e8; color:#e0336f; border:none; border-radius:20px 0 0 20px; padding:11px 0; font-size:14px; font-weight:600; }
.btn-buy { flex:1; background:linear-gradient(135deg,#7b4fd0,#b04fc4); color:#fff; border:none; border-radius:0 20px 20px 0; padding:11px 0; font-size:14px; font-weight:600; }
.btn-buy.big { border-radius:22px; display:block; width:100%; margin-bottom:10px; }
.btn-buy.sm { border-radius:14px; padding:6px 14px; }

/* 购物车 */
.cart-list { padding:12px; display:flex; flex-direction:column; gap:10px; }
.cart-item { display:flex; gap:10px; background:#fff; border-radius:12px; padding:10px; }
.cart-item > a > img { width:86px; height:86px; border-radius:10px; object-fit:cover; }
.ci-body { flex:1; }
.ci-name { font-size:13px; line-height:1.4; height:36px; overflow:hidden; }
.ci-price { color:#ff2e63; font-weight:700; margin-top:4px; }
.ci-ops { display:flex; justify-content:space-between; align-items:center; margin-top:6px; }
.ci-ops form { display:flex; align-items:center; gap:0; }
.ci-ops button { width:28px; height:28px; border:1px solid #ddd; background:#fafafa; font-size:15px; color:#555; }
.ci-qty { min-width:34px; text-align:center; font-size:14px; }
.ci-del { border:none; background:none; color:#999; font-size:12px; }
.cart-bar { position:fixed; bottom:56px; left:50%; transform:translateX(-50%); width:calc(100% - 24px); max-width:456px; background:#fff; border-radius:24px; box-shadow:0 4px 20px rgba(0,0,0,.12); display:flex; align-items:center; justify-content:space-between; padding:8px 8px 8px 18px; z-index:55; }
.cb-total { font-size:13px; color:#666; }
.cb-total em { color:#ff2e63; font-size:20px; font-weight:700; font-style:normal; }
.cart-bar .btn-buy { border-radius:20px; padding:10px 22px; }

/* 通用 */
.empty { text-align:center; padding:70px 20px; color:#999; font-size:14px; }
.empty p { margin-bottom:16px; }
.empty-sm { background:#fff; border-radius:12px; padding:18px; text-align:center; color:#999; font-size:13px; }
.btn-main { display:inline-block; background:linear-gradient(135deg,#7b4fd0,#b04fc4); color:#fff; border-radius:20px; padding:10px 30px; font-size:14px; }
.err { background:#ffe8ee; color:#d63384; border-radius:10px; padding:12px; font-size:13px; margin:12px; line-height:1.6; }
.footer-note { text-align:center; color:#bbb; font-size:11px; padding:26px 0 20px; }

/* 结算页 */
.addr-box { margin:12px; }
.sec-title-sm { font-size:14px; font-weight:600; padding:4px 2px 10px; }
.addr-item { display:flex; align-items:center; background:#fff; border-radius:12px; padding:12px; margin-bottom:8px; font-size:13px; line-height:1.6; }
.addr-item.on { outline:2px solid #b04fc4; }
.addr-sel { flex:1; }
.addr-del { color:#999; font-size:12px; padding:6px 8px; }
.addr-add { background:#fff; border-radius:12px; padding:12px; margin-top:6px; font-size:14px; }
.addr-add summary { color:#7b4fd0; font-weight:600; cursor:pointer; }
.addr-add form { display:flex; flex-direction:column; gap:8px; margin-top:10px; }
.addr-add input { border:1px solid #e3e0ea; border-radius:8px; padding:10px; font-size:13px; }
.btn-sub { background:#7b4fd0; color:#fff; border:none; border-radius:8px; padding:10px; font-size:14px; }
.order-items { background:#fff; border-radius:12px; margin:0 12px 12px; padding:6px 12px; }
.oi-row { display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid #f3f1f6; }
.oi-row img { width:56px; height:56px; border-radius:8px; object-fit:cover; }
.oi-body { flex:1; }
.oi-name { font-size:13px; line-height:1.4; }
.oi-nums { color:#999; font-size:12px; margin-top:3px; }
.oi-price { font-weight:700; font-size:14px; }
.checkout-form { margin:12px; }
.checkout-form input[name=remark] { width:100%; border:1px solid #e3e0ea; border-radius:10px; padding:12px; font-size:13px; margin-bottom:10px; }

/* 订单 */
.tabs { display:flex; background:#fff; padding:0 6px; position:sticky; top:48px; z-index:40; }
.tabs a { flex:1; text-align:center; padding:12px 0; font-size:13px; color:#777; border-bottom:2px solid transparent; }
.tabs a.on { color:#7b4fd0; font-weight:600; border-bottom-color:#7b4fd0; }
.order-card { background:#fff; border-radius:12px; margin:12px; padding:12px; }
.oc-head { display:flex; justify-content:space-between; font-size:12px; color:#999; padding-bottom:8px; }
.oc-head em { font-style:normal; font-weight:600; }
.st-0 { color:#ff8a00; } .st-1 { color:#7b4fd0; } .st-2 { color:#2e8bff; } .st-3 { color:#22b07d; } .st-4 { color:#aaa; }
.oc-foot { display:flex; justify-content:flex-end; align-items:center; gap:10px; padding-top:10px; }
.oc-total { font-size:13px; color:#666; }
.oc-total em { color:#ff2e63; font-weight:700; font-style:normal; font-size:16px; }
.btn-plain { color:#888; border:1px solid #ddd; border-radius:14px; padding:6px 14px; font-size:13px; }
.btn-plain.sm { padding:5px 12px; font-size:12px; }
.oc-addr, .oc-remark, .oc-times { font-size:12px; color:#666; line-height:1.7; padding:6px 0; border-bottom:1px solid #f3f1f6; }
.oc-times { border-bottom:none; color:#999; }
.order-actions { display:flex; gap:10px; justify-content:center; padding:10px 0 30px; }

/* 支付页 */
.pay-page { padding:40px 24px; text-align:center; }
.pay-amount span { display:block; font-size:13px; color:#999; margin-bottom:8px; }
.pay-amount b { font-size:40px; color:#2a2733; }
.pay-no { font-size:12px; color:#aaa; margin:10px 0 30px; }
