:root{
/* 品牌色：番茄红。--brand 用于图形/描边；白字底色统一用 --brand-ink（对比度 4.67:1） */
--brand:#E5432F;--brand-ink:#D63A26;--brand-hover:#B42318;--brand-active:#A11D12;--brand-soft:#FDECEA;--brand-soft2:#FBD5CF;
/* 辅色：叶子绿（--leaf-ink 白字对比 5.02:1，可作文字） */
--leaf:#2F9E44;--leaf-ink:#15803D;--leaf-soft:#E8F5EA;
/* 价格强调：深橙，区别于品牌红 */
--price:#C2410C;--price-soft:#FFF1E6;--o:#f97316;
--g:var(--brand-ink);--g2:var(--brand-soft);
--bs-primary:#D63A26;--bs-primary-rgb:214,58,38;--bs-link-color:#B42318;--bs-link-hover-color:#A11D12;--bs-link-color-rgb:180,35,24;--bs-link-hover-color-rgb:161,29,18}
body{background:#f5f6f7;font-size:15px;color:#1f2937}
.topbar{position:sticky;top:0;z-index:10;background:var(--g);color:#fff;display:flex;gap:.6rem;align-items:center;padding:.55rem .75rem}
.brand{color:#fff;font-weight:700;text-decoration:none;white-space:nowrap;display:flex;align-items:center;gap:.35rem}.brand img{width:26px;height:26px;background:#fff;border-radius:50%;padding:2px}
.search{flex:1}.search input{width:100%;border:0;border-radius:20px;padding:.35rem .9rem}
.tabbar{position:fixed;bottom:0;left:0;right:0;background:#fff;display:flex;border-top:1px solid #e5e7eb;z-index:20;padding-bottom:env(safe-area-inset-bottom)}
.tabbar a{flex:1;text-align:center;font-size:12px;color:#6b7280;text-decoration:none;padding:.35rem 0;position:relative}
.tabbar a span{display:block;font-size:20px}.tabbar a.on{color:var(--g);font-weight:600}
.badge-dot{position:absolute;top:2px;left:55%;background:#ef4444;color:#fff;border-radius:9px;font-size:10px;padding:0 5px}
.chips{display:flex;gap:.4rem;overflow-x:auto;padding:.6rem 0}.chips a{white-space:nowrap;background:#fff;border-radius:16px;padding:.25rem .8rem;text-decoration:none;color:#374151;border:1px solid #e5e7eb}
.chips a.on{background:var(--g);color:#fff;border-color:var(--g)}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}@media(min-width:700px){.grid{grid-template-columns:repeat(4,1fr)}}@media(min-width:1100px){.grid{grid-template-columns:repeat(6,1fr)}}
.pcard{background:#fff;border-radius:10px;overflow:hidden;display:flex;flex-direction:column}.pcard a{color:inherit;text-decoration:none}
.pcard img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;background:#f1ece9}.pname{font-weight:600;padding:.3rem .5rem 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.pspec{font-size:12px;color:#6b7280;padding:0 .5rem}.pfoot{display:flex;justify-content:space-between;align-items:flex-end;padding:.3rem .5rem .5rem;margin-top:auto}
.price{color:var(--price);font-weight:700}.vip-line{font-size:12px;color:#92400e;background:#fef3c7;border-radius:4px;padding:0 4px;display:inline-block}
.tag{font-size:11px;border-radius:4px;padding:0 4px}.tag-flash{background:var(--price-soft);color:#9A3412}.tag-vip{background:#fef3c7;color:#92400e}
.addbtn{width:30px;height:30px;border-radius:50%;border:0;background:var(--g);color:#fff;font-size:20px;line-height:28px}
.card-w{background:#fff;border-radius:10px;padding:.75rem;margin:.5rem 0}
.banner{background:linear-gradient(120deg,var(--brand-ink),var(--brand-hover));color:#fff;border-radius:12px;padding:1rem;margin:.6rem 0}
.flashrow{display:flex;gap:.5rem;overflow-x:auto}.flashrow .pcard{min-width:140px;max-width:150px}
.timeline{list-style:none;padding-left:1rem;border-left:2px solid var(--g2)}.timeline li{position:relative;padding:.2rem 0 .5rem .4rem}
.timeline li:before{content:'';position:absolute;left:-1.42rem;top:.5rem;width:10px;height:10px;border-radius:50%;background:var(--g)}
.steps{display:flex;justify-content:space-between;font-size:12px;text-align:center}.steps div{flex:1;color:#9ca3af}.steps div.on{color:var(--g);font-weight:700}
.steps div b{display:block;width:22px;height:22px;margin:0 auto 2px;border-radius:50%;background:#e5e7eb;color:#fff;line-height:22px}.steps div.on b{background:var(--g)}
.bar-bottom{position:fixed;bottom:56px;left:0;right:0;background:#fff;border-top:1px solid #e5e7eb;padding:.5rem .75rem;display:flex;align-items:center;justify-content:space-between;z-index:15}
.lvl{display:inline-block;border-radius:10px;padding:0 .5rem;font-size:12px}.lvl0{background:#e5e7eb}.lvl1{background:#e2e8f0;color:#334155;border:1px solid #94a3b8}.lvl2{background:#fde68a;color:#78350f}
.admin body,.admin{background:#f3f4f6}.admin .side a{display:block;padding:.4rem .8rem;color:#374151;text-decoration:none;border-radius:6px}.admin .side a.on{background:var(--g);color:#fff}
.kpi{background:#fff;border-radius:10px;padding:.8rem}.kpi b{display:block;font-size:1.4rem}
.receipt{font-family:monospace;width:58mm;margin:0 auto;background:#fff;padding:8px;font-size:12px}.receipt.w58{width:48mm;padding:2mm 5mm;box-sizing:content-box}.receipt.w80{width:72mm;padding:2mm 4mm;font-size:13px;box-sizing:content-box}
.lbl-sheet{display:flex;flex-wrap:wrap;gap:3mm;padding:3mm}.lbl{border:1px dashed #bbb;box-sizing:border-box;overflow:hidden;background:#fff;color:#111;font-family:'Noto Sans CJK SC',sans-serif;page-break-inside:avoid;break-inside:avoid}.lbl svg.bc{max-width:100%;height:auto;display:block}
.lbl-price{width:70mm;height:38mm;padding:2mm 3mm;border-left:3mm solid var(--brand)}.lbl-price .nm{font-weight:700;font-size:13pt;line-height:1.2}.lbl-price .px{color:var(--price);font-weight:800;font-size:22pt;line-height:1}.lbl-price .mp{font-size:8pt}
.lbl-goods{width:50mm;height:30mm;padding:1.5mm 2mm;font-size:8pt}.lbl-goods .px{font-weight:800;font-size:12pt;color:var(--price)}
.lbl-scale{width:60mm;height:40mm;padding:2mm;font-size:8pt}.lbl-scale .px{font-weight:800;font-size:15pt}
@media print{.lbl{border:0}.lbl-sheet{gap:0;padding:0}}
@media print{.noprint{display:none!important}body{background:#fff}}
:focus-visible{outline:3px solid #f59e0b;outline-offset:2px}
main.container-fluid{padding-bottom:140px!important}
.btn{white-space:nowrap}
.catgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:.35rem;background:#fff;border-radius:12px;padding:.6rem .3rem;margin:.5rem 0}
.catgrid a{text-align:center;font-size:12px;color:#374151;text-decoration:none;line-height:1.2}.catgrid a span{display:block;font-size:24px;margin-bottom:2px}
@media(min-width:700px){.catgrid{grid-template-columns:repeat(10,1fr)}}
.promorow{display:flex;gap:.5rem;overflow-x:auto;margin:.4rem 0}.promo-card{min-width:170px;color:#fff;border-radius:10px;padding:.55rem .7rem;text-decoration:none;display:flex;flex-direction:column}
.promo-card b{font-size:15px}.promo-card span{font-size:12px;opacity:.9}.promo-card em{font-style:normal;font-size:11px;opacity:.85;margin-top:.2rem}.promo-card.big{min-width:0;padding:1rem}
.catpage{display:flex;gap:.5rem;margin-top:.5rem}.catleft{width:86px;flex:none;background:#fff;border-radius:10px;max-height:calc(100vh - 140px);overflow-y:auto;position:sticky;top:56px}
.catleft a{display:block;padding:.6rem .4rem;font-size:13px;color:#374151;text-decoration:none;border-left:3px solid transparent}.catleft a.on{background:var(--brand-soft);color:var(--g);font-weight:700;border-left-color:var(--g)}
.catright{flex:1;min-width:0}.grid.g2{grid-template-columns:repeat(2,1fr)}@media(min-width:700px){.grid.g2{grid-template-columns:repeat(4,1fr)}}
.filters{display:flex;gap:.35rem;align-items:center;flex-wrap:wrap;padding:.5rem}.filters .form-select,.filters .form-control{width:auto;max-width:110px}
.pimg{position:relative}.pbs{position:absolute;left:4px;top:4px;display:flex;gap:3px}.pb{font-size:10px;border-radius:4px;padding:0 4px;color:#fff}
.pb-cold{background:#0ea5e9}.pb-w{background:#f59e0b}.pb-age{background:#7c3aed}.tag-promo{background:var(--price-soft);color:#9A3412}.ptags{padding:0 .5rem}
.disc-line{display:flex;justify-content:space-between}.disc-line.sub{color:#15803d}

/* ===== 第 4 轮：品牌统一（覆盖 Bootstrap 的 success/primary 为番茄红） ===== */
.btn-success,.btn-primary{--bs-btn-bg:var(--brand-ink);--bs-btn-border-color:var(--brand-ink);--bs-btn-hover-bg:var(--brand-hover);--bs-btn-hover-border-color:var(--brand-hover);--bs-btn-active-bg:var(--brand-active);--bs-btn-active-border-color:var(--brand-active);--bs-btn-disabled-bg:var(--brand-ink);--bs-btn-disabled-border-color:var(--brand-ink);--bs-btn-color:#fff;--bs-btn-hover-color:#fff;--bs-btn-active-color:#fff;--bs-btn-focus-shadow-rgb:214,58,38}
.btn-outline-success,.btn-outline-primary{--bs-btn-color:var(--brand-hover);--bs-btn-border-color:var(--brand-ink);--bs-btn-hover-bg:var(--brand-ink);--bs-btn-hover-border-color:var(--brand-ink);--bs-btn-hover-color:#fff;--bs-btn-active-bg:var(--brand-active);--bs-btn-active-border-color:var(--brand-active);--bs-btn-active-color:#fff;--bs-btn-focus-shadow-rgb:214,58,38}
.btn-leaf{--bs-btn-bg:var(--leaf-ink);--bs-btn-border-color:var(--leaf-ink);--bs-btn-hover-bg:#166534;--bs-btn-hover-border-color:#166534;--bs-btn-color:#fff;--bs-btn-hover-color:#fff;--bs-btn-active-bg:#14532d;--bs-btn-active-color:#fff}
.text-success{color:var(--leaf-ink)!important}.bg-success{background-color:var(--leaf-ink)!important}.text-primary{color:var(--brand-hover)!important}.bg-primary{background-color:var(--brand-ink)!important}
.border-success{border-color:var(--leaf)!important}.text-danger.price,.price.text-danger{color:var(--price)!important}
a{color:var(--brand-hover)}a:hover{color:var(--brand-active)}
.form-check-input:checked{background-color:var(--brand-ink);border-color:var(--brand-ink)}.form-control:focus,.form-select:focus{border-color:var(--brand);box-shadow:0 0 0 .2rem rgba(229,67,47,.2)}
.nav-pills .nav-link.active{background:var(--brand-ink)}.page-link{color:var(--brand-hover)}.active>.page-link,.page-link.active{background:var(--brand-ink);border-color:var(--brand-ink)}
.badge-dot{background:var(--brand-active)}
.brandbar{display:flex;align-items:center;gap:.4rem;font-weight:700;color:var(--brand-hover)}.brandbar img{width:24px;height:24px}
.leaf-soft{background:var(--leaf-soft)}.brand-soft{background:var(--brand-soft)}
.fav-btn{border:0;background:none;font-size:22px;color:#9ca3af;line-height:1}.fav-btn.on{color:var(--brand)}
.closed-bar{background:#374151;color:#fff;font-size:13px;padding:.35rem .75rem;text-align:center}

.store-chip{display:flex;justify-content:space-between;align-items:center;gap:6px;margin:0;padding:5px 12px;background:var(--brand-soft,#FDECEA);color:var(--brand-ink);font-size:13px;text-decoration:none;border-bottom:1px solid #f6d2cc}.store-chip span{color:#6b7280;font-size:12px}

/* 第 7 轮 */
.tag-card{background:#3b2a12;color:#f6d38b}
.sortbar{display:flex;gap:14px;align-items:center;padding:6px 10px;background:#fff;border-radius:10px;margin:6px 0;font-size:14px}.sortbar a{color:#4b5563;text-decoration:none}.sortbar a.on{color:var(--brand-ink);font-weight:700}
.hotlist{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin-top:6px}.hotlist a{color:#374151;text-decoration:none;font-size:14px}.hotlist em{display:inline-block;width:18px;font-style:normal;color:#9ca3af;font-weight:700}.hotlist em.top{color:var(--brand-ink)}
.cmp-table td,.cmp-table th{min-width:96px;vertical-align:top}.cmp-table img{border-radius:8px;object-fit:cover}
.addon-row{display:flex;gap:8px;overflow-x:auto;padding-top:6px}.addon-item{flex:0 0 112px;border:1px solid #f1f1f1;border-radius:10px;padding:6px}.addon-item img{width:100%;height:80px;object-fit:cover;border-radius:8px}.addon-item .n{font-size:12px;color:#374151;height:32px;overflow:hidden}.addon-item a{text-decoration:none}
.vip-hero{background:linear-gradient(135deg,#3b2a12,#7a4b12);color:#f6d38b;border-radius:14px;padding:16px;margin:8px 0}.vip-stats{display:flex;justify-content:space-around;margin-top:10px;text-align:center;font-size:12px}.vip-stats b{display:block;font-size:20px;color:#fff3d6}
.vip-plan{border:1px solid #eee;border-radius:10px;padding:10px;margin-bottom:6px}.vip-tip{background:#fff7e6;color:#7a4b12;border:1px dashed #e6b866}.vip-card-mini{background:#fff7e6;color:#7a4b12}.vip-entry{background:linear-gradient(90deg,#fff7e6,#fff);color:#7a4b12}

/* 第 8 轮 */
.allergy-warn{display:inline-block;background:#fff4e5;color:#b45309;border:1px solid #f59e0b;border-radius:6px;font-size:11px;padding:0 5px;font-weight:600}
.allergy-banner{background:#fff4e5;border:1px solid #f59e0b;color:#92400e;border-radius:10px;padding:8px 10px;margin:6px 0;font-size:13px}
.allergen-tag{display:inline-block;border:1px solid #e5e7eb;border-radius:12px;padding:1px 9px;margin:2px 4px 2px 0;font-size:12px;background:#f9fafb}.allergen-tag.hit{border-color:#f59e0b;background:#fff4e5;color:#b45309;font-weight:700}
.nutri-table td,.nutri-table th{padding:3px 6px}
.msg-list a{display:block;border-bottom:1px solid #f1f1f1;padding:8px 0;text-decoration:none;color:#111827}.msg-bubble{max-width:80%;padding:8px 10px;border-radius:12px;margin:6px 0;font-size:14px;white-space:pre-wrap;word-break:break-word}
.msg-bubble.me{background:var(--brand-soft);margin-left:auto}.msg-bubble.them{background:#f3f4f6}.msg-bubble img{max-width:180px;border-radius:8px;display:block;margin-top:4px}.msg-meta{font-size:11px;color:#9ca3af}
.online-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#9ca3af;margin-right:4px}.online-dot.on{background:#22c55e}

/* 第 9 轮 */
.presale-strip{display:flex;gap:8px;align-items:center;justify-content:space-between;background:linear-gradient(90deg,#b91c1c,#d63a26);color:#fff;border-radius:12px;padding:8px 12px;margin:8px 0;text-decoration:none;font-size:13px}.presale-strip span{opacity:.92;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.presale-hero{background:linear-gradient(135deg,#991b1b,#d63a26 60%,#f59e0b);color:#fff;border-radius:14px;padding:16px;margin:8px 0}
.presale-box,.sub-box{border:1px dashed var(--brand,#d63a26);border-radius:10px;padding:6px 10px;margin:6px 0;font-size:13px;color:#7f1d1d;background:#fff7f5}.sub-box{border-color:#ea580c;color:#7c2d12;background:#fff7ed}
.st-big{font-size:28px;text-align:center}.st-scan video{width:100%;max-height:240px;border-radius:10px;background:#000}.st-row-ok{background:#f0fdf4}.st-row-diff{background:#fff1f2}
.fin-bad{color:#dc2626;font-weight:700;background:#fff1f2}
/* 第 10 轮 */
.net-bar{position:fixed;left:0;right:0;top:0;z-index:1080;font-size:13px;padding:6px 12px;text-align:center;color:#fff}.net-bar.off{background:#374151}.net-bar.slow{background:#b45309}
.xdj-toast{position:fixed;left:50%;bottom:76px;transform:translateX(-50%);background:rgba(17,24,39,.9);color:#fff;padding:8px 14px;border-radius:20px;font-size:13px;z-index:1090;max-width:90%}
.loadmore{display:block;text-align:center;margin:12px auto;padding:8px;color:var(--brand,#D63A26);font-size:14px;text-decoration:none}
.ps-balance{background:#7c3aed;color:#fff}.presale-warn{border-left:4px solid #dc2626}
.spark{background:#fff7f5;border-radius:6px}
.recipe-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.rcard{background:#fff;border-radius:12px;overflow:hidden;text-decoration:none;color:inherit;display:block}.rcard img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:#f1ece9}.rcard .t{font-weight:600;padding:6px 8px 0}.rcard .m{font-size:12px;color:#6b7280;padding:0 8px 8px}
.today-eat{background:linear-gradient(135deg,#fff1ec,#fff);border:1px solid #fde0d6}.today-eat .recipe-grid{grid-template-columns:repeat(4,1fr)}@media(max-width:480px){.today-eat .recipe-grid{grid-template-columns:repeat(2,1fr)}}
.ing-row{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px dashed #eee;font-size:14px}.ing-row .alt{font-size:12px;color:#b45309}.ing-row.lack .nm{color:#9ca3af;text-decoration:line-through}
.rsteps{padding-left:20px}.rsteps li{margin-bottom:8px;line-height:1.6}.rtag{display:inline-block;font-size:11px;background:#fff1ec;color:#b91c1c;border-radius:10px;padding:0 8px;margin-right:4px}
.rep-basis{font-size:12px;color:#4b5563;max-width:720px;white-space:normal}
.presale-strip.today-strip{background:linear-gradient(90deg,#ea580c,#f59e0b);margin-top:-2px}
/* 第 11 轮：主操作吸底（不被底部导航挡住） */
.bar-bottom{bottom:calc(56px + env(safe-area-inset-bottom))}
.cta-bar{position:fixed;left:0;right:0;bottom:calc(56px + env(safe-area-inset-bottom));z-index:15;background:#fff;border-top:1px solid #e5e7eb;padding:.5rem .75rem;box-shadow:0 -2px 8px rgba(0,0,0,.05)}
.cta-sticky{position:sticky;bottom:calc(60px + env(safe-area-inset-bottom));z-index:14;background:#fff;padding:.4rem 0}
body.admin .cta-bar,body.admin .cta-sticky{position:static;box-shadow:none;border:0;padding:0}
/* 第 11 轮 */
.fam-bar{background:#fff1ec;color:#b91c1c;font-size:13px}.added-by{color:#9a3412;font-size:11px}.fam-code{font-size:14px}.fam-code b{font-size:22px;letter-spacing:4px;color:#D63A26}
.demo-stamp{border:2px dashed #D63A26;color:#D63A26;text-align:center;font-weight:700;padding:4px;margin-bottom:6px;border-radius:6px}
.mappick{margin-top:6px;border:1px solid #e5e7eb;border-radius:8px;padding:6px;background:#fafafa}.mp-svg{width:100%;max-width:360px;display:block;margin:auto;background:#fff;touch-action:none;cursor:crosshair}
.mp-g{stroke:#eee;stroke-width:1}.mp-r{fill:rgba(214,58,38,.08);stroke:rgba(214,58,38,.35);stroke-dasharray:4 3}.mp-s{fill:#15803d}.mp-t{font-size:11px;fill:#374151}.mp-pin{fill:#D63A26;stroke:#fff;stroke-width:3;cursor:grab}.mp-info{display:flex;justify-content:space-between;align-items:center;margin-top:4px}
.coupon-big{display:flex;gap:10px;align-items:center;background:linear-gradient(90deg,#fff1ec,#fff);border:1px dashed #D63A26;border-radius:8px;padding:8px}.coupon-big b{font-size:28px;color:#D63A26}.coupon-big span{font-size:12px;color:#6b7280}
.wk-table td,.wk-table th{min-width:84px;text-align:center;vertical-align:middle}.wk-cell{border-radius:6px;color:#fff;font-size:12px;padding:2px 4px;display:inline-block}.wk-table select{font-size:12px;padding:1px 2px}
.att-flag{font-size:11px;border-radius:4px;padding:0 4px;background:#f3f4f6}.att-flag.bad{background:#fee2e2;color:#b91c1c}.att-flag.ok{background:#dcfce7;color:#166534}
.punch-big{font-size:20px;padding:14px}.tagchip{display:inline-block;font-size:11px;border-radius:10px;padding:0 8px;color:#fff;margin:1px}
.funnel{display:flex;gap:6px}.funnel div{flex:1;background:#fff1ec;border-radius:8px;padding:6px;text-align:center}.funnel b{display:block;font-size:18px;color:#D63A26}
.loss-exp-list{max-height:380px;overflow:auto}
/* ---- 第 12 轮：评价晒单 / 轨迹回放 / 配送预警 / 跨夜班 ---- */
.rv-sum{display:flex;gap:14px;align-items:center;margin:8px 0}
.rv-score{text-align:center;min-width:84px}.rv-score b{font-size:2rem;color:#D63A26;line-height:1}
.rv-bars{flex:1}.rv-bar{display:flex;align-items:center;gap:6px;font-size:.78rem;color:#6b7280}.rv-bar i{flex:1;height:6px;background:#f1f1f1;border-radius:3px;overflow:hidden}.rv-bar em{display:block;height:100%;background:#f59e0b}
.rv-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.rv-tabs a{font-size:.8rem;padding:2px 10px;border-radius:12px;background:#fdecea;color:#b42318;text-decoration:none}.rv-tabs a.on{background:#D63A26;color:#fff}
.rv-item{border-top:1px solid #f1f1f1;padding:8px 0;font-size:.88rem}
.rv-imgs{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.rv-imgs img{object-fit:cover;border-radius:6px;background:#f3f4f6}
.rv-reply{background:#f8f9fa;border-radius:6px;padding:4px 8px;margin-top:4px;color:#555;font-size:.82rem}
.rv-st-ok{background:#dcfce7;color:#15803d}.rv-st-pending{background:#fef3c7;color:#92400e}.rv-st-rejected{background:#fee2e2;color:#b91c1c}
.rv-hit{background:#fee2e2;color:#b91c1c;border-radius:4px;padding:0 4px;font-size:.75rem;margin-right:2px}
.trk-svg{width:100%;max-height:260px;background:#f7faf7;border-radius:10px;border:1px solid #eee}
.trk-grid line{stroke:#e5e7eb;stroke-width:1}.trk-all{fill:none;stroke:#cbd5e1;stroke-width:3;stroke-dasharray:4 4}.trk-done{fill:none;stroke:#D63A26;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}
.trk-store{fill:#15803d}.trk-home{fill:#2563eb}.trk-t{fill:#fff;font-size:8px;font-weight:700}.trk-dot{fill:#D63A26;stroke:#fff;stroke-width:2}
.dlv-banner{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:8px;padding:6px 10px;font-size:.85rem}
.wk-night{outline:2px dashed rgba(0,0,0,.25);outline-offset:-2px}
/* 第 13 轮：多班次排班、取货码、自提柜、柜机键盘 */
.wk-multi .wk-cell{display:block;margin-bottom:2px}
.pk-code{font:700 34px/1.2 ui-monospace,Menlo,Consolas,monospace;letter-spacing:6px;color:var(--brand-ink,#b91c1c);margin:4px 0 8px}
.pk-qr svg{width:150px;height:150px;display:block}
.locker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:4px;margin-top:6px;max-width:420px}
.locker-cell{border:1px solid #d1d5db;border-radius:6px;text-align:center;font-size:12px;padding:6px 0;background:#f9fafb;color:#374151}
.locker-cell.used{background:#e53935;border-color:#c62828;color:#fff}
.lk-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:320px;margin:0 auto}
.lk-pad .btn{font-size:22px;padding:12px 0;border:1px solid #e5e7eb}
.lk-input{letter-spacing:10px;font-size:28px;max-width:320px;margin-left:auto;margin-right:auto}
.locker-open{color:#15803d}
/* 第 14 轮：首页轮播 / 专题 / 首页装修拖排 / 柜机 */
.hcarousel{position:relative;margin:.5rem 0}.hc-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;border-radius:12px;scrollbar-width:none}.hc-track::-webkit-scrollbar{display:none}
.hc-slide{flex:0 0 100%;scroll-snap-align:start;color:#fff;text-decoration:none;padding:1.1rem 1rem;min-height:96px;display:flex;flex-direction:column;justify-content:center}.hc-slide b{font-size:1.15rem}.hc-slide span{font-size:.85rem;opacity:.95}
.hc-dots{position:absolute;bottom:6px;left:0;right:0;display:flex;justify-content:center;gap:4px}.hc-dots i{width:6px;height:6px;border-radius:3px;background:rgba(255,255,255,.55)}.hc-dots i.on{width:14px;background:#fff}
.topic-mod{margin:.5rem 0}.topic-head{display:flex;align-items:baseline;gap:.5rem;color:#fff;text-decoration:none;padding:.55rem .8rem;border-radius:10px 10px 0 0;margin-bottom:.35rem}.topic-head span{font-size:.8rem;opacity:.95}.topic-head em{margin-left:auto;font-style:normal;font-size:.8rem}
.topic-hero{color:#fff;border-radius:12px;padding:1.2rem 1rem;margin:.5rem 0}.topic-dot{display:inline-block;width:10px;height:10px;border-radius:50%}
.home-mod-item{background:#fff;cursor:grab}.home-mod-item.off{opacity:.6}.home-mod-item.dragging{opacity:.4;outline:2px dashed var(--brand)}.drag-handle{cursor:grab;color:#888;font-size:1.1rem}
.drag-handle{touch-action:none;user-select:none;-webkit-user-select:none;display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;font-size:1.3rem}
/* 第 15 轮：分时看板图例 */
.lg-box{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:middle}.lg-line{display:inline-block;width:18px;border-top:2px solid;vertical-align:middle}.lg-line.dashed{border-top-style:dashed}
.gs-box{max-width:520px}.gs-box input{border-color:#f0c5bd}.gs-box input:focus{border-color:var(--brand);box-shadow:0 0 0 .15rem rgba(229,67,47,.2)}#heat-svg .hc:hover{stroke:#222;stroke-width:1}
.rec-wrap{position:relative;flex:0 0 auto}.rec-why{position:absolute;z-index:2;top:6px;left:6px;background:rgba(229,67,47,.92);color:#fff;font-size:10px;line-height:1;padding:3px 6px;border-radius:10px;font-weight:600}.rec-row{display:flex;gap:8px;overflow-x:auto}.rsv-badge{font-weight:600}.bh-day{border-top:1px solid #eee;padding:4px 0}.pct-na{opacity:.7}
/* 第 18 轮：后台分组导航 / 面包屑 / 手机抽屉；顾客端「我的」分组入口 */
.admin .side{padding:.4rem!important}.admin .side .nv{display:flex;align-items:center;border-radius:6px}.admin .side .nv a{flex:1;min-width:0;padding:.3rem .6rem}.admin .side .nv.on{background:var(--g)}.admin .side .nv.on a{color:#fff}
.admin .side .nv[hidden],.admin .side details[hidden],.admin .side .nv-sec[hidden],.admin .side .nv-top[hidden]{display:none}
.nv-pin{border:0;background:none;color:#c2c7d0;font-size:14px;padding:0 .4rem;line-height:1;opacity:0}.nv:hover .nv-pin,.nv-pin:focus,.nv-pin.on{opacity:1}.nv-pin.on{color:#d97706}.nv.on .nv-pin{color:#ffe;opacity:1}
@media(hover:none){.nv-pin{opacity:.6}}
.nv-search{position:sticky;top:0;background:#fff;padding-bottom:.35rem;z-index:2}
.nv-h{font-size:12px;color:#9ca3af;padding:.35rem .6rem .1rem;letter-spacing:.05em}.nv-sec{border-bottom:1px solid #f1f2f4;margin-bottom:.2rem;padding-bottom:.2rem}
.nv-grp summary{cursor:pointer;list-style:none;padding:.4rem .6rem;font-weight:600;font-size:14px;color:#111827;border-radius:6px;display:flex;align-items:center;gap:.3rem}.nv-grp summary::-webkit-details-marker{display:none}
.nv-grp summary::after{content:"▸";margin-left:auto;color:#9ca3af;font-size:12px;transition:transform .15s}.nv-grp[open] summary::after{transform:rotate(90deg)}.nv-grp summary:hover{background:#f3f4f6}
.nv-n{font-size:11px;color:#9ca3af;font-weight:400}.nv-grp .nv{margin-left:.5rem}.nv-top{margin-bottom:.2rem}.nv-top a{font-weight:600}
.crumb ol{list-style:none;margin:0 0 .4rem;padding:0;display:flex;flex-wrap:wrap;gap:.25rem;color:#6b7280}.crumb li+li::before{content:"›";margin-right:.25rem;color:#c2c7d0}.crumb a{color:var(--g);text-decoration:none}.crumb li[aria-current]{color:#111827;font-weight:600}
@media(min-width:768px){.admin .side{position:sticky;top:.5rem;max-height:calc(100vh - 1rem);overflow-y:auto;align-self:flex-start}}
@media(max-width:767.98px){.admin .side{position:fixed;z-index:1050;top:0;bottom:0;left:0;width:78%;max-width:300px;border-radius:0;overflow-y:auto;transform:translateX(-105%);transition:transform .2s;box-shadow:2px 0 12px rgba(0,0,0,.2);padding-top:.6rem!important}.nav-open .admin .side,.admin.nav-open .side,body.nav-open .side{transform:none}#nav-ov{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:1040}#nav-ov[hidden]{display:none}.nv-pin{opacity:.7;padding:.3rem .6rem}}
.me-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:.25rem;text-align:center;font-size:12px}.me-quick a{color:#374151;text-decoration:none;padding:.35rem 0;border-radius:8px;position:relative}.me-quick a span{display:block;font-size:22px}.me-quick a:active{background:#fff1ec}
.me-sec{font-size:13px;font-weight:600;color:#6b7280;margin:.2rem .25rem 0}.me-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(68px,1fr));gap:.25rem;text-align:center;font-size:12px}.me-grid a{color:#374151;text-decoration:none;padding:.3rem 0}.me-grid a span{display:block;font-size:22px}
.me-jump{display:flex;gap:.4rem;overflow-x:auto;padding:.1rem .25rem}.me-jump a{white-space:nowrap;font-size:12px;border:1px solid #f3c4bb;color:#c43a28;border-radius:999px;padding:.1rem .6rem;text-decoration:none;background:#fff}
@media(max-width:767.98px){.adm-head{flex-wrap:wrap;gap:.35rem}.adm-head .brandbar{white-space:nowrap;font-size:15px}.adm-head .gs-box{order:3;flex:0 0 100%;margin:0!important}.adm-head>.small{order:2;margin-left:auto;text-align:right;font-size:12px}}

/* r19 roles */
#roleMatrixWrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
#roleMatrix{min-width:520px}
#roleMatrix th.sticky-col,#roleMatrix td.sticky-col{position:sticky;left:0;background:#fff;z-index:1}
#roleMatrix .perm-danger{background:rgba(229,67,47,.08)}
.role-chip.active{outline:2px solid #E5432F;outline-offset:-2px}
#admin403 .btn{background:#D63A26;border-color:#D63A26}

/* ===== 第 20 轮：C 端体验 ===== */
.tabbar a{min-height:56px;padding:.45rem 0 .5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}
.tabbar a span{font-size:22px;line-height:1.1}
.badge-dot.bump{animation:badgeBump .45s ease}
@keyframes badgeBump{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}
.addbtn.adding{opacity:.6}.addbtn.added{background:var(--leaf-ink);transform:scale(1.08);transition:transform .2s}
.xdj-toast{transition:opacity .25s,transform .25s}.xdj-toast.out{opacity:0;transform:translateX(-50%) translateY(8px)}.xdj-toast.bad{background:rgba(127,29,29,.95)}
.ux-empty{text-align:center;padding:2.2rem 1rem 1.4rem}.ux-empty-ico{font-size:48px;line-height:1;margin-bottom:.4rem}.ux-empty-t{font-weight:700;font-size:16px;color:#111827}.ux-empty-s{color:#6b7280;font-size:13px;margin-top:.25rem}
.ux-stock-warn{background:#fef2f2;color:#b91c1c;border-radius:6px;padding:2px 6px;font-size:12px;margin-top:2px}
.ux-sec-t{font-size:13px;font-weight:700;color:#374151;margin:.15rem 0}
.ux-addr-chips{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.ux-addr{display:block;width:100%;text-align:left;border:1px solid #e5e7eb;background:#fff;border-radius:10px;padding:8px 10px;color:#111827}
.ux-addr b{display:block;font-size:14px}.ux-addr span{display:block;font-size:12px;color:#6b7280;margin-top:2px}
.ux-addr em{display:inline-block;font-style:normal;font-size:11px;background:var(--brand-soft);color:var(--brand-hover);border-radius:4px;padding:0 5px;margin-right:4px}
.ux-addr.on{border-color:var(--brand-ink);background:var(--brand-soft);box-shadow:0 0 0 1px var(--brand-ink)}
.ux-addr.add{text-align:center;color:var(--brand-hover);text-decoration:none;padding:10px}
.ux-addr-empty{padding:8px 0}
.ux-steps{display:flex;align-items:flex-start;justify-content:space-between;gap:0;margin:12px 0 4px;font-size:11px;text-align:center}
.ux-steps>div{flex:0 0 auto;width:44px;color:#9ca3af}.ux-steps>div b{display:block;width:22px;height:22px;margin:0 auto 3px;border-radius:50%;background:#e5e7eb;color:#fff;line-height:22px;font-size:11px}
.ux-steps>div span{display:block;line-height:1.2}
.ux-steps>div.on{color:var(--brand-ink);font-weight:700}.ux-steps>div.on b{background:var(--brand-ink)}
.ux-steps>div.done{color:var(--leaf-ink)}.ux-steps>div.done b{background:var(--leaf-ink)}
.ux-steps>div.bad b{background:#b91c1c}.ux-step-line{flex:1;height:2px;background:#e5e7eb;margin-top:10px;min-width:8px}.ux-step-line.on{background:var(--leaf)}
.ux-hint{background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a;border-radius:10px;padding:8px 10px;margin:8px 0;font-size:13px}
.ux-hint.warn{background:#fef2f2;border-color:#fecaca;color:#991b1b}.ux-hint.ok{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.ux-hint.muted{background:#f3f4f6;border-color:#e5e7eb;color:#4b5563}
.ux-eta-slot{background:var(--brand-soft);border-radius:8px;padding:6px 10px;margin-top:6px;font-size:14px;color:#7f1d1d}.ux-eta-slot.compact{font-size:12px;padding:3px 8px;display:inline-block}
.ux-eta-slot b{margin-right:4px}
.ux-st{font-weight:700;color:var(--leaf-ink)}.ux-st.on{color:var(--brand-ink)}
.ux-mini-bar{display:block;height:3px;background:#f3f4f6;border-radius:2px;margin-top:3px;overflow:hidden;min-width:64px}.ux-mini-bar i{display:block;height:100%;background:var(--brand-ink);border-radius:2px}
.ord-card{padding-bottom:.6rem}
.pcard .pprice .price{font-size:16px}.pcard .soldout{position:absolute;inset:0;background:rgba(255,255,255,.55);display:flex;align-items:center;justify-content:center;font-weight:700;color:#6b7280;font-size:15px}
.cat-sticky{position:sticky;top:48px;z-index:5;background:#f5f6f7;padding-bottom:4px}
.search-suggest{padding:.25rem 0;margin-top:-.25rem}.ss-item{display:flex;align-items:center;gap:8px;padding:8px 10px;text-decoration:none;color:#111827;border-bottom:1px solid #f3f4f6}
.ss-item img{border-radius:6px;object-fit:cover;background:#f3f4f6}.ss-n{flex:1;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ss-p{color:var(--price);font-weight:700;font-size:13px}
.ss-more{display:block;text-align:center;padding:8px;font-size:13px;color:var(--brand-hover);text-decoration:none}
.skel-img{aspect-ratio:1;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb 37%,#f3f4f6 63%);background-size:400% 100%;animation:skel 1.2s ease infinite;border-radius:0}
.skel-line{height:12px;margin:8px 10px 0;border-radius:4px;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb 37%,#f3f4f6 63%);background-size:400% 100%;animation:skel 1.2s ease infinite}.skel-line.short{width:40%;margin-bottom:10px}
@keyframes skel{0%{background-position:100% 0}100%{background-position:0 0}}
body.kb-open main.container-fluid{padding-bottom:calc(140px + var(--kb,0px))!important}
body.kb-open .bar-bottom,body.kb-open .tabbar{transform:translateY(calc(-1 * var(--kb,0px)))}
@media(max-width:420px){.ux-steps>div{width:38px;font-size:10px}.ux-steps>div b{width:20px;height:20px;line-height:20px}}
/* ===== 第 21 轮：商品详情 / 凑单券 / 骑手拣货 / 深色模式 ===== */
.theme-btn{flex:none;width:36px;height:36px;border:0;border-radius:50%;background:rgba(255,255,255,.18);font-size:17px;line-height:36px;padding:0;color:#fff}
.theme-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}
/* 图集 */
.gallery{position:relative}.g-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;outline:none}.g-track::-webkit-scrollbar{display:none}
.g-slide{flex:0 0 100%;scroll-snap-align:start;margin:0;position:relative}.g-slide img{width:100%;aspect-ratio:1;max-height:420px;object-fit:cover;display:block;cursor:zoom-in;background:#f1ece9}
.g-slide figcaption{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.55);color:#fff;font-size:12px;border-radius:10px;padding:1px 8px}
.g-dots{position:absolute;bottom:10px;left:0;right:0;display:flex;justify-content:center;gap:4px;pointer-events:none}.g-dots i{width:6px;height:6px;border-radius:3px;background:rgba(255,255,255,.6);box-shadow:0 0 2px rgba(0,0,0,.4)}.g-dots i.on{width:16px;background:#fff}
.g-count{position:absolute;right:10px;bottom:8px;background:rgba(0,0,0,.5);color:#fff;font-size:12px;border-radius:10px;padding:0 8px}
.g-zoom-tip{position:absolute;right:10px;top:10px;background:rgba(0,0,0,.45);color:#fff;font-size:11px;border-radius:10px;padding:1px 8px;pointer-events:none}
.lb{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:2000;display:flex;flex-direction:column;touch-action:none}
.lb-stage{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden}.lb-stage img{max-width:100%;max-height:100%;transition:transform .15s;user-select:none;-webkit-user-drag:none}
.lb-x{position:absolute;top:calc(10px + env(safe-area-inset-top));right:12px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.15);color:#fff;font-size:20px;z-index:2}
.lb-bar{display:flex;justify-content:center;align-items:center;gap:18px;color:#fff;padding:10px 0 calc(14px + env(safe-area-inset-bottom))}.lb-bar button{min-width:44px;min-height:44px;border:0;border-radius:22px;background:rgba(255,255,255,.15);color:#fff;font-size:20px}
body.lb-open{overflow:hidden}
/* 规格 / 好评 / 信息卡 */
.rate-chip{display:inline-block;font-size:12px;color:#92400e;background:#fef3c7;border-radius:10px;padding:1px 8px;text-decoration:none;margin:2px 0 4px}
.variants{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0}.variants .vk{font-size:13px;color:#6b7280;margin-right:2px}
.vchip{min-height:36px;display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border:1.5px solid #e5e7eb;border-radius:18px;color:#374151;text-decoration:none;font-size:14px;background:#fff}
.vchip.on{border-color:var(--brand-ink);color:var(--brand-ink);background:var(--brand-soft);font-weight:700}.vchip.out{opacity:.55;text-decoration:line-through}.vchip small{font-weight:400;color:#6b7280}
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px}@media(min-width:700px){.facts{grid-template-columns:repeat(4,1fr)}}
.fact{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;background:#f8f6f5;border-radius:10px;padding:8px 10px}
.fact .fi{grid-row:1/3;font-size:22px}.fact .fk{font-size:12px;color:#6b7280}.fact .fv{font-size:14px;font-weight:600;color:#1f2937;line-height:1.25}.fact.warn{background:#fff7ed}.fact.warn .fv{color:#9a3412}
/* 底部加购栏 + 步进器 */
.pd-bar{gap:8px;flex-wrap:nowrap}.pd-bar .btn-sm{padding:.25rem .45rem}
.stepper{display:inline-flex;align-items:center;border:1.5px solid #e5e7eb;border-radius:22px;overflow:hidden;background:#fff;flex:none}
.stepper .st-btn{width:36px;height:36px;border:0;background:transparent;font-size:20px;line-height:1;color:var(--brand-ink)}.stepper .st-btn:disabled{color:#c4c4c4}
.stepper input{width:38px;border:0;text-align:center;font-weight:700;background:transparent;-moz-appearance:textfield;color:inherit}.stepper input::-webkit-inner-spin-button,.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.pd-addbtn{white-space:nowrap;min-height:40px;border-radius:20px;padding:0 16px;font-weight:700}
@media(max-width:440px){.pd-bar{padding:.5rem .5rem;gap:6px}.pd-bar>div{gap:6px!important}.pd-bar a.btn-outline-success{display:none}.pd-bar .stepper .st-btn{width:32px;height:34px}.pd-bar .stepper input{width:30px}.pd-addbtn{padding:0 12px}}
#bought-together .flashrow .pcard{border:1px solid #f1f1f1}
/* 凑单/券目标条 */
.goal-bar .goal{font-size:13px;padding:2px 0}.goal-bar .goal.ok{color:var(--leaf-ink);font-weight:600}.goal-bar .goal.ship{color:#1d4ed8}.goal-bar .goal.coupon{color:#9a3412}.goal-bar .goal.promo{color:#b42318}
.goal-prog{height:6px;border-radius:3px;background:#f1e4e1;overflow:hidden;margin-top:6px}.goal-prog i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),#f59e0b);border-radius:3px;transition:width .3s}
#cp-locked summary{cursor:pointer;color:#6b7280}
/* 骑手端：大字号 + 大按钮 + 长按确认 */
body.rider-ui{font-size:17px}.rider-ui .r-task{padding:14px;border-left:5px solid #e5e7eb}.rider-ui .r-task.r-delivering{border-left-color:var(--leaf)}.rider-ui .r-task.r-awaiting_rider{border-left-color:#2563eb}
.rider-ui .r-addr{font-size:19px;line-height:1.3}.rider-ui .r-fee{font-size:20px;font-weight:800;color:var(--leaf-ink);white-space:nowrap}.rider-ui .small{font-size:15px!important}
.r-acts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.r-act{display:flex;align-items:center;justify-content:center;min-height:52px;border-radius:12px;background:#eef2ff;color:#1e3a8a;font-weight:700;text-decoration:none;font-size:16px}
.r-act[href^="tel:"]{background:#ecfdf5;color:#065f46}
.r-big{min-height:58px;font-size:18px;font-weight:800;border-radius:14px;position:relative;overflow:hidden;touch-action:manipulation;user-select:none;-webkit-user-select:none}
.r-big .hold-fill{position:absolute;inset:0;width:0;background:rgba(255,255,255,.3);pointer-events:none}.r-big .hold-t{position:relative}
.r-big.holding .hold-fill{width:100%;transition:width var(--hold,800ms) linear}.r-big.held{filter:brightness(.9)}
.rider-ui .chips a{min-height:44px;display:inline-flex;align-items:center;font-size:15px}
/* 拣货单交互 */
.pk-bar{position:sticky;top:0;z-index:5;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:8px 10px;margin-bottom:8px}.pk-bar.all-done{border-color:var(--leaf);background:#f0fdf4}
.pk-row{cursor:pointer}.pk-row td{vertical-align:middle}.pk-row.done td{opacity:.5;text-decoration:line-through}.pk-row.done .box{background:var(--leaf);border-color:var(--leaf)!important;position:relative}
.pk-row.done .box::after{content:'✓';color:#fff;position:absolute;left:3px;top:-3px;font-size:14px;font-weight:700}.pk-row.shorted{background:#fff1f2}.pk-row:focus-visible{outline:2px solid var(--brand-ink)}
@media screen and (max-width:700px){.pk-row td{padding:10px 6px!important}.pk-row .box{width:24px!important;height:24px!important}.c-bc{display:none}}
/* 收银 */
#cash-quick .btn{min-width:56px}.pos-pay{min-height:48px;font-size:18px;font-weight:800}

/* ---------- 深色模式（仅 C 端；番茄红文字在深色底改用亮色 #FF7A66，对比 ≥4.5） ---------- */
html[data-eff=dark]{color-scheme:dark;--brand-soft:#3a1f1b;--brand-soft2:#4a2620;--price:#FF9F5A;--price-soft:#3b2414;--leaf-ink:#4ade80;--leaf-soft:#12301b;--bs-link-color:#FF7A66;--bs-link-color-rgb:255,122,102;--bs-link-hover-color:#FFA494;--bs-body-bg:#121417;--bs-body-color:#E7E9EC;--bs-secondary-color:#A3A9B3;--bs-border-color:#2c3036}
html[data-eff=dark] body{background:#121417;color:#E7E9EC}
html[data-eff=dark] .topbar{background:#1a1d22;border-bottom:1px solid #2a2e35}
html[data-eff=dark] .search input{background:#2a2e35;color:#E7E9EC}html[data-eff=dark] .search input::placeholder{color:#8b929c}
html[data-eff=dark] .card-w,html[data-eff=dark] .pcard,html[data-eff=dark] .tabbar,html[data-eff=dark] .bar-bottom,html[data-eff=dark] .catgrid,html[data-eff=dark] .catleft,html[data-eff=dark] .sortbar,html[data-eff=dark] .home-mod-item,html[data-eff=dark] .stepper,html[data-eff=dark] .vchip,html[data-eff=dark] .ux-addr,html[data-eff=dark] .cat-sticky,html[data-eff=dark] .search-suggest{background:#1C1F24;color:#E7E9EC;border-color:#2c3036}
html[data-eff=dark] .tabbar,html[data-eff=dark] .bar-bottom{border-top-color:#2c3036}
html[data-eff=dark] .tabbar a,html[data-eff=dark] .catgrid a,html[data-eff=dark] .catleft a,html[data-eff=dark] .sortbar a,html[data-eff=dark] .me-quick a,html[data-eff=dark] .me-grid a,html[data-eff=dark] .addon-item .n,html[data-eff=dark] .vchip{color:#C9CED6}
html[data-eff=dark] .tabbar a.on,html[data-eff=dark] .sortbar a.on,html[data-eff=dark] .catleft a.on,html[data-eff=dark] .vchip.on,html[data-eff=dark] .store-chip{color:#FF7A66}
html[data-eff=dark] .chips a{background:#1C1F24;color:#C9CED6;border-color:#2c3036}html[data-eff=dark] .chips a.on{background:var(--brand-ink);color:#fff;border-color:var(--brand-ink)}
html[data-eff=dark] .pspec,html[data-eff=dark] .store-chip span,html[data-eff=dark] .fact .fk,html[data-eff=dark] .variants .vk,html[data-eff=dark] .vchip small,html[data-eff=dark] .text-muted{color:#A3A9B3!important}
html[data-eff=dark] .pcard img,html[data-eff=dark] .g-slide img{background:#2a2e35}
html[data-eff=dark] .fact{background:#24282e}html[data-eff=dark] .fact .fv{color:#E7E9EC}html[data-eff=dark] .fact.warn{background:#3b2414}html[data-eff=dark] .fact.warn .fv{color:#FDBA74}
html[data-eff=dark] .vip-line,html[data-eff=dark] .tag-vip,html[data-eff=dark] .rate-chip{background:#3a2e10;color:#FCD34D}
html[data-eff=dark] .tag-flash{background:#3b2414;color:#FDBA74}html[data-eff=dark] .tag-promo{background:#3a1f1b;color:#FFA494}
html[data-eff=dark] .addon-item,html[data-eff=dark] #bought-together .flashrow .pcard{border-color:#2c3036}
html[data-eff=dark] .goal-prog{background:#2c3036}html[data-eff=dark] .goal-bar .goal.ship{color:#93c5fd}html[data-eff=dark] .goal-bar .goal.coupon{color:#FDBA74}html[data-eff=dark] .goal-bar .goal.promo{color:#FFA494}
html[data-eff=dark] .ux-hint,html[data-eff=dark] .brand-soft,html[data-eff=dark] .presale-box,html[data-eff=dark] .sub-box,html[data-eff=dark] .vip-tip,html[data-eff=dark] .vip-card-mini,html[data-eff=dark] .fam-bar,html[data-eff=dark] .rv-reply{background:#24282e!important;color:#E7E9EC!important}
html[data-eff=dark] .rv-tabs a{background:#3a1f1b;color:#FFA494}html[data-eff=dark] .rv-tabs a.on{background:var(--brand-ink);color:#fff}
html[data-eff=dark] .allergy-banner,html[data-eff=dark] .ux-stock-warn{background:#3b1d1d;color:#FCA5A5}
html[data-eff=dark] .steps div b,html[data-eff=dark] .ux-steps>div b{background:#3a3f47}html[data-eff=dark] .steps div{color:#8b929c}html[data-eff=dark] .steps div.on{color:#FF7A66}
html[data-eff=dark] .table{--bs-table-bg:transparent;--bs-table-color:#E7E9EC}html[data-eff=dark] .table-success{--bs-table-bg:#12301b;--bs-table-color:#bbf7d0}
html[data-eff=dark] .form-control,html[data-eff=dark] .form-select{background-color:#24282e;color:#E7E9EC;border-color:#3a3f47}
html[data-eff=dark] .btn-outline-success{--bs-btn-color:#FF7A66;--bs-btn-border-color:#FF7A66}
html[data-eff=dark] .btn-outline-secondary{--bs-btn-color:#C9CED6;--bs-btn-border-color:#4b5159}
html[data-eff=dark] .alert-info{background:#1e2a36;color:#cfe3f5;border-color:#2c4256}
html[data-eff=dark] .text-danger{color:#FF8A7A!important}html[data-eff=dark] .text-success{color:#4ade80!important}html[data-eff=dark] .text-primary{color:#93c5fd!important}
html[data-eff=dark] .ux-empty-t{color:#E7E9EC}html[data-eff=dark] .ss-item{color:#E7E9EC}
html[data-eff=dark] .pcard a,html[data-eff=dark] .tabbar a,html[data-eff=dark] .catgrid a,html[data-eff=dark] .me-quick a,html[data-eff=dark] .me-grid a,html[data-eff=dark] .addon-item a,html[data-eff=dark] .rcard{color:inherit}
html[data-eff=dark] .tabbar a.on{color:#FF7A66}

/* ===== 第 22 轮：员工端深色 + 浮动主题按钮 + 拣货同步提示 ===== */
body.admin > .theme-btn,
body.rider-ui > .theme-btn,
body[data-pk-page] > .theme-btn{
  position:fixed; top:10px; right:10px; z-index:1050;
  background:var(--brand-ink); color:#fff; box-shadow:0 2px 8px rgba(0,0,0,.25);
}
html[data-eff=dark] body.admin > .theme-btn,
html[data-eff=dark] body.rider-ui > .theme-btn,
html[data-eff=dark] body[data-pk-page] > .theme-btn{ background:#FF7A66; color:#1C1F24; }

/* 后台 / 收银 / 拣货深色 */
html[data-eff=dark] body.admin,
html[data-eff=dark] .admin{ background:#121417; color:#E7E9EC; }
html[data-eff=dark] .admin .side,
html[data-eff=dark] .admin .side.card-w,
html[data-eff=dark] .admin .card-w,
html[data-eff=dark] body.admin .card-w,
html[data-eff=dark] body.admin .table{ --bs-table-bg:transparent; --bs-table-color:#E7E9EC; --bs-table-border-color:#2c3036; }
html[data-eff=dark] .admin .side a{ color:#C9CED6; }
html[data-eff=dark] .admin .side a.on{ background:var(--brand-ink); color:#fff; }
html[data-eff=dark] .admin .side a:hover{ background:#24282e; color:#FF7A66; }
html[data-eff=dark] .adm-head,
html[data-eff=dark] .brandbar{ color:#E7E9EC; }
html[data-eff=dark] .admin .nv-grp summary{ color:#A3A9B3; }
html[data-eff=dark] .admin .form-control,
html[data-eff=dark] .admin .form-select,
html[data-eff=dark] body.admin .form-control,
html[data-eff=dark] body.admin .form-select{ background-color:#24282e; color:#E7E9EC; border-color:#3a3f47; }
html[data-eff=dark] .admin .btn-outline-secondary,
html[data-eff=dark] body.admin .btn-outline-secondary{ --bs-btn-color:#C9CED6; --bs-btn-border-color:#4b5159; }
html[data-eff=dark] .admin .btn-outline-success{ --bs-btn-color:#FF7A66; --bs-btn-border-color:#FF7A66; }
html[data-eff=dark] .admin .table-sm th,
html[data-eff=dark] body.admin .table th{ color:#A3A9B3; }
html[data-eff=dark] .admin .badge.bg-light{ background:#2c3036!important; color:#E7E9EC!important; }
html[data-eff=dark] .admin .badge.bg-warning{ color:#1C1F24!important; }
html[data-eff=dark] #nav-ov{ background:rgba(0,0,0,.55); }
html[data-eff=dark] .admin .crumb a,
html[data-eff=dark] .admin .crumb{ color:#A3A9B3; }
html[data-eff=dark] .gs-box input{ background:#24282e; color:#E7E9EC; border-color:#3a3f47; }
html[data-eff=dark] .kpi{ background:#1C1F24; color:#E7E9EC; }
html[data-eff=dark] .area{ background:#24282e!important; color:#E7E9EC; }
html[data-eff=dark] .pk-bar{ background:#1C1F24; border-color:#2c3036; color:#E7E9EC; }
html[data-eff=dark] .pk-bar.all-done{ background:#12301b; border-color:var(--leaf); }
html[data-eff=dark] .pk-row.shorted{ background:#3b1d1d; }
html[data-eff=dark] .pk-row.done .box{ background:var(--leaf); border-color:var(--leaf)!important; }
html[data-eff=dark] body[data-pk-page]{ background:#121417; color:#E7E9EC; }
html[data-eff=dark] body[data-pk-page] .table{ --bs-table-bg:#1C1F24; --bs-table-color:#E7E9EC; --bs-table-border-color:#2c3036; }
html[data-eff=dark] .box{ border-color:#A3A9B3; }

/* 骑手端深色 */
html[data-eff=dark] body.rider-ui{ background:#121417; color:#E7E9EC; }
html[data-eff=dark] .rider-ui .card-w,
html[data-eff=dark] .rider-ui .r-task{ background:#1C1F24; color:#E7E9EC; border-color:#2c3036; }
html[data-eff=dark] .rider-ui .r-addr{ color:#E7E9EC; }
html[data-eff=dark] .rider-ui .r-fee{ color:#4ade80; }
html[data-eff=dark] .rider-ui .r-act{ background:#1e2a36; color:#93c5fd; }
html[data-eff=dark] .rider-ui .r-act[href^="tel:"]{ background:#12301b; color:#4ade80; }
html[data-eff=dark] .rider-ui .chips a{ background:#1C1F24; color:#C9CED6; border-color:#2c3036; }
html[data-eff=dark] .rider-ui .chips a.on{ background:var(--brand-ink); color:#fff; }
html[data-eff=dark] .rider-ui .online-dot.on{ background:#4ade80; }
html[data-eff=dark] .rider-ui .banner{ background:linear-gradient(120deg,#8B2418,#B42318); }

/* 收银深色微调 */
html[data-eff=dark] body.admin #lines td{ color:#E7E9EC; }
html[data-eff=dark] #cash-quick .btn{ --bs-btn-color:#C9CED6; --bs-btn-border-color:#4b5159; }

#pk-sync{ margin-left:.4rem; }
