/* UI-4 authentication and legal documents. No selectors apply to private pages. */
body.pn-auth {
    --tblr-font-sans-serif: 'Manrope', system-ui, sans-serif;
    --tblr-body-font-family: var(--tblr-font-sans-serif);
    --tblr-primary: #2856B6;
    --tblr-primary-rgb: 40, 86, 182;
    --tblr-link-color: #2856B6;
    --cn-brand-navy: #2856B6;
    --cn-brand-navy-hover: #204592;
    font-family: var(--tblr-font-sans-serif);
    background: #f8fafc;
    color: #252c38;
}
.pn-auth :is(h1,h2,h3,.card-title) { font-family: 'Bricolage Grotesque', system-ui, sans-serif; font-weight: 700; }
.pn-auth a:not(.btn) { color: #2856B6; }
.pn-auth :focus-visible { outline: 3px solid #2856B6; outline-offset: 3px; }
.pn-auth #main-content:focus { outline: none; }
.pn-auth .page-center { min-height: 100vh; justify-content: flex-start; padding-block: clamp(1.5rem, 4vh, 3rem) 2rem; }
.pn-auth .auth-shell { width: 100%; max-width: 30rem; padding-inline: 1rem; overflow-wrap: anywhere; }
.pn-auth .auth-brand { margin-bottom: 1.5rem; }
.pn-auth .auth-brand img { width: 9.5rem; height: auto; filter: none; }
.pn-auth .card-md { background: #fff; border: 1px solid #e4e7ec; border-radius: .625rem; box-shadow: 0 2px 8px #18243a08; }
.pn-auth .card-body { padding: 1.75rem; min-width: 0; }
.pn-auth .auth-footer { background: #fbfcfe; border-radius: 0 0 .625rem .625rem; }
.pn-auth .form-label { font-weight: 600; }
.pn-auth .form-control { min-height: 2.75rem; min-width: 0; }
.pn-auth .input-group-text { background: #f8fafc; }
.pn-auth .form-control:focus { border-color: #2856B6; box-shadow: 0 0 0 .2rem #2856b620; }
.pn-auth .btn { min-height: 2.75rem; white-space: normal; }
/* FIX-5 K4: the show-password control sits inside the field's border, as its right-hand end, at every width. */
.pn-auth .input-group-flat .password-toggle { background: var(--tblr-bg-forms, #fff); color: #687386; border: var(--tblr-border-width, 1px) solid var(--tblr-border-color); border-left: 0; border-radius: 0 var(--tblr-border-radius) var(--tblr-border-radius) 0; }
.pn-auth .input-group-flat .form-control:has(+ .password-toggle) { border-right: 0; }
.pn-auth .input-group-flat:focus-within .password-toggle { border-color: var(--tblr-primary, #2856B6); }
.pn-auth .form-footer { margin-top: 1.5rem; }
.pn-auth .alert { display: block; overflow-wrap: anywhere; }
.pn-auth .auth-success-email { padding: .75rem; border-radius: .375rem; background: #eaf0fc; color: #2856B6; font-weight: 600; overflow-wrap: anywhere; }
.pn-auth .auth-steps { margin-bottom: 1.25rem; font-size: .8125rem; }
.pn-auth .auth-steps .step-item { min-width: 0; }
.pn-auth .auth-consent .form-check { padding-block: .5rem; margin-bottom: 0; min-height: 2.75rem; line-height: 1.6; }
.pn-auth .auth-consent .form-check-input { width: 1.25rem; height: 1.25rem; margin-top: .125rem; }
.pn-auth summary { cursor: pointer; padding-block: .5rem; }
.pn-auth [data-auth-footer] { line-height: 1.6; }
.pn-auth .pn-legal-shell { max-width: 54rem; }
@media (max-width: 575.98px) {
    .pn-auth .page-center { padding-top: 1.25rem; }
    .pn-auth .card-body { padding: 1.25rem; }
    .pn-auth .form-label-description { float: none; display: block; margin-top: .25rem; }
    .pn-auth .cn-code-boxes { --tblr-gutter-x: .25rem; }
    .pn-auth .cn-code-boxes input { padding-inline: .25rem !important; }
}
