/*Esto es para el CSS que estan en TODAS las páginas*/
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
body {
    font-family: Arial, sans-serif;
    background: linear-gradient(100deg, #eff6ff 25%, #ffffff 50%, #eef2ff91 100%);
    margin: 0;
    padding: 0;
    align-items: center;
    text-align: center;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow-x: hidden; /* Prevent horizontal scrolling */
}

.main-content {
    flex: 1;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 20px;
    padding-top: 180px;
    overflow-y: auto;
    width: 100%;
    gap: 40px; /* Espacio para el segundo formulario */
}

/* Header Styles */
.main-header {
    /*position: fixed;*/
    top: 0;
    left: 0;
    width: 100%;
    /*background-color: white;*/
    /*box-shadow: 0 2px 5px rgba(0,0,0,0.1);*/
    z-index: 1000;
    height: auto; /* Allow height to adjust based on content */
}


.header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 20px;
    margin: 0 auto;
}

.header-left, .header-right {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.jp-logo {
    height: 150px; /* Ajustado al tamaño que preferías */
    width: auto;
    margin-right: 20px;
}

.jpV2-logo {
    height: 100px; /* Ajustado al tamaño que preferías */
    width: auto;
    margin-left: 20px;
}
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}
/* Responsive */
@media (max-width: 768px) {
    .navbar {
        padding: 0 20px;
        height: 70px;
    }
    
    .login-container {
        max-width: 90%;
        margin-top: 10px;
        margin-bottom: 10px;
        padding: 20px;
    }
    
    .navbar-logo {
        height: 40px;
    }
    
    .navbar-image, .navbar-image2 {
        height: 40px;
    }
    
    .jp-logo {
        height: 100px;
    }
    
    .jpV2-logo {
        height: 70px;
    }
    
    .main-content {
        padding-top: 130px; /* Reduced padding for mobile */
    }
    
    .header {
        margin-bottom: 15px;
    }
    
    .card-grid {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        gap: 10px;
    }
}
.floating-shapes {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: -1;
}

.floating-shapes div {
    position: absolute;
    background: rgba(102, 126, 234, 0.1);
    border-radius: 50%;
    animation: float 15s infinite linear;
}

.floating-shapes div:nth-child(1) {
    width: 200px;
    height: 200px;
    top: 10%;
    left: 10%;
    animation-delay: 0s;
}

.floating-shapes div:nth-child(2) {
    width: 300px;
    height: 300px;
    top: 60%;
    left: 70%;
    animation-delay: -5s;
    animation-duration: 18s;
    background: rgba(118, 75, 162, 0.1);
}

.floating-shapes div:nth-child(3) {
    width: 150px;
    height: 150px;
    top: 30%;
    left: 80%;
    animation-delay: -2s;
    animation-duration: 12s;
}

@keyframes float {
    0% {
        transform: translate(0, 0) rotate(0deg);
    }
    25% {
        transform: translate(10px, 15px) rotate(5deg);
    }
    50% {
        transform: translate(5px, 25px) rotate(10deg);
    }
    75% {
        transform: translate(15px, 5px) rotate(5deg);
    }
    100% {
        transform: translate(0, 0) rotate(0deg);
    }
}

.submit-button, .back-button, .login-button, .close-fin-details{
    color: white;
    font-weight: bold;
    background: linear-gradient(to right, rgb(82, 54, 54), rgb(31, 29, 29));
    border: solid 2px black;
    padding: 10px 22px;
    font-size: 15px;
    margin-top: 10px;
    border-radius: 10px;
    transition: all 0.3s ease;
    cursor: pointer;
}

.submit-button:hover, .back-button:hover, .login-button:hover .back-button-formulario:hover, .back-button-entradas:hover, .user-action-btn:hover {
    background: linear-gradient(to right, rgb(187, 196, 148), rgb(163, 138, 138));
    box-shadow: 0 2px 8px rgba(34, 64, 121, 0.12);
    transform: translateY(-2px);
    color: black;
}


/* Estilos para los mensajes flash */
.flash-message,.flash-formulario-message,.flash-user-message, .flash-login-message, .flash-entradas-message, .flash-carta-message, .flash-estadisticas-message {
    padding: 10px 15px;
    margin-bottom: 20px;
    border-radius: 4px;
    animation: fadeIn 0.5s;
}

.flash-success,.flash-formulario-success, .flash-user-success, .flash-login-success, .flash-entradas-success, .flash-carta-success, .flash-estadisticas-success {
    background-color: #d4edda;
    color: green;
    border: 1px solid #c3e6cb;
}

.flash-error,.flash-formulario-error, .flash-user-error, .flash-csv-error, .flash-login-error, .flash-entradas-error, .flash-carta-error, .flash-estadisticas-error {
    background-color: #f8d7da;
    color: red;
    border: 1px solid #f5c6cb;
}

.flash-info,.flash-formulario-info, .flash-user-info, .flash-login-info, .flash-entradas-info, .flash-carta-info, .flash-estadisticas-info {
    background-color: #d1ecf1;
    color: #0c5460;
    border: 1px solid #bee5eb;
}

.flash-danger,.flash-formulario-danger, .flash-user-danger, .flash-login-danger, .flash-entradas-danger, .flash-carta-danger, .flash-estadisticas-danger {
    background-color: #f8d7da;
    color: red;
    border: 1px solid #f5c6cb;
}