body {
    display: flex;
    margin: 0;
    font-family: Arial, sans-serif;
}

.sidebar {
    width: 200px;
    background-color: #2c3e50;
    color: white;
    height: 100vh;
    padding-top: 20px;
    transition: width 0.3s;
}

.sidebar.collapsed {
    width: 50px;
}

.sidebar .toggle-btn {
    display: block;
    background-color: #34495e;
    color: white;
    border: none;
    width: 100%;
    padding: 10px;
    cursor: pointer;
    text-align: left;
}

.sidebar .user-info {
    text-align: center;
    margin-bottom: 20px;
}

.sidebar .user-info img {
    width: 80px;
    border-radius: 50%;
}

.sidebar.collapsed .user-info {
    display: none;
}

.sidebar .menu {
    list-style-type: none;
    padding: 0;
}

.sidebar .menu li {
    padding: 10px;
    text-align: center;
}

.sidebar .menu li a {
    color: white;
    text-decoration: none;
}

.sidebar .menu .submenu {
    list-style-type: none;
    padding-left: 20px;
    display: none;
}

.sidebar .menu .submenu-toggle {
    cursor: pointer;
}

.sidebar .menu .submenu-toggle.open .submenu {
    display: block;
}

.main-content {
    flex-grow: 1;
    background-color: #ecf0f1;
    transition: margin-left 0.3s;
    margin-left: 200px;
}

.main-content.collapsed {
    margin-left: 50px;
}

.top-bar {
    display: flex;
    justify-content: flex-end;
    background-color: #34495e;
    color: white;
    padding: 10px 20px;
}

.top-bar .user-menu {
    position: relative;
    display: flex;
    align-items: center;
    cursor: pointer;
}

.top-bar .user-menu img {
    width: 40px;
    border-radius: 50%;
}

.top-bar .user-menu .dropdown-content {
    display: none;
    position: absolute;
    background-color: white;
    color: black;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
    z-index: 1;
    right: 0;
    top: 50px;
}

.top-bar .user-menu:hover .dropdown-content {
    display: block;
}

.top-bar .user-menu .dropdown-content a {
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
}

.top-bar .user-menu .dropdown-content a:hover {
    background-color: #f1f1f1;
}

.content {
    padding: 20px;
}


/*##################### LOADER #######################*/
.loader-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: white;
    z-index: 1000;
}

.loader {
    width: 60px;
    height: 30px;
    --c: no-repeat radial-gradient(farthest-side, #1f1f7a 93%, #0000);
    background:
        var(--c) 0 0,
        var(--c) 50% 0;
    background-size: 12px 12px;
    position: relative;
    clip-path: inset(-200% -100% 0 0);
    animation: l6-0 1.5s linear infinite;
}

.loader:before {
    content: "";
    position: absolute;
    width: 12px;
    height: 18px;
    background: #1f1f7a;
    left: -24px;
    top: 0;
    animation:
        l6-1 1.5s linear infinite,
        l6-2 0.5s cubic-bezier(0, 400, .8, 400) infinite;
}

.loader:after {
    content: "";
    position: absolute;
    inset: 0 0 auto auto;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #1f1f7a;
    animation: l6-3 1.5s linear infinite;
}

@keyframes l6-0 {

    0%,
    30% {
        background-position: 0 0, 50% 0;
    }

    33% {
        background-position: 0 100%, 50% 0;
    }

    41%,
    63% {
        background-position: 0 0, 50% 0;
    }

    66% {
        background-position: 0 0, 50% 100%;
    }

    74%,
    100% {
        background-position: 0 0, 50% 0;
    }
}

@keyframes l6-1 {
    90% {
        transform: translateY(0);
    }

    95% {
        transform: translateY(30px);
    }

    100% {
        transform: translateY(30px);
        left: calc(100% - 12px);
    }
}

@keyframes l6-2 {
    100% {
        top: -0.1px;
    }
}

@keyframes l6-3 {
    0%,
    80%,
    100% {
        transform: translate(0);
    }

    90% {
        transform: translate(45px);
    }
}

/*##################### END LOADER #######################*/

.page-title .title_center {
    width: 100%;
    float: left;
    display: block; 
    text-align: center;
}
  
  .page-title .title_center h3 {
    margin: 9px 0; }

/*#########Spinner individual###################*/

.dv-spinner-load p{
    text-align: center;
    font-weight: bold;
    font-family: 'Lato', 'Lucida Grande', 'Lucida Sans Unicode', Tahoma, Sans-Serif;
    margin-top: 10px;

  }
  
  .spinner-load {
    border: 5px solid rgba(0, 0, 0, 0.3);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border-left-color: #7d47ff;
    margin: 0 auto;
    margin-top: 20px;
    animation: spin 1s ease infinite;
  }

.LoaderModal p{
    text-align: center;
    font-weight: bold;
    font-family: 'Lato', 'Lucida Grande', 'Lucida Sans Unicode', Tahoma, Sans-Serif;
    margin-top: 10px;

  }
  
  .spinnerModal {
    border: 5px solid rgba(0, 0, 0, 0.3);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border-left-color: #7d47ff;
    margin: 0 auto;
    margin-top: 20px;
    animation: spin 1s ease infinite;
  }
  
  @keyframes spin {
    0% {
      transform: rotate(0deg);
    }
  
    100% {
      transform: rotate(360deg);
    }
  }

.message-validation {
    color: rgba(220, 53, 69, .9);
    margin-left: 3px;
}

.ob-field{
    font-weight: bold;
    color: rgba(214, 10, 30, 0.9);
    padding: 2px;
    margin-bottom: 0;
}

.form-control {
    border-radius: 5px !important;
}

.field-invalid:focus-visible {
    border: 3px solid rgba(255, 2, 2, 0.4) !important;
    outline: none;
    padding: 5px; 
}


.table td {
    vertical-align: middle !important;
}

.select2-container--default .select2-selection--single .select2-selection__clear{
    height: 20px;
    margin-right: 20px;
    margin-top: 5px;
}

.select2-container{
    width: 100% !important;
    min-width: 0;
}

.input-group .select2 {
    flex: 1 !important; 
}

.input-group .btn-select2 {
    margin: 0 !important; 
}

.input-group .select2 .selection .select2-selection--single,
.input-group .select2 .selection .text-select2 {
    border-top-right-radius: 0px !important; 
    border-bottom-right-radius: 0px !important; 
    flex: 0 0 auto !important; 
}

.form-switch{
    min-height: 30px;
}

.sw-t2{
    width: 3em !important;
    height: 2em !important;
}

.btn-target-menu{
    padding-left: 4px;
    padding-right: 4px;
    margin-right: 0px;
}

label[for="dt-length-0"] {
    margin-left: 5px;
}

.dropdown-toggle-split{
    height: 32px;
    padding-top: 4px;
}

.sw-md {
    width: 2.5em !important;
    height: 1.5em;
}
 
th, td {
    white-space: nowrap;
}

table.dataTable.compact thead td, 
table.dataTable.compact tfoot th, 
table.dataTable.compact tfoot td,
table.dataTable.compact tbody th, 
table.dataTable.compact tbody td{
    padding-top: 0px;
    padding-right: 20px;
}
 /* ==========================================================
   Bloque: Ajustando Estilos del icono de cambio de foto
   ========================================================== */
.profile-container {
    position: relative;
    display: inline-block;
}
.profile-image-container {
    width: 200px;
    height: 200px;
    position: relative;
    border-radius: 50%;
    overflow: hidden;
}
#my_image_profile {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: 0.3s ease-in-out;
    padding: 5px;
    background: #ffeaea;
    border-radius: 50%;
}
.overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}
.camera-icon {
    font-size: 2rem;
    color: white;
    cursor: pointer;
}
.profile-image-container:hover .overlay {
    opacity: 1;
}
.profile-image-container:hover .profile-image {
    filter: brightness(0.7);
}
/* ==========================================================
  Fin Bloque: Ajustando Estilos del icono de cambio de foto
  ========================================================== */

.card-equal-height {
    min-height: 520px;
    max-height: 520px;
    display: flex;
    flex-direction: column;
  }
  
  .card-body {
    flex-grow: 1;
  }

  /* ==========================================================
   Bloque: Ajustando Estilos del Canvas del Perfil
   ========================================================== */
  .card-body {
    display: flex;
    flex-direction: column;
    height: 100%;
  }
  
  .canvas-container {
    width: 100%;
    height: 100%;
    max-height: 100%;
    position: relative;
  }
  
  canvas {
    width: 100% !important; 
    height: 100% !important;
    display: block;
  }
  
  #myReport{
    height: 400px !important;
  }

/* ==========================================================
   Fin Bloque: Ajustando Estilos del Canvas del Perfil
   ========================================================== */


/* ==========================================================
   Bloque: Ajustando espacio para que el footer no tape el body
   ========================================================== */
  .add-space-footer{
    margin-bottom: 30px;
  }
/* ==========================================================
   Fin Bloque: Ajustando espacio para que el footer no tape el body
   ========================================================== */

/* ==========================================================
   Bloque: Ajustando apariencia de input group password
   ========================================================== */
  /*.input-group.password{
    border: 1px solid #ebd3d3;
    border-radius: 5px;
    height: 38px;
    margin-bottom: 0px;
  }*/
  .input-group.password input{
    border: none;
    padding-top: 0;
    position: unset;
  }
  .input-group.password {
    border: 1px solid #ebd3d3; 
    border-radius: 5px;
    height: 38px;
    margin-bottom: 0px;
    display: flex;
    align-items: center;
}

.input-group.password input.form-control {
    height: 100%;
    border: none;
    border-radius: 0;
    padding: 0 0.75rem;
    box-sizing: border-box;
}

.input-group.password .input-group-btn {
    display: flex;
    align-items: center;
    height: 100%;
    border-left: 1px solid #ebd3d3;
    border-radius: 0 5px 5px 0;
}

.input-group.password .input-group-btn button {
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: none;
    background: none;
    text-decoration: none;
}

.input-group.password input::placeholder {
    color: #888;
    font: sans-serif;
    font-size: 14px;
}

.btn-sm {
    height: 33px;
}
  /* ==========================================================
   Fin Bloque: Ajustando apariencia de input group password
   ========================================================== */
.m-v-p div{
    position: absolute;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    top: auto;
    border-right: none;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__display {
    padding-left: 15px;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice, .select2-container--default .select2-selection--multiple .select2-selection__clear{
    margin-top: 5px !important;
    border-radius: 5px !important;
}

.dv-buttons-actions {
    margin-top: 15px;
}

.bs-glyphicons a {
    float: left;
    width: 25%;
    height: 115px;
    padding: 10px;
    font-size: 10px;
    line-height: 1.4;
    text-align: center;
    background-color: #f9f9f9;
    border: 1px solid #fff; 
    transition: all 0.3s ease;
}

.bs-glyphicons a:hover {
    color: #fff;
    background-color: rgb(40, 56, 151); 
    cursor: pointer;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    transform: translateY(-5px); 
  }

.history_graph{
    height: 350px;    
}

.filters button{
    margin-top: 5px;
    margin-right: 0px;
}

/******************************
*   Estilos para input file   *
*******************************/
.container-input {
    text-align: center;
    background: #f3ecec;
    border-top: 5px solid #e3ddd6;
    padding: 50px 0;
    border-radius: 6px;
    /* width: 50%; */
    margin: 0 auto;
    margin-bottom: 20px;
}

.inputfile {
    width: 0.1px;
    height: 0.1px;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    z-index: -1;
}

.inputfile + label {
    max-width: 80%;
    font-size: 1.25rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
    display: inline-block;
    overflow: hidden;
    padding: 0.625rem 1.25rem;
}

/* .inputfile + label svg {
    width: 1em;
    height: 1em;
    vertical-align: middle;
    fill: currentColor;
    margin-top: -0.25em;
    margin-right: 0.25em;
} */

.placeholdeInputFile {
	font-size:16px; 
	font-weight:normal;
	font-family: 'Lato';
}

.bulk-upload + label {
    color: #c39f77;
    border: 2px solid currentColor;
}

.bulk-upload:focus + label,
.bulk-upload.has-focus + label,
.bulk-upload + label:hover {
    color: #9f8465;
}

#btnDownloadTemplate {
    font-size: small;
    text-decoration: none;
}

.btn-download-template {
    font-size: small;
    text-decoration: none;
}

#details_error_validations td, 
#details_error_validations th {
    word-wrap: break-word; 
    word-break: break-word;
    white-space: normal;
    text-align: center;
}

#details_error_validations th:first-child, 
#details_error_validations td:first-child {
    width: 20%; 
}

.file-group {
    display: flex;
    margin: 0;
    height: 32px;
}

.file-group button{
    display: flex;
    border-radius: 0px 4px 4px 0px;
    margin: 0px;
    align-items: center;
    border: var(--bs-border-width) solid #dee2e6 !important;
}

.file-group input{
    border-radius: 4px 0px 0px 4px !important;
}

#monthYearPicker{
    text-align: center;
}

.disabled-element {
    pointer-events: none; 
    opacity: 0.5;
}

.transparent_loading{
    background-color: rgba(255, 255, 255, 0.5);
}

.dropdown-toggle{
    height: 33px;
    font-size: 0.8rem !important;
}

.dropdown-item:active {
    background-color: #cdd0d3;
}

.resize-modal{
    width: 500px;
    display: table;
}

.dvDownloadFile{
    height: 30px;
    padding-top: 5px;
}

.dvDownloadFile a{
    cursor: pointer;
}

#dvListObservations li{
    padding: 5px;
}

#dvDetailsModal td{
    padding-top: 0px !important;
    padding-bottom: 0px !important;
}

#dvDetailsModal .btn-view{
    margin-bottom: 0px !important;
}

#btnMultiDownload{
    width: auto;
}

#btnMultiDownload p{
    margin-bottom: 0px;
}

#dvMultiDownload input[type="radio"]:checked + label {
    background-color: #198754;
    color: white;
    border-color: #198754;
}
