
/* Public form readability and keyboard navigation; kept separate from dashboard styles. */
:root { --text-muted: #526571; }
.public-login { display:flex; flex-direction:column; min-height:100dvh; }
.public-login .login-wrapper { min-height:0; flex:1; padding:4rem 1rem 2rem; }
.public-login .panel-header h2 { color:#1e3a5f; }
.public-login .panel-body a { color:#334f72; }
.public-login .form-label { color:#3d565a; font-size:.875rem; font-style:normal; letter-spacing:.04em; }
.public-login .form-control::placeholder { color:#526571; }
.public-login .role-card p { font-size:.85rem; }
.public-login .selected-role-badge { color:#172d40; }
.public-login .btn-primary { background:#334f72 !important; border-color:#334f72 !important; color:white !important; }
.public-login a:focus-visible, .public-login button:focus-visible { outline:3px solid #174b88; outline-offset:3px; }
#privacyModal { width:min(720px, calc(100% - 24px)); max-height:90dvh; border:0; border-radius:16px; padding:20px; }
#privacyModal::backdrop { background:rgba(0,0,0,.65); }
.privacy-header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; }
.privacy-header h2 { font-size:1.15rem; color:#1e3a5f; margin:0; }
#privacyModal iframe { width:100%; height:60dvh; border:0; }
.register-panel .form-label { color:#3d565a; font-size:.875rem; letter-spacing:normal; font-style:normal; }
.register-panel .form-control::placeholder { color:#526571; }
.register-panel fieldset .form-check-label { color:#3d565a; }
.register-panel .btn-primary { background:#1e3a5f; border-color:#1e3a5f; color:#fff; }
.register-panel .is-invalid { border:2px solid #b02a37; }
@media(max-width:576px) {
 .public-login .step-form .login-panel .panel-body, .public-login .step-roles .login-panel .panel-body { padding:1.25rem; }
 .public-login .role-card { padding:1rem .5rem; }
}
