/* FINATA signup: existing portal tokens, readable forms, no decorative motion. */
html:has(.signup-page), body.signup-page { overflow-x: clip; }
.signup-shell { padding-bottom: 40px; }
.signup-page .account-header, .signup-page .account-header .detail-nav-actions {
  position: static; inset: auto; display: flex; align-items: center; gap: 8px;
}
.signup-page .account-header :is(.back-link, .home-link) { position: static; inset: auto; }
.signup-page .account-header::before { display: none; }
.signup-page .signup-intro { padding: 40px 0; }
.signup-intro img { display: block; margin-bottom: 16px; }
.signup-page .signup-brand { color: var(--portal-accent) !important; font-weight: 700; }
.signup-page h1 { font-size: 38px; line-height: 1.3; margin: 12px 0 20px; }
.signup-page h2 { font-size: 23px; line-height: 1.4; margin: 0 0 16px; }
.signup-page h3 { font-size: 17px; margin: 0 0 12px; }
.signup-page :is(p, dd, label) { font-size: 15px; line-height: 1.7; word-break: keep-all; overflow-wrap: anywhere; }
.signup-page .signup-button {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 48px; padding: 10px 20px; border: 1px solid var(--portal-line-strong);
  border-radius: 8px; background: var(--portal-surface); color: var(--portal-text);
  font: 700 15px var(--font); text-decoration: none; cursor: pointer;
}
.signup-page .signup-button.primary { background: var(--portal-accent); color: var(--portal-surface); border-color: var(--portal-accent); }
.signup-page .signup-button:hover:not(:disabled) { filter: brightness(.92); }
.signup-page .signup-button:active:not(:disabled) { transform: translateY(1px); }
.signup-page :is(button, a, input):focus-visible { outline: 3px solid var(--portal-accent); outline-offset: 3px; }
.signup-page button:disabled { cursor: not-allowed; opacity: .6; }
.signup-benefits { padding: 28px 0 36px; border-top: 1px solid var(--portal-line); }
.signup-page dl { margin: 0 0 20px; }
.signup-page dl > div { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--portal-line); }
.signup-page dt { font-size: 15px; font-weight: 700; }
.signup-page dd { margin: 0; }
.signup-page a:not(.signup-button):not(.back-link):not(.home-link) { color: var(--portal-accent); }
.signup-page .signup-registration { padding: 32px; scroll-margin-top: 20px; }
.signup-form-heading { margin-bottom: 24px; }
.signup-provider-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.signup-provider-buttons button { flex: 1 1 180px; }
.signup-account-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; }
.signup-account-actions .signup-button { flex: 0 0 auto; }
.signup-page .signup-status { padding: 12px 0; font-weight: 650; }
.signup-page .signup-status[data-state="error"] { color: var(--portal-negative) !important; }
.signup-page .signup-status[data-state="success"] { color: var(--portal-positive) !important; }
.signup-page fieldset { padding: 24px 0 0; margin: 12px 0 24px; border: 0; border-top: 1px solid var(--portal-line); min-width: 0; }
.signup-page legend { padding: 0 12px 0 0; font-size: 19px; font-weight: 700; }
.signup-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.signup-fields label { display: flex; flex-direction: column; font-weight: 650; gap: 6px; }
.signup-fields label > span { font-size: 13px; color: var(--portal-muted); }
.signup-page .signup-fields input {
  box-sizing: border-box; width: 100%; min-width: 0; height: 48px; padding: 10px 12px;
  border: 1px solid var(--portal-line-strong); border-radius: 8px;
  background: var(--portal-surface-soft); color: var(--portal-text); font: 16px var(--font);
}
.signup-page .signup-fields input:disabled { opacity: 1; }
.signup-page .signup-help, .signup-fields small { font-size: 13px; font-weight: 400; }
.signup-consent-notice { padding: 20px 0; margin: 16px 0; border-top: 1px solid var(--portal-line); border-bottom: 1px solid var(--portal-line); }
.signup-consent-notice dl > div { grid-template-columns: 92px minmax(0, 1fr); border: 0; padding: 8px 0; }
.signup-consents { display: grid; gap: 8px; margin-bottom: 24px; }
.signup-consents label { display: flex; gap: 12px; align-items: flex-start; min-height: 44px; padding: 8px 0; }
.signup-consents input { flex: 0 0 20px; width: 20px; height: 20px; margin: 3px 0 0; accent-color: var(--portal-accent); }
.signup-footer { display: flex; flex-wrap: wrap; gap: 8px 24px; padding: 28px 0; }
.signup-footer a { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; }
.signup-page [hidden] { display: none !important; }
@media (max-width: 600px) {
  .signup-page h1 { font-size: 30px; }
  .signup-page h2 { font-size: 21px; }
  .signup-page .signup-registration { padding: 20px; }
  .signup-page dl > div, .signup-fields { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .signup-fields { gap: 20px; }
  .signup-page #signupSubmit { width: 100%; }
  .signup-account-actions .signup-button { padding-inline: 8px; }
}
@media (prefers-reduced-motion: reduce) { .signup-page .signup-button:active:not(:disabled) { transform: none; } }
