/* extavibers - auth clients. Haut jaune arrondi (#F6B220), bas bleu (#092C74) qui le recouvre. Tout est préfixé .xa pour ne jamais gêner la page hôte. */
.xa,.xa *,.xa *::before,.xa *::after{box-sizing:border-box}
.xa{--y:#F6B220;--yd:#e3a010;--n:#092C74;--nl:#14409a;--line:#B5C0CE;--soft:#fef7e7;--err:#b3261e;--errbg:#fdecea;--okc:#1b7a3d;--okbg:#e8f6ed;
  font-family:Montserrat,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:#fff;line-height:1.45;-webkit-text-size-adjust:100%;
  width:100%;max-width:440px;border-radius:28px;overflow:hidden;background:var(--y);box-shadow:0 18px 60px rgba(0,0,0,.35);display:flex;flex-direction:column}
.xa button{font-family:inherit}
.xa [hidden]{display:none!important}
.xa .xa-i{width:20px;height:20px;flex:none}

/* ---- haut jaune ---- */
.xa-top{background:var(--y);color:var(--n);padding:14px 18px 46px}
.xa-bar{display:flex;align-items:center;gap:10px}
.xa-brand{font-weight:800;font-size:24px;letter-spacing:-.3px;color:var(--n);line-height:1;margin-right:auto}
.xa-brand b{color:#fff;text-shadow:0 1px 0 rgba(9,44,116,.25)}
.xa-lang{display:flex;background:rgba(9,44,116,.12);border-radius:999px;padding:3px}
.xa-lang button{border:0;background:none;color:var(--n);font:700 11.5px Montserrat,system-ui,sans-serif;padding:5px 10px;border-radius:999px;cursor:pointer}
.xa-lang button.on{background:var(--n);color:#fff}
.xa-x{border:0;background:rgba(9,44,116,.12);color:var(--n);width:34px;height:34px;border-radius:50%;display:grid;place-items:center;cursor:pointer}
.xa-x:hover{background:rgba(9,44,116,.22)}
.xa-hero{margin-top:12px}
.xa-steps{display:none;gap:6px;margin-bottom:10px}
.xa[data-step="1"] .xa-steps,.xa[data-step="2"] .xa-steps,.xa[data-step="3"] .xa-steps{display:flex}
.xa-steps i{height:5px;flex:1;border-radius:9px;background:rgba(9,44,116,.2);transition:background .25s}
.xa[data-step="1"] .xa-steps i:nth-child(1),.xa[data-step="2"] .xa-steps i:nth-child(-n+2),.xa[data-step="3"] .xa-steps i{background:var(--n)}
.xa-h1{margin:0;font-size:22px;line-height:1.2;font-weight:800;color:var(--n);outline:none}
.xa-sub{margin:4px 0 0;font-size:13.5px;font-weight:500;color:var(--n);opacity:.85}

/* ---- bas bleu qui recouvre le jaune ---- */
.xa-sheet{position:relative;margin-top:-28px;background:var(--n);border-radius:28px 28px 0 0;padding:20px 18px 18px;flex:1;box-shadow:0 -6px 18px rgba(9,44,116,.18)}
.xa-pane{margin:0;animation:xa-in .22s ease both}
@keyframes xa-in{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.xa-pane,.xa-ov,.xa-ov .xa{animation:none!important}}

.xa-alert{display:flex;gap:9px;align-items:flex-start;padding:10px 12px;border-radius:12px;font-size:13px;font-weight:600;margin-bottom:12px;background:var(--errbg);color:var(--err)}
.xa-alert.ok{background:var(--okbg);color:var(--okc)}.xa-alert.info{background:var(--soft);color:var(--n)}
.xa-alert::before{content:"!";flex:none;width:18px;height:18px;border-radius:50%;background:currentColor;color:#fff;font-size:12px;line-height:18px;text-align:center;margin-top:1px}
.xa-alert.ok::before{content:"✓"}.xa-alert.info::before{content:"i"}
.xa-alert::before{-webkit-text-fill-color:#fff}

.xa-google{width:100%;height:48px;border:0;border-radius:12px;background:#fff;color:#1f2a44;font:700 14.5px Montserrat,system-ui,sans-serif;display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;transition:transform .05s,box-shadow .15s}
.xa-google:hover{box-shadow:0 0 0 3px rgba(246,178,32,.55)}.xa-google:active{transform:translateY(1px)}
.xa-google .xa-g{width:20px;height:20px}
.xa-or{display:flex;align-items:center;gap:10px;margin:12px 0;font-size:12px;font-weight:600;color:rgba(255,255,255,.7)}
.xa-or::before,.xa-or::after{content:"";flex:1;height:1px;background:rgba(255,255,255,.22)}

.xa-field{margin-bottom:11px}
.xa-field label{display:block;font-size:12.5px;font-weight:700;color:#fff;margin-bottom:5px}
.xa-in{position:relative;display:flex;align-items:center}
.xa-lead{position:absolute;left:13px;color:#7d8aa6;pointer-events:none}
.xa-in input{width:100%;height:48px;border:2px solid transparent;border-radius:12px;padding:0 44px 0 42px;font:500 16px Montserrat,system-ui,sans-serif;color:#0b1736;background:#fff;transition:border-color .15s,box-shadow .15s}
.xa-in input::placeholder{color:#9aa6bd;letter-spacing:.3em}
.xa-in input:focus{outline:none;border-color:var(--y);box-shadow:0 0 0 4px rgba(246,178,32,.35)}
.xa-in input.bad{border-color:#ff8a80}
.xa-eye{position:absolute;right:5px;width:38px;height:38px;border:0;background:none;border-radius:10px;color:#7d8aa6;cursor:pointer;display:grid;place-items:center}
.xa-eye:hover{color:var(--n);background:var(--soft)}
.xa-eye .xa-i:last-child{display:none}.xa-eye.on .xa-i:first-child{display:none}.xa-eye.on .xa-i:last-child{display:block}
.xa-hint{margin:4px 2px 0;font-size:11.5px;color:rgba(255,255,255,.65)}
.xa-code input{text-align:center;letter-spacing:.55em;font-size:24px;font-weight:800;padding:0 12px 0 calc(12px + .55em)}
.xa-code .xa-lead{display:none}
.xa-sent{margin:0 0 10px;font-size:13px;color:rgba(255,255,255,.85);text-align:center}
.xa-sent b{color:var(--y);word-break:break-all}

.xa-btn{width:100%;height:50px;border:0;border-radius:12px;background:var(--y);color:var(--n);font:800 15px Montserrat,system-ui,sans-serif;display:flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;transition:background .15s,transform .05s;position:relative}
.xa-btn:hover{background:var(--yd)}.xa-btn:active{transform:translateY(1px)}
.xa-btn[disabled]{opacity:.7;cursor:progress}
.xa-btn.is-loading .xa-i:last-child{animation:xa-spin 1s linear infinite}
@keyframes xa-spin{to{transform:rotate(360deg)}}
.xa-btns{display:flex;gap:10px;margin-top:4px}
.xa-btns .xa-btn{flex:1}
.xa-back{flex:none;width:50px;height:50px;border:2px solid rgba(255,255,255,.35);border-radius:12px;background:none;color:#fff;display:grid;place-items:center;cursor:pointer}
.xa-back:hover{background:rgba(255,255,255,.1)}
.xa-row{display:flex;justify-content:flex-end;margin:-2px 0 12px}
.xa-link{background:none;border:0;padding:0;font:600 13px Montserrat,system-ui,sans-serif;color:#fff;text-decoration:underline;text-underline-offset:3px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.xa-link.xa-y{color:var(--y)}
.xa-link[disabled]{opacity:.6;text-decoration:none;cursor:default}
.xa-link .xa-i{width:14px;height:14px}
.xa-foot{margin:13px 0 0;text-align:center;font-size:13px;color:rgba(255,255,255,.8)}
.xa :focus-visible{outline:3px solid var(--y);outline-offset:2px}
.xa-sheet .xa-btn:focus-visible,.xa-google:focus-visible{outline-color:#fff}

/* ---- wallet ---- */
.xa-perks{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.xa-perks li{background:rgba(255,255,255,.08);border-radius:14px;padding:10px;display:grid;grid-template-columns:30px 1fr;column-gap:8px;align-items:center}
.xa-perks span{grid-row:span 2;width:30px;height:30px;border-radius:50%;background:var(--y);color:var(--n);display:grid;place-items:center}
.xa-perks span .xa-i{width:16px;height:16px}
.xa-perks b{font-size:12.5px;line-height:1.2}.xa-perks small{font-size:11px;line-height:1.25;color:rgba(255,255,255,.72)}
.xa-btn em{position:absolute;top:-9px;right:12px;display:inline-flex;align-items:center;gap:4px;background:#fff;color:var(--n);font:700 10.5px Montserrat,sans-serif;font-style:normal;padding:2px 8px;border-radius:999px}
.xa-btn em .xa-i{width:11px;height:11px;fill:var(--y);stroke:var(--y)}
.xa-btn.xa-ghost{background:none;color:#fff;border:2px solid rgba(255,255,255,.35);margin-top:10px;font-weight:700;height:46px}
.xa-btn.xa-ghost:hover{background:rgba(255,255,255,.1)}
.xa-yellow{margin-top:14px}

/* ---- page complète : nav du site, formulaire, footer du site ---- */
.xa-page{box-sizing:border-box;margin:0;background:#F3F6FC;font-family:Montserrat,system-ui,sans-serif}
.xa-main{display:block;background:#F3F6FC}
.xa-main .xa{margin:0 auto;box-shadow:none;border-radius:0;max-width:none}
.xa-noscript{margin:0;padding:12px;background:#fff;color:#b3261e;text-align:center;font:600 13px system-ui,sans-serif}
.xa-side{display:none}

/* ---- modal (fenêtre sur desktop, panneau du bas sur mobile) ---- */
.xa-ov{position:fixed;inset:0;z-index:2147483000;background:rgba(6,20,60,.62);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:16px;overflow-y:auto;overscroll-behavior:contain;animation:xa-fade .18s ease both}
.xa-ov .xa{margin:auto;animation:xa-pop .22s ease both}
@keyframes xa-fade{from{opacity:0}to{opacity:1}}
@keyframes xa-pop{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
@keyframes xa-up{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}

/* ---- mobile / tablette : le formulaire occupe toute la largeur, juste sous le nav ---- */
@media (max-width:899px){
  .xa-main .xa{border-radius:0}
  .xa-sheet{padding-bottom:calc(22px + env(safe-area-inset-bottom,0px))}
}
@media (max-width:520px){
  .xa-ov{padding:0;align-items:flex-end}
  .xa-ov .xa{max-width:none;margin:0;border-radius:28px 28px 0 0;animation:xa-up .24s ease both}
}

/* ---- PC : un vrai formulaire, libre et aéré (jaune à gauche, le bleu le recouvre à droite) ---- */
@media (min-width:900px){
  .xa-main{padding:44px clamp(20px,4vw,56px) 60px;background:#F3F6FC radial-gradient(circle at 92% 8%,rgba(246,178,32,.16),transparent 38%)}
  .xa-main .xa{max-width:1120px;display:grid;grid-template-columns:minmax(320px,5fr) 7fr;align-items:stretch;background:none;overflow:visible;border-radius:0}
  .xa-main .xa-top{position:relative;overflow:hidden;border-radius:32px;padding:34px 84px 34px 38px;display:flex;flex-direction:column;min-height:572px;box-shadow:0 18px 40px rgba(246,178,32,.35)}
  .xa-main .xa-top::before,.xa-main .xa-top::after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.22);pointer-events:none}
  .xa-main .xa-top::before{width:260px;height:260px;right:-110px;bottom:-90px}
  .xa-main .xa-top::after{width:120px;height:120px;left:-40px;bottom:120px;background:rgba(9,44,116,.07)}
  .xa-main .xa-top>*{position:relative;z-index:1}
  .xa-main .xa-brand{font-size:30px}
  .xa-main .xa-bar{margin-bottom:auto}
  .xa-main .xa-hero{margin:44px 0 0}
  .xa-main .xa-steps{margin-bottom:18px}
  .xa-main .xa-h1{font-size:34px;line-height:1.1;letter-spacing:-.02em}
  .xa-main .xa-sub{font-size:16px;margin-top:10px;max-width:30ch}
  .xa-side{display:grid;gap:12px;list-style:none;margin:36px 0 8px;padding:0;font-size:14px;font-weight:600;color:var(--n)}
  .xa-side li{display:flex;align-items:center;gap:12px}
  .xa-side span{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.55);display:grid;place-items:center;flex:none}
  .xa-side .xa-i{width:18px;height:18px}
  .xa-main .xa-sheet{margin:34px 0 34px -52px;border-radius:30px;padding:40px 48px 36px;box-shadow:0 24px 60px rgba(9,44,116,.35);display:flex;flex-direction:column;justify-content:center}
  .xa-main .xa-pane{width:100%;max-width:560px;margin:0 auto}
  .xa-main .xa-pane:not([hidden]){display:grid;grid-template-columns:1fr 1fr;column-gap:16px;align-content:start}
  .xa-main .xa-pane>*{grid-column:1/-1}
  .xa-main .xa-pane[data-pane="reg1"]>.xa-field,.xa-main .xa-pane[data-pane="reg2"]>.xa-field,.xa-main .xa-pane[data-pane="for2"]>.xa-field:nth-of-type(n+2){grid-column:auto}
  .xa-main .xa-alert{max-width:560px;margin:0 auto 16px}
  .xa-main .xa-field{margin-bottom:16px}
  .xa-main .xa-field label{font-size:13px;margin-bottom:7px}
  .xa-main .xa-in input{height:54px;font-size:16px;border-radius:14px}
  .xa-main .xa-btn{height:56px;font-size:16px;border-radius:14px}
  .xa-main .xa-back{height:56px;width:56px;border-radius:14px}
  .xa-main .xa-google{height:54px;border-radius:14px;font-size:15px}
  .xa-main .xa-or{margin:18px 0}
  .xa-main .xa-code{max-width:340px;margin:0 auto}
  .xa-main .xa-btns{max-width:none}
  .xa-main .xa-foot{margin-top:20px;font-size:14px}
  .xa-main .xa-perks{grid-template-columns:repeat(4,1fr);gap:10px}
  .xa-main .xa-perks li{grid-template-columns:1fr;row-gap:6px;justify-items:center;text-align:center;padding:14px 8px}
  .xa-main .xa-perks span{grid-row:auto}
  .xa-main .xa-yellow{margin-top:20px}
}
@media (min-width:900px) and (max-height:760px){
  .xa-main{padding-top:28px;padding-bottom:40px}
  .xa-main .xa-top{min-height:500px}
  .xa-main .xa-sheet{padding-top:30px;padding-bottom:28px}
  .xa-main .xa-field{margin-bottom:12px}
}

.xa[data-mode="modal"] .xa-side{display:none!important}

/* ---- écrans courts : tout reste visible sans défiler (modal et mobile) ---- */
@media (max-height:720px){
  .xa-top{padding:10px 16px 40px}.xa-brand{font-size:21px}.xa-hero{margin-top:8px}.xa-h1{font-size:19px}.xa-sub{font-size:12.5px}
  .xa-sheet{padding-top:16px}.xa-field{margin-bottom:8px}.xa-in input{height:44px}.xa-btn{height:46px}.xa-back{height:46px}
  .xa-google{height:44px}.xa-or{margin:8px 0}.xa-foot{margin-top:9px}.xa-perks li{padding:8px}
}
@media (max-height:600px){.xa-sub{display:none}.xa-hint{display:none}.xa-top{padding-bottom:36px}}

/* Déjà connecté : bouton « e-mail + Continuer vers ce compte » */
.xa-btn.xa-account{height:auto;min-height:68px;padding:12px 16px;gap:12px;justify-content:flex-start;text-align:left}
.xa-account .xa-av{flex:none;width:42px;height:42px;border-radius:50%;background:var(--n);color:#fff;display:flex;align-items:center;justify-content:center;font:800 18px Montserrat,system-ui,sans-serif}
.xa-account .xa-acc{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.xa-account small{font:600 11px Montserrat,system-ui,sans-serif;opacity:.75}
.xa-account b{font:700 14px Montserrat,system-ui,sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xa-account em{font:800 15px Montserrat,system-ui,sans-serif;font-style:normal}
.xa-account>.xa-i{flex:none}
