:root{--primary-color: #e63946;--secondary-color: #f1faee;--text-color: #1d3557;--accent-color: #457b9d;--error-color: #d62828;--success-color: #2a9d8f;--font-family: "Inter", system-ui, Avenir, Helvetica, Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:#f8f9fa;color:var(--text-color);display:flex;justify-content:center;min-height:100vh;margin:0}#root{width:100%;max-width:480px;min-height:100vh;background-color:#fff;box-shadow:0 4px 6px -1px #0000001a;display:flex;flex-direction:column}.container{padding:2rem;flex:1;display:flex;flex-direction:column;justify-content:center}h1,h2,h3{margin-bottom:1rem;text-align:center}button{width:100%;padding:12px;border:none;border-radius:8px;background-color:var(--primary-color);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s;margin-top:1rem}button:disabled{opacity:.6;cursor:not-allowed}input{width:100%;padding:12px;border:1px solid #ddd;border-radius:8px;font-size:1rem;margin-bottom:1rem;transition:border-color .2s}input:focus{outline:none;border-color:var(--accent-color)}.error-msg{color:var(--error-color);font-size:.875rem;text-align:center;margin-bottom:1rem;min-height:1.25rem}.loader{border:4px solid #f3f3f3;border-top:4px solid var(--primary-color);border-radius:50%;width:24px;height:24px;animation:spin 1s linear infinite;margin:0 auto}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.referral-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fdfbfb,#ebedee);padding:20px;width:100%}.referral-card{background:#fff;border-radius:24px;box-shadow:0 20px 40px #0000001a;padding:40px;width:100%;max-width:400px;text-align:center;border-top:8px solid #e63946;animation:slideUp .6s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.referral-icon-success{color:#2a9d8f;font-size:64px;margin-bottom:20px}.referral-icon-error{color:#d62828;font-size:64px;margin-bottom:20px}.discount-badge{background:#fff5f5;border:2px dashed #e63946;border-radius:16px;padding:24px;margin:24px 0;transition:transform .3s ease}.discount-badge:hover{transform:scale(1.02)}.discount-label{color:#666;font-size:.8rem;text-transform:uppercase;letter-spacing:1px;margin-bottom:5px}.discount-code{font-family:Courier New,Courier,monospace;font-size:1.5rem;font-weight:800;color:#1d3557;margin-bottom:10px}.discount-amount{font-size:3.5rem;font-weight:900;color:#e63946;line-height:1}.referral-footer{color:#999;font-size:.75rem;margin-top:30px;line-height:1.4}.restaurant-name{color:#e63946;font-weight:700;margin-bottom:10px;display:block}.scratch-card-container{display:flex;flex-direction:column;align-items:center;margin:15px 0;width:100%}.scratch-card-wrapper{position:relative;width:min(300px,90vw);height:min(150px,45vw);background:#f8f9fa;border-radius:16px;overflow:hidden;box-shadow:inset 0 2px 10px #0000000d;border:1px solid #ddd}.scratch-card-content{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;z-index:1}.scratch-card-canvas{position:absolute;top:0;left:0;cursor:crosshair;touch-action:none;z-index:2}.reveal-btn{background:#1d3557;color:#fff;padding:8px 16px;border-radius:20px;font-size:.8rem;margin-top:10px;border:none;cursor:pointer}
