/* portal-auth.css — the single-column resident auth pages (forgot · reset · activate · accept-invite): body.portal-auth-page > .auth-card.
 * RESPONSIVE-01 (A, 2026-10-15): these four pages linked a stylesheet that never existed (/assets/css/portal.css, a 404) and rendered as raw HTML — an unstyled
 * password-reset page on a phone is not a page. Scoped to body.portal-auth-page; the resident sign-in and register pages (.auth-wrap) keep portal.css. 16-px inputs, 44-px controls, 16-px gutters. */
body.portal-auth-page { margin: 0; min-height: 100vh; min-height: 100dvh; display: flex; align-items: center; justify-content: center; padding: 16px;
  background: linear-gradient(135deg, #0284c7 0%, #0f172a 100%); font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color: #0f172a; }
body.portal-auth-page .auth-card { background: #fff; border-radius: 14px; box-shadow: 0 20px 40px rgba(0,0,0,.25); width: 100%; max-width: 440px; padding: 28px 24px; box-sizing: border-box; overflow: visible; }
body.portal-auth-page .auth-logo { text-align: center; margin-bottom: 14px; }
body.portal-auth-page .auth-logo > * { margin-left: auto; margin-right: auto; }
body.portal-auth-page .auth-park-name { margin-top: 8px; font-weight: 700; font-size: 15px; color: #334155; }
body.portal-auth-page .auth-title { font-size: 22px; line-height: 1.25; margin: 6px 0; text-align: center; }
body.portal-auth-page .auth-sub { margin: 0 0 10px; font-size: 14px; line-height: 1.5; color: #475569; text-align: center; }
body.portal-auth-page .auth-error { margin: 10px 0; padding: 10px 12px; border: 1px solid #fecaca; border-radius: 8px; background: #fef2f2; color: #b91c1c; font-size: 14px; }
body.portal-auth-page .auth-success-icon { width: 56px; height: 56px; margin: 0 auto 12px; border-radius: 50%; background: #dcfce7; color: #15803d; display: flex; align-items: center; justify-content: center; font-size: 28px; font-weight: 700; }
body.portal-auth-page .form-group { margin: 14px 0; }
body.portal-auth-page label { display: block; margin-bottom: 6px; font-size: 14px; font-weight: 600; }
body.portal-auth-page .form-control { display: block; width: 100%; box-sizing: border-box; min-height: 44px; padding: 10px 12px; border: 1px solid #64748b; border-radius: 8px; font: inherit; font-size: 16px; background: #fff; color: inherit; }
body.portal-auth-page .form-control:focus { outline: 2px solid #0284c7; outline-offset: 1px; }
body.portal-auth-page .btn-auth-primary, body.portal-auth-page .btn.btn-primary { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 48px; margin-top: 8px; padding: 0 16px; box-sizing: border-box;
  border: 0; border-radius: 10px; background: var(--brand, var(--primary, #0284c7)); color: #fff; font: inherit; font-size: 16px; font-weight: 700; text-align: center; text-decoration: none; cursor: pointer; }
body.portal-auth-page .btn-auth-primary:hover, body.portal-auth-page .btn.btn-primary:hover { filter: brightness(.94); }
body.portal-auth-page .auth-footer-links, body.portal-auth-page .auth-link { display: flex; align-items: center; justify-content: center; min-height: 44px; margin-top: 12px; text-align: center; font-size: 14px; }
body.portal-auth-page .auth-footer-links a, body.portal-auth-page .auth-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--brand, var(--primary, #0284c7)); text-decoration: none; }
body.portal-auth-page .auth-footer-links a:hover, body.portal-auth-page .auth-link:hover { text-decoration: underline; }
