:root{--bg-main: #0b0f19;--bg-card: #131b2e;--bg-card-hover: #1b2640;--bg-surface: #1e293b;--border-color: rgba(255, 255, 255, .08);--border-active: rgba(230, 0, 0, .4);--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--red-primary: #e60000;--red-hover: #ff1a1a;--red-soft: rgba(230, 0, 0, .15);--green-earn: #10b981;--green-soft: rgba(16, 185, 129, .15);--amber-pending: #f59e0b;--amber-soft: rgba(245, 158, 11, .15);--rose-decline: #ef4444;--rose-soft: rgba(239, 68, 68, .15);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-full: 9999px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .2);--shadow-md: 0 4px 16px rgba(0, 0, 0, .35);--shadow-glow: 0 0 24px rgba(230, 0, 0, .25);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,sans-serif;background-color:var(--bg-main);color:var(--text-primary);min-height:100vh;min-height:-webkit-fill-available;line-height:1.5;overflow-x:hidden;display:flex;justify-content:center}.app-container{width:100%;max-width:540px;min-height:100vh;background-color:var(--bg-main);position:relative;display:flex;flex-direction:column;box-shadow:0 0 40px #0009;border-left:1px solid rgba(255,255,255,.04);border-right:1px solid rgba(255,255,255,.04);padding-bottom:calc(72px + var(--safe-bottom))}.app-header{position:sticky;top:0;z-index:40;background:#0b0f19d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);padding:calc(12px + var(--safe-top)) 16px 12px 16px;display:flex;align-items:center;justify-content:space-between}.brand-section{display:flex;align-items:center;gap:10px}.brand-logo{width:34px;height:34px;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--red-primary),#990000);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #e6000066}.brand-logo svg{width:20px;height:20px;fill:#fff}.brand-info h1{font-size:16px;font-weight:800;letter-spacing:-.3px;color:#fff;display:flex;align-items:center;gap:6px}.brand-info p{font-size:11px;color:var(--text-muted);font-weight:500}.store-pill{display:inline-flex;align-items:center;gap:4px;background:var(--bg-surface);border:1px solid var(--border-color);padding:2px 8px;border-radius:var(--radius-full);font-size:10px;font-weight:600;color:#38bdf8;max-width:130px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions{display:flex;align-items:center;gap:8px}.user-avatar-btn{background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-primary);width:36px;height:36px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;cursor:pointer;transition:all .2s ease}.user-avatar-btn:active{transform:scale(.95);background:var(--bg-card-hover)}.demo-banner{background:linear-gradient(90deg,#1e1b4b,#312e81);border-bottom:1px solid #4338ca;color:#c7d2fe;font-size:11px;padding:6px 16px;display:flex;align-items:center;justify-content:space-between}.demo-banner b{color:#fff}.demo-banner button{background:#ffffff26;border:none;color:#fff;padding:2px 8px;border-radius:4px;font-size:10px;cursor:pointer}.app-content{padding:16px;flex:1}.view-panel{display:none;animation:fadeIn .25s ease forwards}.view-panel.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.balance-card{background:linear-gradient(135deg,#151d30,#0d1322);border:1px solid rgba(230,0,0,.25);border-radius:var(--radius-lg);padding:22px 20px;position:relative;overflow:hidden;box-shadow:0 8px 24px #0006;margin-bottom:20px}.balance-card:before{content:"";position:absolute;top:-40px;right:-40px;width:140px;height:140px;background:radial-gradient(circle,rgba(230,0,0,.2) 0%,transparent 70%);pointer-events:none}.balance-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.balance-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary)}.live-rate-badge{font-size:11px;font-weight:600;color:#a5b4fc;background:#6366f11f;border:1px solid rgba(99,102,241,.25);padding:2px 8px;border-radius:var(--radius-full)}.balance-amount-row{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}.balance-points{font-size:38px;font-weight:900;color:#fff;letter-spacing:-1px;font-family:JetBrains Mono,monospace}.balance-unit{font-size:16px;font-weight:700;color:var(--red-primary);margin-left:2px}.balance-rand{font-size:18px;font-weight:700;color:var(--green-earn);background:var(--green-soft);padding:3px 10px;border-radius:var(--radius-full)}.threshold-progress-wrap{margin-bottom:18px}.threshold-info{display:flex;justify-content:space-between;font-size:11px;color:var(--text-muted);margin-bottom:6px}.progress-track{width:100%;height:6px;background:#ffffff14;border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--amber-pending),var(--green-earn));border-radius:var(--radius-full);transition:width .4s ease}.card-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;border:none;transition:all .2s cubic-bezier(.4,0,.2,1);text-decoration:none}.btn:active{transform:scale(.97)}.btn-primary{background:var(--red-primary);color:#fff;box-shadow:0 4px 14px #e6000059}.btn-primary:hover{background:var(--red-hover)}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-card-hover)}.btn-success{background:var(--green-earn);color:#fff;box-shadow:0 4px 14px #10b9814d}.btn-sm{padding:6px 12px;font-size:12px;border-radius:var(--radius-sm)}.btn-block{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:24px}.stat-box{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:12px 10px;text-align:center}.stat-box .stat-val{font-size:20px;font-weight:800;color:#fff;font-family:JetBrains Mono,monospace}.stat-box .stat-title{font-size:11px;color:var(--text-muted);margin-top:2px;font-weight:500}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-head h2{font-size:16px;font-weight:700;color:#fff;letter-spacing:-.2px}.section-head a{font-size:12px;color:var(--red-primary);text-decoration:none;font-weight:600}.form-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px;margin-bottom:20px}.field-group{margin-bottom:18px}.field-label{display:block;font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.field-label span.req{color:var(--red-primary)}.field-hint{font-size:11px;color:var(--text-muted);margin-top:4px}.store-locked-box{background:#ffffff08;border:1px solid var(--border-color);padding:12px 14px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:space-between}.store-locked-box .store-name{font-size:14px;font-weight:600;color:#fff}.store-locked-box .lock-tag{font-size:10px;font-weight:700;text-transform:uppercase;color:#94a3b8;background:#ffffff14;padding:2px 6px;border-radius:4px}.select-input,.text-input{width:100%;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);color:#fff;padding:12px 14px;font-size:14px;outline:none;transition:border-color .2s ease}.select-input:focus,.text-input:focus{border-color:var(--red-primary);box-shadow:0 0 0 3px #e6000026}.product-picker-container{display:flex;flex-direction:column;gap:8px;max-height:250px;overflow-y:auto;padding-right:4px}.product-item-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:10px 14px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .2s ease}.product-item-card:hover{background:var(--bg-card-hover)}.product-item-card.selected{border-color:var(--red-primary);background:#e6000014}.product-item-card .prod-title{font-size:13px;font-weight:600;color:#fff;line-height:1.3}.product-item-card .prod-sku{font-size:11px;color:var(--text-muted);font-family:JetBrains Mono,monospace}.product-item-card .prod-pts{font-size:13px;font-weight:700;color:#facc15;background:#facc151f;padding:3px 8px;border-radius:var(--radius-full);white-space:nowrap}.qty-stepper{display:flex;align-items:center;gap:12px}.qty-btn{width:44px;height:44px;border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-color);color:#fff;font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.qty-btn:active{background:var(--red-soft);border-color:var(--red-primary);color:var(--red-primary)}.qty-display{font-size:20px;font-weight:800;font-family:JetBrains Mono,monospace;color:#fff;min-width:40px;text-align:center}.calc-preview-banner{background:#10b98114;border:1px dashed rgba(16,185,129,.4);border-radius:var(--radius-md);padding:12px 16px;display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.calc-preview-banner .formula{font-size:12px;color:var(--text-secondary)}.calc-preview-banner .total-pts{font-size:18px;font-weight:800;color:var(--green-earn);font-family:JetBrains Mono,monospace}.receipt-dropzone{border:2px dashed var(--border-color);border-radius:var(--radius-lg);padding:24px 16px;text-align:center;background:#ffffff05;cursor:pointer;position:relative;transition:all .2s ease}.receipt-dropzone:hover,.receipt-dropzone.dragover{border-color:var(--red-primary);background:#e600000a}.receipt-dropzone input[type=file]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.dropzone-icon{width:48px;height:48px;margin:0 auto 10px;color:var(--red-primary)}.dropzone-title{font-size:14px;font-weight:700;color:#fff;margin-bottom:4px}.dropzone-sub{font-size:11px;color:var(--text-muted)}.receipt-preview-wrap{position:relative;margin-top:12px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-color)}.receipt-preview-img{width:100%;max-height:220px;object-fit:cover;display:block}.receipt-preview-bar{padding:8px 12px;background:#000c;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--text-secondary)}.receipt-hash-badge{font-family:JetBrains Mono,monospace;font-size:10px;color:#94a3b8}.fraud-alert{background:var(--rose-soft);border:1px solid var(--rose-decline);color:#fecaca;padding:10px 14px;border-radius:var(--radius-md);font-size:12px;margin-top:12px;display:flex;align-items:center;gap:8px}.filter-tabs{display:flex;gap:8px;margin-bottom:16px;overflow-x:auto;padding-bottom:4px}.tab-pill{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-secondary);padding:6px 14px;border-radius:var(--radius-full);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s ease}.tab-pill.active{background:var(--red-primary);border-color:var(--red-primary);color:#fff}.sales-list{display:flex;flex-direction:column;gap:12px}.sale-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:14px;transition:transform .2s ease}.sale-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.sale-product-name{font-size:14px;font-weight:700;color:#fff}.sale-sku-tag{font-size:11px;font-family:JetBrains Mono,monospace;color:var(--text-muted)}.status-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--radius-full);font-size:11px;font-weight:700;text-transform:capitalize}.status-badge.approved{background:var(--green-soft);color:var(--green-earn);border:1px solid rgba(16,185,129,.3)}.status-badge.pending{background:var(--amber-soft);color:var(--amber-pending);border:1px solid rgba(245,158,11,.3)}.status-badge.declined{background:var(--rose-soft);color:var(--rose-decline);border:1px solid rgba(239,68,68,.3)}.sale-card-body{display:flex;justify-content:space-between;align-items:flex-end;border-top:1px solid rgba(255,255,255,.05);padding-top:8px;margin-top:8px}.sale-meta{font-size:11px;color:var(--text-muted)}.sale-points-earned{font-size:16px;font-weight:800;font-family:JetBrains Mono,monospace}.sale-points-earned.approved{color:var(--green-earn)}.sale-points-earned.pending{color:var(--amber-pending)}.sale-points-earned.declined{color:var(--text-muted);text-decoration:line-through}.decline-reason-box{background:#ef44441a;border-left:3px solid var(--rose-decline);padding:8px 12px;margin-top:10px;border-radius:4px;font-size:12px;color:#fca5a5}.receipt-btn{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:#38bdf8;background:transparent;border:none;cursor:pointer;margin-top:4px}.redeem-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px;margin-bottom:20px}.payout-calc-box{background:var(--bg-surface);border-radius:var(--radius-md);padding:16px;margin:16px 0;text-align:center}.payout-calc-box .payout-rand{font-size:32px;font-weight:900;color:var(--green-earn);font-family:JetBrains Mono,monospace}.payout-calc-box .payout-hint{font-size:12px;color:var(--text-muted);margin-top:4px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:540px;background:#0f172af2;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border-color);display:grid;grid-template-columns:repeat(4,1fr);padding:8px 0 calc(8px + var(--safe-bottom)) 0;z-index:50}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:none;border:none;color:var(--text-muted);font-size:11px;font-weight:600;cursor:pointer;padding:4px 0;transition:color .2s ease;position:relative}.nav-item svg{width:22px;height:22px;stroke:currentColor;stroke-width:2;transition:transform .2s ease}.nav-item.active{color:var(--red-primary)}.nav-item.active svg{transform:translateY(-2px)}.nav-badge{position:absolute;top:0;right:calc(50% - 16px);background:var(--amber-pending);color:#000;font-size:9px;font-weight:800;padding:1px 5px;border-radius:var(--radius-full)}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;display:none;align-items:center;justify-content:center;padding:16px;animation:fadeIn .2s ease forwards}.modal-scrim.active{display:flex}.modal-box{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:100%;max-width:440px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 40px #0009;padding:20px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-header h3{font-size:17px;font-weight:800;color:#fff}.close-btn{background:none;border:none;color:var(--text-muted);font-size:20px;cursor:pointer;padding:4px}.receipt-full-img{width:100%;max-height:70vh;object-fit:contain;border-radius:var(--radius-md)}.toast-container{position:fixed;top:calc(16px + var(--safe-top));left:50%;transform:translate(-50%);width:90%;max-width:400px;z-index:120;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:12px 16px;font-size:13px;font-weight:600;color:#fff;box-shadow:var(--shadow-md);animation:slideDown .3s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;gap:10px}.toast.success{border-color:var(--green-earn);border-left:4px solid var(--green-earn)}.toast.error{border-color:var(--rose-decline);border-left:4px solid var(--rose-decline)}@keyframes slideDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.approval-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:16px;margin-bottom:14px;box-shadow:0 4px 12px #00000040}.approval-card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.rep-tag-box{display:flex;align-items:center;gap:8px}.rep-tag-name{font-size:14px;font-weight:800;color:#fff}.till-badge-highlight{font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;color:#38bdf8;background:#38bdf81f;border:1px solid rgba(56,189,248,.3);padding:2px 8px;border-radius:var(--radius-full)}.approval-item-row{background:var(--bg-surface);border-radius:var(--radius-md);padding:10px 14px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center}.approval-item-title{font-size:13px;font-weight:700;color:#fff}.approval-item-meta{font-size:11px;color:var(--text-muted)}.approval-pts-badge{font-size:15px;font-weight:800;color:#facc15;font-family:JetBrains Mono,monospace}.approval-receipt-box{display:flex;gap:12px;align-items:center;margin-bottom:14px;background:#0003;padding:8px;border-radius:var(--radius-md)}.approval-receipt-thumb{width:64px;height:64px;border-radius:var(--radius-sm);object-fit:cover;cursor:pointer;border:1px solid var(--border-color);flex-shrink:0}.approval-receipt-tip{font-size:11px;color:var(--text-secondary)}.approval-btn-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.preset-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.preset-chip{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-full);color:var(--text-secondary);font-size:11px;padding:4px 10px;cursor:pointer;transition:all .2s ease}.preset-chip:hover{border-color:var(--rose-decline);color:#fff}.staff-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:14px 16px;display:flex;justify-content:space-between;align-items:center;transition:all .2s ease}.staff-card:hover{border-color:var(--border-color-hover);background:var(--bg-card-hover)}.staff-card-info{display:flex;flex-direction:column;gap:4px}.staff-card-name{font-size:14px;font-weight:800;color:#fff;display:flex;align-items:center;gap:8px}.staff-card-meta{font-size:11px;color:var(--text-muted);display:flex;align-items:center;gap:8px}.staff-pin-pill{font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;color:#facc15;background:#facc151f;border:1px solid rgba(250,204,21,.3);padding:2px 8px;border-radius:var(--radius-full)}.staff-actions-row{display:flex;align-items:center;gap:8px}.auth-gate{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-main);z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;overflow-y:auto}.auth-gate-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:28px 24px;width:100%;max-width:420px;box-shadow:0 20px 50px #000000b3;animation:fadeIn .3s cubic-bezier(.16,1,.3,1)}.auth-gate-brand{text-align:center;margin-bottom:24px}.auth-gate-logo{width:54px;height:54px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--red-primary),#990000);display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #e6000080;margin-bottom:12px}.auth-gate-logo svg{width:30px;height:30px;fill:#fff}.auth-gate-brand h1{font-size:22px;font-weight:900;color:#fff;letter-spacing:-.5px}.auth-gate-brand p{font-size:13px;color:var(--text-muted);margin-top:4px}
