body.login-page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 1.5rem;
  background: #13150f url("/kiertoravinne-hero.webp") center / cover no-repeat;
  position: relative;
}
body.login-page::before {
  content: "";
  position: fixed;
  inset: 0;
  background: rgba(19, 21, 15, 0.42);
  pointer-events: none;
}
.login-card {
  width: min(24rem, 100%);
  background: rgba(28, 31, 22, 0.92);
  border: 1px solid var(--line);
  padding: 1.6rem 1.5rem 1.8rem;
  position: relative;
  z-index: 1;
}
.login-card .eyebrow { letter-spacing: 0.08em; }
.login-card h1 { font-size: 1.7rem; }
.login-card form {
  display: grid;
  gap: 0.85rem;
  margin-top: 1rem;
}
.login-card label {
  display: grid;
  gap: 0.3rem;
  color: var(--muted);
  font-size: 0.88rem;
}
.login-card input {
  font: inherit;
  color: var(--ink);
  background: var(--bg);
  border: 1px solid var(--line);
  padding: 0.45rem 0.6rem;
}
.login-card button {
  font: inherit;
  color: var(--bg);
  background: var(--ink);
  border: 0;
  padding: 0.55rem 0.8rem;
  cursor: pointer;
  margin-top: 0.3rem;
}
.login-card button:hover { filter: brightness(1.05); }
.form-error { color: var(--warn); margin: 0; font-size: 0.88rem; }
#qr {
  width: 12rem;
  height: 12rem;
  background: #fff;
  padding: 0.4rem;
  justify-self: center;
}
.secret {
  font-family: Consolas, "Courier New", monospace;
  letter-spacing: 0.08em;
  color: var(--ink);
  margin: 0;
  text-align: center;
  word-break: break-all;
}
