/* ── Auth page: split layout ── */
.auth-page{min-height:100vh;display:flex;overflow:hidden}
.auth-brand{width:44%;background:linear-gradient(160deg,#06261e 0%,#064a38 40%,#008060 100%);display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0}
.auth-brand::after{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='40' height='40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 20h40M20 0v40' stroke='%23fff' stroke-opacity='.03' stroke-width='.5'/%3E%3C/svg%3E");pointer-events:none}
.ab-inner{position:relative;z-index:1;padding:48px;max-width:400px;color:#fff}
.ab-logo{display:flex;align-items:center;gap:10px;margin-bottom:48px}
.ab-icon{width:36px;height:36px;border-radius:10px;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;flex-shrink:0;backdrop-filter:blur(4px)}
.ab-logo span{font-size:20px;font-weight:600;letter-spacing:-.3px}
.ab-slogan{font-size:30px;font-weight:600;line-height:1.25;letter-spacing:-.5px;margin-bottom:36px}
.ab-features{display:flex;flex-direction:column;gap:16px;margin-bottom:48px}
.ab-feat{display:flex;align-items:center;gap:12px;font-size:14px;color:rgba(255,255,255,.8)}
.ab-feat-dot{width:8px;height:8px;border-radius:50%;background:#5cebba;flex-shrink:0}
.ab-trust{font-size:13px;color:rgba(255,255,255,.4);padding-top:20px;border-top:1px solid rgba(255,255,255,.08)}

/* ── Brand stats ── */
.ab-stats{display:flex;gap:20px;margin-bottom:28px}
.ab-stat{text-align:center;flex:1}
.ab-stat-val{font-size:22px;font-weight:700;color:#5cebba}
.ab-stat-label{font-size:11px;color:rgba(255,255,255,.5);margin-top:2px}

/* ── Brand pricing teaser ── */
.ab-pricing{margin-bottom:28px;padding:14px 16px;border-radius:8px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08)}
.ab-pricing-title{font-size:13px;font-weight:600;color:#5cebba;margin-bottom:8px}
.ab-pricing-items{display:flex;flex-direction:column;gap:4px;font-size:12px;color:rgba(255,255,255,.65)}

/* ── Social login ── */
.btn-social{width:100%;padding:11px;border-radius:10px;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .15s;cursor:pointer}
.btn-google{background:#fff;border:1px solid var(--bd);color:var(--t1)}
.btn-google:hover{background:#f7f7f7;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.social-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--t3);font-size:12px}
.social-divider::before,.social-divider::after{content:'';flex:1;height:1px;background:var(--bd2)}

/* ── Registration success ── */
.reg-success{text-align:center;padding:20px 0}
.reg-success .rs-icon{width:48px;height:48px;border-radius:50%;background:var(--bgg);color:var(--c1);font-size:24px;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.reg-success h3{font-size:20px;font-weight:600;margin-bottom:6px}
.reg-success p{font-size:14px;color:var(--t2);margin-bottom:4px}
.reg-success .rs-note{font-size:13px;color:var(--t3);margin-bottom:20px}

/* ── Form side ── */
.auth-form-side{flex:1;display:flex;align-items:center;justify-content:center;padding:32px;background:#f7f9f8}
.auth-card{width:100%;max-width:420px;animation:authIn .3s ease}
.auth-card h1{font-size:26px;font-weight:600;margin-bottom:4px;letter-spacing:-.4px}
.auth-card .sub{color:var(--t2);margin-bottom:28px;font-size:14px}

/* Mobile logo (hidden on desktop) */
.ac-logo-m{display:none;align-items:center;gap:8px;margin-bottom:28px}
.ac-logo-m span{font-size:18px;font-weight:600}

/* ── Input wrap ── */
.input-wrap{position:relative;display:flex;align-items:center}
.input-wrap .input{padding-right:40px}
.auth-card .input{padding:11px 14px;font-size:14px;border-radius:8px;transition:border .15s,box-shadow .15s}
.auth-card .input:focus{border-color:var(--c1);box-shadow:0 0 0 3px rgba(0,128,96,.1)}
.auth-card .field{margin-bottom:20px}
.auth-card .field>label{font-size:11px;font-weight:600;color:var(--t2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;display:block;cursor:pointer}

/* ── Password toggle ── */
.pwd-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:0;background:transparent;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--t3);transition:color .15s}
.pwd-toggle:hover{color:var(--t1)}
.pwd-toggle::before{content:'';display:block;width:18px;height:18px;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%238c99a6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") no-repeat center/contain}
.pwd-toggle.showing::before{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%238c99a6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17.94 17.94A10.07 10.07 0 0112 20c-7 0-11-8-11-8a18.45 18.45 0 015.06-5.94M9.9 4.24A9.12 9.12 0 0112 4c7 0 11 8 11 8a18.5 18.5 0 01-2.16 3.19m-6.72-1.07a3 3 0 11-4.24-4.24'/%3E%3Cline x1='1' y1='1' x2='23' y2='23'/%3E%3C/svg%3E")}

/* ── Password strength ── */
.pwd-strength{margin-top:8px;display:flex;align-items:center;gap:8px}
.pwd-bar{display:flex;gap:3px;flex:1}
.pwd-bar span{height:4px;border-radius:2px;flex:1;background:var(--bd);transition:background .2s}
.pwd-strength.str-weak .pwd-bar span:nth-child(1){background:#c9372c}
.pwd-strength.str-med .pwd-bar span:nth-child(1),.pwd-strength.str-med .pwd-bar span:nth-child(2){background:#946f00}
.pwd-strength.str-strong .pwd-bar span{background:#1f845a}
.pwd-label{font-size:11px;color:var(--t3);min-width:42px}

/* ── Verification code ── */
.code-row{display:flex;gap:8px}
.code-row .input-wrap{flex:1}
.code-input{letter-spacing:6px;font-size:16px;font-weight:600}
.btn-code{border-color:var(--c1);color:var(--c1);background:transparent;font-weight:600;white-space:nowrap;transition:all .15s;padding:10px 16px}
.btn-code:hover{background:var(--c1);color:#fff}
.btn-code:disabled{border-color:var(--bd);color:var(--t3);background:transparent;cursor:default}
.code-sent-msg{font-size:12px;color:var(--c1);margin-top:6px;display:none}
.code-sent-msg.visible{display:block}

/* ── Field error ── */
.field-err{font-size:12px;color:var(--red);margin-top:4px;display:none;line-height:1.3}
.field-err.visible{display:block}
.field.has-err .input{border-color:var(--red);box-shadow:0 0 0 2px rgba(201,55,44,.1)}

/* ── TOS ── */
.tos-label{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--t2);cursor:pointer;line-height:1.4}
.tos-label input{margin-top:2px;accent-color:var(--c1)}
.tos-label a{color:var(--c1);text-decoration:underline}

/* ── Submit button ── */
.btn-submit{width:100%;padding:13px;font-size:15px;justify-content:center;border-radius:10px;font-weight:600;position:relative;transition:all .15s}
.btn-submit:disabled{opacity:.65;cursor:not-allowed}
.btn-spin{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── Lockout message ── */
.lockout-msg{text-align:center;font-size:13px;color:var(--red);margin-top:12px;font-weight:500}

/* ── Switch links ── */
.auth-card .switch{text-align:center;margin-top:16px;font-size:13px;color:var(--t2)}
.auth-card .switch a{color:var(--c1);cursor:pointer;font-weight:500}
.auth-card .switch a:hover{text-decoration:underline}
#forgot-link{margin-top:20px}

/* ── Top-right language switcher ── */
.auth-lang-top{position:fixed;top:16px;right:20px;z-index:10}

/* ── Fade animation ── */
@keyframes authIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.auth-fade{animation:authIn .2s ease}

/* ── Responsive ── */
@media(max-width:900px){
  .auth-brand{display:none}
  .auth-form-side{padding:24px}
  .ac-logo-m{display:flex}
}
@media(max-width:480px){
  .auth-card{padding:0 4px}
  .auth-card h1{font-size:22px}
}
