/* v0.17 QR invites (invite-qr-v017.js): the lobby's room QR and the Scan
   sheet. Scoped to .iq-* and the two ids; existing tokens only. The code
   itself stays dark on a milky-white card in every theme, since scanners need
   the contrast. */

.iq-code {
  align-self: center; width: min(58vw, 208px); aspect-ratio: 1; padding: 6px;
  border-radius: 14px; background: #fbf8f1; border: 1px solid var(--line);
  box-shadow: 0 6px 18px rgba(4, 7, 22, .18);
}
.iq-code[hidden] { display: none; }
.iq-code svg { display: block; width: 100%; height: 100%; }
.iq-code .iq-light { fill: #fbf8f1; }
.iq-code .iq-dark { fill: #141a3a; }

.iq-open { width: 100%; margin-top: 10px; }

.iq-sheet .iq-actions { display: grid; gap: 8px; margin-top: 12px; }
.iq-sheet .iq-video {
  display: block; width: 100%; max-height: 46vh; margin-top: 10px; object-fit: cover;
  border-radius: 14px; border: 1px solid var(--line); background: var(--ink-1);
}
.iq-sheet .iq-video[hidden] { display: none; }
.iq-sheet .iq-msg { margin-top: 10px; min-height: 1.5em; }
.iq-sheet .iq-result {
  display: grid; gap: 8px; margin-top: 10px; padding: 12px; border-radius: 14px;
  border: 1px solid var(--line-strong); background: rgba(255, 255, 255, .04);
}
.iq-sheet .iq-result[hidden] { display: none; }
.iq-sheet .iq-result p { margin: 0; }
.iq-sheet .iq-found { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.iq-sheet .iq-room { font-family: var(--display); font-size: 26px; letter-spacing: .16em; color: var(--gold-hot); }
.iq-sheet .iq-mode { font-weight: 600; font-size: 13.5px; color: var(--text); }
.iq-sheet .iq-manual { width: 100%; margin-top: 12px; }
