@font-face{font-family:Geist;src:url("fonts/geist/Geist-Regular.woff2?__av=20261008085304934-402736950d4a") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Geist;src:url("fonts/geist/Geist-SemiBold.woff2?__av=20261008085304934-402736950d4a") format("woff2");font-weight:600 700;font-display:swap}
.login-auth,.login-auth *{box-sizing:border-box}.login-auth{margin:0}
.login-auth{min-height:100dvh;overflow-x:hidden;background:#fff;background-image:none;color:#111;font-family:Geist,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif}
.login-shell{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(480px,.98fr);min-height:100dvh;padding:18px}
.login-visual{min-height:calc(100dvh - 36px);overflow:hidden;border-radius:28px;background:#eee}
.login-visual img{display:block;width:100%;height:100%;min-height:calc(100dvh - 36px);object-fit:cover;object-position:center center}
.login-panel{display:grid;min-width:0;place-items:center;padding:64px clamp(44px,7vw,112px)}
.login-content{width:min(100%,430px)}
.login-logo{position:relative;display:block;width:168px;height:34px;margin:0 0 72px;overflow:hidden}
.login-logo img{position:absolute;left:-8px;top:50%;width:190px;height:190px;max-width:none;transform:translateY(-42%)}
.login-heading{margin:0 0 10px;font-size:clamp(36px,3.2vw,48px);font-weight:600;line-height:1.04;letter-spacing:-.055em}
.login-subtitle{margin:0 0 38px;color:#777;font-size:15px;line-height:1.55}
.login-form{display:grid;gap:22px}
.login-field{display:grid;gap:9px;color:#191919;font-size:14px;font-weight:600}
.login-field input{width:100%;height:54px;border:1px solid #d9d9d9;border-radius:12px;background:#fff;padding:0 16px;color:#111;font:400 16px/1 Geist,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;outline:0;transition:border-color .16s,box-shadow .16s}
.login-field input::placeholder{color:#aaa}
.login-field input:focus{border-color:#222;box-shadow:0 0 0 3px rgba(0,0,0,.06)}
.login-field-row{display:flex;align-items:center;justify-content:space-between;gap:16px}
.login-field-row a{color:#555;font-size:13px;font-weight:500;text-decoration:none}
.login-field-row a:hover{text-decoration:underline;text-underline-offset:3px}
.login-password{position:relative}
.login-password input{padding-right:52px}
.login-password-toggle{position:absolute;right:7px;top:7px;display:grid;width:40px;height:40px;place-items:center;border:0;border-radius:9px;background:transparent;color:#747474;cursor:pointer}
.login-password-toggle:hover{background:#f4f4f4;color:#111}
.login-password-toggle:focus-visible,.login-google:focus-visible,.login-submit:focus-visible,.login-signup a:focus-visible{outline:2px solid #111;outline-offset:3px}
.login-password-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}
.login-submit,.login-google{display:flex;width:100%;height:55px;align-items:center;justify-content:center;border-radius:12px;font:600 15px/1 Geist,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;cursor:pointer}
.login-submit{margin-top:4px;border:1px solid #111;background:#111;color:#fff}
.login-submit:hover{background:#282828}
.login-submit:disabled,.login-google:disabled{opacity:.55;cursor:wait}
.login-google{gap:11px;border:1px solid #dedede;background:#fafafa;color:#171717}
.login-google:hover{border-color:#c9c9c9;background:#f5f5f5}
.login-google svg{flex:0 0 19px;width:19px;height:19px}
.login-divider{display:flex;align-items:center;gap:12px;margin:22px 0;color:#aaa;font-size:12px}
.login-divider::before,.login-divider::after{content:"";height:1px;background:#e7e7e7;flex:1}
.login-status{min-height:21px;margin:14px 0 0;color:#666;font-size:13px;line-height:1.5}
.login-status[data-kind=error]{color:#b42318}.login-status[data-kind=success]{color:#166534}
.login-signup{margin:36px 0 0;color:#777;font-size:14px;text-align:center}
.login-signup a{color:#111;font-weight:600;text-decoration:none}.login-signup a:hover{text-decoration:underline;text-underline-offset:3px}
@media(max-width:980px){.login-shell{grid-template-columns:minmax(300px,.84fr) minmax(450px,1.16fr)}.login-panel{padding:54px 42px}.login-logo{margin-bottom:56px}}
@media(max-width:720px){.login-shell{display:block;padding:0}.login-visual{height:190px;min-height:0;margin:10px;border-radius:20px}.login-visual img{height:190px;min-height:0;object-position:center 30%}.login-panel{display:block;padding:34px 22px 46px}.login-content{margin:0 auto}.login-logo{width:150px;height:30px;margin-bottom:38px}.login-logo img{left:-7px;width:170px;height:170px}.login-heading{font-size:36px}.login-subtitle{margin-bottom:30px}.login-field input,.login-submit,.login-google{height:54px}}
@media(max-width:420px){.login-visual{height:152px}.login-visual img{height:152px}.login-panel{padding:28px 18px 38px}.login-logo{margin-bottom:31px}.login-heading{font-size:33px}.login-form{gap:19px}.login-signup{margin-top:30px}}
@media(prefers-reduced-motion:reduce){.login-field input{transition:none}}

@media(min-width:721px){
  .login-shell{align-items:start}
  .login-visual{position:sticky;top:18px;align-self:start;height:calc(100vh - 36px);height:calc(100dvh - 36px);min-height:0}
  .login-visual img{height:100%;min-height:0}
  .login-panel{min-height:calc(100vh - 36px);min-height:calc(100dvh - 36px);height:auto}
}

/* Connexion V1 — composition figée dans le viewport, isolée des autres écrans Auth. */
@media(min-width:901px){
  .login-page{min-height:100vh;min-height:100dvh}
  .login-page .login-shell{min-height:100vh;min-height:100dvh;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:clamp(12px,1.1vw,16px)}
  .login-page .login-visual{position:sticky;top:clamp(12px,1.1vw,16px);height:calc(100vh - 2 * clamp(12px,1.1vw,16px));height:calc(100dvh - 2 * clamp(12px,1.1vw,16px));min-height:0;border-radius:24px}
  .login-page .login-visual img{width:100%;height:100%;min-height:0;object-fit:cover;object-position:50% 43%}
  .login-page .login-panel{min-height:calc(100vh - 2 * clamp(12px,1.1vw,16px));min-height:calc(100dvh - 2 * clamp(12px,1.1vw,16px));height:auto;padding:18px clamp(36px,5vw,72px)}
  .login-page .login-content{width:min(100%,420px)}
}
.login-page .login-logo{position:static;display:block;width:214px;height:56px;margin:0 0 28px;overflow:visible}
.login-page .login-logo img{position:static;display:block;width:100%;height:100%;max-width:100%;object-fit:contain;object-position:left center;transform:none}
.login-page .login-heading{margin-bottom:8px;font-size:clamp(38px,3vw,46px);line-height:1.02}
.login-page .login-subtitle{margin-bottom:24px}
.login-page .login-form{gap:16px}
.login-page .login-field{gap:7px}
.login-page .login-field input{height:50px}
.login-page .login-password-toggle{right:5px;top:5px}
.login-page .login-submit,.login-page .login-google{height:50px}
.login-page .login-submit{margin-top:2px}
.login-page .login-status{min-height:18px;margin-top:8px;line-height:1.35}
.login-page .login-divider{margin:16px 0}
.login-page .login-signup{margin-top:24px}
@media(max-width:900px){
  .login-page .login-shell{display:block;min-height:100vh;min-height:100dvh;padding:0}
  .login-page .login-visual{display:none}
  .login-page .login-panel{display:grid;min-height:100vh;min-height:100dvh;place-items:center;padding:28px clamp(22px,8vw,64px)}
  .login-page .login-content{width:min(100%,430px);margin:0 auto}
}
@media(max-width:420px){
  .login-page .login-panel{padding:24px 18px}
  .login-page .login-logo{width:196px;height:52px;margin-bottom:24px}
  .login-page .login-heading{font-size:34px}
  .login-page .login-subtitle{margin-bottom:22px}
  .login-page .login-form{gap:15px}
  .login-page .login-signup{margin-top:22px}
}
