{"title":"Mestery box travel tech pack products","description":"","products":[{"product_id":"baseus-energeek-gr11-145w-20000mah-power-bank","title":"Baseus EnerGeek GR11 20000mAh 145W Laptop Fast-Charging Power Bank with Retractable USB-C Cable","description":"\u003cdiv style=\"max-width: 1500px; margin: 0 auto; padding: 32px 24px; font-family: 'Inter',system-ui,Arial,sans-serif; line-height: 1.7; color: #0a0f1e;\"\u003e\n\u003c!-- 🔥 High-Conversion Title --\u003e\n\u003ch2 style=\"text-align: center; font-size: 30px; font-weight: 800; margin-bottom: 12px;\"\u003e\u003cbr\u003e\u003c\/h2\u003e\n\u003c!-- 🔥 High-Conversion Story Block --\u003e\n\u003cdiv style=\"background: #f8f3eb; padding: 26px; border-radius: 18px; box-shadow: 0 6px 14px rgba(0,0,0,0.06); margin-bottom: 36px;\"\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027B01-11.jpg?v=1765885876\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027B01-9.jpg?v=1765885876\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027B01-6.jpg?v=1765885876\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027B01-10.jpg?v=1765885876\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027B01-8.jpg?v=1765885876\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027B01-7.jpg?v=1765885876\" alt=\"\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- 🔥 Technical Specs --\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch3 style=\"font-size: 22px; font-weight: bold; margin-bottom: 10px;\"\u003eTechnical Specifications\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eModel:\u003c\/strong\u003e PPCJB-20F5\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eCapacity:\u003c\/strong\u003e 20,000mAh (14.4V \/ 72Wh)\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eCells:\u003c\/strong\u003e 5000mAh × 4 High-Density Cells\u003c\/p\u003e\n\u003ch4 style=\"margin-top: 16px; font-size: 18px; font-weight: bold;\"\u003eInput\u003c\/h4\u003e\n\u003cul style=\"padding-left: 20px;\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eUSB-C1 Cable \/ USB-C2 \/ USB-C3 Input:\u003c\/strong\u003e 5V⎓3A, 9V⎓3A, 12V⎓3A, 15V⎓3A, 20V⎓5A\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch4 style=\"margin-top: 16px; font-size: 18px; font-weight: bold;\"\u003eOutput\u003c\/h4\u003e\n\u003cul style=\"padding-left: 20px;\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eUSB-C1 Cable \/ USB-C2 \/ USB-C3 Output:\u003c\/strong\u003e 5V⎓3A, 9V⎓3A, 12V⎓3A, 15V⎓3A, 20V⎓5A (145W Peak)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eUSB-A1 Output:\u003c\/strong\u003e 5V⎓3A, 9V⎓2A, 10V⎓2.25A, 11V⎓3A, 12V⎓2.5A\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCombined Outputs:\u003c\/strong\u003e\u003cbr\u003e• USB-C1 Cable + USB-C2: 15W Max\u003cbr\u003e• USB-C3 + USB-A1: 15W Max\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003c!-- 🔥 High-Conversion Closing Block --\u003e\n\u003cdiv style=\"margin-top: 28px; padding: 24px; background: #f8f3eb; border-radius: 16px; box-shadow: 0 4px 12px rgba(0,0,0,0.05);\"\u003e\u003c!-- ✅ One-Field Power Bank Calculator · Left-Caret + Custom Autocomplete (reset on empty\/unknown) --\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n  .pb-onefield *{box-sizing:border-box}\n  .pb-onefield h4{margin:0 0 8px;font-size:16px}\n  .pb-onefield label{display:block;font-weight:600;margin:6px 0 6px}\n  .pb-onefield input{width:100%;padding:10px;border:1px solid #ddd;border-radius:10px;background:#fff}\n  .pb-onefield .kpis{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}\n  .pb-onefield .pill{flex:1 1 120px;min-width:120px;text-align:center;border:1px solid #e5e5e5;background:#fff;border-radius:10px;padding:10px}\n  .pb-onefield .pill b{display:block;font-size:18px}\n  .pb-onefield .msg{margin-top:10px;border-left:4px solid #22c55e;background:#eefaf1;padding:10px;border-radius:8px}\n  .pb-onefield .msg.warn{border-left-color:#ffa500;background:#fff7e6}\n  .pb-onefield .note{color:#666;font-size:12px;margin-top:8px}\n\n  \/* ⬅️ 左侧箭头输入容器 *\/\n  .pb-onefield .pb-left-caret{\n    position:relative;\n    overflow:visible; \/* 让下拉不被父容器裁切 *\/\n  }\n  .pb-onefield .pb-left-caret input{\n    width:100%;\n    padding:10px 12px 10px 36px; \/* 左侧箭头空间 *\/\n    border:1px solid #ddd; border-radius:10px; background:#fff;\n  }\n  .pb-onefield .pb-caret-btn{\n    position:absolute; left:10px; top:50%; transform:translateY(-50%);\n    border:0; background:transparent; cursor:pointer; line-height:1; padding:0 2px;\n    font-size:16px; color:#666;\n    touch-action:manipulation;\n  }\n  .pb-onefield .pb-caret-btn:focus{outline:2px solid #c9defc; border-radius:4px}\n\n  \/* 🔽 自定义下拉列表 *\/\n  .pb-onefield .pb-suggest{\n    position:absolute; z-index:9999; left:0; right:0; top:100%; margin-top:6px;\n    max-height:260px; overflow:auto; background:#fff; border:1px solid #e5e5e5;\n    border-radius:10px; box-shadow:0 6px 20px rgba(0,0,0,.08); display:none;\n  }\n  .pb-onefield .pb-suggest.open{display:block}\n  .pb-onefield .pb-suggest ul{list-style:none; margin:0; padding:6px}\n  .pb-onefield .pb-suggest li{\n    padding:8px 10px; border-radius:8px; cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;\n  }\n  .pb-onefield .pb-suggest li:hover,\n  .pb-onefield .pb-suggest li.active{background:#f5f7fb}\n  .pb-onefield .pb-suggest .empty{padding:10px; color:#777}\n\u003c\/style\u003e\n\u003cdiv style=\"max-width: 1500px; margin: 0 auto; padding: 32px 24px; font-family: 'Inter',system-ui,Arial,sans-serif; line-height: 1.7; color: #0a0f1e;\"\u003e\n\u003cdiv style=\"margin-top: 28px; padding: 24px; background: #f8f3eb; border-radius: 16px; box-shadow: 0 4px 12px rgba(0,0,0,0.05);\"\u003e\n\u003cdiv class=\"pb-onefield\" style=\"margin-top: 16px; padding: 14px; border: 1px solid #eee; border-radius: 12px; background: #fafafa; font: 14px\/1.6 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif; color: #111;\"\u003e\n\u003ch4 style=\"text-align: center; font-size: 22px; font-weight: bold; margin-bottom: 8px;\"\u003ePower Bank Quick Calculator\u003c\/h4\u003e\n\u003c!-- 唯一输入：机型（左侧箭头，点击展开\/收起） --\u003e \u003clabel\u003ePhone model\u003c\/label\u003e\n\u003cdiv class=\"pb-left-caret\" role=\"combobox\" aria-haspopup=\"listbox\" aria-expanded=\"false\"\u003e\n\u003cbutton type=\"button\" class=\"pb-caret-btn\" aria-label=\"Open models\"\u003e▾\u003c\/button\u003e \u003cinput type=\"text\" id=\"pb-phone-model\" placeholder=\"Start typing e.g., iPhone 16 Pro Max\" autocomplete=\"off\" aria-autocomplete=\"list\" aria-controls=\"pb-suggest-list\"\u003e\n\u003cdiv class=\"pb-suggest\" id=\"pb-suggest\" role=\"listbox\"\u003e\n\u003cul id=\"pb-suggest-list\"\u003e\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kpis\" aria-live=\"polite\"\u003e\n\u003cdiv class=\"pill\"\u003e\n\u003cspan\u003ePB capacity\u003c\/span\u003e\u003cb id=\"pb-capacity\"\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pill\"\u003e\n\u003cspan\u003eMax output\u003c\/span\u003e\u003cb id=\"pb-maxw\"\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pill\"\u003e\n\u003cspan\u003eFull recharges\u003c\/span\u003e\u003cb\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pill\"\u003e\n\u003cspan\u003eSpeed\u003c\/span\u003e\u003cb\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pill\"\u003e\n\u003cspan\u003eUsable energy\u003c\/span\u003e\u003cb\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pill\"\u003e\n\u003cspan\u003eAirline safe?\u003c\/span\u003e\u003cb\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"msg\" style=\"display: none;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"note\"\u003e* Based on typical phone specs. Real-world results vary with cable\/adapter, temperature, and settings.\u003c\/div\u003e\n\u003cscript\u003e\n  (function(){\n    var box = document.currentScript.parentElement; if(!box || box.__ready) return; box.__ready = true;\n\n    \/\/ 🔧 移动电源默认参数\n    const CONFIG = { powerBank:{ mAh:20000, cellV:3.7, outputW:145, usable:0.72, airlineWhLimit:100 }, defaultDevV:3.85 };\n\n    \/\/ 📚 机型数据库（可继续扩展）\n    const PHONE_DB = {\n\n  \/* ============================\n   *       APPLE iPHONE\n   * ============================ *\/\n\n  \"Apple iPhone 17\":{ mAh:3450, w:30 },\n  \"Apple iPhone 17 Plus\":{ mAh:4550, w:30 },\n  \"Apple iPhone 17 Pro\":{ mAh:3350, w:30 },\n  \"Apple iPhone 17 Pro Max\":{ mAh:4500, w:30 },\n\n  \"Apple iPhone 16\":{ mAh:3340, w:27 },\n  \"Apple iPhone 16 Plus\":{ mAh:4380, w:27 },\n  \"Apple iPhone 16 Pro\":{ mAh:3270, w:27 },\n  \"Apple iPhone 16 Pro Max\":{ mAh:4420, w:30 },\n\n  \"Apple iPhone 15\":{ mAh:3349, w:27 },\n  \"Apple iPhone 15 Plus\":{ mAh:4383, w:27 },\n  \"Apple iPhone 15 Pro\":{ mAh:3274, w:27 },\n  \"Apple iPhone 15 Pro Max\":{ mAh:4422, w:30 },\n\n  \"Apple iPhone 14\":{ mAh:3279, w:27 },\n  \"Apple iPhone 14 Plus\":{ mAh:4323, w:27 },\n  \"Apple iPhone 14 Pro\":{ mAh:3200, w:27 },\n  \"Apple iPhone 14 Pro Max\":{ mAh:4323, w:27 },\n\n  \"Apple iPhone 13 mini\":{ mAh:2438, w:20 },\n  \"Apple iPhone 13\":{ mAh:3227, w:20 },\n  \"Apple iPhone 13 Pro\":{ mAh:3095, w:23 },\n  \"Apple iPhone 13 Pro Max\":{ mAh:4352, w:27 },\n\n  \"Apple iPhone 12 mini\":{ mAh:2227, w:20 },\n  \"Apple iPhone 12\":{ mAh:2815, w:20 },\n  \"Apple iPhone 12 Pro\":{ mAh:2815, w:20 },\n  \"Apple iPhone 12 Pro Max\":{ mAh:3687, w:22 },\n\n  \"Apple iPhone 11\":{ mAh:3110, w:18 },\n  \"Apple iPhone 11 Pro\":{ mAh:3046, w:18 },\n  \"Apple iPhone 11 Pro Max\":{ mAh:3969, w:18 },\n\n  \"Apple iPhone XS\":{ mAh:2658, w:18 },\n  \"Apple iPhone XS Max\":{ mAh:3174, w:18 },\n  \"Apple iPhone XR\":{ mAh:2942, w:18 },\n\n  \"Apple iPhone X\":{ mAh:2716, w:18 },\n\n  \"Apple iPhone 8\":{ mAh:1821, w:15 },\n  \"Apple iPhone 8 Plus\":{ mAh:2691, w:15 },\n\n  \"Apple iPhone 7\":{ mAh:1960, w:12 },\n  \"Apple iPhone 7 Plus\":{ mAh:2900, w:12 },\n\n  \"Apple iPhone 6s\":{ mAh:1715, w:10 },\n  \"Apple iPhone 6s Plus\":{ mAh:2750, w:10 },\n\n  \"Apple iPhone 6\":{ mAh:1810, w:10 },\n  \"Apple iPhone 6 Plus\":{ mAh:2915, w:10 },\n\n  \"Apple iPhone SE (2022)\":{ mAh:2018, w:18 },\n  \"Apple iPhone SE (2020)\":{ mAh:1821, w:18 },\n\n\n  \/* ============================\n   *        SAMSUNG GALAXY\n   * ============================ *\/\n\n  \"Samsung Galaxy S24\":{ mAh:4000, w:30 },\n  \"Samsung Galaxy S24+\":{ mAh:4900, w:30 },\n  \"Samsung Galaxy S24 Ultra\":{ mAh:5000, w:45 },\n\n  \"Samsung Galaxy S23\":{ mAh:3900, w:25 },\n  \"Samsung Galaxy S23+\":{ mAh:4700, w:45 },\n  \"Samsung Galaxy S23 Ultra\":{ mAh:5000, w:45 },\n\n  \"Samsung Galaxy S22\":{ mAh:3700, w:25 },\n  \"Samsung Galaxy S22+\":{ mAh:4500, w:45 },\n  \"Samsung Galaxy S22 Ultra\":{ mAh:5000, w:45 },\n\n  \"Samsung Galaxy S21\":{ mAh:4000, w:25 },\n  \"Samsung Galaxy S21+\":{ mAh:4800, w:25 },\n  \"Samsung Galaxy S21 Ultra\":{ mAh:5000, w:25 },\n\n  \"Samsung Galaxy S20\":{ mAh:4000, w:25 },\n  \"Samsung Galaxy S20+\":{ mAh:4500, w:25 },\n  \"Samsung Galaxy S20 Ultra\":{ mAh:5000, w:45 },\n\n  \"Samsung Galaxy S10\":{ mAh:3400, w:15 },\n  \"Samsung Galaxy S10+\":{ mAh:4100, w:15 },\n  \"Samsung Galaxy S10e\":{ mAh:3100, w:15 },\n\n  \"Samsung Galaxy Note20\":{ mAh:4300, w:25 },\n  \"Samsung Galaxy Note20 Ultra\":{ mAh:4500, w:25 },\n  \"Samsung Galaxy Note10\":{ mAh:3500, w:25 },\n  \"Samsung Galaxy Note10+\":{ mAh:4300, w:45 },\n\n  \"Samsung Galaxy Z Flip5\":{ mAh:3700, w:25 },\n  \"Samsung Galaxy Z Fold5\":{ mAh:4400, w:25 },\n  \"Samsung Galaxy Z Flip4\":{ mAh:3700, w:25 },\n  \"Samsung Galaxy Z Fold4\":{ mAh:4400, w:25 },\n\n  \"Samsung Galaxy A55\":{ mAh:5000, w:25 },\n  \"Samsung Galaxy A54\":{ mAh:5000, w:25 },\n  \"Samsung Galaxy A53\":{ mAh:5000, w:25 },\n  \"Samsung Galaxy A34\":{ mAh:5000, w:25 },\n  \"Samsung Galaxy A24\":{ mAh:5000, w:25 },\n  \"Samsung Galaxy A14\":{ mAh:5000, w:15 },\n\n\n  \/* ============================\n   *         GOOGLE PIXEL\n   * ============================ *\/\n\n  \"Google Pixel 9 Pro\":{ mAh:null, w:30 },\n  \"Google Pixel 9\":{ mAh:null, w:30 },\n\n  \"Google Pixel 8 Pro\":{ mAh:5050, w:30 },\n  \"Google Pixel 8\":{ mAh:4575, w:27 },\n\n  \"Google Pixel 7 Pro\":{ mAh:5000, w:30 },\n  \"Google Pixel 7\":{ mAh:4355, w:20 },\n\n  \"Google Pixel 6 Pro\":{ mAh:5003, w:30 },\n  \"Google Pixel 6\":{ mAh:4614, w:30 },\n\n  \"Google Pixel 5\":{ mAh:4080, w:18 },\n  \"Google Pixel 4 XL\":{ mAh:3700, w:18 },\n  \"Google Pixel 4\":{ mAh:2800, w:18 },\n\n  \"Google Pixel 3 XL\":{ mAh:3430, w:18 },\n  \"Google Pixel 3\":{ mAh:2915, w:18 },\n\n  \"Google Pixel 2 XL\":{ mAh:3520, w:18 },\n  \"Google Pixel 2\":{ mAh:2700, w:18 },\n\n  \"Google Pixel XL\":{ mAh:3450, w:18 },\n  \"Google Pixel\":{ mAh:2770, w:18 },\n\n\n  \/* ============================\n   *           ONEPLUS\n   * ============================ *\/\n\n  \"OnePlus 12\":{ mAh:5400, w:80 },\n  \"OnePlus 11\":{ mAh:5000, w:80 },\n  \"OnePlus 10 Pro\":{ mAh:5000, w:80 },\n  \"OnePlus 10T\":{ mAh:4800, w:80 },\n\n  \"OnePlus 9 Pro\":{ mAh:4500, w:65 },\n  \"OnePlus 9\":{ mAh:4500, w:65 },\n\n  \"OnePlus 8 Pro\":{ mAh:4510, w:30 },\n  \"OnePlus 8T\":{ mAh:4500, w:65 },\n\n  \"OnePlus Nord 3\":{ mAh:5000, w:80 },\n  \"OnePlus Nord 2T\":{ mAh:4500, w:80 },\n\n\n  \/* ============================\n   *            OPPO\n   * ============================ *\/\n\n  \"OPPO Find X7\":{ mAh:5000, w:80 },\n  \"OPPO Find X6\":{ mAh:5000, w:80 },\n  \"OPPO Find X5 Pro\":{ mAh:5000, w:80 },\n\n  \"OPPO Reno 12\":{ mAh:5000, w:67 },\n  \"OPPO Reno 11\":{ mAh:5000, w:67 },\n  \"OPPO Reno 10 Pro\":{ mAh:4600, w:80 },\n  \"OPPO Reno 10\":{ mAh:5000, w:67 },\n  \"OPPO Reno 9 Pro+\":{ mAh:4700, w:80 },\n  \"OPPO Reno 8 Pro\":{ mAh:4500, w:80 },\n  \"OPPO Reno 8\":{ mAh:4500, w:80 },\n\n  \"OPPO A98\":{ mAh:5000, w:67 },\n  \"OPPO A78\":{ mAh:5000, w:33 },\n\n\n  \/* ============================\n   *         XIAOMI \/ REDMI\n   * ============================ *\/\n\n  \"Xiaomi 14\":{ mAh:4610, w:90 },\n  \"Xiaomi 14 Pro\":{ mAh:4880, w:120 },\n\n  \"Xiaomi 13\":{ mAh:4500, w:67 },\n  \"Xiaomi 13 Pro\":{ mAh:4820, w:120 },\n\n  \"Xiaomi 12\":{ mAh:4500, w:67 },\n  \"Xiaomi 12 Pro\":{ mAh:4600, w:120 },\n\n  \"Xiaomi 12T\":{ mAh:5000, w:120 },\n  \"Xiaomi 13T\":{ mAh:5000, w:67 },\n\n  \"Redmi Note 13 Pro+\":{ mAh:5000, w:120 },\n  \"Redmi Note 13 Pro\":{ mAh:5100, w:67 },\n  \"Redmi Note 13\":{ mAh:5000, w:33 },\n\n  \"Redmi Note 12 Pro+\":{ mAh:5000, w:120 },\n  \"Redmi Note 12 Pro\":{ mAh:5000, w:67 },\n  \"Redmi Note 12\":{ mAh:5000, w:33 },\n\n  \"Redmi Note 11 Pro\":{ mAh:5160, w:67 },\n  \"Redmi Note 11\":{ mAh:5000, w:33 },\n\n\n  \/* ============================\n   *            HUAWEI\n   * ============================ *\/\n\n  \"Huawei P60 Pro\":{ mAh:4815, w:66 },\n  \"Huawei P50 Pro\":{ mAh:4360, w:66 },\n  \"Huawei P40 Pro\":{ mAh:4200, w:40 },\n  \"Huawei P30 Pro\":{ mAh:4200, w:40 },\n\n  \"Huawei Mate 50 Pro\":{ mAh:4700, w:66 },\n  \"Huawei Mate 40 Pro\":{ mAh:4400, w:66 },\n  \"Huawei Mate 30 Pro\":{ mAh:4500, w:40 },\n\n\n  \/* ============================\n   *             vivo\n   * ============================ *\/\n\n  \"vivo X100 Pro\":{ mAh:5400, w:100 },\n  \"vivo X100\":{ mAh:5000, w:120 },\n  \"vivo X90 Pro+\":{ mAh:4700, w:80 },\n  \"vivo X90 Pro\":{ mAh:4870, w:120 },\n  \"vivo X80 Pro\":{ mAh:4700, w:80 },\n  \"vivo V30 Pro\":{ mAh:5000, w:80 },\n\n\n  \/* ============================\n   *             SONY\n   * ============================ *\/\n\n  \"Sony Xperia 1 VI\":{ mAh:5000, w:30 },\n  \"Sony Xperia 1 V\":{ mAh:5000, w:30 },\n  \"Sony Xperia 5 V\":{ mAh:5000, w:30 },\n  \"Sony Xperia 10 VI\":{ mAh:5000, w:30 },\n  \"Sony Xperia 10 V\":{ mAh:5000, w:30 },\n  \"Sony Xperia Pro-I\":{ mAh:4500, w:30 },\n\n\n  \/* ============================\n   *   Nothing \/ Realme \/ Honor\n   * ============================ *\/\n\n  \"Nothing Phone (2)\":{ mAh:4700, w:45 },\n  \"Nothing Phone (1)\":{ mAh:4500, w:33 },\n\n  \"realme GT 5 Pro\":{ mAh:5400, w:100 },\n  \"realme 12 Pro+\":{ mAh:5000, w:67 },\n\n  \"HONOR Magic6 Pro\":{ mAh:5600, w:80 },\n  \"HONOR 90\":{ mAh:5000, w:66 }\n\n};\n    \/\/ ====== 自定义下拉（替代 datalist） ======\n    const input = box.querySelector('#pb-phone-model');\n    const wrap  = box.querySelector('.pb-left-caret');\n    const panel = box.querySelector('#pb-suggest');\n    const list  = box.querySelector('#pb-suggest-list');\n    const caret = wrap.querySelector('.pb-caret-btn');\n    const names = Object.keys(PHONE_DB);\n    const N_MAX = 200;\n    let activeIndex = -1;\n    let suppressClose = false;   \/\/ ⛔ 抑制 blur 关闭（解决箭头点击被关）\n    let lastSelected = '';       \/\/ ✅ 记录“已选中”的机型\n\n    const INIT_MSG = 'Select your phone model to estimate full recharges and speed.';\n\n    function renderOptions(filter){\n      const q = (filter||'').trim().toLowerCase();\n      const data = names.filter(n =\u003e !q || n.toLowerCase().includes(q)).slice(0,N_MAX);\n      list.innerHTML='';\n      if(data.length===0){ list.innerHTML='\u003cli class=\"empty\" aria-disabled=\"true\"\u003eNo matches\u003c\/li\u003e'; return; }\n      data.forEach((name,i)=\u003e{\n        const li=document.createElement('li');\n        li.textContent=name; li.setAttribute('role','option');\n        li.addEventListener('mousedown', e=\u003e{ e.preventDefault(); selectName(name); });\n        list.appendChild(li);\n      });\n      activeIndex=-1;\n    }\n    function openPanel(){\n      renderOptions(input.value);\n      panel.classList.add('open'); wrap.setAttribute('aria-expanded','true');\n    }\n    function closePanel(){\n      panel.classList.remove('open'); wrap.setAttribute('aria-expanded','false');\n      activeIndex=-1; Array.from(list.children).forEach(li=\u003eli.classList.remove('active'));\n    }\n    function moveActive(step){\n      const items=Array.from(list.querySelectorAll('li:not(.empty)')); if(!items.length) return;\n      activeIndex=(activeIndex+step+items.length)%items.length;\n      items.forEach((li,idx)=\u003eli.classList.toggle('active', idx===activeIndex));\n      const li=items[activeIndex], rTop=li.offsetTop, rBot=rTop+li.offsetHeight;\n      if(rTop \u003c panel.scrollTop) panel.scrollTop=rTop;\n      else if(rBot \u003e panel.scrollTop+panel.clientHeight) panel.scrollTop=rBot-panel.clientHeight;\n    }\n    function selectActive(){\n      const items=Array.from(list.querySelectorAll('li:not(.empty)'));\n      if(activeIndex\u003e=0 \u0026\u0026 activeIndex\u003citems.length){ selectName(items[activeIndex].textContent); }\n    }\n    function selectName(name){\n      input.value=name;\n      lastSelected = name;       \/\/ ✅ 标记为“已选中”的有效机型\n      closePanel();\n      calcByModel(name);\n    }\n\n    \/\/ 👉 箭头按下：抑制 blur 关闭；并切换下拉\n    caret.addEventListener('pointerdown', e=\u003e{\n      suppressClose = true;\n      input.focus({preventScroll:true});\n      e.preventDefault();\n    });\n    caret.addEventListener('click', e=\u003e{\n      if(panel.classList.contains('open')) closePanel(); else openPanel();\n      setTimeout(()=\u003e{ suppressClose=false; }, 200);\n    });\n\n    \/\/ === 新增：统一重置到初始状态 ===\n    function resetUI(){\n      const k=box.querySelectorAll('.kpis .pill b');\n      const pb = CONFIG.powerBank;\n      const pbWh=((pb.mAh*pb.cellV\/1000)*pb.usable);\n\n      \/\/ 固定显示：容量、最大输出、Wh、是否航空可携\n      box.querySelector('#pb-capacity').textContent = pb.mAh + ' mAh';\n      box.querySelector('#pb-maxw').textContent    = pb.outputW + ' W';\n\n      const base=2;\n      k[base+0].textContent = '—';                \/\/ Full recharges\n      k[base+1].textContent = '—';                \/\/ Speed\n      k[base+2].textContent = pbWh.toFixed(1)+' Wh';\n      k[base+3].textContent = (pbWh\u003cpb.airlineWhLimit)?'✔ YES':'❌ NO';\n\n      const msg=box.querySelector('.msg');\n      msg.style.display='block'; msg.className='msg warn';\n      msg.textContent = INIT_MSG;\n    }\n\n    \/\/ 输入过滤与交互（空值\/无匹配 ⇒ 立刻重置）\n    input.addEventListener('focus', ()=\u003e{ openPanel(); });\n\n    input.addEventListener('input', ()=\u003e{\n      const v = input.value.trim();\n      \/\/ 打开并实时过滤\n      if(!panel.classList.contains('open')) openPanel(); else renderOptions(v);\n\n      \/\/ 若为空或不是一个“已知机型的精确匹配”，并且此前展示过结果 ⇒ 重置\n      if(v==='' || !PHONE_DB[v]){\n        resetUI();\n        lastSelected = ''; \/\/ 取消已选状态\n      }\n    });\n\n    input.addEventListener('blur', ()=\u003e{\n      setTimeout(()=\u003e{\n        const active = document.activeElement;\n        if(suppressClose) return;\n        if(wrap.contains(active)) return;\n        closePanel();\n\n        \/\/ 失焦后做一次兜底校验\n        const v = input.value.trim();\n        if(v==='' || !PHONE_DB[v]){\n          resetUI();\n          lastSelected = '';\n        }else if(v!==lastSelected){\n          \/\/ 如果直接手输成了某个精确可识别机型，也允许计算\n          lastSelected = v;\n          calcByModel(v);\n        }\n      }, 0);\n    });\n\n    \/\/ 键盘导航（桌面）\n    input.addEventListener('keydown', e=\u003e{\n      if(!panel.classList.contains('open')) return;\n      if(e.key==='ArrowDown'){ e.preventDefault(); moveActive(1); }\n      else if(e.key==='ArrowUp'){ e.preventDefault(); moveActive(-1); }\n      else if(e.key==='Enter'){ e.preventDefault(); selectActive(); }\n      else if(e.key==='Escape'){ e.preventDefault(); closePanel(); }\n    });\n\n    \/\/ 点击外部关闭（移动端\/桌面）\n    document.addEventListener('pointerdown', (e)=\u003e{\n      if(!box.contains(e.target)) closePanel();\n    });\n\n    \/\/ ====== 计算逻辑 ======\n    function calcByModel(modelName){\n      const msg = box.querySelector('.msg');\n      const k = box.querySelectorAll('.kpis .pill b');\n      const spec = PHONE_DB[modelName];\n\n      \/\/ 🔁 如果不存在（不在数据库）⇒ 直接回到初始状态（不再显示“未知机型”告警）\n      if(!spec){ resetUI(); return; }\n\n      const pb_mAh=CONFIG.powerBank.mAh, pb_V=CONFIG.powerBank.cellV, pb_usable=CONFIG.powerBank.usable, pb_outputW=CONFIG.powerBank.outputW, limitWh=CONFIG.powerBank.airlineWhLimit;\n      const dev_mAh=(spec.mAh \u0026\u0026 spec.mAh\u003e0)? spec.mAh : null, dev_W=(spec.w \u0026\u0026 spec.w\u003e0)? spec.w : 20, dev_V=spec.v || CONFIG.defaultDevV;\n\n      const pbWh=(pb_mAh*pb_V\/1000)*pb_usable, dWh=dev_mAh?(dev_mAh*dev_V\/1000):NaN, times=(pbWh\u003e0\u0026\u0026isFinite(dWh))?(pbWh\/dWh):NaN;\n      const effW=Math.min(pb_outputW,dev_W), speed=!isFinite(effW)||effW\u003c=0?'—':(effW\u003c10?'Slow':effW\u003c20?'Standard':effW\u003c30?'Fast':'Super Fast');\n      const safe=pbWh\u003e0?(pbWh\u003climitWh?'✔ YES':'❌ NO'):'—';\n\n      box.querySelector('#pb-capacity').textContent = pb_mAh + ' mAh';\n      box.querySelector('#pb-maxw').textContent    = pb_outputW + ' W';\n\n      const base=2;\n      k[base+0].textContent = isFinite(times)? (times.toFixed(1)+'×') : '—';\n      k[base+1].textContent = speed;\n      k[base+2].textContent = pbWh.toFixed(1)+' Wh';\n      k[base+3].textContent = safe;\n\n      msg.style.display='block';\n      if(!dev_mAh){\n        msg.className='msg warn';\n        msg.innerHTML='Typical fast-charge power applied. Battery capacity for this model is not finalized; results are approximate.';\n      }else if(times\u003c1){\n        msg.className='msg warn';\n        msg.innerHTML='Less than \u003cb\u003e1 full recharge\u003c\/b\u003e — consider 10,000 mAh or 20,000 mAh.';\n      }else if(times\u003c2){\n        msg.className='msg';\n        msg.innerHTML='Around \u003cb\u003e'+times.toFixed(1)+'\u003c\/b\u003e full charges — great for daily top-ups.';\n      }else{\n        msg.className='msg';\n        msg.innerHTML='About \u003cb\u003e'+times.toFixed(1)+'\u003c\/b\u003e full charges — ideal for travel\/all-day use.';\n      }\n    }\n\n    \/\/ 初始展示（封装为 resetUI）\n    (function init(){ resetUI(); })();\n  })();\n  \u003c\/script\u003e\n\u003c\/div\u003e\n\u003c!-- \/One-Field Power Bank Calculator · Left-Caret (reset on empty\/unknown) --\u003e\n\u003cp style=\"margin: 0;\"\u003eThe EnerGeek GR11 is the perfect choice for creators, travellers, university students, and business professionals who need \u003cstrong\u003emaximum charging power without carrying a wall charger\u003c\/strong\u003e. If you want the strongest, most reliable power bank for your laptop and daily devices — this is it.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"Baseus","offers":[{"title":"Space Gray","offer_id":48432047718641,"sku":"E0027B01","price":94.95,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027B01-0.png?v=1765885876"},{"product_id":"baseus-enercore-cr11-10000mah-45w-power-bank","title":"Baseus EnerCore CR11 10000mAh 45W Power Bank with Retractable Cable","description":"\u003cdiv style=\"max-width: 1500px; margin: 0 auto; padding: 32px 24px; font-family: 'Inter',system-ui,Arial,sans-serif; line-height: 1.7; color: #0a0f1e;\"\u003e\n\u003c!-- 🔥 High-Conversion Title --\u003e\n\u003ch2 style=\"text-align: center; font-size: 30px; font-weight: 800; margin-bottom: 12px;\"\u003eBaseus EnerCore CR11 10000mAh 45W Power Bank with Retractable Cable – Cosmic Black\u003c\/h2\u003e\n\u003c!-- 🔥 Story Section: Emotional + Sales Driven --\u003e\n\u003cdiv style=\"background: #f8f3eb; padding: 26px; border-radius: 18px; box-shadow: 0 6px 14px rgba(0,0,0,0.06); margin-bottom: 36px;\"\u003e\n\u003ch3 style=\"font-size: 22px; font-weight: bold; margin-bottom: 12px; text-align: center;\"\u003eCompact Size. 45W Fast Charging. Built-In Cable for Instant Power.\u003c\/h3\u003e\n\u003cp\u003eThe \u003cstrong\u003eBaseus EnerCore CR11\u003c\/strong\u003e is designed for people who want fast, reliable charging without carrying extra cables or bulky power banks. Featuring a strong \u003cstrong\u003e45W PD output\u003c\/strong\u003e and a unique \u003cstrong\u003eretractable USB-C\/iP cable\u003c\/strong\u003e, it’s the perfect everyday power solution for phones, tablets, earbuds, and portable devices.\u003c\/p\u003e\n\u003cp\u003eWhether you're commuting, travelling, or studying, the CR11 gives you \u003cstrong\u003ehigh-speed charging in a pocket-sized design\u003c\/strong\u003e—always ready when you need it.\u003c\/p\u003e\n\u003cul style=\"padding-left: 20px; margin-top: 16px;\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e45W Fast Charging\u003c\/strong\u003e — Ideal for tablets, iPads, phones \u0026amp; small USB-C devices.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRetractable Dual-Purpose Cable\u003c\/strong\u003e — Charge instantly with zero cable clutter.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e10,000mAh Capacity\u003c\/strong\u003e — Enough for 1–2 full smartphone charges.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eUSB-C + USB-A Ports\u003c\/strong\u003e — Universal compatibility for all devices.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCompact \u0026amp; Premium Build\u003c\/strong\u003e — Designed for travel and daily carry.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027G01-10.jpg?v=1765886759\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027G01-8.jpg?v=1765886758\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027G01-7.jpg?v=1765886758\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027G01-6.jpg?v=1765886758\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027G01-5.jpg?v=1765886758\" alt=\"\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- 🔥 Technical Specifications --\u003e\n\u003ch3 style=\"font-size: 22px; font-weight: bold; margin-bottom: 10px;\"\u003eTechnical Specifications\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eModel:\u003c\/strong\u003e PPFLS-2045\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eCapacity:\u003c\/strong\u003e 10000mAh (7.3V \/ 73Wh)\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eCell Type:\u003c\/strong\u003e 5000mAh × 2 High-Density Cells\u003c\/p\u003e\n\u003ch4 style=\"margin-top: 16px; font-size: 18px; font-weight: bold;\"\u003eInput\u003c\/h4\u003e\n\u003cul style=\"padding-left: 20px;\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eUSB-C \/ iP Input:\u003c\/strong\u003e 5V⎓3A, 9V⎓3A, 12V⎓2.5A, 15V⎓2A\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch4 style=\"margin-top: 16px; font-size: 18px; font-weight: bold;\"\u003eOutput\u003c\/h4\u003e\n\u003cul style=\"padding-left: 20px;\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eiP Output:\u003c\/strong\u003e 5V⎓3A, 9V⎓3A, 12V⎓2.5A, 15V⎓2A\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eUSB-C Output:\u003c\/strong\u003e 5V⎓3A, 9V⎓3A, 12V⎓3A, 15V⎓3A, 20V⎓2.25A\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eUSB-A Output:\u003c\/strong\u003e 5V⎓3A, 9V⎓2A, 12V⎓1.5A, 10V⎓2.25A, 11V⎓3A\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTotal Output:\u003c\/strong\u003e 5V⎓3A\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027G01-9.jpg?v=1765886758\" alt=\"\"\u003e\u003c\/p\u003e\n  \u003c!-- ✅ One-Field Power Bank Calculator · Left-Caret + Custom Autocomplete (reset on empty\/unknown) --\u003e\n\u003cstyle\u003e\n  .pb-onefield *{box-sizing:border-box}\n  .pb-onefield h4{margin:0 0 8px;font-size:16px}\n  .pb-onefield label{display:block;font-weight:600;margin:6px 0 6px}\n  .pb-onefield input{width:100%;padding:10px;border:1px solid #ddd;border-radius:10px;background:#fff}\n  .pb-onefield .kpis{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}\n  .pb-onefield .pill{flex:1 1 120px;min-width:120px;text-align:center;border:1px solid #e5e5e5;background:#fff;border-radius:10px;padding:10px}\n  .pb-onefield .pill b{display:block;font-size:18px}\n  .pb-onefield .msg{margin-top:10px;border-left:4px solid #22c55e;background:#eefaf1;padding:10px;border-radius:8px}\n  .pb-onefield .msg.warn{border-left-color:#ffa500;background:#fff7e6}\n  .pb-onefield .note{color:#666;font-size:12px;margin-top:8px}\n\n  \/* ⬅️ 左侧箭头输入容器 *\/\n  .pb-onefield .pb-left-caret{\n    position:relative;\n    overflow:visible; \/* 让下拉不被父容器裁切 *\/\n  }\n  .pb-onefield .pb-left-caret input{\n    width:100%;\n    padding:10px 12px 10px 36px; \/* 左侧箭头空间 *\/\n    border:1px solid #ddd; border-radius:10px; background:#fff;\n  }\n  .pb-onefield .pb-caret-btn{\n    position:absolute; left:10px; top:50%; transform:translateY(-50%);\n    border:0; background:transparent; cursor:pointer; line-height:1; padding:0 2px;\n    font-size:16px; color:#666;\n    touch-action:manipulation;\n  }\n  .pb-onefield .pb-caret-btn:focus{outline:2px solid #c9defc; border-radius:4px}\n\n  \/* 🔽 自定义下拉列表 *\/\n  .pb-onefield .pb-suggest{\n    position:absolute; z-index:9999; left:0; right:0; top:100%; margin-top:6px;\n    max-height:260px; overflow:auto; background:#fff; border:1px solid #e5e5e5;\n    border-radius:10px; box-shadow:0 6px 20px rgba(0,0,0,.08); display:none;\n  }\n  .pb-onefield .pb-suggest.open{display:block}\n  .pb-onefield .pb-suggest ul{list-style:none; margin:0; padding:6px}\n  .pb-onefield .pb-suggest li{\n    padding:8px 10px; border-radius:8px; cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;\n  }\n  .pb-onefield .pb-suggest li:hover,\n  .pb-onefield .pb-suggest li.active{background:#f5f7fb}\n  .pb-onefield .pb-suggest .empty{padding:10px; color:#777}\n\u003c\/style\u003e\n\u003cdiv class=\"pb-onefield\" style=\"margin-top: 16px; padding: 14px; border: 1px solid #eee; border-radius: 12px; background: #fafafa; font: 14px\/1.6 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif; color: #111;\"\u003e\n\u003ch4 style=\"text-align: center; font-size: 22px; font-weight: bold; margin-bottom: 8px;\"\u003ePower Bank Quick Calculator\u003c\/h4\u003e\n\u003c!-- 唯一输入：机型（左侧箭头，点击展开\/收起） --\u003e \u003clabel\u003ePhone model\u003c\/label\u003e\n\u003cdiv class=\"pb-left-caret\" role=\"combobox\" aria-haspopup=\"listbox\" aria-expanded=\"false\"\u003e\n\u003cbutton type=\"button\" class=\"pb-caret-btn\" aria-label=\"Open models\"\u003e▾\u003c\/button\u003e \u003cinput type=\"text\" id=\"pb-phone-model\" placeholder=\"Start typing e.g., iPhone 16 Pro Max\" autocomplete=\"off\" aria-autocomplete=\"list\" aria-controls=\"pb-suggest-list\"\u003e\n\u003cdiv class=\"pb-suggest\" id=\"pb-suggest\" role=\"listbox\"\u003e\n\u003cul id=\"pb-suggest-list\"\u003e\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kpis\" aria-live=\"polite\"\u003e\n\u003cdiv class=\"pill\"\u003e\n\u003cspan\u003ePB capacity\u003c\/span\u003e\u003cb id=\"pb-capacity\"\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pill\"\u003e\n\u003cspan\u003eMax output\u003c\/span\u003e\u003cb id=\"pb-maxw\"\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pill\"\u003e\n\u003cspan\u003eFull recharges\u003c\/span\u003e\u003cb\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pill\"\u003e\n\u003cspan\u003eSpeed\u003c\/span\u003e\u003cb\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pill\"\u003e\n\u003cspan\u003eUsable energy\u003c\/span\u003e\u003cb\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pill\"\u003e\n\u003cspan\u003eAirline safe?\u003c\/span\u003e\u003cb\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"msg\" style=\"display: none;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"note\"\u003e* Based on typical phone specs. Real-world results vary with cable\/adapter, temperature, and settings.\u003c\/div\u003e\n\u003cscript\u003e\n  (function(){\n    var box = document.currentScript.parentElement; if(!box || box.__ready) return; box.__ready = true;\n\n    \/\/ 🔧 移动电源默认参数\n    const CONFIG = { powerBank:{ mAh:10000, cellV:3.7, outputW:45, usable:0.72, airlineWhLimit:100 }, defaultDevV:3.85 };\n\n    \/\/ 📚 机型数据库（可继续扩展）\n    const PHONE_DB = {\n\n  \/* ============================\n   *       APPLE iPHONE\n   * ============================ *\/\n\n  \"Apple iPhone 17\":{ mAh:3450, w:30 },\n  \"Apple iPhone 17 Plus\":{ mAh:4550, w:30 },\n  \"Apple iPhone 17 Pro\":{ mAh:3350, w:30 },\n  \"Apple iPhone 17 Pro Max\":{ mAh:4500, w:30 },\n\n  \"Apple iPhone 16\":{ mAh:3340, w:27 },\n  \"Apple iPhone 16 Plus\":{ mAh:4380, w:27 },\n  \"Apple iPhone 16 Pro\":{ mAh:3270, w:27 },\n  \"Apple iPhone 16 Pro Max\":{ mAh:4420, w:30 },\n\n  \"Apple iPhone 15\":{ mAh:3349, w:27 },\n  \"Apple iPhone 15 Plus\":{ mAh:4383, w:27 },\n  \"Apple iPhone 15 Pro\":{ mAh:3274, w:27 },\n  \"Apple iPhone 15 Pro Max\":{ mAh:4422, w:30 },\n\n  \"Apple iPhone 14\":{ mAh:3279, w:27 },\n  \"Apple iPhone 14 Plus\":{ mAh:4323, w:27 },\n  \"Apple iPhone 14 Pro\":{ mAh:3200, w:27 },\n  \"Apple iPhone 14 Pro Max\":{ mAh:4323, w:27 },\n\n  \"Apple iPhone 13 mini\":{ mAh:2438, w:20 },\n  \"Apple iPhone 13\":{ mAh:3227, w:20 },\n  \"Apple iPhone 13 Pro\":{ mAh:3095, w:23 },\n  \"Apple iPhone 13 Pro Max\":{ mAh:4352, w:27 },\n\n  \"Apple iPhone 12 mini\":{ mAh:2227, w:20 },\n  \"Apple iPhone 12\":{ mAh:2815, w:20 },\n  \"Apple iPhone 12 Pro\":{ mAh:2815, w:20 },\n  \"Apple iPhone 12 Pro Max\":{ mAh:3687, w:22 },\n\n  \"Apple iPhone 11\":{ mAh:3110, w:18 },\n  \"Apple iPhone 11 Pro\":{ mAh:3046, w:18 },\n  \"Apple iPhone 11 Pro Max\":{ mAh:3969, w:18 },\n\n  \"Apple iPhone XS\":{ mAh:2658, w:18 },\n  \"Apple iPhone XS Max\":{ mAh:3174, w:18 },\n  \"Apple iPhone XR\":{ mAh:2942, w:18 },\n\n  \"Apple iPhone X\":{ mAh:2716, w:18 },\n\n  \"Apple iPhone 8\":{ mAh:1821, w:15 },\n  \"Apple iPhone 8 Plus\":{ mAh:2691, w:15 },\n\n  \"Apple iPhone 7\":{ mAh:1960, w:12 },\n  \"Apple iPhone 7 Plus\":{ mAh:2900, w:12 },\n\n  \"Apple iPhone 6s\":{ mAh:1715, w:10 },\n  \"Apple iPhone 6s Plus\":{ mAh:2750, w:10 },\n\n  \"Apple iPhone 6\":{ mAh:1810, w:10 },\n  \"Apple iPhone 6 Plus\":{ mAh:2915, w:10 },\n\n  \"Apple iPhone SE (2022)\":{ mAh:2018, w:18 },\n  \"Apple iPhone SE (2020)\":{ mAh:1821, w:18 },\n\n\n  \/* ============================\n   *        SAMSUNG GALAXY\n   * ============================ *\/\n\n  \"Samsung Galaxy S24\":{ mAh:4000, w:30 },\n  \"Samsung Galaxy S24+\":{ mAh:4900, w:45 },\n  \"Samsung Galaxy S24 Ultra\":{ mAh:5000, w:45 },\n\n  \"Samsung Galaxy S23\":{ mAh:3900, w:25 },\n  \"Samsung Galaxy S23+\":{ mAh:4700, w:45 },\n  \"Samsung Galaxy S23 Ultra\":{ mAh:5000, w:45 },\n\n  \"Samsung Galaxy S22\":{ mAh:3700, w:25 },\n  \"Samsung Galaxy S22+\":{ mAh:4500, w:45 },\n  \"Samsung Galaxy S22 Ultra\":{ mAh:5000, w:45 },\n\n  \"Samsung Galaxy S21\":{ mAh:4000, w:25 },\n  \"Samsung Galaxy S21+\":{ mAh:4800, w:25 },\n  \"Samsung Galaxy S21 Ultra\":{ mAh:5000, w:25 },\n\n  \"Samsung Galaxy S20\":{ mAh:4000, w:25 },\n  \"Samsung Galaxy S20+\":{ mAh:4500, w:25 },\n  \"Samsung Galaxy S20 Ultra\":{ mAh:5000, w:45 },\n\n  \"Samsung Galaxy S10\":{ mAh:3400, w:15 },\n  \"Samsung Galaxy S10+\":{ mAh:4100, w:15 },\n  \"Samsung Galaxy S10e\":{ mAh:3100, w:15 },\n\n  \"Samsung Galaxy Note20\":{ mAh:4300, w:25 },\n  \"Samsung Galaxy Note20 Ultra\":{ mAh:4500, w:25 },\n  \"Samsung Galaxy Note10\":{ mAh:3500, w:25 },\n  \"Samsung Galaxy Note10+\":{ mAh:4300, w:45 },\n\n  \"Samsung Galaxy Z Flip5\":{ mAh:3700, w:25 },\n  \"Samsung Galaxy Z Fold5\":{ mAh:4400, w:25 },\n  \"Samsung Galaxy Z Flip4\":{ mAh:3700, w:25 },\n  \"Samsung Galaxy Z Fold4\":{ mAh:4400, w:25 },\n\n  \"Samsung Galaxy A55\":{ mAh:5000, w:25 },\n  \"Samsung Galaxy A54\":{ mAh:5000, w:25 },\n  \"Samsung Galaxy A53\":{ mAh:5000, w:25 },\n  \"Samsung Galaxy A34\":{ mAh:5000, w:25 },\n  \"Samsung Galaxy A24\":{ mAh:5000, w:25 },\n  \"Samsung Galaxy A14\":{ mAh:5000, w:15 },\n\n\n  \/* ============================\n   *         GOOGLE PIXEL\n   * ============================ *\/\n\n  \"Google Pixel 9 Pro\":{ mAh:null, w:30 },\n  \"Google Pixel 9\":{ mAh:null, w:30 },\n\n  \"Google Pixel 8 Pro\":{ mAh:5050, w:30 },\n  \"Google Pixel 8\":{ mAh:4575, w:27 },\n\n  \"Google Pixel 7 Pro\":{ mAh:5000, w:30 },\n  \"Google Pixel 7\":{ mAh:4355, w:20 },\n\n  \"Google Pixel 6 Pro\":{ mAh:5003, w:30 },\n  \"Google Pixel 6\":{ mAh:4614, w:30 },\n\n  \"Google Pixel 5\":{ mAh:4080, w:18 },\n  \"Google Pixel 4 XL\":{ mAh:3700, w:18 },\n  \"Google Pixel 4\":{ mAh:2800, w:18 },\n\n  \"Google Pixel 3 XL\":{ mAh:3430, w:18 },\n  \"Google Pixel 3\":{ mAh:2915, w:18 },\n\n  \"Google Pixel 2 XL\":{ mAh:3520, w:18 },\n  \"Google Pixel 2\":{ mAh:2700, w:18 },\n\n  \"Google Pixel XL\":{ mAh:3450, w:18 },\n  \"Google Pixel\":{ mAh:2770, w:18 },\n\n\n  \/* ============================\n   *           ONEPLUS\n   * ============================ *\/\n\n  \"OnePlus 12\":{ mAh:5400, w:80 },\n  \"OnePlus 11\":{ mAh:5000, w:80 },\n  \"OnePlus 10 Pro\":{ mAh:5000, w:80 },\n  \"OnePlus 10T\":{ mAh:4800, w:80 },\n\n  \"OnePlus 9 Pro\":{ mAh:4500, w:65 },\n  \"OnePlus 9\":{ mAh:4500, w:65 },\n\n  \"OnePlus 8 Pro\":{ mAh:4510, w:30 },\n  \"OnePlus 8T\":{ mAh:4500, w:65 },\n\n  \"OnePlus Nord 3\":{ mAh:5000, w:80 },\n  \"OnePlus Nord 2T\":{ mAh:4500, w:80 },\n\n\n  \/* ============================\n   *            OPPO\n   * ============================ *\/\n\n  \"OPPO Find X7\":{ mAh:5000, w:80 },\n  \"OPPO Find X6\":{ mAh:5000, w:80 },\n  \"OPPO Find X5 Pro\":{ mAh:5000, w:80 },\n\n  \"OPPO Reno 12\":{ mAh:5000, w:67 },\n  \"OPPO Reno 11\":{ mAh:5000, w:67 },\n  \"OPPO Reno 10 Pro\":{ mAh:4600, w:80 },\n  \"OPPO Reno 10\":{ mAh:5000, w:67 },\n  \"OPPO Reno 9 Pro+\":{ mAh:4700, w:80 },\n  \"OPPO Reno 8 Pro\":{ mAh:4500, w:80 },\n  \"OPPO Reno 8\":{ mAh:4500, w:80 },\n\n  \"OPPO A98\":{ mAh:5000, w:67 },\n  \"OPPO A78\":{ mAh:5000, w:33 },\n\n\n  \/* ============================\n   *         XIAOMI \/ REDMI\n   * ============================ *\/\n\n  \"Xiaomi 14\":{ mAh:4610, w:90 },\n  \"Xiaomi 14 Pro\":{ mAh:4880, w:120 },\n\n  \"Xiaomi 13\":{ mAh:4500, w:67 },\n  \"Xiaomi 13 Pro\":{ mAh:4820, w:120 },\n\n  \"Xiaomi 12\":{ mAh:4500, w:67 },\n  \"Xiaomi 12 Pro\":{ mAh:4600, w:120 },\n\n  \"Xiaomi 12T\":{ mAh:5000, w:120 },\n  \"Xiaomi 13T\":{ mAh:5000, w:67 },\n\n  \"Redmi Note 13 Pro+\":{ mAh:5000, w:120 },\n  \"Redmi Note 13 Pro\":{ mAh:5100, w:67 },\n  \"Redmi Note 13\":{ mAh:5000, w:33 },\n\n  \"Redmi Note 12 Pro+\":{ mAh:5000, w:120 },\n  \"Redmi Note 12 Pro\":{ mAh:5000, w:67 },\n  \"Redmi Note 12\":{ mAh:5000, w:33 },\n\n  \"Redmi Note 11 Pro\":{ mAh:5160, w:67 },\n  \"Redmi Note 11\":{ mAh:5000, w:33 },\n\n\n  \/* ============================\n   *            HUAWEI\n   * ============================ *\/\n\n  \"Huawei P60 Pro\":{ mAh:4815, w:66 },\n  \"Huawei P50 Pro\":{ mAh:4360, w:66 },\n  \"Huawei P40 Pro\":{ mAh:4200, w:40 },\n  \"Huawei P30 Pro\":{ mAh:4200, w:40 },\n\n  \"Huawei Mate 50 Pro\":{ mAh:4700, w:66 },\n  \"Huawei Mate 40 Pro\":{ mAh:4400, w:66 },\n  \"Huawei Mate 30 Pro\":{ mAh:4500, w:40 },\n\n\n  \/* ============================\n   *             vivo\n   * ============================ *\/\n\n  \"vivo X100 Pro\":{ mAh:5400, w:100 },\n  \"vivo X100\":{ mAh:5000, w:120 },\n  \"vivo X90 Pro+\":{ mAh:4700, w:80 },\n  \"vivo X90 Pro\":{ mAh:4870, w:120 },\n  \"vivo X80 Pro\":{ mAh:4700, w:80 },\n  \"vivo V30 Pro\":{ mAh:5000, w:80 },\n\n\n  \/* ============================\n   *             SONY\n   * ============================ *\/\n\n  \"Sony Xperia 1 VI\":{ mAh:5000, w:30 },\n  \"Sony Xperia 1 V\":{ mAh:5000, w:30 },\n  \"Sony Xperia 5 V\":{ mAh:5000, w:30 },\n  \"Sony Xperia 10 VI\":{ mAh:5000, w:30 },\n  \"Sony Xperia 10 V\":{ mAh:5000, w:30 },\n  \"Sony Xperia Pro-I\":{ mAh:4500, w:30 },\n\n\n  \/* ============================\n   *   Nothing \/ Realme \/ Honor\n   * ============================ *\/\n\n  \"Nothing Phone (2)\":{ mAh:4700, w:45 },\n  \"Nothing Phone (1)\":{ mAh:4500, w:33 },\n\n  \"realme GT 5 Pro\":{ mAh:5400, w:100 },\n  \"realme 12 Pro+\":{ mAh:5000, w:67 },\n\n  \"HONOR Magic6 Pro\":{ mAh:5600, w:80 },\n  \"HONOR 90\":{ mAh:5000, w:66 }\n\n};\n    \/\/ ====== 自定义下拉（替代 datalist） ======\n    const input = box.querySelector('#pb-phone-model');\n    const wrap  = box.querySelector('.pb-left-caret');\n    const panel = box.querySelector('#pb-suggest');\n    const list  = box.querySelector('#pb-suggest-list');\n    const caret = wrap.querySelector('.pb-caret-btn');\n    const names = Object.keys(PHONE_DB);\n    const N_MAX = 200;\n    let activeIndex = -1;\n    let suppressClose = false;   \/\/ ⛔ 抑制 blur 关闭（解决箭头点击被关）\n    let lastSelected = '';       \/\/ ✅ 记录“已选中”的机型\n\n    const INIT_MSG = 'Select your phone model to estimate full recharges and speed.';\n\n    function renderOptions(filter){\n      const q = (filter||'').trim().toLowerCase();\n      const data = names.filter(n =\u003e !q || n.toLowerCase().includes(q)).slice(0,N_MAX);\n      list.innerHTML='';\n      if(data.length===0){ list.innerHTML='\u003cli class=\"empty\" aria-disabled=\"true\"\u003eNo matches\u003c\/li\u003e'; return; }\n      data.forEach((name,i)=\u003e{\n        const li=document.createElement('li');\n        li.textContent=name; li.setAttribute('role','option');\n        li.addEventListener('mousedown', e=\u003e{ e.preventDefault(); selectName(name); });\n        list.appendChild(li);\n      });\n      activeIndex=-1;\n    }\n    function openPanel(){\n      renderOptions(input.value);\n      panel.classList.add('open'); wrap.setAttribute('aria-expanded','true');\n    }\n    function closePanel(){\n      panel.classList.remove('open'); wrap.setAttribute('aria-expanded','false');\n      activeIndex=-1; Array.from(list.children).forEach(li=\u003eli.classList.remove('active'));\n    }\n    function moveActive(step){\n      const items=Array.from(list.querySelectorAll('li:not(.empty)')); if(!items.length) return;\n      activeIndex=(activeIndex+step+items.length)%items.length;\n      items.forEach((li,idx)=\u003eli.classList.toggle('active', idx===activeIndex));\n      const li=items[activeIndex], rTop=li.offsetTop, rBot=rTop+li.offsetHeight;\n      if(rTop \u003c panel.scrollTop) panel.scrollTop=rTop;\n      else if(rBot \u003e panel.scrollTop+panel.clientHeight) panel.scrollTop=rBot-panel.clientHeight;\n    }\n    function selectActive(){\n      const items=Array.from(list.querySelectorAll('li:not(.empty)'));\n      if(activeIndex\u003e=0 \u0026\u0026 activeIndex\u003citems.length){ selectName(items[activeIndex].textContent); }\n    }\n    function selectName(name){\n      input.value=name;\n      lastSelected = name;       \/\/ ✅ 标记为“已选中”的有效机型\n      closePanel();\n      calcByModel(name);\n    }\n\n    \/\/ 👉 箭头按下：抑制 blur 关闭；并切换下拉\n    caret.addEventListener('pointerdown', e=\u003e{\n      suppressClose = true;\n      input.focus({preventScroll:true});\n      e.preventDefault();\n    });\n    caret.addEventListener('click', e=\u003e{\n      if(panel.classList.contains('open')) closePanel(); else openPanel();\n      setTimeout(()=\u003e{ suppressClose=false; }, 200);\n    });\n\n    \/\/ === 新增：统一重置到初始状态 ===\n    function resetUI(){\n      const k=box.querySelectorAll('.kpis .pill b');\n      const pb = CONFIG.powerBank;\n      const pbWh=((pb.mAh*pb.cellV\/1000)*pb.usable);\n\n      \/\/ 固定显示：容量、最大输出、Wh、是否航空可携\n      box.querySelector('#pb-capacity').textContent = pb.mAh + ' mAh';\n      box.querySelector('#pb-maxw').textContent    = pb.outputW + ' W';\n\n      const base=2;\n      k[base+0].textContent = '—';                \/\/ Full recharges\n      k[base+1].textContent = '—';                \/\/ Speed\n      k[base+2].textContent = pbWh.toFixed(1)+' Wh';\n      k[base+3].textContent = (pbWh\u003cpb.airlineWhLimit)?'✔ YES':'❌ NO';\n\n      const msg=box.querySelector('.msg');\n      msg.style.display='block'; msg.className='msg warn';\n      msg.textContent = INIT_MSG;\n    }\n\n    \/\/ 输入过滤与交互（空值\/无匹配 ⇒ 立刻重置）\n    input.addEventListener('focus', ()=\u003e{ openPanel(); });\n\n    input.addEventListener('input', ()=\u003e{\n      const v = input.value.trim();\n      \/\/ 打开并实时过滤\n      if(!panel.classList.contains('open')) openPanel(); else renderOptions(v);\n\n      \/\/ 若为空或不是一个“已知机型的精确匹配”，并且此前展示过结果 ⇒ 重置\n      if(v==='' || !PHONE_DB[v]){\n        resetUI();\n        lastSelected = ''; \/\/ 取消已选状态\n      }\n    });\n\n    input.addEventListener('blur', ()=\u003e{\n      setTimeout(()=\u003e{\n        const active = document.activeElement;\n        if(suppressClose) return;\n        if(wrap.contains(active)) return;\n        closePanel();\n\n        \/\/ 失焦后做一次兜底校验\n        const v = input.value.trim();\n        if(v==='' || !PHONE_DB[v]){\n          resetUI();\n          lastSelected = '';\n        }else if(v!==lastSelected){\n          \/\/ 如果直接手输成了某个精确可识别机型，也允许计算\n          lastSelected = v;\n          calcByModel(v);\n        }\n      }, 0);\n    });\n\n    \/\/ 键盘导航（桌面）\n    input.addEventListener('keydown', e=\u003e{\n      if(!panel.classList.contains('open')) return;\n      if(e.key==='ArrowDown'){ e.preventDefault(); moveActive(1); }\n      else if(e.key==='ArrowUp'){ e.preventDefault(); moveActive(-1); }\n      else if(e.key==='Enter'){ e.preventDefault(); selectActive(); }\n      else if(e.key==='Escape'){ e.preventDefault(); closePanel(); }\n    });\n\n    \/\/ 点击外部关闭（移动端\/桌面）\n    document.addEventListener('pointerdown', (e)=\u003e{\n      if(!box.contains(e.target)) closePanel();\n    });\n\n    \/\/ ====== 计算逻辑 ======\n    function calcByModel(modelName){\n      const msg = box.querySelector('.msg');\n      const k = box.querySelectorAll('.kpis .pill b');\n      const spec = PHONE_DB[modelName];\n\n      \/\/ 🔁 如果不存在（不在数据库）⇒ 直接回到初始状态（不再显示“未知机型”告警）\n      if(!spec){ resetUI(); return; }\n\n      const pb_mAh=CONFIG.powerBank.mAh, pb_V=CONFIG.powerBank.cellV, pb_usable=CONFIG.powerBank.usable, pb_outputW=CONFIG.powerBank.outputW, limitWh=CONFIG.powerBank.airlineWhLimit;\n      const dev_mAh=(spec.mAh \u0026\u0026 spec.mAh\u003e0)? spec.mAh : null, dev_W=(spec.w \u0026\u0026 spec.w\u003e0)? spec.w : 20, dev_V=spec.v || CONFIG.defaultDevV;\n\n      const pbWh=(pb_mAh*pb_V\/1000)*pb_usable, dWh=dev_mAh?(dev_mAh*dev_V\/1000):NaN, times=(pbWh\u003e0\u0026\u0026isFinite(dWh))?(pbWh\/dWh):NaN;\n      const effW=Math.min(pb_outputW,dev_W), speed=!isFinite(effW)||effW\u003c=0?'—':(effW\u003c10?'Slow':effW\u003c20?'Standard':effW\u003c30?'Fast':'Super Fast');\n      const safe=pbWh\u003e0?(pbWh\u003climitWh?'✔ YES':'❌ NO'):'—';\n\n      box.querySelector('#pb-capacity').textContent = pb_mAh + ' mAh';\n      box.querySelector('#pb-maxw').textContent    = pb_outputW + ' W';\n\n      const base=2;\n      k[base+0].textContent = isFinite(times)? (times.toFixed(1)+'×') : '—';\n      k[base+1].textContent = speed;\n      k[base+2].textContent = pbWh.toFixed(1)+' Wh';\n      k[base+3].textContent = safe;\n\n      msg.style.display='block';\n      if(!dev_mAh){\n        msg.className='msg warn';\n        msg.innerHTML='Typical fast-charge power applied. Battery capacity for this model is not finalized; results are approximate.';\n      }else if(times\u003c1){\n        msg.className='msg warn';\n        msg.innerHTML='Less than \u003cb\u003e1 full recharge\u003c\/b\u003e — consider 10,000 mAh or 20,000 mAh.';\n      }else if(times\u003c2){\n        msg.className='msg';\n        msg.innerHTML='Around \u003cb\u003e'+times.toFixed(1)+'\u003c\/b\u003e full charges — great for daily top-ups.';\n      }else{\n        msg.className='msg';\n        msg.innerHTML='About \u003cb\u003e'+times.toFixed(1)+'\u003c\/b\u003e full charges — ideal for travel\/all-day use.';\n      }\n    }\n\n    \/\/ 初始展示（封装为 resetUI）\n    (function init(){ resetUI(); })();\n  })();\n  \u003c\/script\u003e\n\u003c\/div\u003e\n\u003c!-- \/One-Field Power Bank Calculator · Left-Caret (reset on empty\/unknown) --\u003e\n\u003c!-- 🔥 High-Conversion Final Block --\u003e\n\u003cdiv style=\"margin-top: 28px; padding: 24px; background: #f8f3eb; border-radius: 16px; box-shadow: 0 4px 12px rgba(0,0,0,0.05);\"\u003e\n\u003cp style=\"margin: 0;\"\u003eIf you're looking for a compact, cable-ready power bank that delivers fast, reliable charging for your daily devices, the \u003cstrong\u003eEnerCore CR11\u003c\/strong\u003e is the perfect match. Strong, portable, and beautifully designed — everything a modern power bank should be.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n","brand":"Baseus","offers":[{"title":"Cosmic Black","offer_id":48432045129969,"sku":"E0027G01","price":44.95,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027G01-0.png?v=1765886759"},{"product_id":"baseus-enercore-cr11-20000mah-67w-power-bank","title":"Baseus EnerCore CR11 20000mAh 67W Power Bank","description":"\u003cdiv style=\"max-width: 1500px; margin: 0 auto; padding: 32px 24px; font-family: 'Inter',system-ui,Arial,sans-serif; line-height: 1.7; color: #0a0f1e;\"\u003e\n\u003c!-- 🔥 High-Conversion Title --\u003e\u003c!-- 🔥 Story \/ Selling Block --\u003e\n\u003cdiv style=\"background: #f8f3eb; padding: 26px; border-radius: 18px; box-shadow: 0 6px 14px rgba(0,0,0,0.06); margin-bottom: 36px;\"\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027H00-6.jpg?v=1765887121\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027H00-9.jpg?v=1765887121\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027H00-7.jpg?v=1765887121\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027H00-12.png?v=1765887121\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027H00-10.jpg?v=1765887121\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027H00-13.jpg?v=1765887121\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027H00-8.jpg?v=1765887121\" alt=\"\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- 🔥 Technical Specifications --\u003e\n\u003ch3 style=\"font-size: 22px; font-weight: bold; margin-bottom: 10px;\"\u003eTechnical Specifications\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eName:\u003c\/strong\u003e EnerCore Fast Charger\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eModel:\u003c\/strong\u003e ECCJ1167CS\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eCapacity:\u003c\/strong\u003e 20000mAh\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eNet Weight:\u003c\/strong\u003e ≈ 198.8g\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eSize:\u003c\/strong\u003e 70 × 58 × 37mm (without pins)\u003c\/p\u003e\n\u003ch4 style=\"margin-top: 16px; font-size: 18px; font-weight: bold;\"\u003eInput\u003c\/h4\u003e\n\u003cul style=\"padding-left: 20px;\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eAC Input:\u003c\/strong\u003e AC 100–240V~, 50\/60Hz, 1.8A Max\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch4 style=\"margin-top: 16px; font-size: 18px; font-weight: bold;\"\u003eOutput\u003c\/h4\u003e\n\u003cul style=\"padding-left: 20px;\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eUSB-C1 \/ USB-C2 \/ USB-C3 Output:\u003c\/strong\u003e 5V⎓3A, 9V⎓3A, 12V⎓3A, 15V⎓3A, 20V⎓3.35A (67W Max)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCombined Output:\u003c\/strong\u003e\u003cbr\u003e• USB-C1 + USB-C2: 67W Max\u003cbr\u003e• USB-C1 + USB-C3: 67W Max\u003cbr\u003e• USB-C2 + USB-C3: 67W Max\u003cbr\u003e• USB-C1 + USB-C2 + USB-C3: 67W Max\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c!-- 🔥 High-Conversion Closing Block --\u003e\n\u003c\/div\u003e\n\u003c!-- ✅ One-Field Power Bank Calculator · Left-Caret + Custom Autocomplete (reset on empty\/unknown) --\u003e\n\u003cstyle\u003e\n  .pb-onefield *{box-sizing:border-box}\n  .pb-onefield h4{margin:0 0 8px;font-size:16px}\n  .pb-onefield label{display:block;font-weight:600;margin:6px 0 6px}\n  .pb-onefield input{width:100%;padding:10px;border:1px solid #ddd;border-radius:10px;background:#fff}\n  .pb-onefield .kpis{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}\n  .pb-onefield .pill{flex:1 1 120px;min-width:120px;text-align:center;border:1px solid #e5e5e5;background:#fff;border-radius:10px;padding:10px}\n  .pb-onefield .pill b{display:block;font-size:18px}\n  .pb-onefield .msg{margin-top:10px;border-left:4px solid #22c55e;background:#eefaf1;padding:10px;border-radius:8px}\n  .pb-onefield .msg.warn{border-left-color:#ffa500;background:#fff7e6}\n  .pb-onefield .note{color:#666;font-size:12px;margin-top:8px}\n\n  \/* ⬅️ 左侧箭头输入容器 *\/\n  .pb-onefield .pb-left-caret{\n    position:relative;\n    overflow:visible; \/* 让下拉不被父容器裁切 *\/\n  }\n  .pb-onefield .pb-left-caret input{\n    width:100%;\n    padding:10px 12px 10px 36px; \/* 左侧箭头空间 *\/\n    border:1px solid #ddd; border-radius:10px; background:#fff;\n  }\n  .pb-onefield .pb-caret-btn{\n    position:absolute; left:10px; top:50%; transform:translateY(-50%);\n    border:0; background:transparent; cursor:pointer; line-height:1; padding:0 2px;\n    font-size:16px; color:#666;\n    touch-action:manipulation;\n  }\n  .pb-onefield .pb-caret-btn:focus{outline:2px solid #c9defc; border-radius:4px}\n\n  \/* 🔽 自定义下拉列表 *\/\n  .pb-onefield .pb-suggest{\n    position:absolute; z-index:9999; left:0; right:0; top:100%; margin-top:6px;\n    max-height:260px; overflow:auto; background:#fff; border:1px solid #e5e5e5;\n    border-radius:10px; box-shadow:0 6px 20px rgba(0,0,0,.08); display:none;\n  }\n  .pb-onefield .pb-suggest.open{display:block}\n  .pb-onefield .pb-suggest ul{list-style:none; margin:0; padding:6px}\n  .pb-onefield .pb-suggest li{\n    padding:8px 10px; border-radius:8px; cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;\n  }\n  .pb-onefield .pb-suggest li:hover,\n  .pb-onefield .pb-suggest li.active{background:#f5f7fb}\n  .pb-onefield .pb-suggest .empty{padding:10px; color:#777}\n\u003c\/style\u003e\n\u003cdiv style=\"margin-top: 16px; padding: 14px; border: 1px solid #eee; border-radius: 12px; background: #fafafa; font: 14px\/1.6 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif; color: #111;\" class=\"pb-onefield\"\u003e\n\u003ch4 style=\"text-align: center; font-size: 22px; font-weight: bold; margin-bottom: 8px;\"\u003ePower Bank Quick Calculator\u003c\/h4\u003e\n\u003c!-- 唯一输入：机型（左侧箭头，点击展开\/收起） --\u003e \u003clabel\u003ePhone model\u003c\/label\u003e\n\u003cdiv aria-expanded=\"false\" aria-haspopup=\"listbox\" role=\"combobox\" class=\"pb-left-caret\"\u003e\n\u003cbutton aria-label=\"Open models\" class=\"pb-caret-btn\" type=\"button\"\u003e▾\u003c\/button\u003e \u003cinput aria-controls=\"pb-suggest-list\" aria-autocomplete=\"list\" autocomplete=\"off\" placeholder=\"Start typing e.g., iPhone 16 Pro Max\" id=\"pb-phone-model\" type=\"text\"\u003e\n\u003cdiv role=\"listbox\" id=\"pb-suggest\" class=\"pb-suggest\"\u003e\n\u003cul id=\"pb-suggest-list\"\u003e\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv aria-live=\"polite\" class=\"kpis\"\u003e\n\u003cdiv class=\"pill\"\u003e\n\u003cspan\u003ePB capacity\u003c\/span\u003e\u003cb id=\"pb-capacity\"\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pill\"\u003e\n\u003cspan\u003eMax output\u003c\/span\u003e\u003cb id=\"pb-maxw\"\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pill\"\u003e\n\u003cspan\u003eFull recharges\u003c\/span\u003e\u003cb\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pill\"\u003e\n\u003cspan\u003eSpeed\u003c\/span\u003e\u003cb\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pill\"\u003e\n\u003cspan\u003eUsable energy\u003c\/span\u003e\u003cb\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pill\"\u003e\n\u003cspan\u003eAirline safe?\u003c\/span\u003e\u003cb\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"display: none;\" class=\"msg\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"note\"\u003e* Based on typical phone specs. Real-world results vary with cable\/adapter, temperature, and settings.\u003c\/div\u003e\n\u003cscript\u003e\n  (function(){\n    var box = document.currentScript.parentElement; if(!box || box.__ready) return; box.__ready = true;\n\n    \/\/ 🔧 移动电源默认参数\n    const CONFIG = { powerBank:{ mAh:20000, cellV:3.7, outputW:67, usable:0.72, airlineWhLimit:100 }, defaultDevV:3.85 };\n\n    \/\/ 📚 机型数据库（可继续扩展）\n    const PHONE_DB = {\n\n  \/* ============================\n   *       APPLE iPHONE\n   * ============================ *\/\n\n  \"Apple iPhone 17\":{ mAh:3450, w:30 },\n  \"Apple iPhone 17 Plus\":{ mAh:4550, w:30 },\n  \"Apple iPhone 17 Pro\":{ mAh:3350, w:30 },\n  \"Apple iPhone 17 Pro Max\":{ mAh:4500, w:30 },\n\n  \"Apple iPhone 16\":{ mAh:3340, w:27 },\n  \"Apple iPhone 16 Plus\":{ mAh:4380, w:27 },\n  \"Apple iPhone 16 Pro\":{ mAh:3270, w:27 },\n  \"Apple iPhone 16 Pro Max\":{ mAh:4420, w:30 },\n\n  \"Apple iPhone 15\":{ mAh:3349, w:27 },\n  \"Apple iPhone 15 Plus\":{ mAh:4383, w:27 },\n  \"Apple iPhone 15 Pro\":{ mAh:3274, w:27 },\n  \"Apple iPhone 15 Pro Max\":{ mAh:4422, w:30 },\n\n  \"Apple iPhone 14\":{ mAh:3279, w:27 },\n  \"Apple iPhone 14 Plus\":{ mAh:4323, w:27 },\n  \"Apple iPhone 14 Pro\":{ mAh:3200, w:27 },\n  \"Apple iPhone 14 Pro Max\":{ mAh:4323, w:27 },\n\n  \"Apple iPhone 13 mini\":{ mAh:2438, w:20 },\n  \"Apple iPhone 13\":{ mAh:3227, w:20 },\n  \"Apple iPhone 13 Pro\":{ mAh:3095, w:23 },\n  \"Apple iPhone 13 Pro Max\":{ mAh:4352, w:27 },\n\n  \"Apple iPhone 12 mini\":{ mAh:2227, w:20 },\n  \"Apple iPhone 12\":{ mAh:2815, w:20 },\n  \"Apple iPhone 12 Pro\":{ mAh:2815, w:20 },\n  \"Apple iPhone 12 Pro Max\":{ mAh:3687, w:22 },\n\n  \"Apple iPhone 11\":{ mAh:3110, w:18 },\n  \"Apple iPhone 11 Pro\":{ mAh:3046, w:18 },\n  \"Apple iPhone 11 Pro Max\":{ mAh:3969, w:18 },\n\n  \"Apple iPhone XS\":{ mAh:2658, w:18 },\n  \"Apple iPhone XS Max\":{ mAh:3174, w:18 },\n  \"Apple iPhone XR\":{ mAh:2942, w:18 },\n\n  \"Apple iPhone X\":{ mAh:2716, w:18 },\n\n  \"Apple iPhone 8\":{ mAh:1821, w:15 },\n  \"Apple iPhone 8 Plus\":{ mAh:2691, w:15 },\n\n  \"Apple iPhone 7\":{ mAh:1960, w:12 },\n  \"Apple iPhone 7 Plus\":{ mAh:2900, w:12 },\n\n  \"Apple iPhone 6s\":{ mAh:1715, w:10 },\n  \"Apple iPhone 6s Plus\":{ mAh:2750, w:10 },\n\n  \"Apple iPhone 6\":{ mAh:1810, w:10 },\n  \"Apple iPhone 6 Plus\":{ mAh:2915, w:10 },\n\n  \"Apple iPhone SE (2022)\":{ mAh:2018, w:18 },\n  \"Apple iPhone SE (2020)\":{ mAh:1821, w:18 },\n\n\n  \/* ============================\n   *        SAMSUNG GALAXY\n   * ============================ *\/\n\n  \"Samsung Galaxy S24\":{ mAh:4000, w:30 },\n  \"Samsung Galaxy S24+\":{ mAh:4900, w:45 },\n  \"Samsung Galaxy S24 Ultra\":{ mAh:5000, w:45 },\n\n  \"Samsung Galaxy S23\":{ mAh:3900, w:25 },\n  \"Samsung Galaxy S23+\":{ mAh:4700, w:45 },\n  \"Samsung Galaxy S23 Ultra\":{ mAh:5000, w:45 },\n\n  \"Samsung Galaxy S22\":{ mAh:3700, w:25 },\n  \"Samsung Galaxy S22+\":{ mAh:4500, w:45 },\n  \"Samsung Galaxy S22 Ultra\":{ mAh:5000, w:45 },\n\n  \"Samsung Galaxy S21\":{ mAh:4000, w:25 },\n  \"Samsung Galaxy S21+\":{ mAh:4800, w:25 },\n  \"Samsung Galaxy S21 Ultra\":{ mAh:5000, w:25 },\n\n  \"Samsung Galaxy S20\":{ mAh:4000, w:25 },\n  \"Samsung Galaxy S20+\":{ mAh:4500, w:25 },\n  \"Samsung Galaxy S20 Ultra\":{ mAh:5000, w:45 },\n\n  \"Samsung Galaxy S10\":{ mAh:3400, w:15 },\n  \"Samsung Galaxy S10+\":{ mAh:4100, w:15 },\n  \"Samsung Galaxy S10e\":{ mAh:3100, w:15 },\n\n  \"Samsung Galaxy Note20\":{ mAh:4300, w:25 },\n  \"Samsung Galaxy Note20 Ultra\":{ mAh:4500, w:25 },\n  \"Samsung Galaxy Note10\":{ mAh:3500, w:25 },\n  \"Samsung Galaxy Note10+\":{ mAh:4300, w:45 },\n\n  \"Samsung Galaxy Z Flip5\":{ mAh:3700, w:25 },\n  \"Samsung Galaxy Z Fold5\":{ mAh:4400, w:25 },\n  \"Samsung Galaxy Z Flip4\":{ mAh:3700, w:25 },\n  \"Samsung Galaxy Z Fold4\":{ mAh:4400, w:25 },\n\n  \"Samsung Galaxy A55\":{ mAh:5000, w:25 },\n  \"Samsung Galaxy A54\":{ mAh:5000, w:25 },\n  \"Samsung Galaxy A53\":{ mAh:5000, w:25 },\n  \"Samsung Galaxy A34\":{ mAh:5000, w:25 },\n  \"Samsung Galaxy A24\":{ mAh:5000, w:25 },\n  \"Samsung Galaxy A14\":{ mAh:5000, w:15 },\n\n\n  \/* ============================\n   *         GOOGLE PIXEL\n   * ============================ *\/\n\n  \"Google Pixel 9 Pro\":{ mAh:null, w:30 },\n  \"Google Pixel 9\":{ mAh:null, w:30 },\n\n  \"Google Pixel 8 Pro\":{ mAh:5050, w:30 },\n  \"Google Pixel 8\":{ mAh:4575, w:27 },\n\n  \"Google Pixel 7 Pro\":{ mAh:5000, w:30 },\n  \"Google Pixel 7\":{ mAh:4355, w:20 },\n\n  \"Google Pixel 6 Pro\":{ mAh:5003, w:30 },\n  \"Google Pixel 6\":{ mAh:4614, w:30 },\n\n  \"Google Pixel 5\":{ mAh:4080, w:18 },\n  \"Google Pixel 4 XL\":{ mAh:3700, w:18 },\n  \"Google Pixel 4\":{ mAh:2800, w:18 },\n\n  \"Google Pixel 3 XL\":{ mAh:3430, w:18 },\n  \"Google Pixel 3\":{ mAh:2915, w:18 },\n\n  \"Google Pixel 2 XL\":{ mAh:3520, w:18 },\n  \"Google Pixel 2\":{ mAh:2700, w:18 },\n\n  \"Google Pixel XL\":{ mAh:3450, w:18 },\n  \"Google Pixel\":{ mAh:2770, w:18 },\n\n\n  \/* ============================\n   *           ONEPLUS\n   * ============================ *\/\n\n  \"OnePlus 12\":{ mAh:5400, w:80 },\n  \"OnePlus 11\":{ mAh:5000, w:80 },\n  \"OnePlus 10 Pro\":{ mAh:5000, w:80 },\n  \"OnePlus 10T\":{ mAh:4800, w:80 },\n\n  \"OnePlus 9 Pro\":{ mAh:4500, w:65 },\n  \"OnePlus 9\":{ mAh:4500, w:65 },\n\n  \"OnePlus 8 Pro\":{ mAh:4510, w:30 },\n  \"OnePlus 8T\":{ mAh:4500, w:65 },\n\n  \"OnePlus Nord 3\":{ mAh:5000, w:80 },\n  \"OnePlus Nord 2T\":{ mAh:4500, w:80 },\n\n\n  \/* ============================\n   *            OPPO\n   * ============================ *\/\n\n  \"OPPO Find X7\":{ mAh:5000, w:80 },\n  \"OPPO Find X6\":{ mAh:5000, w:80 },\n  \"OPPO Find X5 Pro\":{ mAh:5000, w:80 },\n\n  \"OPPO Reno 12\":{ mAh:5000, w:67 },\n  \"OPPO Reno 11\":{ mAh:5000, w:67 },\n  \"OPPO Reno 10 Pro\":{ mAh:4600, w:80 },\n  \"OPPO Reno 10\":{ mAh:5000, w:67 },\n  \"OPPO Reno 9 Pro+\":{ mAh:4700, w:80 },\n  \"OPPO Reno 8 Pro\":{ mAh:4500, w:80 },\n  \"OPPO Reno 8\":{ mAh:4500, w:80 },\n\n  \"OPPO A98\":{ mAh:5000, w:67 },\n  \"OPPO A78\":{ mAh:5000, w:33 },\n\n\n  \/* ============================\n   *         XIAOMI \/ REDMI\n   * ============================ *\/\n\n  \"Xiaomi 14\":{ mAh:4610, w:90 },\n  \"Xiaomi 14 Pro\":{ mAh:4880, w:120 },\n\n  \"Xiaomi 13\":{ mAh:4500, w:67 },\n  \"Xiaomi 13 Pro\":{ mAh:4820, w:120 },\n\n  \"Xiaomi 12\":{ mAh:4500, w:67 },\n  \"Xiaomi 12 Pro\":{ mAh:4600, w:120 },\n\n  \"Xiaomi 12T\":{ mAh:5000, w:120 },\n  \"Xiaomi 13T\":{ mAh:5000, w:67 },\n\n  \"Redmi Note 13 Pro+\":{ mAh:5000, w:120 },\n  \"Redmi Note 13 Pro\":{ mAh:5100, w:67 },\n  \"Redmi Note 13\":{ mAh:5000, w:33 },\n\n  \"Redmi Note 12 Pro+\":{ mAh:5000, w:120 },\n  \"Redmi Note 12 Pro\":{ mAh:5000, w:67 },\n  \"Redmi Note 12\":{ mAh:5000, w:33 },\n\n  \"Redmi Note 11 Pro\":{ mAh:5160, w:67 },\n  \"Redmi Note 11\":{ mAh:5000, w:33 },\n\n\n  \/* ============================\n   *            HUAWEI\n   * ============================ *\/\n\n  \"Huawei P60 Pro\":{ mAh:4815, w:66 },\n  \"Huawei P50 Pro\":{ mAh:4360, w:66 },\n  \"Huawei P40 Pro\":{ mAh:4200, w:40 },\n  \"Huawei P30 Pro\":{ mAh:4200, w:40 },\n\n  \"Huawei Mate 50 Pro\":{ mAh:4700, w:66 },\n  \"Huawei Mate 40 Pro\":{ mAh:4400, w:66 },\n  \"Huawei Mate 30 Pro\":{ mAh:4500, w:40 },\n\n\n  \/* ============================\n   *             vivo\n   * ============================ *\/\n\n  \"vivo X100 Pro\":{ mAh:5400, w:100 },\n  \"vivo X100\":{ mAh:5000, w:120 },\n  \"vivo X90 Pro+\":{ mAh:4700, w:80 },\n  \"vivo X90 Pro\":{ mAh:4870, w:120 },\n  \"vivo X80 Pro\":{ mAh:4700, w:80 },\n  \"vivo V30 Pro\":{ mAh:5000, w:80 },\n\n\n  \/* ============================\n   *             SONY\n   * ============================ *\/\n\n  \"Sony Xperia 1 VI\":{ mAh:5000, w:30 },\n  \"Sony Xperia 1 V\":{ mAh:5000, w:30 },\n  \"Sony Xperia 5 V\":{ mAh:5000, w:30 },\n  \"Sony Xperia 10 VI\":{ mAh:5000, w:30 },\n  \"Sony Xperia 10 V\":{ mAh:5000, w:30 },\n  \"Sony Xperia Pro-I\":{ mAh:4500, w:30 },\n\n\n  \/* ============================\n   *   Nothing \/ Realme \/ Honor\n   * ============================ *\/\n\n  \"Nothing Phone (2)\":{ mAh:4700, w:45 },\n  \"Nothing Phone (1)\":{ mAh:4500, w:33 },\n\n  \"realme GT 5 Pro\":{ mAh:5400, w:100 },\n  \"realme 12 Pro+\":{ mAh:5000, w:67 },\n\n  \"HONOR Magic6 Pro\":{ mAh:5600, w:80 },\n  \"HONOR 90\":{ mAh:5000, w:66 }\n\n};\n    \/\/ ====== 自定义下拉（替代 datalist） ======\n    const input = box.querySelector('#pb-phone-model');\n    const wrap  = box.querySelector('.pb-left-caret');\n    const panel = box.querySelector('#pb-suggest');\n    const list  = box.querySelector('#pb-suggest-list');\n    const caret = wrap.querySelector('.pb-caret-btn');\n    const names = Object.keys(PHONE_DB);\n    const N_MAX = 200;\n    let activeIndex = -1;\n    let suppressClose = false;   \/\/ ⛔ 抑制 blur 关闭（解决箭头点击被关）\n    let lastSelected = '';       \/\/ ✅ 记录“已选中”的机型\n\n    const INIT_MSG = 'Select your phone model to estimate full recharges and speed.';\n\n    function renderOptions(filter){\n      const q = (filter||'').trim().toLowerCase();\n      const data = names.filter(n =\u003e !q || n.toLowerCase().includes(q)).slice(0,N_MAX);\n      list.innerHTML='';\n      if(data.length===0){ list.innerHTML='\u003cli class=\"empty\" aria-disabled=\"true\"\u003eNo matches\u003c\/li\u003e'; return; }\n      data.forEach((name,i)=\u003e{\n        const li=document.createElement('li');\n        li.textContent=name; li.setAttribute('role','option');\n        li.addEventListener('mousedown', e=\u003e{ e.preventDefault(); selectName(name); });\n        list.appendChild(li);\n      });\n      activeIndex=-1;\n    }\n    function openPanel(){\n      renderOptions(input.value);\n      panel.classList.add('open'); wrap.setAttribute('aria-expanded','true');\n    }\n    function closePanel(){\n      panel.classList.remove('open'); wrap.setAttribute('aria-expanded','false');\n      activeIndex=-1; Array.from(list.children).forEach(li=\u003eli.classList.remove('active'));\n    }\n    function moveActive(step){\n      const items=Array.from(list.querySelectorAll('li:not(.empty)')); if(!items.length) return;\n      activeIndex=(activeIndex+step+items.length)%items.length;\n      items.forEach((li,idx)=\u003eli.classList.toggle('active', idx===activeIndex));\n      const li=items[activeIndex], rTop=li.offsetTop, rBot=rTop+li.offsetHeight;\n      if(rTop \u003c panel.scrollTop) panel.scrollTop=rTop;\n      else if(rBot \u003e panel.scrollTop+panel.clientHeight) panel.scrollTop=rBot-panel.clientHeight;\n    }\n    function selectActive(){\n      const items=Array.from(list.querySelectorAll('li:not(.empty)'));\n      if(activeIndex\u003e=0 \u0026\u0026 activeIndex\u003citems.length){ selectName(items[activeIndex].textContent); }\n    }\n    function selectName(name){\n      input.value=name;\n      lastSelected = name;       \/\/ ✅ 标记为“已选中”的有效机型\n      closePanel();\n      calcByModel(name);\n    }\n\n    \/\/ 👉 箭头按下：抑制 blur 关闭；并切换下拉\n    caret.addEventListener('pointerdown', e=\u003e{\n      suppressClose = true;\n      input.focus({preventScroll:true});\n      e.preventDefault();\n    });\n    caret.addEventListener('click', e=\u003e{\n      if(panel.classList.contains('open')) closePanel(); else openPanel();\n      setTimeout(()=\u003e{ suppressClose=false; }, 200);\n    });\n\n    \/\/ === 新增：统一重置到初始状态 ===\n    function resetUI(){\n      const k=box.querySelectorAll('.kpis .pill b');\n      const pb = CONFIG.powerBank;\n      const pbWh=((pb.mAh*pb.cellV\/1000)*pb.usable);\n\n      \/\/ 固定显示：容量、最大输出、Wh、是否航空可携\n      box.querySelector('#pb-capacity').textContent = pb.mAh + ' mAh';\n      box.querySelector('#pb-maxw').textContent    = pb.outputW + ' W';\n\n      const base=2;\n      k[base+0].textContent = '—';                \/\/ Full recharges\n      k[base+1].textContent = '—';                \/\/ Speed\n      k[base+2].textContent = pbWh.toFixed(1)+' Wh';\n      k[base+3].textContent = (pbWh\u003cpb.airlineWhLimit)?'✔ YES':'❌ NO';\n\n      const msg=box.querySelector('.msg');\n      msg.style.display='block'; msg.className='msg warn';\n      msg.textContent = INIT_MSG;\n    }\n\n    \/\/ 输入过滤与交互（空值\/无匹配 ⇒ 立刻重置）\n    input.addEventListener('focus', ()=\u003e{ openPanel(); });\n\n    input.addEventListener('input', ()=\u003e{\n      const v = input.value.trim();\n      \/\/ 打开并实时过滤\n      if(!panel.classList.contains('open')) openPanel(); else renderOptions(v);\n\n      \/\/ 若为空或不是一个“已知机型的精确匹配”，并且此前展示过结果 ⇒ 重置\n      if(v==='' || !PHONE_DB[v]){\n        resetUI();\n        lastSelected = ''; \/\/ 取消已选状态\n      }\n    });\n\n    input.addEventListener('blur', ()=\u003e{\n      setTimeout(()=\u003e{\n        const active = document.activeElement;\n        if(suppressClose) return;\n        if(wrap.contains(active)) return;\n        closePanel();\n\n        \/\/ 失焦后做一次兜底校验\n        const v = input.value.trim();\n        if(v==='' || !PHONE_DB[v]){\n          resetUI();\n          lastSelected = '';\n        }else if(v!==lastSelected){\n          \/\/ 如果直接手输成了某个精确可识别机型，也允许计算\n          lastSelected = v;\n          calcByModel(v);\n        }\n      }, 0);\n    });\n\n    \/\/ 键盘导航（桌面）\n    input.addEventListener('keydown', e=\u003e{\n      if(!panel.classList.contains('open')) return;\n      if(e.key==='ArrowDown'){ e.preventDefault(); moveActive(1); }\n      else if(e.key==='ArrowUp'){ e.preventDefault(); moveActive(-1); }\n      else if(e.key==='Enter'){ e.preventDefault(); selectActive(); }\n      else if(e.key==='Escape'){ e.preventDefault(); closePanel(); }\n    });\n\n    \/\/ 点击外部关闭（移动端\/桌面）\n    document.addEventListener('pointerdown', (e)=\u003e{\n      if(!box.contains(e.target)) closePanel();\n    });\n\n    \/\/ ====== 计算逻辑 ======\n    function calcByModel(modelName){\n      const msg = box.querySelector('.msg');\n      const k = box.querySelectorAll('.kpis .pill b');\n      const spec = PHONE_DB[modelName];\n\n      \/\/ 🔁 如果不存在（不在数据库）⇒ 直接回到初始状态（不再显示“未知机型”告警）\n      if(!spec){ resetUI(); return; }\n\n      const pb_mAh=CONFIG.powerBank.mAh, pb_V=CONFIG.powerBank.cellV, pb_usable=CONFIG.powerBank.usable, pb_outputW=CONFIG.powerBank.outputW, limitWh=CONFIG.powerBank.airlineWhLimit;\n      const dev_mAh=(spec.mAh \u0026\u0026 spec.mAh\u003e0)? spec.mAh : null, dev_W=(spec.w \u0026\u0026 spec.w\u003e0)? spec.w : 20, dev_V=spec.v || CONFIG.defaultDevV;\n\n      const pbWh=(pb_mAh*pb_V\/1000)*pb_usable, dWh=dev_mAh?(dev_mAh*dev_V\/1000):NaN, times=(pbWh\u003e0\u0026\u0026isFinite(dWh))?(pbWh\/dWh):NaN;\n      const effW=Math.min(pb_outputW,dev_W), speed=!isFinite(effW)||effW\u003c=0?'—':(effW\u003c10?'Slow':effW\u003c20?'Standard':effW\u003c30?'Fast':'Super Fast');\n      const safe=pbWh\u003e0?(pbWh\u003climitWh?'✔ YES':'❌ NO'):'—';\n\n      box.querySelector('#pb-capacity').textContent = pb_mAh + ' mAh';\n      box.querySelector('#pb-maxw').textContent    = pb_outputW + ' W';\n\n      const base=2;\n      k[base+0].textContent = isFinite(times)? (times.toFixed(1)+'×') : '—';\n      k[base+1].textContent = speed;\n      k[base+2].textContent = pbWh.toFixed(1)+' Wh';\n      k[base+3].textContent = safe;\n\n      msg.style.display='block';\n      if(!dev_mAh){\n        msg.className='msg warn';\n        msg.innerHTML='Typical fast-charge power applied. Battery capacity for this model is not finalized; results are approximate.';\n      }else if(times\u003c1){\n        msg.className='msg warn';\n        msg.innerHTML='Less than \u003cb\u003e1 full recharge\u003c\/b\u003e — consider 10,000 mAh or 20,000 mAh.';\n      }else if(times\u003c2){\n        msg.className='msg';\n        msg.innerHTML='Around \u003cb\u003e'+times.toFixed(1)+'\u003c\/b\u003e full charges — great for daily top-ups.';\n      }else{\n        msg.className='msg';\n        msg.innerHTML='About \u003cb\u003e'+times.toFixed(1)+'\u003c\/b\u003e full charges — ideal for travel\/all-day use.';\n      }\n    }\n\n    \/\/ 初始展示（封装为 resetUI）\n    (function init(){ resetUI(); })();\n  })();\n  \u003c\/script\u003e\n\u003c\/div\u003e\n\u003c!-- \/One-Field Power Bank Calculator · Left-Caret (reset on empty\/unknown) --\u003e","brand":"Baseus","offers":[{"title":"Cosmic Black \/ 20000mAh","offer_id":48417633304817,"sku":null,"price":89.95,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/E0027H00-5.jpg?v=1765887121"},{"product_id":"baseus-inspire-xh1-wireless-noise-cancelling-headphones","title":"Baseus Inspire XH1 Wireless Noise Cancelling Headphones","description":"\u003c!-- ✅ Responsive YouTube Embed (Shopify-safe) --\u003e\n\u003cdiv class=\"yt-embed-wrap\" style=\"max-width: 100%; margin: 18px auto;\"\u003e\n\u003cdiv class=\"yt-embed\" style=\"position: relative; width: 100%; padding-top: 56.25%; border-radius: 12px; overflow: hidden; box-shadow: 0 8px 22px rgba(0,0,0,0.10);\"\u003e\u003ciframe src=\"https:\/\/www.youtube.com\/embed\/C86k-A4q3L8\" title=\"A02036 Inspire XH1\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;\"\u003e\n    \u003c\/iframe\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n  \/* =========================================================\n     2-Lazy Product A+ Image Content\n     Clean \/ Responsive \/ Performance Optimised\n  ========================================================== *\/\n\n  .lazy-aplus-section,\n  .lazy-aplus-section * {\n    box-sizing: border-box;\n  }\n\n  .lazy-aplus-section {\n    width: 100%;\n    max-width: 1040px;\n    margin: 0 auto;\n    padding: 24px 20px 40px;\n    font-family: Inter, Arial, sans-serif;\n    color: #111111;\n  }\n\n  .lazy-aplus-header {\n    max-width: 800px;\n    margin: 0 auto 26px;\n    text-align: center;\n  }\n\n  .lazy-aplus-eyebrow {\n    margin: 0 0 8px;\n    color: #d45b2a;\n    font-size: 11px;\n    font-weight: 800;\n    line-height: 1.4;\n    letter-spacing: 0.14em;\n    text-transform: uppercase;\n  }\n\n  .lazy-aplus-title {\n    margin: 0;\n    color: #150660;\n    font-size: clamp(24px, 3.2vw, 38px);\n    font-weight: 800;\n    line-height: 1.15;\n    letter-spacing: -0.025em;\n  }\n\n  .lazy-aplus-intro {\n    margin: 12px auto 0;\n    color: #555555;\n    font-size: 14px;\n    line-height: 1.7;\n  }\n\n  .lazy-aplus-gallery {\n    display: flex;\n    flex-direction: column;\n    gap: 16px;\n    width: 100%;\n  }\n\n  .lazy-aplus-image {\n    position: relative;\n    width: 100%;\n    overflow: hidden;\n    border-radius: 14px;\n    background: #f5f5f5;\n  }\n\n  .lazy-aplus-image img {\n    display: block;\n    width: 100%;\n    height: auto;\n    margin: 0;\n    border: 0;\n  }\n\n  \/*\n    第一张图作为重点视觉图，可稍微增加阴影。\n    后续图片保持简洁，避免页面显得像卡片堆叠。\n  *\/\n  .lazy-aplus-image:first-child {\n    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);\n  }\n\n  .lazy-aplus-image:not(:first-child) {\n    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.045);\n  }\n\n  .lazy-aplus-note {\n    max-width: 760px;\n    margin: 20px auto 0;\n    color: #777777;\n    font-size: 11.5px;\n    line-height: 1.6;\n    text-align: center;\n  }\n\n  @media screen and (max-width: 749px) {\n    .lazy-aplus-section {\n      padding: 16px 12px 30px;\n    }\n\n    .lazy-aplus-header {\n      margin-bottom: 20px;\n      padding: 0 6px;\n    }\n\n    .lazy-aplus-title {\n      font-size: 24px;\n    }\n\n    .lazy-aplus-intro {\n      font-size: 13px;\n      line-height: 1.65;\n    }\n\n    .lazy-aplus-gallery {\n      gap: 10px;\n    }\n\n    .lazy-aplus-image {\n      border-radius: 10px;\n    }\n  }\n\n  @media screen and (max-width: 420px) {\n    .lazy-aplus-section {\n      padding-left: 8px;\n      padding-right: 8px;\n    }\n\n    .lazy-aplus-title {\n      font-size: 22px;\n    }\n\n    .lazy-aplus-gallery {\n      gap: 8px;\n    }\n\n    .lazy-aplus-image {\n      border-radius: 8px;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    .lazy-aplus-section * {\n      scroll-behavior: auto !important;\n    }\n  }\n\u003c\/style\u003e\n\u003csection class=\"lazy-aplus-section\" aria-labelledby=\"lazy-aplus-heading\"\u003e\u003cheader class=\"lazy-aplus-header\"\u003e\n\u003cp class=\"lazy-aplus-eyebrow\"\u003ePremium Wireless Audio\u003c\/p\u003e\n\u003ch2 class=\"lazy-aplus-title\" id=\"lazy-aplus-heading\"\u003eBaseus Inspire XH1\u003c\/h2\u003e\n\u003cp class=\"lazy-aplus-intro\"\u003eSound by Bose tuning, adaptive noise cancellation, all-day comfort and extended battery life for work, travel and everyday listening.\u003c\/p\u003e\n\u003c\/header\u003e\n\u003cdiv class=\"lazy-aplus-gallery\" style=\"text-align: start;\"\u003e\n\u003c!-- 第一张图：优先加载 --\u003e\n\u003cfigure class=\"lazy-aplus-image\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/A0203600_7.jpg?v=1768126062\" alt=\"Baseus Inspire XH1 wireless noise cancelling headphones with Sound by Bose and Dolby Audio\" width=\"800\" height=\"800\" loading=\"eager\" decoding=\"async\"\u003e\u003c\/figure\u003e\n\u003cfigure class=\"lazy-aplus-image\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/OS_A00085701123-00_Inspire_XH1_Wireless_Noise_Cancelling_Headphones_OS_N_A_Plane_Function_main_image_800_800_Inspire_XH1_OS_12_800_1.jpg?v=1768126910\" alt=\"Baseus Inspire XH1 premium memory foam ear cushions and protein leather comfort design\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\"\u003e\u003c\/figure\u003e\n\u003cfigure class=\"lazy-aplus-image\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/A0203600_4.jpg?v=1768126910\" alt=\"Baseus Inspire XH1 adaptive sound profile with SuperBass, SuperBalance and SoundFit\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\"\u003e\u003c\/figure\u003e\n\u003cfigure class=\"lazy-aplus-image\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/A0203600_5.jpg?v=1768126062\" alt=\"Baseus Inspire XH1 adaptive active noise cancellation up to minus 48 decibels\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\"\u003e\u003c\/figure\u003e\n\u003cfigure class=\"lazy-aplus-image\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/A0203600_6.jpg?v=1768126062\" alt=\"Baseus Inspire XH1 five microphone ENC system for clear calls in noisy environments\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\"\u003e\u003c\/figure\u003e\n\u003cfigure class=\"lazy-aplus-image\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/A0203600_3.jpg?v=1768126062\" alt=\"Baseus Inspire XH1 foldable headphones with protective travel carry case\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\"\u003e\u003c\/figure\u003e\n\u003cfigure class=\"lazy-aplus-image\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/A0203600_2.jpg?v=1768126062\" alt=\"Baseus Inspire XH1 battery life up to 100 hours and fast charging support\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\"\u003e\u003c\/figure\u003e\n\u003cfigure class=\"lazy-aplus-image\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/A02036005-6.jpg?v=1768126062\" alt=\"Baseus Inspire XH1 headphones package contents including carry case and cables\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\"\u003e\u003c\/figure\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/XH1_compare_image.png?v=1784545899\" alt='alt=\"Baseus Inspire XH1 ANC headphones feature comparison with Sony, Edifier and JBL models\"' style=\"float: none;\"\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003c\/div\u003e\n\u003cp class=\"lazy-aplus-note\"\u003eBattery life, charging performance and noise cancellation results may vary depending on volume, codec, device settings and listening conditions.\u003c\/p\u003e\n\u003c\/section\u003e","brand":"Baseus","offers":[{"title":"Orange","offer_id":47666120786161,"sku":"A0203600","price":269.95,"currency_code":"AUD","in_stock":true},{"title":"blue","offer_id":47666120818929,"sku":"A0203601","price":269.95,"currency_code":"AUD","in_stock":true},{"title":"Black","offer_id":47666122490097,"sku":"A00085701123-00","price":269.95,"currency_code":"AUD","in_stock":true},{"title":"White","offer_id":47666122522865,"sku":"A00085701233-00","price":269.95,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0675\/1997\/1569\/files\/A0203600.jpg?v=1768126062"}],"url":"https:\/\/2lazy.com.au\/collections\/mestery-box-travel-tech-pack-products.oembed","provider":"2 Lazy Tech","version":"1.0","type":"link"}