/* Standalone sign-in, invitation, two-factor authentication and access notices. */
body.p4u-auth, body.p4u-blocked {
    color-scheme: light;
    --dark: #122342; --muted: #56677e; --blue: #245de0; --border: #dce3ec;
    --shadow: 0 8px 32px rgb(20 37 66 / 7%);
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    background: #f4f6fa;
    min-height: 100vh;
    min-height: 100dvh;
    height: auto;
    overflow: auto;
    -webkit-text-size-adjust: 100%;
    padding: 32px 20px;
}
body.p4u-auth::before, body.p4u-auth::after, body.p4u-blocked::before, body.p4u-blocked::after { content: none; }
.p4u-auth .bg-logo, .p4u-blocked .bg-logo { display: none; }
body.p4u-auth { display: flex; justify-content: center; align-items: center; }
body.p4u-auth :is(.card,.login-card,.invalid-card) { width: 100%; max-width: 520px; padding: 32px; border: 1px solid #dce3ec; border-radius: 20px; background: white; box-shadow: var(--shadow); margin: auto; overflow: visible; }
body.p4u-auth .login-shell, body.p4u-auth .invalid-wrap { max-width: 520px; width: 100%; }
body.p4u-auth :is(.card,.login-card,.invalid-card)::before, body.p4u-auth :is(.card,.login-card,.invalid-card)::after { content: none; }
body.p4u-auth :is(.logo,.logo-card) { background: transparent; box-shadow: none; border: 0; border-radius: 0; max-width: 128px; height: 72px; padding: 0; margin: 0 auto 24px; }
body.p4u-auth :is(.logo,.logo-card) img { object-fit: contain; max-height: 72px; filter: none; }
body.p4u-auth h1 { font-size: 28px; line-height: 1.2; letter-spacing: -.035em; font-weight: 750; }
body.p4u-auth .subtitle { color: #56677e; font-size: 14px; line-height: 1.6; font-weight: 400; }
body.p4u-auth :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), select, textarea) { box-sizing: border-box; max-width: 100%; width: 100%; min-height: 48px; border: 1px solid #c6d2e3; border-radius: 9px; background: white; padding: 11px 13px; color: #17243b; font: inherit; font-size: 16px; }
body.p4u-auth input:focus { outline: 0; border-color: #245de0; box-shadow: 0 0 0 3px #dde7ff; }
body.p4u-auth label { font-size: 13px; font-weight: 650; }
body.p4u-auth :is(.system-pill span,.client-pill,.invite-meta,.security-note,.error-box) { border-radius: 10px; box-shadow: none; font-weight: 500; font-size: 12px; line-height: 1.6; }
body.p4u-auth .system-pill span { color: #446389; background: #eef3fb; border-color: #dce5f4; padding: 6px 10px; }
body.p4u-auth .system-pill span::before { content: none; }
body.p4u-auth :is(button[type="submit"],.submit-btn,.login-btn,.btn) { min-height: 48px; padding: 12px 16px; border-radius: 10px; font-size: 14px; font-weight: 650; background: #245de0; color: white; border: 0; box-shadow: none; }
body.p4u-auth :is(a,button):focus-visible { outline: 3px solid #5a83eb; outline-offset: 3px; }
body.p4u-auth .security-note { background: #f6f8fc; padding: 14px; }
body.p4u-auth .footer-note { color: #6d7c91; font-size: 11px; font-weight: 500; }
body.p4u-auth .qr-box { max-width: 100%; }
body.p4u-auth .qr-box img { max-width: 210px; width: 100%; height: auto; }
body.p4u-auth pre, body.p4u-auth code { overflow-wrap: anywhere; white-space: pre-wrap; }
body.p4u-blocked .blocked-shell { max-width: 1180px; width: 100%; }
body.p4u-blocked :is(.hero,.blocked-hero) { border-radius: 20px; padding: 30px; background: #122342; box-shadow: var(--shadow); }
body.p4u-blocked :is(.hero,.blocked-hero)::after { content: none; }
body.p4u-blocked :is(.hero,.blocked-hero) h2 { font-size: 30px; line-height: 1.2; }
body.p4u-blocked :is(.blocked-card,.card,.invoice-card) { border-radius: 14px; box-shadow: var(--shadow); }
body.p4u-blocked button, body.p4u-blocked .btn { min-height: 44px; border-radius: 10px; }
body.p4u-blocked :is(p,li) { line-height: 1.6; }
@media(max-width:640px) {
    body.p4u-auth, body.p4u-blocked { padding: 20px 14px; align-items: flex-start; }
    body.p4u-auth :is(.card,.login-card,.invalid-card) { border-radius: 16px; padding: 26px 22px; }
    body.p4u-auth h1 { font-size: 26px; }
    body.p4u-auth :is(.backup-grid,.two-col,.steps) { max-width: 100%; }
    body.p4u-blocked :is(.hero,.blocked-hero) { padding: 24px 20px; }
    body.p4u-blocked :is(.hero,.blocked-hero) h2 { font-size: 26px; }
    body.p4u-blocked :is(.invoice-grid,.info-grid,.summary-grid,.two-col,.blocked-grid) { grid-template-columns: minmax(0,1fr); }
}
@media(max-height:720px) { body.p4u-auth { align-items: flex-start; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
