*{box-sizing:border-box}.scanner-container{min-height:100vh;background:#1a1a1a;display:flex;flex-direction:column;overflow-x:hidden}.scanner-header{background:#2d2d2d;color:#fff;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;box-shadow:0 2px 8px #0000004d;position:sticky;top:0;z-index:100;flex-wrap:wrap}.scanner-header>div{display:flex;align-items:center;gap:1rem;flex:1;min-width:0}.merchant-logo{width:48px;height:48px;border-radius:12px;object-fit:cover;background:#3d3d3d;border:2px solid #fdb022;flex-shrink:0}.scanner-header h1{margin:0;font-size:1.125rem;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scanner-header p{margin:.25rem 0 0;color:#a0a0a0;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auth-card,.scanner-main{max-width:500px;margin:2rem auto;padding:0 1.5rem;width:100%;box-sizing:border-box}.auth-card{background:#2d2d2d;border-radius:24px;padding:2.5rem;box-shadow:0 8px 32px #0006;animation:slideUp .3s ease-out;box-sizing:border-box}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.auth-header{text-align:center;margin-bottom:2rem}.auth-header h1{margin:0 0 .5rem;font-size:1.75rem;color:#fff;font-weight:700}.auth-header p{color:#a0a0a0;margin:0;font-size:.95rem}.auth-form{width:100%}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#fff;font-size:.95rem}.form-group input,.form-group select,.form-group textarea,.location-select{width:100%;padding:.875rem 1rem;border:2px solid #3d3d3d;border-radius:12px;font-size:.95rem;transition:all .2s;background:#1a1a1a;color:#fff}.form-group input:focus,.form-group select:focus,.form-group textarea:focus,.location-select:focus{outline:none;border-color:#fdb022;background:#252525}.form-group small{display:block;margin-top:.5rem;color:#888;font-size:.85rem}.btn{padding:.875rem 1.5rem;border:none;border-radius:12px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;text-decoration:none}.btn-primary{background:#fdb022;color:#1a1a1a;box-shadow:0 4px 12px #fdb0224d}.btn-primary:hover:not(:disabled){background:#ffb829;transform:translateY(-2px);box-shadow:0 6px 16px #fdb02266}.btn-primary:disabled{background:#5d5d5d;color:#888;cursor:not-allowed;box-shadow:none}.btn-secondary{background:#3d3d3d;color:#fff;border:2px solid #4d4d4d}.btn-secondary:hover{background:#4d4d4d;border-color:#5d5d5d}.btn-sm{padding:.5rem 1rem;font-size:.875rem}.btn-lg{padding:1rem 2rem;font-size:1.05rem}.btn-block{width:100%;display:flex}.btn-group{display:flex;gap:.75rem;flex-wrap:wrap}.alert{padding:1rem 1.25rem;border-radius:12px;margin-bottom:1rem;border:2px solid;animation:slideDown .3s ease-out}.alert-error{background:#3d2020;border-color:#ff6b6b;color:#f99}.alert-success{background:#203d20;border-color:#51cf66;color:#8ce99a}.scanner-main{flex:1;display:flex;align-items:center;justify-content:center}.customer-section{max-width:800px;margin:0 auto;padding:1.5rem;width:100%;box-sizing:border-box}.scan-section{background:#2d2d2d;border-radius:24px;padding:2rem;text-align:center;box-shadow:0 8px 32px #0000004d;animation:slideUp .3s ease-out;width:100%}.scan-section h2{margin:0 0 1.5rem;font-size:1.5rem;color:#fff;font-weight:700}.scan-section video{border-radius:16px;width:100%;max-width:400px;margin:1.5rem auto}.customer-card,.action-card,.rewards-card,.redemption-details-card{background:#2d2d2d;border-radius:20px;padding:1.75rem;margin-bottom:1.25rem;box-shadow:0 4px 16px #0000004d;animation:slideUp .3s ease-out}.redemption-fulfillment-card{max-width:800px;margin:0 auto;padding:1rem}.fulfillment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.badge{display:inline-block;padding:.5rem 1rem;border-radius:20px;font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px}.badge-success{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.redemption-details-card{background:linear-gradient(135deg,#2d2d2d,#1f2937);border:2px solid #fdb022}.redemption-details-card h3{color:#fdb022;margin:0 0 1.5rem;font-size:1.5rem;font-weight:700}.redemption-reward-info{background:#1a1a1a;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.redemption-reward-info h4{color:#fff;margin:0 0 1rem;font-size:1.5rem;font-weight:600}.redemption-code{display:flex;align-items:center;gap:1rem;background:#2d2d2d;border:2px dashed #fdb022;border-radius:8px;padding:1rem;margin:1rem 0}.code-label{color:#9ca3af;font-size:.875rem;font-weight:600;text-transform:uppercase}.code-value{color:#fdb022;font-size:1.5rem;font-weight:700;font-family:Courier New,monospace;letter-spacing:2px}.redemption-note{color:#9ca3af;font-size:.875rem;margin:1rem 0 0;padding:.75rem;background:#fdb0221a;border-left:3px solid #fdb022;border-radius:4px}.btn-success{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;font-weight:600}.btn-success:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);transform:translateY(-2px);box-shadow:0 6px 20px #10b98166}.btn-success:disabled{background:#047857;opacity:.8;cursor:not-allowed}.customer-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:2px solid #3d3d3d;flex-wrap:wrap}.customer-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;border:3px solid #667eea;flex-shrink:0;box-shadow:0 4px 12px #667eea4d}.customer-info{flex:1;min-width:0;word-break:break-word;overflow-wrap:break-word}.customer-header h2{margin:0;font-size:1.5rem;color:#fff;font-weight:700}.customer-header p{margin:.5rem 0 0;color:#a0a0a0;word-break:break-all;overflow-wrap:break-word;line-height:1.4}.btn-link{background:none;border:none;color:#fdb022;text-decoration:none;padding:.5rem 1rem;cursor:pointer;font-weight:600;font-size:.875rem;transition:all .2s}.btn-link:hover{color:#ffb829;text-decoration:underline}.points-display{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.points-item{text-align:center;padding:1.5rem;background:#1a1a1a;border-radius:16px;border:2px solid #3d3d3d;transition:all .3s}.points-item:hover{border-color:#fdb022;transform:translateY(-2px)}.points-item .label{display:block;font-size:.75rem;color:#888;margin-bottom:.5rem;text-transform:uppercase;font-weight:600;letter-spacing:.5px}.points-item .value{display:block;font-size:2rem;font-weight:800;color:#fdb022}.points-item .subtext{display:block;font-size:.875rem;color:#a0a0a0;margin-top:.5rem;font-weight:500}.action-card h3,.rewards-card h3{margin:0 0 1.5rem;font-size:1.25rem;color:#fff;font-weight:700}.rewards-list{display:flex;flex-direction:column;gap:1rem}.reward-item{display:flex;justify-content:space-between;align-items:center;padding:1.25rem;background:#1a1a1a;border:2px solid #3d3d3d;border-radius:16px;transition:all .3s;cursor:pointer}.reward-item:hover{transform:translateY(-2px);border-color:#fdb022;box-shadow:0 4px 16px #fdb02233}.reward-info{flex:1}.reward-info h4{margin:0 0 .5rem;font-size:1.05rem;color:#fff;font-weight:700}.reward-info p{margin:0 0 .75rem;color:#a0a0a0;font-size:.875rem;line-height:1.5}.reward-cost{display:inline-block;padding:.4rem 1rem;background:#fdb022;color:#1a1a1a;border-radius:10px;font-size:.85rem;font-weight:700}.mt-3{margin-top:1.5rem}.spinner{border:3px solid #3d3d3d;border-top:3px solid #fdb022;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin:0 auto}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.badge{display:inline-block;padding:.375rem .875rem;border-radius:12px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.badge-success{background:#51cf66;color:#1a1a1a}.badge-warning{background:#fdb022;color:#1a1a1a}.badge-info{background:#4c9eff;color:#fff}@media (max-width: 768px){.scanner-container{padding:0}.scanner-header{padding:1rem;gap:.5rem}.scanner-header h1{font-size:1rem}.scanner-header p{font-size:.75rem}.merchant-logo{width:40px;height:40px}.auth-card,.scanner-main{padding:0 1rem;margin:1rem auto}.auth-card{padding:1.75rem}.customer-section{padding:1rem}.scan-section{padding:1.5rem}.customer-card,.action-card,.rewards-card{padding:1.5rem;margin-bottom:1rem}.points-display{grid-template-columns:1fr;gap:.75rem}.customer-header{flex-wrap:wrap;gap:.75rem;align-items:flex-start}.customer-avatar{width:56px;height:56px}.customer-info{flex:1;min-width:0;word-break:break-word;overflow-wrap:break-word}.customer-header h2{font-size:1.25rem;word-break:break-word;overflow-wrap:break-word}.customer-header p{font-size:.875rem;word-break:break-all;overflow-wrap:break-word;line-height:1.3;margin-top:.25rem}.reward-item{flex-direction:column;align-items:flex-start;gap:1rem}.reward-item button{width:100%}.btn-group{flex-direction:column}.btn,.btn-block{width:100%}.form-group input,.form-group select,.form-group textarea{font-size:16px}.auth-header h1{font-size:1.5rem}.scan-section h2,.customer-header h2{font-size:1.25rem}.action-card h3,.rewards-card h3{font-size:1.125rem}}@media (min-width: 769px) and (max-width: 1024px){.customer-section{max-width:700px}.scanner-header{padding:1.25rem 2rem}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#2d2d2d;border-radius:24px;padding:2rem;max-width:450px;width:100%;box-shadow:0 12px 48px #0009;animation:modalSlideUp .3s ease-out}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-content h3{margin:0 0 1rem;font-size:1.5rem;color:#fff;font-weight:700;text-align:center}.modal-content>p{margin:0 0 1.5rem;color:#a0a0a0;text-align:center;font-size:.95rem}.confirmation-details{background:#1a1a1a;border-radius:16px;padding:1.5rem;margin-bottom:1.5rem;border:2px solid #3d3d3d}.confirmation-details h4{margin:0 0 .5rem;font-size:1.25rem;color:#fff;font-weight:600}.confirmation-details p{margin:0 0 1rem;color:#a0a0a0;font-size:.9rem;line-height:1.5}.confirmation-details p:last-child{margin-bottom:0}.reward-cost-large{display:inline-block;background:#fdb022;color:#1a1a1a;padding:.5rem 1rem;border-radius:8px;font-weight:700;font-size:1rem;margin-top:.5rem}.modal-actions{display:flex;gap:1rem}.modal-actions .btn{flex:1}@media (max-width: 480px){.modal-content{padding:1.5rem}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}.customer-header{gap:.5rem}.customer-avatar{width:48px;height:48px}.customer-header h2{font-size:1.125rem}.customer-header p{font-size:.8rem;margin-top:.25rem}}.success-toast{background:linear-gradient(135deg,#10b981,#059669);border-radius:24px;padding:2.5rem 2rem;max-width:500px;width:90%;box-shadow:0 12px 48px #10b98166;animation:successSlideUp .4s ease-out;text-align:center;position:relative}@keyframes successSlideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.success-icon{width:80px;height:80px;background:#fff3;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:3rem;color:#fff;margin:0 auto 1.5rem;border:3px solid rgba(255,255,255,.3);animation:successPulse .6s ease-out}@keyframes successPulse{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.success-message{color:#fff;font-size:1.25rem;font-weight:600;line-height:1.6;margin-bottom:1.5rem;word-break:break-word}.success-skip{color:#ffffffe6;background:#ffffff26;padding:.75rem 2rem;border-radius:12px;font-size:1rem;font-weight:600;transition:all .2s;border:2px solid rgba(255,255,255,.2)}.success-skip:hover{background:#ffffff40;border-color:#fff6;color:#fff;transform:translateY(-2px)}@media (max-width: 480px){.success-toast{padding:2rem 1.5rem;width:95%}.success-icon{width:64px;height:64px;font-size:2.5rem;margin-bottom:1rem}.success-message{font-size:1.05rem;margin-bottom:1rem}.success-skip{padding:.625rem 1.5rem;font-size:.9rem}}
