/* Volny — Écrans de connexion et d'invitation. */
/* ---------- Connexion ---------- */
.vue-connexion,.vue-invitation{background:var(--surface)}
.auth{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:1.05fr 1fr}
.auth-marque{position:relative;overflow:hidden;background:#121116;color:#fff;padding:44px 52px;display:flex;flex-direction:column;justify-content:space-between}
.auth-marque::before{content:"";position:absolute;inset:auto -20% -40% -20%;height:90%;
  background:radial-gradient(closest-side,rgba(183,160,210,.32),transparent 70%);pointer-events:none}
.auth-marque::after{content:"";position:absolute;right:-120px;top:-120px;width:380px;height:380px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(121,107,144,.45),transparent);pointer-events:none}
.auth-marque-haut{position:relative;display:flex;align-items:center;gap:14px}
.auth-marque .logo{height:30px;color:#fff;--logo-accent:#9D8DB8}
.auth-sous{font-size:13px;letter-spacing:.32em;text-transform:uppercase;color:var(--lilas);font-weight:600;padding-left:14px;border-left:1px solid rgba(255,255,255,.18)}
.auth-onde{position:relative;align-self:center;width:220px;height:220px;display:grid;place-items:center}
.auth-onde span{position:absolute;inset:0;border-radius:50%;border:1.5px solid rgba(183,160,210,.5);animation:onde 3.6s cubic-bezier(.2,.6,.3,1) infinite}
.auth-onde span:nth-child(2){animation-delay:1.2s}
.auth-onde span:nth-child(3){animation-delay:2.4s}
.auth-tel{position:relative;width:84px;height:84px;padding:24px;border-radius:50%;fill:#121116;background:linear-gradient(140deg,#fff,#E4DAF0);
  box-shadow:0 18px 50px -10px rgba(183,160,210,.6)}
@keyframes onde{0%{transform:scale(.38);opacity:0}15%{opacity:1}100%{transform:scale(1);opacity:0}}
.auth-slogan{position:relative;margin:0;font-size:30px;line-height:1.2;font-weight:700;letter-spacing:-.02em;max-width:420px}
.auth-slogan span{display:block;margin-top:12px;font-size:14px;font-weight:500;letter-spacing:0;color:rgba(255,255,255,.55)}
.auth-panneau{display:grid;place-items:center;padding:40px 24px}
.auth-carte{width:100%;max-width:380px}
.auth-carte h1{margin:0 0 6px;font-size:30px;font-weight:800;letter-spacing:-.03em}
.auth-intro{margin:0 0 26px;color:var(--doux)}
.auth-intro strong{color:var(--encre)}
.auth-aide{margin:22px 0 0;text-align:center;color:var(--pale);font-size:13px}
.auth-logo-mobile{display:none;margin-bottom:34px}
.auth-logo-mobile .logo{height:28px;color:var(--encre)}
@media (max-width:860px){
  .auth{grid-template-columns:1fr}
  .auth-marque{display:none}
  .auth-panneau{align-items:start;padding-top:12vh}
  .auth-logo-mobile{display:block}
}

/* Politique de confidentialité (page publique, contrat mobile v2.5) : une colonne lisible */
.legal{max-width:720px;margin:0 auto;padding:40px 20px 56px;line-height:1.6}
.legal-haut{margin-bottom:32px}
.legal-haut .logo{height:28px;color:var(--encre)}
.legal h1{margin:0 0 18px;font-size:28px;line-height:1.2;font-weight:800;letter-spacing:-.02em}
.legal h2{margin:30px 0 8px;font-size:18px;font-weight:700;scroll-margin-top:16px}
.legal p,.legal li{color:var(--encre);font-size:15px}
.legal ul{padding-left:20px;margin:8px 0}
.legal li{margin-bottom:6px}
.legal em{font-style:normal;font-weight:600}
.legal a{color:var(--accent-2)}
.legal-date{margin-top:32px;color:var(--pale);font-size:13px}
.legal-retour{margin-top:24px;padding-top:20px;border-top:1px solid var(--trait);text-align:center;font-size:14px}
