@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Montserrat:wght@300;400;500;600&display=swap');


:root {
    --fondo: #f4f0e8;
    --fondo-secundario: #ebe4d8;

    --blanco: #fffdf9;

    --dorado: #b89a68;
    --dorado-claro: #d4bd91;
    --dorado-oscuro: #8f7348;

    --texto: #36332e;
    --texto-suave: #827c72;

    --borde: rgba(184, 154, 104, 0.28);

    --error: #a94c4c;
    --error-fondo: #faeeee;

    --sombra:
        0 30px 80px rgba(74, 61, 42, 0.14);
}


/* ========================================
   RESET
======================================== */

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    min-height: 100%;
}

body {
    min-height: 100vh;

    font-family: "Montserrat", sans-serif;

    background:
        radial-gradient(
            circle at 20% 10%,
            rgba(255, 255, 255, 0.95),
            transparent 35%
        ),
        radial-gradient(
            circle at 90% 85%,
            rgba(207, 187, 150, 0.25),
            transparent 40%
        ),
        linear-gradient(
            135deg,
            var(--fondo),
            var(--fondo-secundario)
        );

    color: var(--texto);
}


/* ========================================
   CONTENEDOR PRINCIPAL
======================================== */

.login-admin {
    position: relative;

    min-height: 100vh;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 40px 20px;

    overflow: hidden;
}


/* círculos decorativos */

.login-admin::before,
.login-admin::after {
    content: "";

    position: absolute;

    border-radius: 50%;

    pointer-events: none;
}

.login-admin::before {
    width: 420px;
    height: 420px;

    top: -220px;
    left: -180px;

    border: 1px solid rgba(184, 154, 104, 0.18);
}

.login-admin::after {
    width: 520px;
    height: 520px;

    bottom: -300px;
    right: -240px;

    border: 1px solid rgba(184, 154, 104, 0.2);
}


/* ========================================
   PANEL
======================================== */

.login-panel {
    position: relative;
    z-index: 2;

    width: 100%;
    max-width: 470px;

    padding: 54px 48px 42px;

    background:
        linear-gradient(
            145deg,
            rgba(255, 253, 249, 0.96),
            rgba(255, 255, 255, 0.88)
        );

    border: 1px solid rgba(255, 255, 255, 0.75);

    border-radius: 28px;

    box-shadow: var(--sombra);

    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);

    animation: aparecer 0.8s ease forwards;
}


@keyframes aparecer {

    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* ========================================
   DECORACIÓN SUPERIOR
======================================== */

.login-decoracion {
    display: flex;
    justify-content: center;
    align-items: center;

    gap: 10px;

    margin-bottom: 24px;
}

.login-decoracion span {
    display: block;

    width: 44px;
    height: 1px;

    background: linear-gradient(
        to right,
        transparent,
        var(--dorado)
    );
}

.login-decoracion span:last-child {
    background: linear-gradient(
        to left,
        transparent,
        var(--dorado)
    );
}

.login-decoracion i {
    display: block;

    width: 7px;
    height: 7px;

    background: var(--dorado);

    transform: rotate(45deg);
}


/* ========================================
   MARCA F & D
======================================== */

.login-marca {
    display: flex;
    justify-content: center;
    align-items: center;

    gap: 7px;

    margin-bottom: 16px;

    font-family: "Cormorant Garamond", serif;
}

.login-marca span {
    font-size: 49px;
    line-height: 1;

    font-weight: 500;

    color: var(--texto);

    letter-spacing: -3px;
}

.login-marca small {
    position: relative;
    top: 3px;

    font-size: 25px;

    font-style: italic;

    color: var(--dorado);

    font-weight: 400;
}


/* ========================================
   TEXTOS
======================================== */

.login-etiqueta {
    margin-bottom: 13px;

    text-align: center;

    font-size: 10px;

    font-weight: 600;

    letter-spacing: 4px;

    color: var(--dorado-oscuro);
}


.login-titulo {
    margin-bottom: 13px;

    text-align: center;

    font-family: "Cormorant Garamond", serif;

    font-size: clamp(34px, 5vw, 43px);

    font-weight: 500;

    line-height: 1.05;

    color: var(--texto);
}


.login-descripcion {
    max-width: 350px;

    margin: 0 auto 35px;

    text-align: center;

    font-size: 13px;

    line-height: 1.8;

    font-weight: 300;

    color: var(--texto-suave);
}


/* ========================================
   ERROR
======================================== */

.login-error {
    display: flex;
    align-items: center;

    gap: 10px;

    margin-bottom: 25px;

    padding: 12px 14px;

    background: var(--error-fondo);

    border: 1px solid rgba(169, 76, 76, 0.15);

    border-radius: 11px;

    color: var(--error);

    font-size: 12px;

    animation: errorEntrada 0.3s ease;
}


.login-error-icono {
    display: flex;
    justify-content: center;
    align-items: center;

    flex-shrink: 0;

    width: 20px;
    height: 20px;

    border: 1px solid var(--error);
    border-radius: 50%;

    font-weight: 600;
}


@keyframes errorEntrada {

    from {
        opacity: 0;
        transform: translateY(-5px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* ========================================
   FORMULARIO
======================================== */

.login-form {
    display: flex;
    flex-direction: column;

    gap: 21px;
}


.login-campo {
    display: flex;
    flex-direction: column;

    gap: 8px;
}


.login-campo label {
    padding-left: 2px;

    font-size: 11px;

    font-weight: 500;

    letter-spacing: 0.7px;

    color: #5f5a52;
}


/* ========================================
   INPUTS
======================================== */

.input-contenedor {
    position: relative;

    display: flex;
    align-items: center;
}


.input-contenedor svg {
    position: absolute;

    left: 16px;

    width: 18px;
    height: 18px;

    fill: #a79d8e;

    pointer-events: none;

    transition:
        fill 0.25s ease,
        transform 0.25s ease;
}


.input-contenedor input {
    width: 100%;
    height: 52px;

    padding: 0 17px 0 46px;

    outline: none;

    border: 1px solid var(--borde);

    border-radius: 13px;

    background: rgba(255, 255, 255, 0.75);

    font-family: "Montserrat", sans-serif;

    font-size: 13px;

    font-weight: 400;

    color: var(--texto);

    transition:
        border-color 0.25s ease,
        box-shadow 0.25s ease,
        background 0.25s ease;
}


.input-contenedor input::placeholder {
    color: #b4afa6;
}


.input-contenedor input:hover {
    border-color: rgba(184, 154, 104, 0.5);
}


.input-contenedor input:focus {
    background: #ffffff;

    border-color: var(--dorado);

    box-shadow:
        0 0 0 4px rgba(184, 154, 104, 0.1);
}


.input-contenedor:focus-within svg {
    fill: var(--dorado);

    transform: scale(1.06);
}


/* ========================================
   BOTÓN
======================================== */

.login-boton {
    position: relative;

    width: 100%;
    height: 54px;

    margin-top: 5px;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 12px;

    border: none;

    border-radius: 13px;

    background:
        linear-gradient(
            135deg,
            #b99a66,
            #987844
        );

    color: #fff;

    cursor: pointer;

    font-family: "Montserrat", sans-serif;

    font-size: 12px;

    font-weight: 500;

    letter-spacing: 1.2px;

    box-shadow:
        0 12px 25px rgba(151, 119, 68, 0.23);

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;
}


.login-boton span {
    position: relative;
    z-index: 2;
}


.login-boton svg {
    position: relative;
    z-index: 2;

    width: 18px;
    height: 18px;

    fill: currentColor;

    transition: transform 0.25s ease;
}


.login-boton:hover {
    transform: translateY(-2px);

    box-shadow:
        0 17px 30px rgba(151, 119, 68, 0.3);
}


.login-boton:hover svg {
    transform: translateX(4px);
}


.login-boton:active {
    transform: translateY(0);
}


/* ========================================
   SEPARADOR
======================================== */

.login-separador {
    display: flex;
    justify-content: center;

    margin: 34px 0 22px;
}


.login-separador span {
    position: relative;

    width: 85px;
    height: 1px;

    background: linear-gradient(
        to right,
        transparent,
        var(--dorado-claro),
        transparent
    );
}


.login-separador span::after {
    content: "";

    position: absolute;

    top: 50%;
    left: 50%;

    width: 5px;
    height: 5px;

    background: var(--blanco);

    border: 1px solid var(--dorado-claro);

    transform:
        translate(-50%, -50%)
        rotate(45deg);
}


/* ========================================
   PIE
======================================== */

.login-pie {
    display: flex;
    flex-direction: column;
    align-items: center;

    gap: 4px;

    text-align: center;

    font-family: "Cormorant Garamond", serif;

    font-size: 18px;

    font-weight: 500;

    color: #665f55;
}


.login-pie small {
    font-family: "Montserrat", sans-serif;

    font-size: 9px;

    letter-spacing: 3px;

    color: var(--dorado);

    font-weight: 400;
}


/* ========================================
   RESPONSIVE
======================================== */

@media (max-width: 540px) {

    .login-admin {
        padding: 22px 15px;
    }


    .login-panel {
        padding:
            42px
            24px
            32px;

        border-radius: 22px;
    }


    .login-marca span {
        font-size: 43px;
    }


    .login-titulo {
        font-size: 35px;
    }


    .login-descripcion {
        font-size: 12px;

        margin-bottom: 28px;
    }


    .input-contenedor input {
        height: 51px;
    }


    .login-boton {
        height: 52px;
    }

}


/* ========================================
   PANTALLAS MUY PEQUEÑAS
======================================== */

@media (max-width: 360px) {

    .login-panel {
        padding:
            35px
            19px
            28px;
    }


    .login-titulo {
        font-size: 31px;
    }

}