/* Certificate verification — runtime overlay for Safari/Edge prefixes and mobile camera UI. */

.cv-steps,
.cv-page::before {
    -webkit-backdrop-filter: blur(8px);
}

.cv-verify-tab,
.cv-btn,
.cv-submit {
    touch-action: manipulation;
    -webkit-appearance: none;
    appearance: none;
}

.cv-qr-actions .cv-btn {
    min-height: 2.75rem;
}

.cv-qr-upload.is-disabled {
    opacity: 0.55;
    cursor: not-allowed;
    pointer-events: none;
}

.cv-qr-reader {
    position: relative;
}

.cv-qr-reader video,
.cv-qr-video {
    opacity: 0;
}

.cv-qr-reader.is-playing video,
.cv-qr-reader.is-playing .cv-qr-video {
    opacity: 1;
}

.cv-qr-idle {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    color: #94a3b8;
    background: #0f172a;
}

.cv-qr-reader.is-playing .cv-qr-idle {
    display: none !important;
}

.cv-qr-video::-webkit-media-controls {
    display: none !important;
}

@media (max-width: 640px) {
    .cv-qr-reader,
    .cv-qr-video,
    .cv-qr-reader video {
        min-height: 220px;
        height: min(52vw, 280px);
    }

    .cv-qr-reader video,
    .cv-qr-video {
        height: min(52vw, 280px) !important;
        min-height: 220px !important;
    }

    .cv-qr-actions .cv-btn {
        flex: 1 1 10rem;
    }
}
