:root{
  --bg:#fbf7ee;--paper:#fffdf8;--paper-2:#f8f1e3;--ink:#17381f;--ink-2:#2d432d;--muted:#7b7c71;
  --green:#2f6428;--green-2:#4f7d38;--green-3:#88a65f;--olive:#738351;--cream:#efe2c8;--gold:#c99656;
  --line:rgba(44,64,39,.12);--shadow:0 18px 50px rgba(47,59,38,.11);--preview-safe-top:0px;--safe-top:max(0px,env(safe-area-inset-top),var(--preview-safe-top));--safe-bottom:max(10px,env(safe-area-inset-bottom));
  --sans:"Be Vietnam Pro","Segoe UI",Arial,sans-serif;--serif:"Playfair Display",Georgia,"Times New Roman",serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{background:var(--bg);scroll-behavior:smooth;overscroll-behavior-y:none}body{margin:0;min-width:280px;font-family:var(--sans);color:var(--ink);background:linear-gradient(180deg,#fffdf9 0,#fbf6eb 55%,#f7efe0 100%);overflow-x:hidden}body.modal-open{overflow:hidden;touch-action:none}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgba(72,112,53,.2);outline-offset:2px}input,textarea{font-size:16px}svg{display:block}.app{width:min(100%,1080px);min-height:100dvh;margin:auto;padding-bottom:92px;position:relative;z-index:2}
.grain{position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}.page-light{position:fixed;width:48vw;height:48vw;min-width:260px;min-height:260px;border-radius:50%;filter:blur(90px);opacity:.16;pointer-events:none;z-index:0}.page-light-a{background:#b4d08e;left:-20vw;top:18vh}.page-light-b{background:#f5d8a5;right:-18vw;top:52vh}.touch-glow{position:fixed;width:170px;height:170px;border-radius:50%;pointer-events:none;z-index:120;opacity:0;transform:translate(-50%,-50%) scale(.4);background:radial-gradient(circle,rgba(255,255,240,.42),rgba(172,214,115,.12) 48%,transparent 72%);mix-blend-mode:screen;filter:blur(3px)}
.topbar{height:calc(64px + var(--safe-top));padding:var(--safe-top) 12px 0;position:sticky;top:0;z-index:40;display:grid;grid-template-columns:44px 1fr auto;align-items:center;background:rgba(255,253,248,.9);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);border-bottom:1px solid var(--line)}.icon-btn,.round-close,.round-icon,.visual-back{border:0;background:transparent;display:grid;place-items:center}.icon-btn{width:42px;height:42px;border-radius:50%}.icon-btn svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.icon-btn img{width:23px;height:23px;object-fit:contain;display:block}.nav-item>span img,.category-chip>span img{width:100%;height:100%;object-fit:contain;display:block}.category-chip>span{width:16px;height:16px;display:grid;place-items:center;flex:0 0 16px}.nav-item>span{width:22px;height:22px;display:grid;place-items:center;margin:auto}.icon-btn:active,.round-close:active,.round-icon:active,.visual-back:active{transform:scale(.92);background:rgba(55,92,42,.08)}.brand{justify-self:center;border:0;background:none;display:flex;align-items:center;justify-content:center;gap:5px;font-weight:800;font-size:24px;letter-spacing:-.04em;color:#285b29;min-width:0;max-width:min(148px,42vw);height:44px;overflow:hidden}.brand img{display:block;max-width:100%;max-height:34px;width:auto;height:auto;object-fit:contain}.brand-text{display:block;white-space:nowrap}.brand-leaf{font-size:10px;color:#83a74e;transform:rotate(45deg);margin-top:-10px}.topbar-spacer{width:42px;height:42px;display:block}.top-actions{display:flex;gap:2px}.cart-top{position:relative}.cart-top b,.bottom-nav b{position:absolute;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:#315f24;color:#fff;font-size:9px;display:grid;place-items:center;right:0;top:0;border:2px solid #fffdf8}
.search-panel{position:sticky;top:calc(64px + var(--safe-top));z-index:35;height:0;overflow:hidden;padding:0 12px;background:rgba(255,253,248,.96);backdrop-filter:blur(16px);transition:height .26s ease,padding .26s ease}.search-panel.show{height:62px;padding-top:7px;padding-bottom:7px;border-bottom:1px solid var(--line)}.search-field{height:48px;border-radius:18px;border:1px solid var(--line);background:#f6f0e4;display:grid;grid-template-columns:38px 1fr 36px;align-items:center;padding:0 5px}.search-field svg{width:20px;height:20px;justify-self:center;fill:none;stroke:#56634e;stroke-width:1.8}.search-field input{border:0;outline:0;background:transparent;width:100%;font-size:14px}.search-field button{border:0;background:none;font-size:22px;color:#7a8075}
main{padding:0 11px 28px}.category-rail{display:flex;gap:8px;overflow-x:auto;padding:12px 0 10px;scrollbar-width:none;overscroll-behavior-x:contain}.category-rail::-webkit-scrollbar{display:none}.category-chip{flex:0 0 auto;border:1px solid var(--line);background:#f7f2e7;border-radius:999px;padding:10px 14px;font-size:11px;font-weight:700;display:flex;align-items:center;gap:7px;white-space:nowrap;color:#354934}.category-chip span{font-size:13px}.category-chip.active{background:#35652d;color:#fff;border-color:#35652d;box-shadow:0 9px 20px rgba(48,91,40,.2)}
.hero{height:248px;border-radius:22px;overflow:hidden;position:relative;display:grid;grid-template-columns:43% 57%;background:radial-gradient(circle at 78% 15%,rgba(196,219,143,.28),transparent 34%),linear-gradient(135deg,#173d1d 0,#315d2a 52%,#758d54 100%);box-shadow:0 18px 42px rgba(35,66,30,.18);isolation:isolate}.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 14% 18%,rgba(255,255,255,.08),transparent 26%),linear-gradient(100deg,rgba(7,37,16,.18),transparent 45%);pointer-events:none}.hero-copy{z-index:4;padding:20px 0 15px 17px;align-self:center;color:#fff;min-width:0}.hero-script{margin:0;font-family:var(--serif);font-size:29px;line-height:1.03;font-style:italic;letter-spacing:-.035em;text-shadow:0 2px 18px rgba(0,0,0,.16)}.hero-script strong{font-weight:700}.hero-desc{font-size:10px;line-height:1.55;color:rgba(255,255,255,.82);margin:10px 0 12px}.hero-cta{border:0;border-radius:999px;background:#fff;color:#2b5826;font-weight:800;font-size:10px;padding:10px 13px;box-shadow:0 9px 24px rgba(0,0,0,.17)}.hero-cta span{margin-left:6px}.hero-dots{display:flex;gap:5px;margin-top:14px}.hero-dots span{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.42)}.hero-dots .active{width:17px;border-radius:999px;background:#fff}.hero-scene-wrap{position:relative;z-index:3;touch-action:none}.hero-scene-wrap:after{content:"";position:absolute;left:0;right:0;bottom:-18px;height:82px;background:radial-gradient(ellipse at center,rgba(235,220,185,.38),transparent 68%);filter:blur(10px);pointer-events:none}.hero-scene-wrap canvas,.product-visual canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.hero-benefits{position:absolute;right:10px;top:13px;display:grid;gap:6px;z-index:5}.hero-benefits span{font-size:8px;color:#fff;padding:6px 8px;border:1px solid rgba(255,255,255,.17);border-radius:999px;background:rgba(22,54,25,.18);backdrop-filter:blur(8px)}.gyro-pill{position:absolute;right:10px;bottom:10px;z-index:5;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(12,44,17,.26);backdrop-filter:blur(12px);color:#fff;font-size:8px;font-weight:700;padding:7px 9px}.spark{position:absolute;width:5px;height:5px;border-radius:50%;background:#fff6c9;box-shadow:0 0 14px #fff5ba,0 0 28px #b8ff8e;animation:sparkle 3.8s ease-in-out infinite}.spark-a{left:28%;top:23%}.spark-b{right:12%;top:35%;animation-delay:-1.2s}.spark-c{left:44%;bottom:19%;animation-delay:-2.1s}
.menu-head{display:flex;align-items:end;justify-content:space-between;padding:18px 2px 10px;gap:10px}.menu-head h2{font-family:var(--serif);font-size:25px;letter-spacing:-.03em;margin:0}.menu-head p{margin:4px 0 0;color:var(--muted);font-size:9px}.link-btn{border:0;background:none;color:#4f6249;font-weight:700;font-size:10px;padding:6px 0;white-space:nowrap}.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.product-card{position:relative;border:1px solid var(--line);border-radius:17px;background:#fffdf9;padding:7px;box-shadow:0 8px 22px rgba(59,64,46,.055);overflow:hidden;transition:transform .22s ease,box-shadow .22s ease}.product-card:active{transform:scale(.985)}.product-image{height:150px;border-radius:13px;position:relative;overflow:hidden;display:grid;place-items:center;background:linear-gradient(145deg,var(--p1),var(--p2));isolation:isolate}.product-image:before{content:"";position:absolute;inset:auto -25% -38% -25%;height:90px;background:radial-gradient(ellipse at center,rgba(255,255,255,.92),rgba(233,218,183,.25) 58%,transparent 70%)}.product-image:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--gx,64%) var(--gy,20%),rgba(255,255,255,.7),transparent 28%);mix-blend-mode:screen;opacity:.7}.mini-bottle{width:59px;height:108px;border-radius:20px 20px 16px 16px;background:linear-gradient(145deg,#fffef7 2%,var(--milk) 62%,#ccb98e 135%);box-shadow:0 16px 24px rgba(76,57,33,.17);position:relative;z-index:4;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:rotate(-3deg);transition:transform .3s ease}.mini-bottle:before{content:"";position:absolute;top:-12px;width:37px;height:16px;border-radius:7px 7px 3px 3px;background:repeating-linear-gradient(90deg,var(--cap),var(--cap) 3px,color-mix(in srgb,var(--cap),#fff 12%) 3px,color-mix(in srgb,var(--cap),#fff 12%) 5px)}.mini-logo{font-size:8px;font-weight:800;color:#28562a;letter-spacing:-.03em}.mini-flavor{font-size:6px;font-weight:700;margin-top:4px;color:#6d5b45;text-align:center;padding:0 5px}.mini-nut{font-size:20px;margin-top:6px;filter:drop-shadow(0 4px 4px rgba(0,0,0,.1))}.product-tag{position:absolute;z-index:7;left:7px;top:7px;background:#35642b;color:#fff;padding:5px 7px;border-radius:999px;font-size:7px;font-weight:800;box-shadow:0 5px 14px rgba(45,84,38,.14)}.card-heart{position:absolute;right:7px;top:7px;z-index:8;width:26px;height:26px;border-radius:50%;border:1px solid rgba(55,75,48,.12);background:rgba(255,255,255,.84);display:grid;place-items:center;font-size:16px;color:#42523e}.card-heart.active{color:#b05045;background:#fff2ef}.floating-nut{position:absolute;z-index:2;font-size:20px;filter:drop-shadow(0 7px 6px rgba(55,45,32,.12));animation:floatNut 5s ease-in-out infinite}.fn1{left:10px;bottom:8px}.fn2{right:8px;top:48px;animation-delay:-1.4s}.product-card h3{font-family:var(--serif);font-size:14px;line-height:1.15;margin:9px 2px 3px}.product-sub{font-size:8px;color:var(--muted);line-height:1.38;min-height:23px;margin:0 2px 7px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-bottom{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center}.price{font-size:11px;font-weight:800;color:#254c23}.choose-btn{border:0;border-radius:999px;background:#35652d;color:#fff;font-size:8px;font-weight:800;padding:8px 9px;box-shadow:0 7px 15px rgba(49,94,42,.15)}
.bottom-nav{position:fixed;z-index:45;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,1080px);height:calc(70px + var(--safe-bottom));padding:5px 8px var(--safe-bottom);display:grid;grid-template-columns:repeat(5,1fr);background:rgba(255,253,248,.96);backdrop-filter:blur(22px) saturate(1.15);-webkit-backdrop-filter:blur(22px) saturate(1.15);border-top:1px solid var(--line);box-shadow:0 -12px 30px rgba(48,60,38,.06)}.nav-item{position:relative;border:0;background:none;display:grid;place-items:center;align-content:center;gap:2px;color:#6f766a}.nav-item>span{font-size:20px;line-height:1}.nav-item small{font-size:8px;font-weight:600}.nav-item.active{color:#315e29}.nav-item.active>span{transform:translateY(-1px)}
.scrim{position:fixed;inset:0;background:rgba(19,31,17,.36);backdrop-filter:blur(6px);z-index:60;opacity:0;pointer-events:none;transition:opacity .26s ease}.scrim.show{opacity:1;pointer-events:auto}.product-sheet,.drawer,.checkout{position:fixed;background:var(--paper);z-index:70;box-shadow:-25px 0 70px rgba(21,36,18,.22);transition:transform .38s cubic-bezier(.2,.8,.2,1);will-change:transform}.product-sheet{left:50%;bottom:0;transform:translate(-50%,104%);width:min(100%,720px);height:100dvh;border-radius:0;overflow:hidden}.product-sheet.show{transform:translate(-50%,0)}.product-visual{height:42dvh;min-height:300px;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 35%,rgba(239,238,194,.26),transparent 28%),radial-gradient(circle at 80% 12%,rgba(195,218,130,.28),transparent 27%),linear-gradient(145deg,#385b2f,#839b5d 72%,#ead6ae 150%);touch-action:none}.product-visual:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,28,10,.05),transparent 60%),radial-gradient(ellipse at 50% 92%,rgba(248,235,201,.5),transparent 45%);pointer-events:none}.visual-back{position:absolute;z-index:8;left:13px;top:calc(13px + var(--safe-top));width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.84);backdrop-filter:blur(12px)}.visual-back svg{width:22px;height:22px;fill:none;stroke:#2d4b2d;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.visual-actions{position:absolute;z-index:8;right:13px;top:calc(13px + var(--safe-top));display:flex;gap:8px}.round-icon{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.84);backdrop-filter:blur(12px);font-size:19px;color:#345236}.heart{font-size:22px}.visual-tag{position:absolute;z-index:7;right:14px;bottom:15px;background:#35642e;color:#fff;padding:7px 10px;border-radius:999px;font-size:8px;font-weight:800}.visual-swipe{position:absolute;z-index:6;left:50%;bottom:15px;transform:translateX(-50%);font-size:8px;color:rgba(255,255,255,.88);padding:6px 9px;border-radius:999px;background:rgba(18,49,20,.22);backdrop-filter:blur(10px);white-space:nowrap}.visual-glow{position:absolute;left:50%;top:50%;width:62%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 80px rgba(255,255,217,.24);pointer-events:none}.product-config{height:calc(58dvh - 82px);overflow:auto;padding:18px 14px 130px;background:#fffdf9;border-radius:28px 28px 0 0;margin-top:-24px;position:relative;z-index:5;overscroll-behavior:contain}.kicker{margin:0 0 4px;font-size:8px;font-weight:800;letter-spacing:.13em;color:#78846f}.title-row h2,.drawer-head h2,.checkout-success h2{font-family:var(--serif);margin:0;letter-spacing:-.025em}.title-row h2{font-size:29px;line-height:1.08}.rating{margin:7px 0 0;font-size:9px;color:#667064;display:flex;gap:4px;align-items:center;flex-wrap:wrap}.star{color:#e7a11d;font-size:13px}.rating i{font-style:normal;color:#a7aa9f}.sheet-desc{font-size:10px;line-height:1.55;color:#71776c;margin:10px 0 15px}.choice-group{margin:0 0 14px}.choice-head{display:flex;gap:6px;align-items:baseline;margin-bottom:8px}.choice-head strong{font-family:var(--serif);font-size:14px}.choice-head small{font-size:8px;color:#8b8c83}.choice-grid{display:grid;gap:7px}.choice-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.topping-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.choice{min-height:58px;border:1px solid var(--line);border-radius:13px;background:#fffdfa;padding:8px 6px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;text-align:center;transition:.18s}.choice b{font-size:9px;line-height:1.18}.choice small{font-size:7px;color:#85877e}.choice-icon{font-size:20px;line-height:1}.choice.selected{border:1.5px solid #3f6f35;background:#f3f8ec;box-shadow:inset 0 0 0 1px rgba(63,111,53,.08),0 7px 18px rgba(50,94,41,.08)}.sweetness-grid .choice{min-height:42px}.qty-line{display:flex;justify-content:space-between;align-items:center}.qty-line .choice-head{margin:0}.qty-control{display:grid;grid-template-columns:42px 48px 42px;height:42px;border:1px solid var(--line);border-radius:14px;overflow:hidden}.qty-control button{border:0;background:#faf6ee;font-size:18px}.qty-control b{display:grid;place-items:center;background:#fff;font-size:14px}textarea,input{width:100%;border:1px solid var(--line);border-radius:13px;background:#fffdfa;padding:11px 12px;outline:none}.choice-group textarea{min-height:68px;resize:vertical;font-size:12px;line-height:1.45}.live-summary{display:none}.sheet-cta{position:absolute;left:0;right:0;bottom:0;z-index:12;min-height:82px;padding:10px 13px calc(10px + var(--safe-bottom));display:grid;grid-template-columns:auto 1fr;gap:13px;align-items:center;background:rgba(255,253,248,.96);backdrop-filter:blur(20px);border-top:1px solid var(--line)}.sheet-cta small,.checkout-cta small{display:block;font-size:8px;color:#7b8075;margin-bottom:2px}.sheet-cta strong,.checkout-cta strong{font-size:24px;white-space:nowrap}.btn{border:0;border-radius:16px;min-height:50px;padding:0 16px;font-weight:800;transition:transform .18s ease,filter .18s ease}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg,#315f27,#416f30);color:#fff;box-shadow:0 11px 24px rgba(45,91,38,.22)}.add-btn{width:100%;font-size:13px}.btn-soft{background:#f0eadf;color:#315b2b;border:1px solid var(--line)}
.drawer,.checkout{right:0;top:0;transform:translateX(104%);width:min(100%,460px);height:100dvh;z-index:80}.drawer.show,.checkout.show{transform:translateX(0)}.drawer-head{height:calc(72px + var(--safe-top));padding:calc(11px + var(--safe-top)) 14px 11px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#fffdf9}.drawer-head h2{font-size:26px}.round-close{width:40px;height:40px;border-radius:50%;background:#f5efe3;font-size:23px}.cart-list{height:calc(100dvh - 180px);overflow:auto;padding:12px 12px 140px}.cart-item{display:grid;grid-template-columns:52px 1fr auto;gap:10px;padding:11px 0;border-bottom:1px dashed var(--line)}.cart-thumb{width:52px;height:52px;border-radius:14px;background:linear-gradient(145deg,#e3ebce,#f8e7cb);display:grid;place-items:center;font-size:25px}.cart-item h4{margin:0;font-size:12px}.cart-meta{font-size:8px;line-height:1.48;color:var(--muted);margin-top:4px}.cart-price{text-align:right;font-size:10px;font-weight:800}.remove-btn{border:0;background:none;color:#ad5147;font-size:8px;padding:5px 0}.empty-cart{text-align:center;color:var(--muted);padding:80px 20px}.drawer-footer{position:absolute;left:0;right:0;bottom:0;padding:12px 14px calc(12px + var(--safe-bottom));background:rgba(255,253,248,.96);backdrop-filter:blur(18px);border-top:1px solid var(--line)}.total-row{display:flex;justify-content:space-between;margin-bottom:10px;font-size:11px}.total-row strong{font-size:18px}.wide{width:100%}
.account-scroll{height:calc(100dvh - 72px - var(--safe-top));overflow:auto;padding:13px 12px calc(35px + var(--safe-bottom))}.account-card{display:grid;grid-template-columns:44px 1fr;gap:10px;align-items:start;background:linear-gradient(135deg,#edf5e5,#faf1df);border:1px solid rgba(65,99,48,.13);border-radius:18px;padding:13px}.account-icon{width:44px;height:44px;border-radius:14px;background:#365f2f;color:#fff;display:grid;place-items:center;font-size:22px}.account-card b{font-size:11px}.account-card p{font-size:9px;line-height:1.5;color:var(--muted);margin:4px 0 0}.account-section-head{display:flex;justify-content:space-between;align-items:end;margin:18px 2px 8px}.account-section-head h3{font-family:var(--serif);margin:0;font-size:19px}.account-section-head small{font-size:8px;color:var(--muted)}.order-history-list{display:grid;gap:8px}.order-history-item{border:1px solid var(--line);border-radius:16px;background:#fffdfa;padding:11px;display:grid;grid-template-columns:1fr auto;gap:8px;text-align:left}.order-history-item b{font-size:11px}.order-history-item p{font-size:8px;color:var(--muted);line-height:1.45;margin:4px 0 0}.order-history-item strong{font-size:11px;color:#2e5d28}.history-empty{text-align:center;padding:42px 12px;color:var(--muted);font-size:10px}
.checkout-scroll{height:calc(100dvh - 154px);overflow:auto;padding:12px 12px 145px;overscroll-behavior:contain}.checkout-card{background:#fffdf9;border:1px solid var(--line);border-radius:18px;padding:13px;margin-bottom:10px;box-shadow:0 7px 20px rgba(45,55,36,.035)}.checkout-card h3{font-family:var(--serif);font-size:18px;margin:0 0 11px}.checkout-card label{display:block;font-size:9px;font-weight:700;margin-bottom:10px}.checkout-card label input,.checkout-card label textarea{margin-top:6px}.checkout-card textarea{min-height:78px}.cod-card{display:grid;grid-template-columns:42px 1fr auto;gap:9px;align-items:start;padding:11px;border:1.5px solid #527744;background:#f1f6e8;border-radius:15px}.cod-icon{width:42px;height:42px;border-radius:12px;background:#35622e;color:#fff;display:grid;place-items:center;font-weight:800}.cod-card b{font-size:10px}.cod-card p{margin:4px 0 0;color:var(--muted);font-size:8px;line-height:1.45}.check-dot{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#35622e;color:#fff;font-size:10px}.checkout-line{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:9px}.checkout-line:last-child{border-bottom:0}.form-error{color:#a84d41;font-size:9px;font-weight:700;min-height:14px}.checkout-cta{position:absolute;left:0;right:0;bottom:0;padding:11px 13px calc(11px + var(--safe-bottom));display:flex;justify-content:space-between;align-items:center;gap:10px;background:rgba(255,253,248,.96);backdrop-filter:blur(20px);border-top:1px solid var(--line)}.checkout-success{display:none;height:calc(100dvh - 72px - var(--safe-top));place-items:center;align-content:center;text-align:center;padding:24px 18px calc(28px + var(--safe-bottom));overflow:auto}.checkout-success.show{display:grid}.success-burst{width:80px;height:80px;border-radius:50%;background:radial-gradient(circle,#fff 20%,#ecf6df 21% 56%,#9dbc73 57%);display:grid;place-items:center;font-size:32px;box-shadow:0 0 0 15px rgba(110,150,81,.09),0 0 55px rgba(121,165,79,.22);animation:successPulse 1.8s ease-in-out infinite}.received-badge{margin-top:20px;display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:999px;background:#edf6e4;border:1px solid rgba(66,105,48,.15);color:#315c29;font-size:9px;font-weight:800}.received-badge span{font-size:8px;color:#5f983d;filter:drop-shadow(0 0 6px #8ecb65)}.checkout-success h2{font-size:29px;margin:16px 0 4px}.success-reassure{max-width:390px;line-height:1.6!important;font-size:11px;margin:9px auto 11px!important;color:#70766b!important}.success-reassure strong{color:#31572b}.success-code{margin:5px auto 2px;padding:10px 13px;border:1px dashed rgba(55,87,44,.2);border-radius:14px;background:rgba(255,255,255,.58);font-size:10px;color:var(--muted)}.success-code b{display:block;margin-top:3px;color:var(--ink);font-size:14px;letter-spacing:.03em}.success-cod{font-size:9px!important;color:var(--muted)}.success-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:min(100%,350px);margin-top:13px}
.order-review{display:none;height:calc(100dvh - 72px - var(--safe-top));overflow:auto;padding:13px 11px calc(30px + var(--safe-bottom));overscroll-behavior:contain;background:linear-gradient(180deg,#fbf7ee,#f5ecdd)}.order-review.show{display:block}.order-review-status{display:grid;grid-template-columns:14px 1fr;gap:9px;align-items:start;padding:13px;border-radius:18px;background:linear-gradient(135deg,#eaf4df,#faf3e3);border:1px solid rgba(73,105,55,.14);margin-bottom:10px}.status-dot{width:10px;height:10px;border-radius:50%;margin-top:4px;background:#5f983d;box-shadow:0 0 0 6px rgba(95,152,61,.11),0 0 16px rgba(95,152,61,.3)}.order-review-status small{display:block;font-size:7px;letter-spacing:.12em;color:var(--muted);font-weight:800}.order-review-status strong{display:block;margin-top:3px;font-family:var(--serif);font-size:16px;color:var(--green)}.order-review-status p{margin:4px 0 0;color:var(--muted);font-size:9px;line-height:1.45}.review-card{background:#fffdf9;border:1px solid var(--line);border-radius:17px;padding:12px;margin-bottom:9px}.review-card h3{font-family:var(--serif);margin:0 0 9px;font-size:16px}.review-code{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 8px}.review-code span,.review-code small{font-size:8px;color:var(--muted)}.review-code strong{font-size:14px;color:var(--green)}.review-code small{grid-column:1/-1}.review-row{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:9px}.review-row:last-child{border-bottom:0}.review-row span{color:var(--muted);flex:0 0 80px}.review-row b{text-align:right;font-weight:700}.review-item{display:grid;grid-template-columns:38px 1fr auto;gap:8px;align-items:start;padding:9px 0;border-bottom:1px dashed var(--line)}.review-item:last-child{border-bottom:0}.review-item-icon{width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,#e0eacb,#f7ead0);display:grid;place-items:center;font-size:18px}.review-item b{font-size:9px}.review-item p{margin:3px 0 0;font-size:7px;line-height:1.45;color:var(--muted)}.review-item>strong{font-size:9px;white-space:nowrap}.review-total{display:flex;justify-content:space-between;align-items:end;padding-top:10px}.review-total span{font-size:9px;color:var(--muted)}.review-total strong{font-size:21px;color:var(--green)}.order-review-actions{padding:4px 0 8px}.toast{position:fixed;z-index:130;left:50%;bottom:calc(84px + var(--safe-bottom));transform:translate(-50%,18px);opacity:0;pointer-events:none;background:#173b1d;color:#fff;padding:10px 13px;border-radius:999px;font-size:9px;font-weight:700;box-shadow:0 12px 30px rgba(19,54,24,.26);transition:.22s}.toast.show{opacity:1;transform:translate(-50%,0)}
@keyframes sparkle{0%,100%{transform:scale(.75);opacity:.45}50%{transform:scale(1.5);opacity:1}}@keyframes floatNut{0%,100%{transform:translateY(0) rotate(-7deg)}50%{transform:translateY(-7px) rotate(8deg)}}@keyframes successPulse{50%{transform:scale(1.04);box-shadow:0 0 0 21px rgba(110,150,81,.055),0 0 72px rgba(121,165,79,.28)}}
@media(min-width:641px){main{padding-left:18px;padding-right:18px}.hero{height:390px;border-radius:28px;grid-template-columns:42% 58%}.hero-copy{padding-left:34px}.hero-script{font-size:52px}.hero-desc{font-size:13px}.hero-cta{font-size:12px;padding:12px 16px}.product-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.product-image{height:200px}.product-card h3{font-size:17px}.product-sub{font-size:10px}.price{font-size:13px}.choose-btn{font-size:10px}.product-sheet{width:min(100%,900px);height:92dvh;border-radius:28px 28px 0 0}.product-sheet.show{transform:translate(-50%,0)}.product-sheet{display:grid;grid-template-columns:45% 55%;grid-template-rows:1fr 84px}.product-visual{height:auto;min-height:0;grid-row:1/3}.product-config{height:auto;margin:0;border-radius:0;padding:24px 22px 120px}.sheet-cta{left:45%}.drawer,.checkout{width:min(100%,480px)}.bottom-nav{max-width:640px;left:50%;border:1px solid var(--line);border-bottom:0;border-radius:22px 22px 0 0}}
@media(max-width:390px){.hero{height:232px}.hero-script{font-size:26px}.hero-copy{padding-left:14px}.hero-benefits{display:none}.product-image{height:138px}.product-card h3{font-size:13px}.product-sub{font-size:7.5px}.choose-btn{padding:7px 8px}.category-chip{padding:9px 12px}.product-visual{height:40dvh;min-height:275px}.product-config{height:calc(60dvh - 80px);padding-left:11px;padding-right:11px}.title-row h2{font-size:26px}.choice-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.sweetness-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topping-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.success-actions{grid-template-columns:1fr}}
@media(max-width:330px){.topbar{padding-left:6px;padding-right:6px}.brand{font-size:21px}.hero{height:218px}.hero-script{font-size:23px}.hero-desc{font-size:8.5px}.hero-cta{font-size:8px;padding:9px 10px}.product-grid{gap:7px}.product-card{padding:6px}.product-image{height:124px}.mini-bottle{transform:scale(.9) rotate(-3deg)}.product-bottom{grid-template-columns:1fr}.choose-btn{width:100%}.nav-item small{font-size:7px}.sheet-cta strong,.checkout-cta strong{font-size:20px}.btn{padding:0 12px;font-size:11px}.topping-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}.spark{display:none}}

/* v4.1.1 — order history visibility */
.order-nav{position:relative}.latest-order-btn{margin:12px 0 4px;min-height:46px;align-items:center;justify-content:center}.app-version{text-align:center;color:var(--muted);font-size:8px;margin:24px 0 8px}.order-nav #orderBadge{right:8px;top:3px}.order-history-item{transition:transform .18s ease,box-shadow .18s ease}.order-history-item:active{transform:scale(.985)}

/* v5.0 — Ultra touch depth / hybrid product imagery */
.product-card{transform-style:preserve-3d;perspective:900px}.product-card::before{content:"";position:absolute;inset:-35%;z-index:0;pointer-events:none;background:conic-gradient(from 180deg,transparent,rgba(255,255,255,.38),transparent 24%,rgba(166,216,111,.17),transparent 55%);opacity:0;transform:rotate(0);transition:opacity .25s}.product-card:active::before{opacity:.85;animation:cardPrism .7s linear}.product-image.has-admin-photo{background:radial-gradient(circle at 50% 20%,#fff9df 0,transparent 34%),linear-gradient(145deg,var(--p1),var(--p2))}.admin-product-photo{position:absolute;inset:4px;width:calc(100% - 8px);height:calc(100% - 8px);object-fit:contain;z-index:4;filter:drop-shadow(0 15px 18px rgba(46,55,32,.22));transform:translateZ(28px) scale(.96);animation:photoFloat 4.4s ease-in-out infinite}.product-image.has-admin-photo .floating-nut{z-index:5}.product-image.has-admin-photo:after{z-index:6;opacity:.78}
.hero::after,.product-visual::after{content:"";position:absolute;inset:-30%;pointer-events:none;z-index:2;background:conic-gradient(from 80deg at 50% 50%,transparent 0 18%,rgba(229,255,173,.09) 25%,transparent 34% 54%,rgba(255,221,162,.09) 65%,transparent 74%);mix-blend-mode:screen;animation:auroraSpin 13s linear infinite}.hero-scene-wrap,.product-visual{perspective:1000px}.hero-scene-wrap canvas,.product-visual canvas{filter:saturate(1.08) contrast(1.03);will-change:transform,filter}.product-visual{box-shadow:inset 0 -80px 90px rgba(8,30,12,.08)}.visual-glow{width:76%;background:radial-gradient(circle,rgba(244,255,213,.15),rgba(155,219,97,.06) 38%,transparent 70%);box-shadow:0 0 90px rgba(239,255,195,.27),0 0 140px rgba(129,196,81,.13);animation:visualPulse 3.4s ease-in-out infinite}.touch-glow{width:210px;height:210px;background:radial-gradient(circle,rgba(255,255,236,.56),rgba(186,244,124,.18) 42%,rgba(255,209,127,.08) 58%,transparent 72%)}
html[data-effects="ultra"] .page-light{opacity:.25;filter:blur(75px)}html[data-effects="ultra"] .spark{box-shadow:0 0 16px #fffbd0,0 0 40px #c0ff92,0 0 70px rgba(255,213,141,.35)}html[data-effects="ultra"] .hero{box-shadow:0 22px 55px rgba(35,66,30,.24),0 0 0 1px rgba(255,255,255,.08) inset}html[data-effects="low"] .hero::after,html[data-effects="low"] .product-visual::after,html[data-effects="low"] .spark{display:none}
::view-transition-old(root){animation:.32s cubic-bezier(.4,0,.2,1) both vtOut}::view-transition-new(root){animation:.5s cubic-bezier(.2,.8,.2,1) both vtIn}
@keyframes photoFloat{0%,100%{transform:translateY(0) translateZ(28px) rotate(-1deg) scale(.96)}50%{transform:translateY(-7px) translateZ(34px) rotate(1deg) scale(.99)}}@keyframes auroraSpin{to{transform:rotate(360deg)}}@keyframes visualPulse{50%{transform:translate(-50%,-50%) scale(1.1);filter:saturate(1.2)}}@keyframes cardPrism{to{transform:rotate(180deg)}}@keyframes vtOut{to{opacity:0;filter:blur(6px);transform:scale(.985)}}@keyframes vtIn{from{opacity:0;filter:blur(10px);transform:scale(1.015)}}
@media(prefers-reduced-motion:reduce){.admin-product-photo,.hero::after,.product-visual::after,.visual-glow{animation:none!important}}

.hero-custom-bg,.product-custom-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none;pointer-events:none}.hero-custom-bg{z-index:0;opacity:.78;filter:saturate(1.08) contrast(1.02)}.hero.has-custom-bg .hero-custom-bg{display:block}.hero.has-custom-bg:before{z-index:1;background:linear-gradient(90deg,rgba(14,47,21,.74),rgba(16,55,25,.2) 55%,rgba(20,44,20,.14)),radial-gradient(circle at 70% 18%,rgba(255,255,255,.12),transparent 35%)}.hero-float-layer,.product-float-layer{position:absolute;inset:0;z-index:4;pointer-events:none;perspective:700px;overflow:hidden}.hero-float-img,.product-float-img{position:absolute;width:44px;height:44px;object-fit:contain;filter:drop-shadow(0 10px 13px rgba(0,0,0,.18));animation:customFloat 5.7s ease-in-out infinite;will-change:transform}.hero-float-img:nth-child(1){left:8%;top:18%;width:34px;height:34px}.hero-float-img:nth-child(2){right:8%;top:20%;width:42px;height:42px;animation-delay:-1.4s}.hero-float-img:nth-child(3){left:34%;bottom:11%;width:38px;height:38px;animation-delay:-2.5s}.hero-float-img:nth-child(4){right:22%;bottom:16%;width:30px;height:30px;animation-delay:-3.4s}.product-float-img:nth-child(1){left:10%;top:26%;width:54px;height:54px}.product-float-img:nth-child(2){right:9%;top:34%;width:62px;height:62px;animation-delay:-1.6s}.product-float-img:nth-child(3){left:22%;bottom:12%;width:46px;height:46px;animation-delay:-3s}.product-custom-bg{z-index:0;display:none;opacity:.48;filter:saturate(1.08) blur(.2px)}.product-visual.has-custom-bg .product-custom-bg{display:block}.product-visual.has-custom-bg:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(25,57,29,.05));pointer-events:none}.product-visual canvas{z-index:2}.visual-back,.visual-actions,.visual-tag,.visual-glow,.visual-swipe{z-index:8!important}
.product-bg-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.7;filter:saturate(1.05)}.product-image.has-custom-bg:before{z-index:1}.product-image.has-custom-bg:after{z-index:6;opacity:.48}.admin-product-photo{position:relative;z-index:4;max-width:90%;max-height:92%;object-fit:contain;filter:drop-shadow(0 16px 18px rgba(55,45,32,.15))}.floating-nut img{width:100%;height:100%;object-fit:contain;display:block}.floating-nut.fn3{left:50%;top:18px;width:18px;height:18px;font-size:18px;animation-delay:-2.5s}.floating-nut{width:24px;height:24px;display:grid;place-items:center}
.choice-icon{width:26px;height:26px;display:grid;place-items:center;margin:0 auto 4px}.choice-icon img{width:100%;height:100%;object-fit:contain;display:block}
@keyframes customFloat{0%,100%{transform:translate3d(0,0,0) rotate(-7deg) scale(1)}35%{transform:translate3d(7px,-12px,20px) rotate(8deg) scale(1.08)}70%{transform:translate3d(-5px,7px,-8px) rotate(-2deg) scale(.96)}}

@media(max-width:360px){.topbar{grid-template-columns:40px minmax(0,1fr) auto;padding-left:8px;padding-right:8px}.icon-btn{width:38px;height:38px}.brand{font-size:21px;max-width:120px}.brand img{max-height:30px}.top-actions{gap:0}.hero{grid-template-columns:46% 54%;height:230px}.hero-script{font-size:25px}.category-chip{padding:9px 12px}.product-image{height:136px}.product-card h3{font-size:13px}}
@media(max-width:320px){.brand{font-size:19px;max-width:104px}.brand img{max-height:27px}.topbar{grid-template-columns:36px minmax(0,1fr) auto}.icon-btn{width:34px}.top-actions .icon-btn{width:34px}.product-grid{gap:7px}.product-card{padding:6px}.product-image{height:126px}.choose-btn{padding:7px 7px}.bottom-nav{padding-left:2px;padding-right:2px}.nav-item small{font-size:7px}}
@media(min-width:700px){.brand{max-width:190px}.brand img{max-height:38px}}
.card-heart img{width:15px;height:15px;object-fit:contain}.add-btn span{width:22px;height:22px;display:inline-grid;place-items:center}.add-btn span img{width:20px;height:20px;object-fit:contain;filter:brightness(0) invert(1)}
.round-icon img,.visual-back img{width:22px;height:22px;object-fit:contain;display:block}

/* v5.7 — POS-only catalog + iPhone-style product launcher */
.iphone-menu-head{align-items:center;padding:18px 4px 8px}.iphone-menu-head h1{font-family:var(--sans);font-size:24px;line-height:1.12;letter-spacing:-.035em;margin:2px 0 0;font-weight:800}.menu-eyebrow{font-size:9px;letter-spacing:.16em;font-weight:800;color:#78906d;margin:0 0 3px}.iphone-menu-head #catalogState{font-size:10px;line-height:1.45;color:var(--muted);margin:5px 0 0}.category-top{padding-top:6px;padding-bottom:15px}
.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 9px;align-items:start;padding:4px 1px 18px}.product-app{appearance:none;border:0;background:transparent;padding:0;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;color:var(--ink);position:relative}.product-app:active .app-icon-tile{transform:scale(.92);filter:brightness(.98)}.app-icon-tile{width:min(100%,76px);aspect-ratio:1;border-radius:22px;display:grid;place-items:center;position:relative;overflow:hidden;background:linear-gradient(145deg,var(--p1),var(--p2));box-shadow:0 8px 22px rgba(47,59,38,.14),inset 0 1px 0 rgba(255,255,255,.72);transition:transform .16s ease,filter .16s ease}.app-icon-tile:after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(145deg,rgba(255,255,255,.42),transparent 35% 65%,rgba(35,72,31,.05));pointer-events:none}.app-product-photo{position:absolute;inset:5px;width:calc(100% - 10px);height:calc(100% - 10px);object-fit:contain;z-index:2;filter:drop-shadow(0 6px 8px rgba(42,52,33,.16))}.app-icon-placeholder{z-index:2;width:100%;height:100%;display:grid;place-items:center;align-content:center;gap:2px}.app-icon-placeholder b{font-size:28px;line-height:1;font-weight:900;letter-spacing:-.08em;color:var(--accent);text-shadow:0 1px 0 rgba(255,255,255,.7)}.app-icon-placeholder small{font-size:15px;line-height:1}.favorite-dot{position:absolute;right:5px;top:5px;z-index:5;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.9);color:#ae4b45;font-size:10px;font-style:normal;box-shadow:0 2px 7px rgba(0,0,0,.12)}.app-product-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:31px;margin-top:7px;font-size:10.5px;line-height:1.35;font-weight:700;letter-spacing:-.015em;width:100%}.app-product-price{font-size:9px;line-height:1.2;color:#6c7968;font-weight:700;margin-top:2px}.catalog-empty{grid-column:1/-1;min-height:260px;border:1px dashed #ccd8c9;border-radius:22px;background:rgba(255,255,255,.48);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px 20px;color:#53614f}.catalog-empty-icon{width:68px;height:68px;border-radius:20px;display:grid;place-items:center;background:#edf3e8;color:#55724d;font-size:30px;margin-bottom:14px;box-shadow:inset 0 0 0 1px rgba(60,91,52,.08)}.catalog-empty b{max-width:340px;font-size:14px}.catalog-empty span{max-width:340px;font-size:10px;color:#8a9185;line-height:1.5;margin-top:7px}
@media(min-width:480px){.product-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:22px 13px}.app-icon-tile{width:min(100%,84px)}.app-product-name{font-size:11px}}
@media(min-width:700px){.product-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:26px 18px;padding:8px 10px 28px}.app-icon-tile{width:min(100%,96px);border-radius:26px}.app-icon-placeholder b{font-size:34px}.app-product-name{font-size:12px;min-height:34px}.app-product-price{font-size:10px}.iphone-menu-head{padding-top:24px}.iphone-menu-head h1{font-size:30px}}
@media(min-width:960px){.product-grid{grid-template-columns:repeat(8,minmax(0,1fr))}}
@media(max-width:330px){.product-grid{gap:15px 6px}.app-icon-tile{border-radius:19px}.app-product-name{font-size:9.5px}.app-product-price{font-size:8.5px}}

/* v5.7 — category groups come directly from POS; redundant menu/store/sort header removed */
.category-top{padding:14px 4px 16px;margin-top:2px;border-bottom:1px solid rgba(65,91,57,.08)}
.category-chip{white-space:nowrap}
main>.product-grid{padding-top:12px}

/* v5.7 baseline — compact 4-item nav, Zalo replaces Favorites */
.zalo-nav>span{border-radius:7px;background:#0877f9;color:#fff;font-size:12px;font-weight:900;box-shadow:0 4px 10px rgba(8,119,249,.22)}
.bottom-nav{grid-template-columns:repeat(4,1fr)}


/* v6.1 MENU + verified reviews */
.menu-title{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:13px;padding:18px 16px 12px}.menu-title>span{height:1px;background:linear-gradient(90deg,transparent,rgba(42,78,35,.28))}.menu-title>span:last-child{background:linear-gradient(90deg,rgba(42,78,35,.28),transparent)}.menu-title div{text-align:center}.menu-title small{display:block;font-size:8px;letter-spacing:.28em;font-weight:800;color:#8a927f;margin-left:.28em}.menu-title h1{font-family:var(--serif);margin:1px 0 0;font-size:30px;line-height:1;color:#31582d;letter-spacing:.08em}.product-review-preview{display:grid;gap:7px;margin:8px 0 14px}.review-mini{background:#f7f2e7;border:1px solid rgba(55,91,45,.1);border-radius:14px;padding:10px 12px}.review-mini-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.review-mini-head b{font-size:11px}.review-mini-head span{font-size:9px;color:#607258}.review-mini p{font-size:10px;line-height:1.5;margin:5px 0 0;color:#596155}.rating .star{color:#e9aa22}.rating i{font-style:normal;color:#aaa;margin:0 3px}.review-invite{margin:12px 0 16px;padding:14px;border-radius:19px;background:linear-gradient(145deg,#f6f4e6,#edf3df);border:1px solid rgba(50,95,40,.16)}.review-invite[hidden]{display:none}.review-invite-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.review-invite-head small{font-size:8px;letter-spacing:.16em;font-weight:800;color:#6f7e65}.review-invite-head h3{font-family:var(--serif);margin:2px 0;font-size:21px}.verified-pill{font-size:9px;font-weight:800;background:#e3efdb;color:#3f7038;padding:6px 8px;border-radius:999px}.review-invite>p{font-size:11px;color:#586450;margin:7px 0}.review-stars{display:flex;gap:5px;margin:8px 0}.review-stars button{border:0;background:transparent;color:#cfc9ba;font-size:30px;line-height:1;padding:2px;cursor:pointer}.review-stars button.on{color:#e8aa24;filter:drop-shadow(0 2px 4px rgba(190,130,14,.18))}.quick-review-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 9px}.quick-review-chips button{border:1px solid rgba(50,95,40,.14);background:#fffdf8;color:#52664b;border-radius:999px;padding:7px 9px;font-size:9px;font-weight:700}.quick-review-chips button.selected{background:#e6efdc;color:#315d2e;border-color:#a9c399}.review-invite textarea{min-height:78px;width:100%;resize:vertical;border:1px solid rgba(50,95,40,.16);border-radius:13px;background:#fff;padding:10px;font:inherit;font-size:11px;outline:0}.review-help{font-size:9px!important;color:#7b8274!important;text-align:center;margin:7px 0 0!important}


/* v6.1 — review CTA directly on order list */
.order-history-item{cursor:pointer;align-items:center;position:relative;overflow:hidden}.order-history-main{min-width:0}.order-history-side{display:grid;justify-items:end;gap:7px;min-width:116px}.review-order-label{border:0;border-radius:999px;padding:8px 11px;background:linear-gradient(135deg,#ffcf3a,#f49a19);color:#402800;font-size:8px;font-weight:900;letter-spacing:.03em;box-shadow:0 7px 16px rgba(222,142,19,.28),inset 0 1px 0 rgba(255,255,255,.5);animation:reviewCtaGlow 1.8s ease-in-out infinite}.review-order-label:active{transform:scale(.96)}.review-done-label{font-size:7px;font-weight:800;color:#5b7953;background:#edf5e7;padding:6px 8px;border-radius:999px}.review-focus-pulse{animation:reviewFocusPulse .65s ease-in-out 2}@keyframes reviewCtaGlow{0%,100%{box-shadow:0 7px 16px rgba(222,142,19,.22),0 0 0 0 rgba(244,154,25,.2)}50%{box-shadow:0 9px 22px rgba(222,142,19,.34),0 0 0 7px rgba(244,154,25,0)}}@keyframes reviewFocusPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.018);box-shadow:0 0 0 6px rgba(232,170,36,.12)}}
@media(max-width:360px){.order-history-side{min-width:103px}.review-order-label{padding:7px 8px;font-size:7px}}

/* v6.2.0 — 2 sản phẩm/dòng, ảnh lớn, intro GONUT, tap signature, scroll recovery */
body.modal-open{overflow:hidden;touch-action:auto}
.product-config,.cart-list,.account-scroll,.checkout-scroll,.checkout-success,.order-review{-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain}
.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px 14px!important;max-width:760px;margin:0 auto;padding:10px 2px 26px!important}
.product-app{align-items:stretch!important;text-align:left!important;padding:2px 1px!important}
.app-icon-tile{width:100%!important;max-width:none!important;aspect-ratio:1/1.04;border-radius:28px!important;box-shadow:0 14px 30px rgba(47,59,38,.14),inset 0 1px 0 rgba(255,255,255,.82)!important}
.app-product-photo{inset:8px!important;width:calc(100% - 16px)!important;height:calc(100% - 16px)!important;filter:drop-shadow(0 12px 13px rgba(42,52,33,.19))!important}
.app-product-name{font-size:13px!important;line-height:1.34!important;min-height:35px!important;margin:9px 2px 0!important;text-align:left!important}
.app-product-price{font-size:11px!important;margin:3px 2px 0!important;text-align:left!important;color:#385d34!important}
.app-icon-placeholder b{font-size:42px!important}.app-icon-placeholder small{font-size:23px!important}
#packageOptions{grid-template-columns:repeat(3,minmax(0,1fr))!important}
@media(max-width:340px){.product-grid{gap:16px 9px!important}.app-icon-tile{border-radius:22px!important}.app-product-name{font-size:11.5px!important}.app-product-price{font-size:10px!important}}
@media(min-width:700px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:26px 22px!important;max-width:820px}.app-icon-tile{border-radius:34px!important}.app-product-name{font-size:15px!important}.app-product-price{font-size:12px!important}}

.gonut-intro{position:fixed;inset:0;z-index:300;display:grid;place-items:center;align-content:center;overflow:hidden;background:radial-gradient(circle at 50% 42%,#68844c 0,#365f2f 28%,#173d20 65%,#102817 100%);color:#fff;isolation:isolate;transition:opacity .62s ease,filter .62s ease,transform .62s cubic-bezier(.2,.8,.2,1)}
.gonut-intro:before{content:"";position:absolute;inset:-22%;background:conic-gradient(from 180deg at 50% 50%,transparent,#e9f8c620,transparent 26%,#fff3c82b 43%,transparent 62%,#9cce7b22 78%,transparent);animation:introSpin 4.8s linear infinite;filter:blur(2px)}
.gonut-intro:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent 0 18%,rgba(255,255,255,.08) 19% 19.5%,transparent 20% 34%,rgba(255,255,255,.05) 35% 35.5%,transparent 36%);mix-blend-mode:screen;animation:introPulse 1.8s ease-in-out infinite}
.gonut-intro.leave{opacity:0;filter:blur(12px) saturate(1.3);transform:scale(1.08);pointer-events:none}
.intro-aurora{position:absolute;width:75vmin;height:75vmin;border-radius:50%;background:radial-gradient(circle,#fffbdc55 0,#cce9a622 35%,transparent 69%);filter:blur(18px);animation:introAurora 1.7s ease-in-out infinite alternate}
.intro-logo{position:relative;z-index:5;display:grid;justify-items:center;text-align:center;filter:drop-shadow(0 12px 35px rgba(0,0,0,.24));animation:introLogoIn 1.25s cubic-bezier(.16,.85,.23,1) both}
.intro-logo img{width:min(66vw,280px);max-height:150px;object-fit:contain;filter:drop-shadow(0 11px 22px rgba(0,0,0,.2))}
.intro-logo strong{font-family:var(--sans);font-size:clamp(44px,16vw,88px);font-weight:900;letter-spacing:-.065em;line-height:.9;background:linear-gradient(180deg,#fffef0,#e8f1cb 58%,#bad18c);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 45px rgba(235,255,199,.2)}
.intro-logo small{margin-top:13px;font-size:clamp(8px,2.5vw,11px);font-weight:800;letter-spacing:.32em;color:#edf4d5;margin-left:.32em}
.intro-leaf{position:absolute;left:-4px;top:-19px;font-size:16px;color:#d9eaa8;transform:rotate(45deg);animation:introLeaf 1.4s ease-in-out infinite alternate}
.intro-line{z-index:5;width:min(56vw,220px);height:1px;margin:25px auto 10px;background:linear-gradient(90deg,transparent,#edf4d7,transparent);transform-origin:center;animation:introLine 1.25s .28s both}
.gonut-intro>p{z-index:5;margin:0;font-family:var(--serif);font-style:italic;font-size:12px;letter-spacing:.06em;color:#f6eedb;animation:introText 1s .4s both}
.intro-orbit{position:absolute;border:1px solid rgba(239,249,211,.16);border-radius:50%;transform:rotateX(66deg);box-shadow:0 0 44px rgba(195,226,145,.08)}.orbit-a{width:72vmin;height:72vmin;animation:introOrbit 4s linear infinite}.orbit-b{width:48vmin;height:48vmin;animation:introOrbit 2.8s linear reverse infinite}.intro-seed{position:absolute;z-index:3;color:#e8f5c3;text-shadow:0 0 18px #dbf4a6;font-size:17px}.seed-a{left:20%;top:24%;animation:seedFloat 2.1s ease-in-out infinite}.seed-b{right:18%;top:32%;font-size:8px;animation:seedFloat 1.7s -.6s ease-in-out infinite}.seed-c{left:29%;bottom:25%;animation:seedFloat 2.4s -1.1s ease-in-out infinite}
@keyframes introLogoIn{0%{opacity:0;transform:scale(.55) translateY(26px);filter:blur(18px)}55%{opacity:1;transform:scale(1.08) translateY(-3px);filter:blur(0)}100%{transform:scale(1)}}@keyframes introSpin{to{transform:rotate(360deg)}}@keyframes introPulse{50%{opacity:.55;transform:scale(1.06)}}@keyframes introAurora{to{transform:scale(1.13);opacity:.72}}@keyframes introOrbit{to{transform:rotateX(66deg) rotateZ(360deg)}}@keyframes introLeaf{to{transform:rotate(62deg) translateY(-4px);filter:brightness(1.25)}}@keyframes introLine{from{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes introText{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes seedFloat{50%{transform:translate3d(8px,-18px,0) rotate(20deg);opacity:.55}}

.tap-fx-layer{position:fixed;inset:0;pointer-events:none;z-index:290;overflow:hidden}.tap-burst-ring{position:absolute;width:24px;height:24px;border:2px solid rgba(73,122,51,.75);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 5px rgba(244,220,160,.15),0 0 30px rgba(105,156,69,.35);animation:tapRing .8s cubic-bezier(.15,.75,.25,1) forwards}.tap-burst-particle{position:absolute;transform:translate(-50%,-50%);font-size:17px;line-height:1;color:#49783e;text-shadow:0 2px 8px rgba(255,255,255,.95),0 0 14px rgba(132,184,90,.35);animation:tapParticle .82s cubic-bezier(.18,.72,.24,1) var(--delay,0ms) forwards;will-change:transform,opacity}
@keyframes tapRing{0%{opacity:1;transform:translate(-50%,-50%) scale(.35)}75%{opacity:.55}100%{opacity:0;transform:translate(-50%,-50%) scale(5.3)}}@keyframes tapParticle{0%{opacity:0;transform:translate(-50%,-50%) scale(.45) rotate(0)}14%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1.25) rotate(var(--rot))}}
@media(prefers-reduced-motion:reduce){.gonut-intro:before,.gonut-intro:after,.intro-aurora,.intro-logo,.intro-orbit,.intro-seed,.intro-line,.gonut-intro>p{animation:none!important}.tap-burst-particle{animation-duration:.35s}.tap-burst-ring{animation-duration:.35s}}
/* Cho phép vuốt dọc từ cả vùng 3D; vuốt ngang vẫn dành cho xoay sản phẩm. */
.product-visual{touch-action:pan-y!important}


/* v6.2.0 — final mobile stability + memorable tap FX */
html,body{touch-action:pan-y;overscroll-behavior-y:auto}
body.modal-open{touch-action:auto}
.gonut-intro{min-height:100dvh}
.tap-burst-ring{width:30px;height:30px;border-width:2.5px;box-shadow:0 0 0 7px rgba(244,220,160,.18),0 0 42px rgba(105,156,69,.48)}
.tap-burst-particle{font-size:20px;filter:drop-shadow(0 3px 5px rgba(48,82,38,.18))}
.product-app:focus-visible .app-icon-tile{outline:3px solid rgba(69,116,54,.28);outline-offset:3px}
@media(max-width:420px){.product-grid{gap:18px 12px!important}.app-icon-tile{border-radius:25px!important}.app-product-name{font-size:12.5px!important}}

/* v6.2.0 — smart ordering + final two-column catalog */
.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-width:860px!important;gap:22px 16px!important}
@media(min-width:480px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:24px 18px!important}}
@media(min-width:700px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:28px 24px!important}}
@media(min-width:960px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-width:900px!important}}
.app-icon-tile{min-height:138px!important}.app-product-photo{object-fit:contain!important}
.product-meta-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px}.product-meta-line .rating{margin:0}
.standard-volume{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;background:#edf4e8;color:#466440;font-size:9px;font-weight:900;border:1px solid #d9e6d2}
.smart-step{position:relative}.smart-step .choice-head small{color:#7b8876;font-size:9px}.choice-grid.three,#packageOptions{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.smart-checkout-card{position:relative;padding-top:18px}.checkout-step{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#35652d;color:white;font-weight:900;font-size:11px;margin-bottom:8px;box-shadow:0 6px 14px rgba(53,101,45,.18)}.checkout-hint{margin:-2px 0 12px;color:#788474;font-size:9.5px;line-height:1.5}
.form-error:not(:empty){background:#fff0ec;color:#9d3d2e;border:1px solid #f1c6bc;border-radius:12px;padding:10px 12px;font-weight:700}
.input-error{outline:2px solid #d96c58!important;outline-offset:1px;background:#fff9f7!important}
#confirmOrderBtn{min-width:132px}.checkout-cta #confirmOrderBtn{white-space:nowrap}

/* ===== GONUT v6.3.0 SMART COMMERCE ===== */
.store-status-banner{margin:10px 14px 2px;padding:13px 14px;border:1px solid rgba(86,118,58,.18);border-radius:18px;background:linear-gradient(135deg,#f1f7e7,#fffaf0);display:flex;align-items:flex-start;gap:10px;box-shadow:0 8px 24px rgba(65,83,47,.08)}
.store-status-banner[hidden]{display:none!important}.store-status-banner.closed{background:linear-gradient(135deg,#fff4df,#f8eee2);border-color:rgba(176,113,41,.24)}.store-status-icon{color:#5d8f3d;font-size:17px;line-height:1}.store-status-banner.closed .store-status-icon{color:#c3742f}.store-status-banner b{display:block;color:#365629;font-size:14px}.store-status-banner.closed b{color:#7c4d25}.store-status-banner p{margin:4px 0 0;font-size:12px;line-height:1.5;color:#716b5e}
.local-seo-intro{padding:9px 18px 0;text-align:center}.local-seo-intro h1{font:700 clamp(17px,4.6vw,22px)/1.25 'Playfair Display',serif;color:#36572e;margin:0}.local-seo-intro p{font-size:11.5px;line-height:1.6;color:#777164;margin:7px auto 0;max-width:650px}.local-service-copy{margin:26px 18px 106px;padding:18px;border-radius:22px;background:linear-gradient(145deg,#f6f4e8,#fff);border:1px solid rgba(70,94,54,.12)}.local-service-copy h2{font:700 19px/1.3 'Playfair Display',serif;color:#3f6032;margin:0 0 7px}.local-service-copy p{font-size:12px;line-height:1.65;color:#736f66;margin:0}
.promotion-section{margin:10px 14px 16px}.promotion-section[hidden]{display:none!important}.promotion-head{display:flex;align-items:end;justify-content:space-between;margin:0 4px 9px}.promotion-head small{font-size:9px;letter-spacing:.14em;color:#889675}.promotion-head h2{margin:2px 0 0;font:700 22px/1.1 'Playfair Display',serif;color:#39582f}.promotion-head>span{font-size:9.5px;color:#9b917f}.promotion-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.promotion-card{position:relative;text-align:left;min-width:0;border:1px solid rgba(89,111,57,.14);border-radius:18px;padding:13px 12px;background:linear-gradient(145deg,#fffdf8,#f2f5e6);box-shadow:0 8px 20px rgba(70,82,49,.07);color:#3b4832;overflow:hidden}.promotion-card .promo-spark{position:absolute;right:-7px;top:-9px;font-size:40px;color:rgba(103,132,68,.12);transform:rotate(17deg)}.promotion-card small{display:block;color:#89966b;font-size:8px;letter-spacing:.11em;font-weight:800}.promotion-card b{display:block;margin:3px 0 4px;font-size:13px;color:#36572e}.promotion-card p{font-size:10px;line-height:1.4;margin:0 0 7px;color:#786f61}.promotion-card em{font-size:9px;color:#8b765d;font-style:normal}.promotion-card>strong{display:inline-block;margin-top:8px;padding:5px 8px;border-radius:9px;background:#52733a;color:#fff;font-size:10px;letter-spacing:.06em}
.returning-customer-hint{margin:6px 0 9px;padding:9px 10px;border-radius:12px;background:#eef5e4;color:#4d6a39;font-size:11px;font-weight:600}.returning-customer-hint[hidden]{display:none!important}.promo-code-row{display:flex;gap:8px;align-items:center}.promo-code-row input{flex:1;min-width:0;text-transform:uppercase}.promo-code-row .btn{white-space:nowrap;padding-inline:13px}.promo-result{font-size:11px;line-height:1.45;min-height:16px;margin:8px 0 0}.promo-result.success,.promo-saving{color:#507735!important}.promo-result.error{color:#a0483d}.checkout-line.amount-line{padding-block:8px}.checkout-line.checkout-grand{margin-top:4px;padding-top:12px;border-top:1px solid rgba(66,82,51,.16)}.checkout-line.checkout-grand strong:last-child{font-size:19px;color:#477332}
.order-timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;margin:8px 14px 14px;padding:10px 6px;border-radius:16px;background:#f7f5ed;border:1px solid rgba(71,91,53,.11)}.timeline-step{position:relative;text-align:center;color:#aaa397;font-size:8.5px;font-weight:650}.timeline-step:not(:last-child):after{content:'';position:absolute;height:2px;background:#ddd8ca;left:62%;right:-38%;top:11px}.timeline-step i{position:relative;z-index:2;margin:0 auto 5px;display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#e7e3d8;color:#9a9387;font-style:normal;font-size:9px}.timeline-step.done,.timeline-step.active{color:#52723d}.timeline-step.done i{background:#5e833f;color:#fff}.timeline-step.active i{background:#f3d989;color:#5b5d3f;box-shadow:0 0 0 4px rgba(243,217,137,.24)}.timeline-step.done:not(:last-child):after{background:#7e9b62}.order-timeline.rejected{opacity:.45;filter:grayscale(.5)}
@media(max-width:390px){.promotion-list{grid-template-columns:1fr 1fr}.promotion-card{padding:11px 10px}.local-seo-intro h1{font-size:17px}}

/* v6.5.0 — Lucky Wheel */
.lucky-wheel-launcher{position:fixed;right:14px;bottom:92px;z-index:180;width:76px;height:76px;border:0;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 30% 22%,#fff6b5 0 10%,#f4c44f 20%,#6f913f 62%,#365a31 100%);box-shadow:0 12px 28px rgba(54,85,43,.34),0 0 0 5px rgba(255,255,255,.72),0 0 0 8px rgba(231,199,89,.26);color:#fff;cursor:pointer;animation:wheelLauncherPulse 2.2s ease-in-out infinite}.lucky-wheel-launcher[hidden]{display:none!important}.lucky-wheel-launcher span{position:absolute;top:5px;font-size:22px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.12))}.lucky-wheel-launcher b{font-size:9px;line-height:1.02;letter-spacing:.06em;margin-top:23px;text-shadow:0 1px 2px rgba(0,0,0,.22)}.lucky-wheel-launcher i{position:absolute;right:7px;top:10px;font-style:normal;color:#fffbd5;animation:wheelSpark 1.3s ease-in-out infinite}.lucky-wheel-launcher:active{transform:scale(.92)}
@keyframes wheelLauncherPulse{0%,100%{transform:translateY(0) rotate(-2deg);box-shadow:0 12px 28px rgba(54,85,43,.34),0 0 0 5px rgba(255,255,255,.72),0 0 0 8px rgba(231,199,89,.22)}50%{transform:translateY(-5px) rotate(2deg);box-shadow:0 18px 34px rgba(54,85,43,.42),0 0 0 5px rgba(255,255,255,.88),0 0 0 13px rgba(231,199,89,.12)}}
@keyframes wheelSpark{0%,100%{transform:scale(.6) rotate(0);opacity:.5}50%{transform:scale(1.4) rotate(90deg);opacity:1}}
.lucky-wheel-modal{position:fixed;inset:0;z-index:900;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(23,31,20,.66);backdrop-filter:blur(13px);-webkit-backdrop-filter:blur(13px);overscroll-behavior:contain}.lucky-wheel-modal.show{display:flex;animation:wheelModalIn .28s ease both}.lucky-wheel-card{position:relative;width:min(420px,100%);max-height:min(90dvh,760px);overflow:auto;overscroll-behavior:contain;padding:23px 20px 18px;border-radius:30px;background:radial-gradient(circle at 50% 0,#fffdf1 0 20%,#f8f3e7 60%,#eef2df 100%);border:1px solid rgba(87,112,55,.2);box-shadow:0 30px 70px rgba(21,38,18,.36);text-align:center}.wheel-close{position:absolute;right:14px;top:14px;z-index:5}.lucky-wheel-card .kicker{margin:1px 0 3px;color:#8b9a65;font-size:9px;letter-spacing:.22em;font-weight:800}.lucky-wheel-card h2{margin:0;font:700 27px/1.08 'Playfair Display',serif;color:#34542e}.wheel-subtitle{margin:6px auto 8px;max-width:310px;font-size:11px;line-height:1.45;color:#7d7466}.wheel-stage{position:relative;width:min(76vw,300px);aspect-ratio:1;margin:12px auto 14px;filter:drop-shadow(0 17px 18px rgba(61,72,42,.18))}.lucky-wheel-disk{position:absolute;inset:5px;border-radius:50%;border:8px solid #fff8d9;box-shadow:inset 0 0 0 3px rgba(67,86,45,.18),0 0 0 4px #8aa15e;transition:transform 4.8s cubic-bezier(.12,.72,.12,1);overflow:hidden;will-change:transform}.lucky-wheel-disk:after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.44),transparent 27%,transparent 69%,rgba(36,57,29,.12));pointer-events:none}.wheel-segment-label{position:absolute;left:50%;top:50%;width:42%;height:1px;transform-origin:0 0;transform:rotate(var(--a)) translateX(16%);color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.42);display:flex;align-items:center;gap:4px;pointer-events:none}.wheel-segment-label b{font-size:18px;transform:rotate(var(--na))}.wheel-segment-label small{display:block;max-width:70px;font-size:8px;line-height:1.1;font-weight:800;transform:rotate(var(--na));overflow:hidden;text-overflow:ellipsis}.wheel-pointer{position:absolute;left:50%;top:-8px;z-index:6;transform:translateX(-50%);font-size:36px;line-height:1;color:#e6b945;text-shadow:0 2px 0 #fff,0 4px 8px rgba(72,64,27,.25)}.wheel-hub{position:absolute;left:50%;top:50%;z-index:5;width:70px;height:70px;transform:translate(-50%,-50%);border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 34% 25%,#789652,#3f6538 70%);border:5px solid #fff7d2;box-shadow:0 6px 15px rgba(38,60,32,.32);color:#fff}.wheel-hub b{font:800 25px/1 serif}.wheel-hub small{font-size:6px;letter-spacing:.15em;margin-top:-18px}.wheel-phone-label{display:block;text-align:left;font-size:10px;color:#6f6a5b;font-weight:700;margin:0 auto 8px;max-width:300px}.wheel-phone-label input{width:100%;margin-top:5px;border:1px solid rgba(71,91,49,.18);border-radius:13px;background:#fffdf7;padding:12px 13px;font-size:15px;outline:none}.wheel-phone-label input:focus{border-color:#668349;box-shadow:0 0 0 3px rgba(102,131,73,.12)}.wheel-spin-btn{max-width:300px;margin:0 auto;background:linear-gradient(135deg,#55793e,#76954b);box-shadow:0 10px 20px rgba(65,94,45,.2)}.wheel-spin-btn:disabled{opacity:.66}.wheel-result{min-height:28px;margin:10px auto 7px;max-width:310px}.wheel-win,.wheel-lose{display:grid;gap:3px;padding:10px 12px;border-radius:16px;background:rgba(255,255,255,.72);border:1px solid rgba(94,116,65,.13)}.wheel-win span,.wheel-lose span{font-size:30px}.wheel-win b{font-size:12px;color:#667d3f}.wheel-win strong{font:700 19px/1.15 'Playfair Display',serif;color:#385b31}.wheel-win small,.wheel-lose small{font-size:9px;color:#8c8271}.wheel-lose b{font-size:14px;color:#516742}.wheel-error{display:block;color:#a04c3f;font-size:11px;font-weight:700;padding:6px}.wheel-note{font-size:8.5px;line-height:1.45;color:#948a78;margin:8px 12px 0}.wheel-confetti i{position:absolute;font-style:normal;color:#d0b04f;opacity:.5;animation:wheelConfetti 2.7s ease-in-out infinite}.wheel-confetti i:nth-child(1){left:12%;top:10%}.wheel-confetti i:nth-child(2){left:7%;top:34%;animation-delay:.4s}.wheel-confetti i:nth-child(3){right:11%;top:17%;animation-delay:.8s}.wheel-confetti i:nth-child(4){right:6%;top:42%;animation-delay:1.2s}.wheel-confetti i:nth-child(5){left:18%;top:53%;animation-delay:.7s}.wheel-confetti i:nth-child(6){right:18%;top:57%;animation-delay:1.5s}@keyframes wheelConfetti{0%,100%{transform:translateY(0) rotate(0) scale(.7);opacity:.25}50%{transform:translateY(-8px) rotate(110deg) scale(1.2);opacity:.8}}@keyframes wheelModalIn{from{opacity:0}to{opacity:1}}
body.wheel-open{overflow:hidden;touch-action:none}
@media(max-width:380px){.lucky-wheel-launcher{width:68px;height:68px;right:10px;bottom:88px}.wheel-stage{width:min(78vw,270px)}.lucky-wheel-card{padding-left:14px;padding-right:14px}.wheel-segment-label small{max-width:60px;font-size:7px}}
@media(prefers-reduced-motion:reduce){.lucky-wheel-launcher,.wheel-confetti i{animation:none}.lucky-wheel-disk{transition-duration:1.1s!important}}

/* v6.6.3: five-item mobile navigation, remove promo/content clutter */
.bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr));column-gap:0;padding-inline:4px}
.bottom-nav .nav-item{min-width:0;padding:4px 1px;overflow:visible}
.bottom-nav .nav-item small{font-size:clamp(8px,2.2vw,10px);white-space:nowrap;letter-spacing:-.015em}
.bottom-nav #promotionNav>span{font-size:24px;color:#ad9340}
.promotion-section{scroll-margin-top:calc(84px + var(--safe-top));padding-bottom:6px}
.promotion-empty{padding:16px 13px;margin:0;border-radius:14px;background:#f2f5e9;color:#536947;font-size:12px;text-align:center;grid-column:1/-1}
@media(max-width:360px){.bottom-nav .nav-item small{font-size:7.5px}}

/* 6.6.9 CLEAN UI: preserve semantic SEO heading for assistive technology, remove marketing copy from mobile layout. */
.local-seo-intro {position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.menu-title small, .app-version {display:none!important}
.sheet-desc:empty,.review-help:empty,.store-status-banner p:empty {display:none!important}
/* Keep payment errors, warnings, order timeline, and promotions visible. */


/* v6.7.0 auto product images + ratings */
.app-product-rating{display:block;min-height:15px;margin-top:3px;font-size:9px;line-height:1.3;color:#7a8772}.app-product-rating.has-rating{color:#567242;font-weight:700}.app-product-rating .menu-rating-star{color:#e1a316}.app-product-rating .menu-rating-empty{opacity:0}.view-reviews-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid rgba(58,94,46,.14);background:linear-gradient(145deg,#eef6e6,#dfeccf);color:#315b2d;border-radius:999px;padding:10px 14px;font-size:11px;font-weight:800;box-shadow:0 10px 22px rgba(59,96,49,.10);margin:2px 0 10px}.view-reviews-btn[hidden]{display:none!important}.product-review-preview[hidden]{display:none!important}.review-mini{background:#fffdf8}.review-mini + .review-mini{margin-top:2px}


/* v6.7.6 product detail review page + built-in ingredient effects */
.reviews-page{position:fixed;inset:0;z-index:150;background:rgba(245,241,232,.98);transform:translateX(110%);transition:transform .28s ease,opacity .28s ease;opacity:0;pointer-events:none;display:flex;flex-direction:column}
.reviews-page.show{transform:translateX(0);opacity:1;pointer-events:auto}
.reviews-page-card{display:flex;flex-direction:column;height:100%;padding:calc(18px + var(--safe-top)) 14px calc(20px + var(--safe-bottom));overflow:auto;background:linear-gradient(180deg,#fbfaf4,#f2eee4)}
.reviews-page-top{display:flex;align-items:center;gap:12px;margin-bottom:14px}.reviews-page-top .visual-back{position:relative;left:auto;top:auto;flex:0 0 auto}.reviews-page-top h2{font-family:var(--serif);font-size:28px;line-height:1.1;margin:2px 0 0;color:#274b25}
.reviews-page-summary{background:linear-gradient(145deg,#eef4e2,#f9f6ec);border:1px solid rgba(57,92,44,.14);border-radius:18px;padding:14px 15px;margin-bottom:12px;box-shadow:0 8px 26px rgba(39,75,37,.07)}
.reviews-summary-main{display:grid;gap:4px}.reviews-summary-main b{font-size:24px;color:#335d2f}.reviews-summary-main span{font-size:11px;color:#64705b}
.reviews-page-list{display:grid;gap:10px;padding-bottom:26px}.review-page-item{background:#fffdf8;border:1px solid rgba(57,92,44,.12);border-radius:16px;padding:13px 14px;box-shadow:0 10px 22px rgba(39,75,37,.05)}.review-page-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.review-page-head b{font-size:12px;color:#e0a11b}.review-page-head span{font-size:9px;color:#6a7561}.review-page-item p{font-size:11px;line-height:1.6;color:#41503d;margin:0 0 6px}.review-page-item small{display:block;font-size:9px;color:#8a927f}.reviews-empty{padding:22px 14px;border:1px dashed rgba(57,92,44,.18);border-radius:18px;text-align:center;font-size:11px;color:#6a7561;background:#fffdf9}
.product-float-img{opacity:.94}.product-float-img:nth-child(2){transform:scale(.9)}.product-float-img:nth-child(3){transform:scale(.82)}
#product3d{filter:drop-shadow(0 24px 30px rgba(39,67,34,.18))}


/* V6.7.6 — opening flash includes real ingredient art; total 3.5s incl fade */
.intro-ingredients{position:absolute;inset:0;overflow:hidden;z-index:2;pointer-events:none}
.intro-ingredient{position:absolute;width:clamp(96px,32vw,225px);height:auto;object-fit:contain;opacity:0;filter:drop-shadow(0 18px 21px rgba(7,23,8,.26));animation:introIngredientIn .9s .18s ease-out both,introIngredientDrift 3.2s 1s ease-in-out infinite alternate;will-change:transform}
.intro-ingredient-a{left:-7%;top:9%;--spin:-16deg;--shift:9px;animation-delay:.12s,1s}
.intro-ingredient-b{right:-10%;top:16%;--spin:12deg;--shift:-9px;animation-delay:.29s,1.22s}
.intro-ingredient-c{left:-12%;bottom:8%;--spin:-11deg;--shift:11px;animation-delay:.42s,1.28s}
.intro-ingredient-d{right:-8%;bottom:7%;--spin:17deg;--shift:-8px;animation-delay:.35s,1.12s}
@keyframes introIngredientIn{from{opacity:0;transform:translateY(30px) scale(.72) rotate(var(--spin))}to{opacity:.95;transform:translateY(0) scale(1) rotate(var(--spin))}}
@keyframes introIngredientDrift{from{transform:translateY(0) rotate(var(--spin))}to{transform:translateY(var(--shift)) rotate(calc(var(--spin) + 5deg))}}
.gonut-intro .intro-logo{z-index:7}
@media(prefers-reduced-motion:reduce){.intro-ingredient{animation:none;opacity:.7;will-change:auto}}

/* v6.7.6: premium prize wheel */
.wheel-card-light{pointer-events:none}
.wheel-stage{filter:drop-shadow(0 20px 25px rgba(66,57,19,.30)) drop-shadow(0 0 22px rgba(241,191,71,.4));isolation:isolate}
.wheel-stage:before{content:"";position:absolute;inset:-9px;border-radius:50%;border:4px solid #edc667;box-shadow:inset 0 0 0 2px #fff3bd,0 0 0 4px rgba(249,225,146,.28),0 0 32px rgba(246,188,66,.42);z-index:1;pointer-events:none}
.wheel-stage:after{content:"";position:absolute;inset:-17px;border-radius:50%;background:repeating-conic-gradient(from -5deg,#fff8d7 0deg 3deg,transparent 3deg 21deg);mask:radial-gradient(circle,transparent 0 94%,#000 94% 100%);-webkit-mask:radial-gradient(circle,transparent 0 94%,#000 94% 100%);filter:drop-shadow(0 0 4px #ffd981);pointer-events:none;animation:rimGlow 2.4s ease-in-out infinite}
.lucky-wheel-disk{border:8px solid #e9ca73!important;box-shadow:inset 0 0 0 5px #fffbe9,inset 0 0 18px rgba(43,63,22,.26),0 0 0 3px #c59a35!important;backface-visibility:hidden;transform:translateZ(0)}
.lucky-wheel-disk:after{background:radial-gradient(circle at 26% 21%,rgba(255,255,255,.60),transparent 37%),radial-gradient(circle at 58% 85%,rgba(35,57,24,.15),transparent 44%);mix-blend-mode:screen}
.wheel-pointer{z-index:20!important;font-size:37px;color:#a77917;text-shadow:0 1px 0 #fff4bd,0 4px 4px rgba(47,44,20,.42);filter:drop-shadow(0 1px 1px #ffdf7b)}
.wheel-hub{z-index:15!important;border:6px solid #e6c461;background:radial-gradient(circle at 28% 21%,#7eab52,#214f2a 80%);box-shadow:inset 0 4px 8px rgba(255,255,255,.32),0 10px 18px rgba(23,48,18,.4),0 0 0 3px rgba(255,245,210,.9)}
.wheel-segment-label b{font-size:21px;filter:drop-shadow(0 2px 1px rgba(0,0,0,.15))}
.wheel-stage.is-spinning .wheel-pointer{animation:pointerTick .10s ease-in-out infinite alternate;transform-origin:50% 10%}
.wheel-win{background:linear-gradient(155deg,#fff9dd,#ecf5d7);border:1px solid #ead08c;box-shadow:0 0 22px rgba(246,202,85,.3)}
.wheel-celebrate{position:absolute;inset:0;z-index:21;pointer-events:none;overflow:hidden}
.wheel-celebrate i{position:absolute;left:50%;top:40%;height:11px;width:7px;background:#ffcb47;box-shadow:1px 1px 2px rgba(0,0,0,.08);animation:wheelPrizeBurst 1600ms cubic-bezier(.16,.7,.36,1) forwards;animation-delay:var(--delay)}
.wheel-celebrate i:nth-child(3n){background:#7aad5b}.wheel-celebrate i:nth-child(4n){background:#fff7d1}.wheel-celebrate i:nth-child(5n){background:#b993dc}
@keyframes wheelPrizeBurst{0%{opacity:0;transform:translate(0,0) rotate(0) scale(.6)}10%{opacity:1}100%{opacity:0;transform:translate(var(--x),var(--y)) rotate(var(--spin)) scale(1)}}
@keyframes pointerTick{from{transform:translateX(-50%) rotate(-5deg)}to{transform:translateX(-50%) rotate(5deg)}}
@keyframes rimGlow{50%{filter:drop-shadow(0 0 9px #f8cb4a);opacity:.75}}
@media(prefers-reduced-motion:reduce){.wheel-stage:after,.wheel-pointer,.wheel-celebrate i{animation:none!important}}

/* V6.7.9 Turnstile consent area */
.wheel-security{display:grid;place-items:center;gap:6px;margin:8px 0 9px;max-width:100%;min-height:45px}.wheel-security #wheelSecurityStatus{font-size:10px;line-height:1.35;color:#3b6a43;text-align:center;margin:0;padding:0 12px}.wheel-security #wheelSecurityStatus.wheel-protection-error{color:#9b4337}.wheel-security iframe{max-width:100%}.wheel-spin-btn:disabled{filter:grayscale(.4);opacity:.65;cursor:not-allowed}

/* v6.7.17: one-device/two-phone visible notice. Never rely on UI for enforcement. */
.wheel-device-notice[hidden],#wheelTurnstile[hidden]{display:none!important}
.wheel-device-notice{margin:10px 0 7px;padding:12px 13px;border-radius:15px;font-size:12px;line-height:1.55;font-weight:700;box-shadow:0 8px 22px rgba(110,80,24,.09)}
.wheel-device-notice.warning{color:#68450e;background:#fff2cb;border:1px solid #e8bc60}
.wheel-device-notice.blocked{color:#922a28;background:#fff0ee;border:1px solid #efaaa5;box-shadow:0 8px 24px rgba(143,45,39,.1)}

/* v6.7.24: area-based delivery price, mobile-first */
.checkout-card .delivery-zone-label select{display:block;width:100%;margin-top:6px;min-height:44px;padding:10px 12px;background:#fffdfa;border:1px solid var(--line);border-radius:13px;color:var(--ink);font:inherit;font-size:12px;outline:none}
.checkout-card .delivery-zone-label small{display:block;margin-top:5px;font-size:9px;color:var(--muted);line-height:1.4}
.checkout-card .delivery-zone-label[hidden]{display:none!important}

/* V6.7.24: two-step delivery area choice, mobile touch friendly */
.delivery-zone-label .zone-subhead{display:block;margin:12px 0 5px;font-size:.88rem;font-weight:650}
.delivery-zone-label #deliveryDistrict,.delivery-zone-label #deliveryZone{display:block;width:100%;min-height:46px}
.delivery-zone-label #deliveryZone:disabled{opacity:.65;cursor:not-allowed}

/* GONUT V6.7.41: unobtrusive mobile shortcut invite, shown after first successful order */
.install-suggestion[hidden]{display:none!important}
.install-suggestion{display:grid;grid-template-columns:30px 1fr auto;gap:8px;align-items:center;margin:12px 4px 4px;border:1px solid #c7dabb;background:#f4f8ee;border-radius:15px;padding:11px 12px;position:relative;text-align:left}
.install-suggestion-icon{font-size:23px}.install-suggestion-copy strong{font-size:11px;color:#2e5a32;display:block;line-height:1.45}.install-suggestion-copy small{display:block;color:#566d55;font-size:10px;line-height:1.55;margin-top:3px}
.install-suggestion-action{background:#376c35;color:#fff;border:0;border-radius:11px;padding:9px 11px;font-size:10px;font-weight:700;max-width:95px}
.install-suggestion-dismiss{position:absolute;top:-8px;right:-6px;border:1px solid #c2d3bb;border-radius:50%;height:22px;width:22px;background:#fff;color:#446047;font-size:17px;line-height:18px}
.shipping-estimate-note{font-size:11px;color:#537050;margin:9px 3px 0;line-height:1.5}
@media(max-width:390px){.install-suggestion{grid-template-columns:27px 1fr}.install-suggestion-action{grid-column:2;max-width:none;width:max-content}}

/* V6.7.41: emergency exit if an ES module is blocked, times out or is cached badly. */
.gonut-startup-recovery{position:relative;z-index:60;margin:16px auto;padding:16px;max-width:min(92vw,440px);border:1px solid #d2b981;border-radius:18px;background:#fff7e4;color:#493818;box-shadow:0 14px 34px #261e101f;font-size:14px;line-height:1.55}
.gonut-startup-recovery strong{display:block;font-weight:800;font-size:16px}
.gonut-startup-recovery p{margin:8px 0 12px;color:#594b36}
.gonut-startup-recovery button{border:0;border-radius:12px;background:#315a30;color:#fff;padding:11px 15px;font-weight:700;min-height:44px}
/* Independent CSS fallback also makes the splash nonblocking when JavaScript fails altogether. */
@keyframes gonutSplashEmergencyRelease{0%,95%{visibility:visible}100%{visibility:hidden;pointer-events:none}}
.gonut-intro:not(.leave){animation:gonutSplashEmergencyRelease 8s steps(1,end) forwards}

/* V6.7.41: tách hành động in phiếu khỏi nút về trang chủ. */
.order-review-actions .btn + .btn{margin-top:9px}

.store-hours-hint{margin:-3px 16px 13px;color:#567153;text-align:center;font-size:11px;letter-spacing:.01em;line-height:1.55}.store-hours-hint[hidden]{display:none}

/* Weekly POS sale calendar: clearly distinguish upcoming products without hiding their next day. */
.product-app[disabled]{cursor:not-allowed;opacity:.61;filter:grayscale(.28)}
.product-app[disabled] .app-icon-tile{box-shadow:inset 0 0 0 1px #d9e1d9,0 3px 10px #24442a10}
.product-app[disabled] .app-product-price{color:#8e6032!important;background:#fff6e7;border-radius:8px;padding:4px 6px;min-height:23px}

/* V6.7.41 – POS-managed day-specific menu; mobile-first and accessible. */
.menu-day-section[hidden],#futureMenuContent[hidden]{display:none!important}
.menu-day-section{margin:2px 8px 22px;min-width:0}
.menu-day-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 0 10px}
.menu-day-head h2{font-size:clamp(16px,4.6vw,22px);line-height:1.2;font-weight:800;color:#233d30;margin:0;letter-spacing:-.025em}
.menu-day-head p{font-size:10px;color:#82907e;margin:3px 0 0}
.menu-day-status{white-space:nowrap;flex:none;color:#226847;background:#e7f4e9;border-radius:999px;padding:6px 9px;font-size:9px;font-weight:700}
.menu-day-section>.product-grid{padding-top:7px!important}
.menu-future{border:1px solid #eedfd2;border-radius:18px;background:linear-gradient(135deg,rgba(255,246,242,.92),rgba(251,250,243,.98));padding:12px 10px 2px;margin-top:8px}
.menu-future-toggle{appearance:none;border:0;background:transparent;width:100%;display:flex;align-items:center;justify-content:space-between;gap:9px;text-align:left;padding:1px 0 10px;color:#374337;cursor:pointer;font:inherit}
.menu-future-heading{display:flex;align-items:center;gap:9px;min-width:0}
.menu-future-icon{width:32px;height:32px;display:grid;place-items:center;color:#bc7565;font-size:21px;background:#f9e9df;border-radius:10px;flex:none}
.menu-future-heading b{display:block;font-size:clamp(13px,3.6vw,18px);line-height:1.3;font-weight:800}
.menu-future-heading small{display:block;font-size:9px;color:#8b8177;margin-top:2px}
.menu-future-action{display:flex;align-items:center;gap:5px;padding:7px 8px;border-radius:11px;background:#ebf0e9;flex:none;white-space:nowrap;font-size:10px;font-weight:700;color:#2d644b}
.menu-future-action>span:last-child{font-size:16px;line-height:1}
.menu-future-toggle:focus-visible{outline:3px solid #5e9c7a;outline-offset:3px;border-radius:8px}
.product-app.off-day-product{opacity:1!important;filter:none!important;color:#526158}
.product-app.off-day-product .app-icon-tile{filter:grayscale(.55) saturate(.65);box-shadow:inset 0 0 0 1px #dce2d8,0 4px 15px #233b2813!important}
.product-offday-ribbon{position:absolute;z-index:6;left:3px;top:3px;color:#fff;background:#69746a;opacity:.95;border-radius:8px;padding:4px 5px;font-size:8px;line-height:1;white-space:nowrap}
.product-offday-note{font-size:10px;font-weight:800;color:#795a46;background:#f8ece3;border-radius:7px;padding:5px 6px;margin-top:4px;line-height:1.25}
.product-offday-days{font-size:9px;color:#83766e;line-height:1.35;margin-top:4px}
.product-available-cta{font-size:10px;font-weight:800;background:#226e4e;color:white;border-radius:10px;padding:7px 4px;text-align:center;margin-top:7px;width:100%}
.product-grid-future{margin-top:2px!important}
.menu-day-section .product-app{min-width:0}
@media(min-width:800px){.menu-day-section{margin-left:auto;margin-right:auto;max-width:960px}.menu-future{padding:17px 17px 4px}.menu-day-head{margin-top:14px}}
@media(prefers-reduced-motion:reduce){.menu-day-section .product-app,.menu-day-section .app-icon-tile{transition:none!important}}
