/* VenueDA styling; provider-first structure inspired by Ravi Katiyar. */
.member-page.login-page .login-main { display:flex; flex-direction:column; align-items:center; gap:28px; width:min(480px,calc(100% - 40px)); min-height:0; padding:64px 0 80px; margin:0 auto; }
.member-page.login-page .login-intro { width:100%; text-align:center; }
.member-page.login-page .login-intro h1 { font-size:32px; line-height:1.21; letter-spacing:-.06em; }
.member-page.login-page .login-card { width:100%; padding:32px; box-shadow:none; border:1px solid #e1e4eb; border-radius:18px; }
.login-page .card-topline { display:none; }
.login-page .login-card h2 { margin:0 0 10px; font-size:26px; line-height:1.21; letter-spacing:-.06em; }
.login-page .card-description { line-height:1.6; }
.login-page .google-login-button,.login-page .email-login-button { min-height:52px; padding:0 18px; margin-top:12px; justify-content:center; }
.login-page .google-login-button { margin-top:28px; }
.login-page .login-button-label { display:inline-flex; align-items:center; justify-content:center; gap:12px; font-size:15px; line-height:1.4; }
.login-page .google-login-button .login-button-label > span,.login-page .email-login-button .login-button-label > span { font-size:15px; line-height:1.4; }
.login-page .login-provider-logo { width:18px; height:18px; flex:0 0 18px; object-fit:contain; }
.login-page .card-divider { margin:24px 0; }
.login-page .auth-footnote { margin-top:22px; line-height:1.6; }
.auth-text-button { display:inline-block; margin:14px 0; padding:8px 0; border:0; background:none; color:#435bff; font:inherit; font-size:14px; cursor:pointer; text-decoration:underline; text-underline-offset:4px; }
.member-page [hidden] { display:none!important; }
.member-page :is(a,button,input):focus-visible { outline:3px solid #435bff; outline-offset:3px; }
.member-page.join-page .join-main { display:flex; flex-direction:column; align-items:center; gap:28px; width:min(600px,calc(100% - 40px)); padding:48px 0 64px; margin:auto; }
.member-page.join-page .join-intro { width:100%; text-align:center; }
.member-page.join-page .join-intro h1 { font-size:32px; line-height:1.21; }
.join-page .join-intro .member-eyebrow,.join-page .join-intro .member-lead,.join-page .card-topline { display:none; }
.join-page .member-card { width:100%; padding:28px; box-shadow:none; }
.join-page .role-option { min-height:110px; padding:16px; }
.join-page .role-option strong { margin-top:12px; }
.join-page .role-option small { line-height:1.6; }
.join-page .field-block input[type=password] { width:100%; min-height:48px; padding:12px; border:1px solid #d9dce5; border-radius:10px; background:#fff; font:inherit; }
.email-login-card button:disabled,.join-page button:disabled { cursor:wait; opacity:.6; }
@media(max-width:600px){.member-page.login-page .login-main{padding:28px 0 48px;gap:22px}.member-page.login-page .login-intro h1{font-size:28px}.member-page.login-page .login-card{padding:24px 20px}.login-page .auth-footnote{font-size:12px}}
@media(prefers-reduced-motion:reduce){.member-page a,.member-page button{transition:none!important;transform:none!important}}

/* Ravi Katiyar Sign-in의 핵심 구조를 VENUEDA의 흰색·검정·파랑 언어로 적용한다.
   지원하지 않는 Github/Skip 동작은 추가하지 않고 실제 Google·이메일 흐름만 유지한다. */
.member-page.login-page .login-main {
  display:grid;
  grid-template-columns:minmax(0, .92fr) minmax(360px, 440px);
  align-items:center;
  gap:clamp(48px, 8vw, 128px);
  width:min(1080px, calc(100% - 64px));
  min-height:calc(100vh - 140px);
  padding:72px 0 88px;
}
.member-page.login-page .login-intro {
  width:auto;
  text-align:left;
}
.login-intro-kicker {
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 22px;
  color:var(--member-blue);
  font-size:11px;
  font-weight:800;
  letter-spacing:.16em;
}
.login-intro-kicker::before {
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--member-blue);
}
.member-page.login-page .login-intro h1 {
  max-width:560px;
  margin:0;
  color:var(--member-ink);
  font-size:clamp(42px, 5.4vw, 76px);
  line-height:1.21;
  letter-spacing:-.075em;
  word-break:keep-all;
}
.member-page.login-page .login-intro h1 em { color:var(--member-blue); }
.login-intro-copy {
  max-width:420px;
  margin:24px 0 0;
  color:var(--member-muted);
  font-size:15px;
  line-height:1.7;
  word-break:keep-all;
}
.member-page.login-page .login-card {
  width:100%;
  padding:clamp(30px, 4vw, 44px);
  border:1px solid #dfe3ea;
  border-radius:22px;
  background:#fff;
  box-shadow:0 24px 70px rgba(20, 28, 48, .08);
}
.login-card-brand {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  margin:0 0 24px;
  text-align:center;
}
.login-card-brand img {
  display:block;
  width:52px;
  height:52px;
  object-fit:contain;
}
.login-card-brand span {
  color:var(--member-muted);
  font-size:10px;
  font-weight:800;
  letter-spacing:.16em;
}
.login-page .login-card h2 {
  margin:0 0 9px;
  color:var(--member-ink);
  font-size:28px;
  font-weight:800;
  line-height:1.21;
  letter-spacing:-.06em;
  text-align:center;
}
.login-page .login-card .card-description {
  margin:0;
  color:var(--member-muted);
  font-size:13px;
  line-height:1.6;
  text-align:center;
}
.login-page .google-login-button,
.login-page .email-login-button {
  min-height:54px;
  margin-top:25px;
  border-radius:11px;
}
.login-page .google-login-button { box-shadow:0 8px 20px rgba(67,91,255,.16); }
.login-page .email-login-button { margin-top:11px; }
.login-page .login-button-label { gap:10px; }
.login-page .login-button-label > span { font-weight:800; }
.login-page .card-divider { margin:23px 0 2px; }
.login-page .login-signup-prompt { margin-top:24px; }
.login-page .auth-footnote { margin-top:23px; text-align:center; }
@media (max-width:900px) {
  .member-page.login-page .login-main {
    grid-template-columns:minmax(0, 1fr) minmax(340px, 420px);
    gap:48px;
    width:min(900px, calc(100% - 48px));
  }
  .member-page.login-page .login-intro h1 { font-size:clamp(38px, 5.5vw, 60px); }
}
@media (max-width:700px) {
  .member-page.login-page .login-main {
    display:flex;
    gap:28px;
    width:min(100% - 32px, 480px);
    min-height:0;
    padding:48px 0 64px;
  }
  .member-page.login-page .login-intro { text-align:center; }
  .login-intro-kicker { justify-content:center; margin-bottom:17px; }
  .member-page.login-page .login-intro h1 { font-size:clamp(32px, 10.5vw, 48px); }
  .login-intro-copy { margin:17px auto 0; font-size:13px; }
  .member-page.login-page .login-card { padding:28px 20px; border-radius:18px; }
}

/* Keep the required consent block compact without changing its required state. */
.join-page .consent-group {
  margin-top: 18px !important;
  padding-top: 16px !important;
}
.join-page .consent-list {
  gap: 7px;
  margin-top: 10px;
}
.join-page .policy-example {
  margin-top: 11px;
  padding-top: 9px;
}

/* Keep the signup intro and its 01–02 marker in normal flow at every width. */
.member-page.join-page .join-intro {
  position: static;
  top: auto;
}
.member-page.join-page .flow-marker {
  position: static;
}

/* The login/signup link remains usable while auth status is still loading. */
html:not(.vd-auth-ready) body.member-page.login-page .member-header-meta {
  visibility: visible;
}
