<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>eSIM4 Troubleshooter</title>
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700&display=swap" rel="stylesheet">
<style>
:root{--t:#00b4b9;--td:#009a9e;--tl:#e0f7f8;--nv:#1a2332;--w:#fff;--g50:#f8fafb;--g100:#f0f3f5;--g200:#e2e7eb;--g300:#c5cdd4;--g400:#8e99a4;--g600:#4a5568;--g700:#2d3748;--gn:#22c55e;--gnb:#f0fdf4;--or:#f59e0b;--orb:#fffbeb;--rd:#ef4444;--rdb:#fef2f2;--r:16px;--rs:10px;--sh:0 1px 3px rgba(0,0,0,.06),0 4px 12px rgba(0,0,0,.04);--sl:0 4px 24px rgba(0,0,0,.08)}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'DM Sans',sans-serif;background:var(--g50);color:var(--g700);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}
.hd{background:linear-gradient(135deg,var(--nv),#1e3044);padding:20px 20px 28px;text-align:center;position:relative;overflow:hidden}
.hd::after{content:'';position:absolute;bottom:-30px;left:-10%;width:120%;height:60px;background:var(--g50);border-radius:50% 50% 0 0}
.hd h1{font-size:22px;font-weight:700;color:var(--w);margin-bottom:6px;letter-spacing:-.5px}
.hd h1 span{color:var(--t)}
.hd p{color:var(--g300);font-size:13px}
.ct{max-width:480px;margin:0 auto;padding:0 16px 40px}
.db{background:var(--w);border-radius:var(--r);box-shadow:var(--sh);padding:16px 18px;margin:-12px 0 20px;position:relative;z-index:2;display:flex;align-items:center;gap:14px}
.di{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.di.ios{background:linear-gradient(135deg,#f5f5f7,#e8e8ed)}.di.and{background:linear-gradient(135deg,#e8f5e9,#c8e6c9)}.di.unk{background:var(--g100)}
.dt{flex:1}.dt h3{font-size:14px;font-weight:600;color:var(--g700)}.dt p{font-size:12px;color:var(--g400);margin-top:1px}
.st{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--g400);margin:28px 0 12px;padding-left:4px}
.cc{background:var(--w);border-radius:var(--r);box-shadow:var(--sh);padding:18px;margin-bottom:16px}
.ch{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.ch h4{font-size:15px;font-weight:600}
.btn{background:var(--t);color:var(--w);border:none;padding:8px 18px;border-radius:20px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer}
.btn:disabled{opacity:.6;cursor:not-allowed}
.cr{display:flex;flex-direction:column;gap:8px}
.rw{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--g50);border-radius:var(--rs);font-size:13px;transition:all .3s}
.rw.p{background:var(--gnb)}.rw.f{background:var(--rdb)}.rw.w{background:var(--orb)}
.rl{font-weight:500;color:var(--g600)}
.rv{font-weight:600;font-size:12px}.rv.p{color:var(--gn)}.rv.f{color:var(--rd)}.rv.w{color:var(--or)}.rv.x{color:var(--g300)}
.sp{display:inline-block;width:14px;height:14px;border:2px solid var(--g200);border-top-color:var(--t);border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.ig{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.ic{background:var(--w);border:2px solid var(--g200);border-radius:var(--r);padding:16px 14px;text-align:center;cursor:pointer;transition:all .2s}
.ic:hover{border-color:var(--t);transform:translateY(-1px);box-shadow:var(--sh)}
.ic.a{border-color:var(--t);background:var(--tl)}
.ic .ii{font-size:28px;margin-bottom:8px;display:block}.ic .il{font-size:13px;font-weight:600;color:var(--g700)}
.sc{display:none}.sc.v{display:block}
.sk{background:var(--w);border-radius:var(--r);box-shadow:var(--sh);margin-bottom:12px;overflow:hidden;transition:all .3s}
.sk.done{opacity:.6}.sk.cur{box-shadow:var(--sl);border-left:3px solid var(--t)}
.sh{display:flex;align-items:center;gap:14px;padding:16px 18px;cursor:pointer;user-select:none}
.sn{width:32px;height:32px;border-radius:50%;background:var(--t);color:var(--w);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0}
.sk.done .sn{background:var(--gn)}
.sa{flex:1}.sa h5{font-size:14px;font-weight:600;color:var(--g700)}.sa p{font-size:11px;color:var(--g400);margin-top:2px;font-family:monospace}
.sv{color:var(--g300);transition:transform .3s;font-size:18px}.sk.ex .sv{transform:rotate(180deg)}
.sb{max-height:0;overflow:hidden;transition:max-height .5s ease}.sk.ex .sb{max-height:1200px}
.sx{padding:0 18px 16px}
.si{font-size:13px;color:var(--g600);line-height:1.7;margin-bottom:14px;padding:12px 14px;background:var(--g50);border-radius:var(--rs);border-left:3px solid var(--t)}
.si code{background:var(--tl);color:var(--td);padding:2px 6px;border-radius:4px;font-size:12px;font-weight:600}
.pm{margin:0 auto 14px;max-width:260px;border-radius:28px;padding:10px;box-shadow:0 4px 20px rgba(0,0,0,.15)}
.pm.i{background:#1c1c1e}.pm.d{background:#1a1a2e}
.ps{border-radius:20px;overflow:hidden;min-height:180px}
.pm.i .ps{background:#f2f2f7}.pm.d .ps{background:#f5f5f5}
.pn{width:90px;height:20px;background:#000;border-radius:0 0 12px 12px;margin:0 auto}
.pm.i .pn{background:#1c1c1e}.pm.d .pn{width:55px;height:16px;border-radius:0 0 10px 10px;background:#1a1a2e}
.ih{padding:8px 14px 4px;font-size:10px;font-weight:700;color:#86868b;text-transform:uppercase;letter-spacing:.5px}
.it{padding:4px 14px 8px;font-size:16px;font-weight:700;color:#000}
.ir{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;background:#fff;border-bottom:.5px solid #e5e5ea;font-size:12px;color:#1c1c1e}
.ir:last-child{border-bottom:none}
.ir .la{display:flex;align-items:center;gap:8px}
.ir .li{width:24px;height:24px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff}
.tg{width:38px;height:22px;border-radius:11px;position:relative;display:inline-block}
.tg.on{background:#34c759}.tg.off{background:#e9e9eb}
.tg::after{content:'';position:absolute;top:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.tg.on::after{left:18px}.tg.off::after{left:2px}
.vl{color:#86868b;font-size:12px;display:flex;align-items:center;gap:3px}
.cv{color:#c7c7cc;font-size:11px}
.grp{margin:0 10px 10px;border-radius:10px;overflow:hidden}
.hl{background:#fffce5!important}
.hr{animation:pr 1.5s ease infinite;box-shadow:0 0 0 2px #f59e0b;border-radius:11px}
@keyframes pr{0%,100%{box-shadow:0 0 0 2px rgba(245,158,11,.6)}50%{box-shadow:0 0 0 4px rgba(245,158,11,.3)}}
.mh{text-align:center;font-size:10px;color:var(--g400);margin:-8px 0 12px;font-style:italic}
.at{padding:10px 14px 6px;font-size:14px;font-weight:600;color:#1a1a2e}
.ar{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;background:#fff;font-size:12px;color:#1a1a2e;border-bottom:.5px solid #eee}
.ar .la{display:flex;align-items:center;gap:10px}
.ar .ai{width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:14px;color:#666}
.ar .as{font-size:10px;color:#999;margin-top:1px}
.ag{width:36px;height:20px;border-radius:10px;position:relative;display:inline-block}
.ag.on{background:#00b4b9}.ag.off{background:#ccc}
.ag::after{content:'';position:absolute;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.ag.on::after{left:18px}.ag.off::after{left:2px}
.agrp{margin:0 0 6px;overflow:hidden}
.ba{display:flex;gap:8px}
.bf,.bn{flex:1;padding:10px;border-radius:var(--rs);border:none;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer}
.bf:active,.bn:active{transform:scale(.97)}
.bf{background:var(--gn);color:var(--w)}.bn{background:var(--g100);color:var(--g600)}
.rc{background:var(--w);border-radius:var(--r);box-shadow:var(--sl);padding:24px;text-align:center;margin-top:20px;display:none}
.rc.v{display:block;animation:fu .4s ease}
.rc .re{font-size:48px;margin-bottom:12px}.rc h3{font-size:18px;font-weight:700;color:var(--g700);margin-bottom:6px}
.rc p{font-size:13px;color:var(--g400);margin-bottom:16px;line-height:1.6}
.rc a{display:inline-flex;align-items:center;gap:8px;background:var(--t);color:var(--w);text-decoration:none;padding:12px 24px;border-radius:24px;font-size:14px;font-weight:600}
.rb{display:inline-block;margin-top:12px;padding:10px 20px;background:transparent;border:2px solid var(--g200);color:var(--g600);border-radius:24px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer}
@keyframes fu{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
::-webkit-scrollbar{width:0}
.dw{display:none;background:linear-gradient(135deg,#fff3cd,#fff8e1);border:2px solid var(--or);border-radius:var(--r);padding:24px 20px;margin:-12px 0 20px;position:relative;z-index:2;text-align:center}
.dw.v{display:block;animation:fu .4s ease}
.dw .de{font-size:40px;margin-bottom:10px}.dw h3{font-size:16px;font-weight:700;color:var(--g700);margin-bottom:6px}
.dw p{font-size:13px;color:var(--g600);line-height:1.7;margin-bottom:16px}
.dw .tp{display:inline-block;background:var(--w);border:1.5px dashed var(--or);border-radius:var(--rs);padding:10px 16px;font-size:12px;color:var(--g600);line-height:1.6}
.dw .tp strong{color:var(--g700)}
.dw .dor{display:block;margin:14px 0 6px;font-size:11px;color:var(--g400);text-transform:uppercase;letter-spacing:1px;font-weight:600}
.dw .ds{display:flex;gap:8px;justify-content:center;margin-top:12px}
.dw .ds button{padding:8px 16px;border-radius:20px;border:2px solid var(--g200);background:var(--w);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer}
.dw .ds button:hover{border-color:var(--t);background:var(--tl)}
.cp{background:var(--w);border-radius:var(--r);box-shadow:var(--sh);padding:18px;margin-bottom:16px;display:none}
.cp.v{display:block;animation:fu .35s ease}
.cph{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.cpi{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.cpi.y{background:var(--gnb)}.cpi.n{background:var(--rdb)}.cpi.m{background:var(--orb)}
.cpn{font-size:15px;font-weight:700;color:var(--g700)}
.cpv{font-size:12px;font-weight:600;margin-top:2px}.cpv.y{color:var(--gn)}.cpv.n{color:var(--rd)}.cpv.m{color:var(--or)}
.cpd{font-size:12px;color:var(--g600);line-height:1.7;padding:12px 14px;background:var(--g50);border-radius:var(--rs)}
.cpd code{background:var(--tl);color:var(--td);padding:1px 5px;border-radius:3px;font-size:11px;font-weight:600}
.cpt{margin-top:10px;font-size:11px;color:var(--g400);line-height:1.6;padding:10px 14px;background:var(--orb);border-radius:var(--rs);border-left:3px solid var(--or)}
.cpt strong{color:var(--g600)}
.fab{position:fixed;bottom:20px;right:20px;width:56px;height:56px;border-radius:50%;background:var(--t);color:var(--w);border:none;font-size:26px;cursor:pointer;box-shadow:0 4px 16px rgba(0,180,185,.4);z-index:100;display:flex;align-items:center;justify-content:center}
.cpan{position:fixed;bottom:86px;right:16px;width:calc(100% - 32px);max-width:400px;height:440px;background:var(--w);border-radius:var(--r);box-shadow:0 8px 40px rgba(0,0,0,.15);z-index:100;display:none;flex-direction:column;overflow:hidden}
.cpan.o{display:flex;animation:fu .3s ease}
.chead{background:var(--nv);color:var(--w);padding:14px 18px;display:flex;align-items:center;justify-content:space-between}
.chead span{font-size:14px;font-weight:600}
.chead button{background:none;border:none;color:var(--g300);font-size:20px;cursor:pointer}
.cms{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.cm{max-width:85%;padding:10px 14px;border-radius:14px;font-size:13px;line-height:1.6;word-wrap:break-word}
.cm.b{background:var(--g100);color:var(--g700);align-self:flex-start;border-bottom-left-radius:4px}
.cm.u{background:var(--t);color:var(--w);align-self:flex-end;border-bottom-right-radius:4px}
.cm.tp{color:var(--g400);font-style:italic}
.cia{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--g200);background:var(--g50)}
.cia input{flex:1;border:1.5px solid var(--g200);border-radius:20px;padding:8px 14px;font-size:13px;font-family:inherit;outline:none}
.cia input:focus{border-color:var(--t)}
.csb{background:var(--t);color:var(--w);border:none;width:36px;height:36px;border-radius:50%;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.csb:disabled{opacity:.5}
.dgb{display:block;width:100%;padding:14px;margin-top:12px;background:var(--nv);color:var(--w);border:none;border-radius:var(--rs);font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;text-align:center}
.dgo{display:flex;gap:8px;margin-top:10px}
.dgo input{flex:1;border:1.5px solid var(--g200);border-radius:var(--rs);padding:10px 14px;font-size:13px;font-family:inherit;outline:none}
.dgo input:focus{border-color:var(--t)}
</style>
</head>
<body>
<div class="hd"><h1><span>eSIM</span>4</h1><p>eSIM Troubleshooter</p></div>
<div class="ct">
  <div class="db" id="detectBanner">
    <div class="di unk" id="dIcon">📱</div>
    <div class="dt"><h3 id="dTitle">Detecting device...</h3><p id="dDetail">Checking your device type and OS</p></div>
  </div>
  <div class="dw" id="dWarn">
    <div class="de">📱💻</div>
    <h3>This tool works best on your phone</h3>
    <p>Open this page on the phone with the eSIM issue so we can auto-detect your device and give you the exact steps.</p>
    <div class="tp"><strong>Tip:</strong> Copy this URL and text it to yourself</div>
    <span class="dor">or continue here and choose your device</span>
    <div class="ds"><button onclick="forceOS('ios')">🍎 iPhone</button><button onclick="forceOS('android')">🤖 Android</button></div>
  </div>
  <div class="st">Device Compatibility</div>
  <div class="cp" id="compCard">
    <div class="cph"><div class="cpi" id="compI">✅</div><div><div class="cpn" id="compM">Detecting...</div><div class="cpv" id="compV"></div></div></div>
    <div class="cpd" id="compD"></div>
    <div class="cpt" id="compT" style="display:none"></div>
  </div>
  <div class="st">Quick Connectivity Check</div>
  <div class="cc">
    <div class="ch"><h4>Network Diagnostics</h4><button class="btn" id="runBtn" onclick="runCheck()">Run Check</button></div>
    <div class="cr">
      <div class="rw" id="rOn"><span class="rl">Internet Connection</span><span class="rv x" id="sOn">—</span></div>
      <div class="rw" id="rTy"><span class="rl">Connection Type</span><span class="rv x" id="sTy">—</span></div>
      <div class="rw" id="rLa"><span class="rl">Latency</span><span class="rv x" id="sLa">—</span></div>
    </div>
  </div>
  <div class="st">What's the issue?</div>
  <div class="ig">
    <div class="ic" onclick="pickIssue('no-data')"><span class="ii">📵</span><span class="il">No Data / No Network</span></div>
    <div class="ic" onclick="pickIssue('slow-data')"><span class="ii">🐌</span><span class="il">Slow or Unstable Data</span></div>
    <div class="ic" onclick="pickIssue('install-fail')"><span class="ii">⚠️</span><span class="il">eSIM Won't Install</span></div>
    <div class="ic" onclick="pickIssue('not-activate')"><span class="ii">🔒</span><span class="il">eSIM Won't Activate</span></div>
  </div>
  <div class="sc" id="stepsBox"></div>
  <div class="rc" id="resCard">
    <div class="re" id="resE">🎉</div><h3 id="resT">All Fixed!</h3><p id="resP"></p>
    <a href="/cdn-cgi/l/email-protection#d8abada8a8b7aaac98bdabb1b5ecf6bbb7b5" id="resC" style="display:none">✉️ Contact eSIM4 Support</a>
    <br><button class="rb" onclick="restart()">Start Over</button>
  </div>
  <div class="st">Need More Help?</div>
  <div class="cc">
    <h4 style="margin-bottom:8px">Send Diagnostics to Support</h4>
    <p style="font-size:12px;color:var(--g400);margin-bottom:12px;line-height:1.6">Auto-generates an email with your device info, connectivity results, and steps tried.</p>
    <div class="dgo"><input type="text" id="diagOrd" placeholder="Your order number (optional)"></div>
    <button class="dgb" onclick="sendDiag()">📧 Send Diagnostics to eSIM4 Support</button>
  </div>
</div>
<button class="fab" onclick="toggleChat()">💬</button>
<div class="cpan" id="chatP">
  <div class="chead"><span>💬 eSIM4 Assistant</span><button onclick="toggleChat()">✕</button></div>
  <div class="cms" id="chatM"><div class="cm b">Hi! I'm the eSIM4 assistant. Ask me anything about your eSIM — setup, activation, data issues, APN settings, and more.</div></div>
  <div class="cia"><input id="chatI" placeholder="Type your question..." onkeydown="if(event.key==='Enter')sendChat()"><button class="csb" id="chatS" onclick="sendChat()">→</button></div>
</div>
<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
const ua=navigator.userAgent;
let dos='unknown',ov='',dm='',cr={},stl=[],ci=null,co=false;

function detectDevice(){
  const ic=document.getElementById('dIcon'),ti=document.getElementById('dTitle'),de=document.getElementById('dDetail');
  if(/iPhone|iPad|iPod/.test(ua)){
    dos='ios';const m=ua.match(/OS (\d+[_\.]\d+)/);ov=m?m[1].replace('_','.'):''
    ;ic.className='di ios';ic.textContent='🍎';ti.textContent='iPhone Detected';de.textContent='iOS '+ov+' • Steps tailored for your device';dm='iPhone (iOS '+ov+')'
  }else if(/Android/.test(ua)){
    dos='android';const m=ua.match(/Android (\d+[\d\.]*)/);ov=m?m[1]:''
    ;ic.className='di and';ic.textContent='🤖';const b=/Samsung/.test(ua)?'Samsung':/Pixel/.test(ua)?'Google Pixel':'Android'
    ;ti.textContent=b+' Detected';de.textContent=b+' • Android '+ov+' • Steps tailored';dm=b+' (Android '+ov+')'
  }else{
    ic.className='di unk';ic.textContent='💻';ti.textContent='Desktop / Unknown Device';de.textContent='See below to continue'
    ;document.getElementById('dWarn').classList.add('v')
  }
  checkCompat();
}

function forceOS(os){
  dos=os;
  const ic=document.getElementById('dIcon'),ti=document.getElementById('dTitle'),de=document.getElementById('dDetail');
  if(os==='ios'){ic.className='di ios';ic.textContent='🍎';ti.textContent='iPhone (Manual)';de.textContent='Showing iOS instructions';dm='iPhone (Manual)'}
  else{ic.className='di and';ic.textContent='🤖';ti.textContent='Android (Manual)';de.textContent='Showing Android instructions';dm='Android (Manual)'}
  document.getElementById('dWarn').classList.remove('v');
  checkCompat();
  if(ci)pickIssue(ci);
}

async function runCheck(){
  const btn=document.getElementById('runBtn');btn.disabled=true;btn.innerHTML='<span class="sp"></span>';
  ['On','Ty','La'].forEach(function(id){document.getElementById('s'+id).className='rv x';document.getElementById('s'+id).textContent='...';document.getElementById('r'+id).className='rw'});
  await W(400);
  var on=navigator.onLine;
  sS('On',on?'Connected':'Offline',on?'p':'f');cr.online=on?'Connected':'Offline';
  await W(500);
  var c=navigator.connection||navigator.mozConnection||navigator.webkitConnection;
  if(c&&(c.effectiveType||c.type)){
    var et=c.effectiveType||'',ct=c.type||'',lb='';
    if(ct==='wifi')lb='WiFi';else if(ct==='cellular')lb='Cellular';else if(et)lb=et.toUpperCase();
    sS('Ty',lb||'Connected','p');cr.type=lb||'Connected';
  }else{
    try{var t1=performance.now();await fetch('https://www.google.com/generate_204',{mode:'no-cors',cache:'no-store'});var pg=Math.round(performance.now()-t1);var gs=pg<50?'Likely WiFi':'Likely Cellular';sS('Ty',gs,'p');cr.type=gs}
    catch(e){sS('Ty','Connected','p');cr.type='Connected'}
  }
  await W(600);
  if(on){
    try{var s=performance.now();await fetch('https://www.google.com/favicon.ico',{mode:'no-cors',cache:'no-store'});var la=Math.round(performance.now()-s);sS('La',la+'ms',la<200?'p':la<600?'w':'f');cr.latency=la+'ms'}
    catch(e){sS('La','Failed','f');cr.latency='Failed'}
  }else{sS('La','N/A','f');cr.latency='N/A'}
  btn.disabled=false;btn.textContent='Re-run';
}

function sS(id,t,s){document.getElementById('s'+id).textContent=t;document.getElementById('s'+id).className='rv '+s;document.getElementById('r'+id).className='rw '+s}
function W(ms){return new Promise(function(r){setTimeout(r,ms)})}

function sendDiag(){
  var order=document.getElementById('diagOrd').value.trim();
  var l=['=== eSIM4 Troubleshooter Diagnostics ===','','Device: '+dm,'OS: '+(dos==='ios'?'iOS '+ov:'Android '+ov),'User Agent: '+ua,''];
  if(cr.online)l.push('--- Connectivity ---','Internet: '+cr.online,'Type: '+(cr.type||'Not tested'),'Latency: '+(cr.latency||'Not tested'),'');
  if(ci)l.push('Issue: '+ci,'');
  if(stl.length){l.push('--- Steps Tried ---');stl.forEach(function(s){l.push('- '+s)});l.push('')}
  if(order)l.push('Order: '+order,'');
  var cv=document.getElementById('compV');if(cv)l.push('Compatible: '+cv.textContent);
  var cm=document.getElementById('compM');if(cm)l.push('Model: '+cm.textContent);
  var body=encodeURIComponent(l.join('\n'));
  var subj=encodeURIComponent('eSIM4 Troubleshooter'+(order?' [Order: '+order+']':''));
  window.location.href='mailto:support@esim4.com?subject='+subj+'&body='+body;
}

function toggleChat(){co=!co;document.getElementById('chatP').classList.toggle('o',co)}

async function sendChat(){
  var input=document.getElementById('chatI');var msg=input.value.trim();if(!msg)return;input.value='';
  var ms=document.getElementById('chatM');
  ms.innerHTML+='<div class="cm u">'+esc(msg)+'</div>';
  ms.innerHTML+='<div class="cm b tp" id="chatTp">Thinking...</div>';
  ms.scrollTop=ms.scrollHeight;
  document.getElementById('chatS').disabled=true;
  try{
    var resp=await fetch('esim4-chat-proxy.php',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({message:msg,device:dm})});
    var data=await resp.json();
    var reply=data.reply||'Sorry, I couldn\'t connect. Please email support@esim4.com with your order number.';
    var el=document.getElementById('chatTp');if(el)el.remove();
    ms.innerHTML+='<div class="cm b">'+esc(reply).replace(/\n/g,'<br>')+'</div>';
  }catch(e){
    var el=document.getElementById('chatTp');if(el)el.remove();
    ms.innerHTML+='<div class="cm b">Sorry, I\'m having trouble connecting. Please email support@esim4.com with your order number.</div>';
  }
  document.getElementById('chatS').disabled=false;ms.scrollTop=ms.scrollHeight;
}
function esc(t){var d=document.createElement('div');d.textContent=t;return d.innerHTML}
// Compatibility DB
var samsungDB={'SM-S931':'Galaxy S25','SM-S936':'Galaxy S25+','SM-S938':'Galaxy S25 Ultra','SM-S921':'Galaxy S24','SM-S926':'Galaxy S24+','SM-S928':'Galaxy S24 Ultra','SM-S911':'Galaxy S23','SM-S916':'Galaxy S23+','SM-S918':'Galaxy S23 Ultra','SM-S901':'Galaxy S22','SM-S906':'Galaxy S22+','SM-S908':'Galaxy S22 Ultra','SM-G991':'Galaxy S21','SM-G996':'Galaxy S21+','SM-G998':'Galaxy S21 Ultra','SM-G981':'Galaxy S20','SM-G986':'Galaxy S20+','SM-G988':'Galaxy S20 Ultra','SM-N981':'Galaxy Note 20','SM-N986':'Galaxy Note 20 Ultra','SM-F946':'Galaxy Z Fold 6','SM-F956':'Galaxy Z Fold 5','SM-F936':'Galaxy Z Fold 4','SM-F926':'Galaxy Z Fold 3','SM-F741':'Galaxy Z Flip 6','SM-F731':'Galaxy Z Flip 5','SM-F721':'Galaxy Z Flip 4','SM-F711':'Galaxy Z Flip 3','SM-A546':'Galaxy A54','SM-A556':'Galaxy A55'};
var pixelDB=['Pixel 9 Pro Fold','Pixel 9 Pro XL','Pixel 9 Pro','Pixel 9a','Pixel 9','Pixel 8 Pro','Pixel 8a','Pixel 8','Pixel 7 Pro','Pixel 7a','Pixel 7','Pixel 6 Pro','Pixel 6a','Pixel 6','Pixel 5a','Pixel 5','Pixel 4a','Pixel 4 XL','Pixel 4','Pixel 3a XL','Pixel 3a','Pixel 3 XL','Pixel 3','Pixel 2 XL','Pixel 2'];
var otherDB={'2210132G':'Xiaomi 12T Pro','23078PND5G':'Xiaomi 13','2304FPN6DC':'Xiaomi 13 Pro','23113RKC6G':'Xiaomi 13T','2407FPN8EG':'Xiaomi 14','2501FPN8EG':'Xiaomi 15','CPH2573':'OnePlus 12','CPH2449':'OnePlus 11','XT2321':'Moto Razr+ 2024','XQ-DQ72':'Sony Xperia 1 V','XQ-EC72':'Sony Xperia 1 VI'};

function checkCompat(){
  var card=document.getElementById('compCard'),ic=document.getElementById('compI'),mn=document.getElementById('compM'),vd=document.getElementById('compV'),dt=document.getElementById('compD'),tp=document.getElementById('compT');
  var name='',st='m',det='',tip='';
  if(dos==='ios'){
    var v=parseFloat(ov);
    if(v>=16){name='iPhone (iOS '+ov+')';st='y';det='Your iPhone running iOS '+ov+' supports eSIM. All iPhones from XS/XR (2018) onwards are compatible.'}
    else if(v>=12){name='iPhone (iOS '+ov+')';st='y';det='iOS version indicates iPhone XS/XR or later — eSIM supported.';tip='<strong>Note:</strong> iPhones from mainland China may not support eSIM.'}
    else if(v>0){name='iPhone (iOS '+ov+')';st='n';det='iOS '+ov+' suggests a model older than XS/XR. eSIM requires iPhone XS/XR (2018) or newer.'}
    else{name='iPhone';st='m';det='Could not determine iOS version.';tip='<strong>Check:</strong> Go to <code>Settings</code> → <code>Cellular</code>. If "Add eSIM" appears, you\'re good.'}
  }else if(dos==='android'){
    var found=false,k,n;
    for(k in samsungDB){if(ua.indexOf(k)>-1){name=samsungDB[k];st='y';det='Your <strong>'+samsungDB[k]+'</strong> supports eSIM. Ensure it is carrier-unlocked.';tip='<strong>Tip:</strong> Dial <code>*#06#</code> — if you see an EID, eSIM is confirmed.';dm=samsungDB[k];found=true;break}}
    if(!found){for(var i=0;i<pixelDB.length;i++){if(ua.indexOf(pixelDB[i])>-1){name='Google '+pixelDB[i];st='y';det='Your <strong>Google '+pixelDB[i]+'</strong> supports eSIM.';dm='Google '+pixelDB[i];found=true;break}}}
    if(!found){for(k in otherDB){if(ua.indexOf(k)>-1){name=otherDB[k];st='y';det='Your <strong>'+otherDB[k]+'</strong> supports eSIM.';dm=otherDB[k];found=true;break}}}
    if(!found){
      var bm=ua.match(/;\s*([^;)]+)\s+Build/);var raw=bm?bm[1].trim():'';
      name=raw||'Android Device';st='m';
      if(/Samsung/i.test(ua))det='Samsung detected but model not in our database. Galaxy S20+ and newer support eSIM.';
      else if(/Huawei/i.test(ua))det='Only Huawei Mate 40 Pro, P40, P40 Pro confirmed for eSIM.';
      else if(/Xiaomi|Redmi|POCO/i.test(ua))det='Some Xiaomi models support eSIM (12T Pro, 13/14 series). Not all compatible.';
      else det='Could not confirm your model. Most flagships from 2020+ support eSIM.';
      tip='<strong>Quick check:</strong> Dial <code>*#06#</code>. If you see an <strong>EID</strong> number, eSIM is supported.';
      if(raw)dm=raw;
    }
  }else return;
  mn.innerHTML=name;
  if(st==='y'){ic.className='cpi y';ic.textContent='✅';vd.textContent='eSIM Compatible';vd.className='cpv y'}
  else if(st==='n'){ic.className='cpi n';ic.textContent='❌';vd.textContent='Not eSIM Compatible';vd.className='cpv n'}
  else{ic.className='cpi m';ic.textContent='❓';vd.textContent='Compatibility Uncertain';vd.className='cpv m'}
  dt.innerHTML=det;
  if(tip){tp.innerHTML=tip;tp.style.display='block'}else tp.style.display='none';
  card.classList.add('v');
}
// Mockup builders
function iM(c){return '<div class="pm i"><div class="pn"></div><div class="ps">'+c+'</div></div><div class="mh">↑ Your iPhone settings</div>'}
function aM(c){return '<div class="pm d"><div class="pn"></div><div class="ps">'+c+'</div></div><div class="mh">↑ Your Android settings</div>'}
function iRow(ic,col,lab,rt,hl){return '<div class="ir'+(hl?' hl':'')+'"><div class="la"><div class="li" style="background:'+col+'">'+ic+'</div><span>'+lab+'</span></div><div>'+rt+'</div></div>'}
function iTg(on,hl){return '<div class="tg '+(on?'on':'off')+(hl?' hr':'')+'"></div>'}
function iVal(v){return '<span class="vl">'+v+' <span class="cv">›</span></span>'}
function aRow(ic,lab,sub,rt,hl){return '<div class="ar'+(hl?' hl':'')+'"><div class="la"><div class="ai">'+ic+'</div><div><div>'+lab+'</div>'+(sub?'<div class="as">'+sub+'</div>':'')+'</div></div><div>'+rt+'</div></div>'}
function aTg(on,hl){return '<div class="ag '+(on?'on':'off')+(hl?' hr':'')+'"></div>'}

var MK={
'no-data':{ios:[
function(){return iM('<div class="it">Cellular</div><div class="grp">'+iRow('📶','#5856d6','Primary','<span class="vl">On</span>',0)+iRow('🌐','#00b4b9','eSIM4 Travel','',0)+'</div><div class="ih">eSIM4 Travel</div><div class="grp">'+iRow('','#34c759','Turn On This Line',iTg(1,1),1)+'</div>')},
function(){return iM('<div class="it">eSIM4 Travel</div><div class="grp">'+iRow('','#34c759','Turn On This Line',iTg(1,0),0)+iRow('','#ff9500','Data Roaming',iTg(1,1),1)+iRow('','#5856d6','Network Selection',iVal('Automatic'),0)+'</div>')},
function(){return iM('<div class="it">Cellular</div><div class="ih">Cellular Data</div><div class="grp">'+iRow('📱','#8e8e93','Primary','',0)+iRow('🌐','#00b4b9','eSIM4 Travel','<span style="color:#34c759;font-weight:700">✓</span>',1)+'</div>')},
function(){return iM('<div class="it">Cellular Data Network</div><div class="ih">Cellular Data</div><div class="grp"><div class="ir hl"><span>APN</span><span style="color:#00b4b9;font-weight:600">globaldata</span></div><div class="ir"><span>Username</span><span></span></div><div class="ir"><span>Password</span><span></span></div></div>')},
function(){return iM('<div class="it">Network Selection</div><div class="grp">'+iRow('','#ff9500','Automatic',iTg(0,1),1)+'</div><div class="ih">Available Networks</div><div class="grp"><div class="ir"><span>Vodafone</span><span class="cv">›</span></div><div class="ir hl"><span>T-Mobile</span><span style="color:#34c759;font-weight:700">✓</span></div><div class="ir"><span>Orange</span><span class="cv">›</span></div></div>')},
function(){return iM('<div class="it">Reset</div><div class="grp"><div class="ir"><span>Reset All Settings</span><span></span></div><div class="ir hl" style="justify-content:center"><span style="color:#ef4444;font-weight:600">Reset Network Settings</span></div></div>')}
],android:[
function(){return aM('<div class="at">SIM Manager</div><div class="agrp">'+aRow('📱','SIM 1','Vodafone AU',aTg(0,0),0)+aRow('🌐','eSIM4 Travel','eSIM',aTg(1,1),1)+'</div>')},
function(){return aM('<div class="at">Mobile Networks</div><div class="agrp">'+aRow('📡','Mobile data','',aTg(1,0),0)+aRow('🌍','Data roaming','Access data when roaming',aTg(1,1),1)+'</div>')},
function(){return aM('<div class="at">SIM Manager</div><div class="agrp">'+aRow('📲','Mobile data','','',0)+'</div><div style="padding:6px 14px"><div class="ar"><span>SIM 1</span><span></span></div><div class="ar hl"><span>eSIM4 Travel</span><span style="color:#00b4b9;font-weight:700">●</span></div></div>')},
function(){return aM('<div class="at">Access Point Names</div><div class="agrp"><div class="ar hl"><div class="la"><div class="ai">⚙️</div><div><div>globaldata</div><div class="as">APN: globaldata</div></div></div><span style="color:#00b4b9;font-weight:700">●</span></div></div>')},
function(){return aM('<div class="at">Network Operators</div><div class="agrp">'+aRow('🔄','Select automatically','',aTg(0,1),1)+'</div><div style="padding:4px 0"><div class="ar"><span>Vodafone</span><span></span></div><div class="ar hl"><span>T-Mobile</span><span style="color:#00b4b9">✓</span></div></div>')},
function(){return aM('<div class="at">Reset</div><div class="agrp"><div class="ar hl" style="justify-content:center"><span style="color:#ef4444;font-weight:600">Reset network settings</span></div></div>')}
]},
'slow-data':{ios:[
function(){return iM('<div style="text-align:center;padding:24px 14px 6px;font-size:36px">✈️</div><div style="text-align:center;padding:6px;font-size:14px;font-weight:600">Airplane Mode</div><div class="grp" style="margin-top:10px">'+iRow('✈️','#ff9500','Airplane Mode',iTg(1,1),1)+'</div><div style="text-align:center;padding:6px;font-size:10px;color:#86868b">ON → 10 sec → OFF</div>')},
function(){return iM('<div class="it">Network Selection</div><div class="grp">'+iRow('','#ff9500','Automatic',iTg(0,1),1)+'</div><div class="ih">Networks</div><div class="grp"><div class="ir hl"><span>T-Mobile</span><span style="color:#34c759;font-weight:700">✓</span></div><div class="ir"><span>Orange</span><span class="cv">›</span></div></div>')},
function(){return iM('<div style="text-align:center;padding:20px 14px"><div style="font-size:32px;margin-bottom:6px">📊</div><div style="font-size:14px;font-weight:600">Check Data Balance</div><div style="font-size:11px;color:#86868b;margin-top:6px">Open <b>eSIM4 app (Yabb)</b> or order email</div><div style="margin:12px auto;width:120px;height:7px;background:#e5e5ea;border-radius:4px;overflow:hidden"><div style="width:35%;height:100%;background:#ff9500;border-radius:4px"></div></div></div>')},
function(){return iM('<div class="it">Reset</div><div class="grp"><div class="ir hl" style="justify-content:center"><span style="color:#ef4444;font-weight:600">Reset Network Settings</span></div></div>')}
],android:[
function(){return aM('<div style="text-align:center;padding:24px 14px 6px;font-size:36px">✈️</div><div style="text-align:center;padding:6px;font-size:14px;font-weight:600;color:#1a1a2e">Airplane Mode</div><div class="agrp" style="margin-top:10px">'+aRow('✈️','Airplane mode','',aTg(1,1),1)+'</div><div style="text-align:center;padding:6px;font-size:10px;color:#999">ON → 10 sec → OFF</div>')},
function(){return aM('<div class="at">Network Operators</div><div class="agrp">'+aRow('🔄','Select automatically','',aTg(0,1),1)+'</div><div style="padding:4px 0"><div class="ar hl"><span>T-Mobile</span><span style="color:#00b4b9">✓</span></div></div>')},
function(){return aM('<div style="text-align:center;padding:20px 14px"><div style="font-size:32px;margin-bottom:6px">📊</div><div style="font-size:14px;font-weight:600;color:#1a1a2e">Check Data Balance</div><div style="font-size:11px;color:#999;margin-top:6px">Open <b>eSIM4 app (Yabb)</b> or order email</div><div style="margin:12px auto;width:120px;height:7px;background:#eee;border-radius:4px;overflow:hidden"><div style="width:35%;height:100%;background:#ff9500;border-radius:4px"></div></div></div>')},
function(){return aM('<div class="at">Reset</div><div class="agrp"><div class="ar hl" style="justify-content:center"><span style="color:#ef4444;font-weight:600">Reset network settings</span></div></div>')}
]},
'install-fail':{ios:[
function(){return iM('<div class="it">Wi-Fi</div><div class="grp">'+iRow('📶','#007aff','Wi-Fi',iTg(1,1),1)+'</div><div class="grp"><div class="ir hl"><span>Your_WiFi</span><span style="color:#34c759;font-size:11px">✓ Connected</span></div></div>')},
function(){return iM('<div class="it">About</div><div class="grp"><div class="ir"><span>Model</span><span class="vl">iPhone 15 Pro</span></div><div class="ir hl"><span>eSIM</span><span style="color:#34c759;font-weight:600;font-size:11px">✓ Yes</span></div><div class="ir"><span>Lock</span><span style="color:#34c759;font-size:11px">No restrictions</span></div></div>')},
function(){return iM('<div class="it">Cellular</div><div class="ih">eSIM Profiles</div><div class="grp"><div class="ir"><span>Travel Japan</span><span style="color:#86868b;font-size:10px">Expired</span></div><div class="ir"><span>Travel UK</span><span style="color:#86868b;font-size:10px">Expired</span></div></div><div style="text-align:center;padding:6px;font-size:10px;color:#ff9500">Delete old profiles to free slots</div>')},
function(){return iM('<div class="it">Add eSIM</div><div class="grp"><div class="ir" style="justify-content:center"><span style="color:#007aff;font-size:12px">Scan QR Code</span></div><div class="ir hl" style="justify-content:center"><span style="color:#007aff;font-weight:600;font-size:12px">Enter Details Manually</span></div></div>')},
function(){return iM('<div style="text-align:center;padding:30px 14px"><div style="font-size:36px;margin-bottom:10px">🔄</div><div style="font-size:14px;font-weight:600">Restart iPhone</div><div style="font-size:11px;color:#86868b;margin-top:6px">Power off → 30s → turn on</div></div>')}
],android:[
function(){return aM('<div class="at">Wi-Fi</div><div class="agrp">'+aRow('📶','Wi-Fi','',aTg(1,1),1)+'<div class="ar hl"><span>Your_WiFi</span><span style="color:#34c759;font-size:11px">Connected</span></div></div>')},
function(){return aM('<div class="at">About Phone</div><div class="agrp"><div class="ar"><span>Model</span><span style="font-size:11px;color:#666">Galaxy S24</span></div><div class="ar hl"><span>eSIM</span><span style="color:#34c759;font-weight:600;font-size:11px">✓ Yes</span></div><div class="ar"><span>Lock</span><span style="color:#34c759;font-size:11px">Unlocked</span></div></div>')},
function(){return aM('<div class="at">SIM Manager</div><div class="agrp"><div class="ar"><span>Travel Japan</span><span style="color:#999;font-size:10px">Expired</span></div></div><div style="text-align:center;padding:6px;font-size:10px;color:#ff9500">Remove old profiles</div>')},
function(){return aM('<div class="at">Add eSIM</div><div class="agrp"><div class="ar" style="justify-content:center"><span style="color:#00b4b9;font-size:12px">Scan QR Code</span></div><div class="ar hl" style="justify-content:center"><span style="color:#00b4b9;font-weight:600;font-size:12px">Enter Activation Code</span></div></div>')},
function(){return aM('<div style="text-align:center;padding:30px 14px"><div style="font-size:36px;margin-bottom:10px">🔄</div><div style="font-size:14px;font-weight:600;color:#1a1a2e">Restart Phone</div><div style="font-size:11px;color:#999;margin-top:6px">Power off → 30s → restart</div></div>')}
]},
'not-activate':{ios:[
function(){return iM('<div style="text-align:center;padding:20px 14px"><div style="font-size:36px;margin-bottom:8px">🌍</div><div style="font-size:14px;font-weight:600">At your destination?</div><div style="font-size:11px;color:#86868b;margin-top:6px;line-height:1.6">eSIM4 eSIMs activate on arrival.</div></div>')},
function(){return iM('<div class="it">About</div><div class="grp"><div class="ir"><span>Carrier</span><span class="vl">eSIM4</span></div><div class="ir hl"><span>ICCID</span><span style="font-size:9px;color:#00b4b9">8944 5012 3456 7890</span></div></div><div style="text-align:center;padding:6px;font-size:10px;color:#ff9500">Match with order email</div>')},
function(){return iM('<div class="it">Cellular</div><div class="grp">'+iRow('','#34c759','Turn On This Line',iTg(1,1),1)+'</div>')},
function(){return iM('<div style="text-align:center;padding:24px 14px 6px;font-size:36px">✈️</div><div style="text-align:center;padding:6px;font-size:14px;font-weight:600">Airplane Mode</div><div class="grp" style="margin-top:10px">'+iRow('✈️','#ff9500','Airplane Mode',iTg(1,1),1)+'</div><div style="text-align:center;padding:6px;font-size:10px;color:#86868b">ON → 10s → OFF</div>')},
function(){return iM('<div style="text-align:center;padding:30px 14px"><div style="font-size:36px;margin-bottom:10px">🔄</div><div style="font-size:14px;font-weight:600">Restart iPhone</div><div style="font-size:11px;color:#86868b;margin-top:6px">Power off → 30s → on</div></div>')}
],android:[
function(){return aM('<div style="text-align:center;padding:20px 14px"><div style="font-size:36px;margin-bottom:8px">🌍</div><div style="font-size:14px;font-weight:600;color:#1a1a2e">At your destination?</div><div style="font-size:11px;color:#999;margin-top:6px">eSIM4 eSIMs activate on arrival.</div></div>')},
function(){return aM('<div class="at">Mobile Networks</div><div class="agrp"><div class="ar hl"><div class="la"><div class="ai">🆔</div><div><div>ICCID</div><div class="as" style="color:#00b4b9">8944 5012 3456 7890</div></div></div><span></span></div></div><div style="text-align:center;padding:6px;font-size:10px;color:#ff9500">Match with order email</div>')},
function(){return aM('<div class="at">SIM Manager</div><div class="agrp">'+aRow('🌐','eSIM4 Travel','eSIM',aTg(1,1),1)+'</div>')},
function(){return aM('<div style="text-align:center;padding:24px 14px 6px;font-size:36px">✈️</div><div style="text-align:center;padding:6px;font-size:14px;font-weight:600;color:#1a1a2e">Airplane Mode</div><div class="agrp" style="margin-top:10px">'+aRow('✈️','Airplane mode','',aTg(1,1),1)+'</div><div style="text-align:center;padding:6px;font-size:10px;color:#999">ON → 10s → OFF</div>')},
function(){return aM('<div style="text-align:center;padding:30px 14px"><div style="font-size:36px;margin-bottom:10px">🔄</div><div style="font-size:14px;font-weight:600;color:#1a1a2e">Restart Phone</div><div style="font-size:11px;color:#999;margin-top:6px">Power off → 30s → restart</div></div>')}
]}};
// Steps data
var SD={
'no-data':{ios:[
{t:'Enable the eSIM Line',p:'Settings → Cellular → eSIM',i:'Go to <code>Settings</code> → <code>Cellular</code> → Select eSIM → <code>Turn On This Line</code> → toggle <strong>ON</strong>.'},
{t:'Turn On Data Roaming',p:'Settings → Cellular → eSIM',i:'<code>Settings</code> → <code>Cellular</code> → eSIM → <code>Data Roaming</code> → <strong>ON</strong>. Required for eSIM4 abroad.'},
{t:'Set eSIM as Data Line',p:'Settings → Cellular → Cellular Data',i:'<code>Settings</code> → <code>Cellular</code> → <code>Cellular Data</code> → Select <strong>eSIM line</strong>.'},
{t:'Set Correct APN',p:'Settings → Cellular → eSIM → Cellular Data Network',i:'Set APN to <code>globaldata</code> (all lowercase, one word).'},
{t:'Manual Network Selection',p:'Settings → Cellular → eSIM → Network Selection',i:'Toggle <strong>Automatic OFF</strong> → Select a different carrier.'},
{t:'Reset Network Settings',p:'Settings → General → Transfer or Reset',i:'<code>Reset</code> → <code>Reset Network Settings</code>. WiFi passwords will be lost.'}
],android:[
{t:'Enable the eSIM Line',p:'Settings → Connections → SIM Manager',i:'Toggle eSIM <strong>ON</strong>. Toggle physical SIM <strong>OFF</strong> to avoid conflicts.'},
{t:'Turn On Data Roaming',p:'Settings → Connections → Mobile Networks',i:'Toggle <code>Data Roaming</code> <strong>ON</strong>.'},
{t:'Set eSIM as Data Line',p:'Settings → Connections → SIM Manager',i:'<code>Mobile Data</code> → Select <strong>eSIM line</strong>.'},
{t:'Set Correct APN',p:'Settings → Connections → Mobile Networks → APN',i:'Set APN to <code>globaldata</code> (all lowercase).'},
{t:'Manual Network Selection',p:'Settings → Connections → Mobile Networks',i:'<code>Network Operators</code> → Toggle <strong>Automatically OFF</strong> → Select different carrier.'},
{t:'Reset Network Settings',p:'Settings → General Management → Reset',i:'<code>Reset Network Settings</code>.'}
]},
'slow-data':{ios:[
{t:'Toggle Airplane Mode',p:'Control Center',i:'<strong>ON</strong> → wait 10 seconds → <strong>OFF</strong>.'},
{t:'Manual Network Selection',p:'Settings → Cellular → eSIM → Network Selection',i:'Toggle Automatic <strong>OFF</strong> → Try different carrier.'},
{t:'Check Data Usage',p:'eSIM4 App or Email',i:'Check remaining data in <strong>eSIM4 app (Yabb)</strong> or order email.'},
{t:'Reset Network Settings',p:'Settings → General → Transfer or Reset',i:'<code>Reset Network Settings</code>.'}
],android:[
{t:'Toggle Airplane Mode',p:'Quick Settings',i:'<strong>ON</strong> → 10 seconds → <strong>OFF</strong>.'},
{t:'Manual Network Selection',p:'Settings → Connections → Mobile Networks',i:'<code>Network Operators</code> → Toggle <strong>Automatically OFF</strong>.'},
{t:'Check Data Usage',p:'eSIM4 App or Email',i:'Check data in <strong>eSIM4 app (Yabb)</strong> or order email.'},
{t:'Reset Network Settings',p:'Settings → General Management → Reset',i:'<code>Reset Network Settings</code>.'}
]},
'install-fail':{ios:[
{t:'Check WiFi',p:'Settings → Wi-Fi',i:'Stable WiFi required for eSIM install.'},
{t:'Check Compatibility',p:'Settings → General → About',i:'<strong>iPhone XS/XR+</strong> required. Must be carrier-unlocked.'},
{t:'Check eSIM Limit',p:'Settings → Cellular',i:'iPhones hold 8-10 profiles. Delete unused plans.'},
{t:'Manual Activation Code',p:'Settings → Cellular → Add eSIM',i:'<code>Enter Details Manually</code> → SM-DP+ from eSIM4 email.'},
{t:'Restart Device',p:'',i:'Power off → 30 seconds → turn on. Retry.'}
],android:[
{t:'Check WiFi',p:'Settings → Connections → Wi-Fi',i:'Stable WiFi required.'},
{t:'Check Compatibility',p:'Settings → About Phone',i:'<strong>Samsung S20+, Pixel 3a+</strong>. Must be unlocked.'},
{t:'Check eSIM Limit',p:'Settings → Connections → SIM Manager',i:'Delete unused eSIM profiles.'},
{t:'Manual Activation Code',p:'Settings → Connections → SIM Manager',i:'<code>Add eSIM</code> → <code>Enter Activation Code</code> → SM-DP+.'},
{t:'Restart Device',p:'',i:'Power off → 30 seconds → restart.'}
]},
'not-activate':{ios:[
{t:'At Your Destination?',p:'',i:'eSIM4 eSIMs <strong>activate on arrival</strong>.'},
{t:'Verify ICCID',p:'Settings → General → About',i:'Scroll to <strong>ICCID</strong>. Match with order email.'},
{t:'Enable eSIM Line',p:'Settings → Cellular → eSIM',i:'<code>Turn On This Line</code> → <strong>ON</strong>.'},
{t:'Toggle Airplane Mode',p:'Control Center',i:'<strong>ON</strong> → 10 seconds → <strong>OFF</strong>.'},
{t:'Restart Device',p:'',i:'Power off → 30 seconds → turn on.'}
],android:[
{t:'At Your Destination?',p:'',i:'eSIM4 eSIMs <strong>activate on arrival</strong>.'},
{t:'Verify ICCID',p:'Settings → Connections → Mobile Networks',i:'Match <strong>ICCID</strong> with order email.'},
{t:'Enable eSIM Line',p:'Settings → Connections → SIM Manager',i:'Toggle eSIM <strong>ON</strong>.'},
{t:'Toggle Airplane Mode',p:'Quick Settings',i:'<strong>ON</strong> → 10 seconds → <strong>OFF</strong>.'},
{t:'Restart Device',p:'',i:'Power off → 30 seconds → restart.'}
]}};

function pickIssue(issue){
  document.querySelectorAll('.ic').forEach(function(c,i){c.classList.toggle('a',['no-data','slow-data','install-fail','not-activate'][i]===issue)});
  ci=issue;stl=[];document.getElementById('resCard').classList.remove('v');
  var os=dos==='ios'?'ios':'android',st=SD[issue][os],mk=MK[issue][os],box=document.getElementById('stepsBox');
  box.innerHTML='';
  st.forEach(function(s,i){
    var card=document.createElement('div');card.className='sk'+(i===0?' cur ex':'');card.id='stp-'+i;
    card.innerHTML='<div class="sh" onclick="tglS('+i+')"><div class="sn">'+(i+1)+'</div><div class="sa"><h5>'+s.t+'</h5>'+(s.p?'<p>'+s.p+'</p>':'')+'</div><span class="sv">▾</span></div><div class="sb"><div class="sx">'+mk[i]()+'<div class="si">'+s.i+'</div><div class="ba"><button class="bf" onclick="sDone('+i+',1)">✓ This Fixed It</button><button class="bn" onclick="sDone('+i+',0)">✗ Still Not Working</button></div></div></div>';
    box.appendChild(card)
  });
  box.classList.add('v');box.scrollIntoView({behavior:'smooth',block:'start'});
}
function tglS(i){document.getElementById('stp-'+i).classList.toggle('ex')}
function sDone(i,fixed){
  var os=dos==='ios'?'ios':'android',st=SD[ci][os],card=document.getElementById('stp-'+i);
  stl.push(st[i].t+(fixed?' [Fixed]':' [Not fixed]'));
  if(fixed){card.classList.add('done');card.classList.remove('ex','cur');card.querySelector('.sn').textContent='✓';showR(1)}
  else{card.classList.add('done');card.classList.remove('ex','cur');var n=i+1;
    if(n<st.length){var nc=document.getElementById('stp-'+n);nc.classList.add('cur','ex');setTimeout(function(){nc.scrollIntoView({behavior:'smooth',block:'center'})},200)}
    else showR(0)}
}
function showR(fixed){
  var c=document.getElementById('resCard');
  document.getElementById('resE').textContent=fixed?'🎉':'🤝';
  document.getElementById('resT').textContent=fixed?'All Fixed!':'Let\'s Get You More Help';
  document.getElementById('resP').textContent=fixed?'Your eSIM should now be working. Enjoy your trip!':'Use Send Diagnostics below or chat with our assistant for more help.';
  document.getElementById('resC').style.display=fixed?'none':'inline-flex';
  c.classList.add('v');setTimeout(function(){c.scrollIntoView({behavior:'smooth',block:'center'})},100);
}
function restart(){
  ci=null;stl=[];document.querySelectorAll('.ic').forEach(function(c){c.classList.remove('a')});
  var s=document.getElementById('stepsBox');s.classList.remove('v');s.innerHTML='';
  document.getElementById('resCard').classList.remove('v');window.scrollTo({top:0,behavior:'smooth'});
}

detectDevice();
</script>
</body>
</html>
