/* Connexion et inscription : formulaires compacts à labels flottants. */
.auth-page { width: min(100%, max(90%, 1200px)); max-width: 1600px; margin: .5rem auto 2.5rem; color: var(--icac-anthracite); font-size: 1rem; font-weight: 300; }
.auth-connexion { max-width: 1600px; }
.auth-entete { margin-bottom: 1.25rem; }
.auth-surtitre { margin: 0 0 .4rem; color: var(--icac-anthracite); font-size: .75rem; font-family: var(--icac-police-surtitre); font-weight: 500; letter-spacing: .15em; text-transform: uppercase; }
.auth-page h1 { margin: 0 0 .5rem; font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1.15; letter-spacing: -.035em; text-transform: none; }
.auth-entete > p:last-child { margin: 0; color: var(--icac-anthracite); font-size: .95rem; }
.auth-carte { border: 1px solid #dfe1e8; border-top: 3px solid var(--icac-rouge); border-radius: .85rem; background: #fff; }
.auth-formulaire { padding: 1.5rem; }
.auth-page a { color: var(--icac-rouge-fonce); }
.auth-page a:focus-visible, .auth-page button:focus-visible { outline: 3px solid var(--icac-rouge); outline-offset: 4px; }
.auth-page .form-floating > .form-control { min-height: calc(3.5rem + 2px); border-color: #d6d8e0; border-radius: .45rem; font-size: 1rem; font-weight: 300; }
.auth-page .form-floating > label { margin: 0; color: var(--icac-anthracite); font-size: 1rem; font-weight: 500; }
/* L’indication des champs obligatoires est au-dessus du formulaire ; Bootstrap utilise ::after pour le fond du label. */
.auth-page .form-floating > label.required::after { content: ''; font-size: inherit; }
.auth-page .form-text { font-size: .8rem; }
.auth-page .invalid-feedback { font-size: .85rem; }
.auth-page .alert { font-size: .9rem; }
.auth-options { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: .65rem 1rem; margin: .25rem 0 1.25rem; font-size: .85rem; }
.auth-options .form-check-label { font-weight: 500; }
.auth-options > a { text-decoration: underline; text-underline-offset: .15em; }
.auth-page .auth-valider { display: flex; align-items: center; justify-content: space-between; width: 100%; gap: 1rem; margin: 0; padding: .8rem 1rem; text-transform: none; letter-spacing: 0; }
.auth-alternative { display: flex; justify-content: center; align-items: baseline; flex-wrap: wrap; gap: .35rem .65rem; padding: 1rem 1.5rem; background: #f5f6f9; border-top: 1px solid #e4e5eb; border-radius: 0 0 .85rem .85rem; font-size: .85rem; }
.auth-alternative > span { color: var(--icac-anthracite); }
.auth-alternative a { font-weight: 800; }
.auth-aide { margin: 1rem 0 0; text-align: center; font-size: .85rem; color: var(--icac-anthracite); }
.auth-ligne { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.auth-indication { margin: 0 0 .75rem; color: var(--icac-anthracite); font-size: .9rem; }
.auth-obligatoire { margin: 0 0 .85rem; color: var(--icac-anthracite); font-size: .75rem; }
.auth-confidentialite { margin: .85rem 0 0; color: var(--icac-anthracite); font-size: .75rem; line-height: 1.5; }
.auth-confidentialite a { text-decoration: underline; text-underline-offset: .15em; }
@media (max-width: 575px) {
    .auth-page { margin-top: 0; }
    .auth-formulaire { padding: 1.15rem; }
    .auth-ligne { grid-template-columns: 1fr; gap: 0; }
    .auth-alternative { padding: .85rem 1rem; }
}

@media (min-width: 992px) {
    .auth-page { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); grid-template-areas: "titre formulaire" ". aide"; column-gap: 3rem; align-items: start; }
    .auth-entete { grid-area: titre; padding-top: 1rem; }
    .auth-carte { grid-area: formulaire; min-width: 0; }
    .auth-aide { grid-area: aide; }
}
