/* Estilos generales */
body {
    min-height: 100vh;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Poppins', sans-serif;
    overflow: hidden;
}

/* Contenedor principal */
.login-container {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    width: 100vw;
    position: relative;
    z-index: 1;
}

/* Tarjeta de login */
.login-card {
    background: rgba(255,255,255,0.95);
    border-radius: 2rem;
    box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);
    padding: 2.5rem 2rem 2rem 2rem;
    max-width: 400px;
    width: 100%;
    animation: fadeInUp 1s cubic-bezier(.39,.575,.565,1.000) both;
}

@keyframes fadeInUp {
    0% {
        opacity: 0;
        transform: translateY(40px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Logo */
.login-logo {
    width: 80px;
    height: auto;
    margin-bottom: 15px;
}

/* Títulos */
.login-title {
    font-weight: 700;
    color: #4f3ca7;
    margin-bottom: 0.2rem;
    letter-spacing: 1px;
}

.login-subtitle {
    color: #7a7a7a;
    font-size: 1rem;
    margin-bottom: 1.5rem;
}

/* Animación de Lottie para el reloj */
.lottie-clock {
    width: 120px;
    height: 120px;
    margin-bottom: 1rem;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* Botón de login */
.login-btn {
    background: linear-gradient(90deg, #667eea 0%, #764ba2 100%);
    border: none;
    font-weight: 600;
    transition: transform 0.2s, box-shadow 0.2s;
    box-shadow: 0 4px 16px rgba(118,75,162,0.15);
}

.login-btn:hover {
    transform: translateY(-2px) scale(1.03);
    box-shadow: 0 8px 24px rgba(118,75,162,0.25);
}

/* Estilos para los inputs */
.input-group-text {
    background: #f3f3f3;
    border: none;
}

.form-control:focus {
    border-color: #764ba2;
    box-shadow: 0 0 0 0.2rem rgba(118,75,162,0.15);
}

/* Estilos para las alertas */
.alert {
    animation: shake 0.4s cubic-bezier(.36,.07,.19,.97) both;
}

@keyframes shake {
    10%, 90% { transform: translateX(-1px); }
    20%, 80% { transform: translateX(2px); }
    30%, 50%, 70% { transform: translateX(-4px); }
    40%, 60% { transform: translateX(4px); }
}

/* Estilos para los enlaces en el footer */
.text-center a {
    color: #764ba2;
    transition: color 0.2s;
}

.text-center a:hover {
    color: #4f3ca7;
    text-decoration: underline;
}

/* Animación de fondo con burbujas */
.bubbles {
    position: absolute;
    top: 0; left: 0; width: 100vw; height: 100vh;
    z-index: 0;
    overflow: hidden;
}

.bubble {
    position: absolute;
    bottom: -100px;
    background: rgba(255,255,255,0.15);
    border-radius: 50%;
    animation: rise 12s infinite linear;
}

@keyframes rise {
    0% { transform: translateY(0) scale(1); opacity: 1; }
    100% { transform: translateY(-110vh) scale(1.2); opacity: 0; }
}