/* Tronc commun des applications CAP (dépôt cap-apps-commun). Ne pas modifier ce fichier dans le dépôt d'une application :
   il y est recopié automatiquement et toute modification locale serait écrasée.
   Page de connexion (public/login.html de chaque application, <body class="lg0 lgx">) : panneau « Bienvenue » en dégradé et carte blanche.
   Couleurs de l'application : --ink, --p, --acc, --bg, --b, --t, --m (styles.css) ; seconde couleur du dégradé : --lg2 (style du <body>). */
body.lgx{min-height:100vh;min-height:100dvh;margin:0;display:flex;align-items:center;justify-content:center;padding:24px!important;box-sizing:border-box;
 background:radial-gradient(1200px 600px at 10% -10%,color-mix(in srgb,var(--p) 14%,transparent),transparent 60%),radial-gradient(900px 500px at 110% 110%,color-mix(in srgb,var(--acc) 10%,transparent),transparent 60%),var(--bg)}
.lgw{display:flex;width:100%;max-width:1000px;min-height:580px;margin:0;padding:0;background:#fff;border-radius:28px;overflow:hidden;box-shadow:0 2px 6px color-mix(in srgb,var(--ink) 8%,transparent),0 30px 60px -20px color-mix(in srgb,var(--ink) 35%,transparent)}
/* panneau d'accueil : dégradé, cercles et vagues décoratifs */
.lgh{position:relative;flex:1 1 52%;color:#fff;padding:44px 48px;display:flex;flex-direction:column;overflow:hidden;isolation:isolate;background:linear-gradient(150deg,var(--ink) 0%,var(--lg2,var(--p)) 100%)}
.lgh::before{content:"";position:absolute;z-index:-1;width:520px;height:520px;border-radius:50%;left:-200px;bottom:-260px;
 background:radial-gradient(circle,#ffffff00 54%,#ffffff14 55%,#ffffff14 63%,#ffffff00 64%,#ffffff00 72%,#ffffff0f 73%,#ffffff0f 80%,#ffffff00 81%),radial-gradient(circle,#ffffff1f,#ffffff08 55%,transparent 56%)}
.lgh::after{content:"";position:absolute;z-index:-1;width:340px;height:340px;border-radius:50%;right:-120px;top:-120px;background:radial-gradient(circle at 35% 65%,#ffffff26,#ffffff05 70%)}
.lgwv{position:absolute;z-index:-1;left:0;right:0;bottom:0;width:100%;height:150px}
.lgb{display:flex;align-items:center;gap:12px;font-weight:800;font-size:19px;letter-spacing:.3px}
.lgb .lgo{width:46px;height:46px;border-radius:12px;box-shadow:0 0 0 1.5px #ffffff4d}
.lgh h2{font-size:40px;line-height:1.1;margin:auto 0;font-weight:800;letter-spacing:-.5px;color:#fff}
.lgf{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#ffffffb3}
.lgf svg{width:14px;height:14px}
/* carte de connexion */
.lgx .lbox{flex:1 1 48%;max-width:none;margin:0;border:0;border-radius:0;padding:52px 52px 40px;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box}
.lgt{font-size:28px;font-weight:800;margin:0 0 4px;color:var(--ink);display:block}
.lgs{margin:0 0 22px;color:var(--m);font-size:14.5px}
.lbox:has(#f[hidden]) :is(.lgt,.lgs){display:none}      /* double authentification, mot de passe oublié : leur propre titre */
.lgx #msg:empty,.lgx #mmsg:empty,.lgx #omsg:empty,.lgx #rmsg:empty{min-height:0;margin:0}
.lgx :is(#msg,#mmsg,#omsg,#rmsg).err{background:#fef2f2;border:1px solid #fecaca;border-radius:12px;padding:9px 12px;margin-bottom:12px}
.lgx :is(#msg,#mmsg,#omsg,#rmsg).info{background:color-mix(in srgb,var(--p) 8%,#fff);border-radius:12px;padding:9px 12px;margin-bottom:12px}
.lgx .g1{gap:14px}
.lgx .g1 label{font-size:13px;font-weight:600;color:var(--t)}
.lgx .lbox :is(input[type=email],input[type=password],input[type=text],input[name=name]){height:48px;border-radius:14px;border:1.5px solid var(--b);background-color:#f8fafc;background-repeat:no-repeat;background-position:14px center;background-size:18px;padding:0 14px 0 44px;font-size:15px;box-sizing:border-box;transition:border-color .15s,box-shadow .15s,background-color .15s}
.lgx .lbox input:focus{outline:0;border-color:var(--p);background-color:#fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--p) 15%,transparent)}
.lgx input[type=email]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='3'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E")}
.lgx :is(input[name=password],input[name=password2],input[name=token]){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='10' width='16' height='11' rx='3'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E")}
.lgx input[name=name]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E")}
.lgpw{position:relative;display:block}      /* bouton « Afficher » du mot de passe (ajouté par login.js) */
.lgpw input{padding-right:96px!important;width:100%}
.lgeye{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0!important;background:none!important;box-shadow:none!important;color:var(--p);font-weight:700;font-size:12.5px;padding:8px 10px!important;letter-spacing:.4px;text-transform:uppercase;cursor:pointer}
.lgx button.p{height:50px;border-radius:14px!important;font-size:16px;font-weight:700;padding:0!important;margin-top:6px}
.lgx #oforgot,.lgx .mfa2 a{font-weight:600;color:var(--p);text-decoration:none}
.lgx .lbox>p:has(#oforgot){margin-top:10px!important}
.lgx .mfh{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.lgx .mfh br{display:none}
.lgx .mfh b{font-size:24px;font-weight:800;color:var(--ink)}
.lgx .mfh small{font-size:14px;line-height:1.5}
.lgsh{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--p) 12%,#fff);color:var(--p);margin-bottom:6px}
.lgsh svg{width:30px;height:30px}
.lgx .mfl{font-weight:600;color:var(--t)}
.lgx .mfl input{height:64px;border-radius:16px;border:1.5px solid var(--b);background:#f8fafc;font-size:30px!important;letter-spacing:10px;padding:0!important;font-weight:700;color:var(--ink)}
.lgx .mfr{margin:12px 0 4px}
.lgx .mfa2{font-size:13.5px;line-height:1.6}
.lgx .mfa2 small{display:block;margin:8px 0 4px;font-size:12.5px}
/* téléphone : panneau en haut, carte blanche qui remonte dessus */
@media(max-width:760px){
 body.lgx{padding:0!important;align-items:stretch;background:var(--bg)}
 .lgw{flex-direction:column;border-radius:0;min-height:100vh;min-height:100dvh;box-shadow:none;background:transparent}
 .lgh{flex:0 0 auto;padding:22px 24px 64px;padding-top:max(22px,env(safe-area-inset-top))}
 .lgh::before{width:360px;height:360px;left:-150px;bottom:-200px}
 .lgh h2{font-size:30px;margin:24px 0 0}
 .lgf{display:none}
 .lgwv{height:90px}
 .lgx .lbox{flex:1 0 auto;margin-top:-40px;position:relative;border-radius:28px 28px 0 0;padding:28px 22px 30px;justify-content:flex-start;box-shadow:0 -10px 30px -12px color-mix(in srgb,var(--ink) 30%,transparent)}
 .lgt{font-size:24px}
}
