.app-shell { display: flex; min-height: calc(100vh - 65px); }
.main-content { min-width: 0; width: 100%; }
#navigation { width: 240px; flex: 0 0 240px; --bs-offcanvas-width: 280px; }
#navigation .offcanvas-body { width: 100%; }
.form-card { max-width: 760px; }
.min-vh-75 { min-height: 75vh; }
.table > :not(caption) > * > * { padding: .9rem 1rem; }
.qr-image { max-width: 360px; }
.qr-card-joyful { border: 1px solid #dcebe2; border-radius: 28px; overflow: hidden; box-shadow: 0 8px 28px #183c3609; }
.qr-card-eyebrow { color: #52756b; font-size: .7rem; font-weight: 700; letter-spacing: .12em; }
.qr-member-name { color: #183c36; }
.qr-card-footer { background: #f7fbf8; border-color: #e1ece5; padding: 1rem; }
.qr-card-footer .btn { border-radius: 12px; }
.qr-card-joyful .qr-image { border-radius: 24px; overflow: hidden; }
.qr-image svg { display: block; width: 100%; height: auto; }
.scanner-preview { min-height: 300px; aspect-ratio: 1; max-height: 520px; }
#qr-video { width: 100%; height: 100%; object-fit: cover; display: block; }
#camera-placeholder { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
[hidden] { display: none !important; }
@media (min-width: 992px) { #navigation { position: sticky; top: 65px; height: calc(100vh - 65px); } }
@media (max-width: 575.98px) { .scanner-preview { min-height: 240px; } .nav-link { padding-top: .75rem; padding-bottom: .75rem; } }
@media print {
    body { background: white !important; }
    .app-shell, .main-content, .row, .col-md-6, .col-xl-5 { display: block !important; width: 100% !important; padding: 0 !important; margin: 0 !important; }
    .qr-card { print-color-adjust: exact; -webkit-print-color-adjust: exact; max-width: 420px; margin: 20px auto; break-inside: avoid; }
    .d-print-none { display: none !important; }
}
