/*
 * เฮงเฮง ปังจัง — Auth Pages CSS (Login + Register)
 * ใช้ร่วมกับ global.css + dark-mode.css
 */

/* ═══ Auth Body ═══ */
.auth-body{background:linear-gradient(135deg,#ED1C24 0%,#ED1C24 15%,#F8B4B4 25%,#FFF 40%,#FFF 60%,#7BA3CC 75%,#002D72 85%,#001A45 100%)!important;background-attachment:fixed!important;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(10px,3vw,28px);padding-bottom:calc(clamp(10px,3vw,28px) + env(safe-area-inset-bottom,0px))}

/* ═══ Card ═══ */
.auth-card{width:100%;max-width:480px;background:var(--white);border-radius:clamp(18px,5vw,28px);overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.auth-banner{margin:clamp(8px,2vw,14px);border-radius:clamp(10px,3vw,18px);overflow:hidden;background:#f0f0f0}
.auth-banner img{width:100%;height:auto;display:block}
.auth-body-inner{padding:clamp(16px,4.5vw,32px) clamp(16px,4.5vw,30px) calc(clamp(16px,4.5vw,32px) + 4px)}

/* ═══ Steps ═══ */
.steps{display:flex;justify-content:center;gap:10px;margin-bottom:clamp(16px,4vw,22px)}
.step{flex:1;max-width:100px;height:5px;border-radius:3px;background:var(--border);transition:all .35s}
.step.active{background:var(--red);transform:scaleY(1.3)}
.step.done{background:var(--green)}

/* ═══ Sections ═══ */
.section{display:none;animation:authFadeUp .3s ease}
.section.active{display:block}
@keyframes authFadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* ═══ Title ═══ */
.sec-title{text-align:center;margin-bottom:clamp(16px,4vw,22px)}
.sec-title h2{font-size:clamp(20px,5.5vw,28px);font-weight:800;color:var(--text);line-height:1.3}
.sec-title p{color:var(--text-secondary);font-size:clamp(14px,3.5vw,16px);margin-top:4px}

/* ═══ Benefits ═══ */
.benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:clamp(16px,4vw,22px);padding:clamp(10px,2.5vw,14px);background:linear-gradient(135deg,#FFF9F0,#FFF5F5);border-radius:clamp(10px,2.5vw,16px);border:1px solid rgba(201,150,58,.10)}
.benefit{text-align:center;min-width:0}
.benefit-icon{display:flex;align-items:center;justify-content:center;margin-bottom:6px}
.benefit-icon svg{width:clamp(32px,8vw,40px);height:clamp(32px,8vw,40px)}
.benefit-text{font-size:clamp(10px,2.5vw,13px);color:var(--text-secondary);line-height:1.35;font-weight:500}

/* ═══ Form overrides ═══ */
.form-input-lg{padding:clamp(12px,3.2vw,18px) clamp(14px,3.5vw,20px)!important;font-size:clamp(16px,4vw,18px)!important;font-weight:500;border-width:2px!important;border-radius:clamp(10px,2.5vw,14px)!important}
.form-input-lg:focus{box-shadow:0 0 0 3px rgba(237,28,36,.10)!important}

/* ═══ Buttons ═══ */
.btn-lg{min-height:clamp(48px,12vw,56px);font-size:clamp(15px,4vw,18px)!important;border-radius:clamp(10px,2.5vw,14px)!important}
.btn-gold{background:linear-gradient(135deg,var(--gold-dark),#E0B050);color:var(--white)}
.btn-gold:hover{filter:brightness(1.06)}
.btn-back{margin-top:10px}

/* ═══ Password input with icons ═══ */
.pw-wrap{position:relative;display:flex;align-items:center;background:var(--bg);border:2px solid var(--border);border-radius:clamp(10px,2.5vw,14px);transition:border-color .2s,box-shadow .2s;overflow:hidden;width:100%;max-width:100%;box-sizing:border-box}
.pw-wrap:focus-within{border-color:var(--red);box-shadow:0 0 0 3px rgba(237,28,36,.10);background:var(--white)}
.pw-wrap .pw-icon-left{display:flex;align-items:center;justify-content:center;width:44px;min-width:44px;flex-shrink:0;color:var(--text-light)}
.pw-wrap .pw-icon-left svg{width:20px;height:20px;flex-shrink:0}
.pw-wrap .form-input{border:none!important;background:transparent!important;box-shadow:none!important;padding:clamp(12px,3.2vw,18px) 0!important;flex:1;min-width:0;width:0}
.pw-wrap .form-input:focus{box-shadow:none!important}
.pw-toggle{display:flex;align-items:center;justify-content:center;width:48px;min-width:48px;flex-shrink:0;border:none;background:transparent;cursor:pointer;color:var(--text-light);transition:color .2s;padding:0;-webkit-tap-highlight-color:transparent}
.pw-toggle:hover{color:var(--text-secondary)}
.pw-toggle svg{width:20px;height:20px;flex-shrink:0}

/* ═══ Remember checkbox ═══ */
.remember-check{display:flex;align-items:center;gap:10px;margin-bottom:clamp(14px,3.5vw,18px);font-size:14px;color:var(--text-secondary);cursor:pointer}
.remember-check input{width:20px;height:20px;accent-color:var(--red);cursor:pointer;flex-shrink:0}

/* ═══ OTP Input ═══ */
.otp-input{width:100%;height:clamp(56px,15vw,76px);font-size:clamp(24px,7vw,34px);font-weight:800;text-align:center;letter-spacing:clamp(8px,3.5vw,18px);padding:0 4px 0 calc(clamp(8px,3.5vw,18px)/2);border:2px solid var(--border);border-radius:clamp(10px,2.5vw,14px);background:var(--white);outline:none;-webkit-appearance:none;caret-color:var(--red);color:var(--text);transition:all .2s}
.otp-input:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(237,28,36,.10)}
.otp-input.filled{border-color:var(--green);background:#F0FDF4}
.otp-input.error{border-color:#EF4444;background:#FEF2F2;animation:otpShake .5s}
.otp-input::placeholder{letter-spacing:calc(clamp(8px,3.5vw,18px)*.7);color:var(--text-light);font-size:calc(clamp(24px,7vw,34px)*.8);font-weight:600}
@keyframes otpShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}

/* ═══ Ref / Timer / Resend ═══ */
.ref-code{text-align:center;margin-bottom:12px;padding:8px 12px;background:var(--bg);border-radius:8px;font-size:13px;color:var(--text-secondary)}
.ref-code strong{color:var(--text);letter-spacing:2px;font-weight:700}
.timer{text-align:center;margin-bottom:14px;font-size:13px;color:var(--text-secondary)}
.timer-count{color:var(--red);font-weight:700}
.resend-btn{background:none;border:none;color:var(--red);font-weight:600;cursor:pointer;padding:6px 12px;border-radius:8px;font-size:clamp(14px,3.5vw,16px)}
.resend-btn:hover{background:rgba(253,24,3,.06)}
.resend-btn:disabled{color:var(--text-light);cursor:not-allowed}

/* ═══ Test OTP ═══ */
.test-otp{background:linear-gradient(135deg,#3B82F6,#1D4ED8);color:#fff;padding:clamp(12px,3vw,16px);border-radius:clamp(10px,2.5vw,14px);text-align:center;margin-bottom:14px}
.test-otp-label{font-size:11px;opacity:.8;margin-bottom:4px}
.test-otp-code{font-size:clamp(24px,6vw,32px);font-weight:900;letter-spacing:6px}
.test-otp-note{font-size:10px;opacity:.7;margin-top:4px}

/* ═══ Autofill hint ═══ */
.autofill-hint{background:#FEF3C7;border:1px solid #F59E0B;border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:12px;color:#92400E;line-height:1.4}

/* ═══ Alert ═══ */
.alert{padding:12px 14px;border-radius:10px;margin-bottom:14px;font-size:13px;display:none;line-height:1.5}
.alert-error{background:#FEF2F2;color:#991B1B;border:1px solid #FECACA}
.alert-success{background:#F0FDF4;color:#166534;border:1px solid #BBF7D0}

/* ═══ Auth loading ═══ */
.auth-loading{display:none;align-items:center;justify-content:center;gap:8px;color:var(--text-secondary);font-size:clamp(14px,3.5vw,16px);padding:14px}
.auth-loading.show{display:flex}
.auth-spinner{width:18px;height:18px;border:2.5px solid var(--border);border-top-color:var(--red);border-radius:50%;animation:spin .7s linear infinite}

/* ═══ Links / Divider ═══ */
.auth-links{text-align:center;font-size:clamp(14px,3.5vw,16px);color:var(--text-secondary)}
.auth-links a{color:var(--red);font-weight:700}
.auth-divider{display:flex;align-items:center;gap:12px;margin:clamp(14px,3.5vw,20px) 0;color:var(--text-light);font-size:12px;font-weight:500}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--border)}

/* ═══ Merchant link ═══ */
.merchant-link{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:56px;padding:14px 20px;border:2px solid #C8E6C9;border-radius:clamp(10px,2.5vw,14px);background:#F1F8E9;color:#2E7D32;font-size:clamp(16px,4.2vw,18px);font-weight:700;letter-spacing:.3px;transition:all .2s}
.merchant-link svg{flex-shrink:0;width:24px;height:24px}
.merchant-link:hover{background:#E8F5E9;border-color:#A5D6A7;opacity:1}
.merchant-link:active{transform:scale(.98)}

/* ═══ Birthday ═══ */
.birthday-row{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:clamp(6px,1.5vw,10px)}
.birthday-row .form-input{padding:clamp(10px,2.5vw,14px) clamp(8px,2vw,12px)!important;font-size:clamp(14px,3.5vw,16px)!important;text-align:center;border-width:2px!important;border-radius:clamp(10px,2.5vw,14px)!important}
.birthday-row select.form-input{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;padding-right:24px!important;text-align:left}

/* ═══ Info box ═══ */
.info-box{background:#EFF6FF;border:1px solid #BFDBFE;border-radius:10px;padding:20px;text-align:center;margin-bottom:14px}
.info-box p{font-size:15px;color:#1E40AF;margin-bottom:12px;font-weight:600}

/* ═══ Success ═══ */
.success-wrap{text-align:center;padding:clamp(20px,5vw,32px) 0 8px}
.success-circle{width:clamp(64px,16vw,80px);height:clamp(64px,16vw,80px);margin:0 auto clamp(12px,3vw,16px);background:linear-gradient(135deg,#22C55E,#16A34A);border-radius:50%;display:flex;align-items:center;justify-content:center;animation:authPopIn .4s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 4px 16px rgba(34,197,94,.25)}
.success-circle svg{width:38%;height:38%}
@keyframes authPopIn{from{transform:scale(0)}to{transform:scale(1)}}
.success-name{font-size:clamp(18px,5vw,24px);font-weight:800;color:var(--text);margin-bottom:4px}
.success-sub{font-size:clamp(14px,3.5vw,16px);color:var(--text-secondary)}

/* ═══ Footer ═══ */
.auth-footer{text-align:center;margin-top:clamp(16px,4vw,24px);color:rgba(255,255,255,.4);font-size:11px}

/* ═══ Dark mode ═══ */
.dark .auth-card{background:var(--card)}
.dark .otp-input{background:var(--input-bg);border-color:var(--input-border);color:var(--text)}
.dark .otp-input.filled{background:#1a2e1a;border-color:#2D6A2D}
.dark .autofill-hint{background:#3D2800;border-color:#7C5A00;color:#F5D68A}
.dark .alert-error{background:#3D0808;color:#FCA5A5;border-color:#7F1D1D}
.dark .alert-success{background:#052E16;color:#86EFAC;border-color:#166534}
.dark .info-box{background:#0C1C36;border-color:#1E3A5F}
.dark .info-box p{color:#93C5FD}
.dark .merchant-link{background:#1A2E1A;border-color:#2D4A2D;color:#86D98A}
.dark .benefits{background:linear-gradient(135deg,#2A2200,#2A0A0A);border-color:rgba(201,150,58,.2)}
.dark .pw-toggle{color:var(--text)}
.dark .pw-wrap{background:var(--input-bg);border-color:var(--input-border)}
.dark .pw-wrap:focus-within{border-color:var(--red);background:var(--card)}
