/* Account forms extend the Hub tokens; keep spacing consistent across both roles. */
.account-page {
  --account-field-gap: 8px;
  --account-group-gap: 24px;
  --account-section-gap: 32px;
  font-size: 16px;
  line-height: 1.6;
}
.account-shell {
  max-width: 640px;
  margin: 0 auto;
  padding: max(24px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(32px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));
}
.account-back, .account-footer a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.account-back { margin-bottom: 16px; }
.account-card {
  padding: clamp(20px, 4vw, 32px);
  background: var(--white);
  border: 1px solid var(--warm-cream-200);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}
.account-heading { margin-bottom: var(--account-section-gap); }
.account-heading h1 { font-size: clamp(24px, 3vw, 28px); line-height: 1.3; margin-bottom: 12px; }
.account-heading p, .account-hint { color: var(--gray-600); }
.account-form { display: grid; gap: var(--account-group-gap); }
.account-field { display: grid; gap: var(--account-field-gap); min-width: 0; }
.account-field .form-label { font-size: 16px; margin: 0; }
.account-page .input { min-height: 48px; font-size: 16px; line-height: 1.5; }
.account-page .btn { min-height: 48px; font-size: 16px; white-space: normal; }
.account-actions { display: grid; gap: 12px; margin-top: 8px; }
.account-confirmation { display: flex; align-items: flex-start; gap: 12px; padding: 16px; background: var(--warm-cream-50); border-radius: var(--radius-sm); cursor: pointer; }
.account-confirmation input { flex: 0 0 22px; width: 22px; height: 22px; margin-top: 2px; accent-color: var(--lg-red); }
.account-message:not(:empty) { margin-top: var(--account-group-gap); padding: 16px; border: 1px solid var(--warm-cream-300); border-radius: var(--radius-sm); background: var(--warm-cream-50); overflow-wrap: anywhere; }
.account-footer { margin-top: 16px; }
.account-result { margin-top: var(--account-section-gap); padding-top: var(--account-group-gap); border-top: 1px solid var(--warm-cream-200); }
.account-result h2 { font-size: 20px; margin-bottom: 16px; }
.account-page :focus-visible { outline: 3px solid var(--lg-red); outline-offset: 3px; }
.account-page [hidden] { display: none !important; }
@media (prefers-reduced-motion: reduce) { .account-page *, .account-page *::before, .account-page *::after { transition: none !important; } }

.account-step-heading { font-size: 18px; margin-bottom: 8px; }
.account-link-entry { border-top: 1px solid var(--warm-cream-200); padding-top: 16px; }
.account-link-entry summary { cursor: pointer; min-height: 44px; display: list-item; }
.account-link-entry[open] summary { margin-bottom: 16px; }
.account-message-preview { margin-top: 24px; }
.account-page textarea.input { height: auto; resize: vertical; }
.account-recovery-settings { margin-top:32px; }
.account-recovery-settings .account-hint { margin:16px 0; }
#password-self-service:not([hidden]) { margin-bottom:32px; }

#password-account:not([hidden]) { margin-bottom:24px; overflow-wrap:anywhere; }
