/**
 * @file
 * User auth forms — login, register, password reset.
 * Inputs/buttons come from forms.css + buttons.css; this file only lays out
 * the auth card and tokenizes the password-strength widget.
 * Loaded globally via platform/base (login does not attach user/drupal.user).
 */

/* ==========================================================================
   Auth card — constrained width, centered
   ========================================================================== */
.user-login-form,
.user-register-form,
.user-pass {
  width: 100%;
  max-width: 28rem;
  margin-inline: auto;
  padding: var(--space-6);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  box-sizing: border-box;
}

@media (min-width: 40rem) {
  .user-login-form,
  .user-register-form,
  .user-pass {
    padding: var(--space-8);
  }
}

/* size="60" on Drupal inputs can force a wide intrinsic width — cap it. */
.user-login-form input,
.user-register-form input,
.user-pass input,
.user-login-form select,
.user-register-form select,
.user-pass select,
.user-login-form textarea,
.user-register-form textarea,
.user-pass textarea {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Title above the card. */
.path-user:has(.user-login-form) .block-page-title-block,
.path-user:has(.user-register-form) .block-page-title-block,
.path-user:has(.user-pass) .block-page-title-block,
.path-user:has(.user-login-form) .block-system-main-block,
.path-user:has(.user-register-form) .block-system-main-block,
.path-user:has(.user-pass) .block-system-main-block {
  width: 100%;
  max-width: 28rem;
  margin-inline: auto;
}

.path-user:has(.user-login-form) .block-page-title-block,
.path-user:has(.user-register-form) .block-page-title-block,
.path-user:has(.user-pass) .block-page-title-block {
  text-align: center;
}

.path-user:has(.user-login-form) .page-title,
.path-user:has(.user-register-form) .page-title,
.path-user:has(.user-pass) .page-title {
  margin-bottom: var(--space-6);
  font-size: clamp(1.5rem, 2.5vw, var(--text-3xl));
  font-weight: var(--weight-extra);
  letter-spacing: -0.02em;
}

.user-login-form .form-item,
.user-register-form .form-item,
.user-pass .form-item {
  margin-bottom: var(--space-5);
}

/* Username is synced from email and disabled on register — keep it out of the UI. */
.user-register-form .form-item-name {
  display: none;
}

.user-login-form .form-actions,
.user-register-form .form-actions,
.user-pass .form-actions {
  margin-top: var(--space-6);
}

.user-login-form .form-actions .button,
.user-login-form .form-actions .form-submit,
.user-register-form .form-actions .button,
.user-register-form .form-actions .form-submit,
.user-pass .form-actions .button,
.user-pass .form-actions .form-submit {
  width: 100%;
}

/* Google SSO lives inside the login/register card (theme form alter). */
#openid-connect-login-form {
  display: none;
}

.auth-google {
  margin-bottom: var(--space-2);
}

a.openid-connect-google-login {
  box-sizing: border-box;
  width: 100%;
  text-decoration: none;
  box-shadow: var(--shadow-xs);
}

a.openid-connect-google-login::before {
  content: "";
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23EA4335' d='M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z'/%3E%3Cpath fill='%234285F4' d='M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z'/%3E%3Cpath fill='%23FBBC05' d='M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z'/%3E%3Cpath fill='%2334A853' d='M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 18px 18px;
}

a.openid-connect-google-login:hover {
  box-shadow: var(--shadow-sm);
}

.auth-divider {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin: var(--space-6) 0 var(--space-5);
  font-size: var(--text-sm);
  font-weight: var(--weight-medium);
  color: var(--color-text-muted);
  text-transform: lowercase;
}

.auth-divider::before,
.auth-divider::after {
  content: "";
  flex: 1 1 auto;
  border-top: 1px solid var(--color-border);
}

/* Auth local-tasks render in the bottom app bar (layout/bottom-nav.css). */

/* ==========================================================================
   Password strength / confirm (Drupal user module widget)
   ========================================================================== */
.password-strength__meter {
  margin-top: var(--space-2);
  height: 6px;
  overflow: hidden;
  background-color: var(--color-surface-alt);
  border-radius: var(--radius-pill);
}

.password-strength__indicator {
  height: 100%;
  transition: width var(--transition-slow), background-color var(--transition);
  background-color: var(--color-success);
  border-radius: var(--radius-pill);
}

.password-strength__indicator.is-weak {
  background-color: var(--color-danger);
}

.password-strength__indicator.is-fair {
  background-color: var(--color-warning);
}

.password-strength__indicator.is-good {
  background-color: var(--color-primary);
}

.password-strength__indicator.is-strong {
  background-color: var(--color-success);
}

.password-strength,
.password-confirm,
.password-field,
.password-confirm-match,
.password-confirm-message {
  width: 100%;
  max-width: 100%;
}

.password-suggestions {
  max-width: none;
  margin: var(--space-3) 0;
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface-alt);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

.password-suggestions ul {
  margin-bottom: 0;
}

.confirm-parent,
.password-parent {
  clear: both;
  overflow: visible;
  max-width: none;
  margin: 0;
}

.password-confirm .ok {
  color: var(--color-success);
  font-weight: var(--weight-semibold);
}

.password-confirm .error {
  color: var(--color-danger);
  font-weight: var(--weight-semibold);
}

/* ==========================================================================
   Log out — bottom of account edit form (/user/%/edit)
   ========================================================================== */
.user-form-logout {
  margin-top: var(--space-8);
  padding-top: var(--space-6);
  border-top: 1px solid var(--color-border);
}

.user-form-logout .btn {
  display: inline-flex;
}
