/* Page de connexion (identifiants propres : aucune collision avec les styles de l’application) */
body.login{display:grid;place-items:center;overflow:auto;padding:16px;
  background:radial-gradient(1200px 600px at 50% -10%,color-mix(in srgb,var(--ac) 10%,transparent),transparent 60%),var(--bg)}
body.login main{width:100%;max-width:380px}
#login-form{background:var(--surf);border:1px solid var(--line);border-radius:20px;padding:32px 28px 28px;display:flex;flex-direction:column;gap:14px;box-shadow:0 10px 40px rgba(0,0,0,.18)}
#login-form>img{align-self:center;border-radius:14px;box-shadow:0 6px 18px color-mix(in srgb,var(--ac) 30%,transparent)}
#login-form h1{font:400 30px/1.2 Georgia,"Times New Roman",serif;text-align:center;margin:4px 0 0;letter-spacing:-.01em}
#login-form .sub{text-align:center;margin:-6px 0 8px;color:var(--mut);font-size:14px}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:13px;font-weight:500;color:var(--mut)}
.ctl{position:relative;display:flex;align-items:center}
.ctl>.i{position:absolute;left:13px;width:17px;height:17px;color:var(--mut);pointer-events:none}
.ctl input{width:100%;background:var(--bg);color:inherit;border:1px solid var(--line);border-radius:11px;padding:12px 14px 12px 40px;font:inherit;font-size:16px;transition:border-color .15s,box-shadow .15s}
.ctl input:focus{border-color:var(--ac);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--ac) 18%,transparent)}
.ctl input[aria-invalid=true]{border-color:var(--err)}
#login-pw{padding-right:46px}
#login-eye{position:absolute;right:5px;width:36px;height:36px}
#login-err{display:flex;align-items:flex-start;gap:8px;margin:0;padding:10px 12px;border-radius:10px;font-size:14px;line-height:1.45;color:var(--err);background:color-mix(in srgb,var(--err) 10%,transparent)}
#login-err[hidden]{display:none}
#login-err .i{width:17px;height:17px;margin-top:1px}
#login-go{margin-top:4px;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:46px;background:var(--ac);color:var(--onac);font-weight:600;font-size:15px;border-radius:11px;box-shadow:0 2px 8px color-mix(in srgb,var(--ac) 30%,transparent)}
#login-go:hover:not(:disabled){background:var(--ac2)}
#login-go:disabled{opacity:.75;cursor:progress}
#login-go .i{display:none;width:17px;height:17px}
#login-go.busy .i{display:inline-block}
@keyframes shake{20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
#login-form.shake{animation:shake .35s ease-in-out}
@media(max-width:420px){#login-form{padding:26px 20px 22px;border-radius:18px}}
