.auth-v2 {
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(320px, 0.9fr) minmax(520px, 1.1fr);
  background: #fbf9f7;
  color: #2b2430;
}

.auth-v2__brand {
  position: relative;
  overflow: hidden;
  padding: clamp(36px, 5vw, 76px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  color: #fff;
  background: #3f2868;
}

.auth-v2__brand::before,
.auth-v2__brand::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 50%;
}
.auth-v2__brand::before { width: 540px; height: 540px; right: -280px; top: -180px; }
.auth-v2__brand::after { width: 280px; height: 280px; right: -80px; bottom: 70px; }

.auth-v2__logo {
  position: relative;
  z-index: 1;
  width: min(220px, 70%);
  height: auto;
  object-fit: contain;
  object-position: left center;
}

.auth-v2__story { position: relative; z-index: 1; max-width: 620px; }
.auth-v2__eyebrow {
  margin: 0 0 18px;
  font-size: 12px;
  line-height: 1.3;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #d6c2f4;
}
.auth-v2__story h1,
.auth-v2__card h1 {
  font-family: var(--font-heading, Georgia), Georgia, serif;
  font-weight: 400;
  letter-spacing: -.035em;
}
.auth-v2__story h1 { margin: 0 0 20px; font-size: clamp(44px, 5vw, 76px); line-height: .98; }
.auth-v2__story h1 { color: #fff; }
.auth-v2__story p { max-width: 520px; margin: 0; color: #ded4e9; line-height: 1.65; }

.auth-v2__main {
  padding: clamp(28px, 7vw, 96px);
  display: grid;
  place-items: center;
}
.auth-v2__card { width: min(100%, 520px); }
.auth-v2__back { display: inline-flex; margin-bottom: 42px; color: #6a5f6c; text-decoration: none; font-size: 14px; }
.auth-v2__card h1 { margin: 0; font-size: clamp(40px, 4vw, 58px); line-height: 1.04; }
.auth-v2__lead { margin: 14px 0 34px; color: #716872; line-height: 1.55; }
.auth-v2__alert { margin-bottom: 20px; padding: 13px 15px; border-radius: 14px; font-size: 14px; line-height: 1.5; }
.auth-v2__alert--error { color: #8a2738; background: #fff0f2; border: 1px solid #f0c5cc; }
.auth-v2__alert--info { color: #44296f; background: #f2eafb; border: 1px solid #dfcef2; }

.auth-v2__form { display: grid; gap: 18px; }
.auth-v2__form[hidden] { display: none !important; }
.auth-v2__field { display: grid; gap: 8px; }
.auth-v2__field label { font-size: 13px; font-weight: 650; color: #403744; }
.auth-v2__field input,
.auth-v2__field select {
  width: 100%; min-height: 52px; padding: 0 16px;
  border: 1px solid #dfd3c8; border-radius: 14px; background: #fff;
  color: #2b2430; font: inherit; outline: none; box-sizing: border-box;
}
.auth-v2__field input:focus,
.auth-v2__field select:focus { border-color: #6b3cb6; box-shadow: 0 0 0 3px rgba(107,60,182,.12); }
.auth-v2__row { display: flex; justify-content: space-between; align-items: center; gap: 16px; font-size: 14px; }
.auth-v2__row a, .auth-v2__text-link { color: #5b329d; font-weight: 650; text-decoration: none; }
.auth-v2__button {
  min-height: 54px; padding: 0 22px; border: 0; border-radius: 999px;
  background: #5b329d; color: #fff; font: inherit; font-weight: 700; cursor: pointer;
  transition: transform .18s ease, background .18s ease;
}
.auth-v2__button:hover { background: #47257d; transform: translateY(-1px); }
.auth-v2__button--soft { background: #fff; color: #44296f; border: 1px solid #dfd3c8; }
.auth-v2__button--soft:hover { background: #f5effb; }
.auth-v2__divider { display: flex; align-items: center; gap: 14px; margin: 25px 0; color: #988f97; font-size: 12px; text-transform: uppercase; letter-spacing: .1em; }
.auth-v2__divider::before,.auth-v2__divider::after { content:""; flex:1; height:1px; background:#e5ddd6; }
.auth-v2__providers { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.auth-v2__provider { min-height: 48px; border: 1px solid #dfd3c8; border-radius: 14px; background:#fff; color:#403744; font:inherit; font-weight:650; cursor:pointer; display:flex; align-items:center; justify-content:center; text-decoration:none; }
.auth-v2__provider[disabled] { opacity: .45; cursor: not-allowed; }
.auth-v2__consent { display:flex; align-items:flex-start; gap:9px; color:#655b64; font-size:.84rem; line-height:1.4; }
.auth-v2__consent input { margin-top:3px; accent-color:#5d35aa; }
.auth-v2__note { margin-top: 24px; padding-top: 22px; border-top: 1px solid #e6ddd5; color:#746a74; font-size:13px; line-height:1.55; }
.auth-v2__code { text-align:center; letter-spacing:.35em; font-size:24px !important; font-weight:700; }
.auth-v2__secret { display:inline-block; margin-top:8px; font-size:18px; letter-spacing:.12em; overflow-wrap:anywhere; }
.auth-v2__details { margin:-4px 0 22px; color:#655b64; font-size:13px; }
.auth-v2__details summary { cursor:pointer; color:#5b329d; font-weight:650; }
.auth-v2__uri { display:block; margin-top:10px; padding:12px; border-radius:12px; background:#f5f0f8; overflow-wrap:anywhere; line-height:1.45; }
.auth-v2__recovery { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:24px 0; }
.auth-v2__recovery code { padding:12px; border:1px solid #dfd3c8; border-radius:12px; background:#fff; text-align:center; font-size:15px; letter-spacing:.06em; }
.auth-v2__button--link { display:flex; align-items:center; justify-content:center; text-decoration:none; box-sizing:border-box; }

body.auth-page-shell .site-header,
body.auth-page-shell .site-footer { display: none; }
body.auth-page-shell .site-main { padding: 0; }

@media (max-width: 860px) {
  .auth-v2 { grid-template-columns: 1fr; }
  .auth-v2__brand { min-height: 250px; padding: 30px; }
  .auth-v2__story h1 { font-size: 42px; }
  .auth-v2__story p { display:none; }
  .auth-v2__main { padding: 40px 24px 60px; place-items:start center; }
  .auth-v2__back { margin-bottom:28px; }
}

@media (max-width: 520px) {
  .auth-v2__brand { min-height: 205px; }
  .auth-v2__story h1 { font-size: 36px; }
  .auth-v2__providers { grid-template-columns:1fr; }
  .auth-v2__recovery { grid-template-columns:1fr; }
}
