/* X EDUC : authentification immersive premium.
   Périmètre restreint à .xa-auth et au layout lors des pages /login et /register.
   Photographie éducative sous licence Unsplash, copie locale prioritaire.
   Aucun CDN CSS/JS, aucune nouvelle couleur de marque. */
.xa-auth{--xa-navy:#043465;--xa-orange:#FC980B;--xa-ink:#182B43;--xa-muted:#566980;--xa-line:#DFE6EE;--xa-bg:#F5F7FA;--xa-surface:#FFFFFF;position:relative;isolation:isolate;min-height:calc(100svh - 82px);padding:clamp(38px,6vh,85px) 20px clamp(38px,6vh,85px);display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--xa-ink);background:var(--xa-navy);font-family:Inter,system-ui,sans-serif}
.xa-auth *,.xa-auth *::before,.xa-auth *::after{box-sizing:border-box}
.xa-auth::before{position:absolute;z-index:-2;inset:0;content:"";background-image:var(--xa-image);background-size:cover;background-position:center 44%;background-repeat:no-repeat;transform:scale(1.012)}
.xa-auth::after{position:absolute;z-index:-1;inset:0;content:"";background:linear-gradient(125deg,rgba(4,52,101,.66),rgba(4,52,101,.36) 48%,rgba(4,52,101,.65))}
.xa-auth a{text-decoration:none}
.xa-auth .xa-card{position:relative;width:min(100%,880px);border:1px solid rgba(255,255,255,.74);background:var(--xa-surface);border-radius:26px;padding:clamp(27px,3.7vw,45px) clamp(23px,4vw,53px) clamp(27px,3.5vw,42px);box-shadow:0 24px 90px rgba(1,20,43,.32)}
.xa-auth--login .xa-card{max-width:485px}
.xa-auth .xa-back{display:inline-flex;align-items:center;gap:9px;color:var(--xa-navy);font-size:.8rem;font-weight:750;line-height:1.4;margin-bottom:19px;padding:5px 0}
.xa-auth .xa-back svg{width:17px;height:17px;flex:none}
.xa-auth .xa-overline{display:inline-flex;align-items:center;gap:8px;margin:0 0 12px;font-weight:850;text-transform:uppercase;letter-spacing:.09em;font-size:.65rem;color:var(--xa-navy)}
.xa-auth .xa-overline::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--xa-orange)}
.xa-auth .xa-head{margin-bottom:25px}
.xa-auth .xa-head h1{color:var(--xa-navy);font-size:clamp(1.85rem,3.15vw,2.6rem);line-height:1.12;letter-spacing:-.055em;font-weight:900;margin:0 0 10px}
.xa-auth .xa-head p{margin:0;color:var(--xa-muted);line-height:1.6;font-size:.9rem;max-width:600px}
.xa-auth .xa-alert{margin:0 0 20px;border:1px solid #B42318;border-radius:12px;background:#fff6f5;color:#B42318;padding:13px 16px;font-size:.85rem;font-weight:730}
.xa-auth .xa-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:25px;row-gap:20px}
.xa-auth--login .xa-fields{grid-template-columns:1fr}
.xa-auth .xa-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.xa-auth .xa-field label{font-weight:800;font-size:.8rem;color:var(--xa-ink);line-height:1.4}
.xa-auth .xa-field label .xa-required{color:#B42318}
.xa-auth .xa-control{width:100%;height:50px;min-width:0;border:0;border-bottom:1.5px solid #B4C3D2;border-radius:0;padding:10px 2px;background:transparent;color:var(--xa-ink);font:inherit;font-size:.93rem;outline:none;transition:border-color .15s}
.xa-auth .xa-control::placeholder{color:#687A8D;opacity:1;font-size:.89rem}
.xa-auth .xa-control:focus{border-bottom-color:var(--xa-navy);box-shadow:0 2px 0 var(--xa-orange)}
.xa-auth .xa-control[aria-invalid=true]{border-bottom-color:#B42318}
.xa-auth select.xa-control{cursor:pointer;padding-right:24px}
.xa-auth .xa-control option{background:#fff;color:#182B43}
.xa-auth .xa-password-box{position:relative}
.xa-auth .xa-password-box .xa-control{padding-right:85px}
.xa-auth .xa-eye{position:absolute;right:0;top:0;min-height:49px;min-width:78px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:0;background:transparent;color:var(--xa-navy);font:inherit;font-size:.76rem;font-weight:850;cursor:pointer}
.xa-auth .xa-eye svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7}
.xa-auth .xa-hint,.xa-auth .xa-error{font-size:.71rem;line-height:1.45}
.xa-auth .xa-hint{color:var(--xa-muted)}
.xa-auth .xa-error{color:#B42318;font-weight:720}
.xa-auth .xa-foot-note{display:flex;gap:9px;align-items:flex-start;margin:24px 0 15px;padding:12px 14px;border-radius:12px;border:1px solid var(--xa-line);background:var(--xa-bg);font-size:.75rem;line-height:1.55;color:var(--xa-muted)}
.xa-auth .xa-foot-note svg{width:17px;height:17px;flex:0 0 17px;color:var(--xa-navy);fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.xa-auth .xa-submit{display:flex;gap:12px;justify-content:center;align-items:center;width:100%;min-height:52px;border-radius:12px;background:var(--xa-orange);color:var(--xa-navy);border:1px solid var(--xa-orange);font-size:.91rem;font-weight:900;line-height:1.35;padding:12px 18px;cursor:pointer;transition:filter .15s,transform .15s}
.xa-auth .xa-submit:hover{filter:brightness(1.04);transform:translateY(-1px)}
.xa-auth .xa-submit svg{width:19px;height:19px;flex:none}
.xa-auth .xa-alt{margin:18px 0 0;text-align:center;color:var(--xa-muted);font-size:.84rem;line-height:1.6}
.xa-auth .xa-alt a{color:var(--xa-navy);font-weight:900;text-decoration:underline;text-underline-offset:3px}
.xa-auth .xa-mini-sign{display:block;text-align:center;margin-top:24px;font-size:.68rem;letter-spacing:.01em;color:var(--xa-muted)}
.xa-auth .xa-remember{display:flex;align-items:center;gap:9px;color:var(--xa-muted);font-size:.82rem;font-weight:700;margin:16px 0 23px}
.xa-auth .xa-remember input{width:18px;height:18px;accent-color:var(--xa-navy);cursor:pointer}
.xa-auth .xa-back:hover,.xa-auth .xa-alt a:hover{color:#FC980B}
.xa-auth :is(a,button,input,select):focus-visible{outline:3px solid #FC980B;outline-offset:3px}
.xa-auth .xa-scenery-note{display:block;position:absolute;z-index:0;bottom:13px;right:21px;color:rgba(255,255,255,.88);font-size:.65rem;text-shadow:0 1px 3px rgba(0,0,0,.4);pointer-events:none}

/* Sur ces deux seules pages, alléger la navigation marketing trop dense. */
.public-shell:has(.xa-auth) .public-header{background:#fff;border-color:#DFE6EE}
.public-shell:has(.xa-auth) .public-header__inner{grid-template-columns:minmax(0,1fr) auto;min-height:68px}
.public-shell:has(.xa-auth) .public-nav{display:none}
.public-shell:has(.xa-auth) .public-header__right{display:contents}
.public-shell:has(.xa-auth) .mobile-toggle{display:none}
.public-shell:has(.xa-auth) .header-tools{display:flex;align-items:center;gap:9px}
.public-shell:has(.xa-auth) .header-tools>.btn,.public-shell:has(.xa-auth) .header-tools>.logout-form{display:none}
.public-shell:has(.xa-auth) .header-tools .academy-theme-toggle{min-height:38px}
.public-shell:has(.xa-auth) .brand__title{color:#043465}
.public-shell:has(.xa-auth) .brand__subtitle{color:#52647A}
.public-shell:has(.xa-auth)>.public-footer{background:#fff;color:#043465;border-top:1px solid #DFE6EE}
.public-shell:has(.xa-auth)>.public-footer .footer-brand-mini span,.public-shell:has(.xa-auth)>.public-footer .footer-meta-mini{color:#566980}
@media(max-width:1180px){
 .public-shell:has(.xa-auth) .public-header__right{display:flex;grid-column:auto;padding:0}
 .public-shell:has(.xa-auth) .public-header__inner{grid-template-columns:minmax(0,1fr) auto}
 .public-shell:has(.xa-auth) .header-tools .btn{display:none}
}
@media(max-width:720px){
 .xa-auth{min-height:calc(100svh - 70px);padding:120px 12px 45px;align-items:flex-start}
 .xa-auth::before{background-position:center 35%}
 .xa-auth::after{background:linear-gradient(180deg,rgba(4,52,101,.22) 0%,rgba(4,52,101,.38) 35%,rgba(4,52,101,.55) 100%)}
 .xa-auth .xa-card{width:100%;padding:25px 19px 30px;border-radius:21px;box-shadow:0 18px 55px rgba(1,20,43,.27)}
 .xa-auth .xa-fields{grid-template-columns:1fr;row-gap:17px}
 .xa-auth .xa-head h1{font-size:clamp(1.76rem,7.2vw,2.22rem)}
 .xa-auth .xa-head{margin-bottom:19px}
 .xa-auth .xa-scenery-note{display:none}
 .public-shell:has(.xa-auth) .public-header__inner{min-height:68px;gap:6px}
 .public-shell:has(.xa-auth) .header-tools .academy-theme-toggle__label{display:none}
}
@media(max-width:430px){
 .xa-auth{padding:92px 9px 38px}
 .xa-auth .xa-card{padding:21px 16px 27px}
 .xa-auth .xa-head p{font-size:.83rem}
 .xa-auth .xa-control{font-size:.9rem}
 .public-shell:has(.xa-auth) .brand__subtitle{font-size:.62rem;max-width:190px}
 .public-shell:has(.xa-auth) .header-tools .language-switch a{min-width:27px;height:30px;padding:0 5px}
 .public-shell:has(.xa-auth) .header-tools{gap:5px}
 .public-shell:has(.xa-auth) .header-tools .academy-theme-toggle{width:36px;padding:5px;min-width:36px}
}
@media(max-width:350px){
 .public-shell:has(.xa-auth) .header-tools .academy-theme-toggle{display:none}
 .xa-auth .xa-card{padding:20px 12px 26px}
}
html[data-theme=dark] .xa-auth{--xa-surface:#172941;--xa-ink:#F2F6FA;--xa-muted:#C2CFDD;--xa-line:#33445A;--xa-bg:#213750}
html[data-theme=dark] .xa-auth .xa-card{background:var(--xa-surface);border-color:#33445A}
html[data-theme=dark] .xa-auth :is(.xa-head h1,.xa-back,.xa-overline,.xa-field label,.xa-alt a){color:#F2F6FA}
html[data-theme=dark] .xa-auth .xa-control{color:#F2F6FA;border-color:#718297}
html[data-theme=dark] .xa-auth .xa-control::placeholder{color:#C2CFDD}
html[data-theme=dark] .xa-auth .xa-control:focus{border-color:#FC980B}
html[data-theme=dark] .xa-auth .xa-control option{background:#172941;color:#fff}
html[data-theme=dark] .xa-auth .xa-eye,html[data-theme=dark] .xa-auth .xa-foot-note svg{color:#FC980B}
html[data-theme=dark] .xa-auth .xa-foot-note{background:#213750;border-color:#33445A}
html[data-theme=dark] .xa-auth .xa-submit{color:#043465}
html[data-theme=dark] .public-shell:has(.xa-auth) .public-header{background:#101E30;border-color:#33445A}
html[data-theme=dark] .public-shell:has(.xa-auth) .brand__title{color:#F2F6FA}
html[data-theme=dark] .public-shell:has(.xa-auth) .brand__subtitle{color:#CBD6E3}
html[data-theme=dark] .public-shell:has(.xa-auth)>.public-footer{background:#172941;color:#fff;border-color:#33445A}
html[data-theme=dark] .public-shell:has(.xa-auth)>.public-footer .footer-brand-mini span,html[data-theme=dark] .public-shell:has(.xa-auth)>.public-footer .footer-meta-mini{color:#CBD6E3}
@media(prefers-reduced-motion:reduce){.xa-auth .xa-control,.xa-auth .xa-submit{transition:none}.xa-auth .xa-submit:hover{transform:none}}
