/* Auth surfaces share the portal tokens and remain comfortable on small screens. */
html, body { min-height: 100%; }
body.auth-page {
    display: flex; align-items: center; justify-content: center; min-height: 100vh; padding: 2rem 1rem;
    background-color: var(--pw-cream-50);
    background-image: linear-gradient(135deg, rgba(250,247,240,.9), rgba(149,213,178,.28)), url('/public/img/bg-trees-icons.png');
    background-position: center; background-size: cover, 520px; background-repeat: no-repeat, repeat;
}
.portal-auth-form { width: 100%; max-width: 470px; margin: auto; }
.portal-auth-card { padding: clamp(1.5rem, 4vw, 2.5rem); border: 0; border-radius: 24px; background: rgba(255,255,255,.96); box-shadow: 0 20px 55px rgba(27,46,36,.16); }
.portal-auth-brand { display: block; width: auto; height: auto; margin: 0 auto 1.5rem; max-width: 220px; max-height: 68px; object-fit: contain; }
.portal-auth-mark { display: flex; align-items: center; justify-content: center; width: 58px; height: 58px; margin: 0 auto 1rem; border-radius: 18px; color: var(--pw-white); background: var(--pw-green-600); font-size: 1.8rem; }
.portal-auth-title { margin-bottom: .45rem; color: var(--pw-green-900); font-weight: 800; text-align: center; }
.portal-auth-subtitle { margin-bottom: 1.5rem; color: #6d7c73; text-align: center; }
.portal-auth-links { display: flex; justify-content: space-between; gap: .75rem; margin-top: 1.25rem; font-size: .82rem; }
.portal-auth-footer { margin-top: 1.25rem; color: #6d7c73; font-size: .78rem; text-align: center; }
.portal-auth-form .input-group-text { min-width: 44px; justify-content: center; border-radius: 10px 0 0 10px; }
.portal-auth-form .input-group .form-control { border-left: 0; border-radius: 0 10px 10px 0; }
.portal-auth-form .btn { min-height: 46px; }
.password-meter { height: 5px; overflow: hidden; border-radius: 99px; background: #e5ebe7; }
.password-meter span { display: block; width: 0; height: 100%; border-radius: inherit; transition: width .2s ease, background .2s ease; background: var(--pw-danger, #c1554d); }
.password-meter span.is-medium { background: var(--pw-earth-500, #dda15e); }
.password-meter span.is-strong { background: var(--pw-green-500, #40916c); }
@media (max-width: 360px) { body.auth-page { padding: .75rem; } .portal-auth-card { padding: 1.25rem; } .portal-auth-links { flex-direction: column; align-items: center; } }
