{
  "version": 3,
  "sources": ["/cdn/shop/t/43/assets/sz_minicart.js?cb=1790306058401"],
  "sourcesContent": ["/* AI Agent l\u00E0m theo ch\u1EC9 th\u1ECB c\u1EE7a anh Ho\u00E1 \u2014 2026-09-15 01:50 VN \u2014 WEB-20260915-suzitee-minicart-r2\n   \u0110\u00E3 l\u00E0m (r2, thay h\u1EB3n b\u1EA3n r1):\n     1. RU\u1ED8T drawer KH\u00D4NG c\u00F2n do JS t\u1EF1 d\u1EF1ng. JS n\u1EA1p HTML c\u1EE7a section 'sz-minicart' (Section Rendering API)\n        -> markup y h\u1EC7t trang /cart (c\u00F9ng snippet sz-cart-line / sz-cart-foot / countdown).\n     2. T\u1ED0C \u0110\u1ED8 (l\u1EC7nh 01:27): n\u1EA1p s\u1EB5n HTML section ngay khi t\u1EA3i trang (n\u1EBFu gi\u1ECF c\u00F3 h\u00E0ng) + cache sessionStorage\n        -> b\u1EA5m MY CART/icon gi\u1ECF l\u00E0 V\u1EBC NGAY t\u1EEB cache, refresh ng\u1EA7m sau. \u0110o b\u1EB1ng performance.now,\n        \u0111\u1ECDc \u0111\u01B0\u1EE3c \u1EDF window.__szmc.metrics (openMs/closeMs).\n     3. N\u00FAt MY CART \u1EA8N khi gi\u1ECF r\u1ED7ng (\u0111\u00FAng h\u00E0nh vi Almagems \u0111o \u0111\u01B0\u1EE3c: .floating-my-cart display:none khi count=0).\n     4. Gi\u1EEF nguy\u00EAn h\u00E0nh vi r1: ATC -> drawer t\u1EF1 m\u1EDF; icon gi\u1ECF \u1EDF header m\u1EDF drawer (kh\u00F4ng \u0111i\u1EC1u h\u01B0\u1EDBng);\n        X \u0111\u00F3ng t\u1EE9c th\u00EC (kh\u00F4ng reload, gi\u1EEF v\u1ECB tr\u00ED cu\u1ED9n); m\u1EDF l\u1EA1i v\u1EBD ngay t\u1EEB cache.\n     5. Trang /cart V\u1EAAN CH\u1EA0Y B\u00CCNH TH\u01AF\u1EDCNG (l\u1EC7nh 01:27): kh\u00F4ng xo\u00E1/kh\u00F4ng ch\u1EB7n/kh\u00F4ng chuy\u1EC3n h\u01B0\u1EDBng; g\u00F5 th\u1EB3ng\n        /cart v\u1EABn ra trang gi\u1ECF \u0111\u1EA7y \u0111\u1EE7. Ch\u1EC9 c\u00E1c L\u1ED0I V\u00C0O (ATC, icon gi\u1ECF, n\u00FAt MY CART) l\u00E0 m\u1EDF drawer. */\n(function () {\n  'use strict';\n  if (window.__szmc) return;\n  var SECTION = 'sz-minicart';\n  var CACHE_HTML = 'szmc:html:v2', CACHE_CART = 'szmc:cart:v2';\n  var state = { open: false, built: false, count: null, scrollY: 0, bodyInline: null, busy: false };\n  var el = {}, RING_C = 0, metrics = { openMs: null, closeMs: null, fromCache: null };\n\n  function ss(k, v) {\n    try { if (v === undefined) return sessionStorage.getItem(k); sessionStorage.setItem(k, v); } catch (e) { return null; }\n  }\n  function isCartPage() { try { return /^\\/cart(\\/|$|\\?)/.test(location.pathname + location.search); } catch (e) { return false; } }\n\n  /* ================= r4 (2026-09-15 VN) \u2014 WEB-20260915-suzitee-minicart-r4 =================\n     AI Agent lam theo chi thi cua anh Hoa.\n     P0 \u2014 NGUON THAT cua viec nhay sang /cart sau khi bam ADD TO CART trong modal Customily:\n       1. config/settings_data.json co \"cart_action\": \"redirect_cart\" -> theme KHONG co handler ajax\n          cho .ajax-submit (dem duoc: 0 lan xuat hien trong HTML trang) => form ATC la POST thuong.\n       2. Customily (cdn.customily.com/shopify/static/customily.shopify.script.unified.js) BOC\n          window.fetch va XMLHttpRequest. Trong lop boc do:\n              const o = yield Object(x.a)(t.properties||{});   // Customily tu add bang API cua no\n              ... ; o && Object(d.C)()                          // <-- DONG DIEU HUONG\n          voi  d.C = () => { window.location.href = n.a.CART_ROUTE }  va  CART_ROUTE: \"/cart\".\n          => Khi drawer goi fetch('/cart/add.js'), request DI QUA lop boc cua Customily, Customily\n             tu them hang roi CHAY DUNG DONG TREN -> trinh duyet nhay sang /cart.\n       3. Loi thoat CHINH THUC nam ngay trong code Customily:\n              K = e => !!window.engraver && (!(e.length>4096) && (e.indexOf(\"data:\")<0)\n                       && (!e.includes(\"customily_upsell_atc\")) && (...))\n          body co chuoi \"customily_upsell_atc\" -> Customily BO QUA request (khong add, khong dieu huong).\n     r4 va 3 lop:\n       (a) moi request /cart/* cua drawer di bang fetch NGUYEN BAN lay tu iframe cung origin\n           -> lop boc cua Customily khong bao gio nhin thay -> dong dieu huong khong chay;\n       (b) body add kem customily_upsell_atc=1 (dung co Customily tu dung cho upsell cua no);\n       (c) luoi an toan cuoi: neu van lot sang /cart thi quay lai dung trang cu va bat drawer. */\n  var PF = null;                                            // fetch nguyen ban (chua bi app nao boc)\n  function pfetch(url, opt) {\n    if (PF === null) {\n      PF = false;\n      try {\n        var fr = document.createElement('iframe');\n        fr.setAttribute('aria-hidden', 'true');\n        fr.style.cssText = 'position:absolute;width:0;height:0;border:0;opacity:0;pointer-events:none';\n        fr.src = 'about:blank';\n        (document.body || document.documentElement).appendChild(fr);\n        if (fr.contentWindow && fr.contentWindow.fetch) PF = fr.contentWindow.fetch.bind(fr.contentWindow);\n      } catch (e) { PF = false; }\n    }\n    window.__szmcSelf = Date.now();\n    var f = PF || window.fetch;\n    try { return f(url, opt); } catch (e) { return window.fetch(url, opt); }\n  }\n  /* r5 (2026-09-15 ~04:2x VN) \u2014 AI Agent l\u00E0m theo ch\u1EC9 th\u1ECB c\u1EE7a anh Ho\u00E1.\n     \u0110\u00E3 l\u00E0m: d\u00F9ng \u0110\u00DANG c\u1EEDa ch\u00EDnh th\u1EE9c c\u1EE7a Customily \u0111\u1EC3 n\u00F3 \u0111\u1EEBng ch\u1ED9p request gi\u1ECF c\u1EE7a drawer.\n     \u0110\u1ECDc \u0111\u01B0\u1EE3c trong customily.shopify.script.unified.js (l\u1EDBp b\u1ECDc fetch c\u1EE7a h\u1ECD):\n       if (window.customilyShopify?.requestSkipping?.(url, opt)) { \u2026b\u1ECF qua, ch\u1EA1y fetch g\u1ED1c\u2026 }\n     Tr\u1EA3 true cho /cart/* => Customily KH\u00D4NG x\u1EED l\u00FD, KH\u00D4NG ch\u1EA1y d\u00F2ng \u0111i\u1EC1u h\u01B0\u1EDBng sang /cart. */\n  try {\n    window.customilyShopify = window.customilyShopify || {};\n    if (!window.customilyShopify.requestSkipping) {\n      window.customilyShopify.requestSkipping = function (url) {\n        try { return /\\/cart\\/(add|change|update|clear)/.test(String(url || '')); } catch (e) { return false; }\n      };\n    }\n  } catch (e) {}\n\n  /* r5: theme goi Shopify.formatMoney o trang /cart (app.js, jquery.cart.min.js\u2026) nhung KHONG\n     dinh kem thu vien -> loi \"Shopify.formatMoney is not a function\" (co san tren CA theme LIVE).\n     V\u00E1 nh\u1EB9: ch\u1EC9 \u0111\u1ECBnh ngh\u0129a khi CHUA co, format theo Shopify.money_format cua shop. */\n  try {\n    window.Shopify = window.Shopify || {};\n    if (typeof window.Shopify.formatMoney !== 'function') {\n      window.Shopify.formatMoney = function (cents, fmt) {\n        try {\n          if (typeof cents === 'string') cents = cents.replace('.', '');\n          var v = Number(cents) || 0,\n              f = fmt || window.Shopify.money_format || '${{amount}}',\n              n = (v / 100).toFixed(2),\n              parts = n.split('.'),\n              intp = parts[0].replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, '$1,');\n          return f.replace(/\\{\\{\\s*(amount|amount_no_decimals|amount_with_comma_separator|amount_no_decimals_with_comma_separator)\\s*\\}\\}/g, function (m, k) {\n            if (k === 'amount_no_decimals') return intp;\n            if (k === 'amount_with_comma_separator') return intp.replace(/,/g, '.') + ',' + parts[1];\n            if (k === 'amount_no_decimals_with_comma_separator') return intp.replace(/,/g, '.');\n            return intp + '.' + parts[1];\n          });\n        } catch (e) { return '$' + ((Number(cents) || 0) / 100).toFixed(2); }\n      };\n    }\n  } catch (e) {}\n\n  var lastExtAdd = 0;                                        // lan app ngoai (Customily) add gan nhat\n  function markBack() {                                      // nho trang de quay ve neu bi day sang /cart\n    try { if (!isCartPage()) { ss('szmc:back', location.href); ss('szmc:backAt', String(Date.now())); } } catch (e) {}\n  }\n\n  var ICON = {\n    cart: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#51aa68\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"9\" cy=\"21\" r=\"1\"></circle><circle cx=\"20\" cy=\"21\" r=\"1\"></circle><path d=\"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\"></path></svg>',\n    /* r4d (ch\u1EC9 th\u1ECB 03:5x VN): b\u1ECF c\u00E1i \u0111u\u00F4i th\u1EB3ng, ch\u1EC9 c\u00F2n CHEVRON \u0110\u1EACM (n\u00E9t 3.4) \u2014 v\u00F2ng ti\u1EBFn \u0111\u1ED9\n       ch\u1EC9 l\u00E0 m\u1ED9t cung m\u1ECFng (xem .szmc-top__track/__bar trong CSS), gi\u1ED1ng Almagems h\u01A1n. */\n    up: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#ea7134\" stroke-width=\"3.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"5 15.5 12 8.5 19 15.5\"></polyline></svg>'\n  };\n\n  /* ---------- d\u1EF1ng khung ---------- */\n  function build() {\n    if (state.built) return;\n    var cart = document.createElement('button');\n    cart.type = 'button'; cart.className = 'szmc-cart'; cart.setAttribute('aria-label', 'Open cart');\n    cart.innerHTML =\n      '<span class=\"szmc-cart__circle\">' + ICON.cart + '</span>' +\n      '<span class=\"szmc-cart__badge\">0</span>' +\n      '<span class=\"szmc-cart__label\">MY CART</span>';\n    cart.hidden = true;                                   // m\u1EB7c \u0111\u1ECBnh \u1EA9n, ch\u1EC9 hi\u1EC7n khi count>0\n\n    var top = document.createElement('button');\n    top.type = 'button'; top.className = 'szmc-top'; top.setAttribute('aria-label', 'Back to top');\n    top.innerHTML =\n      '<svg class=\"szmc-top__ring\" viewBox=\"0 0 40 40\" aria-hidden=\"true\">' +\n        '<circle class=\"szmc-top__track\" cx=\"20\" cy=\"20\" r=\"18.5\"></circle>' +\n        '<circle class=\"szmc-top__bar\" cx=\"20\" cy=\"20\" r=\"18.5\"></circle></svg>' +\n      '<span class=\"szmc-top__core\">' + ICON.up + '</span>';\n\n    var ov = document.createElement('div'); ov.className = 'szmc-ov';\n    var dw = document.createElement('div');\n    dw.className = 'szmc-dw'; dw.setAttribute('role', 'dialog'); dw.setAttribute('aria-modal', 'true');\n\n    /* r2b (l\u1ED7i 1+2 anh b\u00E1o 01:54): d\u00F9ng \u0110\u00DANG 2 modal c\u1EE7a trang /cart \u2014 modal Preview c\u00F3 n\u00FAt\n       PROCEED TO CHECKOUT, v\u00E0 modal h\u1ECFi l\u1EA1i tr\u01B0\u1EDBc khi xo\u00E1 h\u00E0ng c\u00E1 nh\u00E2n ho\u00E1. Markup ch\u00E9p nguy\u00EAn v\u0103n\n       t\u1EEB sections/cart-template.liquid (kh\u1ED1i $('#cart_form').append / $('body').append). */\n    var prev = document.createElement('div');\n    prev.id = 'szmcModals';\n    prev.innerHTML =\n      /* r4 (loi 2 anh bao 02:46 \u2014 HOI QUY nut Xoa tren trang /cart): markup r3 dung LAI NGUYEN id\n         cua trang /cart (#eb-cus-preview-modal, #cart-remove-confirm, #eb-cus-preview-img-modal-confirm-remove).\n         cart-template.liquid gan modal cua no bang $('body').append(...) SAU khi drawer da gan cua minh,\n         nen $('#cart-remove-confirm') cua theme trung PHAI modal cua drawer (nam trong #szmcModals,\n         mac dinh display:none) -> bam thung rac tren /cart khong thay gi. r4 doi het sang id rieng szmc-*. */\n      '<div id=\"szmc-preview-modal\" class=\"eb-cus-preview-modal szmc-preview is-hidden\">' +\n        '<div class=\"eb-cus-preview-modal-wrapper\">' +\n          '<h5 style=\"font-size: 30px;margin: 20px 10px 10px;\">Preview</h5>' +\n          '<span class=\"eb-cus-close\">&times;</span>' +\n          '<img loading=\"lazy\" class=\"eb-cus-preview-modal-content\" id=\"szmc-prev-img\" height=\"800\" width=\"800\" src=\"\">' +\n          '<div class=\"eb-action-personalization\">' +\n            '<button type=\"button\" class=\"add_to_cart eb-checkout-btn\" name=\"checkout\"><span>PROCEED TO CHECKOUT</span></button>' +\n          '</div>' +\n        '</div>' +\n      '</div>' +\n      '<div id=\"szmc-remove-confirm\" class=\"eb-cus-preview-modal eb-modal-confirm-remove-wrapper szmc-confirm is-hidden\">' +\n        '<div class=\"eb-cus-preview-modal-wrapper\">' +\n          '<div class=\"eb-overlay-modal-confirm-remove\"></div>' +\n          '<p class=\"eb-title-modal-confirm\">Are you sure to remove this item?</p>' +\n          '<img loading=\"lazy\" class=\"eb-cus-preview-modal-content\" id=\"szmc-prev-img-remove\" height=\"800\" width=\"800\" src=\"\">' +\n          '<div class=\"eb-action-modal-confirm-footer\">' +\n            '<a class=\"btn eb-handle-remove-modal-confirm remove-btn\" index=\"1\" href=\"#\">Remove</a>' +\n            '<button class=\"btn eb-handle-cancel-modal-confirm-remove\">Cancel</button>' +\n          '</div>' +\n        '</div>' +\n      '</div>';\n\n    document.body.appendChild(cart); document.body.appendChild(top);\n    document.body.appendChild(ov); document.body.appendChild(dw); document.body.appendChild(prev);\n    el.cart = cart; el.badge = cart.querySelector('.szmc-cart__badge'); el.top = top;\n    el.ring = top.querySelector('.szmc-top__bar'); el.ov = ov; el.dw = dw; el.prev = prev;\n    try { RING_C = 2 * Math.PI * 18.5; el.ring.style.strokeDasharray = RING_C.toFixed(1); el.ring.style.strokeDashoffset = RING_C.toFixed(1); } catch (e) {}\n    if (isCartPage()) cart.style.display = 'none';        // \u0111ang \u1EDF ch\u00EDnh trang gi\u1ECF th\u00EC kh\u00F4ng c\u1EA7n n\u00FAt\n    state.built = true;\n\n    var cached = ss(CACHE_HTML);\n    if (cached) dw.innerHTML = cached;\n    wire();\n  }\n\n  /* ---------- n\u1EA1p HTML section (ngu\u1ED3n duy nh\u1EA5t c\u1EE7a ru\u1ED9t drawer) ---------- */\n  function fetchSectionHTML(cb) {\n    try {\n      pfetch('/?section_id=' + SECTION, { credentials: 'same-origin' })\n        .then(function (r) { return r.text(); })\n        .then(function (html) {\n          // Section Rendering API tr\u1EA3 v\u1EC1 \u0111\u00FAng n\u1ED9i dung section (c\u00F3 th\u1EC3 b\u1ECDc div#shopify-section-\u2026)\n          var tmp = document.createElement('div'); tmp.innerHTML = html;\n          var inner = tmp.querySelector('#shopify-section-' + SECTION) || tmp.querySelector('[id^=\"shopify-section\"]');\n          var out = (inner ? inner.innerHTML : html);\n          ss(CACHE_HTML, out);\n          if (cb) cb(out);\n        })\n        .catch(function () { if (cb) cb(null); });\n    } catch (e) { if (cb) cb(null); }\n  }\n  function fetchSection(cb) {\n    fetchSectionHTML(function (out) {\n      if (out && el.dw) { el.dw.innerHTML = out; syncFromDom(); }\n      if (cb) cb(out);\n    });\n  }\n\n  function syncFromDom() {\n    try {\n      var box = el.dw.querySelector('.szmc-dw__body');\n      var n = box ? parseInt(box.getAttribute('data-szmc-count') || '0', 10) : 0;\n      setCount(n);\n      tickTimer();\n    } catch (e) {}\n  }\n  /* AI Agent l\u00E0m theo ch\u1EC9 th\u1ECB c\u1EE7a anh Ho\u00E1 \u2014 2026-09-15 18:05 VN \u2014 WEB-20260915-suzitee-header-count-sync\n     \u0110\u00E3 l\u00E0m: th\u00EAm szmcPaintHeader(n) s\u01A1n l\u1EA1i badge gi\u1ECF tr\u00EAn HEADER (.cart_count = s\u1ED1 \u1EDF icon gi\u1ECF\n     g\u00F3c ph\u1EA3i desktop, .cart_count-mobile-number = badge mask-SVG tr\u00EAn mobile) v\u00E0 g\u1ECDi n\u00F3 \u1EDF ngay\n     \u0111\u1EA7u setCount(). TR\u01AF\u1EDAC: setCount ch\u1EC9 s\u01A1n .szmc-cart__badge (bong b\u00F3ng MY CART), n\u00EAn \u0111\u1ED5i s\u1ED1\n     l\u01B0\u1EE3ng trong mini-cart r\u1ED3i b\u1EA5m X \u0111\u00F3ng th\u00EC s\u1ED1 tr\u00EAn icon gi\u1ECF g\u00F3c ph\u1EA3i v\u1EABn l\u00E0 s\u1ED1 C\u0168, ch\u1EC9 \u0111\u00FAng sau\n     khi t\u1EA3i l\u1EA1i trang (anh Ho\u00E1 b\u00E1o 17:53 VN). SAU: m\u1ECDi \u0111\u01B0\u1EDDng g\u1ECDi setCount (patchTotals sau\n     /cart/change.js, syncFromDom sau khi n\u1EA1p section, v\u00E0 c\u00FA /cart.js l\u00FAc init) \u0111\u1EC1u \u0111\u1ED3ng b\u1ED9 lu\u00F4n\n     header \u21D2 kh\u00F4ng c\u1EA7n reload. \u0110\u1EB7t TR\u01AF\u1EDAC `if (!el.badge) return;` \u0111\u1EC3 header v\u1EABn \u0111\u00FAng ngay c\u1EA3 khi\n     bong b\u00F3ng ch\u01B0a d\u1EF1ng xong. KH\u00D4NG \u0111\u1EE5ng el.cart.hidden / cart.style.display \u21D2 bong b\u00F3ng MY CART\n     v\u1EABn \u1EA9n tr\u00EAn /cart \u0111\u00FAng nh\u01B0 anh Ho\u00E1 duy\u1EC7t 17:08-17:09, v\u00E0 kh\u1ED1i qty-inert mobile gi\u1EEF nguy\u00EAn. */\n  /* AI Agent l\u00E0m theo ch\u1EC9 th\u1ECB c\u1EE7a anh Ho\u00E1 \u2014 2026-09-15 18:30 VN \u2014 WEB-20260915-suzitee-cart-title-count\n     \u0110\u00E3 l\u00E0m: th\u00EAm szmcPaintCartTitle(n) s\u01A1n l\u1EA1i d\u00F2ng ti\u00EAu \u0111\u1EC1 \"N items in your cart:\" c\u1EE7a trang /cart\n     (th\u1EBB h1 trong sections/cart-template.liquid, kh\u00F4ng c\u00F3 class/id n\u00EAn nh\u1EADn di\u1EC7n b\u1EB1ng ch\u00EDnh c\u00E2u ch\u1EEF)\n     v\u00E0 g\u1ECDi n\u00F3 t\u1EEB szmcPaintHeader \u2014 t\u1EE9c l\u00E0 C\u00D9NG M\u1ED8T painter v\u1EDBi badge header, kh\u00F4ng t\u1EA1o painter th\u1EE9 2.\n     TR\u01AF\u1EDAC: Liquid render con s\u1ED1 1 l\u1EA7n l\u00FAc t\u1EA3i trang; b\u1EA5m +/- tr\u00EAn /cart ch\u1EC9 c\u1EADp nh\u1EADt Subtotal + badge\n     n\u00EAn d\u00F2ng n\u00E0y \u0111\u1EE9ng im (gi\u1ECF 3 v\u1EABn ghi \"2 items in your cart:\") cho t\u1EDBi khi F5 \u2014 l\u1ED7i C\u00D3 S\u1EB4N c\u1EE7a theme,\n     \u0111\u00E3 \u0111\u1ED1i ch\u1EE9ng tr\u00EAn b\u1EA3n live ch\u01B0a v\u00E1. SAU: m\u1ECDi \u0111\u01B0\u1EDDng s\u01A1n s\u1ED1 (setCount t\u1EEB drawer, totals() c\u1EE7a trang\n     /cart, add-to-cart) \u0111\u1EC1u c\u1EADp nh\u1EADt lu\u00F4n d\u00F2ng n\u00E0y \u21D2 kh\u00F4ng bao gi\u1EDD l\u1EC7ch v\u1EDBi badge/dock/subtotal.\n     Ngu\u1ED3n s\u1ED1: cart.item_count t\u1EEB /cart.js ho\u1EB7c /cart/change.js (T\u1ED4NG s\u1ED1 m\u00F3n, kh\u00F4ng ph\u1EA3i s\u1ED1 d\u00F2ng).\n     Gi\u1EEF nguy\u00EAn markup: ch\u1EC9 thay \u0111\u00FAng con s\u1ED1 v\u00E0 ch\u1EEF item/items trong innerHTML (s\u1ED1 \u00EDt \"1 item\",\n     s\u1ED1 nhi\u1EC1u \"N items\", gi\u1ECF r\u1ED7ng \"0 item in your cart:\" \u2014 \u0111\u00FAng y nh\u01B0 Liquid render). */\n  function szmcPaintCartTitle(n) {\n    try {\n      if (!isCartPage()) return;\n      var sec = document.getElementById('shopify-section-cart-template') || document;\n      var hs = sec.querySelectorAll('h1');\n      for (var i = 0; i < hs.length; i++) {\n        var h = hs[i], html = h.innerHTML;\n        if (!/items?\\s+in\\s+your\\s+cart/i.test(html)) continue;\n        if (!/\\d/.test(html)) continue;\n        var s = String(n > 0 ? n : 0);\n        var next = html\n          .replace(/\\d+/, s)\n          .replace(/\\bitems\\b(?=[\\s\\S]{0,40}?in\\s+your\\s+cart)/i, n > 1 ? 'items' : 'item')\n          .replace(/\\bitem\\b(?=[\\s\\S]{0,40}?in\\s+your\\s+cart)/i, n > 1 ? 'items' : 'item');\n        if (next !== html) h.innerHTML = next;\n        break;\n      }\n    } catch (e) {}\n  }\n  function szmcPaintHeader(n) {\n    try {\n      var s = String(n > 0 ? n : 0);\n      [].forEach.call(document.querySelectorAll('.cart_count'), function (x) { x.textContent = s; });\n      [].forEach.call(document.querySelectorAll('.cart_count-mobile-number'), function (x) { x.textContent = s; });\n      szmcPaintCartTitle(n > 0 ? n : 0);\n    } catch (e) {}\n  }\n  function setCount(n) {\n    state.count = n;\n    szmcPaintHeader(n);\n    if (!el.badge) return;\n    el.badge.textContent = n;\n    el.cart.hidden = !(n > 0);                              // GI\u1ECE R\u1ED6NG -> \u1EA8N N\u00DAT (gi\u1ED1ng Almagems)\n  }\n\n  /* ---------- \u0111\u1ED3ng h\u1ED3 gi\u1EEF gi\u1ECF trong drawer (HTML n\u1EA1p \u0111\u1ED9ng n\u00EAn DOMContentLoaded kh\u00F4ng ch\u1EA1y) ---------- */\n  var timerIv = null;\n  function tickTimer() {\n    if (timerIv) { clearInterval(timerIv); timerIv = null; }\n    var sp = el.dw.querySelectorAll('.countdown_time');\n    if (sp.length < 3) return;\n    var count = 10 * 60;\n    timerIv = setInterval(function () {\n      if (!state.open) return;\n      if (count <= 0) { count = 10 * 60; return; }\n      count -= 1;\n      var m = Math.floor(count / 60);\n      sp[0].innerText = String(m).padStart(2, '0');\n      sp[2].innerText = String(count - m * 60).padStart(2, '0');\n    }, 1000);\n  }\n\n  /* ---------- m\u1EDF / \u0111\u00F3ng ---------- */\n  function open(src) {\n    var t0 = (window.performance && performance.now) ? performance.now() : 0;\n    build();\n    metrics.fromCache = !!ss(CACHE_HTML);\n    if (!el.dw.innerHTML) { /* ch\u01B0a c\u00F3 cache -> v\u1EBD khung r\u1ED7ng r\u1ED3i n\u1EA1p */ el.dw.innerHTML = '<div class=\"szmc-dw__head\"><h2 class=\"szmc-dw__title\">Shopping Cart</h2><button type=\"button\" class=\"szmc-dw__close\" aria-label=\"Close\">&times;</button></div><div class=\"szmc-dw__body\"></div>'; }\n    state.scrollY = window.pageYOffset || document.documentElement.scrollTop || 0;\n    state.bodyInline = document.body.getAttribute('style');\n    state.htmlInline = document.documentElement.getAttribute('style');\n    document.documentElement.classList.add('szmc-open');\n    // AI Agent l\u00E0m theo ch\u1EC9 th\u1ECB c\u1EE7a anh Ho\u00E1 \u2014 2026-09-15 12:40 VN \u2014 WEB-20260915-suzitee-minicart-feedback-1229\n    // \u0110\u00E3 l\u00E0m (item 4): kho\u00E1 cu\u1ED9n C\u1EE8NG 2 chi\u1EC1u ki\u1EC3u Almagems. Tr\u01B0\u1EDBc ch\u1EC9 set body.overflow:hidden \u2014\n    // iOS Safari v\u1EABn cu\u1ED9n n\u1EC1n + di ngang. Nay: (a) MOBILE set overflow:hidden tr\u00EAn C\u1EA2 <html> l\u1EABn <body>;\n    // (b) tr\u00ECnh ch\u1EB7n touchmove \u1EDF d\u01B0\u1EDBi preventDefault m\u1ECDi c\u00FA k\u00E9o ngo\u00E0i v\u00F9ng cu\u1ED9n h\u1EE3p l\u1EC7 -> kho\u00E1 th\u1EADt s\u1EF1\n    // tr\u00EAn iOS Safari c\u1EA3 D\u1ECCC l\u1EABn NGANG (\u0111\u00E2y m\u1EDBi l\u00E0 c\u01A1 ch\u1EBF ch\u1EB7n iOS \u0111\u00E1ng tin \u2014 position:fixed g\u00E2y nh\u1EA3y\n    // trang + kh\u00F4ng c\u1EA7n khi \u0111\u00E3 ch\u1EB7n touchmove). desktop ch\u1EC9 c\u1EA7n overflow:hidden.\n    state.scrollY = window.pageYOffset || document.documentElement.scrollTop || 0;\n    document.body.style.overflow = 'hidden';\n    if (window.matchMedia && window.matchMedia('(max-width:798px)').matches) {\n      document.documentElement.style.overflow = 'hidden';\n      document.body.style.overscrollBehavior = 'none';\n    }\n    state.open = true;\n    // \u0111o l\u00FAc drawer th\u1EADt s\u1EF1 nh\u00ECn th\u1EA5y (sau frame v\u1EBD)\n    requestAnimationFrame(function () {\n      requestAnimationFrame(function () {\n        metrics.openMs = ((window.performance && performance.now) ? performance.now() : 0) - t0;\n        try { document.dispatchEvent(new CustomEvent('szmc:open', { detail: { ms: metrics.openMs, src: src } })); } catch (e) {}\n      });\n    });\n    tickTimer();\n    fetchSection();                                        // refresh ng\u1EA7m, kh\u00F4ng ch\u1EB7n khung nh\u00ECn\n  }\n  function close() {\n    var t0 = (window.performance && performance.now) ? performance.now() : 0;\n    document.documentElement.classList.remove('szmc-open');\n    if (state.bodyInline == null) document.body.removeAttribute('style'); else document.body.setAttribute('style', state.bodyInline);\n    // feedback-1229 item 4: kh\u00F4i ph\u1EE5c lu\u00F4n style g\u1ED1c c\u1EE7a <html> (\u0111\u00E3 set overflow:hidden khi m\u1EDF tr\u00EAn mobile)\n    if (state.htmlInline == null) document.documentElement.removeAttribute('style'); else document.documentElement.setAttribute('style', state.htmlInline);\n    state.open = false;\n    try { window.scrollTo(0, state.scrollY); } catch (e) {}\n    requestAnimationFrame(function () { metrics.closeMs = ((window.performance && performance.now) ? performance.now() : 0) - t0; });\n  }\n\n  /* ---------- \u0111\u1ED5i s\u1ED1 l\u01B0\u1EE3ng / xo\u00E1 ----------\n     r2b (l\u1ED7i 4 anh b\u00E1o 01:54): KH\u00D4NG l\u00E0m m\u1EDD c\u1EA3 drawer n\u1EEFa. C\u1EADp nh\u1EADt L\u1EA0C QUAN: s\u1ED1 l\u01B0\u1EE3ng + Subtotal\n     \u0111\u1ED5i ngay t\u1EA1i ch\u1ED7, ch\u1EC9 kho\u00E1 nh\u1EB9 \u0111\u00FAng \u00F4 s\u1ED1 l\u01B0\u1EE3ng; sau khi server tr\u1EA3 l\u1EDDi th\u00EC v\u00E1 L\u1EA0I \u0110\u00DANG D\u00D2NG \u0111\u00F3\n     (v\u00E0 Subtotal/ti\u00EAu \u0111\u1EC1/badge), kh\u00F4ng v\u1EBD l\u1EA1i to\u00E0n b\u1ED9 danh s\u00E1ch. */\n  /* r5-usd (2026-09-15 ~04:2x VN) \u2014 AI Agent l\u00E0m theo ch\u1EC9 th\u1ECB anh Ho\u00E1 (l\u1ED7i v\u1EEBa d\u00EDnh b\u1EA3n LIVE).\n     \u0110\u00E3 l\u00E0m: B\u1ECE toLocaleString({style:'currency'}). V\u00EC sao: tr\u00ECnh duy\u1EC7t ti\u1EBFng Vi\u1EC7t (vi-VN) render USD\n     th\u00E0nh **\"US$24.95\"**, c\u1ED9ng th\u00EAm span \" USD\" c\u1EE7a dock => \"US$24.95 USD\". Headless m\u1EB7c \u0111\u1ECBnh en-US\n     n\u00EAn QC c\u0169 KH\u00D4NG th\u1EA5y. Nay format tay theo money_format c\u1EE7a shop (\"${{amount}}\"), KH\u00D4NG bao gi\u1EDD\n     sinh \"US$\", KH\u00D4NG t\u1EF1 th\u00EAm \u0111u\u00F4i USD (span .js-sz-mdock-cur l\u00E0 ngu\u1ED3n DUY NH\u1EA4T). */\n  function money(c) {\n    try {\n      if (window.Shopify && typeof Shopify.formatMoney === 'function') {\n        var out = Shopify.formatMoney(c, (window.Shopify && Shopify.money_format) || '${{amount}}');\n        if (out && out.indexOf('US$') < 0) return out;\n      }\n    } catch (e) {}\n    try {\n      var n = (Number(c) || 0) / 100, s = n.toFixed(2).split('.');\n      return '$' + s[0].replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, '$1,') + '.' + s[1];\n    } catch (e2) { return '$' + ((Number(c) || 0) / 100).toFixed(2); }\n  }\n\n  /* ---------- r4b (2026-09-15 ~03:4x VN, WEB-20260915-suzitee-minicart-r4b) ----------\n     AI Agent lam theo chi thi cua anh Hoa.\n     Da lam: chuan hoa duoi ma tien te o Subtotal (dock trang /cart + dock trong drawer):\n     - xoa moi ma tien te dinh SAN trong so tien (vd \".money\" bi app doi tien te ghi \"$274.45 USD\"),\n     - giu DUNG MOT the <span class=\"js-sz-mdock-cur\"> \" USD\" </span> trong moi .sz-mdock__amt.\n     Vi sao: truoc day trang /cart co san span cua theme, con drawer dung CSS ::after; khi app doi\n     tien te ghi ma vao chinh so tien thi thanh \"$274.45 USD USD\". r4b bo ::after, chi 1 nguon nay. */\n  function szmcCur() {\n    try { return (window.Shopify && Shopify.currency && Shopify.currency.active) || 'USD'; }\n    catch (e) { return 'USD'; }\n  }\n  var __szmcFixing = 0;\n  function szmcCurFix(root) {\n    if (__szmcFixing) return;\n    __szmcFixing = 1;\n    try {\n      var code = szmcCur();\n      var rx = new RegExp('[\\\\s\\\\u00a0]*\\\\b' + code + '\\\\b[\\\\s\\\\u00a0]*$');\n      var amts = (root || document).querySelectorAll('.sz-mdock__amt');\n      [].forEach.call(amts, function (amt) {\n        var pr = amt.querySelector('.js-sz-mdock-price');\n        if (pr) {\n          var t = pr.textContent || '';\n          var cl = t;\n          while (rx.test(cl)) cl = cl.replace(rx, '');\n          /* r5-usd: l\u01B0\u1EDBi cu\u1ED1i \u2014 app/locale n\u00E0o ghi \"US$24.95\" (vi-VN) th\u00EC tr\u1EA3 v\u1EC1 \"$24.95\". */\n          cl = cl.replace(/\\bUS\\$/g, '$').replace(/\\bUS\\s*\\$/g, '$');\n          cl = cl.replace(/[\\s\\u00a0]+$/, '');\n          if (cl !== t) pr.textContent = cl;\n        }\n        var curs = amt.querySelectorAll('.js-sz-mdock-cur');\n        for (var i = 1; i < curs.length; i++) curs[i].parentNode.removeChild(curs[i]);\n        var s = curs[0];\n        if (!s) {\n          s = document.createElement('span');\n          s.className = 'js-sz-mdock-cur';\n          amt.appendChild(s);\n        }\n        var want = ' ' + code;\n        if (s.textContent !== want) s.textContent = want;\n        if (s.parentNode !== amt) amt.appendChild(s);\n      });\n    } catch (e) {}\n    __szmcFixing = 0;\n  }\n  function szmcCurWatch() {\n    try {\n      szmcCurFix();\n      var run = function () { szmcCurFix(); };\n      if (window.MutationObserver) {\n        var mo = new MutationObserver(function () {\n          if (__szmcFixing) return;\n          clearTimeout(szmcCurWatch._t);\n          szmcCurWatch._t = setTimeout(run, 60);\n        });\n        mo.observe(document.documentElement, { childList: true, characterData: true, subtree: true });\n      }\n      [300, 900, 1800, 3500, 6000].forEach(function (ms) { setTimeout(run, ms); });\n      window.addEventListener('load', run);\n    } catch (e) {}\n  }\n\n  function patchTotals(c) {\n    try {\n      var t = el.dw.querySelector('.szmc-dw__title');\n      if (t) t.textContent = 'Shopping Cart (' + (c.item_count || 0) + ')';\n      var s = el.dw.querySelector('.sz-mdock__price');\n      if (s) s.textContent = money(c.total_price != null ? c.total_price : 0);\n      setCount(c.item_count || 0);\n      szmcCurFix(el.dw);                                 // r4b: dung 1 chu USD\n    } catch (e) {}\n  }\n  function change(line, qty, optimisticEl) {\n    if (state.busy) return; state.busy = true; window.__szmcSelf = Date.now();\n    var box = optimisticEl && optimisticEl.closest('.cart__item');\n    if (box) box.classList.add('szmc-line-busy');\n    pfetch('/cart/change.js', {\n      method: 'POST', credentials: 'same-origin',\n      headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },\n      body: JSON.stringify({ line: line, quantity: qty })\n    }).then(function (r) { return r.json(); })\n      .then(function (c) {\n        ss(CACHE_CART, JSON.stringify(c));\n        patchTotals(c);                                  // Subtotal/ti\u00EAu \u0111\u1EC1 \u0111\u00FAng s\u1ED1 th\u1EADt ngay\n        fetchSectionPatch(function () { state.busy = false; });\n      })\n      .catch(function () { state.busy = false; if (box) box.classList.remove('szmc-line-busy'); });\n  }\n  // n\u1EA1p l\u1EA1i section nh\u01B0ng CH\u1EC8 thay ph\u1EA7n th\u00E2n + \u0111\u00E1y (gi\u1EEF nguy\u00EAn khung/\u0111\u1EA7u -> kh\u00F4ng nh\u00E1y)\n  function fetchSectionPatch(cb) {\n    fetchSectionHTML(function (html) {\n      if (html) {\n        var tmp = document.createElement('div'); tmp.innerHTML = html;\n        var nb = tmp.querySelector('.szmc-dw__body'), ob = el.dw.querySelector('.szmc-dw__body');\n        var nf = tmp.querySelector('.szmc-dw__foot'), of_ = el.dw.querySelector('.szmc-dw__foot');\n        if (nb && ob) ob.replaceWith(nb); else if (nb && !ob) el.dw.appendChild(nb);\n        if (nf && of_) of_.replaceWith(nf); else if (nf && !of_) el.dw.appendChild(nf); else if (!nf && of_) of_.remove();\n        var nt = tmp.querySelector('.szmc-dw__title'), ot = el.dw.querySelector('.szmc-dw__title');\n        if (nt && ot) ot.textContent = nt.textContent;\n        syncFromDom();\n      }\n      if (cb) cb();\n    });\n  }\n\n  /* ---------- d\u1ECDn d\u1EB9p sau khi app ngo\u00E0i (Customily) th\u00EAm h\u00E0ng xong ----------\n     r2c (P0 02:08): n\u00FAt c\u1EE7a app k\u1EB9t \"ADDING TO CART...\" v\u00E0 modal app kh\u00F4ng t\u1EF1 \u0111\u00F3ng v\u00EC n\u00F3 ch\u1EDD \u0111i\u1EC1u h\u01B0\u1EDBng\n     sang /cart (th\u1EE9 m\u00E0 drawer \u0111\u00E3 thay th\u1EBF). Ta KH\u00D4NG can thi\u1EC7p request c\u1EE7a app; ch\u1EC9 d\u1ECDn UI sau khi xong. */\n  function afterExternalAdd() {\n    try {\n      // (a) tr\u1EA3 n\u00FAt v\u1EC1 tr\u1EA1ng th\u00E1i c\u0169\n      [].forEach.call(document.querySelectorAll('button,a,.btn'), function (b) {\n        var t = (b.textContent || '').trim();\n        if (/adding to cart/i.test(t)) {\n          b.textContent = b.getAttribute('data-szmc-label') || 'ADD TO CART';\n          b.disabled = false; b.classList.remove('loading', 'is-loading', 'disabled');\n        }\n      });\n      // (a2) n\u00FAt c\u1EE7a Customily d\u00F9ng th\u01B0 vi\u1EC7n ldbtn: tr\u1EA1ng th\u00E1i ch\u1EA1y n\u1EB1m \u1EDF class .running/.ld-over*\n      [].forEach.call(document.querySelectorAll('#customily-cart-btn,.customily-preview-button,.add_to_cart'), function (b) {\n        b.classList.remove('running'); b.disabled = false;\n        if (b.getAttribute('data-szmc-label')) b.innerHTML = b.getAttribute('data-szmc-label');\n      });\n      // (b) \u0111\u00F3ng modal c\u1EE7a Customily: th\u1EED n\u00FAt \u0111\u00F3ng c\u1EE7a ch\u00EDnh n\u00F3 tr\u01B0\u1EDBc, kh\u00F4ng \u0111\u01B0\u1EE3c th\u00EC \u1EA9n l\u1EDBp ph\u1EE7\n      var sels = ['.customily-preview-modal', '.cust-preview-modal', '[class*=\"customily\"][class*=\"modal\"]',\n                  '[id*=\"customily\"][class*=\"modal\"]', '.cly-modal', '.preview-modal', '[class*=\"cl-modal\"]'];\n      var seen = [];\n      sels.forEach(function (s) { [].forEach.call(document.querySelectorAll(s), function (m) { if (seen.indexOf(m) < 0) seen.push(m); }); });\n      // qu\u00E9t th\u00EAm: l\u1EDBp ph\u1EE7 c\u1ED1 \u0111\u1ECBnh, ph\u1EE7 g\u1EA7n h\u1EBFt m\u00E0n, KH\u00D4NG ph\u1EA3i c\u1EE7a m\u00ECnh, c\u00F3 d\u1EA5u v\u1EBFt Customily b\u00EAn trong\n      [].forEach.call(document.querySelectorAll('body > div, body > section'), function (m) {\n        if (seen.indexOf(m) >= 0 || m.id === 'szmcModals' || /szmc-/.test(m.className || '')) return;\n        var c = getComputedStyle(m), r = m.getBoundingClientRect();\n        if (c.position !== 'fixed' || c.display === 'none') return;\n        if (r.width < innerWidth * 0.5 || r.height < innerHeight * 0.5) return;\n        if (!/customily|cl-option|cly-/i.test(m.innerHTML.slice(0, 4000))) return;\n        seen.push(m);\n      });\n      seen.forEach(function (m) {\n        if (getComputedStyle(m).display === 'none') return;\n        var x = m.querySelector('[class*=\"close\"],[aria-label*=\"lose\"],button.close');\n        if (x) { try { x.click(); } catch (e) {} }\n        if (getComputedStyle(m).display !== 'none') m.style.display = 'none';\n      });\n      // (c) tr\u1EA3 l\u1EA1i cu\u1ED9n trang n\u1EBFu app kho\u00E1 body\n      try { document.body.classList.remove('customily-open', 'modal-open', 'no-scroll'); } catch (e) {}\n    } catch (e) {}\n  }\n\n  /* ---------- modal helper (d\u00F9ng markup + class c\u1EE7a trang /cart) ---------- */\n  function showModal(id) {\n    var m = el.prev.querySelector('#' + id); if (!m) return;\n    /* r4: \u1EA3nh preview h\u1ECFng (URL ch\u1EBFt) th\u00EC \u1EA8N h\u1EB3n, kh\u00F4ng \u0111\u1EC3 ch\u1EEBa m\u1ED9t m\u1EA3ng tr\u1EAFng to trong modal */\n    [].forEach.call(m.querySelectorAll('img.eb-cus-preview-modal-content'), function (im) {\n      im.style.display = '';\n      im.onerror = function () { this.style.display = 'none'; };\n      im.onload = function () { this.style.display = ''; };\n      if (im.complete && im.naturalWidth === 0 && im.getAttribute('src')) im.style.display = 'none';\n    });\n    el.prev.classList.add('is-on'); m.classList.remove('is-hidden');\n  }\n  /* r5 (2026-09-15 ~06:0x VN) \u2014 AI Agent l\u00E0m theo ch\u1EC9 th\u1ECB anh Ho\u00E1.\n     L\u1ED6I QC r5 B\u1EAET \u0110\u01AF\u1EE2C (\u1EA3nh + s\u1ED1 \u0111o): \u0111\u00F3ng modal Preview TRONG drawer th\u00EC **drawer \u0111\u00F3ng theo**\n     (\u0111o \u0111\u01B0\u1EE3c: html.szmc-open true -> false, drawer tr\u01B0\u1EE3t ra x=390). V\u00EC sao: modal `position:fixed;inset:0`\n     n\u1EB1m \u0110\u00C8 l\u00EAn l\u1EDBp m\u1EDD `.szmc-ov`; tr\u00EAn thi\u1EBFt b\u1ECB ch\u1EA1m, tr\u00ECnh duy\u1EC7t b\u1EAFn `click` NGAY SAU `touchend`\n     t\u1EA1i c\u00F9ng to\u1EA1 \u0111\u1ED9 \u2014 modal \u0111\u00E3 \u1EA9n \u1EDF touchend n\u00EAn c\u00FA `click` \u0111u\u00F4i r\u01A1i tr\u00FAng l\u1EDBp m\u1EDD => close().\n     V\u00E1: sau khi \u1EA9n modal, KHO\u00C1 l\u1EDBp m\u1EDD 450ms (l\u1EDBp m\u1EDD ch\u1EC9 \u0111\u00F3ng drawer khi kh\u00E1ch b\u1EA5m th\u1EADt v\u00E0o n\u00F3). */\n  var ovLockUntil = 0;\n  function hideModals() {\n    el.prev.classList.remove('is-on');\n    [].forEach.call(el.prev.querySelectorAll('.eb-cus-preview-modal'), function (m) { m.classList.add('is-hidden'); });\n    ovLockUntil = Date.now() + 450;\n  }\n  function previewSrc(line, lineEl) {\n    var items = [];\n    try { items = JSON.parse((el.dw.querySelector('[data-szmc-cart]') || {}).textContent || '[]'); } catch (e) {}\n    var p = (items[line - 1] && items[line - 1].properties) || {};\n    return p['_customily-preview'] || p['_customall_preview'] ||\n      ((lineEl && lineEl.querySelector('img')) || {}).src || '';\n  }\n\n  /* ---------- r3: \u00F4 s\u1ED1 l\u01B0\u1EE3ng (1 l\u1EA7n b\u1EA5m = \u0111\u00FAng 1 \u0111\u01A1n v\u1ECB, quay tr\u00F2n TRONG \u00F4) ----------\n     - handler DUY NH\u1EA4T, pha capture, ch\u1EB7n lan truy\u1EC1n -> theme kh\u00F4ng c\u1ED9ng th\u00EAm l\u1EA7n n\u1EEFa\n     - \u0111ang g\u1ECDi server th\u00EC kho\u00E1 \u0111\u00FAng d\u00F2ng \u0111\u00F3 (kh\u00F4ng l\u00E0m m\u1EDD c\u1EA3 drawer), nh\u1EA3 khi c\u00F3 \u0111\u00E1p\n     - c\u00F3 \u0111\u00E1p: v\u00E1 \u0111\u00FAng d\u00F2ng (s\u1ED1 l\u01B0\u1EE3ng + gi\u00E1 d\u00F2ng) + Subtotal + ti\u00EAu \u0111\u1EC1 + badge, KH\u00D4NG v\u1EBD l\u1EA1i danh s\u00E1ch */\n  var qtyLock = {};\n  /* r4 (loi 4 anh bao 02:46): CHO bam lien tuc. Moi lan bam -> so hien thi +1/-1 NGAY,\n     KHONG khoa nut, KHONG quay tron. Sau 400ms ke tu lan bam CUOI moi goi DUY NHAT\n     mot /cart/change voi so cuoi cung, luc do moi hien quay tron trong o. */\n  var qtyTimer = {}, qtyWant = {}, QTY_DEBOUNCE = 400;\n  function lineSpin(item, on) {\n    if (!item) return;\n    var box = item.querySelector('.product-quantity-box'); if (!box) return;\n    if (on) {\n      item.classList.add('szmc-qty-wait');\n      if (!box.querySelector('.szmc-qty-spin')) {\n        var sp = document.createElement('span'); sp.className = 'szmc-qty-spin'; box.appendChild(sp);\n      }\n    } else {\n      item.classList.remove('szmc-qty-wait');\n      var old = box.querySelector('.szmc-qty-spin'); if (old) old.remove();\n    }\n  }\n  function patchLine(item, it) {\n    if (!item || !it) return;\n    var inp = item.querySelector('input.quantity'); if (inp) inp.value = it.quantity;\n    var lp = item.querySelector('[data-line-price], .cart__item--price .money');\n    if (lp) lp.textContent = money(it.final_line_price != null ? it.final_line_price : it.line_price);\n    var up = item.querySelector('.modal_price .money');\n    if (up && it.final_price != null) up.textContent = money(it.final_price);\n  }\n  function qtyFlush(line, item) {\n    var want = qtyWant[line];\n    if (want == null) return;\n    delete qtyWant[line];\n    qtyLock[line] = 1;\n    lineSpin(item, true);                                 // quay tron CHI khi dang goi server\n    pfetch('/cart/change.js', {\n      method: 'POST', credentials: 'same-origin',\n      headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },\n      body: JSON.stringify({ line: line, quantity: want })\n    }).then(function (r) { return r.json(); })\n      .then(function (c) {\n        ss(CACHE_CART, JSON.stringify(c));\n        patchLine(item, (c.items || [])[line - 1]);\n        patchTotals(c);\n      })\n      .catch(function () {})\n      .then(function () {\n        qtyLock[line] = 0; lineSpin(item, false);\n        if (qtyWant[line] != null) qtyFlush(line, item);  // co bam them luc dang bay -> gui tiep\n      });\n  }\n  function qtyClick(e) {\n    var t = e.target;\n    var qb = t && t.closest && t.closest('.js-change-quantity');\n    if (!qb || !el.dw.contains(qb)) return;\n    e.preventDefault(); e.stopPropagation();\n    if (e.stopImmediatePropagation) e.stopImmediatePropagation();\n    var item = qb.closest('.cart__item'); if (!item) return;\n    var line = parseInt(item.getAttribute('data-line-id'), 10); if (!line) return;\n    var input = item.querySelector('input.quantity');\n    var base = qtyWant[line] != null ? qtyWant[line] : parseInt((input && input.value) || '1', 10);\n    var next = qb.getAttribute('data-func') === 'plus' ? base + 1 : base - 1;\n    if (next < 1) next = 1;                               // ve 0 thi dung nut thung rac\n    if (next === base) return;\n    qtyWant[line] = next;\n    if (input) input.value = next;                        // SO DOI NGAY, nut khong bi khoa\n    if (qtyTimer[line]) clearTimeout(qtyTimer[line]);\n    qtyTimer[line] = setTimeout(function () {\n      qtyTimer[line] = 0;\n      if (qtyLock[line]) return;                          // dang bay -> flush lai o .then\n      qtyFlush(line, item);\n    }, QTY_DEBOUNCE);\n  }\n\n  /* ---------- g\u1EAFn s\u1EF1 ki\u1EC7n ---------- */\n  function wire() {\n    /* r3 (l\u1ED7i 8 anh b\u00E1o 02:16): \u00F4 s\u1ED1 l\u01B0\u1EE3ng nh\u1EA3y 2 \u0111\u01A1n v\u1ECB v\u00EC theme c\u0169ng c\u00F3 handler cho .js-change-quantity.\n       B\u1EAFt \u1EDF pha CAPTURE ngay tr\u00EAn drawer + ch\u1EB7n lan truy\u1EC1n -> ch\u1EC9 C\u00D2N DUY NH\u1EA4T handler n\u00E0y ch\u1EA1y.\n       C\u1EDD __szmcQtyBound ch\u1ED1ng g\u1EAFn 2 l\u1EA7n khi drawer v\u1EBD l\u1EA1i. */\n    if (!el.dw.__szmcQtyBound) {\n      el.dw.__szmcQtyBound = 1;\n      el.dw.addEventListener('click', qtyClick, true);\n    }\n    /* r3: nh\u1EDB CH\u1EEE G\u1ED0C c\u1EE7a n\u00FAt ATC (Customily \u0111\u1ED5i th\u00E0nh \"ADDING TO CART...\") \u0111\u1EC3 tr\u1EA3 l\u1EA1i \u0111\u00FAng nguy\u00EAn v\u0103n */\n    document.addEventListener('click', function (e) {\n      var b = e.target && e.target.closest && e.target.closest('#customily-cart-btn,.add_to_cart,.customily-preview-button');\n      if (b && !b.getAttribute('data-szmc-label') && !/adding/i.test(b.innerText || '')) {\n        b.setAttribute('data-szmc-label', b.innerHTML);\n      }\n      if (b) markBack();                                   // r4 (P0-c): nho trang de quay ve neu bi day sang /cart\n      var mb = e.target && e.target.closest && e.target.closest('.modal-cart-button,#customily-cart-btn,button[name=\"add\"]');\n      if (mb) markBack();\n    }, true);\n    el.cart.addEventListener('click', function (e) { e.preventDefault(); open('fab'); });\n    el.ov.addEventListener('click', function () {\n      if (Date.now() < ovLockUntil) return;   /* r5: b\u1ECF c\u00FA click \u0111u\u00F4i sau khi v\u1EEBa \u0111\u00F3ng modal Preview */\n      close();\n    });\n    el.top.addEventListener('click', function (e) { e.preventDefault(); toTop(); });\n    el.top.addEventListener('touchend', function (e) { e.preventDefault(); toTop(); }, { passive: false });\n    // AI Agent l\u00E0m theo ch\u1EC9 th\u1ECB c\u1EE7a anh Ho\u00E1 \u2014 2026-09-15 12:40 VN \u2014 WEB-20260915-suzitee-minicart-feedback-1229\n    // \u0110\u00E3 l\u00E0m (item 4): ch\u1EB7n cu\u1ED9n-n\u1EC1n khi drawer m\u1EDF \u2014 touchmove ngo\u00E0i v\u00F9ng cu\u1ED9n h\u1EE3p l\u1EC7\n    // (.szmc-dw__body danh s\u00E1ch h\u00E0ng, ho\u1EB7c th\u00E2n modal Preview) \u0111\u1EC1u preventDefault, n\u00EAn backdrop/\n    // header/footer kh\u00F4ng k\u00E9o \u0111\u01B0\u1EE3c n\u1EC1n/drawer theo c\u1EA3 2 chi\u1EC1u. passive:false \u0111\u1EC3 preventDefault c\u00F3 t\u00E1c d\u1EE5ng.\n    document.addEventListener('touchmove', function (e) {\n      if (!state.open) return;\n      var t = e.target;\n      var ok = t && t.closest && t.closest('.szmc-dw__body, #szmc-preview-modal .eb-cus-preview-modal-wrapper, #szmc-remove-confirm .eb-cus-preview-modal-wrapper');\n      if (!ok) { e.preventDefault(); }\n    }, { passive: false });\n    // modal c\u1EE7a trang /cart: \u0111\u00F3ng + PROCEED TO CHECKOUT + x\u00E1c nh\u1EADn xo\u00E1\n    el.prev.addEventListener('click', function (e) {\n      var t = e.target;\n      if (t.closest('.eb-cus-close') || t.classList.contains('eb-overlay-modal-confirm-remove') ||\n          t.closest('.eb-handle-cancel-modal-confirm-remove')) {\n        e.preventDefault(); hideModals(); return;\n      }\n      if (t.closest('.eb-checkout-btn')) { e.preventDefault(); location.href = '/checkout'; return; }\n      var ok = t.closest('.eb-handle-remove-modal-confirm');\n      if (ok) {\n        e.preventDefault();\n        var ln = parseInt(ok.getAttribute('data-szmc-line') || '0', 10);\n        hideModals();\n        if (ln) change(ln, 0);\n      }\n    });\n\n    el.dw.addEventListener('click', function (e) {\n      var t = e.target;\n      var close1 = t.closest && t.closest('.szmc-dw__close');\n      /* r5: n\u00FAt X c\u1EE7a modal Preview n\u1EB1m \u0110\u00DANG ch\u1ED7 n\u00FAt X c\u1EE7a drawer (g\u00F3c tr\u00EAn\u2013ph\u1EA3i). Tr\u00EAn thi\u1EBFt b\u1ECB ch\u1EA1m,\n         c\u00FA `click` \u0111u\u00F4i sau `touchend` r\u01A1i tr\u00FAng X c\u1EE7a drawer khi modal v\u1EEBa \u1EA9n => drawer \u0111\u00F3ng oan.\n         \u0110o \u0111\u01B0\u1EE3c: html.szmc-open true -> false ngay sau khi \u0111\u00F3ng modal. Kho\u00E1 450ms gi\u1ED1ng l\u1EDBp m\u1EDD. */\n      if (close1) { e.preventDefault(); if (Date.now() < ovLockUntil) return; close(); return; }\n      var qb = t.closest && t.closest('.js-change-quantity');\n      if (qb) { e.preventDefault(); return; }         // r3: \u0111\u00E3 x\u1EED l\u00FD \u1EDF handler CAPTURE (qtyClick)\n      var rm = t.closest && t.closest('.cart-remove-btn');\n      if (rm) {\n        e.preventDefault();\n        var it2 = rm.closest('.cart__item'); if (!it2) return;\n        var ln2 = parseInt(it2.getAttribute('data-line-id'), 10);\n        // h\u00E0ng c\u00E1 nh\u00E2n ho\u00E1 -> h\u1ECFi l\u1EA1i \u0110\u00DANG nh\u01B0 trang /cart (l\u1ED7i 2 anh b\u00E1o 01:54)\n        if (it2.querySelector('.customily-preview-cart')) {\n          var img2 = el.prev.querySelector('#szmc-prev-img-remove');\n          if (img2) img2.src = previewSrc(ln2, it2) || '';\n          var ok2 = el.prev.querySelector('#szmc-remove-confirm .eb-handle-remove-modal-confirm');\n          if (ok2) ok2.setAttribute('data-szmc-line', String(ln2));\n          showModal('szmc-remove-confirm');\n        } else { change(ln2, 0, rm); }\n        return;\n      }\n      var pv = t.closest && (t.closest('.customily-preview-cart') || t.closest('.preview-image'));\n      if (pv) {\n        e.preventDefault();\n        var it3 = pv.closest('.cart__item'); if (!it3) return;\n        var ln3 = parseInt(it3.getAttribute('data-line-id'), 10);\n        var img3 = el.prev.querySelector('#szmc-prev-img');\n        if (img3) img3.src = previewSrc(ln3, it3) || '';\n        showModal('szmc-preview-modal');            // modal n\u00E0y C\u00D3 n\u00FAt PROCEED TO CHECKOUT\n        return;\n      }\n    });\n    // Enter trong \u00F4 s\u1ED1 l\u01B0\u1EE3ng\n    el.dw.addEventListener('change', function (e) {\n      var inp = e.target.closest && e.target.closest('input.quantity'); if (!inp) return;\n      var it = inp.closest('.cart__item'); if (!it) return;\n      change(parseInt(it.getAttribute('data-line-id'), 10), Math.max(0, parseInt(inp.value || '1', 10)));\n    });\n\n    document.addEventListener('keydown', function (e) { if (e.key === 'Escape' && state.open) close(); });\n\n    /* --- c\u01B0\u1EDBp l\u1ED1i v\u00E0o: icon gi\u1ECF \u1EDF header + m\u1ECDi link /cart (tr\u1EEB khi \u0111ang \u1EDF trang /cart) --- */\n    document.addEventListener('click', function (e) {\n      if (isCartPage()) return;                       // trang /cart gi\u1EEF nguy\u00EAn h\u00E0nh vi g\u1ED1c\n      var a = e.target.closest && e.target.closest('a[href*=\"/cart\"], .cart-link, .header-cart, [href$=\"/cart\"]');\n      if (!a) return;\n      var href = a.getAttribute('href') || '';\n      if (!/\\/cart(\\/?($|\\?|#))/.test(href)) return;  // /cart/add, /cart/change\u2026 kh\u00F4ng \u0111\u1EE5ng\n      e.preventDefault(); e.stopPropagation(); open('header');\n    }, true);\n\n    /* r5: M\u1ED8T \u0111\u01B0\u1EDDng add duy nh\u1EA5t cho c\u1EA3 2 l\u1ED1i v\u00E0o (s\u1EF1 ki\u1EC7n 'submit' c\u1EE7a kh\u00E1ch b\u1EA5m n\u00FAt,\n       v\u00E0 form.submit() do Customily g\u1ECDi b\u1EB1ng code). nativeSubmit = l\u01B0\u1EDBi an to\u00E0n. */\n    function szmcAddForm(f, nativeSubmit) {\n      if (!f || f.__szmcAdding) return;\n      f.__szmcAdding = 1;\n      setTimeout(function () { f.__szmcAdding = 0; }, 3000);\n      markBack();\n      /* r4 (P0): Customily vua tu them hang xong thi CLICK nut ATC goc cua theme -> khong add lai. */\n      if (Date.now() - lastExtAdd < 4000) {\n        setTimeout(function () { fetchSection(function () { afterExternalAdd(); open('atc'); }); }, 150);\n        return;\n      }\n      var fd = new FormData(f), hasFile = false, params = new URLSearchParams();\n      try {\n        fd.forEach(function (v, k) {\n          if (typeof v !== 'string') { hasFile = true; return; }\n          params.append(k, v);\n        });\n      } catch (e2) { hasFile = true; }\n      /* r4 (P0-b): co customily_upsell_atc -> lop boc cua Customily BO QUA request nay. */\n      params.append('customily_upsell_atc', '1');\n      var body = hasFile ? fd : params;\n      var opt = { method: 'POST', body: body, credentials: 'same-origin' };\n      if (!hasFile) opt.headers = { 'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'application/json' };\n      var fell = 0;\n      var fallback = function () {                     /* add h\u1ECFng -> tr\u1EA3 v\u1EC1 h\u00E0nh vi g\u1ED1c, kh\u00F4ng \u0111\u1EC3 k\u1EB9t */\n        if (fell || !nativeSubmit) return; fell = 1;\n        try { f.__szmcNative = 1; nativeSubmit.call(f); } catch (e) {}\n      };\n      pfetch('/cart/add.js', opt)\n        .then(function (r) {\n          if (r && r.ok === false) { fallback(); return; }\n          fetchSection(function () { afterExternalAdd(); open('atc'); });\n        })\n        .catch(function () { fallback(); });\n    }\n\n    /* ===== WEB-20260925-sz-customily-enter (P0: m\u1EA5t file Customily khi kh\u00E1ch nh\u1EA5n ENTER) =====\n       AI Agent l\u00E0m theo ch\u1EC9 th\u1ECB anh Ho\u00E1. \u0110o tr\u00EAn trang th\u1EADt (draft 188552937775):\n       - N\u00FAt th\u1EADt kh\u00E1ch b\u1EA5m tr\u00EAn SP Customily = #customily-cart-btn (button[name=add], type=BUTTON)\n         -> Customily ch\u1EB7n click, t\u1EA1o production file/preview, r\u1ED3i T\u1EF0 g\u1ECDi form.submit()\n         (wrapper prototype r5 lo ph\u1EA7n add + m\u1EDF drawer) => line item C\u00D3 _customily-production-url.\n       - N\u00FAt native theme (button[name=add] type=submit) b\u1ECB Customily \u1EA9n (class hidden-customily\u2026).\n       - window.Customily t\u1ED3n t\u1EA1i; form CH\u01AFA c\u00F3 field _customily-* cho t\u1EDBi khi Customily ch\u1EA1y xong.\n       V\u00CC SAO l\u1ED7i: kh\u00E1ch g\u00F5 t\u00EAn r\u1ED3i nh\u1EA5n ENTER -> ph\u00E1t s\u1EF1 ki\u1EC7n 'submit' NATIVE -> handler d\u01B0\u1EDBi\n       th\u00EAm h\u00E0ng NGAY b\u1EB1ng szmcAddForm (TR\u01AF\u1EDAC khi Customily k\u1ECBp t\u1EA1o file) => \u0111\u01A1n thi\u1EBFu\n       _customily-production-url/_customily-preview (\u0111\u01A1n #334984, #335116, #335135, #335271, #335397).\n       FIX: s\u1EF1 ki\u1EC7n 'submit' tr\u00EAn form Customily m\u00E0 CH\u01AFA s\u1EB5n s\u00E0ng => KH\u00D4NG t\u1EF1 add, m\u00E0 b\u1EA5m \u0111\u00FAng\n       #customily-cart-btn \u0111\u1EC3 Customily ch\u1EA1y flow (n\u00F3 d\u00F9ng form.submit(), KH\u00D4NG ph\u00E1t 'submit' n\u00EAn\n       kh\u00F4ng l\u1EB7p; n\u00FAt type=button n\u00EAn click c\u0169ng kh\u00F4ng t\u00E1i ph\u00E1t 'submit'). SP th\u01B0\u1EDDng: gi\u1EEF nguy\u00EAn. */\n    function szmcCustomilyBtn(f) {\n      return f.querySelector('#customily-cart-btn, button[name=\"add\"].add_to_cart:not([type=\"submit\"]), .customily-preview-button');\n    }\n    function szmcIsCustomilyForm(f) {\n      /* 25/09 v2 (WEB-20260925-sz-customily-enter): CHI coi la SP Customily khi co NUT Add to Cart\n         that cua Customily. Bo [class*=\"customily\"] + window.Customily vi theme gan class\n         'eb-modal-reselect-properties-customily' / 'sticky-customily-preview-button' vao ca SP\n         Customall/SP thuong -> nhan nham -> chan add gi\u1ECF binh thuong. */\n      try {\n        if (f.querySelector('#customily-cart-btn, #customily-cart-btn-preview')) return true;\n        if (document.querySelector('#customily-cart-btn')) return true;\n      } catch (e) {}\n      return false;\n    }\n    function szmcCustomilyReady(f) {                    // Customily \u0111\u00E3 t\u1EA1o file xong -> add tr\u1EF1c ti\u1EBFp OK\n      var el = f.querySelector('[name=\"properties[_customily-production-url]\"]');\n      return !!(el && String(el.value || '').trim());\n    }\n    function szmcTriggerCustomilyAdd(f) {\n      if (f.__szmcCustAt && Date.now() - f.__szmcCustAt < 4000) return;   // ch\u1ED1ng l\u1EB7p: 1 l\u1EA7n/4s\n      f.__szmcCustAt = Date.now();\n      var btn = szmcCustomilyBtn(f);\n      if (btn) { try { btn.click(); return; } catch (e) {} }\n      /* kh\u00F4ng th\u1EA5y n\u00FAt Customily -> \u0111\u1EC3 form native ch\u1EA1y (an to\u00E0n h\u01A1n l\u00E0 nu\u1ED1t m\u1EA5t submit) */\n      try { if (HTMLFormElement.prototype.__szmcNativeSubmit) { f.__szmcNative = 1; HTMLFormElement.prototype.__szmcNativeSubmit.call(f); } } catch (e) {}\n    }\n\n    /* --- ATC: ch\u1EB7n submit form + b\u1ECDc fetch/XHR --- */\n    document.addEventListener('submit', function (e) {\n      var f = e.target;\n      if (!f || !f.action || !/\\/cart\\/add/.test(f.action)) return;\n      /* WEB-20260925: form Customily nh\u1EA5n ENTER qu\u00E1 s\u1EDBm -> l\u00E1i qua n\u00FAt Customily, KH\u00D4NG t\u1EF1 add */\n      if (!f.__szmcNative && szmcIsCustomilyForm(f) && !szmcCustomilyReady(f)) {\n        e.preventDefault(); e.stopPropagation();\n        szmcTriggerCustomilyAdd(f);\n        return;\n      }\n      e.preventDefault(); e.stopPropagation();\n      szmcAddForm(f);\n    }, true);\n\n    /* ===== r5 (2026-09-15 ~04:2x VN, WEB-20260915-suzitee-minicart-r5) =====\n       AI Agent l\u00E0m theo ch\u1EC9 th\u1ECB c\u1EE7a anh Ho\u00E1.\n       \u0110\u00E3 l\u00E0m: b\u1ECDc HTMLFormElement.prototype.submit cho form /cart/add.\n\n       V\u00CC SAO (\u0111o \u0111\u01B0\u1EE3c, kh\u00F4ng \u0111o\u00E1n \u2014 r5 l\u1EA7n \u0111\u1EA7u l\u00E1i \u0111\u01B0\u1EE3c lu\u1ED3ng Customily TH\u1EACT b\u1EB1ng m\u00E1y):\n       B\u1EA5m ADD TO CART trong popup Preview c\u1EE7a Customily -> app g\u1ECDi **form.submit() b\u1EB1ng code**.\n       `form.submit()` KH\u00D4NG ph\u00E1t s\u1EF1 ki\u1EC7n 'submit' (chu\u1EA9n HTML) => handler \u1EDF tr\u00EAn KH\u00D4NG BAO GI\u1EDC ch\u1EA1y\n       => tr\u00ECnh duy\u1EC7t POST th\u01B0\u1EDDng /cart/add => nh\u1EA3y sang trang /cart. \u0110\u00E2y ch\u00EDnh l\u00E0 P0 4 v\u00F2ng ch\u01B0a b\u1EAFt \u0111\u01B0\u1EE3c;\n       log ch\u1EE9ng minh: \"SZDBG form.submit() called .../cart/add\" ngay tr\u01B0\u1EDBc \"beforeunload\".\n\n       Kh\u00E1c g\u00EC b\u1EA3n r2b (b\u1EA3n t\u1EEBng l\u00E0m k\u1EB9t n\u00FAt \"ADDING TO CART\u2026\"): r2b nu\u1ED1t submit r\u1ED3i KH\u00D4NG d\u1ECDn tr\u1EA1ng\n       th\u00E1i c\u1EE7a app. Nay sau khi add xong lu\u00F4n g\u1ECDi afterExternalAdd() (tr\u1EA3 ch\u1EEF n\u00FAt, m\u1EDF kho\u00E1, \u0111\u00F3ng modal\n       Customily) r\u1ED3i m\u1EDBi m\u1EDF drawer; add h\u1ECFng th\u00EC TR\u1EA2 L\u1EA0I submit g\u1ED1c \u0111\u1EC3 kh\u00E1ch kh\u00F4ng bao gi\u1EDD k\u1EB9t. */\n    if (!HTMLFormElement.prototype.__szmcSubmitWrapped) {\n      var _nativeSubmit = HTMLFormElement.prototype.submit;\n      HTMLFormElement.prototype.__szmcNativeSubmit = _nativeSubmit;\n      HTMLFormElement.prototype.submit = function () {\n        try {\n          if (this.action && /\\/cart\\/add/.test(this.action) && !this.__szmcNative) {\n            szmcAddForm(this, _nativeSubmit);\n            return;\n          }\n        } catch (e) {}\n        return _nativeSubmit.apply(this, arguments);\n      };\n      HTMLFormElement.prototype.__szmcSubmitWrapped = 1;\n    }\n\n    /* r2b (l\u1ED7i 3 anh b\u00E1o 01:54): Customily sau khi kh\u00E1ch b\u1EA5m xong preview th\u00EC t\u1EF1 submit form\n       (kh\u00F4ng ph\u1EA3i n\u00FAt ATC th\u01B0\u1EDDng) r\u1ED3i \u0110I\u1EC0U H\u01AF\u1EDANG sang /cart. Ch\u1EB7n 2 l\u1EDBp:\n       (a) form.submit() g\u1ECDi b\u1EB1ng code \u2014 override prototype (s\u1EF1 ki\u1EC7n 'submit' KH\u00D4NG b\u1EAFt \u0111\u01B0\u1EE3c ca n\u00E0y);\n       (b) n\u1EBFu v\u1EABn l\u1ECDt sang /cart: \u0111\u00E1nh d\u1EA5u phi\u00EAn r\u1ED3i quay l\u1EA1i \u0111\u00FAng trang c\u0169 v\u00E0 b\u1EADt drawer. */\n    /* r2c (P0 anh b\u00E1o 02:08): KH\u00D4NG c\u01B0\u1EDBp form.submit() c\u1EE7a Customily n\u1EEFa \u2014 b\u1EA3n r2b nu\u1ED1t m\u1EA5t lu\u1ED3ng\n       ho\u00E0n t\u1EA5t c\u1EE7a app n\u00EAn n\u00FAt k\u1EB9t \"ADDING TO CART...\". Nay CH\u1EC8 QUAN S\u00C1T: \u0111\u1EC3 request c\u1EE7a Customily\n       ch\u1EA1y tr\u1ECDn v\u1EB9n, xong m\u1EDBi (a) tr\u1EA3 n\u00FAt v\u1EC1 ch\u1EEF c\u0169, (b) \u0111\u00F3ng modal c\u1EE7a Customily, (c) m\u1EDF drawer \u0110\u00C8 L\u00CAN. */\n    /* r3: KH\u00D4NG tin v\u00E0o vi\u1EC7c b\u1ECDc fetch/XHR n\u1EEFa \u2014 app kh\u00E1c (Customily/theme) c\u0169ng b\u1ECDc v\u00E0 gi\u1EEF b\u1EA3n g\u1ED1c,\n       n\u00EAn m\u00F3c c\u1EE7a m\u00ECnh c\u00F3 th\u1EC3 b\u1ECB b\u1ECF qua. PerformanceObserver nh\u00ECn th\u1EA5y M\u1ECCI request th\u1EADt. */\n    window.__szmcSelf = 0;                              // \u0111\u00E1nh d\u1EA5u request do ch\u00EDnh drawer g\u1ECDi\n    function externalAdd(url) {\n      if (/\\/cart\\/add/.test(url || '')) lastExtAdd = Date.now();             // r4: app ngoai vua add\n      if (window.__szmcSelf && Date.now() - window.__szmcSelf < 1500) return;  // c\u1EE7a m\u00ECnh -> b\u1ECF qua\n      if (externalAdd.last && Date.now() - externalAdd.last < 1200) return;    // ch\u1ED1ng g\u1ECDi tr\u00F9ng\n      externalAdd.last = Date.now();\n      setTimeout(function () {\n        fetchSection(function () { if (/\\/cart\\/add/.test(url)) { afterExternalAdd(); open('atc'); } });\n      }, 250);\n    }\n    try {\n      new PerformanceObserver(function (list) {\n        list.getEntries().forEach(function (e) {\n          if (/\\/cart\\/(add|change|update|clear)/.test(e.name || '')) externalAdd(e.name);\n        });\n      }).observe({ type: 'resource', buffered: false });\n    } catch (e) {}\n    var _fetch = window.fetch;\n    window.fetch = function (input, init) {\n      var url = (typeof input === 'string' ? input : (input && input.url)) || '';\n      var p = _fetch.apply(this, arguments);\n      if (/\\/cart\\/(add|change|update|clear)/.test(url)) {\n        p.then(function () { setTimeout(function () { fetchSection(function () { if (/add/.test(url)) { afterExternalAdd(); open('atc'); } }); }, 250); }).catch(function () {});\n      }\n      return p;\n    };\n    var _open = XMLHttpRequest.prototype.open, _send = XMLHttpRequest.prototype.send;\n    XMLHttpRequest.prototype.open = function (m, u) { this.__szmcUrl = u || ''; return _open.apply(this, arguments); };\n    XMLHttpRequest.prototype.send = function () {\n      var self = this;\n      this.addEventListener('load', function () {\n        if (/\\/cart\\/(add|change|update|clear)/.test(self.__szmcUrl || '')) {\n          setTimeout(function () { fetchSection(function () { if (/add/.test(self.__szmcUrl)) { afterExternalAdd(); open('atc'); } }); }, 250);\n        }\n      });\n      return _send.apply(this, arguments);\n    };\n  }\n\n  /* ---------- r4: TRANG /cart \u2014 o so luong bam nhanh + tieu de modal xoa ----------\n     (loi 4 + loi 6 anh bao 02:46). Tren /cart theme tu xu ly nut +/- bang 1 request moi lan bam,\n     khoa nut cho den khi co dap. r4 bat o pha CAPTURE tren document, chan handler cua theme,\n     cong so NGAY roi debounce 400ms moi goi mot /cart/change duy nhat. */\n  function cpMoney(c) {\n    return money(c);   /* r5-usd: m\u1ED9t ngu\u1ED3n format DUY NH\u1EA4T, kh\u00F4ng c\u00F2n toLocaleString (tr\u00E1nh \"US$\") */\n  }\n  function cpWire() {\n    if (!isCartPage() || document.documentElement.__szmcCartPage) return;\n    document.documentElement.__szmcCartPage = 1;\n    var want = {}, timer = {}, lock = {};\n    function spin(item, on) {\n      var box = item && item.querySelector('.product-quantity-box'); if (!box) return;\n      if (on) {\n        item.classList.add('szmc-qty-wait');\n        if (!box.querySelector('.szmc-qty-spin')) { var sp = document.createElement('span'); sp.className = 'szmc-qty-spin'; box.appendChild(sp); }\n      } else {\n        item.classList.remove('szmc-qty-wait');\n        var o = box.querySelector('.szmc-qty-spin'); if (o) o.remove();\n      }\n    }\n    function totals(c) {\n      try {\n        [].forEach.call(document.querySelectorAll('.js-sz-mdock-price'), function (n) { n.textContent = cpMoney(c.total_price || 0); });\n        /* r12: tren DESKTOP Subtotal cua trang /cart nam o .js-cart_subtotal .money \u2014 handler capture\n           cua minicart chan handler cua theme nen phai tu son lai, neu khong so nay se cu (stale)\n           va MutationObserver cua cart-template con chep nguoc so cu do vao dock. */\n        [].forEach.call(document.querySelectorAll('.js-cart_subtotal .money'), function (n) { n.textContent = cpMoney(c.total_price || 0); });\n        szmcCurFix();                                     // r4b: dung 1 chu USD\n        /* AI Agent l\u00E0m theo ch\u1EC9 th\u1ECB c\u1EE7a anh Ho\u00E1 \u2014 2026-09-15 18:30 VN \u2014 WEB-20260915-suzitee-cart-title-count\n           \u0110\u00E3 l\u00E0m: thay v\u00F2ng l\u1EB7p ch\u1EC9 s\u01A1n .cart_count b\u1EB1ng szmcPaintHeader(item_count) \u2014 c\u00F9ng painter v\u1EDBi\n           drawer, n\u00EAn trang /cart c\u1EADp nh\u1EADt \u0111\u1EE7: badge desktop, badge mobile V\u00C0 d\u00F2ng \"N items in your cart:\". */\n        szmcPaintHeader(c.item_count || 0);\n      } catch (e) {}\n    }\n    function flush(line, item) {\n      var q = want[line]; if (q == null) return;\n      delete want[line]; lock[line] = 1; spin(item, true);\n      pfetch('/cart/change.js', {\n        method: 'POST', credentials: 'same-origin',\n        headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },\n        body: JSON.stringify({ line: line, quantity: q })\n      }).then(function (r) { return r.json(); })\n        .then(function (c) {\n          var it = (c.items || [])[line - 1];\n          if (it) {\n            var inp = item.querySelector('input.quantity'); if (inp) inp.value = it.quantity;\n            var lp = item.querySelector('[data-line-price], .cart__item--price .money');\n            if (lp) lp.textContent = cpMoney(it.final_line_price != null ? it.final_line_price : it.line_price);\n          }\n          totals(c);\n        }).catch(function () {})\n        .then(function () { lock[line] = 0; spin(item, false); if (want[line] != null) flush(line, item); });\n    }\n    document.addEventListener('click', function (e) {\n      var qb = e.target && e.target.closest && e.target.closest('.js-change-quantity');\n      if (!qb) return;\n      if (el.dw && el.dw.contains(qb)) return;             // trong drawer -> handler rieng lo\n      var item = qb.closest('.cart__item'); if (!item) return;\n      var line = parseInt(item.getAttribute('data-line-id'), 10); if (!line) return;\n      e.preventDefault(); e.stopPropagation();\n      if (e.stopImmediatePropagation) e.stopImmediatePropagation();\n      var inp = item.querySelector('input.quantity');\n      var base = want[line] != null ? want[line] : parseInt((inp && inp.value) || '1', 10);\n      var next = qb.getAttribute('data-func') === 'plus' ? base + 1 : base - 1;\n      if (next < 1) next = 1;\n      if (next === base) return;\n      want[line] = next; if (inp) inp.value = next;        // so doi NGAY, nut khong khoa\n      if (timer[line]) clearTimeout(timer[line]);\n      timer[line] = setTimeout(function () { timer[line] = 0; if (!lock[line]) flush(line, item); }, 400);\n    }, true);\n    /* tieu de modal xoa cua trang /cart -> 1 dong, dung chu nhu Almagems */\n    var tries = 0, iv = setInterval(function () {\n      var t = document.querySelector('#cart-remove-confirm .eb-title-modal-confirm');\n      if (t) { t.textContent = 'Are you sure to remove this item?'; clearInterval(iv); }\n      if (++tries > 60) clearInterval(iv);\n    }, 200);\n  }\n\n  /* ---------- cu\u1ED9n l\u00EAn + v\u00F2ng ti\u1EBFn \u0111\u1ED9 ---------- */\n  function toTop() {\n    try { window.scrollTo({ top: 0, behavior: 'smooth' }); } catch (e) { window.scrollTo(0, 0); }\n    setTimeout(function () { if ((window.pageYOffset || 0) > 4) window.scrollTo(0, 0); }, 700);\n  }\n  function onScroll() {\n    if (!state.built) return;\n    var y = window.pageYOffset || document.documentElement.scrollTop || 0;\n    var max = Math.max(1, (document.documentElement.scrollHeight || 0) - window.innerHeight);\n    var pct = Math.min(1, Math.max(0, y / max));\n    if (el.ring && RING_C) el.ring.style.strokeDashoffset = (RING_C * (1 - pct)).toFixed(1);\n    el.top.classList.toggle('is-on', y > 320);\n    lift();\n  }\n  // n\u00E2ng c\u1EE5m n\u00FAt khi c\u00F3 thanh CTA d\u00EDnh \u0111\u00E1y (PDP) \u0111\u1EC3 kh\u00F4ng b\u1ECB \u0111\u00E8\n  function lift() {\n    var bar = document.querySelector('.sticky-checkout-section:not([style*=\"display: none\"]), .sticky-add-to-cart, #sticky-atc');\n    var h = 0;\n    if (bar) { var r = bar.getBoundingClientRect(); if (r.height && r.bottom > window.innerHeight - 4) h = Math.round(r.height); }\n    document.documentElement.style.setProperty('--szmc-lift', h + 'px');\n  }\n\n  /* ---------- kh\u1EDFi \u0111\u1ED9ng ---------- */\n  function boot() {\n    build();\n    // (b) l\u1ECDt sang /cart sau khi Customily th\u00EAm h\u00E0ng -> quay l\u1EA1i trang c\u0169 v\u00E0 b\u1EADt drawer\n    try {\n      var back = ss('szmc:back');\n      var backAt = parseInt(ss('szmc:backAt') || '0', 10);\n      if (backAt && Date.now() - backAt > 25000) { back = ''; ss('szmc:back', ''); }  // r4: chi cuu trong 25s\n      /* r5 (2026-09-15 ~04:5x VN) \u2014 AI Agent l\u00E0m theo ch\u1EC9 th\u1ECB anh Ho\u00E1.\n         \u0110\u00E3 B\u1ECE l\u01B0\u1EDBi \"t\u1EF1 quay v\u1EC1 trang c\u0169\" c\u1EE7a r4. V\u00EC sao: r4 ph\u1EA3i bounce v\u00EC Customily \u0111i\u1EC1u h\u01B0\u1EDBng sang\n         /cart; r5 \u0111\u00E3 CH\u1EB6N T\u1EACN G\u1ED0C (b\u1ECDc HTMLFormElement.prototype.submit) n\u00EAn kh\u00F4ng c\u00F2n g\u00EC \u0111\u1EC3 c\u1EE9u \u2014\n         m\u00E0 gi\u1EEF l\u1EA1i th\u00EC H\u1EA0I TH\u1EACT: QC r5 b\u1EAFt \u0111\u01B0\u1EE3c c\u1EA3nh kh\u00E1ch b\u1EA5m ATC xong **t\u1EF1 b\u1EA5m v\u00E0o gi\u1ECF** trong 25s\n         li\u1EC1n b\u1ECB \u0111\u00E1 NG\u01AF\u1EE2C v\u1EC1 trang s\u1EA3n ph\u1EA9m (regress-390: m\u1EDF /cart l\u1EA1i ra title trang s\u1EA3n ph\u1EA9m).\n         Nay: v\u00E0o /cart l\u00E0 \u1EDF l\u1EA1i /cart. `szmc:back` ch\u1EC9 c\u00F2n \u0111\u1EC3 d\u1ECDn, kh\u00F4ng \u0111i\u1EC1u h\u01B0\u1EDBng n\u1EEFa. */\n      if (isCartPage() && back) ss('szmc:back', '');\n      if (sessionStorage.getItem('szmc:autoopen') === '1') {\n        sessionStorage.removeItem('szmc:autoopen');\n        setTimeout(function () { open('customily-back'); }, 60);\n      }\n    } catch (e) {}\n    // n\u1EA1p s\u1EB5n (l\u1EC7nh t\u1ED1c \u0111\u1ED9 01:27): c\u00F3 h\u00E0ng -> c\u00F3 HTML trong cache tr\u01B0\u1EDBc khi anh b\u1EA5m\n    pfetch('/cart.js', { credentials: 'same-origin', headers: { Accept: 'application/json' } })\n      .then(function (r) { return r.json(); })\n      .then(function (c) {\n        ss(CACHE_CART, JSON.stringify(c));\n        setCount(c.item_count || 0);\n        if (c.item_count > 0) fetchSection();\n      }).catch(function () {});\n    cpWire();                                            // r4: trang /cart\n    szmcCurWatch();                                      // r4b: chuan hoa duoi ma tien te\n    window.addEventListener('scroll', onScroll, { passive: true });\n    window.addEventListener('resize', lift);\n    onScroll();\n  }\n\n  /* AI Agent l\u00E0m theo ch\u1EC9 th\u1ECB c\u1EE7a anh Ho\u00E1 \u2014 2026-09-15 15:55 VN \u2014 WEB-20260915-suzitee-mobile-qty-inert\n     \u0110\u00E3 l\u00E0m: ch\u1EB7n \u00F4 s\u1ED1 l\u01B0\u1EE3ng nh\u1EADn focus tr\u00EAn MOBILE (<1024px). Tr\u01B0\u1EDBc: ch\u1EA1m s\u1ED1 -> caret + b\u00E0n ph\u00EDm iOS.\n     Sau: ch\u1EA1m s\u1ED1 kh\u00F4ng l\u00E0m g\u00EC (CSS pointer-events:none lo ph\u1EA7n ch\u1EA1m; \u0111o\u1EA1n n\u00E0y l\u00E0 l\u01B0\u1EDBi an to\u00E0n cho\n     focus l\u1EADp tr\u00ECnh/Tab v\u00E0 cho c\u00E1c d\u00F2ng gi\u1ECF \u0111\u01B0\u1EE3c render l\u1EA1i sau AJAX \u2014 kh\u00F4ng c\u1EA7n MutationObserver).\n     N\u00FAt +/- (.js-change-quantity) KH\u00D4NG \u0111\u1EE5ng t\u1EDBi. Desktop >=1024px: g\u1EE1 readonly, g\u00F5 tay nh\u01B0 c\u0169. */\n  var SZMC_QTY_MQ = null;\n  try { SZMC_QTY_MQ = window.matchMedia('(max-width:1023px)'); } catch (e) {}\n  function szmcQtyMobile() { return !!(SZMC_QTY_MQ && SZMC_QTY_MQ.matches); }\n  function szmcQtyMark(inp) {\n    if (!inp) return;\n    if (szmcQtyMobile()) {\n      inp.setAttribute('readonly', 'readonly');\n      inp.setAttribute('inputmode', 'none');\n      inp.setAttribute('tabindex', '-1');\n      inp.setAttribute('aria-readonly', 'true');\n    } else if (inp.hasAttribute('readonly')) {\n      inp.removeAttribute('readonly');\n      inp.removeAttribute('inputmode');\n      inp.removeAttribute('tabindex');\n      inp.removeAttribute('aria-readonly');\n    }\n  }\n  function szmcQtySweep() {\n    try {\n      var l = document.querySelectorAll('.cart__item input.quantity');\n      for (var i = 0; i < l.length; i++) szmcQtyMark(l[i]);\n    } catch (e) {}\n  }\n  document.addEventListener('focusin', function (e) {\n    try {\n      if (!szmcQtyMobile()) return;\n      var t = e.target;\n      if (!t || !t.matches || !t.matches('input.quantity')) return;\n      if (!t.closest('.cart__item')) return;\n      szmcQtyMark(t);\n      t.blur();                                   // kh\u00F4ng gi\u1EEF focus -> iOS kh\u00F4ng m\u1EDF b\u00E0n ph\u00EDm\n    } catch (err) {}\n  }, true);\n  if (SZMC_QTY_MQ) {\n    var szmcQtyOnMQ = function () { szmcQtySweep(); };\n    if (SZMC_QTY_MQ.addEventListener) SZMC_QTY_MQ.addEventListener('change', szmcQtyOnMQ);\n    else if (SZMC_QTY_MQ.addListener) SZMC_QTY_MQ.addListener(szmcQtyOnMQ);\n  }\n  document.addEventListener('click', function () { setTimeout(szmcQtySweep, 60); }, true);\n  setInterval(szmcQtySweep, 1500);                // r\u1EBB: querySelectorAll v\u00E0i ph\u1EA7n t\u1EED, kh\u00F4ng \u0111\u1EE5ng layout\n  szmcQtySweep();\n\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', boot); else boot();\n\n  window.__szmc = { open: open, close: close, metrics: metrics, state: state, refresh: fetchSection };\n})();\n"],
  "mappings": "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",
  "names": ["el"]
}
