/* ================================================================
   07 · หน้า Login และการเข้าสู่ระบบ (ไฟล์นี้เป็นเจ้าของสไตล์ของหน้า Login ทั้งหมด)
   - โครงสร้าง: #authGate > .lg-shell > (.lg-hero ฝั่งซ้ายเฉพาะจอกว้าง | .lg-card การ์ดเข้าสู่ระบบ)
   - มุมมองในการ์ด: #authViewMain (เข้าสู่ระบบ/สมัคร) · #authViewForgot · #authViewRecovery
   - สีหลักตามธีมเทศกาลผ่านตัวแปร --season-* (ถ้าไม่มีใช้สีเขียวเดิมของแอป)
   ================================================================ */
#authGate{
  --lg-primary:var(--season-primary,#20a875);
  --lg-deep:var(--season-deep,#157a55);
  --lg-soft:var(--season-surface,#e4f8ee);
  position:fixed;inset:0;z-index:1500;display:flex;overflow-y:auto;overflow-x:hidden;
  padding:max(18px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));
  background:
    radial-gradient(ellipse at 12% 8%,rgba(255,255,255,.9),transparent 42%),
    radial-gradient(ellipse at 92% 12%,color-mix(in srgb,var(--lg-primary) 20%,#fff),transparent 46%),
    linear-gradient(160deg,var(--lg-soft),#fff7ef 62%,#f3eeff);
  -webkit-overflow-scrolling:touch;
}
#authGate input{font-size:16px} /* กัน iOS ซูมเองตอนแตะช่องกรอก */
body.auth-required{overflow:hidden}
body.auth-required .mobile-nav,body.auth-required .mobile-more{display:none!important}

/* พื้นหลัง */
#authGate .login-background-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;pointer-events:none}
#authGate .login-background-video:not([src]):not(:has(source)){display:none}
#authGate .login-background-tint{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.35),rgba(255,255,255,0));pointer-events:none}
#authGate .login-floating-decor{position:absolute;inset:0;overflow:hidden;pointer-events:none}
#authGate .login-floating-decor span{position:absolute;font-size:30px;font-weight:800;color:var(--lg-primary);opacity:.18;animation:lgFloat 9s ease-in-out infinite}
#authGate .login-floating-decor span:nth-child(1){left:7%;top:16%}
#authGate .login-floating-decor span:nth-child(2){left:44%;top:7%;animation-delay:-2s;font-size:22px}
#authGate .login-floating-decor span:nth-child(3){right:9%;top:30%;animation-delay:-4s}
#authGate .login-floating-decor span:nth-child(4){left:12%;bottom:12%;animation-delay:-6s;font-size:26px}
#authGate .login-floating-decor span:nth-child(5){right:14%;bottom:10%;animation-delay:-3s}
@keyframes lgFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-18px) rotate(8deg)}}

/* โครงหลัก */
.lg-shell{position:relative;z-index:2;margin:auto;width:min(1020px,100%);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(24px,4vw,56px);align-items:center}

/* ฝั่งซ้าย: แนะนำแอป (ซ่อนบนจอแคบ) */
.lg-hero{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:8px 4px}
.lg-mascot{width:112px;height:112px;border-radius:50%;object-fit:cover;background:linear-gradient(135deg,#fff,var(--lg-soft));font-size:0;color:transparent;overflow:hidden;border:4px solid #fff;box-shadow:0 14px 34px color-mix(in srgb,var(--lg-primary) 30%,transparent)}
.lg-mascot-fallback{display:grid;place-items:center;font-size:56px!important;color:initial!important}
.lg-mascot-small{display:none}
.lg-mascot-small.lg-mascot-fallback{font-size:38px!important}
.lg-eyebrow{margin:6px 0 0;padding:5px 14px;border-radius:999px;background:rgba(255,255,255,.8);border:1px solid #fff;color:var(--lg-deep);font-size:13px;font-weight:800}
.lg-hero-title{margin:0;font-size:clamp(30px,3.4vw,44px);line-height:1.18;font-weight:900;letter-spacing:-.5px;color:var(--ink)}
.lg-points{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:10px;width:100%;max-width:420px}
.lg-points li{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:16px;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.9);box-shadow:0 8px 22px rgba(81,69,138,.07);font-size:14px;font-weight:600;color:var(--ink)}
.lg-points li span{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--lg-soft);font-size:17px;flex-shrink:0}

/* การ์ดเข้าสู่ระบบ */
.lg-card{width:100%;max-width:450px;justify-self:center;box-sizing:border-box;padding:clamp(22px,3vw,32px);border-radius:28px;background:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.95);box-shadow:0 24px 60px rgba(81,69,138,.16),inset 0 1px 0 #fff;-webkit-backdrop-filter:blur(24px) saturate(160%);backdrop-filter:blur(24px) saturate(160%)}
.lg-card-head{text-align:center;margin-bottom:18px}
.lg-card-head .auth-heading{margin:0;font-size:clamp(20px,2.4vw,24px);line-height:1.3;font-weight:900;color:var(--ink)}
.lg-card-head .auth-subheading{margin:6px 0 0;font-size:13px;line-height:1.6;color:var(--muted)}

/* แท็บ */
.lg-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin-bottom:16px;border-radius:16px;background:color-mix(in srgb,var(--lg-primary) 10%,#f1eefb)}
.lg-tab{min-height:42px;border-radius:12px;background:transparent;color:var(--muted);font-size:14px;font-weight:800;transition:background-color .2s,color .2s,box-shadow .2s}
.lg-tab.is-active{background:#fff;color:var(--lg-deep);box-shadow:0 4px 14px rgba(81,69,138,.12)}
.lg-tab:focus-visible,.lg-link:focus-visible,.lg-back:focus-visible,.lg-pw-toggle:focus-visible{outline:2px solid var(--lg-primary);outline-offset:2px}

/* ปุ่มโซเชียล */
.lg-social{display:grid;gap:10px}
.lg-social-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:50px;padding:0 16px;border-radius:15px;font-size:14.5px;font-weight:800;transition:transform .15s,box-shadow .2s,filter .2s}
.lg-social-btn:hover:not(:disabled){transform:translateY(-1px)}
.lg-social-btn:disabled{opacity:.65;cursor:wait}
.lg-social-btn.line-auth-btn{background:#06c755!important;color:#fff!important;border:0!important;box-shadow:0 10px 22px rgba(6,199,85,.26)!important}
.lg-social-btn .line-brand-mark{display:inline-block!important;flex:none;width:34px!important;height:26px!important;position:relative}
.lg-social-btn.lg-google-btn{background:#fff!important;color:#2f2f3a!important;border:1.5px solid #e4e1f0!important;box-shadow:0 8px 20px rgba(81,69,138,.08)!important}
.lg-google-icon{flex-shrink:0}

/* เส้นคั่น */
.auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0 14px;color:var(--muted);font-size:12px}
.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,#dcd7ee,transparent)}

/* ฟอร์ม */
.lg-form{display:grid;gap:14px}
.lg-form .field{display:grid;gap:6px;margin:0}
.lg-form label{font-size:12.5px;font-weight:800;color:var(--ink)}
.lg-form input{width:100%;box-sizing:border-box;min-height:50px;padding:0 14px;border-radius:14px;border:1.5px solid #e6e2f3;background:rgba(255,255,255,.95);color:var(--ink);transition:border-color .2s,box-shadow .2s}
.lg-form input::placeholder{color:#a7a4bd}
.lg-form input:focus{outline:none;border-color:var(--lg-primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--lg-primary) 18%,transparent)}
.lg-form input[aria-invalid="true"]{border-color:#e84d7e;box-shadow:0 0 0 4px rgba(232,77,126,.12)}
.lg-pw{position:relative}
.lg-pw input{padding-right:52px}
.lg-pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:11px;background:transparent;font-size:17px;line-height:1;opacity:.7}
.lg-pw-toggle:hover{opacity:1;background:#f3f0fb}
.lg-field-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.lg-field-row small{color:var(--muted);font-size:11.5px}
.lg-link{background:none;padding:4px 2px;color:var(--lg-deep);font-size:12.5px;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.auth-submit-btn{width:100%;min-height:52px;margin-top:2px;border-radius:16px;background:linear-gradient(135deg,var(--lg-primary),var(--lg-deep));color:#fff;font-size:15.5px;font-weight:900;box-shadow:0 14px 28px color-mix(in srgb,var(--lg-primary) 34%,transparent);transition:transform .15s,filter .2s,box-shadow .2s}
.auth-submit-btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.04)}
.auth-submit-btn:disabled,.lg-social-btn:disabled{cursor:wait}
.auth-submit-btn:disabled{opacity:.7}
.auth-submit-btn.is-loading:before{content:"";display:inline-block;width:15px;height:15px;margin-right:9px;vertical-align:-2px;border-radius:50%;border:2.5px solid rgba(255,255,255,.45);border-top-color:#fff;animation:lgSpin .7s linear infinite}
@keyframes lgSpin{to{transform:rotate(360deg)}}

/* มุมมองลืมรหัสผ่าน / ตั้งรหัสผ่านใหม่ */
.lg-back{background:none;padding:4px 0;margin-bottom:6px;color:var(--muted);font-size:13px;font-weight:700}
.lg-back:hover{color:var(--lg-deep)}
.lg-view-title{margin:0 0 6px;font-size:20px;font-weight:900;color:var(--ink)}
.lg-view-text{margin:0 0 16px;font-size:13px;line-height:1.65;color:var(--muted)}

/* ข้อความสถานะ */
.auth-message{margin-top:14px;padding:11px 14px;border-radius:13px;font-size:13px;line-height:1.6;background:#f4efff;color:#514080;word-break:break-word}
.auth-message:empty{display:none}
.auth-message.is-success{background:#e8f8ef;color:#176b43}
.auth-message.is-error{background:#fff0f4;color:#b42355}
.lg-resend{display:block;margin:8px auto 0}
.auth-line-hint{margin:14px 4px 0;text-align:center;font-size:11.5px;line-height:1.65;color:var(--muted)}

/* จอแคบ: ซ่อนฝั่งซ้าย แสดงมาสคอตเล็กในการ์ด */
@media(max-width:860px){
  #authGate{padding-top:max(14px,env(safe-area-inset-top));padding-bottom:max(14px,env(safe-area-inset-bottom))}
  .lg-shell{grid-template-columns:minmax(0,1fr);max-width:470px}
  .lg-hero{display:none}
  .lg-mascot-small{display:block;width:76px;height:76px;margin:-6px auto 10px}
  .lg-mascot-small.lg-mascot-fallback{display:grid}
  .lg-card{padding:22px 18px;border-radius:26px}
}
@media(max-height:700px) and (max-width:860px){
  .lg-mascot-small{width:56px;height:56px;margin-bottom:6px}
  .lg-card-head{margin-bottom:12px}
  .auth-line-hint{display:none}
}

/* Dark mode */
html[data-ui-theme="dark"] #authGate{background:radial-gradient(ellipse at 15% 8%,rgba(125,224,174,.10),transparent 42%),radial-gradient(ellipse at 90% 10%,rgba(161,138,255,.16),transparent 46%),linear-gradient(160deg,#17151f,#1d1a28 60%,#14121c)}
html[data-ui-theme="dark"] #authGate .login-background-tint{background:none}
html[data-ui-theme="dark"] .lg-card{background:rgba(36,32,50,.84);border-color:rgba(255,255,255,.12);box-shadow:0 24px 60px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.08)}
html[data-ui-theme="dark"] .lg-eyebrow,html[data-ui-theme="dark"] .lg-points li{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.12);color:#f1f7f3;box-shadow:none}
html[data-ui-theme="dark"] .lg-points li span{background:rgba(255,255,255,.1)}
html[data-ui-theme="dark"] .lg-hero-title,html[data-ui-theme="dark"] .lg-card-head .auth-heading,html[data-ui-theme="dark"] .lg-view-title,html[data-ui-theme="dark"] .lg-form label{color:#f1f7f3}
html[data-ui-theme="dark"] .lg-card-head .auth-subheading,html[data-ui-theme="dark"] .lg-view-text,html[data-ui-theme="dark"] .lg-field-row small,html[data-ui-theme="dark"] .auth-divider,html[data-ui-theme="dark"] .auth-line-hint,html[data-ui-theme="dark"] .lg-back{color:#aabbb3}
html[data-ui-theme="dark"] .lg-tabs{background:rgba(255,255,255,.07)}
html[data-ui-theme="dark"] .lg-tab{color:#aabbb3}
html[data-ui-theme="dark"] .lg-tab.is-active{background:rgba(255,255,255,.14);color:#f1f7f3;box-shadow:none}
html[data-ui-theme="dark"] .lg-form input{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.16);color:#f1f7f3}
html[data-ui-theme="dark"] .lg-form input::placeholder{color:#7f8a95}
html[data-ui-theme="dark"] .lg-pw-toggle:hover{background:rgba(255,255,255,.1)}
html[data-ui-theme="dark"] .lg-link{color:#7de0ae}
html[data-ui-theme="dark"] .lg-social-btn.lg-google-btn{background:rgba(255,255,255,.1)!important;color:#f1f7f3!important;border-color:rgba(255,255,255,.18)!important;box-shadow:none!important}
html[data-ui-theme="dark"] .auth-message{background:rgba(161,138,255,.16);color:#d8cfff}
html[data-ui-theme="dark"] .auth-message.is-success{background:rgba(125,224,174,.14);color:#9fe8c4}
html[data-ui-theme="dark"] .auth-message.is-error{background:rgba(255,131,173,.15);color:#ffb3cc}
html[data-ui-theme="dark"] #authGate .lg-social-btn.line-auth-btn{background:#06c755!important;color:#fff!important;border:0!important}
html[data-ui-theme="dark"] .lg-mascot{border-color:rgba(255,255,255,.2)}

@media(prefers-reduced-motion:reduce){
  #authGate .login-floating-decor span{animation:none}
  .auth-submit-btn.is-loading:before{animation-duration:2s}
  .lg-social-btn,.auth-submit-btn,.lg-tab{transition:none}
}

/* ================================================================
   หน้า “บัญชีของฉัน” → ข้อมูลการเข้าสู่ระบบ: สถานะรออีเมลยืนยัน + ไอคอน Google
   ================================================================ */
.account-pending{display:flex;align-items:center;gap:12px;margin:12px 0 0;padding:12px 14px;border-radius:16px;background:#fff7e6;border:1px solid #ffe2b0}
.account-pending-icon{font-size:20px;flex-shrink:0}
.account-pending-copy{flex:1;min-width:0}
.account-pending-copy strong{display:block;font-size:13px;color:var(--ink);word-break:break-all}
.account-pending-copy small{display:block;margin-top:2px;font-size:11.5px;line-height:1.55;color:var(--muted)}
.account-pending .btn{flex-shrink:0;min-height:38px;padding:0 14px;font-size:12.5px}
.google-info-icon{display:grid;place-items:center;font-weight:900;font-size:18px;color:#4285f4;background:#fff;border:1.5px solid #e4e1f0}
html[data-ui-theme="dark"] .account-pending{background:rgba(255,190,90,.10);border-color:rgba(255,190,90,.28)}
html[data-ui-theme="dark"] .account-pending-copy strong{color:#f1f7f3}
html[data-ui-theme="dark"] .account-pending-copy small{color:#aabbb3}
html[data-ui-theme="dark"] .google-info-icon{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18)}
@media(max-width:640px){
  .account-pending{flex-wrap:wrap}
  .account-pending-copy{flex-basis:calc(100% - 44px)}
  .account-pending .btn{width:100%}
}
