:root{
  --bg:#f4f7fb;
  --card:#fff;
  --text:#17212b;
  --muted:#6b7785;
  --line:#e2e8f0;
  --navy:#20364d;
  --red:#d9363e;
  --red2:#b91c28;
  --danger:#b42318;
  --danger-soft:#fff0ef;
  --blue:#1769aa;
  --blue-soft:#eaf4ff;
  --tap:48px;
}
*{box-sizing:border-box}
html{background:var(--bg);color-scheme:light}
body.login-page{
  margin:0;
  min-height:100vh;
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  font-size:16px;
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
}
body.login-page a{color:inherit;text-decoration:none}
body.login-page button,body.login-page input{font:inherit}
body.login-page button{cursor:pointer}
.login-shell{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
  background:radial-gradient(circle at top,#eef4fb 0,#f6f8fb 40%,#eef2f6 100%);
}
.login-card{
  width:min(100%,430px);
  background:#fff;
  border:1px solid var(--line);
  border-radius:26px;
  padding:26px;
  box-shadow:0 20px 50px rgba(24,44,65,.12);
}
.login-logo{
  width:110px;
  height:110px;
  object-fit:contain;
  display:block;
  margin:0 auto 12px;
}
.login-title{
  text-align:center;
  font-size:27px;
  font-weight:900;
  color:var(--navy);
  letter-spacing:-.03em;
}
.login-sub{
  text-align:center;
  color:var(--muted);
  font-size:14px;
  margin:5px 0 22px;
}
.field{margin-bottom:16px}
.label{display:block;font-weight:800;color:#354251;margin-bottom:7px}
.input{
  width:100%;
  min-height:50px;
  border:1px solid #ccd5df;
  border-radius:14px;
  background:#fff;
  color:var(--text);
  padding:12px 14px;
  outline:none;
  transition:.15s;
}
.input:focus{border-color:#7ca7c8;box-shadow:0 0 0 4px rgba(44,116,167,.10)}
.input-icon-wrap{
  display:flex;
  border:1px solid #ccd5df;
  border-radius:14px;
  overflow:hidden;
  background:#fff;
}
.input-icon{
  width:52px;
  flex:0 0 52px;
  display:grid;
  place-items:center;
  background:#f8fafc;
  border-right:1px solid var(--line);
  font-size:20px;
}
.input-icon-wrap .input{border:0;border-radius:0;box-shadow:none}
.input-icon-wrap:focus-within{border-color:#7ca7c8;box-shadow:0 0 0 4px rgba(44,116,167,.10)}
.btn{
  min-height:var(--tap);
  border:1px solid var(--line);
  border-radius:14px;
  padding:11px 16px;
  background:#fff;
  color:var(--text);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-weight:800;
  transition:.15s ease;
}
.btn:hover{transform:translateY(-1px);box-shadow:0 7px 20px rgba(20,40,60,.08)}
.btn:active{transform:translateY(0)}
.btn-primary{background:var(--blue);color:#fff;border-color:var(--blue)}
.btn-primary:hover{background:#12598f;border-color:#12598f}
.btn-block{width:100%}
.flash{
  border-radius:14px;
  padding:12px 14px;
  margin:0 0 16px;
  border:1px solid;
  font-weight:650;
}
.flash-error{background:var(--danger-soft);color:#8f1d16;border-color:#f4c2bd}
.flash-info{background:var(--blue-soft);color:#155e91;border-color:#c8e3fa}
.login-separator{
  display:flex;
  align-items:center;
  gap:12px;
  color:#8a96a3;
  font-size:12px;
  margin:19px 0 13px;
}
.login-separator::before,.login-separator::after{content:"";height:1px;background:var(--line);flex:1}
.login-portal-links{display:grid;gap:9px}
.login-portal-link{
  width:100%;
  min-height:48px;
  border:1px solid #d9e2eb;
  border-radius:14px;
  background:#f8fafc;
  color:var(--navy);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  text-decoration:none;
  font-weight:800;
  transition:.15s ease;
}
.login-portal-link:hover{background:#f1f5f9;transform:translateY(-1px)}
@media(max-width:760px){
  .login-shell{padding:18px}
  .login-card{padding:22px}
  .login-logo{width:100px;height:100px}
}


/* V17 — portails uniformisés */
.login-portal-links{display:grid;grid-template-columns:1fr;gap:10px}
.login-portal-button{width:100%;min-height:50px;border:1px solid #9fc4e2;border-radius:14px;background:#edf6fd;color:#155e91;display:flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;font-weight:850;transition:.15s ease}
.login-portal-button:hover{background:#dfeffc;border-color:#79afd4;transform:translateY(-1px);box-shadow:0 7px 20px rgba(23,105,170,.10)}
