/* Hello Abidjan · connexion e-mail/mot de passe (Supabase Auth) */
.login-main.ha-password-main{max-width:100%;padding-bottom:45px}
.ha-password-main .ha-password-signup .account-name-row{margin-top:0}
.ha-password-main label{display:block;margin-top:17px;margin-bottom:7px}
.ha-password-main :is(input:not([type=checkbox]),select){box-sizing:border-box;width:100%;min-height:48px;border:1px solid #c1cbd4;border-radius:5px;background:#fff;padding:11px 13px;color:#161c23;font:400 15px/1.4 'DM Sans',sans-serif}
.ha-password-main .account-name-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ha-password-main .account-name-row>div{min-width:0}
.ha-password-main .account-name-row input{min-width:0}
.ha-password-main .ha-password-hint{font-size:12px;line-height:1.6;color:#63717e;margin:9px 0 4px}
.ha-password-main .ha-password-field{position:relative}
.ha-password-main .ha-password-field input{padding-right:87px}
.ha-password-main .ha-password-eye{position:absolute;right:7px;top:50%;transform:translateY(-50%);display:inline-flex;justify-content:center;align-items:center;min-height:36px;padding:6px 9px;border:0;background:transparent;color:#0a5696;font:600 12px 'DM Sans',sans-serif;cursor:pointer}
.ha-password-main .ha-password-eye:focus-visible,.ha-password-main a:focus-visible{outline:2px solid #0873bd;outline-offset:2px}
.ha-password-main button.ha-password-submit{width:100%;display:block;margin-top:23px;min-height:49px;border-radius:5px;font-weight:700;font-size:15px;background:#0873bd;color:#fff}
.ha-password-main button.ha-password-submit:disabled{opacity:.55}
.ha-password-main .ha-password-text-link{margin:15px 0 0;display:block;width:auto;background:none;border:0;padding:5px 0;color:#0565a4;font:600 13px 'DM Sans',sans-serif;text-align:left;cursor:pointer}
.ha-password-main .ha-password-status{margin:15px 0 0;font:500 13px/1.6 'DM Sans',sans-serif;color:#245b44}
.ha-password-main .ha-password-status:empty{display:none}
.ha-password-main .ha-password-status.ha-password-error{color:#b13e31}
.ha-password-main .ha-password-switch{font:400 14px/1.5 'DM Sans',sans-serif;margin-top:20px;color:#384750}
.ha-password-main .ha-password-switch a{font-weight:700;color:#0873bd;text-decoration:underline;text-underline-offset:3px}
.ha-password-main .ha-password-legacy{padding:17px 0;margin-top:23px;border-top:1px solid #dfe5ea}
.ha-password-main .ha-password-legacy p{color:#3b4853;font:400 13px/1.6 'DM Sans',sans-serif;margin:0 0 9px}
.ha-password-main .ha-password-legacy a{font:700 13px 'DM Sans',sans-serif;color:#0873bd;text-decoration:underline;text-underline-offset:3px}
.ha-password-main .ha-password-legacy small{display:block;color:#65727e;font:400 12px/1.65 'DM Sans',sans-serif;margin-top:9px}
.ha-password-main .ha-password-policy{color:#6c7782;font:400 12px/1.65 'DM Sans',sans-serif;margin:20px 0 26px}
.ha-password-main .ha-password-policy a{color:#0873bd;text-decoration:underline}
.ha-password-main #ha-forgot-form,.ha-password-main #ha-recovery-form{margin:15px 0 0}
.ha-password-main [hidden]{display:none!important}
@media(max-width:420px){.login-main.ha-password-main{padding:35px 22px 34px}.ha-password-main .account-name-row{gap:8px}}
/* Session mémorisée uniquement sur demande : même lisibilité sur mobile. */
.ha-password-main .ha-password-remember{display:flex;align-items:flex-start;gap:12px;margin:19px 0 0;cursor:pointer;color:#243443;font-weight:400}
.ha-password-main .ha-password-remember[hidden]{display:none!important}
.ha-password-main .ha-password-remember input[type=checkbox]{appearance:auto;-webkit-appearance:checkbox;box-sizing:border-box;flex:0 0 19px;width:19px;height:19px;margin:2px 0 0;accent-color:#0873bd;cursor:pointer}
.ha-password-main .ha-password-remember span{display:block;min-width:0}
.ha-password-main .ha-password-remember strong{display:block;font:600 14px/1.45 'DM Sans',sans-serif;color:#1b3041}
.ha-password-main .ha-password-remember small{display:block;font:400 12px/1.6 'DM Sans',sans-serif;color:#5e6f7f;margin-top:3px}
.ha-password-main .ha-signup-success[hidden]{display:none!important}
.ha-password-main .ha-signup-success{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:17px}
.ha-password-main .ha-signup-success a{font:600 13px/1.5 'DM Sans',sans-serif;text-decoration:none}
.ha-password-main .ha-success-home{display:inline-flex;align-items:center;justify-content:center;border:1px solid #0873bd;color:#0873bd;border-radius:5px;padding:11px 14px}
.ha-password-main .ha-success-login{color:#0873bd;text-decoration:underline!important;text-underline-offset:3px}

/* v425 — Inscription/connexion épurée, sans blocs informatifs redondants. */
.login-main.ha-password-main{
 box-sizing:border-box;
 width:100%;
 max-width:480px;
 margin:0 auto;
 padding:27px 24px 44px;
}
.ha-password-main .account-step{display:none!important}
.ha-password-main #ha-password-title{
 font-size:clamp(28px,7vw,32px);
 font-weight:650;
 line-height:1.18;
 letter-spacing:-.025em;
 margin:0 0 8px;
}
.ha-password-main #ha-password-sub{
 color:#62717e;
 font-size:14px;
 font-weight:400;
 line-height:1.55;
 margin:0 0 25px;
}
.ha-password-main #ha-password-form>label:not(.ha-password-remember),
.ha-password-main #ha-confirm-row>label{
 display:block;
 font-size:13px!important;
 font-weight:600!important;
 line-height:1.4;
 color:#263643;
 margin:0 0 7px;
}
.ha-password-main #ha-email{
 margin:0 0 19px;
}
.ha-password-main #ha-password-form>.ha-password-field{
 margin:0 0 19px;
}
.ha-password-main #ha-confirm-row .ha-password-field{
 margin:0 0 10px;
}
.ha-password-main #ha-password-form input:not([type=checkbox]){
 min-height:50px;
 font-size:16px;
 border-color:#d7dee4;
 border-radius:7px;
}
.ha-password-main #ha-password-form input:not([type=checkbox]):focus-visible{
 outline:2px solid #0873bd;
 outline-offset:1px;
}
.ha-password-main .ha-password-eye{
 font-size:12px;
 font-weight:500;
}
.ha-password-main #ha-password-rule{
 margin:0 0 8px;
 font-size:12px;
 line-height:1.45;
 color:#71808a;
}
.ha-password-main #ha-password-submit{
 margin:17px 0 0;
 min-height:50px;
 border-radius:7px;
 font-size:15px;
 font-weight:600;
 box-shadow:none;
}
.ha-password-main #ha-password-policy{
 margin:12px 0 0;
 color:#74808a;
 font-size:11px;
 line-height:1.6;
}
.ha-password-main #ha-password-policy a{
 color:#4a6070;
 font-weight:500;
 text-underline-offset:2px;
}
.ha-password-main .ha-password-switch{
 text-align:center;
 margin:23px 0 0;
 font-size:13px;
 line-height:1.5;
}
.ha-password-main .ha-password-switch a{
 font-weight:600;
 text-decoration:underline;
 text-underline-offset:3px;
}
.ha-password-main .ha-password-legacy{
 text-align:center;
 border:0;
 padding:0;
 margin:18px 0 0;
 color:#6a7782;
}
.ha-password-main .ha-password-legacy summary{
 cursor:pointer;
 font:400 12px/1.6 'DM Sans',Arial,sans-serif;
 color:#61717c;
}
.ha-password-main .ha-password-legacy summary:focus-visible{
 outline:2px solid #0873bd;outline-offset:4px;
}
.ha-password-main .ha-password-legacy div{
 padding:9px 0 0;
}
.ha-password-main .ha-password-legacy a{
 font-size:12px;
 font-weight:500;
}
.ha-password-main .ha-password-legacy[hidden],
.ha-password-main .ha-password-switch[hidden]{display:none!important}
.ha-password-main #ha-forgot-open{
 font-weight:500;
}
@media(max-width:420px){
 .login-main.ha-password-main{padding:25px 22px 38px}
}

/* v447 · Verification directe de l'e-mail par code numerique. */
.ha-password-main #ha-verify-form[hidden]{display:none!important}
.ha-password-main .ha-verify-form{margin-top:10px}
.ha-password-main .ha-verify-intro{display:flex;flex-direction:column;gap:7px;margin:0 0 25px;padding:0 0 16px;border-bottom:1px solid #e4e9ed}
.ha-password-main .ha-verify-step{font:700 10px/1.4 'DM Sans',sans-serif;letter-spacing:1.2px;color:#687b88}
.ha-password-main .ha-verify-email{font:650 14px/1.5 'DM Sans',sans-serif;color:#1c394d;overflow-wrap:anywhere}
.ha-password-main #ha-verify-form>label:not(.ha-verify-remember){display:block;font:650 14px/1.4 'DM Sans',sans-serif;margin:0 0 11px;color:#20384a}
.ha-password-main #ha-verify-code{display:block;width:100%;min-height:67px;box-sizing:border-box;border:1px solid #b7c8d4;border-radius:9px;background:white;color:#18364e;letter-spacing:.62em;text-align:center;padding:10px 0 10px .62em;font:700 29px/1.2 'DM Sans',sans-serif!important;font-variant-numeric:tabular-nums;outline:none}
.ha-password-main #ha-verify-code::placeholder{color:#c8d1d8;opacity:1}
.ha-password-main #ha-verify-code:focus{border-color:#0b70af;box-shadow:0 0 0 3px #0b70af14}
.ha-password-main .ha-verify-note{font:400 12px/1.65 'DM Sans',sans-serif;color:#71818e;margin:12px 0 22px}
.ha-password-main .ha-verify-remember{display:flex;gap:10px;align-items:center;font:500 12px/1.4 'DM Sans',sans-serif;margin:0 0 21px;color:#4b5f6f;cursor:pointer}
.ha-password-main .ha-verify-remember input{width:18px;height:18px;accent-color:#1276b0;flex:0 0 18px}
.ha-password-main #ha-verify-form .ha-password-submit{margin:0;min-height:53px}
.ha-password-main .ha-verify-links{display:flex;justify-content:space-between;gap:14px;margin:18px 0 0}
.ha-password-main .ha-verify-links button{border:0;background:transparent;color:#136d9d;font:650 13px/1.4 'DM Sans',sans-serif;text-decoration:underline;text-underline-offset:3px;padding:5px 0;cursor:pointer}
.ha-password-main .ha-verify-fallback{margin:19px 0 0;color:#788793;font:400 11px/1.6 'DM Sans',sans-serif}
body.login-body{background:#fff!important;color:#173044}
body.login-body .login-shell{background:#fff!important}
@media(max-width:699px){
 body.login-body{padding:0!important;margin:0!important;min-height:100dvh!important}
 .login-body .login-shell{max-width:none!important;width:100%!important;min-height:100dvh!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}
 .login-body .login-topbar{min-height:67px!important;padding:calc(9px + env(safe-area-inset-top,0px)) 22px 8px!important}
 .login-body .login-main.ha-password-main{max-width:none!important;width:100%!important;padding:29px clamp(21px,6vw,34px) 42px!important;margin:0!important}
 .ha-password-main #ha-password-title{font-size:clamp(26px,7.6vw,33px)!important;line-height:1.18!important;letter-spacing:-.7px!important}
 .ha-password-main #ha-password-sub{font-size:14px!important;line-height:1.6!important;margin-bottom:24px!important}
 .ha-password-main #ha-verify-code{min-height:65px;font-size:26px!important}
 .ha-password-main .ha-verify-links{flex-wrap:wrap}
}
@media(max-width:350px){
 .ha-password-main #ha-verify-code{letter-spacing:.46em;padding-left:.46em;font-size:25px!important}
 .ha-password-main .ha-verify-links button{font-size:12px}
}
/* v448 : accès visible à la connexion lorsqu’une adresse est déjà enregistrée. */
.ha-password-main .ha-verify-fallback{margin:14px 0 0!important;line-height:1.65!important}
.ha-password-main .ha-verify-fallback a{font-weight:700;color:#126a9a;text-decoration:underline;text-underline-offset:3px}
/* v449 : s'adapter aux OTP e-mail de 6 à 10 chiffres émis par Supabase. */
.ha-password-main #ha-verify-code{font-size:26px!important;letter-spacing:.22em!important;padding-left:.22em!important;font-variant-numeric:tabular-nums}
@media(max-width:420px){.ha-password-main #ha-verify-code{font-size:24px!important;letter-spacing:.17em!important;padding-left:.17em!important}}
/* La restauration de session se fait discrètement, sans écran d'attente
   ni masquage des formulaires de connexion et d'inscription. */
.ha-password-main #ha-account-existing[hidden]{display:none!important}
.ha-password-main .ha-account-existing{padding:0 0 20px;margin:8px 0 0}
.ha-password-main .ha-account-existing-email{font:700 14px/1.5 'DM Sans',sans-serif;color:#20475b;overflow-wrap:anywhere;padding:0 0 12px;border-bottom:1px solid #e3e9ed}
.ha-password-main .ha-account-existing>p{font:400 13px/1.7 'DM Sans',sans-serif;color:#5e707e;margin:18px 0}
.ha-password-main .ha-account-existing-login{display:flex;align-items:center;justify-content:center;width:100%;min-height:51px;margin:14px 0 0;text-decoration:none;border-radius:7px;background:#173c52;color:#fff;font:700 14px/1.4 'DM Sans',sans-serif;padding:10px 15px}
.ha-password-main .ha-account-existing-small{font-size:12px!important;margin:16px 0 8px!important;color:#778893!important}
.ha-password-main .ha-account-existing-retry{color:#1a6587;text-decoration:underline;text-underline-offset:3px;font:600 13px/1.4 'DM Sans',sans-serif}