.auth-page {
  min-height: 100vh;
}

.auth-layout {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
}

.auth-card {
  width: min(100%, 560px);
  padding: 30px;
}

.auth-card--wide {
  width: min(100%, 680px);
}

.auth-card--landing {
  width: min(100%, 620px);
}

.auth-link-row {
  margin: 18px 0 0;
  color: var(--muted);
}

.password-feedback {
  display: grid;
  gap: 12px;
  margin-top: 12px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.78);
}

.password-strength {
  display: grid;
  gap: 8px;
}

.password-strength__meter {
  position: relative;
  width: 100%;
  height: 8px;
  border-radius: 999px;
  background: #e7ebf1;
  overflow: hidden;
}

.password-strength__fill {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: #cbd5e1;
  transition: width 0.2s ease, background-color 0.2s ease;
}

.password-strength__label {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--muted);
}

.password-feedback[data-strength="very-weak"] .password-strength__fill,
.password-feedback[data-strength="weak"] .password-strength__fill {
  background: #dc2626;
}

.password-feedback[data-strength="fair"] .password-strength__fill {
  background: #d97706;
}

.password-feedback[data-strength="strong"] .password-strength__fill {
  background: #2563eb;
}

.password-feedback[data-strength="very-strong"] .password-strength__fill {
  background: #16a34a;
}

.password-rules {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.password-rules__item {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.4;
}

.password-rules__item::before {
  content: "•";
  color: #94a3b8;
  font-size: 1rem;
  line-height: 1;
}

.password-rules__item.is-met {
  color: var(--text);
}

.password-rules__item.is-met::before {
  content: "✓";
  color: #16a34a;
  font-weight: 700;
}

.password-match {
  min-height: 20px;
  margin-top: 10px;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--muted);
}

.password-match.is-match {
  color: #16a34a;
}

.password-match.is-mismatch {
  color: #CF418A;
}

.password-match[hidden] {
    display: none !important;
}

.password-match:not([hidden]) {
    margin-top: 10px;
}