@font-face{font-family:"Pop";src:url(/fonts/Poppins-Regular.ttf) format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Pop";src:url(/fonts/Poppins-Medium.ttf) format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:"Pop";src:url(/fonts/Poppins-Bold.ttf) format("truetype");font-weight:700;font-display:swap}
:root{
  --navy:#0c2e7a; --navy-2:#081f55; --navy-3:#163f9a; --orange:#f78c14; --orange-2:#e07400;
  --bg:#eef1f7; --card:#fff; --ink:#0d1630; --muted:#5d6882; --line:#dde3ef; --ok:#1a9b52; --bad:#c62f2f;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:#d9dfeb;font-family:"Pop",system-ui,sans-serif;color:var(--ink)}
button{font-family:inherit;cursor:pointer;color:inherit}
input,select,textarea{font-family:inherit}
a{color:inherit}
.app{max-width:480px;margin:0 auto;min-height:100vh;background:var(--bg);position:relative;padding-bottom:84px;overflow-x:hidden}
header{background:var(--navy);color:#fff;padding:14px 16px 16px;position:sticky;top:0;z-index:20;box-shadow:0 2px 10px rgba(8,31,85,.25)}
.hrow{display:flex;align-items:center;justify-content:space-between;gap:10px}
.logo{height:30px;display:block}
.hbtn{display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.12);border:0;color:#fff;padding:7px 12px;border-radius:99px;font-size:13px;font-weight:500;text-decoration:none}
.search{margin-top:12px;display:flex;align-items:center;gap:8px;background:#fff;border-radius:14px;padding:10px 12px}
.search input{border:0;outline:0;flex:1;font-size:16px;color:var(--ink);background:transparent;min-width:0}
main{padding:14px 16px}
.banner{border-radius:20px;background:linear-gradient(120deg,var(--navy-3),var(--navy));color:#fff;padding:18px;position:relative;overflow:hidden;display:flex;align-items:center;gap:12px;min-height:150px}
.banner .tx{flex:1;position:relative;z-index:2}
.tag{display:inline-block;background:var(--orange);color:#fff;font-weight:700;font-size:11px;padding:4px 10px;border-radius:99px;letter-spacing:.3px}
.banner h2{margin:8px 0 4px;font-size:21px;line-height:1.15}
.banner p{margin:0;font-size:12.5px;opacity:.85}
.banner .imgs{display:flex;align-items:flex-end;position:relative;z-index:2}
.banner .imgs img{height:96px;max-width:64px;object-fit:contain;margin-left:-10px;filter:drop-shadow(0 6px 8px rgba(0,0,0,.35))}
.banner .tx{min-width:55%}
.banner:after{content:"";position:absolute;right:-40px;top:-40px;width:180px;height:180px;border-radius:50%;background:rgba(247,140,20,.18)}
.sec{display:flex;justify-content:space-between;align-items:baseline;margin:20px 0 10px;gap:10px}
.sec h3{margin:0;font-size:17px}
.sec a,.sec button.lnk{color:var(--navy-3);font-size:13px;font-weight:500;text-decoration:none;background:none;border:0;padding:0}
.cats{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.cats::-webkit-scrollbar{display:none}
.cat{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:6px;border:0;background:transparent;width:76px;padding:0}
.cat .ic{width:68px;height:68px;border-radius:20px;background:#fff;display:grid;place-items:center;box-shadow:0 2px 8px rgba(12,46,122,.08);border:2px solid transparent}
.cat .ic img{max-width:52px;max-height:52px}
.cat span{font-size:11.5px;font-weight:500;text-align:center;line-height:1.2}
.cat.on .ic{border-color:var(--orange)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pc{background:var(--card);border-radius:18px;padding:10px;display:flex;flex-direction:column;box-shadow:0 2px 10px rgba(12,46,122,.07);position:relative;cursor:pointer}
.pc .im{height:120px;display:grid;place-items:center;border-radius:12px;background:#f6f8fc;margin-bottom:8px}
.pc .im img{max-height:108px;max-width:92%}
.pc .nm{font-size:13px;font-weight:500;line-height:1.25;min-height:33px}
.pc .un{font-size:11px;color:var(--muted);margin-top:2px}
.pc .pr{display:flex;align-items:center;justify-content:space-between;margin-top:8px;gap:6px}
.price{font-weight:700;font-size:16px;color:var(--navy)}
.add{width:36px;height:36px;border-radius:12px;border:0;background:var(--orange);color:#fff;font-size:22px;font-weight:700;line-height:1;display:grid;place-items:center;flex:0 0 auto}
.qty{display:flex;align-items:center;gap:6px;background:var(--navy);border-radius:12px;padding:3px;flex:0 0 auto}
.qty button{width:30px;height:30px;border:0;border-radius:9px;background:rgba(255,255,255,.15);color:#fff;font-size:18px;font-weight:700}
.qty span{color:#fff;font-weight:700;min-width:18px;text-align:center;font-size:14px}
.badge{position:absolute;top:10px;left:10px;background:var(--orange);color:#fff;font-size:10px;font-weight:700;padding:3px 8px;border-radius:99px}
nav.tabs{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;background:#fff;border-top:1px solid var(--line);display:flex;padding:8px 6px calc(8px + env(safe-area-inset-bottom));z-index:30}
nav.tabs button{flex:1;border:0;background:transparent;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;color:var(--muted);font-weight:500;position:relative}
nav.tabs button svg{width:24px;height:24px}
nav.tabs button.on{color:var(--navy)}
nav.tabs button.on svg{stroke:var(--orange)}
.cnt{position:absolute;top:-4px;left:calc(50% + 6px);background:var(--orange);color:#fff;border-radius:99px;font-size:10px;font-weight:700;padding:1px 6px}
.back{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.back button{width:38px;height:38px;border-radius:12px;border:0;background:#fff;font-size:18px;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.back h2{margin:0;font-size:18px}
.hero{background:#fff;border-radius:22px;height:280px;display:grid;place-items:center;box-shadow:0 2px 10px rgba(12,46,122,.07)}
.hero img{max-height:240px;max-width:85%}
.detail h1{font-size:21px;margin:16px 0 4px;line-height:1.2}
.brand{color:var(--muted);font-size:13px}
.btn{width:100%;border:0;border-radius:16px;padding:15px;font-size:16px;font-weight:700;background:var(--orange);color:#fff;box-shadow:0 6px 16px rgba(247,140,20,.35)}
.btn:disabled{opacity:.55;box-shadow:none}
.btn.sec2{background:var(--navy);box-shadow:none}
.btn.ghost{background:#fff;color:var(--navy);box-shadow:none;border:2px solid var(--line)}
.btn.sm{padding:10px 12px;font-size:13.5px;border-radius:12px;width:auto}
.box{background:#fff;border-radius:18px;padding:14px;box-shadow:0 2px 10px rgba(12,46,122,.06);margin-bottom:12px}
.ci{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.ci:last-child{border-bottom:0}
.ci .th{width:58px;height:58px;border-radius:12px;background:#f6f8fc;display:grid;place-items:center;flex:0 0 auto}
.ci .th img{max-width:50px;max-height:50px}
.ci .inf{flex:1;min-width:0}
.ci .inf div{font-size:13px;font-weight:500;line-height:1.25}
.ci .inf small{color:var(--muted);font-size:11.5px}
.row{display:flex;justify-content:space-between;font-size:14px;padding:5px 0;gap:10px}
.row.t{font-weight:700;font-size:17px;border-top:1px dashed var(--line);margin-top:6px;padding-top:10px}
.note{background:#fff3e3;color:#8a4a00;border-radius:14px;padding:10px 12px;font-size:12.5px;margin-bottom:12px}
.note.ok{background:#e7f6ee;color:#11663a}
.note.bad{background:#fdeaea;color:#8f1d1d}
label.f{display:block;font-size:12.5px;font-weight:500;color:var(--muted);margin:10px 0 5px}
.in{width:100%;border:2px solid var(--line);border-radius:14px;padding:12px;font-size:16px;outline:0;background:#fff;color:var(--ink)}
.in:focus{border-color:var(--navy-3)}
.pay{display:flex;gap:12px;align-items:center;border:2px solid var(--line);border-radius:16px;padding:14px;margin-bottom:10px;background:#fff;width:100%;text-align:left}
.pay.on{border-color:var(--orange);background:#fff7ee}
.pay:disabled{opacity:.55}
.pay .pi{width:44px;height:44px;border-radius:12px;background:var(--navy);display:grid;place-items:center;flex:0 0 auto}
.pay .pi svg{width:24px;height:24px;stroke:#fff}
.pay b{font-size:15px;display:block}
.pay small{color:var(--muted);font-size:12px}
.radio{margin-left:auto;width:22px;height:22px;border-radius:50%;border:2px solid var(--line);flex:0 0 auto}
.pay.on .radio{border:7px solid var(--orange)}
.steps{position:relative;margin:12px 0 4px;padding-left:6px}
.st{display:flex;gap:12px;align-items:flex-start;padding-bottom:18px;position:relative}
.st:before{content:"";position:absolute;left:13px;top:28px;bottom:0;width:2px;background:var(--line)}
.st:last-child:before{display:none}
.st .dot{width:28px;height:28px;border-radius:50%;background:var(--line);display:grid;place-items:center;flex:0 0 auto;z-index:1;color:#fff;font-size:14px;font-weight:700}
.st.done .dot{background:var(--ok)}
.st.now .dot{background:var(--orange);box-shadow:0 0 0 6px rgba(247,140,20,.2)}
.st b{font-size:14px;display:block}
.st small{color:var(--muted);font-size:12px}
.big{text-align:center;padding:10px 0 4px}
.big .ck{width:76px;height:76px;border-radius:50%;background:var(--ok);display:grid;place-items:center;margin:0 auto 10px}
.big h2{margin:0;font-size:21px}
.big p{color:var(--muted);font-size:13px;margin:4px 0 0}
.wa{display:flex;align-items:center;justify-content:center;gap:8px;background:#1fa855;color:#fff;border-radius:16px;padding:13px;font-weight:700;text-decoration:none;font-size:15px}
.empty{text-align:center;color:var(--muted);padding:40px 10px;font-size:14px}
.ol{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:13.5px;gap:10px;cursor:pointer}
.ol:last-child{border-bottom:0}
.pill{font-size:11px;font-weight:700;padding:4px 10px;border-radius:99px;background:#fff3e3;color:#a35700;white-space:nowrap}
.pill.g{background:#e7f6ee;color:#11663a}
.pill.b{background:#e6edfb;color:var(--navy)}
.pill.r{background:#fdeaea;color:#8f1d1d}
.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:10px 16px;border-radius:12px;font-size:13px;opacity:0;transition:.25s;z-index:50;pointer-events:none;max-width:90vw;text-align:center}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.cartbar{position:fixed;bottom:74px;left:50%;transform:translateX(-50%);width:calc(100% - 24px);max-width:456px;background:var(--navy);color:#fff;border-radius:16px;display:flex;align-items:center;justify-content:space-between;padding:12px 14px;z-index:25;box-shadow:0 8px 20px rgba(8,31,85,.35);border:0;font-size:14px}
.cartbar b{color:var(--orange)}
.hide{display:none!important}
.dact{display:flex;gap:12px;align-items:center;position:sticky;bottom:78px;background:var(--bg);padding:10px 0 4px;z-index:5}
.loading{display:grid;place-items:center;padding:60px 0;color:var(--muted);font-size:14px;gap:12px}
.spin{width:34px;height:34px;border-radius:50%;border:4px solid var(--line);border-top-color:var(--orange);animation:sp 0.8s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.chips{display:flex;gap:8px;overflow-x:auto;margin-bottom:12px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chips button{flex:0 0 auto;border:2px solid var(--line);background:#fff;border-radius:99px;padding:7px 14px;font-size:13px;font-weight:500}
.chips button.on{background:var(--navy);border-color:var(--navy);color:#fff}
