.passkey-login-button {
  width: 100%;
  margin: .35rem 0 .75rem;
}

.login-divider {
  display: flex;
  align-items: center;
  gap: .65rem;
  margin: 0 0 .75rem;
  color: var(--muted);
  font-size: .82rem;
}

.login-divider::before,
.login-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--line);
}

.passkey-settings {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}

.passkey-settings h3 {
  margin: .1rem 0;
}

.passkey-list {
  display: grid;
  gap: .6rem;
  margin: .8rem 0;
}

.passkey-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  padding: .8rem;
  border-radius: 14px;
  background: #f4f7f8;
}

.passkey-row strong,
.passkey-row small {
  display: block;
}

.passkey-row small {
  margin-top: .2rem;
  color: var(--muted);
}

.passkey-error {
  margin: .6rem 0;
}

.danger-text {
  color: var(--danger, #a21b2d);
}

/* The server session is the only lock. It hides already-open app dialogs
   while the sign-in dialog is active, without creating a second local gate. */
body.auth-locked > :not(#onboardingDialog) {
  visibility: hidden !important;
}

body.auth-locked #onboardingDialog::backdrop {
  background: #f7fafb;
}

@media (max-width: 560px) {
  .passkey-row {
    align-items: flex-start;
    flex-direction: column;
  }
}