/*
 * ByShare v29 - entirely rebuilt sign-in and registration interface.
 * All selectors scoped to .bs-auth-page; legacy .auth-section / .auth-aside
 * positioning rules are intentionally not reused.
 */
.bs-auth-page {
  --bs-auth-ink: #281b47;
  --bs-auth-muted: #766b8b;
  --bs-auth-purple: #8046dc;
  --bs-auth-border: #e9def6;
  color: var(--bs-auth-ink);
  min-height: calc(100vh - 180px);
  padding: clamp(32px, 5.2vw, 74px) 24px 82px;
  background:
    radial-gradient(ellipse 470px 400px at 2% 16%, rgba(219,202,255,.51), transparent 80%),
    radial-gradient(ellipse 590px 480px at 99% 6%, rgba(249,208,235,.50), transparent 77%),
    #fbf9ff;
}
.bs-auth-page *, .bs-auth-page *::before, .bs-auth-page *::after { box-sizing: border-box; }
.bs-auth-layout {
  width: min(1120px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr);
  align-items: start;
  gap: clamp(18px, 2.2vw, 28px);
}
.bs-auth-form-card,
.bs-auth-showcase {
  min-width: 0;
  border-radius: 30px;
  border: 1px solid #e9e2f5;
  box-shadow: 0 18px 60px rgba(79, 49, 129, .09);
}
.bs-auth-form-card {
  padding: clamp(27px, 3.4vw, 46px);
  background: #fff;
}
.bs-auth-mode-switch {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px;
  padding: 5px;
  max-width: 352px;
  margin-bottom: 31px;
  background: #f5f0fd;
  border: 1px solid #f0e9fb;
  border-radius: 14px;
}
.bs-auth-mode-switch > a {
  min-width: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 43px;
  padding: 8px 10px;
  border-radius: 10px;
  font-weight: 750;
  font-size: 13px;
  color: #806c9b;
  transition: background .2s, box-shadow .2s, color .2s;
}
.bs-auth-mode-switch > a.is-selected {
  color: #5a319d;
  background: white;
  box-shadow: 0 3px 12px rgba(73,43,112,.10);
}
.bs-auth-mode-switch > a:not(.is-selected):hover { background: #ede5f9; }
.bs-auth-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #8d4cce;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .16em;
}
.bs-auth-kicker-dot { width: 7px; height: 7px; background: #25c4a5; border-radius: 99px; box-shadow: 0 0 0 4px #25c4a521; }
.bs-auth-heading h1 {
  color: var(--bs-auth-ink);
  font-size: clamp(32px, 3.5vw, 47px);
  line-height: 1.09;
  font-weight: 850;
  letter-spacing: -.052em;
  margin: 15px 0 14px;
}
.bs-auth-heading h1 span {
  color: #8b49d4;
  background: linear-gradient(100deg, #8651de, #b75fc9);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.bs-auth-heading p {
  margin: 0 0 29px;
  max-width: 440px;
  color: var(--bs-auth-muted);
  font-size: 14px;
  line-height: 1.7;
}
.bs-auth-progress {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: -1px 0 24px;
  min-width: 0;
  font-size: 11px;
  font-weight: 750;
  color: #9086a3;
}
.bs-auth-progress span:not(.bs-auth-progress-line) { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.bs-auth-progress .is-current { color: #683ca8; }
.bs-auth-progress b { display: grid; place-items: center; width: 23px; height: 23px; border-radius: 50%; background: #efe9fa; font-size: 11px; }
.bs-auth-progress .is-current b { background: #7f4ed1; color: #fff; }
.bs-auth-progress-line { width: 23px; height: 1px; flex: 0 1 23px; background: #dccfee; }
.bs-auth-form { display: flex; flex-direction: column; gap: 19px; }
.bs-auth-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.bs-auth-field label, .bs-auth-label-row label {
  font-size: 12px;
  line-height: 1.5;
  font-weight: 760;
  color: #443656;
}
.bs-auth-label-row { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.bs-auth-inline-link { font-weight: 740; font-size: 12px; color: #7844c3; white-space: nowrap; }
.bs-auth-inline-link:hover { color: #4e258c; text-decoration: underline; }
.bs-auth-field > input,
.bs-auth-password-wrap input,
.bs-auth-captcha-answer input {
  min-width: 0;
  width: 100%;
  height: 52px;
  padding: 0 16px;
  color: #261d43;
  background: #fbfaff;
  border: 1px solid #e4dcf2;
  border-radius: 13px;
  font-size: 14px;
  font-weight: 520;
  letter-spacing: normal;
  outline: none;
  transition: border-color .17s, background .17s, box-shadow .17s;
}
.bs-auth-field input::placeholder { color: #9b90ad; opacity: 1; font-weight: 450; }
.bs-auth-field input:hover { border-color: #cdb6eb; background: #fff; }
.bs-auth-field input:focus {
  border-color: #9c68dc;
  background: white;
  box-shadow: 0 0 0 4px rgba(142,87,225,.10);
}
.bs-auth-password-wrap { position: relative; }
.bs-auth-password-wrap input { padding-right: 71px; }
.bs-auth-reveal {
  position: absolute;
  right: 9px;
  top: 50%;
  transform: translateY(-50%);
  min-width: 51px;
  height: 35px;
  padding: 0 7px;
  border: 0;
  background: transparent;
  color: #8350c4;
  border-radius: 9px;
  font-weight: 770;
  font-size: 12px;
}
.bs-auth-reveal:hover { background: #f0e8fc; }
.bs-auth-security {
  margin-top: 4px;
  padding: clamp(17px,2vw,23px);
  border: 1px solid #e9dff6;
  border-radius: 19px;
  background: linear-gradient(143deg, #fcfaff, #f8f4ff);
}
.bs-auth-security-heading { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.bs-auth-shield { display: grid; place-items: center; width: 36px; height: 36px; flex: 0 0 36px; border-radius: 12px; background: #ede2fe; color: #8c4edf; font-size: 19px; }
.bs-auth-security-heading h2 { color: #3b2b59; font-size: 14px; font-weight: 800; letter-spacing: -.02em; margin: 0 0 1px; }
.bs-auth-security-heading p { font-size: 11px; color: #887b9e; margin: 0; }
.bs-auth-captcha-group { display: flex; flex-direction: column; gap: 13px; margin: 0; border: 0; padding: 0; background: transparent; }
.bs-auth-captcha-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.bs-auth-captcha-row img {
  display: block;
  width: min(100%, 272px);
  height: auto;
  aspect-ratio: 314 / 104;
  object-fit: contain;
  border: 1px solid #decff0;
  background: #fff;
  border-radius: 11px;
}
.bs-auth-captcha-refresh {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-width: 102px;
  min-height: 41px;
  padding: 9px 11px;
  background: #fff;
  border: 1px solid #dac7ef;
  border-radius: 10px;
  color: #7846c1;
  font-size: 12px;
  font-weight: 750;
  white-space: nowrap;
}
.bs-auth-captcha-refresh:hover { background: #f0e6ff; }
.bs-auth-captcha-refresh:disabled { opacity: .55; cursor: wait; }
.bs-auth-captcha-refresh span { font-size: 18px; line-height: 1; }
.bs-auth-captcha-answer { margin: 0; gap: 7px; }
.bs-auth-captcha-answer input {
  max-width: 100%;
  height: 51px;
  font-size: 15px;
  letter-spacing: .12em;
  font-weight: 720;
  text-transform: uppercase;
}
.bs-auth-captcha-hint {
  font-size: 11px;
  line-height: 1.5;
  color: #8b7ca1;
  margin: 0;
}
.bs-auth-turnstile { max-width: 100%; overflow: auto; }
.bs-auth-next-step { display: flex; align-items: flex-start; gap: 10px; color: #7c6d94; margin: 0; font-size: 12px; line-height: 1.6; }
.bs-auth-next-step span { color: #8250d6; font-size: 17px; line-height: 1.35; }
.bs-auth-submit {
  width: 100%;
  min-height: 56px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 18px 11px 22px;
  border: 0;
  border-radius: 14px;
  background: linear-gradient(102deg, #793fe1 0%, #9b50dd 63%, #c36bcb 100%);
  color: #fff;
  box-shadow: 0 12px 26px rgba(113,60,201,.20);
  font-size: 14px;
  font-weight: 820;
  cursor: pointer;
  transition: transform .18s, box-shadow .18s;
}
.bs-auth-submit:hover { transform: translateY(-2px); box-shadow: 0 16px 29px rgba(113,60,201,.29); }
.bs-auth-submit-arrow { font-size: 20px; font-weight: 500; }
.bs-auth-foot {
  padding-top: 20px;
  margin-top: 22px;
  border-top: 1px solid #f0eaf7;
  color: #827391;
  text-align: center;
  font-size: 13px;
}
.bs-auth-foot a { margin-left: 4px; color: #7641c9; font-weight: 800; }
.bs-auth-foot a:hover { text-decoration: underline; }
.bs-auth-page a:focus-visible,
.bs-auth-page button:focus-visible { outline: 3px solid #9558df; outline-offset: 3px; }

/* Self-contained marketing panel: NEVER stretch to the form's height. */
.bs-auth-showcase {
  position: sticky;
  top: 28px;
  display: flex;
  flex-direction: column;
  padding: clamp(27px, 3vw, 35px);
  background:
    radial-gradient(circle at 80% 55%, rgba(252,196,230,.73), transparent 52%),
    linear-gradient(154deg, #f2eaff 0%, #e5d6fe 58%, #fce8f4 100%);
  overflow: hidden;
  isolation: isolate;
}
.bs-auth-showcase::before { content: ''; pointer-events: none; position: absolute; width: 310px; height: 310px; background: #cdb2f87a; filter: blur(35px); top: 100px; right: -145px; border-radius: 50%; z-index: -1; }
.bs-auth-showcase-head { position: relative; z-index: 2; }
.bs-auth-showcase-eyebrow { display: block; color: #8555bf; font-size: 10px; font-weight: 850; letter-spacing: .16em; }
.bs-auth-showcase-head h2 { color: #35204f; font-size: clamp(27px, 2.7vw, 38px); line-height: 1.16; letter-spacing: -.048em; margin: 14px 0 10px; font-weight: 860; max-width: 365px; }
.bs-auth-showcase-head h2 em { font-style: normal; color: #a05aca; }
.bs-auth-showcase-head p { color: #7b6b91; font-size: 13px; line-height: 1.65; margin: 0; max-width: 315px; }
.bs-auth-showcase-stage {
  position: relative;
  display: grid;
  place-items: center;
  height: 388px;
  min-height: 388px;
  margin: 13px -10px 0;
}
.bs-auth-stage-orbit { position: absolute; width: 310px; height: 310px; border-radius: 50%; background: radial-gradient(circle, #e5c2f6, #d7c1fb8a 43%, transparent 68%); pointer-events: none; }
.bs-auth-device {
  position: relative;
  width: 175px;
  padding: 5px;
  z-index: 2;
  border: 3px solid #281932;
  border-radius: 29px;
  background: #251b31;
  box-shadow: 0 18px 45px rgba(56,29,79,.32);
  transform: rotate(5deg);
}
.bs-auth-device img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 390/844;
  object-fit: cover;
  border-radius: 22px;
  background: #fff;
}
.bs-auth-stage-note {
  z-index: 3;
  position: absolute;
  bottom: 56px;
  left: -2px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 1px solid #f0e4f7;
  box-shadow: 0 12px 27px #5841771f;
  border-radius: 13px;
  padding: 9px 12px;
  color: #4a2a76;
  font-size: 11px;
}
.bs-auth-stage-note span { display: grid; place-items: center; flex: 0 0 23px; width: 23px; height: 23px; border-radius: 8px; background: #9f5dde; color: #fff; }
.bs-auth-showcase-bottom {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 13px 14px;
  background: rgba(255,255,255,.76);
  border: 1px solid #ffffffb8;
  border-radius: 16px;
  color: #392456;
}
.bs-auth-showcase-check { display: grid; place-items: center; flex: 0 0 34px; width: 34px; height: 34px; background: #e6d5ff; color: #7943c4; border-radius: 10px; font-size: 20px; }
.bs-auth-showcase-bottom strong, .bs-auth-showcase-bottom small { display: block; }
.bs-auth-showcase-bottom strong { font-size: 12px; }
.bs-auth-showcase-bottom small { font-size: 11px; margin-top: 2px; color: #806e97; }

@media(max-width: 940px) {
  .bs-auth-layout { grid-template-columns: 1fr; max-width: 580px; }
  .bs-auth-showcase { display: none; }
  .bs-auth-page { padding-top: 30px; }
}
@media(max-width: 600px) {
  .bs-auth-page { padding: 18px 14px 45px; }
  .bs-auth-form-card { padding: 25px 21px 27px; border-radius: 24px; }
  .bs-auth-mode-switch { max-width: none; margin-bottom: 26px; }
  .bs-auth-heading h1 { font-size: clamp(30px, 8vw, 39px); }
  .bs-auth-heading p { font-size: 13px; margin-bottom: 25px; }
  .bs-auth-captcha-row img { width: min(100%, 314px); }
  .bs-auth-form { gap: 17px; }
}
@media(max-width: 380px) {
  .bs-auth-page { padding-inline: 9px; }
  .bs-auth-form-card { padding: 22px 16px 24px; }
  .bs-auth-security { padding: 15px 12px; }
  .bs-auth-mode-switch>a { font-size: 12px; }
  .bs-auth-captcha-row { display: grid; grid-template-columns: 1fr; }
  .bs-auth-captcha-refresh { width: 100%; }
  .bs-auth-progress { gap: 7px; font-size: 10px; }
  .bs-auth-progress-line { width: 10px; flex-basis: 10px; }
}
@media(prefers-reduced-motion: reduce) {
  .bs-auth-page * { transition: none!important; }
  .bs-auth-page *:hover { transform: none; }
}
