/* niuyang 买家端 · 方案A 鲜选暖市集 */
* { margin:0; padding:0; box-sizing:border-box; -webkit-font-smoothing:antialiased; tap-highlight-color:transparent; }
html,body { height:100%; }
body { background:#FAF7F1; font-family:"PingFang SC","Microsoft YaHei",sans-serif; color:#33291A; }
#app { max-width:520px; margin:0 auto; min-height:100vh; display:flex; flex-direction:column; position:relative; }

/* 顶栏 */
.topbar { flex:none; height:52px; display:flex; align-items:center; gap:8px;
          padding:0 16px; background:rgba(250,247,241,.96); position:sticky; top:0; z-index:30; }
.topbar .back { width:34px; height:34px; border:none; background:none; font-size:20px; color:#33291A; }
.topbar .tt { flex:1; text-align:center; font-size:16px; font-weight:800; }
.topbar .sp { width:34px; }
.page { flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch; }
.page-pad { padding-bottom:110px; }
.empty { text-align:center; color:#B3A88E; font-size:13px; padding:70px 0; line-height:2; }
.empty .e { font-size:44px; display:block; }

/* 首页 */
.hd { padding:8px 20px 12px; }
.hd .brand { display:flex; align-items:center; gap:10px; }
.hd .logo { width:40px; height:40px; border-radius:12px; background:linear-gradient(135deg,#B5382F,#8A2420);
            color:#fff; font-size:20px; display:flex; align-items:center; justify-content:center; }
.hd .bt { flex:1; }
.hd .bt b { font-size:18px; color:#33291A; letter-spacing:1px; display:block; }
.hd .bt span { font-size:10px; color:#A08F6E; letter-spacing:3px; }
.search { margin:12px 20px 0; height:40px; border-radius:20px; background:#F0E9DA;
          display:flex; align-items:center; padding:0 18px; color:#A79A80; font-size:13px; gap:8px; }
.search input { flex:1; border:none; background:none; outline:none; font-size:13px; color:#33291A; }
.notice { margin:12px 20px 0; border-radius:10px; background:#FBF1DC; border:1px solid #EFDFB8;
          color:#8A6D1F; font-size:12px; display:flex; align-items:center; padding:9px 14px; gap:8px; }
.cats { display:flex; gap:10px; margin:14px 20px 0; overflow-x:auto; }
.cats .c { flex:none; min-width:64px; height:34px; border-radius:17px; background:#F0E9DA; color:#6D6047;
           font-size:13px; display:flex; align-items:center; justify-content:center; padding:0 14px; }
.cats .c.on { background:#8A6D1F; color:#FFF7E6; font-weight:700; }
.grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; padding:16px 20px 0; }
.card { background:#fff; border-radius:18px; overflow:hidden; box-shadow:0 4px 14px rgba(90,70,30,.07); }
.ph { height:150px; position:relative; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:6px; overflow:hidden;
      background:linear-gradient(140deg,#C05A3A,#8E3B2B); }
.ph img { width:100%; height:100%; object-fit:cover; }
.ph b { color:rgba(255,255,255,.94); font-size:20px; letter-spacing:3px; text-shadow:0 2px 8px rgba(0,0,0,.18); }
.ph i { font-style:normal; font-size:10px; color:rgba(255,255,255,.65); letter-spacing:2px; }
.ph .vid { position:absolute; right:10px; top:10px; background:rgba(0,0,0,.42); color:#fff;
           border-radius:12px; font-size:10px; padding:3px 9px; }
.ph .tag { position:absolute; left:10px; top:10px; background:rgba(181,56,47,.92); color:#fff;
           border-radius:8px; font-size:10px; padding:3px 8px; }
.info { padding:12px 14px 14px; }
.info .nm { font-size:14px; color:#33291A; font-weight:700; line-height:1.35; }
.info .sp { font-size:11px; color:#A79A80; margin-top:3px; }
.info .pr { margin-top:8px; display:flex; align-items:baseline; gap:4px; }
.info .pr b { color:#B5382F; font-size:19px; }
.info .pr span { color:#B5382F; font-size:11px; }
.info .pr .lv { margin-left:auto; font-style:normal; font-size:10px; color:#8A6D1F; background:#F7EDD3; padding:2px 7px; border-radius:6px; }
.info .pr.lock b { color:#B3A88E; font-size:15px; letter-spacing:2px; }
.info .pr.lock span { color:#B3A88E; }

/* 详情 */
.dph { height:340px; position:relative; background:linear-gradient(150deg,#C05A3A,#8E3B2B); overflow:hidden; }
.dph img { width:100%; height:100%; object-fit:cover; }
.dph video { width:100%; height:100%; object-fit:cover; }
.dph .phhold { width:100%; height:100%; display:flex; align-items:center; justify-content:center;
               flex-direction:column; gap:8px; }
.dph .phhold b { color:rgba(255,255,255,.95); font-size:34px; letter-spacing:6px; text-shadow:0 3px 12px rgba(0,0,0,.25); }
.dph .phhold i { font-style:normal; color:rgba(255,255,255,.7); font-size:12px; letter-spacing:3px; }
.dph .vidbtn { position:absolute; right:14px; bottom:20px; background:rgba(0,0,0,.42); color:#fff;
               border:none; border-radius:14px; font-size:11px; padding:5px 12px; }
.dph .back { position:absolute; left:12px; top:12px; width:34px; height:34px; border-radius:17px;
             background:rgba(0,0,0,.35); color:#fff; border:none; font-size:17px; }
.dots { display:flex; gap:6px; justify-content:center; margin-top:-20px; position:relative; z-index:2; }
.dots i { width:6px; height:6px; border-radius:3px; background:rgba(255,255,255,.6); }
.dots i.on { width:16px; background:#fff; }
.dbody { padding:18px 20px 34px; }
.dbody h2 { font-size:21px; color:#2C2417; font-weight:800; }
.dbody .spc { color:#9C8F76; font-size:13px; margin-top:6px; }
.pricebar { margin-top:14px; display:flex; align-items:baseline; gap:6px; }
.pricebar b { color:#B5382F; font-size:32px; }
.pricebar span { color:#B5382F; font-size:13px; }
.pricebar .lv { margin-left:auto; font-style:normal; background:#F7EDD3; color:#8A6D1F; font-size:11px; padding:4px 10px; border-radius:8px; }
.pricebar.lock b { color:#B3A88E; font-size:22px; letter-spacing:3px; }
.pricebar.lock span { color:#B3A88E; }
.lvnote { margin-top:8px; font-size:11px; color:#A79A80; }
.moq { margin-top:14px; background:#FBF1DC; border:1px dashed #E2CB93; border-radius:12px;
       padding:10px 14px; font-size:12px; color:#8A6D1F; display:flex; justify-content:space-between; }
.sect { margin-top:18px; }
.sect .t { font-size:15px; font-weight:800; color:#33291A; display:flex; align-items:center; gap:8px; }
.sect .t::before { content:""; width:4px; height:16px; border-radius:2px; background:#8A6D1F; }
.sect .para { margin-top:10px; font-size:13px; color:#7A6E58; line-height:1.8; white-space:pre-wrap; }
.buybar { flex:none; background:#fff; border-top:1px solid #EEE5D4; display:flex; align-items:center;
          padding:12px 18px calc(12px + env(safe-area-inset-bottom)); gap:12px; position:sticky; bottom:0; z-index:20; }
.buybar .cart { width:52px; text-align:center; font-size:10px; color:#9C8F76; position:relative; background:none; border:none; }
.buybar .cart .ic { font-size:22px; display:block; }
.buybar .cart .bdg { position:absolute; right:2px; top:-6px; background:#B5382F; color:#fff; border-radius:8px; font-size:10px; padding:0 5px; }
.buybar .b1 { flex:1; height:46px; border-radius:23px; border:2px solid #8A6D1F; color:#8A6D1F;
              background:#fff; font-size:15px; font-weight:700; }
.buybar .b2 { flex:1; height:46px; border-radius:23px; background:linear-gradient(90deg,#B5382F,#92261F);
              color:#fff; font-size:15px; font-weight:700; border:none; }
.buybar .b2:disabled, .btn:disabled { opacity:.5; }

/* 购物车 */
.pgt { padding:16px 20px 6px; font-size:18px; font-weight:800; }
.moqbar { margin:12px 20px 0; background:#FBF1DC; border-radius:12px; padding:10px 14px; }
.moqbar .txt { font-size:12px; color:#8A6D1F; display:flex; justify-content:space-between; }
.moqbar .trk { height:6px; background:#EFE4C8; border-radius:3px; margin-top:8px; overflow:hidden; }
.moqbar .trk i { display:block; height:6px; background:#C8A24B; border-radius:3px; transition:width .3s; }
.citems { padding:6px 20px; }
.cit { background:#fff; border-radius:16px; padding:14px; display:flex; gap:12px; margin-top:12px; align-items:center; }
.cthumb { width:64px; height:64px; border-radius:12px; flex:none; overflow:hidden;
          background:linear-gradient(140deg,#C05A3A,#8E3B2B); display:flex; align-items:center;
          justify-content:center; color:#fff; font-size:13px; }
.cthumb img { width:100%; height:100%; object-fit:cover; }
.cinfo { flex:1; min-width:0; }
.cinfo .nm { font-size:14px; font-weight:700; color:#33291A; }
.cinfo .sp { font-size:11px; color:#A79A80; margin-top:2px; }
.cinfo .r { display:flex; justify-content:space-between; align-items:center; margin-top:8px; }
.cinfo .r b { color:#B5382F; font-size:16px; }
.qc { display:flex; align-items:center; gap:10px; color:#9C8F76; font-size:13px; }
.qc b { width:24px; height:24px; border-radius:12px; background:#F0E9DA; display:flex; align-items:center;
        justify-content:center; color:#6D6047; font-size:14px; font-weight:400; }
.setbar { background:#fff; border-top:1px solid #EEE5D4; display:flex; align-items:center;
          padding:12px 20px calc(12px + env(safe-area-inset-bottom)); position:sticky; bottom:0; z-index:20; }
.setbar .sum { flex:1; }
.setbar .sum .l { font-size:11px; color:#A79A80; }
.setbar .sum b { color:#B5382F; font-size:24px; }
.setbar .go { width:150px; height:46px; border-radius:23px; border:none; color:#fff; font-size:16px; font-weight:700;
              background:linear-gradient(90deg,#B5382F,#92261F); }
.setbar .go:disabled { opacity:.5; }

/* 确认订单 / 表单 */
.acard { margin:12px 20px 0; background:#fff; border-radius:16px; padding:16px; }
.acard .t { font-size:13px; font-weight:800; color:#33291A; margin-bottom:10px; display:flex; gap:8px; align-items:center; }
.addr .who { font-size:15px; font-weight:800; color:#33291A; }
.addr .who span { font-weight:400; color:#9C8F76; font-size:12px; margin-left:8px; }
.addr .ad { font-size:12px; color:#7A6E58; margin-top:5px; line-height:1.6; }
.addr.sel { border:2px solid #8A6D1F; }
.oitem { display:flex; gap:10px; padding:10px 0; border-bottom:1px dashed #F0E9DA; align-items:center; }
.oitem:last-child { border:none; }
.oitem .othumb { width:48px; height:48px; border-radius:10px; flex:none; overflow:hidden;
                 background:linear-gradient(140deg,#C05A3A,#8E3B2B); display:flex; align-items:center;
                 justify-content:center; color:#fff; font-size:11px; }
.oitem .othumb img { width:100%; height:100%; object-fit:cover; }
.oitem .nm { font-size:13px; font-weight:700; color:#33291A; }
.oitem .sp { font-size:11px; color:#A79A80; margin-top:2px; }
.oitem .rt { text-align:right; margin-left:auto; }
.oitem .rt b { color:#B5382F; font-size:14px; }
.oitem .rt span { display:block; font-size:11px; color:#A79A80; }
.fee { display:flex; justify-content:space-between; font-size:13px; color:#7A6E58; padding:7px 0; }
.fee.total { border-top:1px solid #F0E9DA; margin-top:6px; padding-top:12px; color:#33291A; font-weight:800; }
.fee.total b { color:#B5382F; font-size:20px; }
.payopt { display:flex; align-items:center; gap:12px; padding:13px 0; border-bottom:1px solid #F5EFE2; cursor:pointer; }
.payopt:last-child { border:none; }
.radio { width:20px; height:20px; border-radius:10px; border:2px solid #C9BB9C; flex:none; }
.radio.on { border:7px solid #8A6D1F; }
.payopt .nm { font-size:14px; font-weight:700; color:#33291A; }
.payopt .ds { font-size:11px; color:#A79A80; margin-top:2px; }
.payopt .nm small { font-weight:400; color:#8A6D1F; background:#F7EDD3; border-radius:6px; padding:1px 6px; margin-left:6px; font-size:10px; }
.bigbtn { display:block; margin:22px 20px 30px; height:48px; border-radius:24px; border:none; color:#fff;
          font-size:16px; font-weight:700; background:linear-gradient(90deg,#B5382F,#92261F); width:calc(100% - 40px); }
.bigbtn:disabled { opacity:.5; }
.ghostbtn { display:block; margin:14px 20px 0; height:44px; border-radius:22px; border:2px solid #8A6D1F;
            color:#8A6D1F; background:#fff; font-size:14px; font-weight:700; width:calc(100% - 40px); }

/* 表单 */
.frm { padding:6px 20px; }
.fld { margin-top:14px; background:#fff; border-radius:14px; padding:12px 16px; }
.fld label { font-size:11px; color:#A79A80; display:block; }
.fld input, .fld select { width:100%; border:none; outline:none; font-size:15px; color:#33291A;
                          background:none; margin-top:6px; }
.fld .up { display:flex; align-items:center; gap:14px; }
.fld .upbtn { width:84px; height:84px; border-radius:14px; background:#F0E9DA; border:none; color:#8A6D1F;
              font-size:24px; display:flex; align-items:center; justify-content:center; flex:none; }
.fld .upimg { width:84px; height:84px; border-radius:14px; object-fit:cover; }
.fld .uptip { font-size:11px; color:#A79A80; line-height:1.7; }
.code-row { display:flex; gap:10px; }
.code-row .fld { flex:1; }
.codebtn { flex:none; margin-top:14px; width:112px; height:46px; border-radius:14px; border:none;
           background:#F7EDD3; color:#8A6D1F; font-size:13px; font-weight:700; }
.codebtn:disabled { opacity:.5; }

/* 我的 */
.ucard { margin:14px 20px 0; background:linear-gradient(120deg,#8A6D1F,#6B5316); border-radius:20px;
         padding:20px; color:#FFF7E6; }
.ucard .r1 { display:flex; align-items:center; gap:14px; }
.ucard .av { width:52px; height:52px; border-radius:26px; background:rgba(255,255,255,.2);
             display:flex; align-items:center; justify-content:center; font-size:24px; }
.ucard .nm { font-size:18px; font-weight:800; }
.ucard .bdg { display:inline-flex; align-items:center; gap:5px; margin-top:5px; font-size:11px;
              background:rgba(255,255,255,.18); border-radius:9px; padding:3px 9px; }
.ucard .ph1 { margin-top:16px; background:rgba(255,255,255,.12); border-radius:12px; padding:9px 13px;
              font-size:11.5px; display:flex; gap:7px; align-items:center; color:#F4E8C8; word-break:break-all; }
.ostats { margin:14px 20px 0; background:#fff; border-radius:18px; padding:16px 6px; display:flex; }
.ostats .s { flex:1; text-align:center; background:none; border:none; }
.ostats .ic { width:42px; height:42px; margin:0 auto; border-radius:14px; background:#F7EDD3;
              display:flex; align-items:center; justify-content:center; font-size:20px; }
.ostats .s span { display:block; font-size:11px; color:#7A6E58; margin-top:6px; }
.cells { margin:14px 20px 0; background:#fff; border-radius:18px; overflow:hidden; }
.cell { display:flex; align-items:center; gap:12px; padding:15px 16px; border-bottom:1px solid #F5EFE2;
        background:none; border-left:none; border-right:none; border-top:none; width:100%; text-align:left; cursor:pointer; }
.cell:last-child { border-bottom:none; }
.cell .ic { width:34px; height:34px; border-radius:11px; background:#F7EDD3; display:flex;
            align-items:center; justify-content:center; font-size:16px; flex:none; }
.cell .nm { flex:1; font-size:14px; color:#33291A; font-weight:600; }
.cell .ar { color:#C9BB9C; }

/* 订单列表 / 详情 */
.ocard { margin:12px 20px 0; background:#fff; border-radius:16px; padding:16px; }
.ocard .h { display:flex; justify-content:space-between; font-size:11px; color:#A79A80; }
.ocard .h b { color:#33291A; letter-spacing:.5px; }
.ocard .h .st { color:#8A6D1F; font-weight:700; }
.ocard .h .st.red { color:#B5382F; }
.ocard .h .st.green { color:#2E7D4F; }
.ocard .it { display:flex; gap:10px; margin-top:12px; align-items:center; }
.ocard .it .othumb { width:44px; height:44px; border-radius:10px; background:linear-gradient(140deg,#C05A3A,#8E3B2B);
                     display:flex; align-items:center; justify-content:center; color:#fff; font-size:10px; flex:none; overflow:hidden; }
.ocard .it .othumb img { width:100%; height:100%; object-fit:cover; }
.ocard .it .nm { font-size:13px; font-weight:700; }
.ocard .it .sp { font-size:11px; color:#A79A80; margin-top:2px; }
.ocard .it .rt { margin-left:auto; text-align:right; font-size:11px; color:#A79A80; }
.ocard .it .rt b { display:block; color:#B5382F; font-size:14px; }
.ocard .ft { display:flex; justify-content:space-between; align-items:center; margin-top:14px; }
.ocard .ft .amt { font-size:12px; color:#7A6E58; }
.ocard .ft .amt b { color:#B5382F; font-size:18px; }
.minibtn { height:32px; padding:0 14px; border-radius:16px; border:1px solid #D8CCAE; background:#fff;
           color:#6D6047; font-size:12px; margin-left:8px; }
.minibtn.red { border:none; background:linear-gradient(90deg,#B5382F,#92261F); color:#fff; font-weight:700; }
.minibtn.gold { border:2px solid #8A6D1F; color:#8A6D1F; font-weight:700; }

/* 物流 */
.shipcard { background:#fff; border-radius:16px; padding:16px; }
.shipcard .carrier { display:flex; align-items:center; gap:10px; }
.shipcard .carrier b { font-size:15px; color:#33291A; }
.shipcard .carrier .lg { width:30px; height:30px; border-radius:9px; background:#B5382F; color:#fff;
                         font-size:11px; display:flex; align-items:center; justify-content:center; font-weight:800; }
.shipcard .tno { font-size:13px; color:#7A6E58; margin-top:8px; letter-spacing:.5px; }
.shipcard .drv { margin-top:10px; font-size:12px; color:#8A6D1F; background:#FBF1DC; border-radius:9px;
                 padding:7px 11px; display:flex; justify-content:space-between; align-items:center; text-decoration:none; }
.tl { margin-top:16px; padding-left:4px; }
.tstep { display:flex; gap:14px; }
.tstep .rail { width:14px; flex:none; display:flex; flex-direction:column; align-items:center; }
.tstep .pt { width:12px; height:12px; border-radius:6px; background:#DDD2B8; flex:none; margin-top:3px; }
.tstep .ln { width:2px; flex:1; background:#EAE1CC; margin-top:2px; }
.tstep .tx { flex:1; padding-bottom:20px; }
.tstep .tx b { font-size:13px; color:#7A6E58; font-weight:600; display:block; }
.tstep .tx span { font-size:11px; color:#B3A88E; display:block; margin-top:3px; }
.tstep.on .pt { background:#2E7D4F; box-shadow:0 0 0 4px rgba(46,125,79,.15); }
.tstep.on .tx b { color:#2E7D4F; font-weight:800; }
.lgd { margin-top:12px; font-size:11px; color:#B3A88E; }
.paytip { background:#FBF1DC; border-radius:12px; padding:12px 14px; font-size:12px; color:#8A6D1F;
          line-height:1.8; white-space:pre-wrap; margin-top:12px; }

/* 底部导航 */
.navbar { flex:none; background:#fff; border-top:1px solid #EEE5D4; display:flex; align-items:center;
          padding-bottom:env(safe-area-inset-bottom); position:sticky; bottom:0; z-index:25; }
.navbar .n { flex:1; text-align:center; font-size:11px; color:#9C8F76; padding:9px 0; background:none; border:none; }
.navbar .n .ic { font-size:22px; display:block; margin-bottom:3px; }
.navbar .n.on { color:#8A6D1F; font-weight:700; }
.navbar .n .bdg { display:inline-block; background:#B5382F; color:#fff; border-radius:8px; font-size:10px;
                  padding:0 5px; margin-left:2px; vertical-align:top; }

/* toast / 弹层 */
#toast { position:fixed; left:50%; transform:translateX(-50%); bottom:140px; background:rgba(51,41,26,.9);
         color:#fff; font-size:13px; border-radius:10px; padding:10px 18px; z-index:99; display:none;
         max-width:80%; text-align:center; }
.mask { position:fixed; inset:0; background:rgba(30,24,14,.5); z-index:50; display:flex; align-items:flex-end; }
.sheet { width:100%; max-width:520px; margin:0 auto; background:#fff; border-radius:22px 22px 0 0;
         padding:20px 20px calc(24px + env(safe-area-inset-bottom)); }
.sheet h3 { font-size:16px; font-weight:800; }
.sheet .close { float:right; border:none; background:none; font-size:18px; color:#A79A80; }
