:root {
    --cava-sidebar-height: calc(100vh - 56px)
}

body {
    min-height: 100vh
}

.login-bg {
    background-image:
        linear-gradient(
            rgba(0, 0, 0, 0.35),
            rgba(0, 0, 0, 0.55)
        ),
        url('/public/assets/img/fondo.jpg');

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    min-height: 100vh;
}
.login-card {
    width: min(100%, 430px);
    border: 0;
    border-radius: 1rem
}

.sidebar {
    min-height: var(--cava-sidebar-height)
}

.sidebar .nav-link {
    color: #343a40;
    border-radius: .5rem;
    margin: 0 .75rem
}

.sidebar .nav-link:hover {
    background: #f1f3f5
}

.sidebar .nav-link.disabled {
    opacity: .4
}

.card {
    border-color: #e7e7e7
}

.table th {
    white-space: nowrap
}

@media(max-width:767.98px) {
    .sidebar {
        display: none
    }
}

/* Fase 8: adaptación a móviles y tablets */
html {
    overflow-x: hidden
}

body {
    overflow-x: hidden
}

main {
    min-width: 0
}

.card {
    max-width: 100%
}

.card-body {
    min-width: 0
}

img,
video,
canvas {
    max-width: 100%;
    height: auto
}

.table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch
}

#reader {
    width: 100%;
    max-width: 600px;
    margin-inline: auto
}

#reader video {
    width: 100% !important;
    max-height: 65vh;
    object-fit: contain
}

input,
select,
textarea {
    max-width: 100%
}

@media(max-width:767.98px) {
    main {
        padding: 1rem !important
    }

    .card-body {
        padding: 1rem
    }

    .btn {
        min-height: 42px
    }

    .sidebar {
        display: none !important
    }

    .offcanvas .nav-link {
        padding: .75rem 1rem;
        color: #343a40;
        border-radius: .5rem
    }

    .offcanvas .nav-link:hover {
        background: #f1f3f5
    }

    .table {
        font-size: .875rem
    }
}
/* Acceso administrativo: comparte la fotografía del login operativo. */
.admin-login-card { width: min(100%, 440px); }
.admin-login-logo { display: block; width: 112px; height: 112px; object-fit: contain; margin-inline: auto; }
.admin-login .login-card { background: rgba(255, 255, 255, .96); }
@media (max-width: 575.98px) { .admin-login-logo { width: 88px; height: 88px; } }
