body {

    margin: 0;

    background: #f5f5f5;

}

.camera-container {

    width: 900px;

    max-width: 95%;

    margin: 30px auto;

}

#camera-preview {

    width: 100%;

    background: black;

    border-radius: 8px;

}

#gallery {

    display: flex;

    gap: 15px;

    flex-wrap: wrap;

    margin: 20px 0;

}

.photo-card {

    width: 180px;

}

.photo-card img {

    width: 100%;

    border-radius: 6px;

}

.photo-card button {

    width: 100%;

    margin-top: 8px;

}

#loadingOverlay {

    position: fixed;

    inset: 0;

    background: rgba(255, 255, 255, .95);

    display: flex;

    justify-content: center;

    align-items: center;

    z-index: 99999;

}

.loading-content {

    text-align: center;

}

.spinner {

    width: 64px;

    height: 64px;

    border: 6px solid #ddd;

    border-top-color: #0d6efd;

    border-radius: 50%;

    animation: spin .8s linear infinite;

    margin: auto;

}

.loading-title {

    margin-top: 20px;

    font-size: 20px;

    font-weight: bold;

}

.loading-subtitle {

    margin-top: 8px;

    color: #666;

}

@keyframes spin {

    to {

        transform: rotate(360deg);

    }

}

.photo-preview {

    cursor: pointer;

    transition: .2s;

}

.photo-preview:hover {

    opacity: .8;

}

#photoViewer {

    padding: 0;

    border: none;

    border-radius: 10px;

    background: #000;

    max-width: 95vw;

    max-height: 95vh;

}

#photoViewer::backdrop {

    background: rgba(0, 0, 0, .75);

}

#viewerImage {

    display: block;

    max-width: 95vw;

    max-height: 90vh;

    object-fit: contain;

}

#btnCloseViewer {

    position: absolute;

    right: 10px;

    top: 10px;

    width: 40px;

    height: 40px;

    border: none;

    border-radius: 50%;

    background: rgba(255, 255, 255, .2);

    color: white;

    cursor: pointer;

    font-size: 20px;

}