  * { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
  :root{
    --main:#E8732C; --main-deep:#C4561B; --main-bg:#FFF4EC;
    --green:#2BA471; --green-bg:#EAF6F0;
    --red:#D64545; --red-bg:#FDEEEE;
    --ink:#1F2329; --sub:#646A73; --line:#E8EAED; --bg:#F2F3F5;
    --gray:#9AA0A6;
  }
  html,body{ height:100%; }
  body{ font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Helvetica Neue",sans-serif; background:#E4E7EB; color:var(--ink); font-size:14px; line-height:1.5; }
  #phone{ max-width:420px; margin:0 auto; min-height:100vh; background:var(--bg); position:relative; box-shadow:0 0 24px rgba(0,0,0,.12); padding-bottom:74px; }
  .header{ position:sticky; top:0; z-index:20; background:#fff; border-bottom:1px solid var(--line); display:flex; align-items:center; height:50px; padding:0 8px; }
  .header .back{ width:44px; height:44px; display:flex; align-items:center; justify-content:center; border:none; background:none; color:var(--ink); cursor:pointer; flex-shrink:0; }
  .header h1{ flex:1; font-size:16px; font-weight:600; text-align:center; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .header .spacer{ width:44px; flex-shrink:0; }
  .content{ padding:12px; }
  .card{ background:#fff; border:1px solid var(--line); border-radius:12px; margin-bottom:10px; }
  .card-pad{ padding:14px; }
  .btn{ display:block; width:100%; height:46px; border:none; border-radius:10px; background:var(--main); color:#fff; font-size:16px; font-weight:600; cursor:pointer; }
  .btn:active{ opacity:.85; }
  .btn.disabled{ background:#C9CDD2; color:#fff; pointer-events:none; }
  .btn.gray{ background:#EEF1F5; color:var(--ink); }
  .btn.green{ background:var(--green); }
  .btn.red{ background:var(--red); }
  .btn.mini{ display:inline-block; width:auto; height:34px; padding:0 14px; font-size:13px; font-weight:500; border-radius:8px; }
  .btn.small{ display:inline-block; width:auto; height:38px; padding:0 16px; font-size:13px; border-radius:8px; }
  .badge{ display:inline-block; min-width:18px; height:18px; padding:0 5px; border-radius:9px; background:var(--red); color:#fff; font-size:11px; line-height:18px; text-align:center; font-weight:600; }
  .price{ color:var(--main-deep); font-weight:700; }
  .price::before{ content:"¥"; font-size:.8em; margin-right:1px; }
  .tag{ display:inline-block; font-size:11px; padding:2px 8px; border-radius:6px; background:#F0F1F3; color:var(--sub); }
  .tag.green{ background:var(--green-bg); color:#1E7A52; }
  .tag.orange{ background:var(--main-bg); color:var(--main-deep); }
  .tag.red{ background:var(--red-bg); color:var(--red); }
  /* 商品详情顶部「收藏」标签：与同排「已售」标签对齐（同字号/内距/圆角），点按切换 */
  .fav-tag{ display:inline-block; font-size:11px; padding:2px 8px; border-radius:6px; background:#F0F1F3; color:var(--sub); border:none; cursor:pointer; font-family:inherit; line-height:inherit; }
  .fav-tag.on{ background:var(--main-bg); color:var(--main-deep); }

  /* ================= 美团式定位栏 + 全屏地址选择面板 ================= */
  .locbar{ display:flex; align-items:center; gap:8px; margin-bottom:10px; padding:10px 12px; background:#fff; border:1px solid var(--line); border-radius:12px; cursor:pointer; user-select:none; }
  .locbar:active{ background:var(--main-bg); }
  .locbar-txt{ flex:1; min-width:0; font-size:14px; font-weight:600; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .locbar-txt.manual{ color:var(--green); }
  .locbar-txt.demo{ color:var(--sub); font-weight:400; }
  .locbar-r{ flex-shrink:0; font-size:12px; color:var(--main-deep); display:flex; align-items:center; gap:2px; }
  .addr-picker{ position:fixed; left:50%; transform:translateX(-50%); width:100%; max-width:420px; top:0; height:100vh; z-index:90; background:rgba(0,0,0,.45); }
  .ap-sheet{ position:absolute; left:0; right:0; bottom:0; background:#fff; border-radius:18px 18px 0 0; max-height:88vh; display:flex; flex-direction:column; box-shadow:0 -8px 30px rgba(0,0,0,.18); }
  .ap-head{ display:flex; align-items:center; justify-content:space-between; padding:14px 16px 8px; flex-shrink:0; }
  .ap-title{ font-size:16px; font-weight:700; }
  .ap-close{ width:32px; height:32px; border:none; background:#F2F3F5; border-radius:50%; font-size:14px; color:var(--sub); cursor:pointer; display:flex; align-items:center; justify-content:center; }
  .ap-search{ padding:4px 16px 10px; flex-shrink:0; }
  .ap-search input{ width:100%; height:40px; border:1px solid var(--line); border-radius:20px; padding:0 16px; font-size:14px; outline:none; background:#F7F8FA; }
  .ap-search input:focus{ border-color:var(--main); background:#fff; }
  .ap-cur{ margin:0 16px 8px; padding:10px; border:none; border-radius:10px; background:var(--main-bg); color:var(--main-deep); font-size:14px; font-weight:600; cursor:pointer; text-align:center; }
  .ap-cur:active{ opacity:.8; }
  .ap-clear{ margin:4px 16px 8px; padding:10px; border:1px dashed var(--line); border-radius:10px; background:#fff; color:var(--sub); font-size:13px; cursor:pointer; }
  #ap-list{ flex:1; overflow-y:auto; min-height:160px; }
  .ap-item{ display:flex; align-items:center; gap:10px; padding:12px 16px; cursor:pointer; border-bottom:1px solid #F4F5F7; }
  .ap-item:active{ background:var(--main-bg); }
  .ap-item-tx{ flex:1; min-width:0; }
  .ap-name{ font-size:14px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .ap-addr{ font-size:11px; color:var(--sub); margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .ap-kind{ flex-shrink:0; font-size:10px; padding:2px 6px; border-radius:4px; background:#F0F1F3; color:var(--sub); }
  .ap-item-sub{ padding:10px 16px; font-size:12px; color:var(--gray); }
  .ap-toast{ position:fixed; left:50%; transform:translateX(-50%); bottom:110px; z-index:99; max-width:340px; padding:10px 16px; background:rgba(31,35,41,.92); color:#fff; font-size:13px; border-radius:10px; text-align:center; pointer-events:none; }
  body.no-scroll{ overflow:hidden; }
  /* 营业状态横幅 */
  .status-banner{ display:flex; align-items:center; gap:10px; padding:14px; border-radius:12px; margin-bottom:10px; }
  .status-banner.open{ background:var(--green-bg); border:1px solid #CFE8DA; }
  .status-banner.closed{ background:var(--red-bg); border:1px solid #F5CFCF; }
  .status-dot{ width:12px; height:12px; border-radius:50%; flex-shrink:0; }
  .open .status-dot{ background:var(--green); box-shadow:0 0 0 4px rgba(43,164,113,.18); }
  .closed .status-dot{ background:var(--red); box-shadow:0 0 0 4px rgba(214,69,69,.15); }
  .status-banner .st-text{ flex:1; }
  .status-banner .st-title{ font-size:16px; font-weight:700; }
  .status-banner .st-sub{ font-size:12px; color:var(--sub); margin-top:2px; }
  .status-banner .st-time{ font-size:12px; color:var(--sub); }
  /* 分类与网格 */
  .cats{ display:flex; gap:8px; overflow-x:auto; padding:2px 0 10px; }
  .cats .cat{ flex-shrink:0; height:34px; line-height:34px; padding:0 16px; border-radius:17px; background:#fff; border:1px solid var(--line); font-size:13px; cursor:pointer; }
  .cats .cat.on{ background:var(--main); color:#fff; border-color:var(--main); font-weight:600; }
  .grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:0; }
  .pcard{ background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; cursor:pointer; position:relative; }
  .pcard.soldout{ opacity:.6; }
  /* v3.3 商城首页风（美团/拼多多）：图放大、字缩小，突出商品图弱化文字；名称+价格+品类一行 */
  .pcard .ph{ height:168px; display:flex; align-items:center; justify-content:center; }
  .pcard .ph svg{ width:84px; height:84px; }
  .pcard .pi{ padding:8px 10px 10px; }
  .pcard .pn{ font-size:12px; font-weight:500; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .pcard .prow{ display:flex; align-items:center; gap:6px; min-width:0; }
  .pcard .prow .pn{ min-width:0; font-size:12px; font-weight:500; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .pcard .prow .price{ flex-shrink:0; margin-left:auto; font-size:14px; }
  .pcard .prow .tag{ flex-shrink:0; margin-left:auto; max-width:60px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .pcard .ps{ font-size:10px; color:var(--gray); margin:1px 0 5px; }
  .pcard .pr{ display:flex; align-items:center; justify-content:space-between; gap:6px; }
  .pcard .stars svg{ width:10px; height:10px; }
  .pcard .price{ font-size:14px; }
  .pcard .tag{ font-size:10px; }
  /* 火爆摊主榜：左侧店头大图（与文字框三行等高对齐，2:1 横图 cover），未上传回落主题色图标位 */
  .stall-row .shop-thumb{ width:120px; height:84px; border-radius:10px; object-fit:cover; flex-shrink:0; }
  .stall-row .shop-thumb-box{ width:120px; height:84px; border-radius:10px; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
  .stall-row .rm{ flex:1; min-width:0; display:flex; flex-direction:column; justify-content:center; gap:4px; }
  /* 火爆商品榜：左侧商品大图（与摊主榜同规格 120×84，cover），图加载失败回落奶油图标位 */
  .hot-prow .hot-pimg{ width:120px; height:84px; border-radius:10px; object-fit:cover; flex-shrink:0; }
  .hot-prow .hot-pimg-box{ width:120px; height:84px; border-radius:10px; flex-shrink:0; background:linear-gradient(135deg,#FFF6EE,#FDE8D8); display:flex; align-items:center; justify-content:center; }
  /* v3.4 摊主页商品卡：名称+价格一行；第二行 星级+评分+品类（左） | 已售（右，与价格对齐） */
  .sgrid .pcard .prow .pn{ flex:1; min-width:0; }
  .sgrid .pcard .ssrow{ display:flex; align-items:center; justify-content:space-between; gap:6px; margin-top:3px; min-width:0; }
  .sgrid .pcard .psl{ display:flex; align-items:center; gap:5px; min-width:0; overflow:hidden; }
  .sgrid .pcard .psl .ps{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .sgrid .pcard .crtag{ flex-shrink:0; font-size:10px; color:var(--main-deep); background:var(--main-bg); padding:1px 6px; border-radius:8px; max-width:70px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  /* 通用品类/类型标签（我的评价等页复用） */
  .crtag{ flex-shrink:0; font-size:10px; color:var(--main-deep); background:var(--main-bg); padding:1px 6px; border-radius:8px; white-space:nowrap; }
  /* ===== 摊主页招牌菜照片带（与首页/详情同一套奶油图框） ===== */
  .signs-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:10px; }
  .sign-cell{ position:relative; height:104px; border-radius:12px; overflow:hidden; cursor:pointer; background:linear-gradient(135deg,#FFF6EE,#FDE8D8); box-shadow:0 1px 3px rgba(31,35,41,.05); }
  .sign-cell:active{ opacity:.85; }
  .sign-cell img{ width:100%; height:100%; object-fit:cover; display:block; }
  .sign-cell .sign-name{ position:absolute; left:0; right:0; bottom:0; padding:14px 8px 6px; font-size:11px; font-weight:600; color:#fff; background:linear-gradient(180deg,rgba(31,35,41,0),rgba(31,35,41,.62)); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  /* v3.4 摊主页 tab 一行显示 */
  .stall-tabs{ display:flex; gap:8px; margin:10px 0; }
  .stall-tab{ flex:1; text-align:center; font-size:13px; padding:8px 0; background:#fff; border:1px solid var(--line); border-radius:10px; color:var(--sub); cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .stall-tab.on{ background:var(--main); color:#fff; border-color:var(--main); font-weight:600; }
  .pcard .add{ width:30px; height:30px; border-radius:50%; background:var(--main); color:#fff; border:none; font-size:18px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
  .soldout-mark{ position:absolute; top:8px; right:8px; background:rgba(31,35,41,.72); color:#fff; font-size:11px; padding:2px 8px; border-radius:6px; }
  /* v3.5 摊主页「为你置顶」卡：主色描边高亮（首页推广位跳来置顶的商品） */
  .pcard.pcard-top{ border:1.5px solid var(--main); box-shadow:0 3px 10px rgba(232,115,44,.18); }
  /* 推荐横滑 */
  .hscroll{ display:flex; gap:10px; overflow-x:auto; padding-bottom:4px; }
  .rec-card{ flex-shrink:0; width:136px; background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; cursor:pointer; }
  .rec-card .ph{ height:136px; display:flex; align-items:center; justify-content:center; }
  .rec-card .ph svg{ width:76px; height:76px; }
  .rec-card .pi{ padding:7px 9px 9px; display:flex; align-items:center; justify-content:space-between; gap:6px; }
  .rec-card .pn{ min-width:0; font-size:12px; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .rec-card .price{ flex-shrink:0; font-size:13px; }
  /* tabbar */
  #tabbar{ position:fixed; bottom:0; left:50%; transform:translateX(-50%); width:min(420px,100%); background:#fff; border-top:1px solid var(--line); display:flex; z-index:30; padding-bottom:env(safe-area-inset-bottom); }
  .tab{ flex:1; height:56px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; background:none; border:none; color:var(--gray); cursor:pointer; font-size:11px; }
  .tab svg{ width:22px; height:22px; }
  .tab.on{ color:var(--main); font-weight:600; }
  /* 列表行 */
  .row{ display:flex; align-items:center; gap:10px; padding:12px 14px; background:#fff; border-bottom:1px solid var(--line); }
  .row:last-child{ border-bottom:none; }
  .row .rm{ flex:1; min-width:0; }
  .row .rt{ font-size:14px; font-weight:600; }
  .row .rs{ font-size:12px; color:var(--sub); margin-top:2px; }
  .row-ico{ width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .row-ico svg{ width:24px; height:24px; }
  /* 订单卡 */
  .ord-head{ display:flex; justify-content:space-between; align-items:center; padding:12px 14px 0; font-size:12px; color:var(--sub); }
  .ord-items{ padding:10px 14px 0; }
  .ord-item{ display:flex; justify-content:space-between; font-size:13px; padding:3px 0; }
  .ord-item .nm{ color:var(--ink); }
  .ord-item .qt{ color:var(--sub); }
  .ord-foot{ display:flex; justify-content:space-between; align-items:center; padding:10px 14px 12px; }
  .ord-actions{ display:flex; gap:8px; }
  /* 评价星星 */
  .stars{ display:flex; gap:2px; }
  .stars svg{ width:18px; height:18px; }
  .stars svg.off{ opacity:.25; }
  .stars-lg svg{ width:30px; height:30px; }
  /* 聊天 */
  .chat-box{ display:flex; flex-direction:column; min-height:calc(100vh - 190px); }
  .msg{ max-width:78%; padding:10px 12px; border-radius:12px; font-size:14px; margin-bottom:10px; word-break:break-word; }
  .msg.cus{ background:#fff; border:1px solid var(--line); align-self:flex-start; border-top-left-radius:2px; }
  .msg.sta{ background:var(--main); color:#fff; align-self:flex-end; border-top-right-radius:2px; }
  .msg .mt{ font-size:10px; color:var(--sub); margin-top:4px; }
  .chat-input{ position:fixed; bottom:56px; left:50%; transform:translateX(-50%); width:min(420px,100%); background:#fff; border-top:1px solid var(--line); display:flex; gap:8px; padding:10px; z-index:25; }
  .chat-input input{ flex:1; height:40px; border:1px solid var(--line); border-radius:10px; padding:0 12px; font-size:16px; outline:none; }
  .chat-input .send{ width:64px; height:40px; border:none; border-radius:10px; background:var(--main); color:#fff; font-size:14px; font-weight:600; cursor:pointer; }
  /* 工作台 */
  .dash-switch{ display:flex; align-items:center; gap:12px; padding:16px; }
  .switch{ width:52px; height:30px; border-radius:15px; border:none; position:relative; cursor:pointer; transition:background .2s; }
  .switch::after{ content:""; position:absolute; top:3px; left:3px; width:24px; height:24px; border-radius:50%; background:#fff; transition:left .2s; box-shadow:0 1px 3px rgba(0,0,0,.2); }
  .switch.on{ background:var(--green); }
  .switch.on::after{ left:25px; }
  .switch.off{ background:#C9CDD2; }
  .dash-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:10px; }
  .stat{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:12px; text-align:center; }
  .stat .num{ font-size:20px; font-weight:700; color:var(--main-deep); }
  .stat .lb{ font-size:12px; color:var(--sub); margin-top:2px; }
  .quick-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
  .quick{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:12px 4px; text-align:center; cursor:pointer; position:relative; }
  .quick svg{ width:24px; height:24px; }
  .quick .qn{ font-size:12px; margin-top:6px; }
  .quick .badge{ position:absolute; top:8px; right:8px; }
  /* 产品管理行 */
  .toggle{ width:44px; height:26px; border-radius:13px; border:none; position:relative; cursor:pointer; flex-shrink:0; }
  .toggle::after{ content:""; position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%; background:#fff; transition:left .2s; box-shadow:0 1px 3px rgba(0,0,0,.2); }
  .toggle.on{ background:var(--green); }
  .toggle.on::after{ left:21px; }
  .toggle.off{ background:#C9CDD2; }
  /* 表单 */
  .field{ margin-bottom:12px; }
  .field label{ display:block; font-size:13px; color:var(--sub); margin-bottom:6px; }
  .field input,.field textarea,.field select{ width:100%; height:44px; border:1px solid var(--line); border-radius:10px; padding:0 12px; font-size:16px; outline:none; background:#fff; font-family:inherit; }
  .field textarea{ height:84px; padding:10px 12px; resize:none; }
  .presets{ display:flex; gap:8px; flex-wrap:wrap; }
  .preset{ width:52px; height:52px; border-radius:10px; border:2px solid var(--line); display:flex; align-items:center; justify-content:center; cursor:pointer; background:#FFF9F3; }
  .preset svg{ width:30px; height:30px; }
  .preset.on{ border-color:var(--main); background:var(--main-bg); }
  /* ===== 欢迎页 · 三身份入口 ===== */
  .welcome{ background:linear-gradient(160deg,#E8732C 0%,#C4561B 55%,#A63E10 100%); min-height:100vh; padding:56px 24px 30px; color:#fff; }
  .entry-card{ display:flex; align-items:center; gap:12px; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.4); border-radius:14px; padding:15px 14px; margin-bottom:12px; cursor:pointer; }
  .entry-card:active{ opacity:.88; }
  .entry-card.solid{ background:#fff; color:var(--ink); }
  .entry-card .ec-ico{ width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .entry-card .et{ font-size:16px; font-weight:700; }
  .entry-card .es{ font-size:12px; opacity:.82; margin-top:2px; }
  .entry-card.solid .es{ color:#646A73; opacity:1; }
  .entry-card .arrow{ margin-left:auto; font-size:24px; opacity:.55; line-height:1; }
  .entry-sep{ display:flex; align-items:center; gap:10px; font-size:11px; opacity:.72; margin:22px 0 12px; letter-spacing:1px; }
  .entry-sep::before,.entry-sep::after{ content:""; flex:1; height:1px; background:rgba(255,255,255,.32); }
  /* ===== 登录 / 注册 ===== */
  .auth-top{ background:linear-gradient(160deg,#E8732C 0%,#C4561B 60%,#A63E10 100%); color:#fff; padding:36px 20px 80px; text-align:center; border-radius:0 0 30px 30px; }
  .auth-top .logo{ width:64px; height:64px; margin:0 auto 12px; background:rgba(255,255,255,.16); border-radius:18px; display:flex; align-items:center; justify-content:center; }
  .auth-top h2{ font-size:20px; font-weight:800; letter-spacing:1px; }
  .auth-top p{ font-size:12px; opacity:.85; margin-top:5px; }
  .auth-card{ margin:-52px 16px 0; position:relative; z-index:2; background:#fff; border:1px solid var(--line); border-radius:14px; padding:18px 16px 16px; box-shadow:0 8px 24px rgba(0,0,0,.07); }
  .auth-link{ text-align:center; font-size:13px; color:var(--sub); margin-top:14px; }
  .auth-link a{ color:var(--main-deep); font-weight:600; cursor:pointer; }
  .demo-hint{ background:var(--main-bg); border:1px solid #F6D9C3; border-radius:10px; padding:10px 12px; font-size:12px; color:#8A4A16; line-height:1.7; margin-top:14px; }
  .agreed-row{ font-size:12px; color:var(--sub); line-height:1.8; margin:10px 0; }
  .agreed-row .chk{ display:flex; align-items:flex-start; gap:6px; cursor:pointer; }
  .agreed-row .chk input{ margin-top:2px; accent-color:var(--main); }
  .agreed-row a{ color:var(--main-deep); font-weight:600; }
  .share-btn{ display:flex; align-items:center; gap:6px; font-size:12px; font-weight:600; color:var(--main-deep); background:#FFF4EC; border:1px solid #FFE0B8; border-radius:20px; padding:6px 12px; cursor:pointer; }
  .consent-switch-row{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 0; font-size:13px; }
  .buy-bar{ position:absolute; left:0; right:0; bottom:0; display:flex; gap:8px; padding:10px 12px 12px; background:#fff; border-top:1px solid var(--line); z-index:20; }
  .buy-bar .btn{ margin:0; }
  .buy-bar .btn[disabled]{ opacity:.4; cursor:not-allowed; }
  .ord-head{ display:flex; align-items:center; justify-content:space-between; font-size:12px; color:#646A73; margin-bottom:6px; }
  .ord-item{ display:flex; align-items:center; gap:8px; font-size:13px; padding:3px 0; }
  .ord-item .nm{ flex:1; min-width:0; }
  .ord-item .qt{ color:#646A73; }
  .ord-foot{ display:flex; justify-content:flex-end; gap:8px; margin-top:8px; padding-top:8px; border-top:1px solid #F2F3F5; }
  .status-tag{ font-size:11px; padding:2px 8px; border-radius:8px; background:#F2F3F5; color:#646A73; }
  .status-tag.t-green{ background:#E8F8EE; color:#1E8E3E; } .status-tag.t-orange{ background:#FFF3E0; color:#B26A00; }
  .status-tag.t-gray{ background:#F2F3F5; color:#9AA0A6; } .status-tag.t-red{ background:#FDE8E8; color:#C0392B; }
  /* ===== 平台管理 ===== */
  .stats-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:10px; }
  .stats-4 .stat{ padding:10px 6px; }
  .stats-4 .num{ font-size:16px; }
  .stats-4 .lb{ font-size:11px; }
  .toolbar{ display:flex; gap:8px; margin-bottom:10px; }
  .toolbar input{ flex:1; height:38px; border:1px solid var(--line); border-radius:10px; padding:0 12px; font-size:16px; outline:none; background:#fff; }
  .toolbar .btn.small{ height:38px; }
  /* ===== 火爆榜与摊主展示 ===== */
  .section-title .more{ margin-left:auto; font-size:12px; font-weight:400; color:var(--sub); display:flex; align-items:center; gap:2px; cursor:pointer; flex-shrink:0; }
  .section-title .more:active{ opacity:.7; }
  .stall-card{ flex-shrink:0; width:132px; background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; cursor:pointer; }
  .stall-card .ph{ height:70px; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#FFF4EC,#FDE7DC); }
  .stall-card .ph svg{ width:44px; height:44px; }
  .stall-card .pi{ padding:8px 10px 10px; }
  .stall-card .sn{ font-size:13px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .stall-card .ss{ font-size:11px; color:var(--gray); margin-top:2px; }
  .stall-row{ display:flex; align-items:center; gap:12px; padding:14px; background:#fff; border:1px solid var(--line); border-radius:12px; margin-bottom:10px; cursor:pointer; }
  .stall-row:active{ opacity:.9; }
  .stall-ico{ width:48px; height:48px; border-radius:14px; display:flex; align-items:center; justify-content:center; flex-shrink:0; background:linear-gradient(135deg,#FFF4EC,#FDE7DC); }
  .stall-ico svg{ width:28px; height:28px; }
  .hot-num{ font-size:12px; color:var(--main-deep); font-weight:600; flex-shrink:0; }
  .hot-rank{ width:20px; height:20px; border-radius:6px; background:#F0F1F3; color:var(--sub); font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .hot-rank.top{ background:var(--main); color:#fff; }
  /* 弹窗 */
  .mask{ position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:40; display:flex; align-items:flex-end; justify-content:center; }
  .sheet{ width:min(420px,100%); background:#fff; border-radius:16px 16px 0 0; padding:16px; animation:up .18s ease; }
  @keyframes up{ from{ transform:translateY(40px); opacity:.4; } to{ transform:translateY(0); opacity:1; } }
  .sheet h3{ font-size:16px; margin-bottom:12px; text-align:center; }
  .cart-line{ display:flex; align-items:center; gap:8px; padding:8px 0; font-size:14px; }
  .cart-line .nm{ flex:1; }
  .cart-line .qty-ctl{ display:flex; align-items:center; gap:10px; }
  .cart-line .qty-ctl button{ width:28px; height:28px; border-radius:50%; border:1px solid var(--line); background:#fff; font-size:16px; cursor:pointer; display:flex; align-items:center; justify-content:center; }
  .cart-total{ display:flex; justify-content:space-between; align-items:center; padding:12px 0 8px; font-weight:600; }
  /* 评价卡 */
  .rev-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; }
  .rev-user{ font-size:13px; font-weight:600; }
  .rev-time{ font-size:11px; color:var(--gray); }
  .rev-content{ font-size:13px; color:var(--ink); }
  .rev-reply{ background:var(--main-bg); border-radius:8px; padding:8px 10px; font-size:12px; color:var(--main-deep); margin-top:8px; }
  /* 评价贴图 / 跟评 / 大图预览（摊主端评价管理复用） */
  .rev-imgs{ display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }
  .rev-imgs img{ width:76px; height:76px; object-fit:cover; border-radius:10px; border:1px solid #F3E5D8; background:linear-gradient(135deg,#FFF6EE,#FDE8D8); cursor:pointer; }
  .img-preview-mask{ position:fixed; inset:0; z-index:200; background:rgba(0,0,0,.85); display:flex; align-items:center; justify-content:center; cursor:zoom-out; }
  .img-preview-mask img{ max-width:92%; max-height:88%; border-radius:8px; }
  /* v3.1 跟评（跟贴评价） */
  .fu-list{ margin-top:10px; padding:10px; background:#F7F8FA; border-radius:10px; display:flex; flex-direction:column; gap:10px; }
  .fu-item{ font-size:13px; color:#1F2329; }
  .fu-head{ display:flex; align-items:center; gap:8px; }
  .fu-head b{ font-size:12px; color:#444; }
  .fu-time{ font-size:11px; color:#9AA0A6; }
  .fu-text{ margin-top:3px; line-height:1.6; }
  .fu-item .rev-imgs{ margin-top:6px; }
  .fu-item .rev-imgs img{ width:64px; height:64px; }
  .fu-foot{ margin-top:10px; padding-top:9px; border-top:1px dashed #E8EAED; display:flex; align-items:center; gap:6px; font-size:12px; color:var(--main-deep); cursor:pointer; user-select:none; }
  .fu-foot:active{ opacity:.6; }
  .fu-foot svg{ flex-shrink:0; }
  /* 购物车悬浮 */
  .cart-fab{ position:fixed; bottom:72px; right:max(12px,calc(50% - 198px)); width:52px; height:52px; border-radius:50%; background:var(--main); color:#fff; border:none; display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:0 4px 12px rgba(232,115,44,.35); z-index:25; }
  .cart-fab svg{ width:24px; height:24px; }
  .cart-fab .badge{ position:absolute; top:-4px; right:-4px; }
  /* 收款码 */
  .pay-code{ width:150px; height:150px; margin:10px auto; border-radius:12px; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; background:#fff; }
  .pay-code svg{ width:128px; height:128px; }
  .section-title{ font-size:14px; font-weight:700; margin:14px 0 8px; display:flex; align-items:center; gap:6px; }
  .section-title::before{ content:""; width:4px; height:14px; border-radius:2px; background:var(--main); }
  .empty{ text-align:center; color:var(--gray); padding:40px 0; font-size:13px; }
  .toast{ position:fixed; top:18%; left:50%; transform:translateX(-50%); background:rgba(31,35,41,.88); color:#fff; padding:10px 18px; border-radius:10px; font-size:13px; z-index:60; animation:up .2s ease; max-width:80%; }
  .notice{ background:#FFF7E6; border:1px solid #FFE7B3; border-radius:10px; padding:10px 12px; font-size:12px; color:#8A5A00; margin-bottom:10px; line-height:1.6; }
  /* ===== VI 美化升级（美团/饿了么式视觉） ===== */
  .btn{ background:linear-gradient(135deg,#FF8A3D,#E8732C); box-shadow:0 3px 8px rgba(232,115,44,.25); }
  .btn.gray{ background:#EEF1F5; box-shadow:none; color:var(--ink); }
  .btn.green{ background:linear-gradient(135deg,#35C08A,#2BA471); box-shadow:0 3px 8px rgba(43,164,113,.22); }
  .btn.red{ background:linear-gradient(135deg,#E76A5F,#D64545); box-shadow:0 3px 8px rgba(214,69,69,.2); }
  .btn.mini,.btn.small{ box-shadow:none; }
  .card{ box-shadow:0 1px 3px rgba(31,35,41,.05); }
  .row-ico{ overflow:hidden; }
  .pimg{ width:100%; height:100%; object-fit:cover; display:block; }
  /* ===== 统一配图框架：暖奶油图框（商品卡/横排卡/详情大图共用同一视觉语言） ===== */
  .img-cream{ background:linear-gradient(135deg,#FFF6EE,#FDE8D8); }
  .pcard .ph, .rec-card .ph, .row-ico, .stall-card .ph{ background:linear-gradient(135deg,#FFF6EE,#FDE8D8); }
  .pimg{ box-shadow:inset 0 0 0 1px rgba(196,86,27,.05); }
  .pimg-lg{ width:100%; height:100%; object-fit:cover; display:block; }
  .hero-banner{ position:relative; border-radius:16px; overflow:hidden; margin-bottom:12px; padding:18px 16px; color:#fff; background:linear-gradient(135deg,#FF8A3D 0%,#E8732C 55%,#C4561B 100%); box-shadow:0 4px 12px rgba(232,115,44,.28); }
  .hero-banner::before{ content:""; position:absolute; right:26px; bottom:-50px; width:120px; height:120px; border-radius:50%; background:rgba(255,255,255,.12); }
  .hero-banner::after{ content:""; position:absolute; right:-26px; top:-34px; width:120px; height:120px; border-radius:50%; background:rgba(255,255,255,.14); }
  .hero-banner .hb-t{ font-size:21px; font-weight:800; letter-spacing:1px; position:relative; z-index:1; }
  .hero-banner .hb-s{ font-size:12px; opacity:.92; margin-top:6px; position:relative; z-index:1; }
  .hero-banner .hb-chip{ display:inline-block; margin-top:10px; font-size:11px; padding:3px 12px; border-radius:20px; background:rgba(255,255,255,.22); position:relative; z-index:1; }
  /* ===== 顶栏用户头像入口 ===== */
  .hdr-user{ display:flex; align-items:center; gap:6px; flex-shrink:0; min-width:0; max-width:140px; cursor:pointer; padding:4px 6px; border-radius:10px; }
  .hdr-user:active{ background:var(--main-bg); }
  .hdr-av-wrap{ width:30px; height:30px; flex-shrink:0; border-radius:50%; overflow:hidden; background:var(--main); display:flex; align-items:center; justify-content:center; box-shadow:0 1px 4px rgba(232,115,44,.3); }
  .hdr-av-wrap img{ width:100%; height:100%; object-fit:cover; display:block; }
  .hdr-avatar-txt{ font-size:14px; font-weight:700; color:#fff; display:flex; align-items:center; justify-content:center; width:100%; height:100%; }
  .hdr-user-name{ font-size:12px; color:var(--sub); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  /* ===== 火爆摊主走马灯（一次 2 家） ===== */
  .carousel{ margin-bottom:12px; }
  .cs-viewport{ overflow:hidden; border-radius:12px; }
  .cs-track{ display:flex; transition:transform .45s cubic-bezier(.22,.9,.3,1); }
  .cs-page{ flex:0 0 100%; display:grid; grid-template-columns:1fr 1fr; gap:0; padding:2px; }
  /* v3.3 火爆摊主卡与商品卡（pcard）框架/图片区/文字字号统一 */
  .cs-slide{ position:relative; background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; cursor:pointer; }
  .cs-empty{ visibility:hidden; }
  .cs-ph{ height:168px; display:flex; align-items:center; justify-content:center; }
  .cs-ph svg{ width:84px; height:84px; }
  .cs-ico{ width:84px; height:84px; border-radius:14px; background:rgba(255,255,255,.25); display:flex; align-items:center; justify-content:center; }
  .cs-ico svg{ width:48px; height:48px; }
  .cs-pi{ padding:8px 10px 10px; }
  .cs-prow{ display:flex; align-items:center; gap:6px; min-width:0; }
  .cs-name{ flex:1; min-width:0; font-size:12px; font-weight:500; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .cs-orders{ flex-shrink:0; font-size:10px; color:var(--main-deep); background:var(--main-bg); padding:1px 6px; border-radius:8px; white-space:nowrap; }
  .cs-dots{ display:flex; justify-content:center; gap:6px; padding:9px 0 2px; }
  .cs-dot{ width:6px; height:6px; border-radius:3px; background:#D5D8DC; cursor:pointer; transition:all .25s; }
  .cs-dot.on{ width:16px; background:var(--main); }
  /* ===== 个人资料页头像 ===== */
  .pf-av{ width:56px; height:56px; border-radius:50%; overflow:hidden; flex-shrink:0; background:var(--main); display:flex; align-items:center; justify-content:center; box-shadow:0 2px 8px rgba(232,115,44,.3); }
  .pf-av img{ width:100%; height:100%; object-fit:cover; display:block; }
  .pf-av-fallback{ font-size:22px; font-weight:800; color:#fff; }
  .stall-hero{ border-radius:16px; padding:16px; color:#fff; margin-bottom:12px; display:flex; align-items:center; gap:12px; box-shadow:0 4px 12px rgba(0,0,0,.12); }
  /* v3.5：店头大图做信息框背景时，高度翻倍（约 100px→200px），图在底、白字在前 */
  .stall-hero.tall{ min-height:200px; background-size:cover; background-position:center; align-items:center; }
  .stall-hero .sh-ico{ width:52px; height:52px; border-radius:14px; background:rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .stall-hero .sh-ico svg{ width:30px; height:30px; }
  .stall-hero .sh-name{ font-size:17px; font-weight:800; }
  .stall-hero .sh-sub{ font-size:11px; opacity:.92; margin-top:3px; }
  .stall-hero .sh-desc{ font-size:11px; opacity:.92; margin-top:7px; line-height:1.6; }
  .stall-hero .sh-tag{ margin-left:auto; flex-shrink:0; font-size:11px; padding:3px 12px; border-radius:20px; background:rgba(255,255,255,.24); }
  .theme-pick{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
  .theme-item{ border:2px solid var(--line); border-radius:14px; padding:12px 8px 10px; text-align:center; cursor:pointer; background:#fff; }
  .theme-item.on{ border-color:var(--main); box-shadow:0 0 0 2px rgba(232,115,44,.15); }
  .theme-item .sw{ width:34px; height:34px; border-radius:50%; margin:0 auto 8px; }
  .theme-item .tn{ font-size:12px; color:var(--sub); }

  /* ================= v3.5 首页（美团式）：顶栏 + 搜索 + 双栏商品流 ================= */
  /* 顶栏：左定位 | 中「火爆小摊」| 右 头像+用户名+退出 */
  .home-top{ position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:8px; background:#fff; border-bottom:1px solid var(--line); padding:8px 10px; }
  .home-top .ht-loc{ flex-shrink:0; display:flex; align-items:center; gap:3px; max-width:38%; padding:5px 8px; border-radius:9px; background:#FFF4EC; cursor:pointer; user-select:none; }
  .home-top .ht-loc:active{ background:var(--main-bg); }
  .home-top .ht-loc-t{ font-size:12px; font-weight:700; color:var(--main-deep); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .home-top .ht-loc-t.manual{ color:var(--green); }
  .home-top .ht-loc-t.demo{ color:var(--sub); font-weight:400; }
  .home-top .ht-title{ flex:1; min-width:0; text-align:center; font-size:17px; font-weight:800; color:var(--ink); letter-spacing:1px; }
  .home-top .ht-user{ flex-shrink:0; display:flex; align-items:center; gap:5px; max-width:38%; justify-content:flex-end; }
  .home-top .ht-av{ width:28px; height:28px; border-radius:50%; overflow:hidden; background:var(--main); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .home-top .ht-av img{ width:100%; height:100%; object-fit:cover; display:block; }
  .home-top .ht-av-txt{ width:100%; height:100%; font-size:13px; font-weight:700; color:#fff; display:flex; align-items:center; justify-content:center; }
  .home-top .ht-name{ font-size:12px; color:var(--sub); max-width:64px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .home-top .ht-out{ width:28px; height:28px; border-radius:50%; border:none; background:#F0F1F3; color:var(--sub); cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .home-top .ht-out:active{ background:var(--red-bg); color:var(--red); }
  /* 搜索框（美团首页顶端样式：圆角大输入框 + 搜索键） */
  .home-search{ display:flex; align-items:center; gap:6px; margin:10px 12px 12px; padding:8px 10px 8px 12px; background:#fff; border:1px solid var(--line); border-radius:22px; box-shadow:0 1px 4px rgba(0,0,0,.04); }
  .home-search input{ flex:1; min-width:0; border:none; outline:none; font-size:13px; color:var(--ink); background:transparent; }
  .home-search input::placeholder{ color:#B7BCC4; font-size:12px; }
  .home-search .hs-btn{ flex-shrink:0; border:none; background:var(--main); color:#fff; font-size:12px; font-weight:700; padding:5px 14px; border-radius:14px; cursor:pointer; }
  .home-search .hs-btn:active{ background:var(--main-deep); }
  /* 搜索结果浮层：摊主/商品分两节，点即跳转 */
  .home-search-panel{ margin:0 12px 12px; background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; box-shadow:0 4px 14px rgba(0,0,0,.08); }
  .hsp-sec{ padding:8px 12px; font-size:12px; font-weight:700; color:var(--main-deep); background:#FFF4EC; border-bottom:1px solid #F5E7D8; }
  .hsp-item{ display:flex; align-items:center; gap:10px; padding:10px 12px; border-bottom:1px solid var(--line); cursor:pointer; }
  .hsp-item:active{ background:#FAFAFB; }
  .hsp-item:last-child{ border-bottom:none; }
  .hsp-t{ flex:1; min-width:0; font-size:13px; font-weight:600; }
  .hsp-s{ flex-shrink:0; font-size:11px; color:var(--gray); }
  /* 双栏商品流（美团 App 样式：左右两竖列；左栏卡略高、带「推广」角标 → 进摊主页；右栏 → 进同类竞品页） */
  .home-feed{ display:flex; gap:8px; padding:0 12px; }
  .home-col{ flex:1; min-width:0; }
  .home-col-l{ flex:1.25; }
  .hfeed-card{ position:relative; background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; cursor:pointer; margin-bottom:10px; }
  .hfeed-card:active{ opacity:.9; }
  .hfeed-img{ width:100%; background:linear-gradient(135deg,#FFF6EE,#FDE8D8); display:flex; align-items:center; justify-content:center; overflow:hidden; }
  .hfeed-img img{ width:100%; height:100%; object-fit:cover; display:block; }
  .home-col-l .hfeed-img{ height:148px; }
  .home-col-r .hfeed-img{ height:116px; }
  .hfeed-mark{ position:absolute; top:0; left:0; z-index:2; background:var(--main); color:#fff; font-size:10px; font-weight:700; padding:2px 8px; border-radius:0 0 10px 0; }
  .hfeed-sold{ position:absolute; top:8px; right:8px; background:rgba(31,35,41,.72); color:#fff; font-size:11px; padding:2px 8px; border-radius:6px; }
  .hfeed-info{ padding:8px 10px 10px; }
  .hfeed-name{ font-size:13px; font-weight:600; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .hfeed-sub{ display:flex; align-items:center; justify-content:space-between; gap:6px; margin-top:5px; }
  .hfeed-owner{ flex:1; min-width:0; font-size:11px; color:var(--gray); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .hfeed-cat{ flex-shrink:0; font-size:10px; color:var(--main-deep); background:var(--main-bg); padding:1px 6px; border-radius:8px; }
  .hfeed-pr{ font-size:14px; font-weight:800; color:var(--main); margin-top:5px; }
  .hfeed-pr span{ font-size:11px; font-weight:600; }
  .hfeed-meta{ font-size:10px; color:var(--gray); margin-top:3px; }
  /* 同类竞品页：置顶品放大卡 + 其余竞品小卡 */
  .cmp-top{ margin-bottom:10px; }
  .theme-item.on .tn{ color:var(--ink); font-weight:600; }
  @media (min-width:768px){
    body{ background:#E4E7EB; }
    #phone{ box-shadow:0 0 40px rgba(0,0,0,.16); }
  }
