/* ==========================================================================
   Account pages (quality pass, 2026-10-03): Identity's pages in the product's
   own language. The sheet styles come from portal.css; this file tames the
   Bootstrap markup the remaining Identity pages still use.
   ========================================================================== */
.acct { min-height: 100vh; }
.acct__top { display: flex; justify-content: center; padding: 1.5rem 1rem 0; }
.acct__main { width: 100%; max-width: calc(26rem + 2rem); margin: 0 auto; padding: clamp(2rem, 1rem + 4vw, 4rem) 1rem 4rem; }
.acct__main > h1, .acct__main h1 { margin: 0.5rem 0 0; font-size: clamp(1.875rem, 1.6rem + 1.2vw, 2.375rem); font-weight: 700; letter-spacing: -0.034em; line-height: 1.1; color: var(--tp-pub-ink); }
.acct__main h2, .acct__main h3 { margin: 1.5rem 0 0.5rem; font-size: 1.0625rem; font-weight: 650; color: var(--tp-pub-ink); }
.acct__main hr { display: none; }
.acct__main .row { display: block; }
.acct__main [class*="col-"] { width: 100%; max-width: none; padding: 0; }
.acct__submit { width: 100%; justify-content: center; }
.acct__aside { float: right; font-weight: 500; color: var(--tp-text-muted); }
.acct__aside:hover { color: var(--tp-pub-ink); }
.acct__or { display: flex; align-items: center; gap: 0.75rem; font-size: 0.8125rem; color: var(--tp-text-muted); }
.acct__or::before, .acct__or::after { content: ""; flex: 1; height: 1px; background: var(--tp-pub-hairline); }
.acct__foot { margin-top: 2rem; font-size: 0.9375rem; color: var(--tp-text-secondary); }

/* Identity's untouched pages: Bootstrap classes, in our tokens. */
.acct .form-floating, .acct .mb-3 { display: grid; gap: 0.375rem; margin-bottom: 1rem; }
.acct .form-floating > label, .acct .form-label { order: -1; font-size: 0.875rem; font-weight: 560; color: var(--tp-text-primary); }
.acct .form-control {
  width: 100%; min-height: 48px; padding: 0 0.875rem;
  border: 1px solid var(--tp-pub-hairline-strong); border-radius: 0.5rem;
  background: var(--tp-pub-page); color: var(--tp-text-primary); font: inherit;
}
.acct .form-control:focus { outline: none; border-color: var(--tp-brand); box-shadow: 0 0 0 3px var(--tp-focus-ring); }
.acct .form-control::placeholder { color: transparent; }
.acct .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 1.25rem; border-radius: 999px; font: inherit; font-weight: 560; cursor: pointer; }
.acct .btn-primary { width: 100%; border: 1px solid var(--tp-pub-ink); background: var(--tp-pub-ink); color: var(--tp-pub-page); }
.acct .btn-link { border: 0; background: none; color: var(--tp-pub-ink); text-decoration: underline; text-underline-offset: 0.22em; }
.acct .text-danger { color: var(--tp-danger); font-size: 0.875rem; }
.acct .alert { padding: 0.875rem 1rem; border-left: 2px solid var(--tp-pub-hairline-strong); background: color-mix(in srgb, var(--tp-pub-ink) 3%, transparent); }
.acct a:not(.ptl-brand):not(.btn) { color: var(--tp-pub-ink); text-decoration: underline; text-decoration-color: var(--tp-pub-hairline-strong); text-underline-offset: 0.22em; }
.acct .row { margin: 0; }
.acct .form-floating > label { position: static; height: auto; padding: 0; border: 0; transform: none; opacity: 1; }
.acct .form-floating > .form-control { height: auto; min-height: 48px; padding: 0 0.875rem; }
.acct .acct__main > h1 + .row { margin-top: 1.75rem; }
