*{box-sizing:border-box}body{margin:0;min-height:100vh;display:grid;place-items:center;background:#f6f5f2;color:#161616;font:16px/1.45 "Source Sans 3",system-ui,sans-serif}
.box{background:#fff;border:1px solid #dedbd3;border-radius:10px;padding:2rem;width:min(92vw,400px)}
.logo{border:1.5px solid #161616;padding:.3rem .8rem;text-align:center;font:1.05rem Georgia,serif;letter-spacing:.12em;line-height:1.1;margin-bottom:1.2rem}
.logo small{display:block;font-size:.5rem;letter-spacing:.35em}
h1{font:400 1.6rem Georgia,serif;margin:0 0 1rem}
label{display:block;margin-bottom:.8rem;font-size:.9rem;color:#6b6860}
input{display:block;width:100%;margin-top:.25rem;padding:.7rem .8rem;font:inherit;font-size:1rem;border:1px solid #dedbd3;border-radius:6px}
button[type=submit]{width:100%;padding:.8rem;font:inherit;font-weight:600;border:0;border-radius:6px;background:#161616;color:#fff;cursor:pointer;min-height:46px}
.err{background:#fbeceb;color:#a3262a;padding:.6rem .8rem;border-radius:6px}.mu{color:#6b6860;font-size:.85rem;margin-top:1rem}
/* Mot de passe : champ et bouton « Afficher » / « Masquer » côte à côte (ticket #68). Zone tactile ≥ 44 px ; largeur fixe pour
   que le champ ne bouge pas au basculement. */
.field{margin-bottom:.8rem}.field label{margin-bottom:0}
.password-field{display:flex;align-items:stretch;gap:.4rem;margin-top:.25rem}
.password-field input{margin-top:0;flex:1 1 auto;min-width:0}
.password-toggle{flex:0 0 auto;display:inline-flex;align-items:center;gap:.35rem;min-height:44px;min-width:6.75rem;justify-content:center;padding:0 .7rem;font:inherit;font-size:.95rem;color:#161616;background:#fff;border:1px solid #dedbd3;border-radius:6px;cursor:pointer;white-space:nowrap}
.password-toggle:hover{background:#f6f5f2}.password-toggle:focus-visible{outline:2px solid #161616;outline-offset:2px}
.password-toggle svg{width:20px;height:20px;fill:currentColor;flex:0 0 auto}
.password-toggle[hidden],.password-toggle svg[hidden]{display:none}
