:root{
  --bg:#0f201b;
  --panel:#17332b;
  --panel2:#1d4035;
  --card:#fffaf0;
  --text:#f8f3e8;
  --ink:#2d302d;
  --muted:#aebdb5;
  --accent:#74d4a8;
  --accent2:#dcb96b;
  --danger:#e47972;
  --line:rgba(255,255,255,.12);
  --shadow:0 22px 60px rgba(0,0,0,.28);
}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overflow:hidden;background:radial-gradient(circle at top left,#234b3d 0,#12271f 42%,#0b1713 100%);font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--text);touch-action:manipulation}
button{font:inherit}
.kioskShell{height:100dvh;display:grid;grid-template-rows:auto auto minmax(0,1fr);padding:20px;gap:14px}
.kioskHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:4px 4px 0}
.brandLine{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:900;letter-spacing:.1em;color:#d8eadf}.brandMark{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:13px;background:linear-gradient(180deg,#89ddb9,#57bd91);color:#10251d;letter-spacing:-.05em;font-size:13px;box-shadow:0 8px 22px rgba(80,191,142,.22)}
.kioskHeader h1{margin:8px 0 4px;font-size:clamp(28px,3.2vw,48px);line-height:1.04}.kioskHeader p{margin:0;color:var(--muted);font-size:15px}
.ghostBtn,.smallGhost{border:1px solid var(--line);background:rgba(255,255,255,.07);color:#fff;border-radius:16px;font-weight:800;cursor:pointer}.ghostBtn{min-height:52px;padding:0 18px}.smallGhost{min-height:38px;padding:0 12px}
.categoryTabs{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 6px;scrollbar-width:none}.categoryTabs::-webkit-scrollbar{display:none}.categoryTab{flex:0 0 auto;min-height:50px;padding:0 20px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.06);color:#edf7f1;font-weight:900;cursor:pointer}.categoryTab.active{background:linear-gradient(180deg,#e6cd91,#caa75b);color:#1d261f;border-color:rgba(255,236,185,.6);box-shadow:0 10px 28px rgba(192,151,76,.18)}
.kioskBody{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,390px);gap:16px}.menuPane,.cartPane{min-height:0;border:1px solid var(--line);border-radius:28px;background:rgba(20,43,35,.72);box-shadow:var(--shadow);backdrop-filter:blur(14px)}.menuPane{overflow:auto;padding:16px}.cartPane{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;padding:16px;gap:12px}.menuStatus{padding:28px;text-align:center;color:var(--muted)}
.productGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.productCard{min-height:190px;position:relative;overflow:hidden;border:0;border-radius:22px;background:var(--card);color:var(--ink);box-shadow:0 12px 28px rgba(0,0,0,.18);cursor:pointer;text-align:left;padding:0}.productCard:active{transform:scale(.985)}.productImage{height:112px;background:linear-gradient(135deg,#d8c6a4,#b68f58);background-size:cover;background-position:center;display:grid;place-items:center;font-size:40px;font-weight:900;color:rgba(55,45,28,.45)}.productBody{padding:12px}.productName{font-size:16px;font-weight:950;line-height:1.15;min-height:37px}.productFoot{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin-top:9px}.productPrice{font-size:18px;font-weight:950;color:#214e3f}.weightPill{font-size:10px;line-height:1.1;padding:5px 7px;border-radius:9px;background:#fff0c7;color:#725316;font-weight:900;text-transform:uppercase}.addPill{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:#2e775e;color:white;font-size:24px;font-weight:900}
.cartHead{display:flex;justify-content:space-between;gap:12px;align-items:center;padding-bottom:10px;border-bottom:1px solid var(--line)}.cartHead span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.cartHead strong{display:block;margin-top:4px;font-size:20px}.cartItems{overflow:auto;display:flex;flex-direction:column;gap:9px}.emptyCart{padding:22px;text-align:center;border:1px dashed var(--line);border-radius:18px;color:var(--muted);line-height:1.45}.cartRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;border-radius:18px;background:rgba(255,255,255,.065);border:1px solid rgba(255,255,255,.075)}.cartRowName{font-weight:900;line-height:1.18}.cartRowMeta{margin-top:5px;font-size:12px;color:#bfd0c7}.cartQty{display:flex;align-items:center;gap:8px}.qtyBtn{width:38px;height:38px;border:0;border-radius:13px;background:rgba(255,255,255,.12);color:#fff;font-size:22px;font-weight:900;cursor:pointer}.qtyValue{min-width:24px;text-align:center;font-weight:950;font-size:17px}.cartTotals{padding:12px 2px 0;border-top:1px solid var(--line)}.totalRow{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:15px}.totalRow strong{font-size:24px;color:#dffbea}.weightedNote{margin-top:9px;padding:10px 12px;border-radius:13px;background:rgba(226,181,83,.14);border:1px solid rgba(226,181,83,.24);color:#ffe9ae;font-size:12px;line-height:1.35}.submitBtn{min-height:62px;border:0;border-radius:20px;background:linear-gradient(180deg,#86ddb8,#58c795);color:#10251d;font-size:17px;font-weight:950;letter-spacing:.02em;cursor:pointer;box-shadow:0 14px 30px rgba(68,184,132,.22)}.submitBtn:disabled{opacity:.42;cursor:not-allowed;box-shadow:none}
.orderResult{position:fixed;inset:0;z-index:1000;display:none;place-items:center;padding:24px;background:rgba(5,16,12,.93);backdrop-filter:blur(18px)}.orderResult.show{display:grid}.orderResultCard{width:min(720px,100%);text-align:center;padding:42px;border-radius:36px;background:linear-gradient(180deg,#f7f0dc,#e8d7af);color:#27352e;box-shadow:0 34px 100px rgba(0,0,0,.5)}.doneIcon{width:84px;height:84px;margin:0 auto 18px;display:grid;place-items:center;border-radius:50%;background:#2f805f;color:#fff;font-size:48px;font-weight:900}.doneLabel{font-size:19px;font-weight:900;letter-spacing:.08em}.orderNumber{margin:6px 0;font-size:clamp(92px,16vw,190px);line-height:.94;font-weight:1000;color:#173c31;letter-spacing:-.06em}.orderInstruction{font-size:clamp(22px,3vw,34px);font-weight:950}.resultWeightedNote{display:inline-block;margin-top:15px;padding:10px 14px;border-radius:14px;background:#fff0c6;color:#674a10;font-weight:800}.resetHint{margin-top:20px;color:#68756f;font-size:14px}.resultBtn{width:min(320px,100%);margin-top:20px}
@media(max-width:1180px){.productGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.kioskBody{grid-template-columns:minmax(0,1fr) 340px}}
@media(max-width:880px){html,body{overflow:auto}.kioskShell{height:auto;min-height:100dvh}.kioskBody{grid-template-columns:1fr}.cartPane{min-height:420px}.productGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.kioskHeader{align-items:center}.kioskHeader p{max-width:560px}}
@media(max-width:560px){.kioskShell{padding:12px}.kioskHeader h1{font-size:28px}.kioskHeader p{font-size:13px}.ghostBtn{padding:0 12px;min-height:46px}.productGrid{gap:10px}.productCard{min-height:176px}.productImage{height:100px}.productName{font-size:14px}.cartPane,.menuPane{border-radius:22px}.orderResultCard{padding:28px 18px}.orderNumber{font-size:110px}}

/* ===== EM POS Self Service V2: Cloud / Hybrid setup ===== */
.isHidden{display:none!important}
.connectionBadge{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);font-size:11px;letter-spacing:.02em;color:#dcebe4}
.connectionBadge.cloud::before,.connectionBadge.hybrid::before{content:"";width:7px;height:7px;margin-right:7px;border-radius:50%;background:#71d7a8;box-shadow:0 0 0 4px rgba(113,215,168,.1)}
.setupOverlay{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;overflow:auto;padding:24px;background:radial-gradient(circle at 20% 10%,#2a5b49 0,#132d24 40%,#091511 100%)}
.setupCard{width:min(760px,100%);border:1px solid rgba(255,255,255,.14);border-radius:32px;background:rgba(17,39,31,.94);box-shadow:0 32px 100px rgba(0,0,0,.48);padding:28px;backdrop-filter:blur(18px)}
.setupBrand{display:flex;align-items:center;gap:12px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.1)}
.setupBrand>div{display:flex;flex-direction:column}.setupBrand strong{font-size:18px}.setupBrand span:not(.brandMark){margin-top:3px;color:var(--muted);font-size:12px}
.setupStep{padding-top:24px}.setupStep h2{margin:0;font-size:30px}.setupLead{margin:8px 0 20px;color:var(--muted);line-height:1.45}
.modeGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.modeCard{min-height:170px;padding:22px;border:2px solid rgba(255,255,255,.1);border-radius:24px;background:rgba(255,255,255,.055);color:#fff;text-align:left;cursor:pointer}.modeCard:hover{background:rgba(255,255,255,.075)}.modeCard.selected{border-color:#76d9ac;background:rgba(80,184,137,.16);box-shadow:0 0 0 4px rgba(118,217,172,.08)}.modeCard strong{display:block;font-size:24px;margin:8px 0}.modeCard small{display:block;color:#b9cbc2;line-height:1.4;font-size:13px}.modeIcon{font-size:34px}
.hybridServerBox{margin-top:16px;padding:16px;border:1px solid rgba(255,255,255,.1);border-radius:18px;background:rgba(0,0,0,.12)}
.hybridServerBox label,.setupFields label,.deviceNameField{display:block;color:#dbe9e2;font-size:12px;font-weight:800;letter-spacing:.02em}.hybridServerBox input,.setupFields input,.deviceNameField input{width:100%;height:54px;margin-top:7px;border:1px solid rgba(255,255,255,.14);border-radius:15px;background:rgba(255,255,255,.075);color:#fff;padding:0 15px;font-size:17px;outline:none}.hybridServerBox input:focus,.setupFields input:focus,.deviceNameField input:focus{border-color:#76d9ac;box-shadow:0 0 0 3px rgba(118,217,172,.1)}.hybridServerBox small{display:block;margin-top:8px;color:var(--muted)}
.setupFields{display:grid;gap:13px}.setupPrimary{width:100%;min-height:58px;margin-top:16px;border:0;border-radius:18px;background:linear-gradient(180deg,#88dfba,#5bc895);color:#10251d;font-weight:950;font-size:16px;cursor:pointer}.setupPrimary:disabled{opacity:.4;cursor:not-allowed}.setupBack{border:0;background:transparent;color:#cfe2d9;font-weight:800;padding:0 0 14px;cursor:pointer}.setupStatus{min-height:20px;margin-top:12px;font-size:13px;color:#f1c98b}.setupStatus.error{color:#ffaaa2}.setupStatus.ok{color:#9ce6c3}
.storeGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}.storeBtn{min-height:70px;border:2px solid rgba(255,255,255,.1);border-radius:18px;background:rgba(255,255,255,.055);color:#fff;font-weight:900;text-align:left;padding:14px 16px;cursor:pointer}.storeBtn.selected{border-color:#76d9ac;background:rgba(80,184,137,.16)}.deviceNameField{margin-top:4px}.setupFooter{padding-top:18px;margin-top:20px;border-top:1px solid rgba(255,255,255,.08);text-align:center;color:#718a7e;font-size:11px}
@media(max-width:650px){.setupOverlay{padding:10px}.setupCard{padding:20px;border-radius:24px}.modeGrid,.storeGrid{grid-template-columns:1fr}.modeCard{min-height:130px}.setupStep h2{font-size:25px}}
