/* ==========================================================================
   EINLADUNGSCODE  -  Testzugang
   Kleiner Knopf in der Ecke des Anmeldebildschirms, oeffnet ein eigenes
   Fenster. Das Anmeldefenster selbst bleibt unveraendert.
   ========================================================================== */
.invite-ecke {
  position: absolute; right: 18px; bottom: 18px; z-index: 30;
  display: inline-flex; align-items: center; gap: 7px;
  padding: 9px 14px; border-radius: 10px; cursor: pointer;
  background: rgba(6,10,8,.82);
  border: 1px solid rgba(61,220,132,.38);
  color: #7fce9d; font-family: 'Inter', system-ui, sans-serif;
  font-size: 12.5px; font-weight: 600;
  backdrop-filter: blur(6px);
  transition: border-color .2s, color .2s, background .2s, transform .15s;
}
.invite-ecke:hover {
  border-color: #3ddc84; color: #3ddc84;
  background: rgba(61,220,132,.10); transform: translateY(-1px);
}
.invite-ecke .ico { font-size: 14px; line-height: 1; }
@media (max-width: 620px) {
  .invite-ecke { right: 12px; bottom: 12px; padding: 8px 12px; font-size: 11.5px; }
}

/* Fenster fuer die Codeeingabe */
.invite-modal {
  position: fixed; inset: 0; z-index: 220;
  display: none; align-items: center; justify-content: center;
  padding: 20px; background: rgba(3,3,8,.78); backdrop-filter: blur(4px);
}
.invite-modal.offen { display: flex; }
.invite-karte {
  position: relative; width: 100%; max-width: 380px;
  padding: 24px; border-radius: 16px;
  background: linear-gradient(160deg, rgba(14,20,16,.98), rgba(8,10,14,.98));
  border: 1px solid rgba(61,220,132,.42);
  box-shadow: 0 0 0 1px rgba(0,0,0,.6), 0 18px 50px rgba(0,0,0,.7),
              0 0 40px rgba(61,220,132,.18);
}
.invite-zu {
  position: absolute; top: 10px; right: 12px;
  width: 30px; height: 30px; border-radius: 8px; cursor: pointer;
  background: transparent; border: none; color: #6a6a86;
  font-size: 22px; line-height: 1;
}
.invite-zu:hover { color: #eef0f6; background: rgba(255,255,255,.06); }
.invite-karte .invite-t {
  font-family: 'Press Start 2P', monospace; font-size: 12px; color: #3ddc84;
  margin-bottom: 10px;
}
.invite-karte .invite-s {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12.5px; line-height: 1.6; color: #a2a2ba; margin-bottom: 14px;
}
/* Der aeussere Rahmen kommt schon von .fq-inwrap - das Feld darin bekommt
   deshalb keinen eigenen, sonst stehen zwei Rahmen ineinander. */
.invite-karte .invite-in { margin-bottom: 10px; }
.invite-karte .invite-in input {
  border: none !important; background: transparent !important;
  box-shadow: none !important; outline: none !important;
}
.invite-karte .invite-in input {
  font-family: 'FQ Ziffern','JetBrains Mono',ui-monospace,monospace;
  font-size: 18px; letter-spacing: .16em; text-transform: uppercase;
  text-align: center;
}
.btn.btn-green {
  background: linear-gradient(135deg, #1f9e63, #3ddc84);
  border: none; color: #04140a; font-weight: 700;
}
.btn.btn-green:hover:not(:disabled) { filter: brightness(1.1); }
.btn.btn-green:disabled { opacity: .5; cursor: default; }

/* ---------- Hinweisband fuer laufenden Testzugang ---------- */
.gast-band {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 190;
  display: flex; align-items: center; justify-content: center; gap: 14px;
  flex-wrap: wrap; padding: 10px 16px;
  background: linear-gradient(180deg, rgba(61,220,132,.14), rgba(6,10,8,.97));
  border-top: 1px solid rgba(61,220,132,.45);
  font-family: 'Inter', system-ui, sans-serif; font-size: 12.5px; color: #dff5e8;
  backdrop-filter: blur(6px);
}
.gast-band b { color: #3ddc84; }
.gast-band .kauf {
  padding: 6px 14px; border-radius: 8px; text-decoration: none;
  background: #3ddc84; color: #04140a; font-weight: 700; font-size: 12px;
}
@media (max-width: 620px) {
  .gast-band { font-size: 11.5px; gap: 8px; padding: 8px 12px; }
}

/* ---------- Owner-Verwaltung ---------- */
.inv-admin { max-width: 720px; margin: 0 auto; padding: 20px; }
.inv-admin h2 {
  margin: 0 0 14px; font-family: 'Press Start 2P', monospace;
  font-size: 14px; color: #3ddc84;
}
.inv-form {
  display: grid; grid-template-columns: 1fr 1fr auto; gap: 10px;
  align-items: end; margin-bottom: 18px; padding: 14px;
  border-radius: 12px; background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.10);
}
.inv-form label { display: block; font-size: 11.5px; color: #8a8aa0; margin-bottom: 5px; }
.inv-form input {
  width: 100%; padding: 9px 11px; border-radius: 8px;
  background: rgba(0,0,0,.35); border: 1px solid rgba(255,255,255,.14);
  color: #eef0f6; font-family: 'FQ Ziffern',ui-monospace,monospace; font-size: 14px;
}
.inv-liste { display: flex; flex-direction: column; gap: 8px; }
.inv-zeile {
  display: grid; grid-template-columns: auto 1fr auto auto; gap: 12px;
  align-items: center; padding: 11px 14px; border-radius: 10px;
  background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.09);
}
.inv-zeile.tot { opacity: .45; }
.inv-zeile .code {
  font-family: 'FQ Ziffern',ui-monospace,monospace; font-size: 17px;
  font-weight: 700; color: #3ddc84; letter-spacing: .08em;
}
.inv-zeile .info { font-size: 12px; color: #a2a2ba; }
.inv-zeile .zaehler { font-family: 'FQ Ziffern',ui-monospace,monospace; font-size: 13px; color: #eef0f6; }
.inv-zeile .sperr {
  padding: 6px 12px; border-radius: 7px; cursor: pointer; font-size: 11.5px;
  background: transparent; border: 1px solid rgba(255,59,92,.4); color: #ff7d90;
}
.inv-zeile .sperr:hover { border-color: #ff3b5c; }
@media (max-width: 620px) {
  .inv-form { grid-template-columns: 1fr 1fr; }
  .inv-form .btn { grid-column: 1 / -1; }
  .inv-zeile { grid-template-columns: 1fr auto; gap: 8px; }
  .inv-zeile .info { grid-column: 1 / -1; }
}
.iv-entry .ico { background: linear-gradient(135deg, #3ddc84, #3da9ff); }

/* Bestaetigung im Testzugang-Fenster */
.invite-karte .invite-check {
  display: flex; align-items: flex-start; gap: 9px; margin: 0 0 12px;
  cursor: pointer; font-family: 'Inter', system-ui, sans-serif;
  font-size: 11.5px; line-height: 1.5; color: #a2a2ba;
}
.invite-karte .invite-check input {
  flex: none; margin-top: 2px; width: 15px; height: 15px;
  accent-color: #3ddc84; cursor: pointer;
}
.invite-karte .invite-check:hover { color: #dff5e8; }

/* Zugangsdaten des Gastkontos in der Verwaltung */
.inv-gast { grid-template-columns: 1fr 1fr; }
.inv-gast .inv-hinweis {
  grid-column: 1 / -1; font-size: 11.5px; line-height: 1.55; color: #8a8aa0;
  padding-top: 4px;
}

/* Kopfzeile ueber der Codeliste */
.inv-listkopf {
  display: flex; align-items: center; gap: 12px; margin: 4px 0 10px;
}
.inv-listkopf .n {
  flex: 1; font-family: 'FQ Ziffern',ui-monospace,monospace;
  font-size: 11.5px; color: #8a8aa0;
}
.btn.inv-putz {
  padding: 7px 14px; font-size: 12px;
  background: transparent; border: 1px solid rgba(255,179,71,.42); color: #ffb347;
}
.btn.inv-putz:hover:not(:disabled) { border-color: #ffb347; background: rgba(255,179,71,.08); }
.btn.inv-putz:disabled { opacity: .5; cursor: default; }
