/* ═══ Sign-up specific ═════════════════════════════════════════ */

/* ─── Brand logo hard cap — 2026-06-09 ─────────────────────────
   Prevents oversized brand uploads (e.g. full mascot art at
   native pixel dimensions) from flooding the showcase area. */
.abl-brand-logo {
  height: 38px !important;
  max-height: 38px !important;
  max-width: 180px !important;
  width: auto !important;
  object-fit: contain !important;
}
.abl-mob-brand img {
  height: 34px !important;
  max-height: 34px !important;
  max-width: 160px !important;
  width: auto !important;
  object-fit: contain !important;
}
/* Input padding rebalance — abl-auth.css ships padding 22/16/6 for the
   label-inside layout, but the floated-label override moves the label
   above the field, leaving typed text glued to the bottom. */
.abl-form .abl-field input {
  padding-top: 14px !important;
  padding-bottom: 14px !important;
}

/* Allow scroll for taller form */
.abl-root-su { min-height: 100vh; }
.abl-stage-su { min-height: 100vh; padding-top: 90px; padding-bottom: 60px; align-items: flex-start; }
.abl-side-su { padding-top: 0; }

/* Two-column field rows */
.abl-two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

/* The hidden trap field: off-screen, out of the tab order, silent to screen readers */
.abl-trap { position: absolute !important; left: -10000px !important; top: auto !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

/* Google / Facebook on top of the form, then «or with your email» */
.abl-social--top { margin: 0 0 4px; }

/* Terms checkbox row */
.abl-terms {
  font-size: 12.5px !important;
  align-items: flex-start !important;
  line-height: 1.55 !important;
  margin-top: 4px !important;
  white-space: normal !important;
}
.abl-terms .abl-cbx { margin-top: 1px; flex-shrink: 0; }
.abl-terms a {
  color: var(--abl-mesh-1);
  text-decoration: none;
  font-weight: 700;
}
.abl-terms a:hover { text-decoration: underline; }

/* ═══ Showcase feature cards ═══ */
.abl-floats { height: 380px !important; }
.abl-su-feat {
  display: flex !important;
  align-items: center;
  gap: 13px;
  padding: 14px 16px !important;
  width: 270px !important;
}
.abl-su-feat-1 { top: 0;     inset-inline-start: 0;   }
.abl-su-feat-2 { top: 30px;  inset-inline-end: 0;     }
.abl-su-feat-3 { bottom: 170px; inset-inline-start: 30px; } /* raised to sit closer to the top pair */
.abl-su-feat-4 { bottom: 90px;  inset-inline-end: 20px;  } /* raised to sit closer to the top pair */

.abl-su-feat-ico {
  width: 40px; height: 40px;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px;
  color: var(--c);
  background: color-mix(in srgb, var(--c) 18%, transparent);
  border: 1px solid color-mix(in srgb, var(--c) 28%, transparent);

  flex-shrink: 0;
}
.abl-su-feat-body { flex: 1; min-width: 0; }
.abl-su-feat-t {
  font-size: 13px;
  font-weight: 700;
  color: var(--abl-text);
  margin-bottom: 2px;
}
.abl-su-feat-d {
  font-size: 11.5px;
  color: var(--abl-subtext);
  line-height: 1.4;
}

/* Body scroll fix for taller signup */
body.bg-info-light-alt,
body.gradient,
body { overflow-y: auto !important; }

@media (max-width: 1100px) {
  .abl-floats { display: none !important; }
}
@media (max-width: 580px) {
  .abl-two-col { grid-template-columns: 1fr; }
  /* Phone field is cramped on mobile — collapse the "needs verify" badge to
     just its icon so it never overlaps the typed number. */
  .abl-phone-status > span { display: none !important; }
  .abl-phone-status { padding: 5px 7px !important; right: 10px !important; gap: 0 !important; }
}

/* ─── Phone field + status badge ────────────────────────────────── */
.pv-hidden { display: none !important; }
.abl-phone-status {
  position: absolute;
  top: 50%;
  right: 14px;
  left: auto;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 50px;
  font-size: 10.5px;
  font-weight: 700;
  background: rgba(245,158,11,.12);
  color: #f59e0b;
  border: 1px solid rgba(245,158,11,.25);
  letter-spacing: .2px;
  pointer-events: none;
  z-index: 2;
}
.abl-phone-status i { font-size: 10px; }
.abl-phone-status.su-verified {
  background: rgba(34,197,94,.12);
  color: #22c55e;
  border-color: rgba(34,197,94,.25);
}

/* intl-tel-input adopts our look (same as phone_verify) */
.iti { width: 100%; display: block; }
.pv-field-tel {
  position: relative;
  transition: border-color .25s, background .25s, box-shadow .25s;
}
.pv-field-tel.pv-valid {
  border-color: #22c55e !important;

}
.pv-field-tel.pv-invalid {
  border-color: #ef4444 !important;

}
/* Phone field: STATIC label above the input (no floating) */
.abl-field.pv-field-tel { margin-top: 26px !important; }
/* Force the phone input region to LTR */
.abl-field.pv-field-tel .iti,
.abl-field.pv-field-tel .iti * { direction: ltr !important; }
[dir="rtl"] .abl-field.pv-field-tel .iti__country-container {
  left: 0 !important;
  right: auto !important;
}
[dir="rtl"] .abl-field.pv-field-tel .iti__selected-country {
  border-inline-end: 1.5px solid var(--abl-border-s, var(--abl-border)) !important;
  border-inline-start: none !important;
}
.abl-field.pv-field-tel input[type="tel"],
[dir="rtl"] .abl-field.pv-field-tel input[type="tel"],
[dir="rtl"] .abl-field.pv-field-tel .iti--separate-dial-code .iti__tel-input {
  width: 100% !important; height: 58px !important;
  background: transparent !important; border: none !important; outline: none !important;
  padding: 20px 50px 20px 130px !important;
  font-size: 15px !important; font-weight: 600 !important;
  color: var(--abl-text) !important; font-family: inherit !important;
  border-radius: 14px !important;
  direction: ltr !important;
  text-align: left !important;
  letter-spacing: .3px !important;
  line-height: 1 !important;
  vertical-align: middle !important;
}
.abl-field.pv-field-tel input[type="tel"]::placeholder {
  color: var(--abl-subtext) !important;
  opacity: .55 !important;
  font-weight: 500 !important;
  letter-spacing: .3px !important;
}
.abl-field.pv-field-tel label {
  position: absolute !important;
  top: -22px !important;
  inset-inline-start: 2px !important;
  inset-inline-end: auto !important;
  transform: none !important;
  font-size: 11px !important;
  color: var(--abl-subtext) !important;
  pointer-events: none !important;
  font-weight: 800 !important;
  letter-spacing: .5px !important;
  text-transform: uppercase !important;
  margin: 0 !important;
  z-index: 1 !important;
  transition: color .22s !important;
  line-height: 1 !important;
}
.abl-field.pv-field-tel:focus-within label,
.abl-field.pv-field-tel.pv-valid label {
  color: var(--abl-mesh-1) !important;
}
.abl-field.pv-field-tel.pv-invalid label {
  color: #ef4444 !important;
}
.iti__selected-country,
.iti__selected-country-primary {
  background: transparent !important;
  border: none !important;
  padding: 0 12px !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.iti__selected-country {
  border-inline-end: 1.5px solid var(--abl-border-s, var(--abl-border)) !important;
  width: auto !important;
}
[dir="rtl"] .iti__selected-country {
  border-inline-end: none !important;
  border-inline-start: 1.5px solid var(--abl-border-s, var(--abl-border)) !important;
}
.iti__arrow { color: var(--abl-subtext) !important; opacity: .55; margin-inline-start: 4px !important; }
.iti__selected-dial-code {
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--abl-text) !important;
  background: transparent !important;
  padding: 0 !important;
  margin-inline-start: 6px !important;
  font-family: inherit !important;
  letter-spacing: .3px !important;
  line-height: 1 !important;
  display: inline-block !important;
  vertical-align: middle !important;
}
/* Country dropdown — SOLID bg + high z-index, minimal layout override */
.iti__dropdown-content { z-index: 99999 !important; }
:root[data-abl-theme="dark"] .iti__dropdown-content {
  background: #1c1c20 !important;
  border: 1px solid rgba(255,255,255,.14) !important;

  color: #fafafa !important;
}
:root[data-abl-theme="light"] .iti__dropdown-content {
  background: #ffffff !important;
  border: 1px solid #e5e7f0 !important;

  color: #1a1f2e !important;
}
:root[data-abl-theme="dark"] .iti__country-list { background: #1c1c20 !important; }
:root[data-abl-theme="light"] .iti__country-list { background: #ffffff !important; }
:root[data-abl-theme="dark"] .iti__country { color: #fafafa !important; }
:root[data-abl-theme="light"] .iti__country { color: #1a1f2e !important; }
:root[data-abl-theme="dark"] .iti__country:hover,
:root[data-abl-theme="dark"] .iti__country.iti__highlight {
  background: #2c2c33 !important; color: #fafafa !important;
}
:root[data-abl-theme="light"] .iti__country:hover,
:root[data-abl-theme="light"] .iti__country.iti__highlight {
  background: #f4f6fb !important; color: #1a1f2e !important;
}
:root[data-abl-theme="dark"] .iti__search-input {
  background: rgba(255,255,255,.04) !important;
  color: #fafafa !important;
  border-color: rgba(255,255,255,.12) !important;
}
:root[data-abl-theme="light"] .iti__search-input {
  background: #f7f8fc !important;
  color: #1a1f2e !important;
  border-color: #d8dce8 !important;
}
:root[data-abl-theme="dark"] .iti__dial-code { color: #888888 !important; }
:root[data-abl-theme="light"] .iti__dial-code { color: #64748b !important; }
.iti__arrow { color: var(--abl-subtext) !important; opacity: .55; margin-inline-start: 4px !important; }

/* OTP inline step inside signup */
.su-otp-step {
  margin-top: 4px;
  padding: 18px;
  background: var(--abl-card-2);
  border: 1px solid var(--abl-border);
  border-radius: 16px;
  animation: ablFadeIn .4s ease-out;
}
.su-otp-head {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 14px;
}
.su-otp-head i { font-size: 22px; flex-shrink: 0; }
.su-otp-title { font-size: 14px; font-weight: 700; color: var(--abl-text); }
.su-otp-sub   { font-size: 12px; color: var(--abl-subtext); margin-top: 2px; }
.su-otp-sub strong { color: var(--abl-text); font-weight: 600; }

.su-otp-step .abl-otp-boxes { margin: 10px 0 12px; }
.su-otp-step .abl-otp-foot {
  margin: 0;
  gap: 10px;
  flex-wrap: wrap;
}
.su-otp-change {
  color: var(--abl-subtext);
  font-size: 11px;
}

/* Flash error inside form */
.su-flash-err {
  transition: opacity .5s;
}
.su-flash-err.abl-fadeout { opacity: 0; }

/* ─── ALL fields: floated labels sit ABOVE the field (not inside it).
   Same behaviour as the login screen + the phone-mode label so every
   input — name, email, password, confirm-password — gets the same
   heading-above look as soon as the customer focuses or types. */
.abl-form .abl-field {
  margin-top: 26px !important;
  overflow: visible !important;
}
.abl-form .abl-field.abl-filled label,
.abl-form .abl-field input:focus + label {
  top: -22px !important;
  left: 4px !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 1.1px !important;
  text-transform: uppercase !important;
  color: var(--abl-mesh-1, #a78bfa) !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  white-space: nowrap !important;
  line-height: 1 !important;
}
[dir="rtl"] .abl-form .abl-field.abl-filled label,
[dir="rtl"] .abl-form .abl-field input:focus + label,
html[dir="rtl"] .abl-form .abl-field.abl-filled label,
html[dir="rtl"] .abl-form .abl-field input:focus + label {
  left: auto !important;
  right: 4px !important;
}
