#studentQrScan,
.student-qr-scanner button {
  min-height: 48px;
  padding: 10px 14px;
  border: 3px solid #212121;
  border-radius: 0;
  color: #212121;
  background: #ffe298;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
#studentQrScan { width: 100%; background: #bde7fb; }
#studentQrScan:disabled { opacity: 0.72; cursor: wait; }
#studentQrScan:hover,
.student-qr-scanner button:hover { text-decoration: underline; }
#studentQrScan:focus-visible,
.student-qr-scanner button:focus-visible { outline: 3px solid #212121; outline-offset: 3px; }
.student-qr-scanner {
  box-sizing: border-box;
  width: min(540px, calc(100% - 24px));
  max-height: calc(100dvh - 24px);
  overflow: auto;
  padding: 20px;
  border: 4px solid #212121;
  background: #fffcf0;
  color: #212121;
}
.student-qr-scanner::backdrop { background: rgb(33 33 33 / 65%); }
.student-qr-scanner h2 { margin: 0 0 12px; }
.student-qr-scanner p { margin: 12px 0; line-height: 1.4; }
.student-qr-scanner video {
  display: block;
  width: 100%;
  max-height: 45dvh;
  object-fit: contain;
  background: #212121;
}
.student-qr-scanner [hidden],
#studentQrScanStatus[hidden] { display: none !important; }
.student-qr-scanner__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.student-qr-scanner__actions button { flex: 1 1 180px; }
