body.public-page { margin:0; color:#102d4b; font-family:Calibri,Arial,sans-serif; font-size:17px; line-height:1.6; user-select:text; }
.public-main { max-width:1000px; margin:auto; padding:40px 20px; }
.public-intro,.public-content { background:rgba(255,255,255,.96); border-radius:12px; padding:28px; margin-bottom:24px; }
.public-page h1 { font-size:clamp(1.7rem,4vw,2.6rem); line-height:1.2; margin:0 0 18px; }
.public-page h2 { font-size:1.4rem; line-height:1.3; }
.public-page a { color:#164f82; text-underline-offset:3px; }
.public-page a:focus-visible,.public-page input:focus-visible { outline:3px solid #1679ad; outline-offset:4px; }
.public-page .bloc_connexion { position:static; width:100%; max-width:600px; height:auto; min-height:520px; margin:24px auto; padding:16px 0; background:rgba(255,255,255,.96); border-radius:12px; }
.public-page .bloc_connexion > table { min-height:520px; }
.public-page .public-brand { font-size:clamp(1.1rem,5vw,1.9rem); letter-spacing:clamp(3px,1vw,12px); font-family:Montserrat,sans-serif; }
.public-nav { display:flex; flex-wrap:wrap; gap:12px 24px; }
.public-footer { text-align:center; padding:16px; background:rgba(255,255,255,.96); border-radius:12px; }
@media(max-width:600px) { .public-main { padding:20px 12px; } .public-intro,.public-content { padding:20px; } }

/* Centrage de la connexion, avec defilement sur les petits ecrans. */
.public-login .public-main { box-sizing:border-box; min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; justify-content:center; }
.public-login #connexion { width:100%; }
.public-login .bloc_connexion { margin:0 auto; }
