/*=============================================
Interfaz Dashboard
=============================================*/

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&family=DM+Serif+Display&display=swap');

.font-poppins {
    font-family: 'Poppins', sans-serif;
}

#wrapper {
  display: flex;
  flex-direction: row;
}

#sidebar-wrapper {
  min-height: auto;
  height: auto;
  width: 250px;
  z-index:1;
  transition: all 0.3s;
  background-image: url('/views/assets/img/banner_lateral.png');
  background-size: auto;
  background-position: top center;
  background-repeat: repeat;
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
}

#sidebar-wrapper .sidebar-heading {
  font-size: 1.5rem;
  text-align: center;
  min-width:225px;
}

#sidebar-wrapper .list-group-item {
  padding: 15px 20px;
}

#sidebar-wrapper .list-group-item i {
  margin-right: 10px;
}

#sidebar-wrapper .menu-text {
  display: inline;
}

#sidebar-wrapper.collapsed {
  width: 80px;

}

#sidebar-wrapper.collapsed .menu-text {
  display: none;

}

#sidebar-wrapper.collapsed .list-group-item {
  margin-right: 0;
  text-align: center;
}

#sidebar-wrapper.collapsed .list-group-item i{
 margin: 0;
}

#sidebar-wrapper .myPage {
  background-color: white !important;
  color: #333 !important;
  font-weight: 600;
  border: 2px solid white !important;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  transition: all 0.3s ease;
}

#sidebar-wrapper .myPage:hover {
  background-color: #f8f9fa !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}

#page-content-wrapper {
  flex-grow: 1;
  width:50%;
}

/* ==============================================
   Estilos para la sección de Encuestas Activas
   ============================================== */

/**
 * Título principal de la sección de encuestas activas
 * - Fuente: Poppins SemiBold (600)
 * - Centrado horizontalmente
 * - Tipografía en negrita con tamaño display-6
 * - Margen inferior de 30px
 */
.encuestas-title {
    font-family: 'Poppins', sans-serif !important;
    font-weight: 600 !important;
    font-size: 2.5rem;
    text-align: center;
    margin-bottom: 50px !important;
}

/**
 * Títulos de las encuestas en la lista
 * - Fuente: Poppins SemiBold (600)
 * - Aplica a los enlaces y spans de encuestas
 */
.list-group-item.list-group-item-action,
.list-group-item.list-group-item-action.disabled {
    font-family: 'Poppins', sans-serif !important;
    font-weight: 600 !important;
}

/**
 * Estilo hover para los enlaces de encuestas
 * - Color de fondo #6C9DA3 al pasar el mouse
 * - Transición suave
 */
.list-group-item.list-group-item-action:hover {
    background-color: #6C9DA3 !important;
    color: white !important;
    transition: all 0.3s ease;
}

/**
 * Contenedor de la lista de encuestas
 * - Ancho máximo de 800px para mejor legibilidad
 * - Centrado horizontalmente
 * - Padding lateral en dispositivos móviles
 * - Padding inferior para equilibrar con el espacio superior
 */
.container-sm.my-6 {
    max-width: 800px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 15px;
    padding-right: 15px;
    padding-bottom: 50px !important;
}

/*=============================================
Estilos para la página de encuestas
=============================================*/

/**
 * Título principal de la encuesta
 * - Fuente: DM Serif Display
 * - Aplica al h2 con clase display-6 dentro del card-body
 */
.card-body h2.display-6 {
    font-family: 'DM Serif Display', serif !important;
}

/**
 * Header de la página de resultados
 * - Color de fondo: #6C9DA3 (azul claro/verde agua)
 * - Mejor contraste y más estético
 */
.card-header.bg-primary {
    background-color: #6C9DA3 !important;
    color: white !important;
}

/**
 * Header de bienvenida en la página de inicio
 * - Color de fondo: #6C9DA3 (azul claro/verde agua)
 * - Texto en blanco para contraste
 * - Aplica al card-header que contiene el título "Bienvenido al Sistema de Encuestas"
 */
.card-header .card-title {
    color: white !important;
    font-weight: 600 !important;
}

.card .card-header {
    background-color: #6C9DA3 !important;
    color: white !important;
}

/**
 * Títulos de secciones en el acordeón
 * - Fuente: Poppins SemiBold (600)
 * - Color de fondo: #22547E (azul medio)
 * - Texto en blanco para contraste
 */
.accordion-button.bg-gradient.bg-primary {
    font-family: 'Poppins', sans-serif !important;
    font-weight: 600 !important;
    background-color: #22547E !important;
    color: white !important;
}

.accordion-button.bg-gradient.bg-primary:not(.collapsed) {
    background-color: #22547E !important;
    color: white !important;
}

/**
 * Botones de acción personalizados
 * - Botón de guardar: #6C9DA3 (azul claro)
 * - Botón de finalizar: #22547E (azul medio)
 */
.btn-success {
    background-color: #6C9DA3 !important;
    border-color: #6C9DA3 !important;
    color: white !important;
}

.btn-success:hover {
    background-color: #5a8a8f !important;
    border-color: #5a8a8f !important;
}

.btn-primary {
    background-color: #22547E !important;
    border-color: #22547E !important;
    color: white !important;
}

.btn-primary:hover {
    background-color: #1a4066 !important;
    border-color: #1a4066 !important;
}

/**
 * Títulos de preguntas
 * - Fuente: Poppins SemiBold (600)
 * - Aplica a los h4 dentro de las preguntas
 */
.pregunta h4,
.pregunta .h6 {
    font-family: 'Poppins', sans-serif !important;
    font-weight: 600 !important;
}

/**
 * Números de las preguntas
 * - Color: #22547E (azul medio)
 * - Reemplaza el color morado por defecto
 */
.pregunta h4 .text-primary,
.pregunta .h6 .text-primary {
    color: #22547E !important;
}

/**
 * Opciones de respuesta (labels)
 * - Fuente: Poppins Medium (500)
 * - Color de texto: #22547E (azul medio)
 */
.form-check-label span.fw-semibold {
    font-family: 'Poppins', sans-serif !important;
    font-weight: 500 !important;
    color: #22547E !important;
}

/**
 * Radio buttons personalizados
 * - Color de selección: #F68B1F (naranja)
 * - Aplica cuando está marcado (checked)
 */
.form-check-input[type="radio"]:checked {
    background-color: #F68B1F !important;
    border-color: #F68B1F !important;
}

.form-check-input[type="radio"]:focus {
    border-color: #F68B1F !important;
    box-shadow: 0 0 0 0.25rem rgba(246, 139, 31, 0.25) !important;
}

/**
 * Checkboxes personalizados
 * - Color de selección: #F68B1F (naranja)
 * - Aplica cuando está marcado (checked)
 */
.form-check-input[type="checkbox"]:checked {
    background-color: #F68B1F !important;
    border-color: #F68B1F !important;
}

.form-check-input[type="checkbox"]:focus {
    border-color: #F68B1F !important;
    box-shadow: 0 0 0 0.25rem rgba(246, 139, 31, 0.25) !important;
}

/*=============================================
Estilos para paginación y botones de tablas
=============================================*/

/**
 * Botones de paginación
 * - Página activa: #22547E (azul medio)
 * - Hover: #6C9DA3 (azul claro)
 * - Bordes y texto: colores coordinados
 */
.pagination .page-item.active .page-link {
    background-color: #22547E !important;
    border-color: #22547E !important;
    color: white !important;
}

.pagination .page-link {
    color: #22547E !important;
    border-color: #dee2e6;
}

.pagination .page-link:hover {
    background-color: #6C9DA3 !important;
    border-color: #6C9DA3 !important;
    color: white !important;
}

.pagination .page-item.disabled .page-link {
    color: #6c757d;
    background-color: #fff;
    border-color: #dee2e6;
}

/**
 * Botones de acción en tablas
 * - Botón negro/oscuro: cambiar a #22547E
 */
.btn-dark,
.btn-outline-dark {
    background-color: #22547E !important;
    border-color: #22547E !important;
    color: white !important;
}

.btn-dark:hover,
.btn-outline-dark:hover {
    background-color: #1a4066 !important;
    border-color: #1a4066 !important;
    color: white !important;
}

/**
 * Botón de agregar registro
 * - Color de fondo: #22547E (azul medio) - contrasta con la barra
 * - Hover: #D2DE26 (amarillo/verde) - destaca sobre la barra
 * - Aplica a btn-default y backColor con máxima especificidad
 */
a.btn.btn-default.btn-sm.rounded.backColor,
a.btn-default.backColor.rounded,
.btn.btn-default.backColor,
a.btn.btn-default,
a.btn-default,
.btn-default.backColor,
button[onclick*="agregar"],
button[onclick*="Agregar"],
.btn-add {
    background-color: #22547E !important;
    background: #22547E !important;
    background-image: none !important;
    border-color: #22547E !important;
    color: white !important;
}

a.btn.btn-default.btn-sm.rounded.backColor:hover,
a.btn-default.backColor.rounded:hover,
.btn.btn-default.backColor:hover,
a.btn.btn-default:hover,
a.btn-default:hover,
.btn-default.backColor:hover,
button[onclick*="agregar"]:hover,
button[onclick*="Agregar"]:hover,
.btn-add:hover {
    background-color: #D2DE26 !important;
    background: #D2DE26 !important;
    background-image: none !important;
    border-color: #D2DE26 !important;
    color: #204453 !important;
}

/* Float the sidebar for mobile */
@media (max-width: 768px) {
  #sidebar-wrapper {
    position: fixed;
    z-index: 1000;
    height: 100%;
    left: -250px;
    transition: all 0.3s ease;
  }

  #sidebar-wrapper.show {
    left: 0;
  }

  #menu-toggle {
    display: block;
    margin-left: 20px;
  }
  
}

.backDashboard{
    background-color: #f0f0f5 !important;
}
.borderDashboard{
    border: 1px solid #dce1e5 !important;
}

/*=============================================
Footer Styles
=============================================*/

body {
    display: block !important;
    min-height: 100vh;
}

#wrapper {
    min-height: calc(100vh - 200px);
    width: 100%;
}

.footer-custom {
    width: 100% !important;
    position: relative !important;
    left: 0 !important;
    margin: 0 !important;
    clear: both;
}

.footer-logo {
    font-family: Georgia, serif;
    font-size: 2rem;
}

.footer-custom a:hover {
    color: #fff !important;
    transition: color 0.3s ease;
}

.social-links a {
    font-size: 1.2rem;
    transition: transform 0.3s ease;
}

.social-links a:hover {
    transform: scale(1.2);
}

/*=============================================
Títulos de Encuestas
=============================================*/

.card-title,
.display-6 {
    font-family: 'Poppins', sans-serif !important;
    font-weight: 600 !important;
}

/*=============================================
Login Page Styles
=============================================*/

.login-container {
    background-image: url('/views/assets/img/banner_principal.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    min-height: calc(100vh - 200px);
    position: relative;
}

.login-logo {
    position: absolute;
    top: 60px;
    left: calc(15% + 175px);
    transform: translateX(-50%);
}

.login-logo img {
    width: 320px;
    height: auto;
    display: block;
}

.login-content {
    display: flex;
    align-items: center;
    justify-content: start;
    min-height: calc(100vh - 200px);
    padding-left: 15%;
}

.login-box {
    width: 350px;
    margin-top: 20px;
}

.login-message-resolution {
    position: absolute;
    bottom: 110px;
    left: 15%;
    width: 350px;
    text-align: center;
}

.login-message-resolution p {
    color: #204753;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    margin: 0;
}

.login-message-thanks {
    position: absolute;
    bottom: 50px;
    left: 15%;
    width: 350px;
    text-align: center;
}

.login-message-thanks p {
    color: #204753;
    font-size: 16px;
    font-weight: 900;
    line-height: 1.4;
    margin: 0;
}

/*=============================================
Login Responsive - Pantallas Grandes (>1600px)
=============================================*/

@media (min-width: 1601px) {
    .login-logo {
        top: 40px;
        left: calc(15% + 175px);
        transform: translateX(-50%);
    }

    .login-logo img {
        width: 380px;
        height: auto;
    }

    .login-box {
        margin-top: 20px;
    }

    .login-message-resolution {
        position: absolute;
        bottom: 90px;
        left: 15%;
        width: 350px;
    }

    .login-message-thanks {
        position: absolute;
        bottom: 30px;
        left: 15%;
        width: 350px;
    }
}

/*=============================================
Login Responsive - Pantallas Medias (1367px - 1600px)
=============================================*/

@media (max-width: 1600px) and (min-width: 1367px) {
    .login-logo {
        top: 50px;
        left: calc(15% + 175px);
        transform: translateX(-50%);
    }

    .login-logo img {
        width: 340px;
        height: auto;
    }

    .login-box {
        margin-top: 20px;
    }

    .login-message-resolution {
        bottom: 100px;
    }

    .login-message-resolution p {
        font-size: 12px;
    }

    .login-message-thanks {
        bottom: 40px;
    }
}

/*=============================================
Login Responsive - Laptops Pequeños (1024px - 1366px)
=============================================*/

@media (max-width: 1366px) and (min-width: 1024px) {
    .login-logo {
        top: 20px;
        left: calc(10% + 150px);
        transform: translateX(-50%);
    }

    .login-logo img {
        width: 200px;
        height: auto;
    }

    .login-content {
        padding-left: 10%;
    }

    .login-box {
        width: 300px;
        margin-top: 20px;
    }

    /* Reducir padding del card más agresivamente */
    .login-box.card {
        padding: 1rem 1.25rem !important;
    }

    /* Reducir tamaños de fuente en el login más agresivamente */
    .login-box h3 {
        font-size: 1.1rem !important;
        margin-bottom: 0.5rem !important;
        padding-top: 0.5rem !important;
    }

    .login-box hr {
        margin: 0.5rem 0 !important;
    }

    .login-box .form-group {
        margin-bottom: 0.5rem !important;
    }

    .login-box label {
        font-size: 0.8rem !important;
        margin-bottom: 0.2rem !important;
    }

    .login-box .form-control {
        font-size: 0.8rem !important;
        padding: 0.4rem 0.6rem !important;
        height: auto !important;
    }

    .login-box .input-group-text {
        padding: 0.4rem 0.6rem !important;
        font-size: 0.8rem !important;
    }

    .login-box .btn {
        font-size: 0.8rem !important;
        padding: 0.5rem 1rem !important;
        margin-top: 0.5rem !important;
    }

    .login-box a,
    .login-box .form-check-label {
        font-size: 0.7rem !important;
    }

    .login-box .form-check {
        margin-top: 0.5rem !important;
        margin-bottom: 0.5rem !important;
    }

    .login-box .row {
        margin-bottom: 0.25rem !important;
    }

    .login-message-resolution {
        bottom: 70px;
        left: 10%;
        width: 300px;
    }

    .login-message-resolution p {
        font-size: 11px;
        line-height: 1.2;
    }

    .login-message-thanks {
        bottom: 20px;
        left: 10%;
        width: 300px;
    }

    .login-message-thanks p {
        font-size: 12px;
        line-height: 1.2;
    }
}

/*=============================================
Login Responsive - Tablets Pequeños (769px - 1023px)
=============================================*/

@media (max-width: 1023px) and (min-width: 769px) {
    .login-container {
        min-height: 100vh;
        padding: 20px;
    }

    .login-logo {
        position: relative;
        top: auto;
        left: 50%;
        transform: translateX(-50%);
        text-align: center;
        margin-bottom: 20px;
        padding-top: 20px;
    }

    .login-logo img {
        width: 280px;
        height: auto;
        margin: 0 auto;
        display: block;
    }

    .login-content {
        padding-left: 0;
        justify-content: center;
        min-height: auto;
    }

    .login-box {
        width: 90%;
        max-width: 380px;
        margin-top: 0;
        margin-bottom: 20px;
    }

    .login-message-resolution {
        position: relative;
        bottom: auto;
        left: auto;
        width: 100%;
        margin-top: 15px;
        margin-bottom: 10px;
    }

    .login-message-resolution p {
        font-size: 14px;
    }

    .login-message-thanks {
        position: relative;
        bottom: auto;
        left: auto;
        width: 100%;
        margin-top: 10px;
        margin-bottom: 20px;
    }

    .login-message-thanks p {
        font-size: 16px;
    }
}

/*=============================================
Login Responsive - Mobile
=============================================*/

@media (max-width: 768px) {
    .login-container {
        min-height: 100vh;
        padding: 20px;
    }

    .login-logo {
        position: relative;
        top: auto;
        left: 50%;
        transform: translateX(-50%);
        text-align: center;
        margin-bottom: 20px;
        padding-top: 20px;
    }

    .login-logo img {
        width: 260px;
        height: auto;
        margin: 0 auto;
        display: block;
    }

    .login-content {
        padding-left: 0;
        justify-content: center;
        min-height: auto;
    }

    .login-box {
        width: 100%;
        max-width: 400px;
        margin-top: 0;
        margin-bottom: 20px;
    }

    .login-message-resolution {
        position: relative;
        bottom: auto;
        left: auto;
        width: 100%;
        margin-top: 15px;
        margin-bottom: 10px;
    }

    .login-message-resolution p {
        font-size: 15px;
    }

    .login-message-thanks {
        position: relative;
        bottom: auto;
        left: auto;
        width: 100%;
        margin-top: 10px;
        margin-bottom: 20px;
    }

    .login-message-thanks p {
        font-size: 18px;
    }
}

/*=============================================
Encuestas Responsive - Tablets y Laptops Pequeños (1024px - 1366px)
=============================================*/

@media (max-width: 1366px) and (min-width: 1024px) {
    /* Ajustar contenedor de encuestas */
    .container {
        padding-left: 15px;
        padding-right: 15px;
    }

    /* Ajustar títulos de preguntas */
    .pregunta h4 {
        font-size: 0.95rem;
        line-height: 1.4;
    }

    /* Ajustar labels de opciones */
    .form-check-label {
        font-size: 0.9rem;
        line-height: 1.3;
    }

    /* Ajustar botones de acción */
    .btn {
        font-size: 0.9rem;
        padding: 0.5rem 1rem;
    }

    /* Ajustar acordeones de secciones */
    .accordion-button {
        font-size: 0.95rem;
        padding: 0.75rem 1rem;
    }

    /* Ajustar card principal */
    .card-body {
        padding: 1.25rem;
    }

    /* Ajustar display de encuesta */
    .display-6 {
        font-size: 1.75rem;
    }
}

/*=============================================
Encuestas Responsive - Tablets Pequeños (769px - 1023px)
=============================================*/

@media (max-width: 1023px) and (min-width: 769px) {
    /* Ajustar columnas de opciones */
    .pregunta .col-md-6 {
        flex: 0 0 100%;
        max-width: 100%;
    }

    /* Ajustar títulos de preguntas */
    .pregunta h4 {
        font-size: 0.95rem;
        line-height: 1.4;
    }

    /* Ajustar labels de opciones */
    .form-check-label {
        font-size: 0.9rem;
    }

    /* Ajustar botones */
    .btn {
        font-size: 0.9rem;
        padding: 0.5rem 1rem;
        margin-bottom: 0.5rem;
    }

    /* Stack de botones en pantallas medianas */
    .text-center .btn {
        display: block;
        width: 100%;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

/*=============================================
Encuestas Responsive - Mobile (max-width: 768px)
=============================================*/

@media (max-width: 768px) {
    /* Ajustar columnas de opciones a una sola columna */
    .pregunta .col-md-6 {
        flex: 0 0 100%;
        max-width: 100%;
    }

    /* Ajustar padding de preguntas */
    .pregunta {
        padding: 1rem !important;
    }

    /* Ajustar títulos */
    .pregunta h4 {
        font-size: 0.9rem;
        line-height: 1.4;
    }

    /* Ajustar labels */
    .form-check-label {
        font-size: 0.85rem;
        line-height: 1.3;
    }

    /* Ajustar inputs */
    .form-control {
        font-size: 0.9rem;
    }

    /* Ajustar botones */
    .btn {
        font-size: 0.85rem;
        padding: 0.5rem 0.75rem;
    }

    /* Stack de botones en mobile */
    .text-center .btn {
        display: block;
        width: 100%;
        margin-left: 0 !important;
        margin-right: 0 !important;
        margin-bottom: 0.5rem;
    }

    /* Ajustar acordeones */
    .accordion-button {
        font-size: 0.9rem;
        padding: 0.75rem;
    }

    /* Ajustar card */
    .card-body {
        padding: 1rem;
    }

    /* Ajustar display */
    .display-6 {
        font-size: 1.5rem;
    }

    /* Ajustar container */
    .col-md-10 {
        flex: 0 0 100%;
        max-width: 100%;
    }
}

/*=============================================
Ajustes Generales de Responsividad
=============================================*/

/* Prevenir overflow horizontal */
body {
    overflow-x: hidden;
}

/* Asegurar que las imágenes sean responsivas */
img {
    max-width: 100%;
    height: auto;
}

/* Ajustar tablas en pantallas pequeñas */
@media (max-width: 768px) {
    .table-responsive {
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

/*=============================================
Override final para botón Agregar registro
Este debe estar al final para sobrescribir backColor del template
=============================================*/

/**
 * Override definitivo para el botón Agregar registro
 * - Debe estar al final del archivo para tener prioridad
 * - Sobrescribe la clase backColor del template
 */
a.btn-default.backColor[href*="manage"],
a.backColor.btn-default,
.backColor.btn-default,
a[href*="manage"].btn-default {
    background-color: #22547E !important;
    background: #22547E !important;
    background-image: none !important;
    border-color: #22547E !important;
    border: 1px solid #22547E !important;
    color: white !important;
}

a.btn-default.backColor[href*="manage"]:hover,
a.backColor.btn-default:hover,
.backColor.btn-default:hover,
a[href*="manage"].btn-default:hover {
    background-color: #D2DE26 !important;
    background: #D2DE26 !important;
    border-color: #D2DE26 !important;
    color: #22547E !important;
}

/*=============================================
Filtros Dinámicos
=============================================*/
#filterIndicator {
    animation: fadeIn 0.3s ease-in;
}

@keyframes fadeIn {
    from { 
        opacity: 0; 
        transform: translateY(-5px); 
    }
    to { 
        opacity: 1; 
        transform: translateY(0); 
    }
}

/* Estilos para los dropdowns de filtro */
#filterEncuesta, #filterPregunta {
    transition: all 0.2s ease;
    border-color: #dee2e6;
}

#filterEncuesta:focus, #filterPregunta:focus {
    border-color: #22547E;
    box-shadow: 0 0 0 0.15rem rgba(34, 84, 126, 0.15);
}

/* Badge del indicador de filtros - diseño sutil */
#filterIndicator .badge {
    background-color: #f8f9fa !important;
    border-color: #dee2e6 !important;
    color: #495057 !important;
    padding: 0.4rem 0.75rem;
    font-size: 0.8125rem;
}

#filterIndicator .badge i {
    color: #22547E;
    opacity: 0.7;
}

/* Botón limpiar filtros */
#clearFilters {
    color: #6c757d;
    font-size: 0.8125rem;
    transition: color 0.2s ease;
}

#clearFilters:hover {
    color: #dc3545;
    text-decoration: none;
}

/* Labels de filtros */
.form-label.small {
    color: #6c757d;
    font-weight: 500;
}
