/*Common*/
@media (max-width: 767px) {
  .menu {
    text-align: center; }
    .menu-logo {
      font-size: 1.2em; }
  .menu-item {
    display: none; }
  .menu-button {
    display: block; }
  .welcome-block h1 {
    font-size: 2em; } }

@media (min-width: 768px) {
  .menu-item {
    display: block; }
  .menu-button {
    display: none; } }

.gravatar-image {
  max-width: none; }

.border-top {
  border-top: 1px solid #e5e5e5; }

.border-bottom {
  border-bottom: 1px solid #e5e5e5; }

.box-shadow {
  box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.05); }

.welcome-block {
  max-width: 700px; }

.logo, .logo:hover {
  text-decoration: none; }

.col-m-5 {
  margin: 5px; }

.col-m-10 {
  margin: 10px; }

.col-m-15 {
  margin: 15px; }

.col-m-20 {
  margin: 20px; }

.col-m-25 {
  margin: 25px; }

.col-m-30 {
  margin: 30px; }

.col-m-35 {
  margin: 35px; }

.col-m-40 {
  margin: 40px; }

.col-m-45 {
  margin: 45px; }

.col-m-50 {
  margin: 50px; }

.col-m-b-5 {
  margin-bottom: 5px; }

.col-m-b-10 {
  margin-bottom: 10px; }

.col-m-b-15 {
  margin-bottom: 15px; }

.col-m-b-20 {
  margin-bottom: 20px; }

.col-m-b-25 {
  margin-bottom: 25px; }

.col-m-b-30 {
  margin-bottom: 30px; }

.col-m-b-35 {
  margin-bottom: 35px; }

.col-m-b-40 {
  margin-bottom: 40px; }

.col-m-b-45 {
  margin-bottom: 45px; }

.col-m-b-50 {
  margin-bottom: 50px; }

.col-m-t-5 {
  margin-top: 5px; }

.col-m-t-10 {
  margin-top: 10px; }

.col-m-t-15 {
  margin-top: 15px; }

.col-m-t-20 {
  margin-top: 20px; }

.col-m-t-25 {
  margin-top: 25px; }

.col-m-t-30 {
  margin-top: 30px; }

.col-m-t-35 {
  margin-top: 35px; }

.col-m-t-40 {
  margin-top: 40px; }

.col-m-t-45 {
  margin-top: 45px; }

.col-m-t-50 {
  margin-top: 50px; }

.col-m-l-5 {
  margin-left: 5px; }

.col-m-l-10 {
  margin-left: 10px; }

.col-m-l-15 {
  margin-left: 15px; }

.col-m-l-20 {
  margin-left: 20px; }

.col-m-l-25 {
  margin-left: 25px; }

.col-m-l-30 {
  margin-left: 30px; }

.col-m-l-35 {
  margin-left: 35px; }

.col-m-l-40 {
  margin-left: 40px; }

.col-m-l-45 {
  margin-left: 45px; }

.col-m-l-50 {
  margin-left: 50px; }

.col-m-r-5 {
  margin-right: 5px; }

.col-m-r-10 {
  margin-right: 10px; }

.col-m-r-15 {
  margin-right: 15px; }

.col-m-r-20 {
  margin-right: 20px; }

.col-m-r-25 {
  margin-right: 25px; }

.col-m-r-30 {
  margin-right: 30px; }

.col-m-r-35 {
  margin-right: 35px; }

.col-m-r-40 {
  margin-right: 40px; }

.col-m-r-45 {
  margin-right: 45px; }

.col-m-r-50 {
  margin-right: 50px; }

.col-p-5 {
  padding: 5px; }

.col-p-10 {
  padding: 10px; }

.col-p-15 {
  padding: 15px; }

.col-p-20 {
  padding: 20px; }

.col-p-25 {
  padding: 25px; }

.col-p-30 {
  padding: 30px; }

.col-p-35 {
  padding: 35px; }

.col-p-40 {
  padding: 40px; }

.col-p-45 {
  padding: 45px; }

.col-p-50 {
  padding: 50px; }

.col-p-b-5 {
  padding-bottom: 5px; }

.col-p-b-10 {
  padding-bottom: 10px; }

.col-p-b-15 {
  padding-bottom: 15px; }

.col-p-b-20 {
  padding-bottom: 20px; }

.col-p-b-25 {
  padding-bottom: 25px; }

.col-p-b-30 {
  padding-bottom: 30px; }

.col-p-b-35 {
  padding-bottom: 35px; }

.col-p-b-40 {
  padding-bottom: 40px; }

.col-p-b-45 {
  padding-bottom: 45px; }

.col-p-b-50 {
  padding-bottom: 50px; }

.col-p-t-5 {
  padding-top: 5px; }

.col-p-t-10 {
  padding-top: 10px; }

.col-p-t-15 {
  padding-top: 15px; }

.col-p-t-20 {
  padding-top: 20px; }

.col-p-t-25 {
  padding-top: 25px; }

.col-p-t-30 {
  padding-top: 30px; }

.col-p-t-35 {
  padding-top: 35px; }

.col-p-t-40 {
  padding-top: 40px; }

.col-p-t-45 {
  padding-top: 45px; }

.col-p-t-50 {
  padding-top: 50px; }

.col-p-l-5 {
  padding-left: 5px; }

.col-p-l-10 {
  padding-left: 10px; }

.col-p-l-15 {
  padding-left: 15px; }

.col-p-l-20 {
  padding-left: 20px; }

.col-p-l-25 {
  padding-left: 25px; }

.col-p-l-30 {
  padding-left: 30px; }

.col-p-l-35 {
  padding-left: 35px; }

.col-p-l-40 {
  padding-left: 40px; }

.col-p-l-45 {
  padding-left: 45px; }

.col-p-l-50 {
  padding-left: 50px; }

.col-p-r-5 {
  padding-right: 5px; }

.col-p-r-10 {
  padding-right: 10px; }

.col-p-r-15 {
  padding-right: 15px; }

.col-p-r-20 {
  padding-right: 20px; }

.col-p-r-25 {
  padding-right: 25px; }

.col-p-r-30 {
  padding-right: 30px; }

.col-p-r-35 {
  padding-right: 35px; }

.col-p-r-40 {
  padding-right: 40px; }

.col-p-r-45 {
  padding-right: 45px; }

.col-p-r-50 {
  padding-right: 50px; }

.col-form-label {
  text-align: right;
  font-weight: bold; }

@media (max-width: 575px) {
  .col-form-label {
    text-align: left; } }

/*Controls*/
.navbar-brand > img {
  max-height: 31px; }

.navbar-brand.logo {
  padding: 10px 10px; }

.navbar-brand-image-mobile {
  display: none; }

@media (max-width: 767px) {
  .navbar-brand-image {
    display: none; }
  .navbar-brand-image-mobile {
    display: block;
    padding-left: 0;
    padding-right: 0; } }

.validation-summary-errors {
  background: none;
  padding-top: 14px;
  -ms-border-radius: 4px;
  border-radius: 4px;
  margin-bottom: 15px;
  margin-top: 20px;
  border: 1px solid; }

.switch {
  display: inline-block;
  height: 28px;
  position: relative;
  width: 54px;
  margin-top: 5px; }

.switch input {
  display: none; }

.slider {
  bottom: 0;
  cursor: pointer;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  transition: .4s; }

.slider:before {
  background-color: #fff;
  bottom: 1px;
  content: "";
  height: 26px;
  left: 1px;
  position: absolute;
  transition: .4s;
  width: 26px; }

input:not(:checked) + .bg-primary {
  background-color: #ccc !important;
  background-image: none !important; }

input:checked + .bg-primary {
  background-color: #4ed164 !important;
  background-image: none !important; }

input:checked + .slider:before {
  transform: translateX(26px); }

.slider.round {
  border-radius: 34px; }

.slider.round:before {
  border-radius: 50%; }

label.radio-img > input {
  visibility: hidden;
  position: absolute; }

label.radio-img > input + img {
  cursor: pointer;
  border: 2px solid transparent; }

label.radio-img > input:checked + img {
  background-color: #ffe7ac;
  -ms-border-radius: 15px;
  border-radius: 15px; }

    label.radio-img > input:checked ~ h3, label.radio-img > input:checked ~ h4 {
        color: #004080;
        /*color: #007bff;*/
        text-decoration: underline;
    }

label.radio-img > h3, label > h4 {
  cursor: pointer; }

.cc-window {
  color: #212529;
  background-color: #f7f7f7; }

.cc-btn {
    color: #ffffff;
    background-color: #004080;
    /*background-color: #007bff;*/
    border-color: transparent;
}

#qrCode canvas {
  padding: 20px;
  background-color: white; }

/*Pages*/
.consent-container .toggle-button__input {
  float: left; }

.consent-container .toggle-button__text {
  float: left;
  margin-top: 6px;
  margin-left: 10px; }

.consent-container .consent-description {
  width: 100%;
  float: left; }

.consent-container .client-logo {
  float: left; }
  .consent-container .client-logo img {
    margin-right: 25px; }

.logged-out-container iframe {
  display: none;
  width: 0;
  height: 0; }

.grants-container .page-header {
  margin-bottom: 10px; }

.grants-container .grant {
  margin-top: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid lightgray; }
  .grants-container .grant .clientname {
    font-size: 140%;
    font-weight: bold; }
  .grants-container .grant .granttype {
    font-size: 120%;
    font-weight: bold; }
  .grants-container .grant .created {
    font-size: 120%;
    font-weight: bold; }
  .grants-container .grant .expires {
    font-size: 120%;
    font-weight: bold; }
  .grants-container .grant li {
    list-style-type: none;
    display: inline; }
    .grants-container .grant li:after {
      content: ', '; }
    .grants-container .grant li:last-child:after {
      content: ''; }

 ==========================================================
    Custom Responsive & Animation Styles (andres cardona)
   ========================================================== 

 Animación para efectos sutiles 
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

 Aplicar la animación a los bloques de bienvenida 
.welcome-block {
    animation: fadeInUp 0.6s ease-in-out;
}

 Adaptaciones móviles 
@media (max-width: 767px) {
    .menu {
        text-align: center;
    }

    .menu-logo {
        font-size: 1.1em;
    }

    .welcome-block h1 {
        font-size: 1.8em;
    }

    .navbar-brand img {
        max-height: 25px;
    }
}

 Ajustes para pantallas grandes 
@media (min-width: 992px) {
    .welcome-block {
        max-width: 850px;
    }

    .navbar {
        padding-top: 0.8rem;
        padding-bottom: 0.8rem;
    }
}

 Botones mejorados 
.btn-primary {
    background-color: #0069d9;
    border-color: #005cbf;
    transition: all 0.2s ease-in-out;
}

    .btn-primary:hover {
        background-color: #0056b3;
        border-color: #004080;
    }

 Pequeños toques visuales 
body {
    scroll-behavior: smooth;
    background-color: #f8f9fa;
}


/* ===== Personalización de barra superior ===== */
/*.menu {
    background-color: #004080 !important;*/ /* Azul institucional */
    /*color: white !important;
    border: none !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}*/

/* Logo dentro de la barra */
/*.menu-logo a.logo {
    color: white !important;
    text-decoration: none;
}*/

    /* Logo al pasar el mouse */
    /*.menu-logo a.logo:hover {
        color: #cce0ff !important;*/ /* Azul claro al pasar */
    /*}*/

/* Botón de menú (para pantallas pequeñas) */
/*.menu-button {
    color: white !important;
    border-color: white !important;
}

    .menu-button:hover {
        background-color: white !important;
        color: #004080 !important;
    }*/

/* Bordes inferiores del menú */
/*.border-bottom {
    border-bottom: none !important;
}*/

/* 1. Fondo Fijo y Centrado en la Columna Izquierda */
.login-bg-left {
    /* Mantenemos tus propiedades de fondo */
    background-image: url('/images/background/fondoLogin.jpg');
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
    background-color: rgba(0, 51, 102, 0.6);
    background-blend-mode: multiply;
    /* AÑADIDO CLAVE: Hace que la imagen se quede fija al hacer scroll */
    background-attachment: fixed;
    /* CRÍTICO: Asegura que la columna izquierda sea tan alta como la pantalla, sin importar el contenido */
    min-height: 100vh;
}

.login-wrapper {
    background-color: #f8f9fa; /* Color gris claro similar a bg-light */
    min-height: 100vh; /* Ocupa toda la altura de la pantalla */
}

/* Usa la sombra de la tarjeta de login que definimos antes */
.login-card {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
    border-radius: 0.5rem;
}

.info-box {
    background-color: transparent !important; /* Quitar el fondo */
    border: 1px solid rgba(255, 255, 255, 0.4); /* Añadir borde blanco sutil */
    padding: 1.5rem; /* Ajustar padding */
}

html {
    height: 100%; /* CRÍTICO: Asegura que el HTML ocupe toda la altura */
}

body {
    /* Mantén tus reglas existentes */
    height: 100%;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    /* PASO CLAVE 1: Activar Flexbox en el body */
    display: flex;
    flex-direction: column; /* Organiza los hijos (contenido, footer) en una columna vertical */
}

/*===== Personalización del Footer (Solo para #main-app-footer) =====*/
/*===== Personalización del Footer (Solo para #main-app-footer) =====*/
#main-app-footer {
    background-color: #004080 !important;
    color: white !important;
    border-top: none !important;
   
    padding-top: 15px !important;
    padding-bottom: 15px !important;
}
    /* ... (resto de tus estilos de #main-app-footer) ... */

    /* Aplicar color blanco a los elementos pequeños y enlaces dentro de este footer */
    #main-app-footer small,
    #main-app-footer a,
    #main-app-footer label {
        color: white !important;
    }

    /* Ajusta el Select (dropdown) */
    #main-app-footer .form-control {
        background-color: rgba(255, 255, 255, 0.1);
        color: white;
        border-color: rgba(255, 255, 255, 0.3);
        /* Alineación vertical fina */
        padding-top: .375rem;
        padding-bottom: .375rem;
        height: auto;
    }
        #main-app-footer .form-control option {
            /* Asegura que las opciones del dropdown sean legibles */
            color: #212529;
            background-color: white;
        }

    /* El texto de copyright que era 'text-muted' ahora es blanco en este footer */
    #main-app-footer .text-muted {
        color: white !important;
    }
    /* Ajuste específico para los formularios de selección */
    #main-app-footer .form-inline {
        /* Mantiene los elementos del formulario alineados verticalmente */
        display: flex;
        align-items: center;
        margin: 0 !important;
    }

    /* Asegura que la etiqueta esté alineada verticalmente con el select */
    #main-app-footer label {
        line-height: 1.5;
        margin-bottom: 0 !important;
        margin-right: 5px; /* Espacio entre la etiqueta (Theme:) y el Select */
    }






