@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@600;700;900&family=Noto+Sans+SC:wght@400;500;700;900&display=swap');
  :root{
    /* 主色：鲜叶绿，带微暖黄调，鲜活又沉稳（生鲜超市质感） */
    --green:#3d9a57; --green-d:#2c7544; --green-l:#5cb574; --green-soft:#e9f6ec;
    /* 强调/价格：统一主绿 */
    --red:#3d9a57; --red2:#2c7544; --notify:#e53935;
    /* 特价红、生鲜深绿（专区点缀） */
    --sale:#e0573a; --sale-d:#c1432a; --sale-soft:#fff1ec;
    --fresh:#2f7d4c; --fresh-d:#225f3a; --fresh-soft:#e8f5ec;
    --gold:#7bc25a;
    /* 中性：略带绿调的暖白，比纯灰更亲切 */
    --bg:#f4f8f2; --paper:#ffffff; --ink:#1c2a21; --muted:#869a8c; --line:#e5efe5; --side:#edf5ec;
    --tg:#229ED9;
    --shadow:0 2px 12px rgba(45,95,55,.06); --shadow2:0 12px 36px rgba(45,95,55,.16);
    --radius:14px;
    /* ===== 精装设计规范(统一标准，杜绝东拼西凑) ===== */
    /* 间距：8px 网格，所有 padding/gap/margin 取这些值 */
    --sp1:4px; --sp2:8px; --sp3:12px; --sp4:16px; --sp5:20px; --sp6:24px; --sp8:32px;
    /* 圆角：4 级 + 胶囊，收敛原来散乱的 14 种值 */
    --r-sm:10px; --r-md:14px; --r-lg:18px; --r-xl:24px; --r-pill:999px;
    /* 阴影：3 级层次（卡片→浮层→弹窗） */
    --sh1:0 1px 4px rgba(45,95,55,.06); --sh2:0 4px 16px rgba(45,95,55,.10); --sh3:0 12px 36px rgba(45,95,55,.16);
  }
  *{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
  /* 安卓/非Chrome-Safari浏览器会自动放大正文字体，系统大字号也会撑乱排版，此处统一禁用自动缩放 */
  html{height:100%;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}
  body{background:var(--bg);color:var(--ink);font-family:"Noto Sans SC",system-ui,sans-serif;line-height:1.5;
    max-width:480px;margin:0 auto;height:100%;display:flex;flex-direction:column;position:relative;overflow:hidden;
    overscroll-behavior:none;-webkit-text-size-adjust:100%;text-size-adjust:100%;
    -webkit-font-smoothing:antialiased}
  button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}
  /* 用 100%（跟随已锁定的 body）+ dvh 兜底，避免安卓地址栏伸缩导致整页跟着滑动 */
  .app{flex:1;display:flex;flex-direction:column;height:100%;height:100dvh;overflow:hidden}

  /* 顶部 */
  .c-head{background:linear-gradient(135deg,#48ab63 0%,#2c7544 100%);color:#fff;padding:14px 18px;display:flex;align-items:center;gap:12px;box-shadow:0 4px 18px rgba(40,100,55,.2);position:relative;overflow:hidden}
  .c-head::after{content:"";position:absolute;right:-30px;top:-40px;width:140px;height:140px;background:radial-gradient(circle,rgba(255,255,255,.12),transparent 70%);pointer-events:none}
  .c-logo{width:46px;height:46px;border-radius:var(--r-md);background:rgba(255,255,255,.16);border:2px solid rgba(255,255,255,.5);display:grid;place-items:center;font-family:"Noto Serif SC";font-weight:900;font-size:22px;overflow:hidden;flex:none;box-shadow:0 2px 8px rgba(0,0,0,.1)}
  .c-logo img{width:100%;height:100%;object-fit:cover}
  .c-head h1{font-family:"Noto Serif SC";font-size:18px;font-weight:900;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .c-head p{font-size:11px;opacity:.85;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .c-head-mid{flex:1;min-width:0}
  .c-head-right{flex:none;display:flex;flex-direction:column;align-items:center;gap:6px}
  .c-bizhours{font-size:11px;font-weight:600;color:rgba(255,255,255,.92);white-space:nowrap;line-height:1;letter-spacing:.3px;text-align:center}
  .c-status{flex-shrink:0;font-size:11.5px;font-weight:700;padding:4px 11px;border-radius:var(--r-md);display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
  .c-status .dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 0 currentColor;animation:cpulse 2s infinite}
  .c-status.open{background:#fff;color:#1f9d4d}
  .c-status.closed{background:#e0573a;color:#fff}
  .c-status.closed .dot{animation:none}
  @keyframes cpulse{0%{box-shadow:0 0 0 0 rgba(31,157,77,.5)}70%{box-shadow:0 0 0 6px rgba(31,157,77,0)}100%{box-shadow:0 0 0 0 rgba(31,157,77,0)}}
  .c-closed{background:linear-gradient(135deg,#e0573a,#c1432a);color:#fff;text-align:center;padding:11px 12px;font-size:14px;font-weight:700;line-height:1.5;letter-spacing:.3px}
  .c-closed .ct-sub{display:block;font-size:12px;font-weight:500;opacity:.92;margin-top:2px}
  /* 公告栏 */
  .c-notice{display:flex;align-items:center;gap:9px;background:linear-gradient(90deg,#fff8e8,#fff3d6);border-bottom:1px solid #f3e4bd;padding:9px 16px;font-size:12.5px;color:#8a6d28;line-height:1.5;cursor:pointer;overflow:hidden}
  .c-notice .ni{font-size:15px;flex:none}
  .c-notice .nt-wrap{flex:1;overflow:hidden;white-space:nowrap;position:relative;-webkit-mask-image:linear-gradient(90deg,transparent,#000 16px,#000 calc(100% - 16px),transparent);mask-image:linear-gradient(90deg,transparent,#000 16px,#000 calc(100% - 16px),transparent)}
  .c-notice .nt{display:inline-block;font-weight:500;padding-left:100%;animation:cmarquee 16s linear infinite}
  .c-notice .arr{flex:none;font-size:16px;color:#b8923a}
  @keyframes cmarquee{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}
  .c-notice:active{opacity:.7}
  /* 浮动客服按钮 */
  .c-fab{position:fixed;right:16px;bottom:82px;height:46px;padding:0 16px 0 13px;border-radius:var(--r-xl);background:linear-gradient(135deg,#5cb574,#2c7544);color:#fff;border:none;display:flex;align-items:center;gap:7px;font-size:14px;font-weight:700;box-shadow:0 6px 18px rgba(44,117,68,.45);z-index:30;transition:bottom .25s cubic-bezier(.22,1,.36,1),transform .15s;left:auto;touch-action:none}
  body.has-cart .c-fab{bottom:140px}
  @media(min-width:481px){.c-fab{right:calc(50% - 240px + 16px)}}
  .c-fab:active{transform:scale(.93)}
  .c-fab-x{position:absolute;top:-7px;right:-7px;width:20px;height:20px;background:#fff;color:#888;border-radius:50%;font-size:14px;font-style:normal;display:grid;place-items:center;box-shadow:0 2px 6px rgba(0,0,0,.25);line-height:1}

  .c-searchbar{padding:10px 14px;background:var(--bg);flex:none;z-index:14;display:flex;align-items:center;gap:8px}
  .c-search{flex:1;min-width:0;padding:11px 14px;border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--paper);font-size:14px;outline:none;box-shadow:var(--shadow)}
  .c-search:focus{border-color:var(--gold)}
  .c-langbtn{flex:none;padding:10px 13px;border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--paper);color:var(--green-d,#2c6b3e);font-size:13px;font-weight:700;line-height:1;cursor:pointer;box-shadow:var(--shadow);-webkit-tap-highlight-color:transparent}
  .c-langbtn:active{transform:scale(.94)}
  /* 配送时间选择 */
  .c-dtip{border-radius:var(--r-md);padding:10px 12px;margin-bottom:10px;font-size:12.5px;line-height:1.6}
  .c-dtip-fresh{background:var(--fresh-soft);border:1px solid #c9e6d2;color:var(--fresh-d)}
  .c-dtip-closed{background:var(--sale-soft);border:1px solid #f3d4c9;color:var(--sale-d)}
  .c-dseg-wrap{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
  .c-dseg-wrap::-webkit-scrollbar{display:none}
  .c-dseg{flex:none;min-width:72px;text-align:center;padding:9px 12px;border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--paper);font-size:13.5px;font-weight:700;color:var(--ink);cursor:pointer;transition:.15s;line-height:1.25}
  .c-dseg small{display:block;font-size:10.5px;font-weight:400;color:var(--muted);margin-top:2px}
  .c-dseg.active{background:var(--green);border-color:var(--green);color:#fff}
  .c-dseg.active small{color:rgba(255,255,255,.85)}
  /* 时间药丸按钮 */
  .c-tseg-wrap{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-top:8px;scrollbar-width:none}
  .c-tseg-wrap::-webkit-scrollbar{display:none}
  .c-tseg{flex:none;padding:8px 14px;border:1.5px solid var(--line);border-radius:var(--r-lg);background:var(--paper);font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;transition:.15s;white-space:nowrap}
  .c-tseg.active{background:var(--green);border-color:var(--green);color:#fff;font-weight:700}
  /* 配送区常驻提示 */
  .c-dhint{margin-top:10px;padding:9px 12px;border-radius:var(--r-sm);font-size:12.5px;line-height:1.5;background:var(--sale-soft);border:1px solid #f3d4c9;color:var(--sale-d);font-weight:600}
  .c-dhint-ok{background:var(--fresh-soft);border-color:#c9e6d2;color:var(--fresh-d)}
  /* 购物车预约提示横幅 */
  .c-cart-reserve-tip{background:var(--fresh-soft);border:1px solid #c9e6d2;color:var(--fresh-d);border-radius:var(--r-md);padding:10px 13px;margin-bottom:12px;font-size:13px;font-weight:600;line-height:1.5}
  /* 购物车预约商品高亮 */
  .c-ci-reserve{background:var(--fresh-soft);border:1.5px solid #c9e6d2;border-radius:var(--r-md);padding:8px;margin:0 -2px 8px}
  .c-ci-rbadge{position:absolute;top:-4px;left:-4px;background:var(--fresh);color:#fff;font-size:11px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center}
  .c-ci-rtag{display:inline-block;background:var(--fresh);color:#fff;font-size:10px;padding:1px 7px;border-radius:var(--r-sm);margin-left:6px;font-weight:700;vertical-align:middle}
  .c-phone{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--paper)}
  .c-phone .cc{padding:11px 12px;background:var(--side);color:var(--ink);font-weight:700;font-size:14px;border-right:1.5px solid var(--line);flex:none}
  .c-phone input{flex:1;border:none;padding:11px 12px;font-size:14px;outline:none;background:transparent}

  .c-main{flex:1;display:flex;overflow:hidden;min-height:0}
  /* overflow-x:hidden 关掉长英文撑破后产生的横向拖动；overscroll-behavior:contain 防止滚动传给整页 */
  .c-side{width:90px;flex:none;background:var(--side);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:none;padding-bottom:80px}
  .c-side::-webkit-scrollbar{display:none}
  /* 长英文分类名强制断词换行，不再超出 90px 分类栏 */
  .c-sidecat{padding:15px 7px;font-size:12.5px;font-weight:500;text-align:center;line-height:1.35;border-left:3px solid transparent;cursor:pointer;color:var(--ink);transition:.15s;overflow-wrap:anywhere;word-break:break-word;hyphens:auto}
  .c-sidecat.active{background:var(--bg);border-left-color:var(--green);font-weight:700;color:var(--green)}
  .c-side-new{background:#fff4e0;color:#e8850c;font-weight:700}
  .c-side-new.active{background:#ffe9c7;border-left-color:#f17105;color:#c96a00}
  .c-side-sale{background:var(--sale-soft);color:var(--sale);font-weight:700}
  .c-side-sale.active{background:#ffe3da;border-left-color:var(--sale);color:var(--sale-d)}
  .c-side-fresh{background:var(--fresh-soft);color:var(--fresh);font-weight:700}
  .c-side-fresh.active{background:#daeede;border-left-color:var(--fresh);color:var(--fresh-d)}
  .c-list{flex:1;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--bg);scrollbar-width:none;padding-bottom:70px}
  .c-list::-webkit-scrollbar{display:none}
  /* 购物车栏出现时（bottom:60px、约58px高），分类栏和商品列表加足下边距，避免最后一项被遮挡 */
  body.has-cart .c-side{padding-bottom:140px}
  body.has-cart .c-list{padding-bottom:130px}
  .c-cattitle{font-size:12px;color:var(--muted);padding:14px 14px 6px;font-weight:700;position:sticky;top:0;background:var(--bg);z-index:2;letter-spacing:.5px}
  .c-item{display:flex;gap:12px;padding:14px;border-bottom:1px solid var(--line);transition:.12s}
  .c-item:active{background:var(--green-soft)}
  .c-item-img{width:80px;height:80px;border-radius:var(--r-md);overflow:hidden;flex:none;background:#e4efe2;cursor:pointer;box-shadow:0 3px 10px rgba(40,90,50,.1);position:relative}
  .c-item-img img{width:100%;height:100%;object-fit:cover}
  .c-item-img .so{position:absolute;inset:0;background:rgba(29,42,34,.58);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700;backdrop-filter:blur(1px)}
  /* 无图商品的占位图：柔和绿底 + 购物袋图标，取代原来的空方框 */
  .c-noimg{background:linear-gradient(135deg,#eef6ec,#dcebdc) !important;background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23a3c4a8'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M6%208h12l-1%2012H7L6%208z'/%3E%3Cpath%20d='M9%208V6.5a3%203%200%200%201%206%200V8'/%3E%3C/svg%3E") !important;background-repeat:no-repeat !important;background-position:center !important;background-size:46% !important}
  .c-item-body{flex:1;min-width:0;cursor:pointer;display:flex;flex-direction:column}
  .c-item-name{font-size:14.5px;font-weight:700;line-height:1.3;overflow-wrap:anywhere}
  /* 价格+规格+加号统一挪到产品名下方的底部行：长英文名换行也不影响这一行的排版 */
  .c-item-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:8px}
  .c-item-foot .c-add,.c-item-foot .c-qty{flex:none}
  .c-item-price{font-family:"Noto Serif SC";font-size:18px;font-weight:900;color:var(--green-d);line-height:1;min-width:0}
  .c-item-price small{font-size:10px;font-weight:400;color:var(--muted);font-family:"Noto Sans SC"}
  .c-add{width:31px;height:31px;border:none;border-radius:50%;background:linear-gradient(135deg,#5cb574,#2c7544);color:#fff;font-size:21px;font-weight:700;display:grid;place-items:center;line-height:1;box-shadow:0 3px 11px rgba(47,110,69,.42);transition:.12s}
  .c-add:active{transform:scale(.88)}
  .c-qty{display:flex;align-items:center;gap:9px}
  .c-qty button{width:27px;height:27px;border:1.5px solid var(--green);border-radius:50%;background:var(--bg);color:var(--green);font-size:16px;font-weight:700;display:grid;place-items:center;line-height:1;transition:.12s}
  .c-qty button:active{transform:scale(.88)}
  .c-qty span{font-size:14px;font-weight:700;min-width:14px;text-align:center}

  .c-cartbar{position:fixed;left:50%;transform:translateX(-50%) translateY(150%);bottom:60px;width:100%;max-width:480px;background:linear-gradient(135deg,#243a2c,#1d2a22);color:#fff;padding:13px 16px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 -4px 20px rgba(0,0,0,.22);transition:.32s cubic-bezier(.22,1,.36,1);z-index:18}
  .c-cartbar.show{transform:translateX(-50%) translateY(0)}
  .c-cb-l{display:flex;align-items:center;gap:12px}
  .c-bag{position:relative;font-size:27px}
  .c-badge{position:absolute;top:-7px;right:-9px;background:var(--gold);color:#fff;border-radius:var(--r-md);font-size:11px;font-weight:900;min-width:20px;height:20px;display:grid;place-items:center;padding:0 5px;box-shadow:0 2px 6px rgba(0,0,0,.25)}
  .c-cbttl{font-family:"Noto Serif SC";font-size:21px;font-weight:900}
  .c-cbttl small{font-size:11px;font-weight:400;opacity:.7;display:block;font-family:"Noto Sans SC"}
  .c-checkout{background:linear-gradient(135deg,#7bc25a,#48ab63);color:#fff;border:none;padding:12px 28px;border-radius:var(--r-xl);font-size:16px;font-weight:700;box-shadow:0 4px 14px rgba(107,191,89,.45);transition:.12s}
  .c-checkout:active{transform:scale(.96)}
  .c-checkout:disabled{opacity:.5}

  /* 底部导航 */
  .c-bottomnav{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:480px;display:flex;background:var(--paper);border-top:1px solid var(--line);z-index:19;box-shadow:0 -2px 12px rgba(40,90,50,.05)}
  .c-bottomnav button{flex:1;border:none;background:none;padding:9px 0 10px;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--muted);font-size:11px;font-weight:600;transition:.12s}
  .c-bottomnav button .bi{font-size:21px;line-height:1}
  .c-bottomnav button.active{color:var(--green)}
  .nav-dot{position:absolute;top:-3px;right:-7px;width:9px;height:9px;background:var(--notify);border-radius:50%;border:1.5px solid var(--paper)}
  /* 消息页 */
  .msg-entry{display:flex;align-items:center;gap:13px;padding:16px 16px;background:var(--paper);border-bottom:1px solid var(--line);cursor:pointer;transition:.12s}
  .msg-entry:active{background:var(--side)}
  .msg-entry-ic{width:48px;height:48px;border-radius:var(--r-md);display:grid;place-items:center;flex:none}
  .msg-entry-mid{flex:1;min-width:0}
  .msg-entry-mid .t{font-size:15px;font-weight:700;display:flex;align-items:center;gap:7px}
  .msg-entry-mid .s{font-size:12.5px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .msg-entry-r{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex:none}
  .msg-entry-time{font-size:11px;color:var(--muted)}
  .msg-badge{background:var(--notify);color:#fff;font-size:11px;font-weight:700;min-width:18px;height:18px;border-radius:var(--r-sm);display:grid;place-items:center;padding:0 5px}
  .msg-sec-title{font-size:12px;color:var(--muted);padding:14px 16px 6px;font-weight:600}
  /* 官方消息列表（公众号样式卡片） */
  .news-card{background:var(--paper);margin:10px 12px;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);box-shadow:0 1px 4px rgba(40,90,50,.04)}
  .news-card .news-date{text-align:center;font-size:11px;color:var(--muted);padding:8px 0 2px}
  .news-card .news-img{width:100%;display:block;height:auto;object-fit:contain}
  .news-card .news-body{padding:13px 15px}
  .news-card .news-title{font-size:15px;font-weight:700;margin-bottom:5px;color:var(--ink)}
  .news-card .news-text{font-size:13.5px;color:#444;line-height:1.6;white-space:pre-wrap;word-break:break-word}
  .msg-back{display:flex;align-items:center;gap:8px;padding:13px 16px;border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:5;font-weight:700;font-size:15px;cursor:pointer}
  .news-empty{text-align:center;color:var(--muted);padding:50px 20px;font-size:14px;line-height:1.8}

  /* 视图容器 */
  .view{display:none;flex:1;flex-direction:column;min-height:0;padding-bottom:60px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .view.show{display:flex}
  #vShop.show{display:flex;padding-bottom:0}

  /* 弹层 */
  .c-overlay{position:fixed;inset:0;background:rgba(20,40,25,.5);z-index:50;display:none;backdrop-filter:blur(2px)}
  .c-overlay.show{display:block}
  /* 客服聊天窗口 */
  .chat-win{position:fixed;inset:0;width:100%;height:100%;max-width:480px;left:50%;transform:translateX(-50%);background:var(--bg);z-index:60;display:none;flex-direction:column;overflow:hidden}
  .chat-win.show{display:flex}
  .chat-head{background:linear-gradient(135deg,#48ab63,#2c7544);color:#fff;padding:13px 16px;padding-top:max(13px,env(safe-area-inset-top));display:flex;justify-content:space-between;align-items:center;flex:none}
  .chat-head-l{display:flex;align-items:center;gap:10px}
  .chat-dot{width:9px;height:9px;border-radius:50%;background:#7ef5a0;box-shadow:0 0 0 3px rgba(126,245,160,.3)}
  .chat-title{font-weight:700;font-size:16px}
  .chat-sub{font-size:11.5px;opacity:.85;margin-top:1px}
  .chat-close{background:none;border:none;color:#fff;font-size:28px;cursor:pointer;line-height:1;opacity:.9;padding:0 4px}
  .chat-back{background:none;border:none;color:#fff;cursor:pointer;padding:2px;margin:0 2px 0 -4px;display:flex;align-items:center;opacity:.95}
  .chat-back:active{opacity:.6}
  .chat-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:var(--bg)}
  .chat-msg{max-width:78%;padding:9px 13px;border-radius:var(--r-md);font-size:14px;line-height:1.5;word-break:break-word;white-space:pre-wrap}
  .chat-msg.customer{align-self:flex-end;background:var(--green);color:#fff;border-bottom-right-radius:4px}
  .chat-msg.admin{align-self:flex-start;background:var(--paper);border:1px solid var(--line);border-bottom-left-radius:4px}
  .chat-time{font-size:10px;color:var(--muted);align-self:center;margin:4px 0}
  .chat-empty{text-align:center;color:var(--muted);font-size:13px;margin:auto;padding:20px;line-height:1.7}
  .chat-input{display:flex;flex-direction:column;gap:6px;padding:7px 12px;padding-bottom:calc(max(10px,env(safe-area-inset-bottom)) + 12px);border-top:1px solid var(--line);background:var(--paper);flex:none}
  .chat-tools{display:flex;gap:18px;align-items:center;padding:1px 4px}
  .chat-inputrow{display:flex;gap:8px;align-items:flex-end}
  .chat-input textarea{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:var(--r-lg);padding:10px 15px;font-size:14px;line-height:1.4;outline:none;resize:none;font-family:inherit;max-height:120px;overflow-y:auto;box-sizing:border-box}
  .chat-input textarea:focus{border-color:var(--green)}
  .chat-input button#chatSendBtn{background:var(--green);color:#fff;border:none;border-radius:var(--r-lg);padding:0 18px;height:40px;font-weight:700;font-size:14px;cursor:pointer;flex:none}
  .chat-input button:disabled{opacity:.5}
  .chat-tool{background:none!important;border:none;color:var(--muted)!important;padding:0 4px!important;display:flex;align-items:center;cursor:pointer;flex:none}
  .chat-tool:active{transform:scale(.9)}
  .chat-emoji-panel{display:none;flex-wrap:wrap;gap:4px;padding:10px;padding-bottom:max(10px,env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);max-height:200px;overflow-y:auto;flex:none}
  .chat-emoji-panel.show{display:flex}
  /* 发送产品面板（顾客端）：搜索栏 + 分类 + 网格 */
  /* 发送产品面板：放大成接近半屏的大抽屉，方便浏览选择 */
  #chatProdPanel.show{display:flex;flex-direction:column;flex-wrap:nowrap;padding:0;max-height:72vh;height:72vh}
  .chat-prod-search{display:flex;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--paper);flex:none}
  .chat-prod-search input{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:9px;padding:10px 12px;font-size:14px;outline:none}
  .chat-prod-search select{flex-shrink:0;max-width:42%;border:1.5px solid var(--line);border-radius:9px;padding:10px 8px;font-size:14px;background:#fff}
  .chat-prod-list{flex:1;min-height:0;overflow-y:auto;display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:12px}
  .chat-prod-list{align-content:start;grid-auto-rows:max-content}
  .chat-prod-pick{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer;background:#fff}
  .chat-prod-pick:active{transform:scale(.98)}
  .chat-prod-pick .cp-img{flex:none;width:100%;height:120px;background:var(--side) center/cover no-repeat;display:flex;align-items:center;justify-content:center;font-size:34px;color:var(--muted)}
  .chat-prod-pick .cp-nm{flex:none;font-size:13px;line-height:1.35;padding:7px 9px 0;color:var(--ink);min-height:2.6em;overflow:hidden}
  .chat-prod-pick .cp-pr{flex:none;font-size:14px;font-weight:700;color:var(--green);padding:3px 9px 9px}
  .chat-prod-pick .cp-img{position:relative}
  .chat-prod-pick .cp-check{position:absolute;top:5px;right:5px;width:22px;height:22px;border-radius:50%;background:var(--green);color:#fff;display:none;align-items:center;justify-content:center;font-size:13px;font-weight:900;box-shadow:0 1px 4px rgba(0,0,0,.25)}
  .chat-prod-pick.sel{border-color:var(--green);box-shadow:0 0 0 2px var(--green) inset}
  .chat-prod-pick.sel .cp-check{display:flex}
  .chat-prod-foot{flex:none;padding:10px 12px;padding-bottom:max(10px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--paper)}
  .chat-prod-send{width:100%;padding:12px;border:none;border-radius:var(--r-lg);background:var(--green);color:#fff;font-size:15px;font-weight:700;cursor:pointer}
  .chat-prod-send:disabled{background:var(--line);color:var(--muted);cursor:default}
  /* 订单评价星级 */
  .c-rate-stars{display:flex;gap:6px;font-size:30px;color:#f5a623;cursor:pointer;margin-top:4px}
  .c-rate-stars span{user-select:none;line-height:1}
  .c-rate-stars span:active{transform:scale(1.15)}
  /* 聊天 AI 翻译 */
  .chat-tr-toggle{background:rgba(255,255,255,.18);color:#fff;border:none;border-radius:14px;padding:5px 10px;font-size:12px;font-weight:600;cursor:pointer}
  .chat-tr-toggle.on{background:rgba(255,255,255,.35)}
  .chat-tr{align-self:flex-start;max-width:80%;margin:-4px 0 4px 2px;font-size:12.5px;color:var(--muted);line-height:1.5;background:#f1f5f1;border-radius:9px;padding:6px 10px}
  .chat-tr.loading{color:var(--muted);font-style:italic}
  .chat-tr-tag{font-size:11px;color:var(--green);font-weight:700;margin-right:4px}
  .chat-tr-btn{align-self:flex-start;margin:-4px 0 4px 2px;font-size:12px;color:var(--green);font-weight:600;cursor:pointer}
  .chat-sender{align-self:flex-start;font-size:11.5px;color:var(--muted);margin:2px 0 -4px 4px;font-weight:600}
  .chat-emoji-btn{background:none;border:none;cursor:pointer;padding:5px;border-radius:var(--r-sm);line-height:0}
  .chat-emoji-btn:active{background:var(--side)}
  .chat-msg.media{background:none!important;border:none!important;padding:0!important;box-shadow:none!important;white-space:normal!important}
  .chat-emoji-msg svg{display:block}
  /* 功能26：消息行 / 撤回灰条 / 引用 / 多选 / 菜单 / 引用条 / 多选条 */
  .chat-row{display:flex;gap:6px;align-items:flex-start;width:100%}
  .chat-row.customer{justify-content:flex-end}
  .chat-row.admin{justify-content:flex-start}
  .chat-bubble-wrap{display:flex;flex-direction:column;max-width:80%;min-width:0}
  .chat-row.customer .chat-bubble-wrap{align-items:flex-end}
  .chat-row.admin .chat-bubble-wrap{align-items:flex-start}
  .chat-bubble-wrap .chat-msg{max-width:100%}
  .chat-tomb{align-self:center;font-size:12px;color:var(--muted);background:rgba(0,0,0,.06);padding:3px 12px;border-radius:11px;margin:2px auto}
  .chat-quote{display:flex;align-items:center;gap:4px;font-size:12px;padding:4px 8px;margin-bottom:5px;border-radius:5px;border-left:3px solid var(--green);background:rgba(0,0,0,.05);word-break:break-word;line-height:1.4;cursor:pointer}
  .chat-q-thumb{width:26px;height:26px;border-radius:4px;object-fit:cover;flex-shrink:0}
  .chat-q-emoji{display:inline-flex;flex-shrink:0}
  .chat-msg.customer .chat-quote{background:rgba(255,255,255,.2);border-left-color:rgba(255,255,255,.7);color:#eafaf0}
  .chat-selck{width:20px;height:20px;border-radius:50%;border:2px solid var(--line);flex:none;align-self:center;background:#fff;position:relative}
  .chat-selck.on{background:var(--green);border-color:var(--green)}
  .chat-selck.on::after{content:"";position:absolute;left:5px;top:2px;width:5px;height:9px;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg)}
  .chat-row.selmode{cursor:default}
  .chat-row.selmode .chat-selck{cursor:pointer}
  .chat-row.selmode .chat-bubble-wrap{cursor:pointer}
  .chat-row.selmode .chat-bubble-wrap *{pointer-events:none} /* 点气泡=选择，禁掉卡片/图片内部点击与选词 */
  .chat-dots{flex:none;align-self:center;background:none;border:none;color:var(--muted);font-size:19px;line-height:1;cursor:pointer;padding:2px 5px;opacity:.45;border-radius:7px}
  .chat-dots:hover{opacity:1;background:rgba(0,0,0,.06)}
  /* 会话内搜索（顾客端）*/
  .chat-head-search{background:none;border:none;font-size:15px;cursor:pointer;padding:2px 4px;color:#fff;opacity:.9}
  .chat-msgsearch{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--paper);flex:none}
  .chat-msgsearch input{flex:1;border:1.5px solid var(--line);border-radius:8px;padding:8px 12px;font-size:14px;outline:none}
  .chat-msgsearch input:focus{border-color:var(--green)}
  .chat-msgsearch-x{background:none;border:none;font-size:18px;color:var(--muted);cursor:pointer;flex:none}
  .chat-msgsearch-results{max-height:45%;overflow-y:auto;border-bottom:1px solid var(--line);background:var(--bg);flex:none}
  .chat-msgsearch-cnt{font-size:12px;color:var(--muted);padding:8px 14px 2px}
  .chat-msgsearch-empty{padding:18px;text-align:center;color:var(--muted);font-size:13px}
  .chat-msgsearch-item{padding:10px 14px;border-bottom:1px solid var(--line);cursor:pointer}
  .chat-msgsearch-item:active{background:var(--side)}
  .chat-msgsearch-meta{font-size:11.5px;color:var(--muted);margin-bottom:3px}
  .chat-msgsearch-snip{font-size:14px;color:var(--ink);word-break:break-word}
  .chat-msgsearch-snip b{color:#b07d10;background:#fff3c4;border-radius:3px}
  .chat-row.chat-hl .chat-msg{box-shadow:0 0 0 2px var(--green);transition:box-shadow .3s}
  .chat-row.chat-hl{background:rgba(72,171,99,.13);border-radius:12px}
  .chat-menu{position:fixed;z-index:200;background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:0 10px 30px rgba(0,0,0,.2);overflow:hidden;display:flex;flex-direction:column;min-width:124px}
  .chat-menu button{background:none;border:none;padding:12px 18px;text-align:left;font-size:14.5px;cursor:pointer;color:var(--ink)}
  .chat-menu button:active,.chat-menu button:hover{background:var(--bg)}
  .chat-menu button.danger{color:var(--red)}
  /* 置顶消息条（功能27） */
  .chat-pinbar{display:flex;align-items:center;gap:9px;padding:8px 12px;background:var(--paper);border-bottom:1px solid var(--line);cursor:pointer;flex:none;border-left:3px solid var(--green)}
  .chat-pinbar:active{background:var(--bg)}
  .chat-pin-ic{font-size:15px;flex:none;line-height:1}
  .chat-pin-main{flex:1;min-width:0}
  .chat-pin-label{font-size:11.5px;color:var(--green);font-weight:700;line-height:1.3}
  .chat-pin-text{font-size:13px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:4px}
  .chat-pin-text .chat-q-thumb{width:18px;height:18px;border-radius:3px;object-fit:cover;vertical-align:middle}
  .chat-pin-x{background:none;border:none;font-size:16px;line-height:1;color:var(--muted);cursor:pointer;flex:none;padding:4px 6px}
  /* 置顶范围选择弹窗（功能27），与多选删除弹窗同款 */
  .chat-del-mask{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.4);display:flex;align-items:flex-end;justify-content:center}
  .chat-del-box{background:#fff;border-radius:16px 16px 0 0;width:100%;max-width:460px;padding:8px 0 calc(8px + env(safe-area-inset-bottom));box-shadow:0 -6px 30px rgba(0,0,0,.18)}
  .chat-del-title{text-align:center;font-size:13px;color:var(--muted);padding:12px 16px 8px}
  .chat-del-opt{display:block;width:100%;background:none;border:none;border-top:1px solid var(--line);padding:15px;font-size:16px;cursor:pointer;color:var(--ink)}
  .chat-del-opt.danger{color:var(--red)}
  .chat-del-opt.cancel{color:var(--muted);font-weight:600}
  .chat-del-opt:active{background:var(--bg)}
  .chat-reply-bar{display:flex;align-items:center;gap:8px;background:var(--bg);border-radius:8px;padding:6px 10px;font-size:12.5px;color:var(--muted)}
  .chat-reply-txt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .chat-reply-x{background:none;border:none;font-size:19px;line-height:1;color:var(--muted);cursor:pointer;flex:none;padding:0 4px}
  .chat-selbar{display:flex;align-items:center;gap:10px;padding:10px 14px;padding-bottom:calc(max(10px,env(safe-area-inset-bottom)) + 10px);border-top:1px solid var(--line);background:var(--paper);flex:none}
  .chat-sel-count{flex:1;font-size:13px;color:var(--muted)}
  .chat-sel-cancel,.chat-sel-act{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 15px;font-size:14px;cursor:pointer;color:var(--ink)}
  .chat-sel-act.danger{color:var(--red);border-color:#f0caca}
  .chat-img-msg{max-width:160px;max-height:200px;border-radius:var(--r-md);cursor:pointer;border:1px solid var(--line)}
  /* 聊天卡片：订单条 / 产品条（淘宝式一条卡片） */
  .chat-card{display:flex;align-items:center;gap:10px;width:248px;max-width:80vw;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.05)}
  .chat-card:active{transform:scale(.985)}
  .chat-card .cc-icon{width:44px;height:44px;border-radius:10px;background:var(--side);display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}
  .chat-card .cc-img{width:48px;height:48px;border-radius:9px;background:var(--side) center/cover no-repeat;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--muted)}
  .chat-card .cc-body{flex:1;min-width:0}
  .chat-card .cc-title{font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .chat-card .cc-sub{font-size:12px;color:var(--muted);margin-top:3px}
  .chat-card .cc-price{font-size:13px;color:var(--green-d,var(--green));font-weight:700;margin-top:3px}
  .chat-card .cc-arr{font-size:12px;color:var(--green);font-weight:600;flex-shrink:0;align-self:flex-end}
  /* 产品快照临时预览（商品已下架时） */
  .cc-snap-mask{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9998;display:flex;align-items:center;justify-content:center;padding:24px}
  .cc-snap{background:#fff;border-radius:16px;max-width:320px;width:100%;overflow:hidden;text-align:center}
  .cc-snap img{width:100%;max-height:240px;object-fit:cover;display:block}
  .cc-snap-noimg{height:160px;display:flex;align-items:center;justify-content:center;font-size:48px;background:var(--side)}
  .cc-snap-body{padding:16px}
  .cc-snap-name{font-size:16px;font-weight:700;color:var(--ink)}
  .cc-snap-price{font-size:15px;color:var(--green);font-weight:700;margin-top:6px}
  .cc-snap-tip{font-size:12.5px;color:var(--muted);margin-top:10px;line-height:1.5}
  .cc-snap-close{width:100%;padding:13px;border:none;border-top:1px solid var(--line);background:#fff;font-size:15px;font-weight:600;color:var(--ink);cursor:pointer}
  /* 客服方式选择 */
  .contact-pick{position:fixed;inset:0;z-index:65;display:none;align-items:flex-end;justify-content:center}
  /* 联系方式弹层 */
  .contact-sheet{position:fixed;inset:0;z-index:66;display:none;align-items:flex-end;justify-content:center}
  #shareSheet{z-index:75} /* 分享弹层需高于商品详情面板(z-index:70) */
  .contact-sheet.show{display:flex}
  .contact-sheet-mask{position:absolute;inset:0;background:rgba(20,40,25,.45);backdrop-filter:blur(2px)}
  .contact-sheet-box{position:relative;background:var(--bg);width:min(420px,calc(100vw - 24px));border-radius:var(--r-lg);padding:18px;margin-bottom:max(16px,env(safe-area-inset-bottom));box-shadow:0 -4px 30px rgba(0,0,0,.2);animation:cpUp .25s cubic-bezier(.22,1,.36,1)}
  .contact-sheet-title{font-weight:700;font-size:15px;text-align:center;margin-bottom:14px;color:var(--ink)}
  .contact-row{display:flex;align-items:center;gap:12px;width:100%;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 14px;margin-bottom:10px;cursor:pointer;transition:.12s}
  .contact-row:active{transform:scale(.98);background:var(--side)}
  .contact-ic{width:42px;height:42px;border-radius:var(--r-md);display:grid;place-items:center;font-size:21px;flex:none}
  .contact-mid{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
  .contact-mid b{font-size:14.5px;color:var(--ink)}
  .contact-mid small{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .contact-act{color:var(--green);font-size:13px;font-weight:700;flex:none}
  .contact-sheet-cancel{width:100%;background:none;border:none;padding:12px;font-size:14px;color:var(--muted);cursor:pointer;font-weight:600}
  .contact-pick.show{display:flex}
  .contact-pick-mask{position:absolute;inset:0;background:rgba(20,40,25,.45);backdrop-filter:blur(2px)}
  .contact-pick-box{position:relative;background:var(--bg);width:min(420px,calc(100vw - 24px));border-radius:var(--r-lg);padding:18px;margin-bottom:max(16px,env(safe-area-inset-bottom));box-shadow:0 -4px 30px rgba(0,0,0,.2);animation:cpUp .25s cubic-bezier(.22,1,.36,1)}
  @keyframes cpUp{from{transform:translateY(30px);opacity:.6}to{transform:translateY(0);opacity:1}}
  .contact-pick-title{font-weight:700;font-size:15px;text-align:center;margin-bottom:14px;color:var(--ink)}
  .contact-pick-opt{display:flex;align-items:center;gap:12px;width:100%;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 14px;margin-bottom:10px;cursor:pointer;text-align:left;transition:.12s}
  .contact-pick-opt:active{transform:scale(.98);background:var(--side)}
  .cp-ic{width:42px;height:42px;border-radius:var(--r-md);display:grid;place-items:center;font-size:21px;flex:none}
  .cp-txt{flex:1;display:flex;flex-direction:column;gap:2px}
  .cp-txt b{font-size:14.5px;color:var(--ink)}
  .cp-txt small{font-size:11.5px;color:var(--muted)}
  .cp-arr{color:var(--muted);font-size:20px}
  .contact-pick-cancel{width:100%;background:none;border:none;padding:12px;font-size:14px;color:var(--muted);cursor:pointer;font-weight:600}
  .c-sheet{position:fixed;left:50%;transform:translateX(-50%) translateY(120%);bottom:0;width:100%;max-width:480px;background:var(--bg);border-radius:var(--r-lg) var(--r-lg) 0 0;height:85vh;height:85dvh;max-height:85dvh;display:flex;flex-direction:column;transition:transform .32s cubic-bezier(.22,1,.36,1);z-index:60;box-shadow:0 -6px 30px rgba(20,50,30,.25);overflow:hidden}
  .c-sheet.show{transform:translateX(-50%) translateY(0)}
  .c-sheet *{max-width:100%}
  .c-sheet-head{flex:none;background:var(--bg);padding:16px 18px 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);border-radius:var(--r-lg) var(--r-lg) 0 0}
  .c-sheet-head h2{font-family:"Noto Serif SC";font-size:18px;font-weight:900}
  .c-close{background:none;border:none;font-size:26px;color:var(--muted);line-height:1;padding:0 4px}
  .c-sheet-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:14px 18px 40px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}

  /* 商品详情 */
  .c-detail{position:fixed;left:50%;transform:translateX(-50%) translateX(120%);top:0;bottom:0;width:100%;max-width:480px;background:var(--bg);z-index:70;transition:transform .3s cubic-bezier(.22,1,.36,1),visibility .3s;overflow:hidden;display:flex;flex-direction:column;visibility:hidden}
  .c-detail-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .c-detail.show{transform:translateX(-50%) translateX(0);visibility:visible}
  .c-detail-img{width:100%;aspect-ratio:1/1;background:#e4efe2;position:relative;flex-shrink:0}
  .c-detail-img img{width:100%;height:100%;object-fit:cover}
  .c-detail-back{position:absolute;top:14px;left:14px;width:38px;height:38px;border-radius:50%;background:rgba(0,0,0,.4);color:#fff;border:none;font-size:20px;display:grid;place-items:center;backdrop-filter:blur(4px)}
  .c-detail-body{padding:18px 20px 24px}
  .c-detail-name{font-size:21px;font-weight:900;line-height:1.3;overflow-wrap:anywhere;word-break:break-word}
  .c-detail-price{font-family:"Noto Serif SC";font-size:26px;font-weight:900;color:var(--red);min-width:0}
  .c-detail-price small{font-size:13px;color:var(--muted);font-weight:400;font-family:"Noto Sans SC"}
  .c-detail-cat{display:inline-block;font-size:12px;color:var(--muted);background:var(--side);padding:4px 12px;border-radius:var(--r-md);margin-top:10px}
  .c-detail-sec{margin-top:20px}.c-detail-sec h4{font-size:13px;color:var(--muted);margin-bottom:7px;font-weight:700}
  .c-detail-sec p{font-size:14.5px;line-height:1.7;white-space:pre-line}
  .c-detail-pricerow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}
  .c-detail-pricerow .c-detail-price{flex:1;margin-top:0}
  .c-detail-actions{flex-shrink:0;display:flex;align-items:center;gap:6px}
  .c-detail-ask{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;background:var(--side);color:var(--green-d,var(--green));border:1px solid var(--line);padding:6px 11px;border-radius:999px;font-size:12.5px;font-weight:700;cursor:pointer}
  .c-detail-ask svg,.c-detail-share svg{display:block;flex-shrink:0}
  .c-btn-ic{display:inline-flex;align-items:center;justify-content:center;gap:6px}.c-btn-ic svg{flex-shrink:0}
  .c-detail-share{flex-shrink:0;width:34px;height:32px;display:grid;place-items:center;padding:0;background:var(--side);color:var(--green-d,var(--green));border:1px solid var(--line);border-radius:999px;font-size:15px;line-height:1;cursor:pointer}
  .c-detail-ask:active,.c-detail-share:active{transform:scale(.96)}
  .c-detail-foot{flex-shrink:0;background:var(--paper);border-top:1px solid var(--line);padding:13px 18px;display:flex;align-items:center;gap:14px}
  .c-detail-foot .c-qty button{width:30px;height:30px}
  .c-detail-add{flex:1;background:linear-gradient(135deg,#4a9d5f,#357a48);color:#fff;border:none;padding:14px;border-radius:var(--r-xl);font-size:16px;font-weight:700}

  .c-ci{display:flex;gap:11px;padding:11px 0;border-bottom:1px solid var(--line);align-items:center}
  .c-ci-img{width:52px;height:52px;border-radius:var(--r-md);flex:none;overflow:hidden;background:#e4efe2;position:relative}.c-ci-img img{width:100%;height:100%;object-fit:cover}
  .c-ci-info{flex:1;min-width:0}.c-ci-info .n{font-size:14px;font-weight:700}.c-ci-info .p{font-size:12.5px;color:var(--red);font-weight:700;margin-top:2px;font-family:"Noto Serif SC"}
  .c-field{margin-bottom:13px}.c-field label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}.c-field label .req{color:var(--red)}
  .c-field input,.c-field textarea{width:100%;padding:11px 13px;border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--paper);font-size:14.5px;outline:none}
  .c-field input:focus,.c-field textarea:focus{border-color:var(--gold)}
  .c-field textarea{resize:vertical;min-height:54px}
  .c-pay{display:grid;grid-template-columns:1fr 1fr;gap:11px}
  .c-payopt{border:2px solid var(--line);border-radius:var(--r-md);padding:14px 8px;text-align:center;background:var(--paper);transition:.16s}
  .c-payopt .ic{font-size:26px}.c-payopt .pt{font-size:14px;font-weight:700;margin-top:4px}.c-payopt .ps{font-size:10.5px;color:var(--muted);margin-top:1px}
  .c-payopt.active{border-color:var(--green);background:#eef7ef}
  .c-summary{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 16px;margin:8px 0 16px}
  .c-summary .ln{display:flex;justify-content:space-between;font-size:13.5px;padding:3px 0;color:var(--muted)}
  .c-summary .tot{display:flex;justify-content:space-between;font-size:18px;font-weight:900;font-family:"Noto Serif SC";border-top:1px dashed var(--line);margin-top:6px;padding-top:8px}.c-summary .tot .price{color:var(--red)}
  .c-submit{width:100%;background:linear-gradient(135deg,#4a9d5f,#357a48);color:#fff;border:none;padding:15px;border-radius:var(--r-md);font-size:16px;font-weight:700;box-shadow:var(--shadow2)}
  .c-submit:disabled{opacity:.55}
  .c-note{font-size:11.5px;color:var(--muted);text-align:center;margin-top:12px;line-height:1.6}
  .c-empty{text-align:center;padding:50px 20px;color:var(--muted)}.c-empty .ic{font-size:48px;opacity:.35;margin-bottom:8px}
  .spin{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--red);border-radius:50%;margin:40px auto;animation:sp 1s linear infinite}
  @keyframes sp{to{transform:rotate(360deg)}}

  /* 下单成功 */
  .c-done{text-align:center;padding:24px 18px}
  .c-done .ok{width:68px;height:68px;border-radius:50%;background:#eef7ef;border:3px solid var(--green);display:grid;place-items:center;font-size:34px;margin:0 auto 14px;color:var(--green)}
  .c-done h2{font-family:"Noto Serif SC";font-size:20px;margin-bottom:9px}
  .c-done p{color:var(--muted);font-size:13.5px;line-height:1.7}.c-done .oid{font-weight:900;color:var(--ink);font-family:"Noto Serif SC"}
  .c-screenshot{background:#f3f9ec;border:1.5px solid #cfe3b8;border-radius:var(--r-md);padding:16px;margin:18px 0;text-align:left}
  .c-screenshot .big{font-weight:900;color:#5a7a2e;font-size:15px;display:flex;align-items:center;gap:7px;margin-bottom:7px}
  .c-screenshot p{color:#5a7a2e;font-size:13px;line-height:1.7;margin:0}
  .c-screenshot .cd-opt{font-weight:800;margin-top:10px}
  .c-screenshot .cd-opt:first-of-type{margin-top:0}
  .c-screenshot .cd-optd{margin-top:2px;padding-left:14px}
  .c-tgbtn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;background:var(--tg);color:#fff;border:none;padding:14px;border-radius:var(--r-md);font-size:15.5px;font-weight:700;text-decoration:none;margin-top:12px}
  .c-snap{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:16px;margin-top:6px}
  /* 订单详情：进度条 */
  .c-progress{display:flex;align-items:center;margin-bottom:16px;padding:4px 2px}
  .c-pstep{display:flex;flex-direction:column;align-items:center;gap:5px;flex:none}
  .c-pstep .dot{width:26px;height:26px;border-radius:50%;background:var(--line);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700}
  .c-pstep .lb{font-size:11px;color:var(--muted);white-space:nowrap}
  .c-pstep.done .dot{background:var(--green)}
  .c-pstep.done .lb{color:var(--green-d);font-weight:700}
  .c-pline{flex:1;height:2.5px;background:var(--line);margin:0 -2px;margin-bottom:18px}
  .c-pline.done{background:var(--green)}
  /* 订单详情：卡片 */
  .c-od-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 15px;margin-bottom:12px}
  .c-od-no{font-family:"Noto Serif SC";font-weight:900;font-size:14px;display:flex;align-items:center;gap:8px}
  .c-od-time{font-size:12px;color:var(--muted);margin-top:4px}
  .c-copy{background:var(--green-soft);color:var(--green-d);border:none;font-size:11px;font-weight:700;padding:2px 9px;border-radius:var(--r-sm);cursor:pointer}
  .c-od-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;font-size:13px;color:var(--muted);padding:7px 0;border-bottom:1px solid var(--line)}
  .c-od-row:last-child{border-bottom:none}
  .c-od-row b{color:var(--ink);font-weight:700}
  .c-od-sec{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 15px;margin-bottom:12px}
  .c-od-title{font-size:13px;font-weight:700;color:var(--muted);margin-bottom:6px}
  .c-snap .sh{display:flex;justify-content:space-between;align-items:center;border-bottom:1px dashed var(--line);padding-bottom:10px;margin-bottom:10px}
  .c-snap .sh .no{font-family:"Noto Serif SC";font-weight:900;font-size:15px}
  .c-snap .sh .stt{font-size:11px;background:#e8f5ea;color:var(--green);padding:3px 10px;border-radius:var(--r-md);font-weight:700}
  .c-snap .li{display:flex;justify-content:space-between;font-size:13px;padding:3px 0}.c-snap .li .q{color:var(--muted)}
  .c-snap .tt{border-top:1px dashed var(--line);margin-top:10px;padding-top:10px;display:flex;justify-content:space-between;font-weight:900;font-family:"Noto Serif SC";font-size:16px}.c-snap .tt .price{color:var(--red)}
  .c-snap .meta{font-size:12px;color:var(--muted);margin-top:8px;line-height:1.7}

  /* 我的订单 */
  .c-myorder{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 15px;margin-bottom:11px;cursor:pointer;transition:.15s}
  .c-myorder:active{transform:scale(.99);background:#f5fbf6}
  .c-myorder .top{display:flex;justify-content:space-between;align-items:center}
  .c-myorder .no{font-family:"Noto Serif SC";font-weight:900;font-size:14px}
  .c-myorder .tm{font-size:11px;color:var(--muted);margin-top:1px}
  .c-myorder .stt{font-size:11px;padding:3px 10px;border-radius:var(--r-md);font-weight:700}
  .c-myorder .summ{font-size:12.5px;color:var(--muted);margin:8px 0;line-height:1.5}
  .c-myorder .bot{display:flex;justify-content:space-between;align-items:center;border-top:1px dashed var(--line);padding-top:9px}
  .c-myorder .tot{font-family:"Noto Serif SC";font-weight:900;color:var(--red)}
  .c-myorder .detail{display:inline-flex;align-items:center;gap:3px;background:var(--side);border:none;padding:6px 14px;border-radius:var(--r-lg);font-size:12.5px;font-weight:700;color:var(--ink);pointer-events:none}
  .st-new{background:#e8f5ea;color:var(--red)}.st-confirmed{background:#e4eff5;color:var(--blue)}.st-delivering{background:#fff6e3;color:#b07d10}.st-done{background:#eef7f0;color:var(--green)}.st-cancelled{background:#eee;color:#999}

  /* 我的中心 */
  .c-me{flex:1;overflow-y:auto;background:var(--bg)}
  .c-me-top{background:linear-gradient(135deg,#48ab63 0%,#2c7544 100%);color:#fff;padding:14px 18px;display:flex;align-items:center;gap:13px;box-shadow:0 4px 18px rgba(40,100,55,.2);position:relative;overflow:hidden}
  .c-me-top::after{content:"";position:absolute;right:-30px;top:-40px;width:140px;height:140px;background:radial-gradient(circle,rgba(255,255,255,.12),transparent 70%);pointer-events:none}
  .c-me-avatar{width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.18);border:2px solid rgba(255,255,255,.45);display:grid;place-items:center;font-size:25px;flex:none;position:relative;overflow:hidden}
  .c-me-avwrap{position:relative;flex:none;cursor:pointer;line-height:0}
  .c-avatar-cam{position:absolute;right:-2px;bottom:-2px;width:21px;height:21px;background:#fff;border-radius:50%;display:grid;place-items:center;box-shadow:0 1px 5px rgba(0,0,0,.28);color:var(--green-d);transition:transform .15s}
  .c-me-avwrap:active .c-avatar-cam{transform:scale(.88)}
  .c-avatar-edit{position:absolute;right:-2px;bottom:-2px;width:18px;height:18px;background:#fff;color:var(--green);border-radius:50%;font-size:10px;display:grid;place-items:center;box-shadow:0 1px 4px rgba(0,0,0,.2)}
  .c-me-top .nm{font-family:"Noto Serif SC";font-size:17px;font-weight:900}
  .c-me-top .sub{font-size:11.5px;opacity:.85;margin-top:2px}
  .c-me-top .gbtn{margin-left:auto;background:#fff;color:var(--green);border:none;font-size:12.5px;font-weight:700;padding:8px 15px;border-radius:var(--r-lg)}
  .c-me-section{background:var(--paper);margin:12px;border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow)}
  .c-me-row{display:flex;align-items:center;gap:13px;padding:15px 16px;border-bottom:1px solid var(--line);cursor:pointer}
  .c-me-row:last-child{border-bottom:none}
  .c-me-row .ic{font-size:20px;width:24px;text-align:center;color:var(--green);display:flex;align-items:center;justify-content:center}
  .c-me-row .lbl{flex:1;font-size:14.5px;font-weight:500}
  .c-me-row .val{font-size:13px;color:var(--muted)}.c-me-row .arr{color:var(--muted);font-size:18px}
  .c-me-logout{margin:18px 12px 30px}.c-me-logout button{background:var(--paper);border:1.5px solid var(--line);color:var(--red);padding:13px 0;width:100%;border-radius:var(--r-md);font-size:15px;font-weight:700}

  /* 登录/注册/开屏 */
  .c-welcome{position:fixed;top:0;bottom:0;left:0;right:0;width:100%;max-width:480px;margin:0 auto;z-index:80;background:linear-gradient(160deg,#48ab63,#2c7544);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px 30px;color:#fff;text-align:center;overflow:hidden}
  .c-welcome::before{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.16),transparent 70%);top:-80px;right:-80px}
  .c-welcome::after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(124,193,66,.25),transparent 70%);bottom:-40px;left:-60px}
  .c-welcome .wlogo{width:88px;height:88px;border-radius:var(--r-xl);background:rgba(255,255,255,.16);border:2px solid rgba(255,255,255,.45);display:grid;place-items:center;font-family:"Noto Serif SC";font-weight:900;font-size:42px;margin-bottom:22px;overflow:hidden;position:relative;box-shadow:0 8px 24px rgba(0,0,0,.18)}
  .c-welcome .wlogo img{width:100%;height:100%;object-fit:cover}
  .c-welcome h1{font-family:"Noto Serif SC";font-size:27px;font-weight:900;margin-bottom:8px;position:relative}
  .c-welcome .wsub{font-size:13px;opacity:.85;margin-bottom:42px;line-height:1.6;position:relative}
  .c-welcome .wbtns{width:100%;display:flex;flex-direction:column;gap:12px;position:relative}
  .c-wbtn{width:100%;padding:16px;border-radius:var(--r-lg);font-size:16px;font-weight:700;border:none;display:flex;align-items:center;justify-content:center;gap:9px;transition:transform .12s}
  .c-wbtn:active{transform:scale(.97)}
  .c-wbtn.tg{background:#fff;color:var(--tg);box-shadow:0 6px 18px rgba(0,0,0,.16)}
  .c-wbtn.reg{background:rgba(255,255,255,.16);color:#fff;border:1.5px solid rgba(255,255,255,.5)}
  .c-wbtn.guest{background:transparent;color:#fff;text-decoration:underline;font-weight:500;font-size:14px;padding:10px}
  .c-welcome .wlogin{margin-top:24px;font-size:13.5px;opacity:.9;position:relative}
  .c-welcome .wlogin a{color:#fff;font-weight:700;text-decoration:underline;cursor:pointer}
  .c-welcome .c-wel-lang{position:absolute;top:calc(env(safe-area-inset-top,0px) + 14px);right:16px;z-index:2;display:inline-flex;align-items:center;gap:5px;padding:7px 13px;border-radius:20px;background:rgba(255,255,255,.18);border:1.3px solid rgba(255,255,255,.5);color:#fff;font-size:13px;font-weight:700;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .c-welcome .c-wel-lang:active{transform:scale(.94)}
  .c-auth{padding:6px 2px}
  .c-tglogin{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;background:var(--tg);color:#fff;border:none;padding:14px;border-radius:var(--r-md);font-size:15.5px;font-weight:700;margin-bottom:8px}
  .c-tgnote{font-size:11px;color:var(--muted);text-align:center;margin-bottom:18px;line-height:1.5}
  .c-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;margin:14px 0}
  .c-divider::before,.c-divider::after{content:"";flex:1;height:1px;background:var(--line)}
  .c-authswitch{text-align:center;font-size:13px;margin-top:16px;color:var(--muted)}
  .c-authswitch a{color:var(--red);font-weight:700;cursor:pointer}
  .opt-tag{font-size:10px;color:var(--muted);font-weight:400}
  .c-addr-pick{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--r-md);padding:13px 14px;margin-bottom:14px;display:flex;align-items:center;gap:11px;cursor:pointer}
  .c-addr-pick.empty-pick{border-style:dashed;border-color:var(--red);background:#eef7ef}
  .c-addr-pick .ic{font-size:22px;color:var(--red)}
  .c-addr-pick .info{flex:1;min-width:0}.c-addr-pick .info .who{font-size:14px;font-weight:700}
  .c-addr-pick .info .det{font-size:12.5px;color:var(--muted);margin-top:2px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .c-addr-pick .info .em{font-size:13.5px;color:var(--red);font-weight:600}
  .c-addr-pick .arr{color:var(--muted);font-size:18px}
  .c-addr-card{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--r-md);padding:14px 15px;margin-bottom:11px;position:relative}
  .c-addr-card.default{border-color:var(--red)}
  .c-addr-card .dft{position:absolute;top:12px;right:12px;font-size:10px;background:var(--red);color:#fff;padding:2px 8px;border-radius:var(--r-sm);font-weight:700}
  .c-addr-card .who{font-size:14.5px;font-weight:700}.c-addr-card .who .ph{font-size:13px;color:var(--muted);font-weight:400;margin-left:8px}
  .c-addr-card .det{font-size:13px;color:#5a6b5e;margin-top:5px;line-height:1.5}
  .c-addr-card .ops{display:flex;gap:8px;margin-top:11px;border-top:1px dashed var(--line);padding-top:10px}
  .c-addr-card .ops button{background:none;border:none;font-size:12.5px;color:var(--muted);font-weight:600}
  .c-addr-card .ops .setdft{color:var(--red)}.c-addr-card .ops .del{margin-left:auto;color:var(--red)}
  .c-addr-add{width:100%;border:1.5px dashed var(--red);background:#eef7ef;color:var(--red);padding:14px;border-radius:var(--r-md);font-size:15px;font-weight:700}

  .toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%) translateY(200px);opacity:0;background:var(--ink);color:#fff;padding:12px 22px;border-radius:var(--r-pill);font-size:14px;z-index:200;transition:transform .3s,opacity .3s;box-shadow:0 8px 24px rgba(0,0,0,.25);max-width:90%;text-align:center;pointer-events:none}
  .toast.show{transform:translateX(-50%) translateY(0);opacity:1}
  .dlg-mask{position:fixed;inset:0;background:rgba(20,40,25,.5);z-index:300;display:none;align-items:center;justify-content:center;padding:30px;backdrop-filter:blur(3px)}
  .dlg-mask.show{display:flex}
  .dlg-box{background:var(--paper);border-radius:var(--r-lg);width:100%;max-width:320px;padding:24px 22px 18px;box-shadow:0 20px 50px rgba(20,50,30,.3)}
  .dlg-title{font-family:"Noto Serif SC";font-size:17px;font-weight:900;margin-bottom:8px}
  .dlg-msg{font-size:14px;color:#5a6b5e;line-height:1.6;margin-bottom:16px;max-height:50vh;overflow-y:auto;white-space:pre-wrap;text-align:left}
  .dlg-btns{display:flex;gap:10px}.dlg-btns button{flex:1;padding:12px;border-radius:var(--r-md);font-size:15px;font-weight:700;border:none}
  .dlg-cancel{background:var(--side);color:var(--ink)}.dlg-ok{background:linear-gradient(135deg,var(--red),var(--red2));color:#fff}

/* ===== 加购微交互：小球飞入购物车 + 数字跳动 + 按钮弹跳 ===== */
.c-flyball{position:fixed;width:18px;height:18px;border-radius:50%;background:linear-gradient(135deg,#5cb574,#2c7544);z-index:200;pointer-events:none;box-shadow:0 2px 8px rgba(44,117,68,.55);transition:transform .5s cubic-bezier(.5,-0.2,.7,1),opacity .5s ease-in}
.c-badge.bump{animation:cbadgebump .42s cubic-bezier(.34,1.56,.64,1)}
@keyframes cbadgebump{0%{transform:scale(1)}45%{transform:scale(1.55)}100%{transform:scale(1)}}
.c-add{transition:transform .12s}
.c-add:active{transform:scale(.8)}

/* ===== 空状态：圆形插画图标 + 标题 + 引导文案 ===== */
.c-empty-ic{width:92px;height:92px;margin:0 auto 14px;border-radius:50%;background:linear-gradient(135deg,var(--green-soft),#d8f0de);display:grid;place-items:center;color:var(--green-l)}
.c-empty-t{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:5px}
.c-empty-s{font-size:13px;color:var(--muted);line-height:1.6}
/* ===== 骨架屏 ===== */
.c-skel-card{display:flex;gap:12px;padding:13px 14px;align-items:center}
.c-skel-img{width:70px;height:70px;border-radius:var(--r-md);flex:none;background:linear-gradient(90deg,#eef4ee 25%,#e2ede2 37%,#eef4ee 63%);background-size:400% 100%;animation:cskel 1.4s ease infinite}
.c-skel-l{height:13px;border-radius:6px;background:linear-gradient(90deg,#eef4ee 25%,#e2ede2 37%,#eef4ee 63%);background-size:400% 100%;animation:cskel 1.4s ease infinite;margin-bottom:9px}
@keyframes cskel{0%{background-position:100% 50%}100%{background-position:0 50%}}
