html,body,#root{height:100%;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#fff;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}:root{--brand-primary:#cdfe67;--brand-footer-bg:#0b1c10}.App{text-align:center;flex-direction:column;min-height:100vh;display:flex}.App-header{padding:2rem 0}main{flex:1;justify-content:center;align-items:center;padding:1rem;display:flex}.redemption-card{color:#333;background-color:#fff;border-radius:8px;width:100%;max-width:400px;padding:2rem;box-shadow:0 4px 8px #0000001a}.logo-container{margin-bottom:1rem}.gift-logo{background-color:#f2f6fc;border-radius:8px;width:80px;height:80px;padding:1rem}.redeem-button{color:#0b1c10;cursor:pointer;background-color:var(--brand-primary);border:none;border-radius:4px;width:100%;margin:1rem 0;padding:1rem 2rem;font-size:1rem;font-weight:600;transition:background-color .3s}.redeem-button:disabled{cursor:not-allowed;opacity:.7;background-color:#ccc!important}.expiry-date{color:#888;font-size:.8rem}.App-footer{background-color:var(--brand-footer-bg);color:#a9c9ea;padding:2rem;font-size:.8rem}.footer-links{margin-bottom:1rem}.footer-links a{color:#a9c9ea;margin:0 .5rem;text-decoration:none}.loading-message{color:#fff;font-size:1.2rem}.error-card{color:#5c1e1e;background-color:#fdf2f2;border-top:4px solid #d32f2f;box-shadow:0 4px 12px #d32f2f1a}.error-text{color:#d32f2f;margin-bottom:1.5rem;font-size:1.1rem;font-weight:600}.redeemed-state h2{color:#2e7d32;margin-bottom:.5rem}.error-message{color:red;text-align:center;padding:2rem}.modal-overlay{background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{color:#333;background-color:#fff;border-radius:8px;width:100%;max-width:500px;padding:2rem;position:relative}.modal-close{cursor:pointer;background:0 0;border:none;font-size:1.5rem;position:absolute;top:1rem;right:1rem}.product-selection div{cursor:pointer;border:1px solid #ccc;border-radius:4px;margin-bottom:1rem;padding:1rem}.product-selection div:hover{background-color:#f0f0f0}.product-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.product-card{cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:8px;flex-direction:column;display:flex;overflow:hidden}.product-card-media{background:#f9fafb;justify-content:center;align-items:center;width:100%;height:140px;display:flex}.product-card-media img{object-fit:contain;max-width:100%;max-height:100%}.product-card-body{text-align:left;padding:1rem}.product-card-title{margin:0 0 .5rem;font-size:1rem}.product-card-desc,.product-card-usage,.product-card-disclosure{color:#555;margin:.25rem 0;font-size:.9rem}.redemption-form input{box-sizing:border-box;border:1px solid #e5e7eb;border-radius:8px;outline:none;width:100%;margin:1rem 0;padding:0 1rem;font-size:1rem}.redemption-form input:focus{border-color:var(--brand-primary);box-shadow:0 0 0 2px #0000000d}.form-row{align-items:center;gap:.75rem;width:100%;display:flex}.form-row input{flex:1;margin:0}.redemption-form input,.redemption-form .redeem-button{justify-content:center;align-items:center;height:44px;display:flex}.phone-input-container{box-sizing:border-box;background:#fff;border:1px solid #e5e7eb;border-radius:8px;flex:1;align-items:center;height:44px;display:flex;overflow:hidden}.phone-input-container:focus-within{border-color:var(--brand-primary);box-shadow:0 0 0 2px #0000000d}.country-prefix{background:#f9fafb;border-right:1px solid #e5e7eb;align-items:center;height:100%;padding:0 .5rem;display:flex}.country-select{color:#374151;cursor:pointer;background:0 0;border:none;outline:none;height:100%;padding:0 .25rem;font-size:.9rem;font-weight:500}.country-code-static{color:#374151;padding:0 .5rem;font-size:1rem;font-weight:500}.phone-input-container input{background:0 0;flex:1;padding:0 .75rem;font-size:1rem;border:none!important;height:100%!important;margin:0!important}.phone-input-container input:focus{box-shadow:none!important}.stack{flex-direction:column;gap:.75rem;display:flex}.redemption-form button{color:#0b1c10;cursor:pointer;background-color:var(--brand-primary);border:none;border-radius:8px;width:100%;padding:1rem;font-weight:600}.form-row .redeem-button{width:auto;min-width:140px;height:44px;padding:0 1rem}.success-message{color:green;text-align:center}.error-text{color:#dc2626;text-align:left;margin-top:.5rem;font-size:.875rem}
