/* BibleSlide sign-in screens (wp-login.php). Loaded after WordPress's login.css and
   scoped to body.bs-auth, so nothing else on the site is affected. */
body.login.bs-auth {
  --bs-a-blue: #2563eb;
  --bs-a-violet: #7c3aed;
  --bs-a-indigo: #4f46e5;
  --bs-a-ink: #0f172a;
  --bs-a-text: #1e293b;
  --bs-a-muted: #64748b;
  --bs-a-faint: #94a3b8;
  --bs-a-line: #e2e8f0;
  --bs-a-field: #f8fafc;
  --bs-a-ring: rgba(99, 102, 241, 0.18);
  --bs-a-grad: linear-gradient(135deg, var(--bs-a-blue) 0%, var(--bs-a-violet) 100%);
  min-height: 100vh;
  margin: 0;
  padding: clamp(24px, 6vh, 64px) 16px 40px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #f8fafc;
  color: var(--bs-a-text);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 15px;
  line-height: 1.5;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
body.bs-auth *, body.bs-auth *::before, body.bs-auth *::after { box-sizing: border-box; }

/* Soft SaaS backdrop: colour washes + a faint dot grid that fades out. */
.bs-auth-bg {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(640px circle at 8% -8%, rgba(99, 102, 241, 0.16), transparent 60%),
    radial-gradient(520px circle at 100% 12%, rgba(124, 58, 237, 0.13), transparent 60%),
    radial-gradient(760px circle at 50% 115%, rgba(37, 99, 235, 0.10), transparent 60%);
}
.bs-auth-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(79, 70, 229, 0.13) 1px, transparent 1px);
  background-size: 22px 22px;
  -webkit-mask-image: radial-gradient(ellipse 70% 55% at 50% 30%, #000 20%, transparent 75%);
  mask-image: radial-gradient(ellipse 70% 55% at 50% 30%, #000 20%, transparent 75%);
}

/* Brand block above the card */
.bs-auth-brand { width: 100%; max-width: 452px; margin: 0 auto 22px; text-align: center; }
.bs-auth-logo { display: inline-block; padding: 12px 18px; background: #fff; border: 1px solid rgba(99, 102, 241, 0.10); border-radius: 18px; box-shadow: 0 8px 24px -14px rgba(79, 70, 229, 0.35); }
.bs-auth-logo img { display: block; width: 196px; max-width: 70vw; height: auto; margin: 0 auto; }
.bs-auth-name {
  margin: 14px 0 2px;
  font-size: 24px;
  font-weight: 800;
  letter-spacing: -0.02em;
  background: var(--bs-a-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.bs-auth-tagline { margin: 0; color: var(--bs-a-muted); font-size: 14px; }

/* The card */
body.bs-auth #login {
  width: 100%;
  max-width: 452px;
  margin: 0 auto;
  padding: 34px 34px 26px;
  background: #fff;
  border: 1px solid rgba(99, 102, 241, 0.12);
  border-radius: 22px;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 24px 56px -16px rgba(79, 70, 229, 0.28);
  animation: bs-auth-in 0.45s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}
@keyframes bs-auth-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
body.bs-auth .wp-login-logo { display: none; }

.bs-auth-head { text-align: center; margin: 0 0 26px; }
.bs-auth-head h2 { margin: 0 0 6px; font-size: 26px; line-height: 1.2; font-weight: 750; letter-spacing: -0.02em; color: var(--bs-a-ink); }
.bs-auth-head p { margin: 0; color: var(--bs-a-muted); font-size: 15px; }

/* Form: flat inside the card */
body.bs-auth #login form {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}
body.bs-auth #login form p { margin: 0; }
body.bs-auth #login label { display: block; margin: 0 0 7px; font-size: 14px; font-weight: 600; color: var(--bs-a-text); line-height: 1.4; }
body.bs-auth .user-pass-wrap { margin: 0; }

body.bs-auth #login form .input,
body.bs-auth #login form input[type="text"],
body.bs-auth #login form input[type="email"],
body.bs-auth #login form input[type="password"] {
  width: 100%;
  height: 52px;
  min-height: 52px;
  margin: 0 0 18px;
  padding: 0 16px 0 46px;
  font-family: inherit; /* WordPress uses a monospace font for passwords */
  font-size: 16px; /* 16px stops iOS from zooming into the field */
  line-height: 1.3;
  color: var(--bs-a-ink);
  background-color: var(--bs-a-field);
  border: 1.5px solid var(--bs-a-line);
  border-radius: 14px;
  box-shadow: none;
  transition: border-color 0.15s, box-shadow 0.15s, background-color 0.15s;
}
body.bs-auth #login form input::placeholder { color: var(--bs-a-faint); opacity: 1; }
body.bs-auth #login form input[type="text"]:hover,
body.bs-auth #login form input[type="email"]:hover,
body.bs-auth #login form input[type="password"]:hover { border-color: #cbd5e1; }
body.bs-auth #login form input[type="text"]:focus,
body.bs-auth #login form input[type="email"]:focus,
body.bs-auth #login form input[type="password"]:focus {
  outline: none;
  border-color: var(--bs-a-indigo);
  background-color: #fff;
  box-shadow: 0 0 0 4px var(--bs-a-ring);
}
/* Browser autofill: keep our field colours instead of the browser's yellow/blue */
body.bs-auth #login form input:-webkit-autofill {
  -webkit-text-fill-color: var(--bs-a-ink);
  -webkit-box-shadow: 0 0 0 1000px #eef2ff inset;
  box-shadow: 0 0 0 1000px #eef2ff inset;
}
body.bs-auth #login form input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px #fff inset, 0 0 0 4px var(--bs-a-ring);
  box-shadow: 0 0 0 1000px #fff inset, 0 0 0 4px var(--bs-a-ring);
}

/* Field icons (inline SVG), drawn above the field so autofill can't hide them */
body.bs-auth #login form p:has(> #user_login),
body.bs-auth #login form p:has(> #user_email) { position: relative; }
body.bs-auth #login form p:has(> #user_login)::after,
body.bs-auth #login form p:has(> #user_email)::after,
body.bs-auth #login .wp-pwd::before {
  content: "";
  position: absolute;
  left: 16px;
  z-index: 2;
  width: 20px;
  height: 20px;
  pointer-events: none;
  background: no-repeat center / 20px 20px;
}
body.bs-auth #login form p:has(> #user_login)::after,
body.bs-auth #login form p:has(> #user_email)::after {
  bottom: 34px; /* 18px field margin + (52px field − 20px icon) / 2 */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E");
}
body.bs-auth #login .wp-pwd::before {
  top: 16px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");
}
body.bs-auth.bs-auth-register #login form p:has(> #user_login)::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E");
}

/* Password + show/hide (WordPress's own toggle, restyled) */
body.bs-auth .wp-pwd { position: relative; margin: 0; }
body.bs-auth .wp-pwd input[type="password"],
body.bs-auth .wp-pwd input[type="text"] { padding-right: 54px; }
body.bs-auth #login .button.wp-hide-pw {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 44px;
  height: 44px;
  min-height: 44px;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--bs-a-muted);
  background: transparent;
  border: 0;
  border-radius: 11px;
  box-shadow: none;
  transition: color 0.15s, background-color 0.15s;
}
body.bs-auth #login .button.wp-hide-pw:hover { color: var(--bs-a-indigo); background: #eef2ff; }
body.bs-auth #login .button.wp-hide-pw:focus { outline: none; box-shadow: none; }
body.bs-auth #login .button.wp-hide-pw:focus-visible { box-shadow: 0 0 0 3px var(--bs-a-ring); color: var(--bs-a-indigo); }
body.bs-auth #login .button.wp-hide-pw .dashicons { width: 20px; height: 20px; font-size: 20px; top: 0; }

/* Remember me · Forgot password? */
body.bs-auth #login .forgetmenot {
  float: none;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 8px;
  min-height: 44px;
  margin: -4px 0 18px;
  font-size: 14px;
}
body.bs-auth #login .forgetmenot label { display: inline; margin: 0; font-weight: 500; color: var(--bs-a-text); cursor: pointer; }
body.bs-auth #rememberme {
  -webkit-appearance: auto;
  appearance: auto;
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--bs-a-indigo);
  cursor: pointer;
}
body.bs-auth #rememberme::before { content: none; }
body.bs-auth #rememberme:focus-visible { outline: 3px solid var(--bs-a-ring); outline-offset: 2px; box-shadow: none; }
body.bs-auth .bs-auth-forgot { margin-left: auto; }
/* Comfortable touch targets (44px) without changing how things look */
body.bs-auth #login .forgetmenot label { padding: 12px 4px 12px 0; }
body.bs-auth .bs-auth-forgot,
body.bs-auth #login #backtoblog a,
body.bs-auth #login #nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 2px; }
body.bs-auth .forgetmenot .wp-tooltip__toggle { position: relative; }
body.bs-auth .forgetmenot .wp-tooltip__toggle::after { content: ""; position: absolute; inset: -10px; }

/* Links */
body.bs-auth #login a { color: var(--bs-a-indigo); font-weight: 600; text-decoration: none; border-radius: 4px; }
body.bs-auth #login a:hover { color: var(--bs-a-violet); text-decoration: underline; text-underline-offset: 3px; }
body.bs-auth #login a:focus { box-shadow: none; outline: none; }
body.bs-auth #login a:focus-visible { outline: 3px solid var(--bs-a-ring); outline-offset: 2px; }

/* Primary button */
body.bs-auth #login .submit { margin: 0; padding: 0; clear: both; }
body.bs-auth #login #wp-submit {
  float: none;
  width: 100%;
  height: 54px;
  min-height: 54px;
  margin: 0;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-family: inherit;
  font-size: 16px;
  font-weight: 650;
  letter-spacing: 0.01em;
  line-height: 1;
  color: #fff;
  text-shadow: none;
  background: var(--bs-a-grad);
  border: 0;
  border-radius: 14px;
  box-shadow: 0 12px 26px -10px rgba(79, 70, 229, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.18);
  cursor: pointer;
  transition: transform 0.15s, box-shadow 0.15s, filter 0.15s;
}
body.bs-auth #login #wp-submit:hover { filter: brightness(1.07); transform: translateY(-1px); box-shadow: 0 16px 30px -10px rgba(79, 70, 229, 0.65), inset 0 1px 0 rgba(255, 255, 255, 0.18); }
body.bs-auth #login #wp-submit:active { transform: translateY(0); filter: brightness(0.97); }
body.bs-auth #login #wp-submit:focus { outline: none; }
body.bs-auth #login #wp-submit:focus-visible { box-shadow: 0 0 0 3px #fff, 0 0 0 6px rgba(99, 102, 241, 0.55); }
body.bs-auth #wp-submit .bs-arrow { transition: transform 0.15s; }
body.bs-auth #wp-submit:hover .bs-arrow { transform: translateX(3px); }
body.bs-auth #wp-submit .bs-spin {
  display: none;
  width: 18px;
  height: 18px;
  border: 2px solid rgba(255, 255, 255, 0.45);
  border-top-color: #fff;
  border-radius: 50%;
  animation: bs-auth-spin 0.7s linear infinite;
}
body.bs-auth #login #wp-submit.is-busy { cursor: progress; filter: saturate(0.85); transform: none; }
body.bs-auth #wp-submit.is-busy .bs-spin { display: inline-block; }
body.bs-auth #wp-submit.is-busy .bs-arrow { display: none; }
@keyframes bs-auth-spin { to { transform: rotate(360deg); } }

/* Messages and errors */
body.bs-auth #login .notice,
body.bs-auth #login .message,
body.bs-auth #login #login_error,
body.bs-auth #login .success {
  margin: 0 0 20px;
  padding: 12px 14px;
  font-size: 14px;
  line-height: 1.5;
  border: 1px solid #bfdbfe;
  border-left-width: 1px;
  border-radius: 14px;
  background: #eff6ff;
  color: #1e3a8a;
  box-shadow: none;
}
body.bs-auth #login #login_error,
body.bs-auth #login .notice-error {
  border-color: #fecaca;
  background: #fef2f2;
  color: #991b1b;
}
body.bs-auth #login .success,
body.bs-auth #login .notice-success { border-color: #bbf7d0; background: #f0fdf4; color: #166534; }
body.bs-auth #login .notice p,
body.bs-auth #login #login_error p { margin: 0; }
body.bs-auth #login .login-error-list { margin: 0; padding: 0; list-style: none; }
body.bs-auth #login .login-error-list li + li { margin-top: 4px; }
body.bs-auth #login #login_error a { color: inherit; text-decoration: underline; }

/* Below the form */
body.bs-auth #login #nav,
body.bs-auth #login #backtoblog {
  margin: 20px 0 0;
  padding: 0;
  text-align: center;
  font-size: 14px;
  color: var(--bs-a-muted);
}
body.bs-auth #login #nav[hidden] { display: none; }
body.bs-auth #login #backtoblog { margin-top: 18px; font-size: 13px; }
body.bs-auth #login #backtoblog a { color: var(--bs-a-muted); font-weight: 500; }
body.bs-auth #login .privacy-policy-page-link { margin: 12px 0 0; text-align: center; font-size: 13px; }

.bs-auth-or {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 2px 0 14px;
  color: var(--bs-a-faint);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
}
.bs-auth-or::before,
.bs-auth-or::after { content: ""; flex: 1; height: 1px; background: var(--bs-a-line); }
.bs-auth-signup { display: block; }

/* WordPress language switcher (only shown when several languages are installed) */
body.bs-auth .language-switcher { margin: 22px auto 0; padding: 0; text-align: center; }
body.bs-auth .language-switcher select { border-radius: 10px; min-height: 40px; }
body.bs-auth .language-switcher .button { min-height: 40px; border-radius: 10px; }

/* Admin "session expired" modal (iframe): keep it compact */
body.bs-auth.interim-login { padding-top: 16px; }
body.bs-auth.interim-login .bs-auth-brand,
body.bs-auth.interim-login .bs-auth-bg { display: none; }

/* Phones */
@media (max-width: 480px) {
  body.login.bs-auth { padding-top: 24px; }
  .bs-auth-brand { margin-bottom: 16px; }
  .bs-auth-logo img { width: 176px; }
  .bs-auth-name { font-size: 21px; margin-top: 10px; }
  body.bs-auth #login { padding: 26px 20px 22px; border-radius: 20px; }
  .bs-auth-head { margin-bottom: 22px; }
  .bs-auth-head h2 { font-size: 23px; }
}

@media (prefers-reduced-motion: reduce) {
  body.bs-auth #login { animation: none; }
  body.bs-auth #login #wp-submit,
  body.bs-auth #wp-submit .bs-arrow { transition: none; }
  body.bs-auth #login #wp-submit:hover { transform: none; }
  body.bs-auth #wp-submit:hover .bs-arrow { transform: none; }
  body.bs-auth #wp-submit .bs-spin { animation-duration: 2s; }
}

/* ---------- Free registration: secondary CTA on the sign-in card ---------- */
body.bs-auth #login #nav .bs-auth-signup { display: block; margin: 0 0 10px; color: var(--bs-a-muted); }
body.bs-auth #login #nav a.bs-signup-btn {
  display: flex; align-items: center; justify-content: center; width: 100%; min-height: 52px; padding: 0 20px;
  border: 1.5px solid var(--bs-a-blue); border-radius: 14px; background: #fff; color: var(--bs-a-blue);
  font-size: 16px; font-weight: 650; text-decoration: none; transition: background-color .15s, box-shadow .15s, transform .15s;
}
body.bs-auth #login #nav a.bs-signup-btn:hover { background: #eff4ff; color: #1d4ed8; text-decoration: none; transform: translateY(-1px); box-shadow: 0 8px 18px -12px rgba(37, 99, 235, .6); }
body.bs-auth #login #nav a.bs-signup-btn:focus-visible { outline: none; box-shadow: 0 0 0 3px #fff, 0 0 0 6px rgba(37, 99, 235, .45); }
body.bs-auth #login #nav .bs-free-line { display: block; margin-top: 10px; font-size: 13px; color: var(--bs-a-muted); }

/* ---------- /register/ ---------- */
body.bs-auth-register .bs-auth-head h1 { margin: 0 0 6px; font-size: 26px; line-height: 1.2; font-weight: 750; letter-spacing: -0.02em; color: var(--bs-a-ink); }
.bs-free-badge { display: inline-block; margin: 0 0 12px !important; padding: 4px 12px; border-radius: 999px; background: #ecfdf3; color: #067647 !important; border: 1px solid #abefc6; font-size: 12px !important; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.bs-free-note { margin-top: 6px !important; font-size: 13px !important; }
body.bs-auth-register #login .bs-field { margin: 0 0 16px; }
body.bs-auth-register #login .bs-field .input,
body.bs-auth-register #login .wp-pwd .input { margin-bottom: 0 !important; }
body.bs-auth-register #login .wp-pwd { margin: 0; }
body.bs-auth-register #login form p:has(> #user_email)::after { bottom: 16px; }
body.bs-auth-register #login form p:has(> #bs-full-name),
body.bs-auth-register #login form p:has(> #bs-church) { position: relative; }
body.bs-auth-register #login form p:has(> #bs-full-name)::after,
body.bs-auth-register #login form p:has(> #bs-church)::after { content: ""; position: absolute; left: 16px; bottom: 16px; width: 20px; height: 20px; pointer-events: none; background: no-repeat center / 20px 20px; }
body.bs-auth-register #login form p:has(> #bs-full-name)::after { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E"); }
body.bs-auth-register #login form p:has(> #bs-church)::after { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2v4M10 4h4M6 21V11l6-5 6 5v10'/%3E%3Cpath d='M3 21h18'/%3E%3C/svg%3E"); }
body.bs-auth-register #login form p:has(> .bs-field-error)::after { bottom: 42px; }
.bs-optional { font-weight: 500; color: var(--bs-a-faint); }
.bs-field-error { display: block; margin-top: 6px; color: #b42318; font-size: 13.5px; font-weight: 600; }
body.bs-auth #login input[aria-invalid="true"] { border-color: #f04438 !important; background-color: #fffbfa !important; }
.bs-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.bs-strength { display: flex; align-items: center; gap: 10px; margin-top: 8px; font-size: 13px; color: var(--bs-a-muted); }
.bs-strength-bar { flex: 0 0 96px; height: 6px; border-radius: 99px; background: var(--bs-a-line); overflow: hidden; }
.bs-strength-bar i { display: block; height: 100%; width: 0; border-radius: inherit; background: #f04438; transition: width .2s, background-color .2s; }
.bs-strength[data-level="1"] .bs-strength-bar i { width: 25%; background: #f04438; }
.bs-strength[data-level="2"] .bs-strength-bar i { width: 50%; background: #f79009; }
.bs-strength[data-level="3"] .bs-strength-bar i { width: 75%; background: #2e90fa; }
.bs-strength[data-level="4"] .bs-strength-bar i { width: 100%; background: #12b76a; }
.bs-match { display: block; min-height: 1em; margin-top: 6px; font-size: 13px; }
.bs-match.is-ok { color: #067647; }
.bs-match.is-bad { color: #b42318; }
body.bs-auth-register #login .submit { margin-top: 6px; }
.bs-legal-note { margin: 14px 0 0 !important; font-size: 12.5px; color: var(--bs-a-muted); text-align: center; }
body.bs-auth #login .bs-err-actions { margin-top: 6px !important; font-weight: 600; }
body.bs-auth-register #login .bs-eye svg { display: block; }
@media (prefers-reduced-motion: reduce) { body.bs-auth #login #nav a.bs-signup-btn, .bs-strength-bar i { transition: none; } }

/* ---------- /register/verify/ — 6-digit email code ---------- */
body.bs-auth .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; padding: 0; margin: -1px; }
body.bs-auth #login.bs-verify { text-align: center; }
.bs-verify-lock { display: grid; place-items: center; width: 72px; height: 72px; margin: -2px auto 16px; border-radius: 50%; color: #b77900; background: linear-gradient(145deg, #fff8e1, #ffe8a3); box-shadow: 0 10px 24px -12px rgba(183, 121, 0, 0.55), inset 0 1px 0 #fff; }
.bs-verify .bs-auth-head { margin-bottom: 18px; }
.bs-verify-email { display: inline-block; margin-top: 4px; color: var(--bs-a-ink); font-weight: 700; word-break: break-all; }
.bs-otp { margin: 6px 0 20px; padding: 0; border: 0; }
body.bs-auth #login form input.bs-otp-single { width: 100%; min-height: 52px; margin: 0; padding: 0 14px; border: 1.5px solid var(--bs-a-line); border-radius: 14px; background: var(--bs-a-field); font: 700 1.6rem/1 ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; letter-spacing: .5em; text-align: center; }
.bs-otp-row { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(6px, 2vw, 10px); }
body.bs-auth #login form input.bs-otp-box { width: 100%; min-width: 0; height: clamp(50px, 14vw, 60px); min-height: 0; margin: 0; padding: 0; border: 1.5px solid var(--bs-a-line); border-radius: 14px; background: #fff; box-shadow: 0 6px 14px -10px rgba(15, 23, 42, 0.35), inset 0 1px 0 #fff; color: var(--bs-a-ink); font: 700 clamp(1.3rem, 5vw, 1.6rem)/1 ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; text-align: center; caret-color: var(--bs-a-blue); transition: border-color .15s, box-shadow .15s, transform .15s; }
body.bs-auth #login form input.bs-otp-box:focus { outline: none; border-color: var(--bs-a-blue); box-shadow: 0 0 0 4px var(--bs-a-ring); transform: translateY(-1px); }
body.bs-auth #login form input.bs-otp-box.is-filled { border-color: #93b4f5; background: #f5f8ff; }
body.bs-auth #login form input.bs-otp-box[aria-invalid="true"] { border-color: #f1a7a0; }
.bs-resend { margin: 0; }
.bs-resend-line { margin: 4px 0 10px; color: var(--bs-a-muted); font-size: 14px; }
.bs-resend-line strong { color: var(--bs-a-blue); }
.bs-link-btn { padding: 8px 10px; border: 0; border-radius: 8px; background: none; color: var(--bs-a-blue); font: 600 14px/1.2 inherit; font-family: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.bs-link-btn:focus-visible { outline: 3px solid var(--bs-a-ring); }
.bs-verify-note { margin: 6px 0 0; color: var(--bs-a-faint); font-size: 13px; }
.bs-verify-secure { margin-top: 2px; }
.bs-verify #nav { margin-top: 18px; }
@media (prefers-reduced-motion: reduce) { body.bs-auth #login form input.bs-otp-box { transition: none; } }
