/* Layout unique de tous les écrans d'authentification client. */
*,*::before,*::after{box-sizing:border-box}
.auth-layout-body{min-height:100dvh;margin:0;overflow-x:hidden;background:#fff}
.auth-layout{min-height:100dvh;background:#fff}
.auth-layout__header{position:fixed;inset:0 auto auto 0;z-index:20;width:46%;height:clamp(76px,10dvh,104px);display:flex;align-items:center;padding-inline:clamp(24px,4vw,72px);pointer-events:none}
.auth-layout__brand{display:inline-flex;pointer-events:auto}
.auth-layout__brand img{display:block;width:auto;height:clamp(52px,6dvh,66px);object-fit:contain;border-radius:10px}
.auth-layout__main{min-height:100dvh;display:grid;grid-template-columns:minmax(0,46%) minmax(0,54%);align-items:stretch}
.auth-layout__content{min-width:0;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:clamp(108px,14dvh,150px) clamp(24px,4.2vw,76px) clamp(40px,7dvh,72px);background:#fff}
.auth-layout__content-inner{width:100%;max-width:680px;margin-inline:auto}
.auth-layout__content .auth-section{min-height:0;padding:0;background:transparent}
.auth-layout__content .auth-card,.auth-layout__content .auth-card--large{width:100%;max-width:540px;margin:0 auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.auth-layout__content .auth-card--large{max-width:680px}
.auth-card__header{margin-bottom:clamp(22px,3dvh,32px);text-align:left}
.auth-layout__content .auth-card__header h1{max-width:620px;margin:8px 0 14px;color:var(--navy-dark,#102a56);font-size:clamp(2rem,3vw,3.15rem);line-height:1.08;letter-spacing:-.04em}
.auth-layout__content .auth-card__header p{max-width:580px;margin:0;color:var(--muted,#64748b);line-height:1.65}
.auth-layout__content .auth-card__eyebrow{color:var(--primary,#ff3131)}
.auth-layout__content .auth-card__footer{margin-top:24px}
.auth-layout__content .forgot-password{margin-top:10px;text-align:right}
.auth-layout__content .forgot-password a{color:#1e4d8f;font-size:14px;font-weight:600;text-decoration:none}
.auth-layout__content :is(a,button,input,textarea,select):focus-visible{outline:3px solid rgba(29,88,166,.35);outline-offset:3px}
.auth-layout__content :is(input,select,button){min-height:44px}
.global-alert-wrapper{margin-bottom:20px}

/* Le panneau dépend uniquement du viewport, jamais de la hauteur du formulaire. */
.auth-layout__visual{position:sticky;top:0;isolation:isolate;height:100dvh;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#3eb4df}
.auth-layout__grid-pattern{position:absolute;inset:0;z-index:-4;opacity:.22;background-image:linear-gradient(rgba(255,255,255,.52) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.52) 1px,transparent 1px);background-size:clamp(30px,3vw,44px) clamp(30px,3vw,44px)}
.auth-layout__visual::after{content:"";position:absolute;inset:auto 0 0;z-index:-3;height:28%;background:#102a56;clip-path:polygon(0 24%,100% 0,100% 100%,0 100%)}
.auth-layout__person{position:relative;z-index:4;display:block;width:auto;height:auto;max-width:min(72%,720px);max-height:min(72dvh,780px);object-fit:contain;object-position:center;transform:translateY(-2%);filter:drop-shadow(0 24px 30px rgba(4,28,57,.22))}
.auth-layout__shape{position:absolute;z-index:-1;border-radius:clamp(22px,2.4vw,36px);background:#ff3d5e;box-shadow:inset 0 0 0 2px rgba(255,255,255,.12),0 20px 55px rgba(162,13,51,.22)}
.auth-layout__shape--one{top:10%;right:9%;width:clamp(110px,12vw,190px);height:clamp(145px,15vw,235px)}
.auth-layout__shape--two{top:46%;right:-5%;width:clamp(130px,14vw,215px);aspect-ratio:1}
.auth-layout__shape--three{right:29%;bottom:6%;width:clamp(82px,8vw,132px);aspect-ratio:1}
.auth-layout__visual-caption{position:absolute;right:clamp(20px,2.5vw,40px);bottom:clamp(20px,3dvh,36px);z-index:8;width:min(330px,calc(100% - 40px));padding:clamp(16px,1.5vw,22px);border:1px solid rgba(255,255,255,.22);border-radius:18px;color:#fff;background:rgba(16,42,86,.82);backdrop-filter:blur(8px)}
.auth-layout__visual-caption span{display:block;margin-bottom:7px;color:#ffb8c4;font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.auth-layout__visual-caption strong{display:block;font-size:clamp(.9rem,1vw,1rem);line-height:1.45}

.password-help-link{display:inline-flex;margin-top:8px;color:#173567;font-size:13px;font-weight:700;text-decoration:none}
.password-help-link:hover,.auth-link-button:hover{text-decoration:underline}
.reset-meta{margin-top:16px;padding:13px 15px;border-radius:12px;background:#f5f8fc;color:#647087;font-size:13px;line-height:1.55}
.reset-email{color:#263247;font-weight:800;overflow-wrap:anywhere}
.code-input{text-align:center;letter-spacing:.35em;font-size:22px;font-weight:800}
.auth-inline-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}
.auth-link-button{padding:0;border:0;background:transparent;color:#173567;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.password-rules{margin-top:8px;color:#7a8496;font-size:12px;line-height:1.5}
.auth-security-note{margin-top:20px;color:#7a8496;font-size:12px;text-align:center}.auth-security-note span{color:#22a06b}
.auth-form--spaced,.auth-form--secondary{margin-top:20px}.auth-link--flush{margin-top:0}

@media(min-width:1920px){.auth-layout__main{grid-template-columns:minmax(0,48%) minmax(0,52%)}.auth-layout__header{width:48%}.auth-layout__content-inner{max-width:720px}.auth-layout__person{max-width:680px;max-height:720px}}
@media(max-width:1180px) and (min-width:1024px){.auth-layout__main{grid-template-columns:minmax(0,52%) minmax(0,48%)}.auth-layout__header{width:52%}.auth-layout__content{padding-inline:clamp(24px,3vw,42px)}.auth-layout__person{max-width:78%;max-height:68dvh}.auth-layout__visual-caption{width:min(290px,calc(100% - 40px))}}
@media(max-width:1023px){.auth-layout__header{position:relative;width:100%;height:84px;padding-inline:clamp(18px,5vw,38px);border-bottom:1px solid #e5eaf1;background:#fff}.auth-layout__brand img{height:54px}.auth-layout__main{display:block;min-height:calc(100dvh - 84px)}.auth-layout__content{min-height:calc(100dvh - 84px);padding:clamp(32px,6vw,58px) clamp(18px,6vw,52px)}.auth-layout__visual{display:none}.auth-layout__content .auth-card,.auth-layout__content .auth-card--large{max-width:680px}}
@media(max-width:600px){.auth-layout__content{align-items:flex-start;padding:30px 16px 44px}.auth-layout__content .auth-card__header h1{font-size:clamp(1.9rem,9vw,2.3rem)}.auth-layout-body--register .form-grid{grid-template-columns:1fr}.auth-layout-body--register .form-group--full{grid-column:auto}.auth-inline-actions{align-items:flex-start;flex-direction:column}.code-input{letter-spacing:.25em}}
@media(max-height:760px) and (min-width:1024px){.auth-layout__content{align-items:flex-start;padding-top:100px;padding-bottom:32px}.auth-layout__content .auth-card__header{margin-bottom:20px}.auth-layout__person{max-height:68dvh}.auth-layout__visual-caption{bottom:18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
