/* ============================================================
   abzu-forms.css — shared form behaviour styling (write once).
   Loaded by every page with a sign-up / Stay-Connected / request
   form. Pairs with abzu-forms.js. Colors explicit (brand tokens)
   so it renders identically regardless of each page's theme vars.
   ============================================================ */

.abzu-req {
  display:inline-block; font-size:10px; font-weight:600; letter-spacing:1px;
  text-transform:uppercase; color:#C9A449; margin-left:6px; vertical-align:middle; opacity:0.9;
}
.abzu-opt {
  display:inline-block; font-size:10px; font-weight:600; letter-spacing:1px;
  text-transform:uppercase; color:#7A8FA6; margin-left:6px; vertical-align:middle;
}
.abzu-field-err { display:none; margin-top:6px; font-size:12.5px; color:#E07A5F; line-height:1.4; }
.abzu-field-err.show { display:block; }
.abzu-invalid { border-color:#E07A5F !important; }

/* Full-screen "please hold" overlay for auth redirects. */
#abzu-overlay {
  position:fixed; inset:0; z-index:100000; display:none;
  align-items:center; justify-content:center; background:rgba(7,15,24,0.93);
  backdrop-filter:blur(2px);
}
#abzu-overlay.show { display:flex; }
#abzu-overlay .abzu-ov-card { text-align:center; max-width:400px; padding:36px 28px; }
#abzu-overlay .abzu-spinner {
  width:42px; height:42px; margin:0 auto 22px;
  border:3px solid rgba(201,164,73,0.25); border-top-color:#C9A449; border-radius:50%;
  animation:abzu-spin 0.9s linear infinite;
}
@keyframes abzu-spin { to { transform:rotate(360deg); } }
#abzu-overlay .abzu-ov-title { color:#C9A449; font-family:Georgia,serif; font-size:20px; letter-spacing:0.4px; margin-bottom:10px; }
#abzu-overlay .abzu-ov-msg { color:#D8E8F4; font-size:14px; line-height:1.6; }
