/* ============================================================
   AIDE — auth surfaces (/signup, /login). Hand-written; the
   vendor script never regenerates this file. Uses the design
   system's own tokens so these pages are indistinguishable
   from the rest of the site.
   ============================================================ */

/* inline form error — the page's own voice, never a browser alert */
.formerr{
  display:none;
  margin:var(--space-1) 0 14px;
  padding:var(--space-3) 14px;
  border-radius:var(--radius-ctl-sm);
  border:1px solid rgba(248,113,113,.35);
  background:rgba(248,113,113,.08);
  color:#fca5a5;
  font-size:var(--text-body);
  line-height:1.45;
}
.formerr.on{display:block}

/* busy state while the request is in flight */
.btn[aria-busy="true"]{opacity:.62;pointer-events:none}

/* ---------- Terms/Privacy consent on signup (phase 14) ---------- */
.agree{
  display:flex;gap:11px;align-items:flex-start;
  margin:var(--space-1) 0 var(--space-4);font-size:var(--text-meta-lg);line-height:1.5;color:var(--muted);cursor:pointer;
}
.agree input{
  flex:none;margin-top:2px;width:17px;height:17px;
  accent-color:var(--accent);cursor:pointer;
}
.agree input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.agree a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}

/* ---------- /login ---------- */
.authpage{max-width:460px;margin:0 auto;position:relative;z-index:1}
.authpage .field{margin-bottom:var(--space-4)}
.authpage .field label{display:block;font-size:var(--text-meta-lg);font-weight:600;color:var(--muted);margin-bottom:var(--space-2)}
/* "Forgot password?" — sits under its own field, right-aligned, quiet enough
   not to compete with the primary action but a real target on touch */
.authpage .field .fieldlink{display:block;text-align:right;margin-top:var(--space-2);
  font-size:13.5px;color:var(--muted);text-decoration:none;transition:color var(--dur-fast) var(--ease)}
.authpage .field .fieldlink:hover{color:var(--text)}
.authpage .field input{
  width:100%;font-family:var(--font);font-size:var(--text-ui);color:var(--text);
  background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-ctl-sm);
  padding:13px 14px;transition:border-color .2s ease,box-shadow .2s ease;
}
.authpage .field input::placeholder{color:#5b6675}
.authpage .field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(79,140,255,.2)}
.field__hint{font-size:var(--text-meta);color:var(--muted);margin:6px 0 0;line-height:1.45}
.authpage__note{font-size:var(--text-body);color:var(--muted);text-align:center;margin-top:18px}

/* touch targets (responsive audit, 23 Sep 2026) */
@media (max-width:720px){
  .authpage .field .fieldlink{display:flex;justify-content:flex-end;align-items:center;min-height:var(--hit-min)}
  .authpage__note a{display:inline-flex;align-items:center;min-height:var(--hit-min)}
}
