:root{--g:#06C755;--gd:#05a948;--gl:#E8F8EE;--ink:#111827;--mut:#6B7280;--line:#E5E7EB;--bg:#F3F4F6;--card:#fff;--r:14px;
--amber:#F59E0B;--blue:#3B82F6;--purple:#8B5CF6;--red:#EF4444}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{font-family:"Noto Sans Thai","Sarabun","Prompt",system-ui,sans-serif;color:var(--ink);background:#d9dde3;font-size:15px;line-height:1.4}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;padding:0}
input,textarea{font:inherit;color:inherit}
#phone{max-width:430px;margin:0 auto;min-height:100vh;min-height:100dvh;background:var(--bg);position:relative;box-shadow:0 0 40px rgba(0,0,0,.12)}
/* demo bar */
#demobar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:6px;padding:6px 8px;background:#1f2937;color:#fff}
.demo-badge{font-size:11px;font-weight:700;background:#FBBF24;color:#111;padding:2px 7px;border-radius:99px;white-space:nowrap}
.seg{flex:1;display:flex;background:#374151;border-radius:99px;padding:2px}
.seg button{flex:1;font-size:12.5px;padding:5px 2px;border-radius:99px;color:#d1d5db;white-space:nowrap}
.seg button.on{background:#fff;color:#111;font-weight:600}
.reset{width:30px;height:30px;border-radius:50%;background:#374151;color:#fff;font-size:17px}
/* liff bar */
.liffbar{position:sticky;top:42px;z-index:20;display:flex;align-items:center;gap:8px;height:48px;padding:0 10px;background:#fff;border-bottom:1px solid var(--line)}
.liffbar .x{width:32px;height:32px;font-size:20px;color:#374151;border-radius:50%}
.liffbar .ttl{flex:1;text-align:center;min-width:0}
.liffbar .ttl b{display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.liffbar .ttl small{display:block;font-size:10.5px;color:var(--mut);margin-top:-2px}
.liffbar .more{width:32px;height:32px;font-size:18px;color:#374151}
.steps{position:sticky;top:90px;z-index:19;display:flex;gap:4px;padding:8px 10px;background:#fff;border-bottom:1px solid var(--line)}
.steps button{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;font-size:13px;color:var(--mut);padding:5px 0;border-radius:99px}
.steps button i{font-style:normal;width:20px;height:20px;border-radius:50%;display:inline-grid;place-items:center;background:var(--bg);font-size:11.5px;font-weight:700}
.steps button.on{background:var(--gl);color:var(--gd);font-weight:600}
.steps button.on i,.steps button.done i{background:var(--g);color:#fff}
main{padding:12px 12px 110px}
.card{background:var(--card);border-radius:var(--r);padding:14px;margin-bottom:12px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.h{display:flex;align-items:center;gap:6px;font-weight:700;font-size:15px;margin:0 0 10px}
.h .sp{flex:1}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:3px 9px;border-radius:99px;background:var(--bg);color:#374151;white-space:nowrap}
.chip.g{background:var(--gl);color:var(--gd)}
.chip.fake{background:#FEF3C7;color:#92400E}
.chip.dash{background:none;border:1.5px dashed #9CA3AF;color:#4B5563}
.btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:48px;border-radius:12px;background:var(--g);color:#fff;font-weight:700;font-size:16px}
.btn:active{background:var(--gd)}
.btn.ghost{background:#fff;color:var(--ink);border:1.5px solid var(--line)}
.btn.soft{background:var(--gl);color:var(--gd)}
.btn[disabled]{background:#D1D5DB;color:#fff}
.row2{display:flex;gap:8px}.row2>*{flex:1}
/* shop hero */
.hero{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#06C755,#04a24a);color:#fff;border-radius:var(--r);padding:14px;margin-bottom:12px}
.ava{width:52px;height:52px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:28px;flex:none}
.hero b{font-size:17px;display:block}
.hero .chips{margin-top:6px}.hero .chip{background:rgba(255,255,255,.22);color:#fff}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.prod{background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.05);display:flex;flex-direction:column}
.prod .img{height:112px;display:grid;place-items:center;font-size:54px;position:relative}
.prod .img .chip{position:absolute;top:7px;left:7px;font-size:10.5px;padding:1px 7px}
.prod .img .chip.low{background:#FEE2E2;color:#B91C1C;left:auto;right:7px}
.prod .info{padding:8px 10px 10px;display:flex;flex-direction:column;gap:6px;flex:1}
.prod .nm{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prod .pr{display:flex;align-items:center;justify-content:space-between;margin-top:auto}
.prod .pr b{font-size:16px;color:var(--gd)}
.prod.out{opacity:.55}
.add{width:34px;height:34px;border-radius:50%;background:var(--g);color:#fff;font-size:22px;line-height:1}
.stepper{display:inline-flex;align-items:center;gap:2px;background:var(--gl);border-radius:99px}
.stepper button{width:30px;height:30px;border-radius:50%;font-size:18px;color:var(--gd);font-weight:700}
.stepper span{min-width:18px;text-align:center;font-weight:700;font-size:14px}
.cartbar{position:fixed;left:50%;transform:translateX(-50%);bottom:12px;width:calc(min(430px,100vw) - 24px);z-index:25;display:flex;align-items:center;gap:10px;background:var(--ink);color:#fff;border-radius:16px;padding:8px 8px 8px 14px;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.cartbar .ic{font-size:22px;position:relative}
.cartbar .ic i{position:absolute;top:-6px;right:-9px;background:var(--g);font-style:normal;font-size:11px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:grid;place-items:center}
.cartbar .tt{flex:1;font-weight:700;font-size:17px}
.cartbar .btn{width:auto;padding:0 18px;height:42px}
/* checkout */
.li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.li:last-child{border-bottom:0}
.li .em{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-size:22px;flex:none}
.li .nm{flex:1;min-width:0;font-size:14px}
.li .nm small{display:block;color:var(--mut);font-size:12px}
.sum{display:flex;justify-content:space-between;font-size:14px;color:var(--mut);padding-top:6px}
.sum.t{color:var(--ink);font-weight:700;font-size:18px}
.fld{display:flex;align-items:center;gap:8px;border:1.5px solid var(--line);border-radius:12px;padding:0 12px;margin-bottom:8px;background:#fff}
.fld span{font-size:18px}
.fld input,.fld textarea{flex:1;border:0;outline:0;padding:12px 0;background:none;font-size:15px;resize:none;min-width:0}
.fld:focus-within{border-color:var(--g)}
.fld.bad{border-color:var(--red);background:#FEF2F2}
.qrcard{text-align:center}
.pp{display:inline-flex;align-items:center;gap:6px;background:#0e3a6b;color:#fff;font-weight:700;font-size:13px;padding:4px 12px;border-radius:8px;letter-spacing:.3px}
.amt{font-size:32px;font-weight:700;margin:6px 0 2px}
.qrwrap{position:relative;width:220px;height:220px;margin:10px auto;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.qrwrap canvas{width:220px;height:220px;display:block}
.qrwrap .wm{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-18deg);background:rgba(239,68,68,.92);color:#fff;font-weight:700;font-size:20px;padding:4px 16px;border-radius:8px;letter-spacing:1px}
.upl{position:relative;overflow:hidden}
.upl input{position:absolute;inset:0;opacity:0;cursor:pointer}
.verify{text-align:center;padding:24px 14px}
.spin{width:54px;height:54px;border-radius:50%;border:5px solid var(--gl);border-top-color:var(--g);margin:0 auto 12px;animation:sp 0.9s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.big-ok{width:72px;height:72px;border-radius:50%;background:var(--g);color:#fff;font-size:40px;display:grid;place-items:center;margin:0 auto 10px;animation:pop .35s ease}
@keyframes pop{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
.verify h3{margin:0 0 10px;font-size:20px}
.verify .chips{justify-content:center}
/* status */
.ohead{display:flex;align-items:center;gap:8px}
.ohead b{font-size:18px}.ohead .sp{flex:1}
.tl{list-style:none;margin:6px 0 0;padding:0}
.tl li{display:flex;gap:12px;position:relative;padding-bottom:18px}
.tl li:last-child{padding-bottom:0}
.tl li:not(:last-child)::after{content:"";position:absolute;left:17px;top:36px;bottom:0;width:2px;background:var(--line)}
.tl li.done:not(:last-child)::after{background:var(--g)}
.tl .dot{width:36px;height:36px;border-radius:50%;background:var(--bg);display:grid;place-items:center;font-size:17px;flex:none;filter:grayscale(1);opacity:.6}
.tl li.done .dot{background:var(--gl);filter:none;opacity:1}
.tl li.cur .dot{background:#FEF3C7;filter:none;opacity:1;box-shadow:0 0 0 4px #FEF3C788}
.tl .tx{padding-top:6px}
.tl .tx b{display:block;font-size:15px}
.tl .tx small{color:var(--mut);font-size:12px}
.track{display:flex;align-items:center;gap:10px;background:var(--gl);border-radius:12px;padding:10px 12px;margin-top:12px}
.track .n{flex:1;font-weight:700;font-size:17px;letter-spacing:.5px;font-family:ui-monospace,Menlo,monospace}
.track small{display:block;font-size:11.5px;color:var(--gd);font-family:inherit;letter-spacing:0;font-weight:500}
.mini{font-size:13px;padding:6px 12px;border-radius:99px;background:#fff;color:var(--gd);font-weight:600;border:1px solid #bfe9cf;white-space:nowrap}
.empty{text-align:center;padding:40px 10px;color:var(--mut)}
.empty .e{font-size:54px}
/* status chips */
.st{font-size:12px;font-weight:600;padding:3px 9px;border-radius:99px;white-space:nowrap}
.st.new{background:#F3F4F6;color:#4B5563}
.st.verifying{background:#FEF3C7;color:#92400E}
.st.paid{background:#DBEAFE;color:#1D4ED8}
.st.packed{background:#EDE9FE;color:#6D28D9}
.st.shipped{background:var(--gl);color:var(--gd)}
/* chat */
.chathead{position:sticky;top:42px;z-index:20;display:flex;align-items:center;gap:10px;height:54px;padding:0 10px;background:#fff;border-bottom:1px solid var(--line)}
.chathead .bk{font-size:24px;width:26px;color:#374151}
.chathead .ava{width:36px;height:36px;font-size:20px;background:#FFF4D6}
.chathead b{flex:1;font-size:15.5px}
.chathead b small{display:block;font-size:11px;color:var(--mut);font-weight:400}
.chat{background:#8CABD9;background:linear-gradient(#9bb5dc,#87a6d6);min-height:calc(100vh - 96px);padding:12px 10px 220px}
.daysep{text-align:center;margin:4px 0 10px}.daysep span{background:rgba(0,0,0,.18);color:#fff;font-size:11.5px;padding:2px 10px;border-radius:99px}
.msg{display:flex;gap:7px;margin-bottom:10px;align-items:flex-end}
.msg .ava{width:32px;height:32px;font-size:17px;background:#FFF4D6;align-self:flex-start}
.msg .bub{background:#fff;border-radius:16px;border-top-left-radius:4px;padding:8px 12px;max-width:72%;font-size:14.5px}
.msg time{font-size:10.5px;color:#eef2fa;white-space:nowrap}
.msg.me{flex-direction:row-reverse}
.msg.me .bub{background:#A8E89A;border-radius:16px;border-top-right-radius:4px}
.fx{background:#fff;border-radius:16px;overflow:hidden;width:240px;font-size:14px}
.fx .top{padding:10px 12px;color:#fff;font-weight:700;display:flex;align-items:center;gap:6px}
.fx .top.g{background:var(--g)}.fx .top.b{background:#2563eb}.fx .top.p{background:#7c3aed}.fx .top.o{background:#f59e0b}
.fx .bd{padding:10px 12px}
.fx .r{display:flex;justify-content:space-between;gap:8px;font-size:13.5px;padding:2px 0}
.fx .r span:first-child{color:var(--mut)}
.fx .r.t{font-weight:700;border-top:1px solid var(--line);margin-top:4px;padding-top:6px}
.fx .r.t span:first-child{color:var(--ink)}
.fx .act{display:block;width:100%;padding:10px;text-align:center;color:#2563eb;font-weight:600;border-top:1px solid var(--line)}
.fx .tn{font-family:ui-monospace,Menlo,monospace;font-weight:700;font-size:16px;letter-spacing:.5px}
.slip{width:150px;background:#fff;border-radius:12px;padding:10px;text-align:center;font-size:12px;border:1px solid #d1fae5}
.slip .ok{font-size:22px;color:var(--g)}
.slip b{display:block;font-size:18px}
.slip .chip{margin-top:4px;font-size:10px}
.slip img{width:100%;border-radius:8px;display:block}
.richwrap{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:min(430px,100vw);z-index:25;background:#fff;border-top:1px solid var(--line)}
.inbar{display:flex;align-items:center;gap:8px;padding:8px 10px}
.inbar .ib{width:34px;height:34px;border-radius:50%;font-size:19px;background:var(--bg)}
.inbar .fake{flex:1;height:36px;border-radius:18px;background:var(--bg);color:#9CA3AF;display:flex;align-items:center;padding:0 14px;font-size:14px}
.rich{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#d1fae5}
.rich button{background:linear-gradient(#f0fdf4,#dcfce7);padding:14px 4px;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:13px;font-weight:600;color:#065f46}
.rich button span{font-size:26px}
.rich button.main{background:linear-gradient(#06C755,#05b04c);color:#fff}
.richlbl{font-size:10.5px;text-align:center;color:var(--mut);padding:3px 0;background:#fff}
/* owner */
.ownhead{position:sticky;top:42px;z-index:20;background:#fff;border-bottom:1px solid var(--line)}
.ownhead .t{display:flex;align-items:center;gap:10px;padding:10px 12px 6px}
.ownhead .t .ava{width:38px;height:38px;font-size:21px;background:#FFF4D6}
.ownhead .t b{flex:1;font-size:16px}
.ownhead .t b small{display:block;font-size:11.5px;color:var(--mut);font-weight:400}
.tabs{display:flex;padding:0 6px}
.tabs button{flex:1;padding:9px 0 10px;font-size:13.5px;color:var(--mut);border-bottom:2.5px solid transparent;position:relative;white-space:nowrap}
.tabs button.on{color:var(--gd);border-color:var(--g);font-weight:700}
.badge{position:absolute;top:2px;right:0;background:var(--red);color:#fff;font-size:10.5px;min-width:17px;height:17px;border-radius:9px;display:grid;place-items:center;font-weight:700;padding:0 4px}
.money{background:linear-gradient(135deg,#065f46,#06C755);color:#fff;border-radius:var(--r);padding:14px;margin-bottom:12px}
.money .lbl{font-size:12.5px;opacity:.85}
.money .big{font-size:30px;font-weight:700;line-height:1.2}
.money .stats{display:flex;gap:8px;margin:10px 0}
.money .stats div{flex:1;background:rgba(255,255,255,.16);border-radius:10px;padding:7px 8px}
.money .stats b{display:block;font-size:19px}
.money .stats small{font-size:11.5px;opacity:.9}
.money .btn{background:#fff;color:var(--gd);height:42px;font-size:14.5px}
.orow{display:flex;align-items:center;gap:10px;background:#fff;border-radius:12px;padding:11px 12px;margin-bottom:8px;width:100%;text-align:left;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.orow .l{flex:1;min-width:0}
.orow .l b{font-size:14.5px}
.orow .l small{display:block;color:var(--mut);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.orow .rt{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.orow .rt b{font-size:15px}
.orow.hl{box-shadow:0 0 0 2px var(--g)}
.filt{display:flex;gap:6px;margin-bottom:10px;overflow-x:auto}
.filt button{font-size:13px;padding:5px 12px;border-radius:99px;background:#fff;border:1px solid var(--line);white-space:nowrap}
.filt button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.srow{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}
.srow:last-child{border:0}
.srow .em{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;font-size:23px;flex:none}
.srow .nm{flex:1;min-width:0;font-size:14px}
.srow .nm small{display:block;color:var(--mut);font-size:12px}
.srow .cnt{font-size:20px;font-weight:700;min-width:34px;text-align:center}
.srow .cnt.low{color:var(--red)}
.cava{width:40px;height:40px;border-radius:50%;background:var(--gl);color:var(--gd);display:grid;place-items:center;font-weight:700;flex:none}
.feed{background:linear-gradient(#9bb5dc,#87a6d6);border-radius:var(--r);padding:12px 10px;min-height:300px}
/* sheet */
.ov{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:40;display:flex;align-items:flex-end;justify-content:center;animation:fd .2s}
@keyframes fd{from{opacity:0}}
.sheet{background:#fff;width:min(430px,100vw);border-radius:20px 20px 0 0;padding:8px 16px 20px;max-height:88vh;overflow:auto;animation:up .25s ease}
@keyframes up{from{transform:translateY(40%)}}
.grab{width:40px;height:5px;border-radius:3px;background:#D1D5DB;margin:0 auto 10px}
.sheet .addr{display:flex;gap:8px;font-size:14px;padding:8px 0;color:#374151}
.sheet .acts{margin-top:12px;display:flex;flex-direction:column;gap:8px}
.wait{display:flex;align-items:center;justify-content:center;gap:8px;height:48px;border-radius:12px;background:var(--bg);color:var(--mut);font-weight:600}
/* how */
.lane{background:#fff;border-radius:var(--r);padding:14px;margin-bottom:12px}
.lane h3{margin:0 0 12px;font-size:16px;display:flex;align-items:center;gap:8px}
.flow{display:flex;flex-direction:column;gap:0}
.fs{display:flex;align-items:center;gap:12px;position:relative;padding:6px 0;text-align:left;width:100%}
.fs:not(:last-child)::after{content:"";position:absolute;left:21px;top:46px;height:14px;width:2px;background:repeating-linear-gradient(var(--g) 0 3px,transparent 3px 6px)}
.fs .ic{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-size:22px;flex:none}
.fs .ic.c{background:#DBEAFE}.fs .ic.s{background:#FEF3C7}.fs .ic.b{background:var(--gl)}
.fs b{flex:1;font-size:14.5px;font-weight:600}
.who{font-size:11px;padding:2px 8px;border-radius:99px;font-weight:600}
.who.c{background:#DBEAFE;color:#1D4ED8}.who.s{background:#FEF3C7;color:#92400E}.who.b{background:var(--gl);color:var(--gd)}
.direct{display:flex;align-items:center;justify-content:space-between;background:var(--bg);border-radius:12px;padding:12px 14px;margin-bottom:12px}
.direct .n{display:flex;flex-direction:column;align-items:center;font-size:12px;gap:2px}
.direct .n span{font-size:28px}
.direct .ar{flex:1;text-align:center;color:var(--gd);font-weight:700;font-size:12px;position:relative}
.direct .ar::before{content:"";display:block;height:2px;background:var(--g);margin:0 6px 4px}
.direct .x{font-size:12px;color:var(--red);text-decoration:line-through}
.legend{display:flex;gap:6px;margin-bottom:10px}
#toast{position:fixed;left:50%;bottom:110px;transform:translateX(-50%) translateY(20px);background:rgba(17,24,39,.92);color:#fff;padding:9px 16px;border-radius:99px;font-size:14px;opacity:0;transition:.25s;z-index:60;pointer-events:none;white-space:nowrap}
#toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
.hint{margin:4px 0 10px;text-align:center}
.direct .nomid{display:inline-block;margin-top:4px;font-size:11.5px;background:#FEE2E2;color:#B91C1C;padding:1px 8px;border-radius:99px}
