/* ============ 商城样式(移动优先 + 桌面自适应) ============ */
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;background:#f5f5f7;color:#222;font-size:14px;line-height:1.5}
a{color:#2f6fed;text-decoration:none}
img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit;font-size:14px}
.wrap{max-width:1180px;margin:0 auto;padding:0 10px}

/* ---- 顶部 ---- */
.m-head{background:#fff;box-shadow:0 1px 6px rgba(0,0,0,.06);position:sticky;top:0;z-index:60}
.m-head-in{max-width:1180px;margin:0 auto;padding:8px 10px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.m-logo{font-size:19px;font-weight:700;color:#ff4d4f;white-space:nowrap}
.m-search{flex:1 1 240px;display:flex;align-items:stretch;min-width:210px;border:2px solid #ff4d4f;border-radius:18px;overflow:hidden;background:#fff}
.m-search .cat-sel{flex:0 0 auto;max-width:106px;border:0;background:#f6f7f8;font-size:12px;color:#444;padding:0 6px 0 10px;outline:none;cursor:pointer;border-right:1px solid #eee}
.m-search input{flex:1;border:0;padding:7px 10px;outline:none;min-width:0;font-size:14px;background:#fff}
.m-search button{border:0;background:#ff4d4f;color:#fff;padding:0 16px;font-size:14px;cursor:pointer}
.m-tabs{display:flex;align-items:center;gap:2px}
a.m-tab-ic{position:relative;display:inline-flex;align-items:center;gap:5px;padding:6px 13px;border-radius:16px;background:#f2f3f5;color:#555;font-size:13px;white-space:nowrap;margin:0 3px;transition:background .15s,color .15s}
a.m-tab-ic .ic{font-size:14px;line-height:1}
a.m-tab-ic:hover{color:#ff4d4f}
a.m-tab-ic.on{background:#ff4d4f;color:#fff;font-weight:600}
.m-cart-num{position:absolute;top:-4px;right:-2px;min-width:16px;height:16px;line-height:15px;border-radius:8px;background:#ff7a1a;color:#fff;font-size:10px;font-weight:600;text-align:center;padding:0 4px;border:1px solid #fff;box-sizing:border-box}
.m-user{display:flex;align-items:center;gap:8px;font-size:13px;white-space:nowrap}
.m-user a{color:#333}
.m-user .m-btn-reg{background:#ff4d4f;color:#fff;padding:4px 12px;border-radius:14px}
.m-user-n{color:#666}
@media (max-width:760px){
  .m-tabs{order:4;width:100%;justify-content:space-between;gap:0;margin-top:2px}
  .m-tabs a.m-tab-ic{flex:1;justify-content:center;padding:8px 2px;margin:0;border-radius:0;background:transparent}
  .m-tabs a.m-tab-ic.on{background:transparent;color:#ff4d4f;font-weight:600;box-shadow:none}
  .m-cart-num{right:4px;top:0}
}

/* ---- 通用卡片/按钮 ---- */
.btn{display:inline-block;border:0;border-radius:6px;padding:10px 22px;font-size:15px;text-align:center}
.btn-primary{background:#ff4d4f;color:#fff}
.btn-warn{background:#fa8c16;color:#fff}
.btn-gray{background:#e5e5e5;color:#333}
.btn-block{display:block;width:100%}
.btn-line{background:#fff;border:1px solid #ff4d4f;color:#ff4d4f}
.muted{color:#999;font-size:12px}
.price{color:#ff4d4f;font-weight:700}
.tag{display:inline-block;background:#f0f0f0;color:#555;border-radius:4px;padding:0 6px;font-size:12px;margin-left:6px}

/* ---- 商品网格 ---- */
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:10px 0}
@media (min-width:640px){.grid{grid-template-columns:repeat(3,1fr);gap:14px}}
@media (min-width:900px){.grid{grid-template-columns:repeat(4,1fr)}}
.p-card{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.05);transition:.2s}
.p-card:hover{transform:translateY(-2px);box-shadow:0 4px 14px rgba(0,0,0,.1)}
.p-card img{width:100%;aspect-ratio:1/1;object-fit:cover;background:#f0f0f0}
.p-card .p-b{padding:8px 10px}
.p-card .p-t{font-size:13px;height:38px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.p-card .p-m{display:flex;align-items:baseline;justify-content:space-between;margin-top:6px}
.p-card .p-c{color:#999;font-size:11px}
.cats{display:flex;gap:8px;overflow-x:auto;padding:10px 0;white-space:nowrap}
.cats a{padding:5px 14px;background:#fff;border-radius:14px;font-size:13px;color:#333}
.cats a.on{background:#ff4d4f;color:#fff}

/* ---- 商品详情 ---- */
.pd-top{display:flex;gap:14px;background:#fff;padding:14px;border-radius:10px;flex-wrap:wrap;margin-top:10px}
.pd-img{flex:0 0 auto;width:100%;max-width:340px;margin:0 auto}
.pd-img img{width:100%;border-radius:10px}
.pd-info{flex:1 1 300px;min-width:260px}
.pd-title{font-size:18px;font-weight:600}
.pd-code{color:#888;font-size:13px;margin:4px 0}
.pd-price-row{background:#fff5f5;border-radius:8px;padding:10px 12px;margin:10px 0}
.pd-price-row .price{font-size:24px}
.pd-old{text-decoration:line-through;color:#aaa;font-size:13px;margin-left:8px}
.opt-group{margin:12px 0}
.opt-name{font-size:13px;color:#555;margin-bottom:6px}
.opt-vals{display:flex;flex-wrap:wrap;gap:8px}
.opt-vals button{border:1px solid #ddd;background:#fff;padding:6px 14px;border-radius:16px;font-size:13px}
.opt-vals button.on{border-color:#ff4d4f;color:#ff4d4f;background:#fff5f5}
.qty-row{display:flex;align-items:center;gap:10px;margin:12px 0}
.qty-row button{width:30px;height:30px;border:1px solid #ddd;background:#fff;border-radius:6px;font-size:16px}
.qty-row .qty{min-width:40px;text-align:center;font-size:16px;font-weight:600}
.buy-bar{display:flex;gap:10px;margin-top:6px}
.buy-bar .btn{flex:1;border-radius:22px;padding:12px}
.desc{margin-top:12px;background:#fff;border-radius:10px;padding:14px}
.desc h3{font-size:15px;margin-bottom:8px;border-left:3px solid #ff4d4f;padding-left:8px}
.p-detail p{margin:4px 0;color:#444;line-height:1.8;word-break:break-word}
.p-detail .dt-img{margin:10px 0;text-align:center}
.p-detail img{max-width:100%;border-radius:8px}

/* ---- 表单/登录注册 ---- */
.form-card{background:#fff;border-radius:12px;max-width:420px;margin:30px auto;padding:24px}
.form-card h2{font-size:18px;margin-bottom:16px;text-align:center}
.f-item{margin-bottom:14px}
.f-item label{display:block;font-size:13px;color:#555;margin-bottom:6px}
.f-item input,.f-item select,.f-item textarea{width:100%;border:1px solid #ddd;border-radius:8px;padding:10px 12px;outline:none}
.f-item input:focus{border-color:#ff4d4f}
.f-tip{font-size:12px;color:#999;margin-top:4px}
.err{color:#ff4d4f;font-size:13px;margin-bottom:8px}
.ok{color:#52c41a;font-size:13px;margin-bottom:8px}

/* ---- 购物车 ---- */
.cart-bar{background:#fff;border-radius:10px;margin:10px 0;overflow:hidden}
.cart-item{display:flex;gap:10px;padding:12px;border-bottom:1px solid #f0f0f0;align-items:center}
.cart-item img{width:72px;height:72px;border-radius:8px;object-fit:cover}
.cart-info{flex:1;min-width:0}
.cart-title{font-size:14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cart-spec{color:#999;font-size:12px}
.cart-qty{display:flex;align-items:center;gap:6px;margin-top:4px}
.cart-qty button{width:24px;height:24px;border:1px solid #ddd;background:#fff;border-radius:4px}
.cart-right{text-align:right}
.cart-del{color:#999;font-size:12px}
.cart-foot{position:sticky;bottom:0;background:#fff;display:flex;align-items:center;padding:10px 14px;gap:12px;box-shadow:0 -2px 8px rgba(0,0,0,.05)}
.cart-foot .sum{flex:1;font-size:15px}
.empty{padding:60px 10px;text-align:center;color:#999}
.empty .big{font-size:44px}

/* ---- 订单 ---- */
.order-card{background:#fff;border-radius:10px;margin:10px 0;overflow:hidden}
.order-head{display:flex;justify-content:space-between;padding:10px 12px;background:#fafafa;font-size:13px;color:#666}
.order-st{color:#ff4d4f;font-weight:600}
.order-item{display:flex;gap:10px;padding:12px;border-bottom:1px solid #f5f5f5}
.order-item img{width:64px;height:64px;border-radius:8px;object-fit:cover}
.order-act{padding:10px 12px;text-align:right}
.st-pay{color:#fa8c16}.st-ship{color:#2f6fed}.st-done{color:#52c41a}.st-cancel{color:#999}

/* ---- 聊天 ---- */
.chat-body{max-width:860px;margin:0 auto;background:#fff;border-radius:12px;height:calc(100vh - 200px);min-height:380px;max-height:76vh;display:flex;flex-direction:column;margin-top:10px;overflow:hidden;box-shadow:0 1px 6px rgba(0,0,0,.06)}
.chat-head{padding:10px 14px;border-bottom:1px solid #eee;font-weight:600;display:flex;justify-content:space-between}
.chat-msgs{flex:1;min-height:0;padding:12px;overflow-y:auto;background:#f7f7f9}
.msg-row{display:flex;margin-bottom:10px}
.msg-row.mine{justify-content:flex-end}
.msg-b{max-width:76%;background:#fff;padding:8px 12px;border-radius:10px;box-shadow:0 1px 2px rgba(0,0,0,.05);white-space:pre-wrap;word-break:break-word}
.msg-row.mine .msg-b{background:#95ec69}
.msg-b img{max-width:200px;border-radius:8px;margin-top:4px}
.msg-time{font-size:11px;color:#bbb;margin-top:4px;text-align:right}
.chat-send{border-top:1px solid #eee;display:flex;align-items:flex-end;gap:8px;padding:10px}
.chat-send textarea{flex:1;border:1px solid #ddd;border-radius:8px;padding:8px 10px;resize:none;height:44px;outline:none}
.chat-send button{background:#ff4d4f;color:#fff;border:0;border-radius:8px;padding:10px 20px}
.chat-tool{font-size:12px;color:#888;padding:2px 12px}
.unread-dot{display:inline-block;background:#ff4d4f;color:#fff;border-radius:8px;padding:0 5px;font-size:11px;margin-left:3px}

/* 后台聊天/买家列表等表格型页面 */
.tbl{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden}
.tbl th,.tbl td{padding:8px 10px;border-bottom:1px solid #f0f0f0;text-align:left;font-size:13px}
.tbl th{background:#fafafa;font-weight:600}
.session-row{cursor:pointer}
.session-row.on{background:#fff7e6}
.session-row .unread{background:#ff4d4f;color:#fff;border-radius:9px;padding:0 6px;font-size:11px}

/* ---- 首页: 公告条 / 中央大搜索 / 区块标题 ---- */
.notice{display:flex;align-items:center;gap:8px;background:linear-gradient(90deg,#fff7e6,#fff1cc);border:1px solid #ffe3a3;border-radius:10px;padding:9px 12px;margin-top:10px;font-size:13px;color:#7a4b00}
.notice .n-ic{flex:0 0 auto}
.notice .n-txt{flex:1;line-height:1.6;word-break:break-all}
.notice .n-fold{border:0;background:transparent;color:#b8860b;font-size:12px;cursor:pointer;flex:0 0 auto;padding:2px 4px}
.notice-folded{padding:10px 4px;text-align:center}
.notice-folded a{color:#b8860b;font-size:13px}
.hero-search{max-width:700px;margin:18px auto 6px;background:#fff;border-radius:14px;padding:22px 18px 14px;text-align:center;box-shadow:0 2px 12px rgba(0,0,0,.05)}
.hero-search h2{margin-bottom:12px}
.hero-form{display:flex;gap:0;max-width:640px;margin:0 auto;border:2px solid #ff4d4f;border-radius:24px;overflow:hidden;background:#fff}
.hero-form select{border:0;background:#f6f7f8;color:#444;font-size:13px;padding:0 4px 0 12px;max-width:96px;outline:none;cursor:pointer;border-right:1px solid #eee}
.hero-form input{flex:1;border:0;padding:12px 12px;outline:none;font-size:15px;min-width:0}
.hero-form button{border:0;background:#ff4d4f;color:#fff;padding:0 26px;font-size:15px;cursor:pointer}
.sec-title{font-size:16px;margin:16px 0 2px;padding-left:10px;border-left:4px solid #ff4d4f}
@media (max-width:520px){.hero-search{margin-top:10px;padding:16px 10px}.hero-form select{max-width:74px;padding-left:6px;font-size:12px}.hero-form button{padding:0 16px}}

/* 结算-地址选择 */
.addr-opt{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid #e6e6e6;border-radius:8px;margin:8px 0;cursor:pointer;font-size:14px;line-height:1.7;transition:border-color .15s,background .15s}
.addr-opt input{margin-top:4px}
.addr-opt.addr-new-opt{color:#ff4d4f;justify-content:center}
.addr-opt.addr-new-opt span{font-weight:600}

/* 其它 */
.m-foot{text-align:center;color:#999;font-size:12px;padding:20px 10px 40px}
.page-tip{color:#999;padding:6px 2px;font-size:13px}
.breadcrumb{font-size:13px;padding:8px 0;color:#666}
.toast{position:fixed;top:16%;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.75);color:#fff;padding:10px 22px;border-radius:20px;z-index:99;display:none;font-size:14px}
.pager{text-align:center;padding:12px}
.pager a,.pager span{display:inline-block;padding:4px 12px;margin:0 2px;border-radius:6px;background:#fff;color:#333}
.pager .cur{background:#ff4d4f;color:#fff}
