*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f9fafb;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}:root{--primary:#6366f1;--primary-dark:#4f46e5;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--text-dark:#1f2937;--text-gray:#6b7280;--border:#e5e7eb}.page{min-height:calc(100vh - 70px);padding:40px 0}.loading{color:var(--text-gray);font-size:18px;padding:60px;text-align:center}.hero-section{background:#fff;border-radius:16px;box-shadow:0 4px 20px #0000000d;margin:0 24px 40px;padding:60px 24px;text-align:center}.hero-section h1{color:var(--text-dark);font-size:42px;font-weight:800;margin-bottom:16px}.hero-section p{color:var(--text-gray);font-size:18px;margin-bottom:32px}.search-bar{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:0 auto;max-width:700px}.search-bar input{border:2px solid var(--border);border-radius:12px;flex:1 1;font-size:16px;min-width:200px;padding:14px 20px}.btn-search{background:var(--primary);border:none;border-radius:12px;color:#fff;cursor:pointer;font-weight:600;padding:14px 32px;transition:background .2s}.btn-search:hover{background:var(--primary-dark)}.restaurants-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));margin-top:32px}.restaurant-card{background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:transform .2s,box-shadow .2s}.restaurant-card:hover{box-shadow:0 8px 24px #0000001a;transform:translateY(-4px)}.restaurant-image{align-items:center;background:linear-gradient(135deg,#6366f1,#818cf8);display:flex;height:200px;justify-content:center}.placeholder-image{font-size:64px;opacity:.3}.restaurant-image img{height:100%;object-fit:cover;width:100%}.restaurant-info{padding:20px}.restaurant-info h3{font-size:20px;font-weight:700;margin-bottom:8px}.restaurant-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--text-gray);display:-webkit-box;font-size:14px;margin-bottom:12px;overflow:hidden}.restaurant-location{color:var(--text-gray);font-size:14px;line-height:1.6;margin-bottom:16px}.location-line{margin-bottom:4px}.active-badge{background:#10b9811a;border-radius:6px;color:var(--success);display:inline-block;font-size:12px;font-weight:600;padding:6px 12px}.btn-submit-points{background:var(--primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;margin-top:16px;padding:12px 24px;transition:background .2s,transform .1s;width:100%}.btn-submit-points:hover{background:var(--primary-dark);transform:translateY(-1px)}.btn-submit-points:active{transform:translateY(0)}.loyalty-plan-section{border-top:2px solid var(--border);margin-top:16px;padding-top:16px}.plan-header{margin-bottom:12px}.plan-badge{background:linear-gradient(135deg,#6366f11a,#818cf81a);border:1px solid #6366f133;border-radius:6px;color:var(--primary);display:inline-block;font-size:12px;font-weight:700;padding:6px 12px}.plan-details{margin-top:12px}.plan-name{color:var(--text-dark);font-size:16px;font-weight:700;margin-bottom:8px}.plan-description{color:var(--text-gray);font-size:13px;line-height:1.5;margin-bottom:12px}.plan-rules{display:flex;flex-direction:column;gap:8px}.plan-rule{align-items:flex-start;background:#6366f108;border-left:3px solid var(--primary);border-radius:6px;display:flex;font-size:13px;justify-content:space-between;padding:8px}.rule-label{color:var(--text-gray);font-weight:500;margin-right:8px}.rule-value{color:var(--text-dark);flex-shrink:0;font-weight:600;text-align:right}.reward-highlight{color:var(--primary)!important;font-weight:700}.plan-formatted-description{margin-top:12px}.formatted-text{background:#6366f10d;border-left:4px solid var(--primary);border-radius:8px;color:var(--text-dark);font-size:14px;line-height:1.7;margin:0;padding:12px;text-align:left}.enrollments-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin:32px 0}.enrollment-card{background:#fff;border:2px solid var(--border);border-radius:16px;padding:32px;text-align:center}.enrollment-card h3{color:var(--text-dark);margin-bottom:24px}.points-display{margin-bottom:24px}.points-value{color:var(--primary);font-size:56px;font-weight:800;line-height:1}.points-label{color:var(--text-gray);font-size:14px;margin-top:8px}.enrollment-stats{border-top:1px solid var(--border);display:flex;gap:24px;justify-content:center;padding-top:24px}.stat{text-align:center}.stat-label{color:var(--text-gray);display:block;font-size:12px;margin-bottom:4px}.stat-value{color:var(--text-dark);display:block;font-size:20px;font-weight:700}.section-title{font-size:24px;font-weight:700;margin:40px 0 24px}.transactions-list{display:flex;flex-direction:column;gap:16px}.transaction-item{align-items:center;background:#fff;border:1px solid var(--border);border-radius:12px;display:flex;justify-content:space-between;padding:20px}.transaction-left{align-items:flex-start;display:flex;flex-direction:column;gap:8px}.transaction-header,.transaction-right{align-items:center;display:flex;gap:24px}.transaction-date{color:var(--text-gray);font-size:14px}.transaction-amount{color:var(--text-dark);font-size:20px;font-weight:700}.transaction-points{color:var(--success);font-size:18px;font-weight:700}.transaction-status{border-radius:6px;font-size:13px;font-weight:600;padding:6px 12px}.transaction-status.pending{background:#f59e0b1a;color:var(--warning)}.transaction-status.approved{background:#10b9811a;color:var(--success)}.transaction-status.rejected{background:#ef44441a;color:var(--danger)}.transaction-rejection-reason{color:var(--danger);font-size:13px;font-style:italic;margin-top:4px}.form-card{background:#fff;border:1px solid var(--border);border-radius:16px;margin:32px auto;max-width:600px;padding:32px}.subtitle{color:var(--text-gray);font-size:16px;margin-bottom:32px}.form-group{margin-bottom:24px}.form-group label{color:var(--text-dark);display:block;margin-bottom:8px}.help-text{color:var(--text-gray);display:block;font-size:13px;font-weight:400;margin-top:4px}.form-group input,.form-group select{border:2px solid var(--border);border-radius:8px;font-family:inherit;font-size:16px;padding:12px 16px;width:100%}.form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.file-input{border:2px dashed var(--border);border-radius:8px;cursor:pointer;padding:24px;text-align:center;transition:border-color .2s}.file-input:hover{border-color:var(--primary)}.file-input input{cursor:pointer}.file-name{color:var(--primary);display:block;font-weight:600;margin-top:12px}.info-box{background:#6366f10d;border:1px solid #6366f133;border-radius:8px;color:var(--text-dark);line-height:1.6;margin-bottom:24px;padding:16px}.btn-submit-form{background:var(--primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:16px;transition:background .2s;width:100%}.btn-submit-form:hover:not(:disabled){background:var(--primary-dark)}.btn-submit-form:disabled{cursor:not-allowed;opacity:.6}.profile-card{background:#fff;border:1px solid var(--border);border-radius:16px;margin:32px auto;max-width:600px;padding:48px;text-align:center}.profile-avatar-large{align-items:center;background:linear-gradient(135deg,var(--primary) 0,#818cf8 100%);border-radius:50%;color:#fff;display:flex;font-size:48px;font-weight:700;height:120px;justify-content:center;margin:0 auto 24px;width:120px}.profile-info h2{font-size:28px;margin-bottom:32px}.profile-details{text-align:left}.detail-item{border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:16px 0}.detail-label{color:var(--text-gray);font-weight:500}.login-page{min-height:calc(100vh - 70px);padding:40px 24px}.login-container{border-radius:16px;box-shadow:0 8px 32px #0000001a;max-width:500px}.login-header{margin-bottom:32px}.login-header h1{font-size:32px}.login-header p{color:var(--text-gray)}.empty-card,.empty-state{background:#fff;border:1px solid var(--border);border-radius:12px;margin:32px 0;padding:60px 24px;text-align:center}.empty-card{padding:40px 24px}.empty-state h3{color:var(--text-dark);margin-bottom:8px}.empty-state p{color:var(--text-gray)}@media (max-width:768px){.hero-section h1{font-size:32px}.search-bar{flex-direction:column}.form-row,.restaurants-grid{grid-template-columns:1fr}}.login-page{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:24px;position:relative}.login-page:before{animation:float 20s linear infinite;background:radial-gradient(circle,#ffffff1a 1px,#0000 0);background-size:50px 50px;content:"";height:200%;pointer-events:none;position:absolute;right:-50%;top:-50%;width:200%}@keyframes float{0%{transform:translate(0)}to{transform:translate(50px,50px)}}.login-container{animation:slideUp .5s ease;background:#fff;border-radius:24px;box-shadow:0 20px 60px #0000004d;max-width:480px;padding:48px;position:relative;width:100%;z-index:1}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{margin-bottom:40px;text-align:center}.login-logo{gap:12px;margin-bottom:24px}.login-logo,.login-logo-icon{align-items:center;display:flex;justify-content:center}.login-logo-icon{animation:pulse 2s infinite;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;box-shadow:0 8px 20px #667eea66;color:#fff;font-size:32px;font-weight:700;height:56px;width:56px}@keyframes pulse{0%,to{box-shadow:0 8px 20px #667eea66}50%{box-shadow:0 8px 30px #667eea99}}.login-logo-text{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;font-size:32px;font-weight:700}.login-header h1{color:#1f2937;font-size:28px;font-weight:700;margin-bottom:8px}.login-header p{color:#6b7280;font-size:16px}.login-form{display:flex;flex-direction:column;gap:24px}.login-error{align-items:center;background:#ef44441a;border:2px solid #ef44444d;border-radius:12px;color:#dc2626;display:flex;font-size:14px;font-weight:500;gap:12px;padding:16px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{color:#1f2937;font-size:14px;font-weight:600}.phone-input-group{align-items:center;display:flex;gap:8px}.phone-prefix{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 12px #667eea4d;color:#fff;font-size:16px;font-weight:700;min-width:60px;padding:16px;text-align:center}.form-group input{border:2px solid #e5e7eb;border-radius:12px;box-sizing:border-box;flex:1 1;font-family:inherit;font-size:16px;padding:16px;transition:all .3s;width:100%}.phone-input-group input{flex:1 1}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group input:disabled{background:#f9fafb;cursor:not-allowed;opacity:.6}.login-button{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;box-shadow:0 4px 12px #667eea4d;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:8px;justify-content:center;padding:16px 24px;transition:all .3s;width:100%}.login-button:hover:not(:disabled){box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{cursor:not-allowed;opacity:.7}.spinner{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:16px;width:16px}.login-footer{border-top:1px solid #e5e7eb;display:flex;flex-direction:column;gap:12px;padding-top:16px;text-align:center}.register-prompt{color:#6b7280;font-size:14px;margin-top:8px}.register-link{background:none;border:none;color:#667eea;cursor:pointer;font-family:inherit;font-size:14px;font-weight:500;margin:0;padding:0;text-decoration:none;transition:color .2s}.register-link:hover:not(:disabled){color:#5568d3;text-decoration:underline}.register-link:disabled{cursor:not-allowed;opacity:.5}.login-container [data-amplify-authenticator],.login-container [data-amplify-container]{background:#0000!important;border:none!important;box-shadow:none!important;padding:0!important}.login-container [data-amplify-tabs]{display:none!important}.login-container form[data-amplify-form]{display:flex!important;flex-direction:column!important;gap:24px!important}.login-container [data-amplify-field]{display:flex!important;flex-direction:column!important;gap:8px!important}.login-container label[data-amplify-label]{color:#1f2937!important;font-size:14px!important;font-weight:600!important;margin-bottom:8px!important}.login-container input[data-amplify-input],.login-container select[data-amplify-select]{background:#fff!important;border:2px solid #e5e7eb!important;border-radius:12px!important;box-sizing:border-box!important;font-family:inherit!important;font-size:16px!important;padding:16px!important;transition:all .3s!important;width:100%!important}.login-container input[data-amplify-input]:focus,.login-container select[data-amplify-select]:focus{border-color:#667eea!important;box-shadow:0 0 0 3px #667eea1a!important;outline:none!important}.login-container button[data-amplify-button]{background:linear-gradient(135deg,#667eea,#764ba2)!important;border:none!important;border-radius:12px!important;box-shadow:0 4px 12px #667eea4d!important;color:#fff!important;cursor:pointer!important;font-size:16px!important;font-weight:600!important;margin-top:8px!important;padding:16px 24px!important;transition:all .3s!important;width:100%!important}.login-container button[data-amplify-button]:hover:not(:disabled){box-shadow:0 6px 20px #667eea66!important;transform:translateY(-2px)!important}.login-container button[data-amplify-button]:active:not(:disabled){transform:translateY(0)!important}.login-container button[data-amplify-button]:disabled{cursor:not-allowed!important;opacity:.7!important}.login-container [data-amplify-footer]{border-top:1px solid #e5e7eb!important;margin-top:24px!important;padding-top:16px!important;text-align:center!important}.login-container [data-amplify-footer] a{color:#667eea!important;font-size:14px!important;font-weight:500!important;text-decoration:none!important;transition:color .2s!important}.login-container [data-amplify-footer] a:hover{color:#5568d3!important;text-decoration:underline!important}.login-container [data-amplify-alert]{align-items:center!important;background:#ef44441a!important;border:2px solid #ef44444d!important;border-radius:12px!important;color:#dc2626!important;display:flex!important;font-size:14px!important;font-weight:500!important;gap:12px!important;margin-bottom:24px!important;padding:16px!important}.login-container [data-amplify-alert]:before{content:"⚠️"!important;font-size:18px!important}.login-container .amplify-authenticator{background:#0000!important}.login-container .amplify-card{background:#0000!important;border:none!important;box-shadow:none!important}.register-container{max-width:520px}.login-success{background:#10b9811a!important;border-color:#10b9814d!important;color:#059669!important}.form-hint{color:#6b7280;display:block;font-size:12px;margin-top:4px}.back-to-login-btn{background:none;border:none;color:#667eea;cursor:pointer;font-family:inherit;font-size:14px;font-weight:500;padding:8px;transition:color .2s;width:100%}.back-to-login-btn:hover:not(:disabled){color:#5568d3;text-decoration:underline}.back-to-login-btn:disabled{cursor:not-allowed;opacity:.5}.confirmation-modal-container{max-width:480px}.resend-code-link{background:none;border:none;color:#6b7280;cursor:pointer;font-family:inherit;font-size:14px;font-weight:400;margin-bottom:8px;padding:8px;text-decoration:underline;transition:color .2s}.resend-code-link:hover:not(:disabled){color:#667eea}.resend-code-link:disabled{cursor:not-allowed;opacity:.5;text-decoration:none}.login-loading{align-items:center;color:#667eea;display:flex;font-weight:500;gap:12px;justify-content:center;padding:16px}.login-spinner{animation:spin .8s linear infinite;border:3px solid #667eea33;border-radius:50%;border-top-color:#667eea;height:20px;width:20px}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:768px){.login-container{padding:32px 24px}.login-header h1{font-size:24px}.login-logo-text{font-size:28px}.login-logo-icon{font-size:28px;height:48px;width:48px}}.navbar{background:#fff;border-bottom:1px solid var(--border);box-shadow:0 2px 8px #0000000d;position:fixed;top:0;width:100%;z-index:100}.container{margin:0 auto;max-width:1200px;padding:0 24px}.nav-content{height:70px;justify-content:space-between}.logo,.nav-content{align-items:center;display:flex}.logo{color:var(--text-dark);font-size:24px;font-weight:700;gap:12px;text-decoration:none}.logo-icon{background:var(--primary);border-radius:8px;color:#fff;height:36px;justify-content:center;width:36px}.logo-icon,.nav-links{align-items:center;display:flex}.nav-links{gap:24px}.nav-link{color:var(--text-gray);font-weight:500;text-decoration:none;transition:color .2s}.nav-link:hover{color:var(--primary)}.btn-submit{background:var(--primary);border-radius:8px;color:#fff;padding:10px 20px}.btn-submit:hover{background:var(--primary-dark);color:#fff}.btn-login{background:var(--primary);border-radius:8px;color:#fff;font-weight:600;padding:10px 20px;text-decoration:none;transition:background .2s}.btn-login:hover{background:var(--primary-dark)}.user-avatar{align-items:center;background:var(--primary);border-radius:50%;color:#fff;display:flex;font-weight:700;height:40px;justify-content:center;text-decoration:none;transition:transform .2s;width:40px}.user-avatar:hover{transform:scale(1.05)}.btn-signout{background:#0000;border:1px solid var(--border);border-radius:8px;color:var(--danger);cursor:pointer;font-weight:500;padding:8px 16px;transition:all .2s}.btn-signout:hover{background:#fef2f2;border-color:var(--danger)}@media (max-width:768px){.nav-links{gap:12px}.nav-link{font-size:14px}}.app{background:linear-gradient(135deg,#f9fafb,#eef2ff);min-height:100vh}.app-content{min-height:calc(100vh - 70px);padding-top:70px}
/*# sourceMappingURL=main.817b29f5.css.map*/