.portal-locked{margin:0;min-height:100vh;background:#f3f7f5;overflow:hidden}
.portal-locked #portalApp{display:none!important}
.portal-auth-screen[hidden]{display:none!important}
.portal-auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 15%,#fff 0,#f3f7f5 48%,#dce9e4 100%)}
.portal-auth-card{width:min(420px,calc(100vw - 32px));box-sizing:border-box;background:#fff;border:1px solid #cbdad5;border-radius:22px;padding:32px;box-shadow:0 24px 70px rgba(18,53,45,.16);text-align:center}
.portal-auth-logo{width:68px;height:68px;object-fit:contain;margin-bottom:10px}
.portal-auth-card h1{margin:0;color:#163a32;font-size:28px}
.portal-auth-card p{color:#62756f;line-height:1.5;margin:9px 0 24px}
.portal-auth-card label{display:block;text-align:left;color:#284b43;font-weight:700}
.portal-auth-card input{box-sizing:border-box;width:100%;margin-top:8px;border:1px solid #adc2ba;border-radius:12px;padding:14px 15px;font:inherit;font-size:18px;background:#fff;color:#102f28}
.portal-auth-card input:focus{outline:3px solid rgba(0,122,94,.18);border-color:#007a5e}
.portal-auth-card button{width:100%;margin-top:16px;border:0;border-radius:12px;padding:14px 18px;background:#007a5e;color:#fff;font:inherit;font-weight:800;cursor:pointer}
.portal-auth-card button:disabled{opacity:.6;cursor:wait}
.portal-auth-status{min-height:22px;margin:14px 0 0!important;font-size:14px;color:#a22626!important}
.portal-auth-status.success{color:#007a5e!important}
@media(max-width:520px){.portal-auth-card{padding:24px 20px;border-radius:16px}.portal-auth-card h1{font-size:24px}}
