/*
 * @teseo
 * Adaptación propia del acceso. Creada para la nueva base; no proviene de
 * assets ni hojas de estilo del Teseo heredado.
 */
:root {
    --teseo-login-image: url('../../assets/img/curved-images/curved6.jpg');
}

html,
body.teseo-login { min-height: 100%; }

body.teseo-login {
    min-height: 100vh;
    overflow: hidden;
    background: #f4f4f5;
    color: #27272a;
}

.teseo-login__main { min-height: 100vh; }

.teseo-login__stage {
    isolation: isolate;
    overflow: hidden;
    background:
        radial-gradient(circle at 16% 20%, rgba(39, 39, 42, .18), transparent 31%),
        radial-gradient(circle at 53% 87%, rgba(113, 113, 122, .14), transparent 30%),
        linear-gradient(135deg, #fafafa 0%, #f4f4f5 51%, #e3e3e7 100%);
}

.teseo-login__stage::before,
.teseo-login__stage::after {
    position: absolute;
    z-index: -1;
    width: 20rem;
    height: 20rem;
    border-radius: 50%;
    content: '';
    filter: blur(18px);
    opacity: .55;
}

.teseo-login__stage::before {
    bottom: -9rem;
    left: -8rem;
    background: #a1a1aa;
}

.teseo-login__stage::after {
    top: -10rem;
    right: 31%;
    background: #d4d4d8;
}

.teseo-login__column {
    min-height: 100vh;
    justify-content: center;
    padding-top: 2rem;
    padding-bottom: 2rem;
}

.teseo-login__card {
    width: min(100%, 25.5rem);
    margin: 0 auto;
    padding: 2.25rem 2.1rem 2rem;
    border: 1px solid rgba(255, 255, 255, .76);
    border-radius: 1.5rem;
    background: rgba(255, 255, 255, .64);
    box-shadow: 0 1.5rem 3.75rem rgba(0, 0, 0, .12);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.teseo-login__card .card-header,
.teseo-login__card .card-body { background: transparent; }

.teseo-login__brand {
    display: flex;
    align-items: center;
    gap: .65rem;
    color: #71717a;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.teseo-login__brand img {
    width: 2rem;
    height: 2rem;
    object-fit: contain;
}

.teseo-login__card .form-label {
    color: #3f3f46;
    font-size: .78rem;
    font-weight: 700;
}

.teseo-login__card .form-control {
    min-height: 3.1rem;
    border: 1px solid #d4d4d8;
    border-radius: .78rem;
    background: rgba(255, 255, 255, .78);
    box-shadow: none;
}

.teseo-login__card .form-control:focus {
    border-color: var(--teseo-accent);
    box-shadow: 0 0 0 .2rem rgba(var(--teseo-accent-rgb), .14);
}

.teseo-login__password {
    min-width: 3.1rem;
    border: 1px solid #d4d4d8;
    border-left: 0;
    border-radius: 0 .78rem .78rem 0;
    background: rgba(255, 255, 255, .76);
    color: #71717a;
}

.teseo-login__card .form-check-input:checked {
    border-color: var(--teseo-accent);
    background-color: var(--teseo-accent);
}

.teseo-login__card .btn[type="submit"] {
    border: 0;
    border-radius: .8rem;
    background: linear-gradient(310deg, var(--teseo-accent), var(--teseo-accent-end));
    box-shadow: 0 .7rem 1.4rem rgba(var(--teseo-accent-rgb), .22);
    color: #fff;
    font-weight: 700;
    transition: transform .2s ease, box-shadow .2s ease;
}

.teseo-login__card .btn[type="submit"]:hover,
.teseo-login__card .btn[type="submit"]:focus {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 1rem 1.8rem rgba(var(--teseo-accent-rgb), .28);
}

.teseo-login__image {
    background-image:
        linear-gradient(145deg, rgba(24, 24, 27, .24), transparent 54%),
        var(--teseo-login-image);
    background-position: center;
    filter: saturate(.88) contrast(1.04) brightness(.92);
}

@media (max-width: 767.98px) {
    body.teseo-login { overflow-y: auto; }
    .teseo-login__stage { background: linear-gradient(145deg, #fafafa, #e3e3e7); }
    .teseo-login__column { padding-right: 1.4rem; padding-left: 1.4rem; }
    .teseo-login__card {
        padding: 1.75rem 1.4rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .teseo-login__card * { scroll-behavior: auto !important; }
}
