/* Estilos personalizados para el login */
.bg-gradient-dark {
    background: linear-gradient(87deg, #11cdef 0, #1171ef 100%) !important;
    min-height: 100vh;
    margin: 0;
    padding: 0;
}

.bg-gradient-teal {
    background: linear-gradient(87deg, #11cdef 0, #1171ef 100%) !important;
}

.header {
    position: relative;
    overflow: hidden;
    padding: 2rem 0;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.header-body {
    padding: 1rem 0;
}

.logo-container {
    display: flex;
    align-items: center;
}

.logo-container img {
    max-height: 60px;
    width: auto;
}

.lema-text {
    color: rgba(255, 255, 255, 0.9) !important;
    font-size: 1.1rem;
    font-weight: 300;
    line-height: 1.4;
    margin: 0;
}

.login-container {
    padding: 3rem 0;
    min-height: calc(100vh - 300px);
    display: flex;
    align-items: center;
}

.card {
    border: 0 !important;
    border-radius: 15px !important;
    box-shadow: 0 0 2rem 0 rgba(136, 152, 170, .15) !important;
    background-color: #ffffff !important;
    overflow: hidden;
}

.card-body {
    padding: 2.5rem !important;
}

.text-center.text-muted h4 {
    color: #525f7f !important;
    font-weight: 700 !important;
    font-size: 1.5rem !important;
    margin-bottom: 0.5rem !important;
}

.text-center.text-muted p {
    color: #8898aa !important;
    font-size: 0.95rem !important;
    margin-bottom: 0 !important;
}

.form-group {
    margin-bottom: 1.5rem !important;
}

.input-group-alternative {
    box-shadow: 0 1px 3px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08) !important;
    border: 0 !important;
    border-radius: 10px !important;
    transition: all .15s ease !important;
    background-color: #ffffff !important;
}

.input-group-alternative:hover {
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08) !important;
}

.input-group-alternative .form-control {
    border: 0 !important;
    box-shadow: none !important;
    background-color: transparent !important;
    padding: 1rem 1rem 1rem 0 !important;
    font-size: 0.95rem !important;
    color: #525f7f !important;
}

.input-group-alternative .form-control::placeholder {
    color: #8898aa !important;
    opacity: 0.8 !important;
}

.input-group-alternative .form-control:focus {
    outline: none !important;
    box-shadow: none !important;
}

.input-group-text {
    background-color: #f8f9fe !important;
    border: 0 !important;
    color: #8898aa !important;
    padding: 1rem !important;
    border-radius: 10px 0 0 10px !important;
    min-width: 50px !important;
    justify-content: center !important;
}

.btn-primary {
    background: linear-gradient(87deg, #11cdef 0, #1171ef 100%) !important;
    border: 0 !important;
    border-radius: 10px !important;
    box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08) !important;
    padding: 1rem !important;
    font-weight: 600 !important;
    font-size: 1rem !important;
    transition: all .15s ease !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
}

.btn-primary:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 7px 14px rgba(50, 50, 93, .1), 0 3px 6px rgba(0, 0, 0, .08) !important;
    background: linear-gradient(87deg, #0fb5d8 0, #0f5fd8 100%) !important;
}

.btn-primary:active {
    transform: translateY(0) !important;
}

.custom-control-alternative {
    margin-top: 1rem !important;
}

.custom-control-alternative .custom-control-input:checked ~ .custom-control-label::before {
    background-color: #11cdef !important;
    border-color: #11cdef !important;
    box-shadow: 0 0 0 1px #11cdef !important;
}

.custom-control-alternative .custom-control-label {
    color: #525f7f !important;
    font-size: 0.9rem !important;
    cursor: pointer !important;
}

.custom-control-alternative .custom-control-label::before {
    border-radius: 6px !important;
    border: 2px solid #e9ecef !important;
}

.forgot-password-link {
    text-align: center !important;
    margin: 1.5rem 0 !important;
}

.forgot-password-link a {
    color: #11cdef !important;
    text-decoration: none !important;
    font-size: 0.9rem !important;
    transition: color .15s ease !important;
}

.forgot-password-link a:hover {
    color: #0fb5d8 !important;
    text-decoration: underline !important;
}

.invalid-feedback {
    color: #f5365c !important;
    font-size: 0.85rem !important;
    margin-top: 0.5rem !important;
    display: block !important;
}

.alert {
    border-radius: 10px !important;
    border: 0 !important;
    padding: 1rem !important;
    margin-top: 1rem !important;
}

.alert-danger {
    background-color: #feb2b2 !important;
    color: #c53030 !important;
}

footer {
    background-color: rgba(0, 0, 0, 0.1) !important;
    backdrop-filter: blur(10px) !important;
    border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
    padding: 1.5rem 0 !important;
    margin-top: auto !important;
}

.copyright {
    color: rgba(255, 255, 255, 0.8) !important;
    font-size: 0.9rem !important;
}

.text-red {
    color: #f5365c !important;
}

/* Responsive */
@media (max-width: 768px) {
    .header-body .row {
        flex-direction: column !important;
        text-align: center !important;
    }
    
    .header-body .col-md-4,
    .header-body .col-lg-6 {
        margin-bottom: 1rem !important;
    }
    
    .card-body {
        padding: 2rem 1.5rem !important;
    }
    
    .login-container {
        padding: 2rem 0 !important;
    }
    
    .lema-text {
        font-size: 1rem !important;
        text-align: center !important;
    }
}

@media (max-width: 576px) {
    .card-body {
        padding: 1.5rem 1rem !important;
    }
    
    .header {
        padding: 1rem 0 !important;
    }
    
    .logo-container img {
        max-height: 50px !important;
    }
}
