/* Coque des applications mobiles (client et livreur) */
body.mob{background:#f7f3ee;min-height:100vh}
.stage{display:flex;gap:40px;justify-content:center;align-items:flex-start;padding:32px 20px;min-height:100vh}
.side{width:280px;position:sticky;top:32px;max-height:calc(100vh - 64px);overflow:auto}
.side h1{font-size:20px;margin:14px 0 4px}.side p{color:var(--muted);font-size:12px;margin-bottom:14px}
.side a.it{display:flex;gap:10px;padding:7px 10px;border-radius:9px;font-size:13px;color:var(--text2)}
.side a.it b{color:var(--orange);font-weight:700;min-width:30px}
.side a.it:hover{background:#fff}.side a.it.on{background:#fff;color:var(--text);font-weight:600;box-shadow:var(--sh)}
.side .lk{display:block;margin-top:14px;font-size:12px;color:var(--orange);font-weight:600}
.phone{width:390px;height:844px;border-radius:56px;border:11px solid #0e1430;background:#fff;position:relative;overflow:hidden;flex-shrink:0;box-shadow:0 30px 60px rgba(18,29,69,.18)}
.phone::before{content:'';position:absolute;top:10px;left:50%;transform:translateX(-50%);width:118px;height:34px;border-radius:20px;background:#0e1430;z-index:50}
.phone::after{content:'';position:absolute;bottom:8px;left:50%;transform:translateX(-50%);width:130px;height:5px;border-radius:5px;background:#0e1430;z-index:50}
#app{position:absolute;inset:0;overflow:hidden}
.sbar{height:50px;display:flex;align-items:center;justify-content:space-between;padding:6px 30px 0;font-weight:600;font-size:15px;flex-shrink:0;position:relative;z-index:40}
.sbar .sic{display:flex;gap:5px;align-items:center}
.scr{height:100%;display:flex;flex-direction:column;background:#fff;position:relative}
.scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 20px 20px;scrollbar-width:none}
.scroll::-webkit-scrollbar{display:none}
.foot{padding:12px 20px 30px;flex-shrink:0;background:#fff}
.hd{display:flex;align-items:center;gap:12px;padding:8px 20px 14px;flex-shrink:0}
.hd h2{font-size:20px;font-weight:700;flex:1;letter-spacing:-.2px}
.tabbar{display:flex;justify-content:space-around;border-top:1px solid var(--line);padding:12px 10px 30px;flex-shrink:0;background:#fff}
.tabbar a{color:#9aa0b2;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;padding:4px 10px}
.tabbar a.on{color:var(--orange)}
.sec{font-weight:700;font-size:15px;margin:18px 0 10px}
.qty{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:4px 5px;font-weight:600}
.qty button{width:24px;height:24px;border-radius:7px;display:grid;place-items:center}
.qty button.p{background:var(--orange);color:#fff}
.addc{width:26px;height:26px;border-radius:50%;background:var(--orange);color:#fff;display:grid;place-items:center;flex-shrink:0}
.cartbar{display:flex;justify-content:space-between;align-items:center;background:var(--orange);color:#fff;border-radius:12px;height:50px;padding:0 18px;font-weight:600;font-size:14px;width:100%}
.otp{display:flex;gap:12px}.otp input{width:62px;height:64px;border-radius:14px;border:1px solid var(--line);text-align:center;font-size:24px;font-weight:700;outline:none}
.otp input:focus{border:2px solid var(--orange)}
.sheet{position:absolute;left:0;right:0;bottom:0;background:#fff;border-radius:24px 24px 0 0;box-shadow:0 -6px 24px rgba(0,0,0,.08);padding:12px 20px 30px;z-index:20}
.sheet .grab{width:40px;height:4px;border-radius:4px;background:#dfe1e6;margin:0 auto 14px}
.float{position:absolute;left:16px;right:16px;top:58px;background:#fff;border-radius:14px;padding:14px 16px;box-shadow:0 6px 20px rgba(0,0,0,.1);z-index:20}
.mapwrap{position:absolute;inset:0}
.big-ok{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;color:#fff;margin:0 auto}
.steps .st{display:flex;gap:12px;align-items:flex-start;padding:9px 0}
.steps .dot{width:22px;height:22px;border-radius:50%;border:2px solid #d4d7df;display:grid;place-items:center;color:#fff;flex-shrink:0}
.steps .dot.done{background:var(--orange);border-color:var(--orange)}
.steps .dot.cur{border:6px solid var(--orange)}
.seg{display:flex;background:#f1f2f5;border-radius:11px;padding:4px}
.seg a{flex:1;text-align:center;padding:8px;border-radius:8px;font-size:13px;color:var(--muted)}
.seg a.on{background:#fff;color:var(--text);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.hscroll{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -20px;padding:0 20px}
.hscroll::-webkit-scrollbar{display:none}
.bubble{max-width:78%;padding:11px 14px;border-radius:14px;font-size:13px;line-height:1.5;background:#fff;border:1px solid var(--line)}
.bubble.me{background:var(--orange);color:#fff;border:0;margin-left:auto}
.bubble small{display:block;text-align:right;font-size:10px;opacity:.6;margin-top:4px}
.stat{background:#f4f5f8;border-radius:12px;padding:12px;flex:1;min-width:0}
.stat .m{font-size:11px}.stat b{font-size:17px;display:block;margin-top:2px}
@media (max-width:860px){.side{display:none}.stage{padding:20px}}
@media (max-width:500px){
  .stage{padding:0;display:block}
  .phone{width:100vw;height:100dvh;border:0;border-radius:0;box-shadow:none}
  .phone::before,.phone::after{display:none}
  .sbar{visibility:hidden;height:max(14px,env(safe-area-inset-top))}
  .tabbar,.foot{padding-bottom:max(18px,env(safe-area-inset-bottom))}
}
