﻿:root {
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: #102a43;
    background: #f3f8fc;
}

* {
    box-sizing: border-box;
}

body {
    min-width: 320px;
    min-height: 100vh;
    min-height: 100svh;
    margin: 0;
    background: radial-gradient(circle at 15% 15%, rgba(19, 215, 208, 0.14), transparent 30%), radial-gradient(circle at 85% 80%, rgba(24, 212, 110, 0.10), transparent 30%), #f3f8fc;
}

.pagina-acceso {
    display: grid;
    min-height: 100vh;
    min-height: 100svh;
    padding: 24px 14px;
    place-items: center;
}

.tarjeta-acceso {
    width: min(100%, 440px);
    padding: 35px;
    background: #fff;
    border: 1px solid #d7e4e8;
    border-radius: 25px;
    box-shadow: 0 22px 65px rgba(17, 52, 59, 0.13);
}

.logo-acceso {
    display: block;
    width: fit-content;
    margin: 0 auto 27px;
}

    .logo-acceso img,
    .mensaje-acceso img {
        display: block;
        width: auto;
        height: 46px;
        margin-inline: auto;
    }

.titulo-acceso {
    margin-bottom: 24px;
    text-align: center;
}

    .titulo-acceso p {
        margin: 0 0 5px;
        color: #0ba7a2;
        font-size: 0.76rem;
        font-weight: 800;
        letter-spacing: 0.08em;
        text-transform: uppercase;
    }

    .titulo-acceso h1 {
        margin: 0;
        color: #102a43;
        font-size: 1.8rem;
        letter-spacing: -0.035em;
    }

    .titulo-acceso span {
        display: block;
        margin-top: 7px;
        color: #627d98;
        font-size: 0.9rem;
    }

.formulario-acceso,
.campo-acceso {
    display: grid;
}

.formulario-acceso {
    gap: 17px;
}

.campo-acceso {
    gap: 7px;
}

    .campo-acceso label {
        font-size: 0.83rem;
        font-weight: 700;
    }

    .campo-acceso input {
        min-height: 48px;
        padding: 11px 13px;
        color: #102a43;
        background: #f8fbfc;
        border: 1px solid #cfdfe4;
        border-radius: 11px;
        font: inherit;
    }

        .campo-acceso input:focus {
            border-color: #13bdb7;
            outline: 3px solid rgba(19, 215, 208, 0.17);
        }

    .campo-acceso span,
    .errores-acceso {
        color: #b42318;
        font-size: 0.78rem;
    }

        .errores-acceso:empty,
        .campo-acceso span:empty {
            display: none;
        }

        .errores-acceso ul {
            margin: 0;
            padding-left: 20px;
        }

.recordarme {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #526b79;
    font-size: 0.82rem;
}

    .recordarme input {
        width: 17px;
        height: 17px;
        accent-color: #13bdb7;
    }

.boton-acceso {
    display: grid;
    min-height: 49px;
    padding: 12px 17px;
    color: #062a33;
    background: #13d7d0;
    border: 0;
    border-radius: 13px;
    font: inherit;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    place-items: center;
}

    .boton-acceso:hover {
        filter: brightness(0.97);
    }

.ayuda-acceso {
    margin: 23px 0 0;
    color: #627d98;
    font-size: 0.76rem;
    text-align: center;
}

.mensaje-acceso {
    display: grid;
    gap: 18px;
    text-align: center;
}

    .mensaje-acceso h1,
    .mensaje-acceso p {
        margin: 0;
    }

    .mensaje-acceso p {
        color: #627d98;
        line-height: 1.5;
    }

.campo-etiqueta-con-enlace {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

    .campo-etiqueta-con-enlace a,
    .enlace-secundario {
        color: #078e89;
        font-size: 0.8rem;
        font-weight: 700;
        text-decoration: none;
    }

        .campo-etiqueta-con-enlace a:hover,
        .enlace-secundario:hover {
            text-decoration: underline;
        }

.enlace-secundario {
    display: block;
    text-align: center;
}

.mensaje-exito,
.mensaje-informativo {
    margin-bottom: 18px;
    padding: 12px 14px;
    border-radius: 11px;
    font-size: 0.84rem;
    line-height: 1.45;
}

.mensaje-exito {
    color: #176b45;
    background: #eafaf2;
    border: 1px solid #9de0be;
}

.mensaje-informativo {
    color: #30566e;
    background: #eef7fb;
    border: 1px solid #b8d8e8;
}

.ayuda-campo {
    color: #627d98;
    font-size: 0.75rem;
    line-height: 1.4;
}



@media (max-width: 480px) {
    .tarjeta-acceso {
        padding: 28px 20px;
        border-radius: 21px;
    }
}
