/* Authentication pages: readable inputs and touch targets without blocking zoom. */
body { min-height:100vh; min-height:100dvh; }
.card { min-width:0; width:100%; max-width:420px; }
label,.subtitle,.terms,.requirements .req-item { font-size:14px; }
input[type="text"],input[type="email"],input[type="password"] { font-size:16px; min-height:48px; min-width:0; }
.btn,#loginBtn,#registerBtn,#confirmBtn { min-height:48px; font-size:16px; white-space:normal; }
.links { display:flex; flex-wrap:wrap; gap:8px 16px; }
.links .link,.login-prompt a,.back-link { display:inline-flex; align-items:center; min-height:44px; font-size:15px; }
.alert { overflow-wrap:anywhere; }
.password-toggle { margin-top:6px; min-height:44px; padding:8px 12px; border:1px solid var(--color-border); border-radius:4px; background:var(--color-surface); color:var(--color-text); font:inherit; font-size:14px; cursor:pointer; }
a:focus-visible,button:focus-visible,input:focus-visible { outline:2px solid var(--color-primary); outline-offset:3px; }
@media(max-width:480px),(max-height:600px) {
  body { align-items:flex-start; padding:20px 12px; }
  .card { padding:22px 18px; }
  .otp-container { gap:6px; }
  .otp-input { flex:1 1 0; min-width:0; max-width:44px; width:100%; }
}
