:root {
  --senti-auth-bg: #f7f4f1;
  --senti-auth-card: #ffffff;
  --senti-auth-text: #060606;
  --senti-auth-muted: rgba(0,0,0,.56);
  --senti-auth-soft: rgba(0,0,0,.10);
  --senti-auth-line: rgba(0,0,0,.12);
  --senti-auth-shadow: 0 22px 70px rgba(0,0,0,.08);
  --senti-auth-serif: "Playfair Display", Georgia, serif;
  --senti-auth-sans: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html {
  min-height: 100%;
}

body.senti-auth-page {
  margin: 0;
  min-height: 100vh;
  background: radial-gradient(circle at 12% 6%, rgba(255,255,255,.92), rgba(255,255,255,0) 32%),
    linear-gradient(135deg,#fbfaf8 0%,var(--senti-auth-bg) 100%);
  color: var(--senti-auth-text);
  font-family: var(--senti-auth-sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

body.senti-auth-page * {
  box-sizing: border-box;
}

.senti-auth-wrap {
  width: min(1180px,calc(100% - 36px));
  margin: 0 auto;
  min-height: 100vh;
  padding: 34px 0;
  display: flex;
  align-items: center;
}

.senti-auth-wrap--compact {
  width: min(980px,calc(100% - 36px));
}

.senti-auth-grid {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0,1.05fr) minmax(360px,.95fr);
  gap: 34px;
  align-items: center;
}

.senti-auth-grid--compact {
  grid-template-columns: minmax(0,.95fr) minmax(360px,.72fr);
}

.senti-auth-left {
  min-width: 0;
}

.senti-auth-right {
  min-width: 0;
  display: flex;
  justify-content: center;
}

.senti-auth-card {
  width: 100%;
  max-width: 560px;
  border: 1px solid var(--senti-auth-soft);
  border-radius: 18px;
  background: rgba(255,255,255,.92);
  box-shadow: var(--senti-auth-shadow);
  padding: 28px;
  backdrop-filter: blur(14px);
}

.senti-auth-card--narrow {
  max-width: 440px;
}

.senti-auth-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 28px;
}

.senti-auth-brand img {
  display: block;
  width: 176px;
  max-width: 48vw;
  height: auto;
}

.senti-auth-brand-text {
  font-size: 13px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--senti-auth-muted);
}

.senti-auth-kicker {
  margin: 0 0 12px;
  font-size: 12px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--senti-auth-muted);
}

.senti-auth-title,
body.senti-auth-page h1.senti-auth-title {
  margin: 0;
  font-family: var(--senti-auth-serif);
  font-size: clamp(38px,5vw,62px);
  line-height: 1.02;
  letter-spacing: -.035em;
  font-weight: 700;
  color: #050505;
}

.senti-auth-wrap--compact .senti-auth-title,
body.senti-auth-page .senti-auth-wrap--compact h1.senti-auth-title {
  font-size: clamp(36px,4.6vw,56px);
}

.senti-auth-lede {
  margin: 22px 0 0;
  max-width: 68ch;
  font-size: 17px;
  line-height: 1.72;
  color: rgba(0,0,0,.66);
}

.senti-auth-bullets {
  margin: 20px 0 0;
  padding: 0;
  display: grid;
  gap: 10px;
  list-style: none;
  color: rgba(0,0,0,.58);
  font-size: 15px;
  line-height: 1.5;
}

.senti-auth-bullets li {
  position: relative;
  padding-left: 22px;
}

.senti-auth-bullets li:before {
  content: "";
  position: absolute;
  left: 0;
  top: .65em;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #111;
  opacity: .45;
}

.senti-auth-note {
  margin: 22px 0 0;
  max-width: 68ch;
  font-size: 13px;
  line-height: 1.6;
  color: rgba(0,0,0,.48);
}

.senti-auth-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin: 0 0 20px;
}

.senti-auth-card-title {
  margin: 0;
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(0,0,0,.50);
  font-weight: 600;
}

.senti-auth-required-note {
  margin: -4px 0 12px;
  color: rgba(0,0,0,.48);
  font-size: 12px;
  line-height: 1.35;
}

.senti-auth-required {
  color: #8f1d1d;
  font-weight: 800;
  margin-left: 2px;
}

.senti-auth-lang {
  display: inline-flex;
  gap: 5px;
  align-items: center;
  font-size: 12px;
  color: rgba(0,0,0,.42);
  white-space: nowrap;
}

.senti-auth-lang a {
  color: inherit;
  text-decoration: none;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 4px 7px;
  transition: border-color .16s ease,color .16s ease,background .16s ease;
}

.senti-auth-lang a.is-on {
  border-color: rgba(0,0,0,.18);
  color: #111;
  background: #fff;
}

.senti-auth-stack {
  display: grid;
  gap: 15px;
}

.senti-auth-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.senti-auth-field {
  display: grid;
  gap: 8px;
}

.senti-auth-label {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  color: rgba(0,0,0,.78);
  font-size: 14px;
  line-height: 1.3;
  font-weight: 600;
}

.senti-auth-hint {
  font-weight: 400;
  color: rgba(0,0,0,.44);
  font-size: 12px;
  white-space: nowrap;
}

.senti-auth-label > span:first-child {
  display: inline-flex;
  align-items: baseline;
  gap: 2px;
  min-width: 0;
}

.senti-auth-label > span:first-child .senti-auth-required {
  flex: 0 0 auto;
}

.senti-auth-input,
.senti-auth-page input[type="email"].senti-auth-input,
.senti-auth-page input[type="text"].senti-auth-input,
.senti-auth-page input[type="password"].senti-auth-input {
  width: 100%;
  min-height: 54px;
  border: 1px solid rgba(0,0,0,.14);
  border-radius: 14px;
  background: #fff;
  padding: 0 16px;
  color: #080808;
  font: 500 16px/1.2 var(--senti-auth-sans);
  outline: none;
  box-shadow: 0 1px 0 rgba(255,255,255,.75) inset;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.senti-auth-input::placeholder {
  color: rgba(0,0,0,.34);
}

.senti-auth-input:focus {
  border-color: #111;
  box-shadow: 0 0 0 4px rgba(0,0,0,.055);
}

.senti-auth-radio-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.senti-auth-check,
.senti-auth-radio {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 14px;
  background: #fff;
  padding: 0 14px;
  color: rgba(0,0,0,.76);
  font-weight: 500;
}

.senti-auth-check input,
.senti-auth-radio input {
  width: 18px;
  height: 18px;
  accent-color: #111;
  flex: 0 0 auto;
}

.senti-auth-dob {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap;
}

.senti-auth-dob .senti-auth-input {
  text-align: center;
  padding: 0 8px;
}

.senti-auth-dob-day,.senti-auth-dob-month {
  width: 70px;
  flex: 0 0 70px;
}

.senti-auth-dob-year {
  width: 102px;
  flex: 0 0 102px;
}

.senti-auth-dot {
  color: rgba(0,0,0,.32);
  font-weight: 700;
}

.senti-auth-btn-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 4px;
}

.senti-auth-btn,
.senti-auth-page button.senti-auth-btn,
.senti-auth-page a.senti-auth-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  border: 1px solid #111;
  border-radius: 14px;
  background: #111;
  color: #fff;
  padding: 0 18px;
  text-decoration: none;
  font: 800 15px/1 var(--senti-auth-sans);
  cursor: pointer;
  transition: transform .16s ease, background .16s ease, color .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.senti-auth-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(0,0,0,.10);
}

.senti-auth-btn--ghost,
.senti-auth-page a.senti-auth-btn--ghost {
  background: #fff;
  color: #111;
  border-color: rgba(0,0,0,.18);
}

.senti-auth-btn--ghost:hover {
  border-color: #111;
  background: #111;
  color: #fff;
}

.senti-auth-link {
  color: #111;
  text-decoration: none;
  border-bottom: 1px solid rgba(0,0,0,.34);
}

.senti-auth-link:hover {
  border-bottom-color: #111;
}

.senti-auth-footer {
  margin-top: 18px;
  text-align: right;
  color: rgba(0,0,0,.42);
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.senti-auth-error,
.senti-auth-status {
  border-radius: 14px;
  padding: 12px 14px;
  font-size: 13px;
  line-height: 1.45;
}

.senti-auth-error {
  border: 1px solid rgba(170,0,0,.18);
  background: rgba(170,0,0,.055);
  color: #8b1111;
}

.senti-auth-status {
  border: 1px solid rgba(0,90,40,.16);
  background: rgba(0,130,60,.055);
  color: #0c5a2f;
}

.senti-auth-error p,.senti-auth-status p {
  margin: .25em 0;
}

.senti-auth-error ul {
  margin: .2em 0 .2em 18px;
  padding: 0;
}

@media (max-width:920px) {
  .senti-auth-wrap {
    align-items: flex-start;
    padding: 22px 0 36px;
  }

  .senti-auth-grid,.senti-auth-grid--compact {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .senti-auth-right {
    justify-content: stretch;
  }

  .senti-auth-card {
    max-width: none;
  }

  .senti-auth-title,
  body.senti-auth-page h1.senti-auth-title {
    font-size: clamp(36px,11vw,54px);
  }
}

@media (max-width:560px) {
  .senti-auth-wrap {
    width: min(100% - 24px,1180px);
    padding: 18px 0 28px;
  }

  .senti-auth-card {
    padding: 20px;
    border-radius: 16px;
  }

  .senti-auth-brand img {
    width: 140px;
  }

  .senti-auth-lede {
    font-size: 15px;
    line-height: 1.62;
  }

  .senti-auth-grid-2,.senti-auth-btn-row,.senti-auth-radio-grid {
    grid-template-columns: 1fr;
  }

  .senti-auth-dob-day,.senti-auth-dob-month {
    width: 64px;
    flex-basis: 64px;
  }

  .senti-auth-dob-year {
    width: 92px;
    flex-basis: 92px;
  }
}
