/* 挖挖 网页版 · 全局样式
   设计令牌严格取自安卓 Theme.kt；画面以「挖挖网页版效果图/index.html」为基准 */

@font-face{ font-family:'childfun'; src:url('../fonts/childfun.ttf') format('truetype'); font-display:swap; }

:root{
  --bg:#FFF8F1;          /* 主背景 暖米白 Cream50 */
  --surface:#FFF3E0;     /* 卡片 浅杏 Cream30 */
  --surface2:#FFE0B2;    /* 更深的杏 Cream20 */
  --ink:#4E342E;         /* 主文字 暖棕黑 */
  --inkLight:#8D6E63;    /* 次要文字 */
  --orange:#E65100;      /* primary 深橙 */
  --orangeLight:#FF7043; /* 亮橙 */
  --orangeC:#FFB74D;     /* primaryContainer 浅橙 */
  --green:#66BB6A;       /* secondary 清新绿 */
  --greenC:#D7F0D8;
  --red:#E53935;         /* tertiary 番茄红 */
  --redC:#FFDAD6;
  --pink:#FFAB91;
  --outline:#E6D3C2;
  --shopGreen:#0B8A6E;
  --shopGreenL:#12B79A;
  --accent:#E65100;
  --hstart:transparent;
  --nav-h:64px;
  --radius-xs:10px; --radius-sm:14px; --radius-md:20px; --radius-lg:26px; --radius-xl:32px;
}

*{ margin:0; padding:0; box-sizing:border-box; -webkit-font-smoothing:antialiased; -webkit-tap-highlight-color:transparent; }
html,body{ height:100%; }
body{
  background:#EFE7DE;
  color:var(--ink);
  font-family:'PingFang SC','Source Han Sans CN','思源黑体 CN','Microsoft YaHei UI','Microsoft YaHei',sans-serif;
  font-size:15px;
  overscroll-behavior-y:none;
}
button,input,textarea,select{ font-family:inherit; font-size:inherit; color:inherit; }
button{ cursor:pointer; border:none; background:none; }
a{ color:var(--orange); text-decoration:none; }
::-webkit-scrollbar{ width:0; height:0; }

/* ============ 壳层 ============ */
.app{
  height:100vh; height:100dvh;
  max-width:540px; margin:0 auto;
  display:flex; flex-direction:column;
  background:var(--bg);
  position:relative; overflow:hidden;
  box-shadow:0 0 40px rgba(78,52,46,.08);
}

/* ============ AppHeader ============ */
.header{
  padding:calc(12px + env(safe-area-inset-top)) 20px 14px;
  display:flex; align-items:center; flex-shrink:0;
  background:linear-gradient(180deg, var(--hstart,transparent), var(--bg));
}
.header .tile{
  width:48px; height:48px; border-radius:16px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; font-size:25px;
  background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 25%, transparent), color-mix(in srgb, var(--accent) 55%, transparent));
}
.header .tcol{ margin-left:14px; min-width:0; }
.header h2{ font-size:24px; letter-spacing:1px; color:#3E1A00; font-family:'childfun',sans-serif; font-weight:400; }
.header .sub{ font-size:11px; color:#6D4C41; opacity:.75; margin-top:2px; }
.header .spacer{ flex:1; }
.btn-add{
  background:linear-gradient(135deg,var(--accent), color-mix(in srgb,var(--accent) 70%, #000));
  color:#fff; border-radius:999px; font-size:19px; width:38px; height:38px;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 12px rgba(0,0,0,.18);
}
.btn-add:active{ transform:scale(.94); }
.icon-btn{
  width:36px; height:36px; border-radius:50%; background:#fff;
  box-shadow:0 2px 8px rgba(78,52,46,.10); font-size:15px; color:var(--inkLight);
}
.icon-btn:active{ transform:scale(.94); }

/* ============ 滚动区 ============ */
.scroll{
  flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch;
  padding:0 16px 18px; display:flex; flex-direction:column; gap:11px;
}
.scroll::-webkit-scrollbar{ width:0; }

/* ============ 页签 ============ */
.tabs{ display:flex; margin:0 2px 11px; background:var(--surface); border-radius:14px; padding:4px; flex-shrink:0; }
.tab{ flex:1; text-align:center; padding:8px 0; font-size:14px; font-weight:600; color:#9c8874; border-radius:11px; }
.tab.on{ background:#fff; color:var(--accent); box-shadow:0 2px 8px rgba(78,52,46,.10); }

/* ============ 范围切换器 ============ */
.scope{
  margin:0 0 10px; background:#fff; border-radius:16px; padding:10px 11px;
  box-shadow:0 3px 10px rgba(78,52,46,.07); border:1px solid var(--outline); flex-shrink:0;
}
.scope .lbl{ font-size:11px; color:var(--inkLight); margin:0 2px 7px; display:flex; justify-content:space-between; align-items:center; gap:8px; }
.scope .lbl b{ color:var(--accent); }
.scope .setfav{ font-size:10.5px; color:#B9820B; background:#FCF3DD; border:1px solid #F3E2B8; border-radius:999px; padding:3px 9px; white-space:nowrap; }
.scope .chips{ display:flex; gap:7px; overflow-x:auto; padding-bottom:2px; }
.scope .chips::-webkit-scrollbar{ height:0; }
.schip{ white-space:nowrap; background:var(--bg); border:1px solid var(--outline); padding:7px 13px; border-radius:999px; font-size:12.5px; color:#7a675c; }
.schip.on{ background:var(--accent); border-color:var(--accent); color:#fff; font-weight:700; }

/* ============ 搜索 ============ */
.search{
  display:flex; align-items:center; gap:8px; background:#fff; border-radius:14px;
  padding:11px 14px; color:#b9a999; font-size:13.5px; box-shadow:0 2px 8px rgba(78,52,46,.05);
  border:1px solid #F3EAE0; flex-shrink:0;
}
.search input{ flex:1; border:none; outline:none; background:none; font-size:13.5px; color:var(--ink); min-width:0; }
.search input::placeholder{ color:#c3b3a6; }

/* 分类筛选条 */
.filters{ display:flex; gap:7px; overflow-x:auto; padding:2px 0 3px; flex-shrink:0; }
.filters::-webkit-scrollbar{ height:0; }
.filter-chip{
  white-space:nowrap; background:#fff; border:1px solid #F3EAE0; color:#8D6E63;
  border-radius:999px; padding:6px 13px; font-size:12.5px; box-shadow:0 1px 4px rgba(78,52,46,.04);
}
.filter-chip.on{ background:color-mix(in srgb,var(--accent) 14%,#fff); border-color:color-mix(in srgb,var(--accent) 40%,#fff); color:var(--accent); font-weight:700; }

/* ============ 双列网格卡片 ============ */
.grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.dish{
  background:#fff; border-radius:18px; overflow:hidden; position:relative;
  box-shadow:0 3px 10px rgba(78,52,46,.07); border:1px solid #F5ECE1;
  display:flex; flex-direction:column;
}
.dish:active{ transform:scale(.98); }
.dish .pic{
  height:96px; display:flex; align-items:center; justify-content:center; font-size:40px;
  background:linear-gradient(135deg,#FFF6EC,#FFEFDD); overflow:hidden;
}
.dish .pic img{ width:100%; height:100%; object-fit:cover; display:block; }
.dish .meta{ padding:8px 11px 10px; position:relative; flex:1; }
.dish .name{ font-size:14.5px; font-weight:700; margin-bottom:5px; color:var(--ink);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dish .tag{ display:inline-block; font-size:10.5px; color:var(--accent); background:color-mix(in srgb,var(--accent) 12%, #fff); border-radius:6px; padding:2px 7px; }
.dish .badge{
  position:absolute; right:9px; top:-14px; background:var(--red); color:#fff; border-radius:999px;
  min-width:20px; height:20px; display:flex; align-items:center; justify-content:center;
  font-size:11.5px; font-weight:700; padding:0 5px; box-shadow:0 3px 8px rgba(229,57,53,.4);
}
.dish .status{ position:absolute; left:9px; top:9px; font-size:10px; padding:2px 7px; border-radius:999px; color:#fff; font-weight:600; }
.st-pending{ background:#E6A700; }
.st-rejected{ background:#B00020; }
.st-approved{ background:#66BB6A; }
.dish .src{ font-size:10px; color:#a08d7e; margin-top:5px; display:block; }

/* ============ 点餐记录卡 ============ */
.ordercard{ background:#fff; border-radius:16px; padding:12px 14px; box-shadow:0 3px 10px rgba(78,52,46,.06); border:1px solid #F5ECE1; }
.ordercard .who{ font-size:11.5px; color:var(--inkLight); margin-bottom:7px; display:flex; align-items:center; gap:6px; }
.ordercard .who .av{ width:20px; height:20px; border-radius:50%; background:var(--orangeC); color:#5b2b00; font-size:11px; display:flex; align-items:center; justify-content:center; font-weight:700; }
.ordercard .row{ display:flex; align-items:center; justify-content:space-between; padding:6px 0; border-bottom:1px dashed #F1E7DC; }
.ordercard .row:last-child{ border-bottom:none; }
.ordercard .row .d{ font-size:14px; font-weight:600; }
.ordercard .del{ color:#c9b3a4; font-size:15px; padding:0 2px; }

/* ============ 买菜 ============ */
.progress-bar{ background:#fff; border-radius:16px; padding:12px 14px; display:flex; align-items:center; gap:12px; box-shadow:0 3px 10px rgba(78,52,46,.06); border:1px solid #F5ECE1; }
.progress-ring{ width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center; transition:.3s; flex-shrink:0; }
.progress-ring .hole{ width:32px; height:32px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:800; color:var(--shopGreen); }
.progress-txt{ flex:1; min-width:0; }
.progress-txt b{ display:block; font-size:14.5px; }
.progress-txt span{ font-size:11.5px; color:#8A9A94; }
.seg{ display:flex; background:#E7EDEA; border-radius:12px; padding:3px; }
.seg div{ flex:1; text-align:center; padding:7px 0; font-size:12.5px; font-weight:600; color:#7A8A85; border-radius:9px; }
.seg div.on{ background:#fff; color:var(--shopGreen); box-shadow:0 2px 6px rgba(78,52,46,.10); }
.shop-list{ background:#fff; border-radius:18px; overflow:hidden; box-shadow:0 3px 10px rgba(78,52,46,.06); border:1px solid #F5ECE1; }
.shop-row{ display:flex; align-items:center; gap:12px; padding:13px 14px; border-bottom:1px solid #F5F1EC; }
.shop-row:last-child{ border-bottom:none; }
.dot{ width:22px; height:22px; border-radius:50%; border:2px solid #C9D6D1; flex-shrink:0; display:flex; align-items:center; justify-content:center; color:#fff; font-size:12px; transition:.15s; }
.dot.ok{ background:var(--shopGreenL); border-color:var(--shopGreenL); }
.shop-row .g{ flex:1; min-width:0; }
.shop-row .nm{ font-size:14.5px; font-weight:600; }
.shop-row .nm.done{ text-decoration:line-through; color:#B3C0BC; }
.shop-row .src{ margin-top:4px; display:inline-block; font-size:10.5px; background:#E4F5F0; color:var(--shopGreen); border-radius:6px; padding:2px 7px; }
.shop-row .src.manual{ background:#F1ECE7; color:#9c8874; }
.shop-row .qty{ font-size:12px; color:#8A9A94; }
.group-head{ font-size:11.5px; color:#8A9A94; padding:12px 14px 4px; background:#F8FBF9; }
.dish-group{ border-bottom:1px solid #F5F1EC; }
.dish-group:last-child{ border-bottom:none; }

/* ============ 底部菜单 ============ */
.nav{
  background:var(--surface); display:flex; justify-content:space-around;
  padding:8px 6px calc(10px + env(safe-area-inset-bottom));
  box-shadow:0 -2px 10px rgba(78,52,46,.06); flex-shrink:0;
}
.nav-item{ display:flex; flex-direction:column; align-items:center; gap:4px; font-size:11px; color:var(--inkLight); width:20%; }
.nav-item .ic{ font-size:20px; line-height:1; width:52px; height:26px; display:flex; align-items:center; justify-content:center; border-radius:999px; }
.nav-item.on{ color:var(--orange); font-weight:700; }
.nav-item.on .ic{ background:color-mix(in srgb,var(--orangeC) 45%, transparent); }
.nav-item:active .ic{ transform:scale(.92); }

/* ============ 登录/注册（安卓绿底方案B） ============ */
.login{
  flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:13px;
  padding:24px 30px; overflow-y:auto;
  background:linear-gradient(160deg,#12B79A,#0B8A6E 55%,#08735C);
}
.login .box{ width:74px; height:74px; border-radius:24px; border:2.5px solid rgba(255,255,255,.75); display:flex; align-items:center; justify-content:center; font-size:36px; flex-shrink:0; }
.login .name{ font-size:22px; color:#fff; font-weight:800; letter-spacing:2px; }
.login .slogan{ font-size:30px; color:#fff; font-family:'LXGW WenKai','霞鹜文楷',serif; display:flex; align-items:center; gap:12px; }
.login .slogan i{ display:block; width:26px; height:1.5px; background:rgba(255,255,255,.65); }
.login .slogan2{ font-size:12px; color:rgba(255,255,255,.85); margin-top:-4px; }
.login .inp-wrap{ width:100%; position:relative; }
.login .inp-wrap input{
  width:100%; border:none; border-radius:14px; padding:13px 15px; font-size:14px; background:#fff; outline:none;
}
.login .inp-wrap input::placeholder{ color:#b9a999; }
.login .inp-wrap .eye{ position:absolute; right:14px; top:50%; transform:translateY(-50%); font-size:15px; opacity:.5; }
.login .remember{ width:100%; display:flex; align-items:center; gap:7px; color:rgba(255,255,255,.92); font-size:12.5px; padding-left:2px; }
.login .remember input[type=checkbox]{
  -webkit-appearance:none; appearance:none; width:16px; height:16px; flex:0 0 16px; margin:0; padding:0;
  border:1.5px solid rgba(255,255,255,.85); border-radius:5px; background:transparent; position:relative; cursor:pointer;
}
.login .remember input[type=checkbox]:checked{ background:#fff; border-color:#fff; }
.login .remember input[type=checkbox]:checked::after{
  content:'✓'; color:#0B8A6E; font-size:12px; font-weight:800; line-height:1;
  position:absolute; left:50%; top:50%; transform:translate(-50%,-56%);
}
.login .remember label{ cursor:pointer; }
.login .go{
  width:100%; border-radius:14px; padding:14px; font-size:15px; font-weight:700;
  color:#0B8A6E; background:#fff; box-shadow:0 8px 20px rgba(0,0,0,.14);
}
.login .go:active{ transform:scale(.98); }
.login .swap{ font-size:12.5px; color:#fff; opacity:.9; text-decoration:underline; }
.login .foot{ font-size:11.5px; color:rgba(255,255,255,.7); margin-top:4px; }
.login .features{ width:100%; display:grid; grid-template-columns:1fr 1fr; gap:8px 10px; margin-top:2px; }
.login .features div{ font-size:12px; color:rgba(255,255,255,.92); display:flex; align-items:center; gap:6px; }
.login .err{ width:100%; background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.35); color:#fff; font-size:12.5px; border-radius:12px; padding:9px 12px; }
.login .ok{ width:100%; background:rgba(255,255,255,.22); border:1px solid rgba(255,255,255,.45); color:#fff; font-size:12.5px; border-radius:12px; padding:9px 12px; }

/* ============ 设置 ============ */
.setrow{
  background:#fff; border-radius:16px; padding:14px 15px; display:flex; align-items:center;
  justify-content:space-between; gap:10px; font-size:14.5px; box-shadow:0 3px 10px rgba(78,52,46,.06); border:1px solid #F5ECE1;
}
.setrow .lab{ color:var(--inkLight); font-size:12px; margin-top:3px; }
.setrow .fav{ font-size:12px; color:#B9820B; background:#FCF3DD; border-radius:999px; padding:4px 11px; font-weight:600; }
.setrow .arw{ color:#c9b3a4; font-size:17px; }
.setrow.dim{ opacity:.5; }
.section-title{ font-size:12px; color:var(--inkLight); padding:6px 4px 0; }
.card{ background:#fff; border-radius:16px; box-shadow:0 3px 10px rgba(78,52,46,.06); border:1px solid #F5ECE1; overflow:hidden; }
.group-card{ padding:13px 15px; border-bottom:1px solid #F5F1EC; display:flex; align-items:center; gap:11px; }
.group-card:last-child{ border-bottom:none; }
.group-card .ava{ width:40px; height:40px; border-radius:13px; background:var(--greenC); display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0; }
.group-card .info{ flex:1; min-width:0; }
.group-card .info b{ font-size:14.5px; }
.group-card .info span{ display:block; font-size:11.5px; color:var(--inkLight); margin-top:3px; }
.invite-code{ font-family:'childfun',sans-serif; font-size:40px; letter-spacing:10px; color:var(--orange); text-align:center; padding:10px 0; }
.copyright{ text-align:center; color:#b9a999; font-size:11.5px; margin-top:8px; font-family:'childfun',sans-serif; letter-spacing:1px; }
.badge-good{ display:inline-block; background:var(--greenC); color:#1B3A1B; border-radius:999px; padding:8px 18px; font-size:15px; font-weight:700; }

/* ============ 详情 / 表单 ============ */
.detail-hero{ width:100%; height:210px; border-radius:18px; overflow:hidden; background:linear-gradient(135deg,#FFF6EC,#FFEFDD); display:flex; align-items:center; justify-content:center; font-size:72px; }
.detail-hero img{ width:100%; height:100%; object-fit:cover; }
.detail-thumbs{ display:flex; gap:8px; margin-top:8px; overflow-x:auto; }
.detail-thumbs img{ width:64px; height:64px; object-fit:cover; border-radius:12px; flex-shrink:0; }
.detail-title{ font-size:22px; font-weight:800; }
.detail-sub{ font-size:12.5px; color:var(--inkLight); display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.chip{ font-size:11px; background:var(--surface); border-radius:999px; padding:3px 10px; color:var(--inkLight); }
.field-label{ font-size:12px; color:var(--inkLight); margin:10px 2px 5px; }
.field-box{ background:#fff; border-radius:14px; border:1px solid #F3EAE0; padding:12px 14px; font-size:14px; line-height:1.75; white-space:pre-wrap; word-break:break-word; }
.field-box.muted{ color:#9c8874; }
.footnote{ text-align:center; font-size:12.5px; color:rgba(78,52,46,.4); letter-spacing:6px; padding:14px 0 4px; font-family:'childfun',sans-serif; }

/* ============ 弹层 ============ */
.modal-wrap{ position:fixed; inset:0; z-index:200; display:flex; align-items:flex-end; justify-content:center; }
.modal-wrap[hidden]{ display:none; }
.modal-mask{ position:absolute; inset:0; background:rgba(40,24,14,.42); backdrop-filter:blur(2px); }
.sheet{
  position:relative; width:100%; max-width:540px; max-height:88vh; overflow-y:auto;
  background:var(--bg); border-radius:26px 26px 0 0; padding:18px 18px calc(20px + env(safe-area-inset-bottom));
  animation:up .22s ease;
}
@keyframes up{ from{ transform:translateY(30px); opacity:.4; } to{ transform:translateY(0); opacity:1; } }
.sheet h3{ font-size:18px; font-family:'childfun',sans-serif; color:var(--ink); margin-bottom:4px; font-weight:400; }
.sheet .sheet-sub{ font-size:12px; color:var(--inkLight); margin-bottom:14px; }
.sheet .grab{ width:40px; height:4px; border-radius:4px; background:#E2D6C9; margin:0 auto 14px; }
.opt{ background:#fff; border-radius:16px; border:1px solid #F3EAE0; padding:14px 15px; margin-bottom:10px; display:flex; align-items:center; gap:12px; box-shadow:0 2px 8px rgba(78,52,46,.04); }
.opt:active{ transform:scale(.99); }
.opt.on{ border-color:var(--accent); background:color-mix(in srgb,var(--accent) 7%,#fff); }
.opt .oic{ width:38px; height:38px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:19px; background:var(--surface); flex-shrink:0; }
.opt .otx{ flex:1; min-width:0; }
.opt .otx b{ font-size:14.5px; }
.opt .otx span{ display:block; font-size:11.5px; color:var(--inkLight); margin-top:3px; }
.opt.dim{ opacity:.46; }
.grp-chips{ display:flex; flex-wrap:wrap; gap:8px; margin:2px 0 12px; }
.grp-chips .gc{ background:#fff; border:1px solid var(--outline); border-radius:999px; padding:8px 14px; font-size:13px; }
.grp-chips .gc.on{ background:var(--accent); border-color:var(--accent); color:#fff; font-weight:700; }
.sheet-btns{ display:flex; gap:10px; margin-top:16px; }
.btn{ flex:1; border-radius:14px; padding:13px; font-size:15px; font-weight:700; text-align:center; }
.btn-primary{ background:var(--accent); color:#fff; box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 35%, transparent); }
.btn-primary:active{ transform:scale(.98); }
.btn-ghost{ background:#fff; color:var(--inkLight); border:1px solid var(--outline); }
.btn-danger{ background:#fff; color:var(--red); border:1px solid var(--redC); }
.form-group{ margin-bottom:11px; }
.form-group label{ display:block; font-size:12px; color:var(--inkLight); margin:0 2px 6px; }
.form-input, .form-textarea{
  width:100%; background:#fff; border:1px solid #F3EAE0; border-radius:14px; padding:12px 14px; font-size:14px; outline:none;
}
.form-input:focus, .form-textarea:focus{ border-color:var(--accent); }
.form-textarea{ min-height:90px; resize:vertical; line-height:1.6; }
.photo-row{ display:flex; gap:8px; overflow-x:auto; padding:2px 0; }
.photo-row img{ width:72px; height:72px; object-fit:cover; border-radius:12px; flex-shrink:0; }
.photo-add{ width:72px; height:72px; border-radius:12px; border:1.5px dashed var(--outline); display:flex; align-items:center; justify-content:center; font-size:22px; color:#c3b3a6; flex-shrink:0; }

/* ============ toast ============ */
.toast{
  position:fixed; left:50%; bottom:calc(96px + env(safe-area-inset-bottom)); transform:translateX(-50%) translateY(20px);
  opacity:0; transition:.28s; background:rgba(62,26,0,.92); color:#fff; font-size:13px;
  padding:10px 18px; border-radius:999px; pointer-events:none; white-space:nowrap; z-index:400;
  max-width:88vw; overflow:hidden; text-overflow:ellipsis;
}
.toast.on{ opacity:1; transform:translateX(-50%) translateY(0); }

/* ============ 空态 / 加载 / 下拉刷新 ============ */
.empty{ text-align:center; color:#9c8874; font-size:13px; padding:34px 10px; line-height:1.9; }
.empty .big{ font-size:34px; display:block; margin-bottom:8px; }
.empty .sm{ font-size:11.5px; color:#b9a999; display:block; margin-top:6px; }
.loading{ text-align:center; color:#b9a999; font-size:13px; padding:34px 0; }
.loading .egg{ font-size:30px; display:block; margin-bottom:10px; animation:sway 1.2s ease-in-out infinite; }
@keyframes sway{ 0%,100%{ transform:rotate(-8deg); } 50%{ transform:rotate(8deg); } }
.spin{ width:18px; height:18px; border-radius:50%; border:2px solid #E6D3C2; border-top-color:var(--accent); display:inline-block; animation:sp .7s linear infinite; vertical-align:-3px; }
@keyframes sp{ to{ transform:rotate(360deg); } }
.ptr{ height:0; overflow:hidden; transition:height .2s; text-align:center; color:#b9a999; font-size:12.5px; }
.ptr.on{ height:40px; line-height:40px; }
.skel{ background:linear-gradient(90deg,#F6EDE3,#FBF6F0,#F6EDE3); background-size:200% 100%; animation:sh 1.2s linear infinite; border-radius:10px; }
@keyframes sh{ from{ background-position:200% 0; } to{ background-position:-200% 0; } }

/* 点餐餐盘悬浮 */
.plate{
  position:sticky; bottom:6px; z-index:50; background:#fff; border-radius:16px; padding:11px 13px;
  display:flex; align-items:center; gap:10px; box-shadow:0 6px 20px rgba(78,52,46,.16); border:1.5px solid var(--orangeC);
}
.plate .cnt{ font-size:13px; color:var(--accent); font-weight:800; }
.plate .items{ flex:1; font-size:12px; color:var(--inkLight); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.plate .go{ background:var(--accent); color:#fff; border-radius:12px; padding:9px 16px; font-size:13.5px; font-weight:700; }
.qty-ctl{ display:flex; align-items:center; gap:8px; }
.qty-ctl button{ width:26px; height:26px; border-radius:9px; background:var(--surface); color:var(--accent); font-size:15px; font-weight:700; display:flex; align-items:center; justify-content:center; }
