:root { --fond: #f4f5f7; --encre: #1d2530; --doux: #5b6472; --trait: #d7dce2; --accent: #1d2530; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; display: grid; place-items: center; background: var(--fond);
  font: 15px/1.45 Verdana, Geneva, sans-serif; color: var(--encre); padding: 16px; }
.carte-login { width: 100%; max-width: 360px; background: #fff; border: 1px solid var(--trait);
  border-radius: 10px; padding: 32px 28px 28px; text-align: center; box-shadow: 0 8px 30px rgba(29, 37, 48, .08); }
.logo { width: 84px; height: auto; margin-bottom: 10px; }
h1 { margin: 0 0 20px; font-size: 22px; letter-spacing: .28em; font-weight: 700; }
.sous { margin: 2px 0 22px; color: var(--doux); font-size: 13px; letter-spacing: .06em; }
form { text-align: left; display: grid; gap: 6px; }
label { font-size: 12px; color: var(--doux); margin-top: 8px; }
input { font: inherit; padding: 9px 10px; border: 1px solid var(--trait); border-radius: 6px; }
input:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
button { margin-top: 18px; font: inherit; font-weight: 700; padding: 10px; border: 0; border-radius: 6px;
  background: var(--accent); color: #fff; cursor: pointer; }
button:hover { opacity: .9; }
.erreur { background: #fdecef; color: #8a1030; border-radius: 6px; padding: 8px 10px; font-size: 13px; }
.langue { position: fixed; top: 14px; right: 16px; margin: 0; padding: 3px 8px; font-size: 18px; font-weight: 400;
  background: transparent; border: 1px solid var(--trait); border-radius: 6px; color: var(--encre); }
.langue:hover { background: #fff; opacity: 1; }
