.member-hero {
  background: linear-gradient(135deg, #2f1d11 0%, #6f3f1d 55%, #a7682f 100%);
  color: #fff7eb;
  padding: 56px 0 48px;
}

.member-hero .lead {
  color: #f7e4c6;
  max-width: 820px;
}

.member-shell {
  display: grid;
  gap: 22px;
}

.member-gate {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.member-auth-card {
  max-width: 980px;
  margin: 0 auto;
  width: 100%;
}

.member-auth-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 20px;
}

.member-auth-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.member-auth-provider {
  width: 100%;
  min-height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border-radius: 12px;
  border: 1px solid #d8d2c9;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}

.member-auth-provider:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(44, 29, 18, .1);
}

.member-auth-provider:disabled {
  cursor: not-allowed;
  opacity: .55;
}

.member-auth-provider-icon {
  min-width: 38px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  font-weight: 900;
  font-size: 14px;
}

.member-auth-google {
  background: #fff;
  color: #292929;
}

.member-auth-google .member-auth-provider-icon {
  color: #4285f4;
  border: 1px solid #e4e4e4;
}

.member-auth-line {
  color: #fff;
  background: #06c755;
  border-color: #06c755;
}

.member-auth-line .member-auth-provider-icon {
  min-width: 48px;
  background: #fff;
  color: #06a94a;
}

.member-auth-divider {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 24px 0;
  color: #8b765f;
  font-size: 14px;
}

.member-auth-divider::before,
.member-auth-divider::after {
  content: "";
  height: 1px;
  flex: 1;
  background: #eadfce;
}

.member-email-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.member-auth-form {
  padding: 18px;
  border-radius: 14px;
  background: #fffaf2;
  border: 1px solid #eadbc5;
}

.member-auth-form h3 {
  margin-top: 0;
}

.member-session-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-left: 5px solid #6f3f1d;
}

.member-session-bar p {
  margin-bottom: 0;
}

.member-form {
  max-width: 860px;
}

.member-consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 14px;
  border-radius: 12px;
  background: #fff8ed;
  border: 1px solid #ead2b5;
}

.member-consent input {
  margin-top: 4px;
}

.member-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: 18px;
}

.member-card-panel {
  position: relative;
  overflow: hidden;
  background: linear-gradient(145deg, #fffdf8 0%, #f3dfbf 100%);
}

.member-card-panel::after {
  content: "WE";
  position: absolute;
  right: -12px;
  bottom: -35px;
  font-size: 150px;
  font-weight: 900;
  line-height: 1;
  color: rgba(91, 51, 24, .07);
  pointer-events: none;
}

.member-card-head {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px;
}

.member-type-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 92px;
  padding: 8px 12px;
  border-radius: 999px;
  background: #5b3318;
  color: #fff;
  font-weight: 800;
  font-size: 14px;
}

.member-type-badge.is-premium {
  background: linear-gradient(135deg, #ad762a, #5c3515);
}

.member-details {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 22px 0;
}

.member-details div {
  padding: 14px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .72);
  border: 1px solid rgba(112, 65, 31, .15);
}

.member-details dt {
  color: #806446;
  font-size: 13px;
  margin-bottom: 5px;
}

.member-details dd {
  margin: 0;
  font-weight: 800;
  word-break: break-word;
}

.member-upgrade-panel {
  background: #24170f;
  color: #fff5e7;
}

.member-upgrade-panel .eyebrow,
.member-upgrade-panel p,
.member-upgrade-panel li {
  color: #ecd4b2;
}

.member-upgrade-price {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  margin: 20px 0;
  padding: 15px;
  border-radius: 12px;
  background: rgba(255,255,255,.08);
}

.member-upgrade-price strong {
  color: #ffd58f;
  font-size: 24px;
}

.member-benefits {
  margin: 0 0 20px;
  padding-left: 22px;
}

.member-benefits li + li {
  margin-top: 8px;
}

.member-upgrade-state {
  margin: 12px 0;
}

.member-identities-panel {
  margin-top: 18px;
}

.member-identity-list {
  display: grid;
  gap: 10px;
  margin: 18px 0;
}

.member-identity-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 13px 14px;
  border-radius: 12px;
  border: 1px solid #eadfce;
  background: #fffdf9;
}

.member-identity-item p {
  margin: 3px 0 0;
}

.member-identity-icon {
  width: 46px;
  height: 38px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  background: #eee;
}

.member-identity-google {
  color: #4285f4;
  background: #eef4ff;
}

.member-identity-line {
  color: #fff;
  background: #06c755;
  font-size: 12px;
}

.member-identity-email {
  color: #6f3f1d;
  background: #f4e5d2;
}

.member-link-actions {
  flex-wrap: wrap;
}

.member-password-form {
  max-width: 760px;
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid #eadfce;
}

@media (max-width: 760px) {
  .member-gate,
  .member-card-head,
  .member-session-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .member-auth-options,
  .member-email-grid,
  .member-grid,
  .member-details {
    grid-template-columns: 1fr;
  }

  .member-type-badge {
    align-self: flex-start;
  }

  .member-identity-item {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .member-identity-item .pill {
    grid-column: 2;
    justify-self: start;
  }
}