:root{color:#f8fafc;background:#08090a;font-family:Plus Jakarta Sans,Inter,ui-sans-serif,system-ui,sans-serif;font-feature-settings:"cv02","cv03","cv04","cv11";-webkit-font-smoothing:antialiased;--scan-orange: #ff6a00;--border: #293241;--surface: #111827;--muted: #94a3b8;--cta: #22c55e;--cta-text: #041007}html,body,#root{min-height:100%}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:#000;overflow:hidden;overscroll-behavior:none}button,input,select{font:inherit}button{border:0;border-radius:16px;background:var(--cta);color:var(--cta-text);cursor:pointer;font-weight:800;padding:14px 18px}button:disabled{cursor:not-allowed;opacity:.65}input,select{width:100%;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:#fff;font-size:16px;outline:none;padding:14px}label{display:grid;gap:8px;color:#cbd5e1;font-size:14px;font-weight:700}.muted{color:var(--muted)}.app-shell{display:flex;flex-direction:column;gap:10px;height:100dvh;margin:0 auto;max-width:min(100vw,460px);overflow-x:hidden;overflow-y:auto;padding:max(10px,env(safe-area-inset-top)) 14px max(10px,env(safe-area-inset-bottom));scrollbar-width:none}.app-shell::-webkit-scrollbar{display:none}.topbar,.status-row,.merchant,.install-help,.modal-actions{align-items:center;display:flex}.topbar{justify-content:space-between}.merchant{gap:10px;min-width:0}.merchant p{font-size:clamp(14px,3.6vw,18px);font-weight:900;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.merchant span{color:var(--muted);display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logo{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:18px;display:flex;flex-shrink:0;height:clamp(40px,10vw,48px);justify-content:center;overflow:hidden;width:clamp(40px,10vw,48px)}.logo img{height:100%;object-fit:cover;width:100%}.icon-button,.secondary,.small{background:var(--surface);border:1px solid var(--border);color:#e2e8f0}.icon-button{align-items:center;border-radius:16px;display:inline-flex;height:40px;justify-content:center;padding:0;width:40px}.status-row{flex-wrap:wrap;gap:8px}.status{align-items:center;background:#0f172adb;border:1px solid var(--border);border-radius:999px;color:#cbd5e1;display:inline-flex;font-size:clamp(11px,2.9vw,13px);font-weight:700;gap:6px;padding:7px 9px}.status.online{color:#86efac}.status.offline{color:#fca5a5}.create-customer-button{background:#22c55e24;border:1px solid rgba(34,197,94,.35);color:#bbf7d0;cursor:pointer;font-family:inherit}.sound-button{cursor:pointer;font-family:inherit}.sound-button:hover{border-color:#ff6a00b3;color:#fed7aa}.scanner-card{flex:0 0 clamp(250px,46dvh,390px);background:#000;border:0;border-radius:18px;box-shadow:0 20px 80px #000000a6;overflow:hidden;position:relative}.scanner-card video{height:100%;object-fit:cover;width:100%}.scan-frame{border-radius:20px;inset:clamp(28px,10%,48px);position:absolute}.scan-frame:before{border:4px solid var(--scan-orange);border-radius:20px;box-shadow:0 0 0 999px #00000061,0 0 28px #ff6a00b3,inset 0 0 22px #ff6a0047;content:"";inset:0;position:absolute}.scan-frame:after{animation:scanline 1.6s linear infinite;background:var(--scan-orange);box-shadow:0 0 18px var(--scan-orange);content:"";height:4px;left:8%;position:absolute;right:8%;top:10%}@keyframes scanline{0%{transform:translateY(0)}50%{transform:translateY(min(190px,31dvh))}to{transform:translateY(0)}}.scanner-label,.camera-permission{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b3;border-radius:999px;bottom:14px;color:#fff;display:flex;font-size:13px;font-weight:700;gap:8px;left:50%;padding:7px 11px;position:absolute;transform:translate(-50%);white-space:nowrap}.camera-permission{border-radius:18px;color:#fed7aa;inset:18px 18px auto;text-align:center;transform:none;white-space:normal}.email-fallback{align-items:center;background:#0f172ae6;border:1px solid var(--border);border-radius:14px;display:flex;gap:8px;padding:6px 6px 6px 12px}.email-fallback svg{color:var(--muted);flex-shrink:0}.email-fallback input{background:transparent;border:0;min-width:0;padding:8px 0}.email-fallback button{border-radius:12px;flex-shrink:0;font-size:13px;padding:8px 14px}.notice,.install-help,.recent-card{border:1px solid var(--border);border-radius:18px;padding:12px}.notice{background:#0f172ac7;color:#cbd5e1;font-size:14px;margin:0}.notice-error{background:#7f1d1d75;border-color:#f871719e;color:#fecaca;font-weight:800}.install-help{background:#0f172ac7;gap:10px;justify-content:space-between}.install-help span{color:#cbd5e1;font-size:clamp(11px,2.9vw,13px)}.recent-card{background:#0f172ae6;flex:1 1 min(24dvh,170px);min-height:84px;overflow:hidden}.recent-title{align-items:center;color:#f8fafc;display:flex;font-size:13px;font-weight:900;gap:8px;margin-bottom:8px}.recent-list{display:grid;gap:7px;overflow-y:auto}.recent-item{align-items:center;background:#020617a8;border:1px solid rgba(148,163,184,.16);border-radius:14px;display:flex;gap:10px;justify-content:space-between;padding:8px 9px}.recent-item strong,.recent-item span,.recent-item p{display:block;margin:0}.recent-item strong{font-size:12px}.recent-item span{color:var(--muted);font-size:11px;margin-top:2px}.recent-item p{color:#fed7aa;flex-shrink:0;font-size:11px;font-weight:800;text-align:right}.empty-recent{color:#64748b;font-size:13px;margin:8px 0 0;text-align:center}.small{border-radius:999px;font-size:12px;padding:8px 10px}.login-screen,.modal-backdrop{align-items:center;display:flex;justify-content:center;min-height:100dvh;padding:max(14px,env(safe-area-inset-top)) 14px max(14px,env(safe-area-inset-bottom))}.login-card,.modal{background:#0f172af5;border:1px solid var(--border);border-radius:28px;box-shadow:0 24px 80px #00000080;max-width:420px;padding:clamp(18px,5vw,24px);width:100%}.login-card h1{margin-bottom:8px}.login-card>p{color:var(--muted);margin-bottom:24px}.login-card form{display:grid;gap:14px}.scan-mark{align-items:center;background:var(--cta);border-radius:24px;color:var(--cta-text);display:flex;height:clamp(54px,15vw,72px);justify-content:center;margin-bottom:16px;width:clamp(54px,15vw,72px)}.error{color:#fca5a5;font-size:13px}.modal-backdrop{background:#020617d1;inset:0;position:fixed;z-index:20}.modal-backdrop-light{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-light{color:#f8fafc;max-height:calc(100dvh - 28px);overflow-y:auto;text-align:center}.modal h2{margin-bottom:4px}.modal-close{align-items:center;background:#0f172ae6;border:1px solid #334155;border-radius:999px;color:#cbd5e1;cursor:pointer;display:inline-flex;height:36px;justify-content:center;padding:0;position:absolute;right:12px;top:12px;width:36px}.success-icon{color:var(--cta)}.warning-icon{color:#f97316}.modal-error{background:#ef44441f;border:1px solid rgba(239,68,68,.35);border-radius:14px;color:#fecaca;font-size:13px;line-height:1.35;margin:12px 0 0;padding:10px 12px;text-align:left}.modal-actions{gap:10px;justify-content:stretch;margin-top:16px}.modal-actions button{flex:1}.secondary{background:var(--surface);color:#e2e8f0}.checkout-modal{padding:18px 16px 16px;position:relative;text-align:left}.checkout-head{align-items:flex-start;display:flex;gap:10px;margin-bottom:12px;padding-right:36px}.checkout-head-copy h2{font-size:clamp(22px,6vw,28px);line-height:1.1;margin:0 0 8px}.checkout-meta{display:flex;flex-wrap:wrap;gap:6px}.card-type-pill,.status-pill,.quick-fact{border-radius:999px;font-size:12px;font-weight:800;line-height:1;padding:6px 10px}.card-type-pill{background:#94a3b824;border:1px solid rgba(148,163,184,.28);color:#e2e8f0}.status-pill.status-ok{background:#22c55e29;border:1px solid rgba(34,197,94,.42);color:#86efac}.status-pill.status-warn{background:#f9731624;border:1px solid rgba(249,115,22,.42);color:#fdba74}.status-pill.status-neutral{background:#3b82f61f;border:1px solid rgba(59,130,246,.32);color:#93c5fd}.quick-facts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.quick-fact{background:#0f172ab8;border:1px solid rgba(148,163,184,.2);color:var(--muted)}.quick-fact-ok{border-color:#22c55e59;color:#86efac}.quick-fact-warn{border-color:#f9731659;color:#fdba74}.quick-fact-muted{color:var(--muted)}.amount-input{font-size:clamp(28px,8vw,34px);font-weight:900;letter-spacing:.02em;padding:16px;text-align:center}.checkout-actions{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-top:12px}.checkout-actions .checkout-primary,.checkout-actions button.checkout-primary,.checkout-actions .redeem-button:only-child{grid-column:1 / -1;margin-top:0;width:100%}.redeem-button{background:#f97316;color:#111827;margin-top:10px;width:100%}.checkout-tip{color:#bfdbfe;font-size:14px;line-height:1.35;margin:4px 0 0}.checkout-membership-summary{color:#fde68a;font-size:15px;font-weight:700;line-height:1.35;margin:0;text-align:center}.confirm-line{color:#fdba74;font-size:14px;font-weight:800;margin:8px 0 0;text-align:center}.create-customer-modal{max-height:min(92dvh,760px);overflow-y:auto;text-align:left}.create-customer-form label,.create-customer-form input,.create-customer-form select{text-align:left}.create-customer-header{align-items:flex-start;display:flex;gap:12px;margin-bottom:16px}.create-customer-form{display:grid;gap:14px}.field-hint{color:var(--muted);font-size:12px;font-weight:600;margin:-4px 0 0}.create-customer-success{display:grid;gap:12px;text-align:center}.create-customer-success strong{font-size:18px}.create-customer-success span{color:var(--muted);font-size:13px}.share-actions{display:grid;gap:10px}.share-button{align-items:center;border:0;border-radius:16px;cursor:pointer;display:inline-flex;font-weight:800;gap:8px;justify-content:center;padding:14px 18px;text-decoration:none}.share-button:disabled{cursor:not-allowed;opacity:.65}.share-button.sms{background:#2563eb;color:#eff6ff}.share-button.whatsapp{background:#25d366;color:#052e16}.celebration{inset:0;overflow:hidden;pointer-events:none;position:fixed;z-index:30}.celebration span{animation:confetti-fall 1.55s cubic-bezier(.16,.7,.26,1) forwards;background:#fbbf24;border-radius:2px;height:14px;position:absolute;top:-24px;width:8px}.celebration-points span:nth-child(3n){background:var(--cta)}.celebration-redeem span:nth-child(5n+1){background:#ef4444}@keyframes confetti-fall{0%{opacity:0;transform:translate3d(0,-20px,0) rotate(0) scale(.8)}12%{opacity:1}to{opacity:0;transform:translate3d(0,105dvh,0) rotate(640deg) scale(1)}}@media(max-height:820px){.app-shell{gap:7px}.scanner-card{flex-basis:clamp(230px,42dvh,330px)}.recent-card{min-height:78px}}@media(max-height:720px){.install-help{display:none}.scanner-card{flex-basis:clamp(210px,40dvh,300px)}}@media(max-width:380px){.modal-actions{flex-direction:column}.modal-actions button{width:100%}.recent-item{align-items:flex-start;flex-direction:column}.recent-item p{text-align:left}}
