body{background:#0a0e27;padding-top:calc(70px + var(--promo-banner-height,38px))}.hidden{display:none!important}.fidelite-container{max-width:480px;margin:0 auto;padding:1.5rem 1rem;min-height:calc(100vh - 120px);display:flex;flex-direction:column}.screen-email{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:1.2rem;padding:1.5rem 0}.fidelite-header-card{display:flex;flex-direction:column;align-items:center;gap:.5rem}.fidelite-badge-icon{font-size:2.5rem;width:70px;height:70px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(99,102,241,.2),rgba(217,70,239,.15));border:1px solid rgba(99,102,241,.3);border-radius:50%}.fidelite-bar-name{font-size:1.1rem;color:#a5b4fc;font-weight:700;background:rgba(99,102,241,.12);border:1px solid rgba(99,102,241,.25);border-radius:.5rem;padding:.4rem 1.2rem}.fidelite-title{font-size:1.5rem;font-weight:800;color:#fff}.fidelite-subtitle{font-size:.9rem;color:#9ca3af;line-height:1.5;max-width:300px}.fidelite-steps{display:flex;gap:.75rem;width:100%;max-width:400px}.fidelite-step{flex:1;display:flex;flex-direction:column;align-items:center;gap:.4rem;background:rgba(30,41,59,.6);border:1px solid rgba(99,102,241,.12);border-radius:.85rem;padding:.8rem .5rem}.fidelite-step-icon{font-size:1.5rem}.fidelite-step-text{display:flex;flex-direction:column;gap:.1rem}.fidelite-step-text strong{font-size:.8rem;color:#fff}.fidelite-step-text span{font-size:.68rem;color:#9ca3af;line-height:1.3}.fidelite-email-card{background:rgba(30,41,59,.5);border:1px solid rgba(99,102,241,.2);border-radius:1rem;padding:1.2rem 1.5rem;width:100%;max-width:360px}.fidelite-email-card-title{font-size:.95rem;font-weight:700;color:#fff;margin-bottom:.8rem}.fidelite-email-form{width:100%;display:flex;flex-direction:column;gap:.65rem}.fidelite-input{width:100%;padding:.75rem 1rem;border:1px solid rgba(99,102,241,.3);border-radius:.75rem;background:rgba(10,14,39,.8);color:#fff;font-size:.95rem;outline:0;transition:border-color .2s}.fidelite-input:focus{border-color:#6366f1}.fidelite-input::placeholder{color:#64748b}.fidelite-btn{padding:.75rem 1.5rem;border:none;border-radius:.75rem;background:linear-gradient(135deg,#6366f1,#d946ef);color:#fff;font-size:.95rem;font-weight:700;cursor:pointer;transition:transform .15s,opacity .15s}.fidelite-btn:active{transform:scale(.97)}.fidelite-btn:disabled{opacity:.6;cursor:not-allowed}.fidelite-email-success{background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.3);border-radius:.75rem;padding:.8rem;color:#4ade80;font-size:.9rem;line-height:1.5}.fidelite-email-error{color:#ff5565;font-size:.85rem}.screen-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.fidelite-spinner{width:40px;height:40px;border:3px solid rgba(99,102,241,.2);border-top-color:#6366f1;border-radius:50%;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.screen-error{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:1rem}.error-icon{font-size:3rem}.error-title{font-size:1.3rem;font-weight:700;color:#fff}.error-message{color:#9ca3af;font-size:.95rem}.error-link{color:#a5b4fc;text-decoration:none;font-weight:600}.screen-dashboard{flex:1;display:flex;flex-direction:column;gap:1.25rem}.dash-header{text-align:center;padding:1rem 0}.dash-bar-name{font-size:.9rem;color:#a5b4fc;font-weight:600;margin-bottom:.5rem}.dash-points-card{background:linear-gradient(135deg,rgba(99,102,241,.15),rgba(217,70,239,.1));border:1px solid rgba(99,102,241,.3);border-radius:1rem;padding:1.25rem}.dash-points-label{font-size:.85rem;color:#9ca3af;margin-bottom:.3rem}.dash-points-value{font-size:3rem;font-weight:900;background:linear-gradient(135deg,#fbbf24,#f59e0b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.1}.dash-points-unit{font-size:1rem;font-weight:600;color:#fbbf24;margin-left:.3rem}.dash-points-info{font-size:.8rem;color:#64748b;margin-top:.5rem}.dash-section{margin-bottom:.5rem}.dash-section-title{font-size:1.1rem;font-weight:700;color:#fff;margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.dash-section-icon{font-size:1.2rem}.reward-card{background:rgba(30,41,59,.7);border:1px solid rgba(99,102,241,.15);border-radius:.85rem;padding:1rem;margin-bottom:.75rem;transition:border-color .2s}.reward-card.can-claim{border-color:rgba(99,102,241,.4)}.reward-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.reward-name{font-size:1rem;font-weight:700;color:#fff;flex:1}.reward-cost{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1f2937;font-size:.8rem;font-weight:800;padding:.25rem .6rem;border-radius:.4rem;white-space:nowrap;margin-left:.5rem}.reward-description{font-size:.85rem;color:#9ca3af;margin-bottom:.75rem;line-height:1.4}.reward-progress{margin-bottom:.75rem}.reward-progress-bar{height:6px;background:rgba(99,102,241,.15);border-radius:3px;overflow:hidden}.reward-progress-fill{height:100%;background:linear-gradient(90deg,#6366f1,#d946ef);border-radius:3px;transition:width .3s}.reward-progress-text{font-size:.75rem;color:#64748b;margin-top:.3rem;text-align:right}.reward-claim-btn{width:100%;padding:.7rem;border:none;border-radius:.6rem;background:linear-gradient(135deg,#6366f1,#d946ef);color:#fff;font-size:.95rem;font-weight:700;cursor:pointer;transition:transform .15s,opacity .15s}.reward-claim-btn:active{transform:scale(.97)}.reward-claim-btn:disabled{background:rgba(100,116,139,.3);color:#64748b;cursor:not-allowed}.rewards-empty{text-align:center;color:#64748b;padding:2rem 1rem;font-size:.95rem}.history-list{display:flex;flex-direction:column;gap:.5rem}.history-item{display:flex;justify-content:space-between;align-items:center;padding:.65rem .75rem;background:rgba(30,41,59,.5);border-radius:.6rem}.history-info{flex:1}.history-desc{font-size:.85rem;color:#cbd5e1}.history-date{font-size:.75rem;color:#64748b;margin-top:.15rem}.history-points{font-size:.95rem;font-weight:700;white-space:nowrap;margin-left:.75rem}.history-points.earn{color:#4ade80}.history-points.spend{color:#f87171}.history-empty{text-align:center;color:#64748b;padding:1.5rem;font-size:.9rem}.claim-modal-overlay{position:fixed;inset:0;background:rgba(10,14,39,.95);display:flex;align-items:center;justify-content:center;z-index:100;padding:1.5rem;animation:.2s fadeIn}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.claim-modal{background:#1e293b;border:1px solid rgba(99,102,241,.3);border-radius:1.25rem;padding:2rem 1.5rem;text-align:center;width:100%;max-width:360px}.claim-icon{font-size:3rem;margin-bottom:.75rem}.claim-title{font-size:1.3rem;font-weight:800;color:#fff;margin-bottom:.5rem}.claim-reward-name{font-size:1rem;color:#a5b4fc;margin-bottom:1rem}.claim-qr-section{background:#fff;border-radius:1rem;padding:1.25rem;margin-bottom:1rem}.claim-qr-section #claim-qr-code,.claimed-qr-code{display:flex;justify-content:center;margin-bottom:.5rem}.claim-qr-section canvas,.claim-qr-section img,.claimed-qr-code canvas,.claimed-qr-code img{border-radius:8px}.claim-qr-instruction{color:#374151;font-size:.85rem;font-weight:500}.claim-code-label{font-size:.85rem;color:#9ca3af;margin-bottom:.5rem}.claim-code{font-size:2rem;font-weight:900;letter-spacing:.15em;color:#fbbf24;background:rgba(251,191,36,.1);border:2px dashed rgba(251,191,36,.4);border-radius:.75rem;padding:.6rem 1rem;margin-bottom:1rem;font-family:'Courier New',monospace}.claim-remaining{font-size:.85rem;color:#64748b;margin-bottom:1.25rem}.claim-close-btn{width:100%;padding:.85rem;border:none;border-radius:.75rem;background:linear-gradient(135deg,#6366f1,#d946ef);color:#fff;font-size:1rem;font-weight:700;cursor:pointer}.claim-close-btn:active{transform:scale(.97)}.claimed-card{background:rgba(30,41,59,.7);border:1px solid rgba(99,102,241,.15);border-radius:.85rem;padding:1rem;margin-bottom:.75rem}.claimed-card.used{opacity:.6}.claimed-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.claimed-card-name{font-size:1rem;font-weight:700;color:#fff;flex:1}.claimed-card-status{font-size:.7rem;font-weight:700;padding:.2rem .6rem;border-radius:2rem;text-transform:uppercase}.claimed-card-status.valid{color:#4ade80;background:rgba(74,222,128,.1);border:1px solid rgba(74,222,128,.3)}.claimed-card-status.used{color:#9ca3af;background:rgba(156,163,175,.1);border:1px solid rgba(156,163,175,.2)}.claimed-card-date{font-size:.75rem;color:#64748b;margin-bottom:.75rem}.claimed-card-qr{background:#fff;border-radius:.75rem;padding:1rem;text-align:center;margin-bottom:.75rem}.claimed-card-qr-code{display:flex;justify-content:center;margin-bottom:.4rem}.claimed-card-qr-code canvas,.claimed-card-qr-code img{border-radius:6px}.claimed-card-code{font-size:1.5rem;font-weight:900;letter-spacing:.12em;color:#fbbf24;background:rgba(251,191,36,.1);border:2px dashed rgba(251,191,36,.4);border-radius:.6rem;padding:.5rem .75rem;font-family:'Courier New',monospace;text-align:center}.claimed-card-qr-label{font-size:.8rem;color:#374151;font-weight:500}.claimed-empty{text-align:center;color:#64748b;padding:1.5rem;font-size:.9rem}.fidelite-footer{text-align:center;padding:1.5rem 0;color:#4b5563;font-size:.75rem}.fidelite-footer a{color:#6366f1;text-decoration:none}