:root{--bg: #f3f4f6;--panel: #ffffff;--sidebar: #1c2026;--sidebar-2: #2a3038;--text: #1c2129;--muted: #6b7280;--border: #e6e8ec;--accent: #ff6a13;--accent-2: #f05a00;--accent-soft: #fff1e8;--ai: #6d4aff;--ai-soft: #f0ecff;--ok: #16a34a;--err: #dc2626;--radius: 14px;--cart-w: 380px;--side-w: 84px;font-family:IBM Plex Sans Thai,Inter,system-ui,-apple-system,sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{overflow:hidden;overscroll-behavior:none}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;padding:0;touch-action:manipulation}button:disabled{cursor:default}input,select{font:inherit;color:inherit}.muted{color:var(--muted)}.center{text-align:center}.grow{flex:1}.app{display:grid;grid-template-columns:var(--side-w) 1fr var(--cart-w);height:100dvh}.sidebar{background:var(--sidebar);color:#aeb4bd;display:flex;flex-direction:column;align-items:center;padding:14px 8px;gap:6px}.brand{width:46px;height:46px;border-radius:13px;margin-bottom:14px;background:linear-gradient(135deg,var(--accent),#ff9147);color:#fff;display:grid;place-items:center;box-shadow:0 6px 16px #ff6a1359}.nav{width:68px;padding:10px 0 8px;border-radius:12px;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:12px;transition:background .15s,color .15s}.nav:hover{background:var(--sidebar-2);color:#fff}.nav.on{background:var(--sidebar-2);color:#fff;box-shadow:inset 3px 0 0 var(--accent)}.main{display:flex;flex-direction:column;min-width:0;overflow:hidden;position:relative}.topbar{display:flex;align-items:center;gap:16px;padding:14px 20px;background:var(--panel);border-bottom:1px solid var(--border)}.store{display:flex;flex-direction:column;line-height:1.25;min-width:0}.store strong{font-size:17px;white-space:nowrap}.store span{font-size:13px}.search{flex:1;max-width:420px;margin-left:auto;display:flex;align-items:center;gap:8px;background:var(--bg);border-radius:11px;padding:0 12px;color:var(--muted)}.search input{border:0;outline:0;background:none;height:40px;flex:1;min-width:0;color:var(--text)}.segmented{display:inline-flex;background:var(--bg);border-radius:10px;padding:3px;gap:2px}.segmented button{padding:7px 14px;border-radius:8px;font-size:14px;color:var(--muted);font-weight:500}.segmented button.on{background:var(--panel);color:var(--text);box-shadow:0 1px 3px #0000001a}.segmented.small button{padding:6px 11px;font-size:13px}.cats{display:flex;gap:8px;padding:12px 20px;overflow-x:auto;background:var(--panel);border-bottom:1px solid var(--border);scrollbar-width:none}.cats::-webkit-scrollbar{display:none}.cats button{white-space:nowrap;padding:9px 16px;border-radius:999px;background:var(--bg);font-weight:500;font-size:15px;transition:all .15s}.cats button.on{background:var(--accent);color:#fff;box-shadow:0 4px 10px #ff6a134d}.grid{flex:1;overflow-y:auto;padding:16px 20px 120px;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-auto-rows:max-content;gap:14px;align-content:start}.card{display:flex;flex-direction:column;min-height:max-content;background:var(--panel);border-radius:var(--radius);overflow:hidden;text-align:left;border:2px solid transparent;box-shadow:0 1px 2px #1018280f;transition:transform .1s,box-shadow .15s,border-color .15s}.card:hover:not(:disabled){box-shadow:0 6px 18px #1018281a}.card:active:not(:disabled){transform:scale(.97)}.card.incart{border-color:var(--accent)}.card-img{position:relative;flex:none;background:#efe7dc;overflow:hidden}.card-img img{width:100%;height:auto;aspect-ratio:1 / .82;object-fit:cover;display:block}.qty-badge{position:absolute;top:8px;right:8px;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:var(--accent);color:#fff;font-weight:700;display:grid;place-items:center;font-size:14px;box-shadow:0 2px 6px #0003}.card.soldout{opacity:.55}.card.soldout img{filter:grayscale(1)}.soldout-tag{position:absolute;inset:auto 0 0;background:#1c2026d1;color:#fff;text-align:center;font-size:13px;padding:4px;font-weight:600}.card-body{padding:9px 11px 11px}.card-name{font-weight:500;font-size:14.5px;line-height:1.3;min-height:2.6em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-price{margin-top:4px;font-weight:700;color:var(--accent-2)}.disclaimer{position:absolute;bottom:6px;left:20px;font-size:11px;color:#9aa0a8;pointer-events:none}.cart{background:var(--panel);border-left:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.cart-head{padding:16px 18px 12px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:12px}.cart-title{display:flex;align-items:center;gap:10px}.cart-title>div{flex:1;display:flex;align-items:baseline;gap:8px}.cart-title h2{margin:0;font-size:18px}.timer{display:inline-flex;align-items:center;gap:4px;font-variant-numeric:tabular-nums;background:var(--bg);padding:4px 10px;border-radius:999px;font-size:13px;font-weight:600}.cart-head .segmented{width:100%}.cart-head .segmented button{flex:1}.cart-lines{flex:1;overflow-y:auto;padding:6px 10px}.cart-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;padding:30px}.cart-empty-icon{font-size:40px;opacity:.6}.line{display:flex;gap:10px;padding:11px 8px;border-bottom:1px dashed var(--border);border-radius:10px;transition:background .4s}.line.flash{animation:flash 2.2s ease}@keyframes flash{0%,40%{background:var(--ai-soft)}to{background:transparent}}.line-main{flex:1;text-align:left;min-width:0}.line-name{font-weight:600;font-size:15px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.line-opts{font-size:13px;color:var(--accent-2);margin-top:2px}.line-note{font-size:13px;color:var(--muted);font-style:italic}.line-unit{font-size:12.5px;margin-top:2px}.line-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:8px}.line-total{font-weight:700}.ai-badge{display:inline-flex;align-items:center;gap:2px;background:var(--ai-soft);color:var(--ai);font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:6px;letter-spacing:.02em}.stepper{display:inline-flex;align-items:center;background:var(--bg);border-radius:10px}.stepper button{width:34px;height:32px;display:grid;place-items:center;font-size:18px;font-weight:600;border-radius:10px}.stepper button:hover{background:#e6e8ec}.stepper button.danger{color:var(--err)}.stepper span{min-width:22px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}.stepper.big button{width:46px;height:46px;font-size:22px}.stepper.big span{min-width:34px;font-size:18px}.cart-foot{padding:12px 18px 16px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:4px}.sum-row{display:flex;justify-content:space-between;font-size:14px}.sum-row.total{font-size:18px;font-weight:700;margin:4px 0 8px}.cart-actions{display:flex;gap:10px}.btn{height:48px;padding:0 18px;border-radius:12px;font-weight:600;font-size:16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background .15s,transform .1s}.btn:active:not(:disabled){transform:scale(.98)}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){background:var(--accent-2)}.btn.primary:disabled{background:#f5b48c}.btn.ghost{background:var(--bg)}.btn.ghost:disabled{color:#b5b9c0}.btn.wide{width:100%;margin-top:16px}.btn.pay{font-size:17px}.icon-btn{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:var(--muted)}.icon-btn:hover{background:var(--bg);color:var(--text)}.mic-fab{position:fixed;z-index:20;right:calc(var(--cart-w) + 28px);bottom:28px;width:76px;height:76px;border-radius:50%;background:linear-gradient(135deg,var(--ai),#9b5cff);color:#fff;display:grid;place-items:center;box-shadow:0 10px 28px #6d4aff73;transition:transform .15s}.mic-fab:hover{transform:scale(1.05)}.mic-fab:before{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid rgba(109,74,255,.35);animation:ring 2.4s ease-out infinite}@keyframes ring{0%{transform:scale(.9);opacity:1}to{transform:scale(1.35);opacity:0}}.mic-fab.listening{background:var(--err);box-shadow:0 0 0 calc(var(--level, 0) * 18px + 4px) #dc262633,0 10px 28px #dc262666}.mic-fab.listening:before,.mic-fab.thinking:before,.mic-fab.connecting:before{display:none}.mic-fab.listening .fab-label{color:var(--err)}.fab-spinner{width:28px;height:28px;border-radius:50%;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;animation:spin .7s linear infinite}.nav.debug-on{color:var(--ai);background:var(--sidebar-2)}.voice-toast{position:fixed;z-index:25;right:calc(var(--cart-w) + 120px);bottom:34px;max-width:min(380px,calc(100vw - var(--cart-w) - var(--side-w) - 160px));background:var(--panel);border-radius:14px;padding:10px 36px 10px 12px;box-shadow:0 12px 32px #1018282e,0 0 0 1px #6d4aff26;display:flex;flex-direction:column;gap:8px;animation:rise .2s ease}.voice-toast.error{box-shadow:0 12px 32px #1018282e,0 0 0 1px #dc26264d}.voice-toast.error .toast-text{color:var(--err)}.toast-text{font-size:14.5px;line-height:1.45;font-weight:500;color:#3b2a99}.toast-text svg{vertical-align:-1px}.toast-close{position:absolute;top:6px;right:6px;width:26px;height:26px;display:grid;place-items:center;color:var(--muted);border-radius:8px}.toast-close svg{width:16px;height:16px}.fab-label{position:absolute;bottom:-24px;white-space:nowrap;font-size:11.5px;font-weight:700;color:var(--ai);display:inline-flex;align-items:center;gap:3px}.voice-panel{position:fixed;z-index:30;right:calc(var(--cart-w) + 20px);bottom:20px;width:min(480px,calc(100vw - var(--cart-w) - var(--side-w) - 40px));max-height:calc(100dvh - 40px);background:var(--panel);border-radius:20px;display:flex;flex-direction:column;box-shadow:0 24px 60px #10182840,0 0 0 1px #6d4aff26;animation:rise .2s ease}@keyframes rise{0%{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}.vp-head{display:flex;align-items:center;gap:10px;padding:12px 12px 10px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap}.vp-title{font-weight:700;display:flex;align-items:center;gap:8px;margin-right:auto}.vp-logo{width:26px;height:26px;border-radius:8px;background:var(--ai);color:#fff;display:grid;place-items:center}.vp-settings{display:flex;gap:8px}.vp-settings label{display:flex;flex-direction:column;font-size:10.5px;color:var(--muted);gap:1px}.vp-settings select{border:1px solid var(--border);border-radius:8px;padding:4px 6px;font-size:13px;background:var(--panel)}.vp-body{padding:14px 16px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.vp-stage{display:flex;align-items:center;gap:14px}.vp-mic{width:64px;height:64px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--ai);color:#fff;box-shadow:0 6px 18px #6d4aff66;transition:background .2s,box-shadow .1s}.vp-mic.listening{background:var(--err);box-shadow:0 0 0 calc(var(--level, 0) * 16px + 4px) #dc26262e,0 6px 18px #dc262666}.vp-mic:disabled{opacity:.6}.vp-status{display:flex;align-items:center;gap:8px;font-weight:500;flex-wrap:wrap}.pulse-dot{width:10px;height:10px;border-radius:50%;background:var(--err);animation:blink 1s infinite}@keyframes blink{50%{opacity:.25}}.spinner{width:16px;height:16px;border-radius:50%;border:2.5px solid var(--ai-soft);border-top-color:var(--ai);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.vp-transcript{background:var(--bg);border-radius:12px;padding:10px 12px;font-size:16px;line-height:1.5}.vp-transcript.live{min-height:52px;font-size:18px}.vp-transcript .partial{color:var(--muted)}.vp-transcript .label,.vp-samples .label{display:block;font-size:11.5px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}.vp-error{background:#fef2f2;color:var(--err);padding:10px 12px;border-radius:10px;font-size:14px}.vp-result{display:flex;flex-direction:column;gap:10px}.vp-reply{background:var(--ai-soft);color:#3b2a99;padding:10px 12px;border-radius:12px;font-weight:500;line-height:1.45}.vp-reply svg{vertical-align:-1px;color:var(--ai)}.vp-clarify{border:1px solid #fcd9bd;background:var(--accent-soft);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.vp-stats{display:flex;gap:6px 12px;flex-wrap:wrap;font-size:12.5px;font-weight:600}.vp-trace{background:#15181d;color:#d7dbe0;border-radius:12px;padding:8px 10px;font-size:12.5px}.trace-toggle{color:#9aa3ad;font-size:12px;font-weight:600}.vp-trace ol{margin:6px 0 2px;padding-left:20px;display:flex;flex-direction:column;gap:6px}.vp-trace li{line-height:1.4}.vp-trace .fn{color:#8be9a8;font-weight:600}.vp-trace li.err .fn{color:#ff8f8f}.vp-trace .args{color:#c3c9d1;word-break:break-word}.vp-trace .res{color:#9aa3ad}.vp-samples{display:flex;flex-direction:column;gap:6px}.sample{text-align:left;padding:8px 10px;border-radius:10px;background:var(--bg);font-size:14px;line-height:1.4;display:flex;gap:8px;align-items:baseline}.sample:hover{background:var(--ai-soft)}.sample .tag{flex:none;font-size:10.5px;font-weight:700;color:var(--ai);background:var(--panel);border-radius:6px;padding:1px 6px}.vp-input{display:flex;gap:8px;padding:10px 12px 12px;border-top:1px solid var(--border)}.vp-input input{flex:1;min-width:0;height:44px;border:1px solid var(--border);border-radius:12px;padding:0 12px;outline:none}.vp-input input:focus{border-color:var(--ai)}.vp-input .btn{height:44px;width:48px;padding:0;background:var(--ai)}.vp-input .btn:disabled{background:#c7bbff}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:9px 14px;border-radius:10px;background:var(--panel);border:1.5px solid var(--border);font-size:14.5px;font-weight:500;display:inline-flex;gap:6px;align-items:center}.chip.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-2)}.chip .delta{font-size:12.5px;color:var(--muted)}.chip.on .delta{color:var(--accent-2)}.overlay{position:fixed;inset:0;z-index:50;background:#11141a80;display:grid;place-items:center;padding:16px;animation:fade .15s}@keyframes fade{0%{opacity:0}}.dialog{background:var(--panel);border-radius:20px;width:min(560px,100%);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 80px #0000004d}.mod-head{display:flex;gap:14px;padding:16px;border-bottom:1px solid var(--border);align-items:flex-start}.mod-head img{width:88px;height:88px;border-radius:14px;object-fit:cover}.mod-head>div{flex:1}.mod-head h2{margin:2px 0;font-size:20px}.mod-base{font-weight:700;color:var(--accent-2);margin-top:4px}.mod-body{padding:4px 16px 16px;overflow-y:auto}.mod-body h3{font-size:15px;margin:14px 0 8px}.text-input{width:100%;height:44px;border:1.5px solid var(--border);border-radius:10px;padding:0 12px;outline:none}.text-input:focus{border-color:var(--accent)}.mod-foot{display:flex;gap:12px;padding:12px 16px 16px;border-top:1px solid var(--border)}.mod-foot .btn{height:46px}.checkout,.receipt{padding:18px 22px 22px;overflow-y:auto}.dlg-head{display:flex;justify-content:space-between;align-items:center}.dlg-head h2{margin:0}.big-total{font-size:40px;font-weight:700;text-align:center;margin:14px 0 2px;font-variant-numeric:tabular-nums}.pay-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.pay-method{border:2px solid var(--border);border-radius:14px;padding:14px 6px;display:flex;flex-direction:column;align-items:center;gap:4px;font-weight:600}.pay-method.on{border-color:var(--accent);background:var(--accent-soft)}.pm-icon{font-size:22px}.qr{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:16px}.qr-svg{border-radius:10px;border:1px solid var(--border)}.receipt{align-items:center;text-align:center}.receipt h2{margin:6px 0 0}.paid-icon{width:70px;height:70px;border-radius:50%;background:#dcfce7;color:var(--ok);display:grid;place-items:center;margin:4px auto 0}.entry-time{margin-top:12px;background:var(--ai-soft);color:#3b2a99;border-radius:10px;padding:8px 12px;display:inline-block}.receipt-lines{width:100%;text-align:left;margin-top:14px;border-top:1px dashed var(--border);padding-top:10px;font-size:14px;display:flex;flex-direction:column;gap:6px}.rl{display:flex;justify-content:space-between;gap:10px}.rl small{color:var(--muted)}.compare{width:100%;margin-top:16px;text-align:left;background:var(--bg);border-radius:14px;padding:12px 14px}.compare h3{margin:0 0 8px;font-size:14px}.compare-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.compare-stats div{background:var(--panel);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;font-size:12.5px;color:var(--muted)}.compare-stats strong{font-size:22px;color:var(--text);font-variant-numeric:tabular-nums}.compare-list{margin-top:8px;display:flex;flex-direction:column;gap:3px;font-size:12.5px}.cmp{display:grid;grid-template-columns:1.4fr 1fr .6fr .7fr;gap:6px;font-variant-numeric:tabular-nums}.cmp.voice span:nth-child(2){color:var(--ai);font-weight:600}.mobile-cart-bar,.mobile-only{display:none}@media(max-width:1180px){:root{--cart-w: 330px;--side-w: 72px}.nav{width:58px;font-size:11px}.grid{grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:12px}}@media(max-width:820px){.app{grid-template-columns:1fr}.sidebar{display:none}.topbar{padding:10px 14px;gap:10px;flex-wrap:wrap}.search{order:3;max-width:none;flex-basis:100%}.lang-toggle{margin-left:auto}.cats{padding:10px 14px}.grid{padding:12px 14px 160px;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.disclaimer{display:none}.cart{position:fixed;inset:0;z-index:40;border:0;transform:translateY(100%);transition:transform .25s ease}.app.cart-open .cart{transform:none}.mobile-only{display:grid}.mobile-cart-bar{display:flex;justify-content:space-between;align-items:center;position:fixed;z-index:15;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));height:56px;padding:0 18px;border-radius:14px;background:var(--sidebar);color:#fff;font-size:16px}.mic-fab{right:18px;bottom:104px;width:68px;height:68px}.voice-toast{left:12px;right:100px;bottom:96px;max-width:none}.voice-panel{left:8px;right:8px;bottom:8px;width:auto;max-height:calc(100dvh - 16px)}}.pin-screen{height:100dvh;display:grid;place-items:center;background:radial-gradient(circle at 30% 20%,#2a3038,var(--sidebar));padding:16px}.pin-card{width:min(340px,100%);color:#fff;display:flex;flex-direction:column;align-items:center;text-align:center}.pin-brand{width:60px;height:60px;border-radius:17px;margin:0 0 14px}.pin-card h1{margin:0;font-size:24px}.pin-card p{margin:6px 0 22px;color:#aeb4bd}.pin-spin{width:28px;height:28px;margin-top:20px;border-color:#fff3;border-top-color:var(--accent)}.pin-dots{display:flex;gap:14px;height:20px;margin-bottom:26px}.pin-dots span{width:16px;height:16px;border-radius:50%;border:2px solid #6b7280;transition:all .1s}.pin-dots span.on{background:var(--accent);border-color:var(--accent)}.pin-dots.shake{animation:shake .45s}.pin-dots.shake span{border-color:var(--err)}@keyframes shake{20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;width:100%}.pin-key{height:66px;border-radius:16px;background:var(--sidebar-2);color:#fff;font-size:26px;font-weight:600;transition:background .1s,transform .08s}.pin-key:hover:not(:disabled){background:#363d47}.pin-key:active:not(:disabled){transform:scale(.95)}.pin-key.ok{background:var(--accent)}.pin-key:disabled{opacity:.45}
