.auth-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:authOverlayIn .3s ease forwards}.auth-overlay--closing{animation:authOverlayOut .3s ease forwards}.auth-modal{position:relative;background:#fff;border-radius:16px;overflow:hidden;max-width:520px;width:92%;max-height:90vh;overflow-y:auto;box-shadow:0 25px 60px rgba(0,0,0,.18),0 8px 24px rgba(0,0,0,.1);animation:authModalIn .4s cubic-bezier(.16,1,.3,1) forwards}.auth-modal--closing{animation:authModalOut .3s ease forwards}.auth-brands-banner{width:100%;overflow:hidden;border-radius:16px 16px 0 0;display:flex;align-items:center;justify-content:center}.auth-brands-banner-img{width:100%;height:220px;display:block;object-fit:cover;object-position:center}.auth-body{padding:28px 32px 32px}.auth-body--otp{text-align:center}.auth-tabs{display:flex;border-radius:6px;overflow:hidden;margin-bottom:24px;border:1px solid #042c26}.auth-tab{flex:1 1;padding:10px 16px;font-size:14px;font-weight:500;border:none;cursor:pointer;transition:all .2s ease;font-family:var(--font-sans,"Inter",sans-serif);background:#fff;color:#042c26}.auth-tab--active{background:#042c26;color:#fff}.auth-tab:not(.auth-tab--active):hover{background:rgba(4,44,38,.06)}.auth-form{gap:16px}.auth-field,.auth-form{display:flex;flex-direction:column}.auth-field{gap:6px}.auth-label{font-size:13px;font-weight:600;color:#444}.auth-input{padding:12px 14px;border:1.5px solid #ddd;border-radius:8px;font-size:14px;color:#333;font-family:var(--font-sans,"Inter",sans-serif);transition:border-color .2s ease;outline:none}.auth-input:focus{border-color:#042c26}.auth-input::placeholder{color:#aaa}.auth-consent{display:flex;align-items:flex-start;gap:8px;cursor:pointer}.auth-consent-checkbox{margin-top:2px;width:16px;height:16px;accent-color:#042c26;flex-shrink:0}.auth-consent-text{font-size:12px;color:#666;line-height:1.5}.auth-continue-btn{width:100%;padding:13px 20px;background:#f1f3f5;color:#888;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:var(--font-sans,"Inter",sans-serif);margin-top:4px}.auth-continue-btn:not(:disabled){background:#042c26;color:#fff;cursor:pointer}.auth-continue-btn:not(:disabled):hover{opacity:.9;transform:translateY(-1px)}.auth-continue-btn--otp{margin-top:8px;letter-spacing:1px}.auth-legal{text-align:center;font-size:12px;color:#888;margin-top:16px}.auth-legal-link{color:#1a1a1a;font-weight:600;text-decoration:none}.auth-legal-link:hover{text-decoration:underline}.auth-error{color:#d32f2f;font-size:13px;text-align:center;margin:0;padding:8px 12px;background:#fef2f2;border-radius:6px}.auth-otp-desc{font-size:14px;color:#666;margin:0 0 24px;line-height:1.5}.auth-otp-boxes{display:flex;gap:10px;justify-content:center;margin-bottom:24px}.auth-otp-box{width:48px;height:52px;border:1.5px solid #ddd;border-radius:10px;text-align:center;font-size:20px;font-weight:600;color:#1a1a1a;outline:none;transition:border-color .2s ease,box-shadow .2s ease;font-family:var(--font-sans,"Inter",sans-serif)}.auth-otp-box:focus{border-color:var(--primary,#2d6a4f);box-shadow:0 0 0 3px rgba(45,106,79,.12)}.auth-resend{margin-bottom:8px}.auth-resend-label{font-size:14px;font-weight:600;color:#333;margin:0 0 4px}.auth-resend-timer{font-size:13px;color:#888;margin:0}.auth-resend-btn{background:none;border:none;color:var(--primary,#2d6a4f);font-weight:600;font-size:13px;cursor:pointer;text-decoration:underline;font-family:var(--font-sans,"Inter",sans-serif)}.auth-change-email{font-size:13px;color:#888;margin-top:16px}.auth-change-email-link{background:none;border:none;color:var(--primary,#2d6a4f);font-weight:600;font-size:13px;cursor:pointer;text-decoration:underline;font-family:var(--font-sans,"Inter",sans-serif);padding:0}@keyframes authOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes authOverlayOut{0%{opacity:1}to{opacity:0}}@keyframes authModalIn{0%{opacity:0;transform:scale(.92) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes authModalOut{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.92) translateY(20px)}}@media (max-width:480px){.auth-modal{width:95%;border-radius:12px}.auth-body{padding:24px 20px 28px}.auth-brands-banner{border-radius:12px 12px 0 0}.auth-otp-box{width:40px;height:44px;font-size:18px}.auth-otp-boxes{gap:6px}}