﻿
/*Logo*/
.app-logo {
    height: 25px;
}

@media (min-width: 768px) {
    .app-logo {
        height: 35px;
    }
}

@media (min-width: 1200px) {
    .app-logo {
        height: 40px;
    }
}
/*Logo*/

/*NavBarMobile*/

.bottom-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background-color: white;
    padding: 4px 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

    .bottom-nav.hidden {
        transform: translateY(100%);
        opacity: 0;
    }

/*NavBarMobile*/

.global-loader-overlay {
    position: fixed;
    inset: 0;
    background-color: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}


/*Loader*/
.loader-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.lds-ellipsis,
.lds-ellipsis div {
    box-sizing: border-box;
}

.lds-ellipsis {
    display: inline-block;
    position: relative;
    width: 80px;
    height: 80px;
}

    .lds-ellipsis div {
        position: absolute;
        top: 33.33333px;
        width: 13.33333px;
        height: 13.33333px;
        border-radius: 50%;
        background: currentColor;
        animation-timing-function: cubic-bezier(0, 1, 1, 0);
    }

        .lds-ellipsis div:nth-child(1) {
            left: 8px;
            animation: lds-ellipsis1 0.6s infinite;
        }

        .lds-ellipsis div:nth-child(2) {
            left: 8px;
            animation: lds-ellipsis2 0.6s infinite;
        }

        .lds-ellipsis div:nth-child(3) {
            left: 32px;
            animation: lds-ellipsis2 0.6s infinite;
        }

        .lds-ellipsis div:nth-child(4) {
            left: 56px;
            animation: lds-ellipsis3 0.6s infinite;
        }

@keyframes lds-ellipsis1 {
    0% {
        transform: scale(0);
    }

    100% {
        transform: scale(1);
    }
}

@keyframes lds-ellipsis3 {
    0% {
        transform: scale(1);
    }

    100% {
        transform: scale(0);
    }
}

@keyframes lds-ellipsis2 {
    0% {
        transform: translate(0, 0);
    }

    100% {
        transform: translate(24px, 0);
    }
}

/* Rustige rotatie */
@keyframes spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}
/*Loader*/

/*BarcodeScannerButtonMobile*/

/* Fixed bottom, full-width button */
.fixed-bottom-button {
    position: fixed;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    width: calc(100% - 32px); /* full-width minus padding */
    max-width: 480px; /* optioneel voor tablet */
    z-index: 1000;
}

/* Alleen tonen op mobiel/tablet */
.mobile-only {
    display: block;
}

.barcode-scanner-button-mobile {
    height: 60px;
    font-size: large;
    border-radius: 0 !important;
    box-shadow: none !important;
    display: flex;
}

/* Verberg op desktop */
@media (min-width: 1024px) {
    .mobile-only {
        display: none;
    }
}

/*BarcodeScannerButtonMobile*/

/*BarcodeScanner*/
#scanner {
    width: 100%;
    display: block;
}
/* Laser / grid overlay */
#scanner-wrapper {
    position: relative;
    height: 260px;
    border-radius: 10px;
    overflow: hidden;
}

#scanner-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* scan focus zone */
#scanner-zone {
    position: absolute;
    top: 25%;
    left: 10%;
    width: 80%;
    height: 50%;
    border: 2px solid rgba(0,255,0,0.6);
    border-radius: 8px;
    pointer-events: none;
}

/* torch button */
.torch-btn {
    position: absolute;
    bottom: 10px;
    right: 10px;
    z-index: 10;
    background: white;
    border: none;
    border-radius: 50%;
    padding: 10px;
}

#overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    background-image: repeating-linear-gradient( to bottom, rgba(0, 255, 0, 0.4) 0px, rgba(0, 255, 0, 0.4) 2px, transparent 2px, transparent 6px );
    animation: laser-move 1s linear infinite;
}

@keyframes laser-move {
    0% {
        background-position-y: 0;
    }

    100% {
        background-position-y: 8px;
    }
}

#result {
    text-align: center;
    font-size: 1.2rem;
    margin-top: 10px;
}
/*BarcodeScanner*/

.sharp {
    border-radius: 0 !important;
}