/* Login / register / two-factor. Builds on portal.css (tokens, .btn, .fld, .alert, .theme). */
.auth{min-height:100vh}
.au{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:16px;min-height:100vh;padding:16px}

/* Photo panel */
.au-side{position:relative;border-radius:var(--r-lg);overflow:hidden;background:#3a342f;min-height:calc(100vh - 32px);position:sticky;top:16px;height:calc(100vh - 32px)}
.au-side>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.au-side::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,18,16,.35),rgba(20,18,16,0) 35%,rgba(20,18,16,.55))}
.au-brand{position:absolute;z-index:2;top:22px;left:22px;display:flex;align-items:center;gap:12px;padding:6px 18px 6px 6px;border-radius:999px;background:rgba(255,255,255,.16);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.3);color:#fff}
.au-brand .logo-mark{width:36px;height:36px;border-radius:50%;background-color:rgba(29,26,24,.55)}
.au-brand strong{display:block;font-size:14px;letter-spacing:.18em;font-weight:600;line-height:1.1}
.au-brand em{display:block;font-style:normal;font-size:11.5px;opacity:.8}
.au-glass{position:absolute;z-index:2;left:22px;right:22px;bottom:22px;background:rgba(255,255,255,.14);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.28);border-radius:var(--r-lg);padding:28px 28px 24px;color:#fff}
.au-eyebrow{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;opacity:.8}
.au-glass h2{font-size:clamp(24px,2.4vw,34px);font-weight:400;letter-spacing:-0.02em;line-height:1.15;margin-top:10px;max-width:16ch}
.au-glass>p:not(.au-eyebrow){margin-top:12px;font-size:14.5px;line-height:1.6;color:rgba(255,255,255,.88);max-width:46ch}
.au-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.22)}
.au-stats div+div{padding-left:16px;border-left:1px solid rgba(255,255,255,.22)}
.au-stats strong{display:block;font-size:24px;font-weight:400;letter-spacing:-0.02em}
.au-stats span{font-size:12px;opacity:.78}

/* Form side */
.au-main{display:flex;flex-direction:column;background:var(--card);border-radius:var(--r-lg);padding:18px 22px;min-width:0;box-shadow:var(--shadow)}
.au-top{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.au-back{font-size:13.5px;color:var(--muted);padding:8px 4px;transition:color .2s}
.au-back:hover{color:var(--ink)}
.au-topr{display:flex;align-items:center;gap:14px}
.au-switch{font-size:13.5px;color:var(--muted)}
.au-switch a{color:var(--ink);font-weight:500;margin-left:4px;padding:9px 16px;border-radius:999px;background:var(--soft);transition:background-color .2s}
.au-switch a:hover{background:var(--line)}
.au-body{flex:1;display:flex;align-items:center;justify-content:center;padding:36px 0}
.au-card{width:100%;max-width:430px}
.au-mobile-mark{display:none}
.au-card h1{font-size:clamp(28px,3vw,36px);font-weight:400;letter-spacing:-0.03em;line-height:1.1}
.au-lead{color:var(--muted);margin-top:10px;font-size:14.5px}
.au-card .alert{margin-top:22px}

.au-google{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:52px;margin-top:28px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-weight:500;cursor:pointer;transition:border-color .2s,background-color .2s}
.au-google:hover{border-color:var(--ink);background:var(--soft)}
.au-google svg{width:20px;height:20px}
.au-google.is-off{opacity:.55;cursor:not-allowed}
.au-google.is-off:hover{border-color:var(--line);background:var(--card)}
.au-note{font-size:12px;color:var(--muted);text-align:center;margin-top:8px}
.au-or{display:flex;align-items:center;gap:14px;margin:24px 0 20px;font-size:12.5px;color:var(--muted)}
.au-or::before,.au-or::after{content:'';flex:1;height:1px;background:var(--line)}

.au-form{display:flex;flex-direction:column;gap:14px}
.au-form .fld>span:first-child{display:flex;justify-content:space-between;align-items:baseline}
.au-form .fld>span:first-child a{font-weight:400;font-size:12.5px;color:var(--muted)}
.au-in{position:relative;display:block}
.au-in>.ic{position:absolute;left:16px;top:50%;margin-top:-9px;color:var(--muted);pointer-events:none}
.au-in input{height:52px;padding-left:46px!important;border-radius:999px!important}
.au-in input:focus+.ic,.au-in input:focus~.ic{color:var(--ink)}
.au-eye{position:absolute;right:6px;top:6px;width:40px;height:40px;border-radius:50%;border:0;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer}
.au-eye:hover{background:var(--card);color:var(--ink)}
.au-eye svg{width:18px;height:18px}
.au-in input[type="password"],.au-in input.has-eye{padding-right:52px!important}
.au-meter{display:flex;gap:4px;margin-top:2px}
.au-meter i{flex:1;height:4px;border-radius:99px;background:var(--line);transition:background-color .25s}
.au-meter[data-s="1"] i:nth-child(-n+1){background:var(--bad)}
.au-meter[data-s="2"] i:nth-child(-n+2){background:var(--warn)}
.au-meter[data-s="3"] i:nth-child(-n+3){background:#7f9b52}
.au-meter[data-s="4"] i{background:var(--ok)}
.au-hint{font-size:12px;color:var(--muted)}
.au-row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:13px}
.au-check{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--muted);line-height:1.5;cursor:pointer}
.au-check input{width:18px;height:18px;margin-top:1px;accent-color:var(--dark);flex-shrink:0}
.au-check a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.au-submit{height:54px!important;width:100%;margin-top:6px;font-size:15px}
.au-submit[disabled]{opacity:.6;cursor:progress}
.au-alt{text-align:center;font-size:13.5px;color:var(--muted);margin-top:22px}
.au-alt a{color:var(--ink);font-weight:500}
.au-secure{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;color:var(--muted);margin-top:18px}
.au-secure svg{width:14px;height:14px}
.cf-turnstile{min-height:65px}

/* One-time code boxes */
.au-otp{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.au-otp input{height:60px;text-align:center;font-size:24px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--soft);outline:none;transition:border-color .2s,background-color .2s;width:100%;padding:0}
.au-otp input:focus{border-color:var(--accent);background:var(--card)}

/* Honeypot: off-screen for people, still in the DOM for bots */
.hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}

.au-foot{display:flex;justify-content:space-between;gap:16px;font-size:12px;color:var(--muted);padding-top:10px}
.au-foot a:hover{color:var(--ink)}

@media(max-width:960px){
  .au{grid-template-columns:1fr;padding:12px}
  .au-side{display:none}
  .au-main{min-height:calc(100vh - 24px)}
  .au-mobile-mark{display:block;width:48px;height:48px;border-radius:14px;background-size:26px;margin-bottom:22px}
}
@media(max-width:520px){
  .au-main{padding:14px 16px}
  .au-switch{display:none}
  .au-body{padding:24px 0}
  .au-otp{gap:6px}
  .au-otp input{height:52px;font-size:20px}
}

/* "Forgot password?" under the password field */
.au-forgot{margin:-6px 0 0;text-align:right;font-size:13px}
.au-forgot a{color:var(--muted,#6f6862);text-decoration:underline;text-underline-offset:3px}
.au-forgot a:hover{color:inherit}
