/* Stil des Anmelde-Dokuments — bewusst eigenstaendig und knapp.
   Nur was das Anmelden braucht; das Designsystem der Oberflaeche (stil.css)
   bleibt hinter der Anmeldung und verraet vorher nichts ueber die App. */

:root{
  --fels:#0F4C5C;
  --fels-tief:#0B3B47;
  --grat:#4E8098;
  --firn:#EDF2F2;
  --tinte:#16333B;
  --neben:#5C7A80;
  --radius-klein:7px;
  --schrift:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Helvetica,Arial,sans-serif;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--firn);color:var(--tinte);
  font-family:var(--schrift);font-size:15px;line-height:1.5;
  min-height:100vh;-webkit-font-smoothing:antialiased;
}
[hidden]{display:none !important}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--grat);outline-offset:2px;border-radius:4px}
h1{margin:0;font-weight:600;letter-spacing:-.01em}

.anmeldung{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:100vh;padding:2rem 1.25rem;text-align:center;
}
.logo{width:min(280px,68vw);height:auto;display:block}
.anmeldung h1{font-size:1.3rem;margin:1.2rem 0 1.4rem}

.knopf-haupt{
  background:var(--fels);color:#fff;border:1px solid var(--fels);
  padding:.6rem 1.6rem;border-radius:var(--radius-klein);cursor:pointer;white-space:nowrap;
  transition:background .12s ease,border-color .12s ease;
}
.knopf-haupt:hover{background:var(--fels-tief);border-color:var(--fels-tief)}
.anmelde-status{min-height:1.5rem;margin:1rem 0 0;font-size:.85rem;color:var(--neben)}

.logo-linie{transform:scaleX(0);transform-box:view-box;transform-origin:120px 120px;animation:logo-linie .7s cubic-bezier(.16,1,.3,1) forwards}
.logo-gipfel{transform:scaleY(0);transform-box:view-box;transform-origin:120px 118px;animation:logo-gipfel 1s cubic-bezier(.16,1,.3,1) forwards}
.logo-gipfel-1{animation-delay:.45s}
.logo-gipfel-2{animation-delay:.6s}
.logo-gipfel-3{animation-delay:.75s}
@keyframes logo-linie{to{transform:scaleX(1)}}
@keyframes logo-gipfel{to{transform:scaleY(1)}}

/* ── Zweiter Faktor ───────────────────────────────────────────────────────────
   Der Anmeldebildschirm traegt jetzt vier Zustaende: Knopf, Code, Einrichtung,
   Wiederherstellungscodes. Logo und Wortmarke bleiben stehen, nur der Block
   darunter wechselt — deshalb hier nur die Bloecke, nichts am Rahmen. */

.block{
  display:flex;flex-direction:column;align-items:center;gap:.9rem;
  width:min(360px,100%);margin:0 auto;
}
.block form{display:flex;flex-direction:column;align-items:center;gap:.9rem;width:100%}

.feld-schrift{font-size:.85rem;color:var(--neben)}

.feld-code{
  font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:1.5rem;letter-spacing:.22em;text-align:center;text-indent:.22em;
  width:100%;max-width:11ch;padding:.5rem .6rem;
  color:var(--tinte);background:#fff;
  border:1px solid var(--stein,#9BB0AC);border-radius:var(--radius-klein);
}
.feld-code:focus{outline:2px solid var(--grat);outline-offset:1px;border-color:var(--grat)}

.hinweis-klein{margin:0;font-size:.8rem;color:var(--neben);max-width:34ch;line-height:1.45}
.einrichtung-text{margin:0;font-size:.9rem;color:var(--tinte);max-width:36ch;line-height:1.5}
.einrichtung-text em{font-style:normal;font-weight:600;color:var(--fels)}

.qr-flaeche{display:flex;justify-content:center;min-height:1px}
.qr-bild{
  width:min(208px,60vw);height:auto;display:block;
  padding:10px;background:#fff;border-radius:var(--radius-klein);
  border:1px solid #E1E9E9;
}

/* Der Schluessel zum Abtippen: Monospace, damit sich Gruppen zaehlen lassen. */
.geheimnis{
  margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.95rem;letter-spacing:.08em;
  /* Nur zwischen den Vierergruppen umbrechen — ein Bruch mitten in einer Gruppe
     macht das Abtippen fehleranfaellig. */
  word-break:keep-all;overflow-wrap:normal;
  color:var(--fels);background:#fff;
  padding:.5rem .7rem;border-radius:var(--radius-klein);border:1px solid #E1E9E9;
  max-width:100%;
}

.codes-liste{
  list-style:none;margin:0;padding:.7rem .9rem;width:100%;
  display:grid;grid-template-columns:repeat(2,1fr);gap:.35rem .9rem;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem;
  color:var(--fels);background:#fff;
  border:1px solid #E1E9E9;border-radius:var(--radius-klein);
}
@media (max-width:380px){.codes-liste{grid-template-columns:1fr}}

.knopf-haupt:disabled{opacity:.55;cursor:default}

@media (prefers-reduced-motion:reduce){
  .logo-linie,.logo-gipfel{animation:none;transform:none}
}
