.auth-logo { max-height: 64px; max-width: 200px; }
.perm-grid .form-check { min-width: 10rem; }
.recovery-codes { font-family: var(--bs-font-monospace); letter-spacing: .08em; }
.audit-json { max-height: 12rem; overflow: auto; white-space: pre-wrap; word-break: break-word; }

/* Camera scanner (static/js/scanner.js) */
.scanner { position: fixed; inset: 0; z-index: 1090; display: flex; flex-direction: column; background: #000; color: #fff; }
.scanner-view { position: relative; flex: 1; min-height: 0; overflow: hidden; }
.scanner-view video { width: 100%; height: 100%; object-fit: cover; }
.scanner-frame { position: absolute; top: 50%; left: 50%; width: min(70vw, 70vh, 22rem); aspect-ratio: 1; transform: translate(-50%, -50%);
    border: 3px solid rgba(255, 255, 255, .9); border-radius: .75rem; box-shadow: 0 0 0 100vmax rgba(0, 0, 0, .45); }
.scanner-bar { padding: .75rem 1rem calc(.75rem + env(safe-area-inset-bottom)); background: #111; }
.scanner-status { min-height: 1.5rem; font-weight: 500; }
.scanner-success { color: #75b798; }
.scanner-warning { color: #ffda6a; }
.scanner-danger { color: #ea868f; }
.scanner-info { color: #6edff6; }
.scanner-muted, .scanner-secondary { color: #adb5bd; }
.scanner-list { color: #ced4da; margin-top: .25rem; word-break: break-all; }

/* Verifier's location screen: the entry box stays in reach while scrolling on a phone. */
.verify-entry { position: sticky; top: 5.4rem; z-index: 10; }
.verify-actions .form-control { flex: 1 1 12rem; max-width: 20rem; }
@media (max-width: 575.98px) {
    .verify-actions .btn { flex: 1 1 auto; padding-top: .45rem; padding-bottom: .45rem; }
    .verify-actions .form-control { max-width: none; }
}

.verify-change { display: none; }
.verify-js .verify-list li:not([data-result="pending"]) .verify-change { display: inline-block; }
.verify-js .verify-list li:not([data-result="pending"]):not(.verify-open) .verify-actions { display: none !important; }

