/* Guichet INLYS Vault — style INLYS (piste C). Couleurs, police, rayons : jetons.css (commun avec le coffre). */
* { box-sizing: border-box; }
body {
  margin: 0; min-height: 100vh; background: var(--fond); color: var(--texte);
  font: 16px/1.5 var(--police); -webkit-font-smoothing: antialiased;
  display: flex; flex-direction: column; align-items: center; padding: 56px 16px 32px;
}
[hidden] { display: none !important; }
.marque { display: flex; align-items: center; gap: .6rem; margin: 0 0 28px; font-size: 1.05rem; }
.marque b { font-weight: 700; letter-spacing: .14em; color: var(--accent); }
.logo { width: 30px; height: 30px; flex: none; }
.logo rect { fill: var(--accent); }
.logo circle { stroke: var(--accent-texte); }
main {
  width: 100%; max-width: 34rem; background: var(--surface); border: 1px solid var(--bord);
  border-radius: 20px; padding: 2.25rem; box-shadow: var(--ombre);
}
h1 { font-size: 1.6rem; font-weight: 600; letter-spacing: -0.02em; line-height: 1.2; margin: 0 0 .75rem; }
p { margin: .5rem 0; }
.discret { color: var(--discret); font-size: .92rem; }
.pied { margin: 1.75rem 0 0; padding-top: 1.25rem; border-top: 1px solid var(--bord); font-size: .85rem; line-height: 1.55; }
label { display: block; margin: 1.25rem 0 .5rem; color: var(--discret); font-size: .9rem; }
input {
  display: block; width: 100%; margin-top: .4rem; height: 56px; padding: 0 18px;
  font: 500 1.5rem var(--police-mono); letter-spacing: .3em;
  border: 1px solid var(--bord-fort); border-radius: var(--rayon-ctrl); background: var(--surface); color: var(--texte);
}
input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent); }
button {
  font: 600 16px var(--police); min-height: 48px; padding: .7rem 1.2rem; margin: .75rem 0 0;
  border-radius: var(--rayon-ctrl); border: 1px solid var(--bord-fort); background: var(--surface); color: var(--texte); cursor: pointer;
}
button.principal { display: block; width: 100%; background: var(--accent); border-color: var(--accent); color: var(--accent-texte); }
button.principal:hover { background: var(--accent-fort); border-color: var(--accent-fort); }
button.lien { display: block; margin: .5rem auto 0; min-height: 40px; border: 0; background: transparent; color: var(--lien); font-weight: 500; font-size: .95rem; }
button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
button:disabled { opacity: .5; cursor: default; }
#message { min-height: 1.5em; margin-top: 1rem; }
#message.ok { color: var(--succes); }
#message.ko { color: var(--danger); }
@media (max-width: 40rem) { body { padding: 32px 12px 24px; } main { padding: 1.5rem 1.25rem; } }
#message:empty { min-height: 0; margin: 0; }
