* {
    box-sizing: border-box;
    padding: 0%;
    margin: 0%;
}

body, html, .modules .content_body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

main, .modules .content_body main {
    flex: 1;
}

html {
    font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
}

.main_content {
    padding: 1rem;
}

.main_content h2 {
    text-align: center;
}

:root {
    --back_nav_color: #ffff;
    --hovers_buttons_color: #2563EB;
    --back_footer: rgb(37 41 146);
    --border_btn_blue: rgb(21, 71, 179);
    --font: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
    --background_btn_black: rgb(63, 62, 62);
    --border_btn_black: black;
    --background_btn_green: #28A745;
    --background_btn_success_disabled: #28a74698;
    --border_btn_green: #1E7A38;
    --border_input: #8f8f8f;
    --background_gray: #535353;
    --btn_back-danger: #dc3545;
    --btn_back_danger_hover: #a5202d;
    --background_btn_monitoring: #52884b;
    --border_btn_monitoring: #235b21;
    --success: rgb(108, 189, 108);

    --orange: #17A2B8;
    --orange_hover: #117A8B;
    --red: rgb(234, 94, 94);
    --red_hover: rgb(226, 36, 36);

    --btn_cancel: #fa5252;
    --btn_success: #37b24d;
    --color2_card: rgb(21, 71, 179);
    --color_lines: rgb(255, 231, 231);

    --btn_excel: green;
    --btn_excel_hover: rgb(0, 101, 0);

    --warning: rgb(175, 175, 31);
    --btn_warning: #ffc107;

    --module_surveillance: #0890d9;
    --module_surveillance_hover: #066ba1; 

    --module_public: #F7B538;
    --module_public_hover: #da9516;
}

.showPassKey {
    max-height: 20px;
    max-width: 20px;
    min-width: 20px;
    min-height: 20px;
}

.line {
    border: 1px solid var(--border_btn_blue);
    width: 100%;
}

.scroll1 {
    scrollbar-width: thin;          /* Hace el scroll más delgado */
    scrollbar-color: #ccc #f1f1f1;
}

.warning-icon {
    min-width: 30px !important;
    min-height: 30px !important;
    max-width: 50px !important;
    max-height: 50px !important;
}

.modal-content .table>:not(caption)>*>* {
    max-width: 100px;
    overflow-x: scroll;
}

form .two_inputs .small_input {
    flex: initial !important;
    width: 50px;
}

form .two_inputs .medium_input {
    flex: initial !important;
    width: 20%;
    min-width: 132px;
}

button { 
    cursor: pointer !important;
}

select { 
    cursor: pointer !important;
}

.label_warning {
    color: var(--warning) !important;
}

.label_color {
    color: var(--back_footer);
}

.hidden {
    visibility: hidden;
}

.remove {
    display: none !important;
}

.sin_format {
    text-decoration: none;
    color: #fff;
}

.sin_format.summary_card_link {
    color: #000;
    display: flex;
    flex: 1;
    flex-basis: 200px;
}

.error_input {
    border: 1px solid red !important;
    box-shadow: 0 0 5px red !important;
}

.error_label {
    color: red !important;
}

.tach_label {
    text-decoration: line-through !important;
}

.success_label {
    color: rgb(108, 189, 108) !important;
}

.success_input {
    border: 1px solid rgb(108, 189, 108) !important;
    box-shadow: 0 0 5px rgb(108, 189, 108) !important;
}

.warning_input {
    border: 1px solid rgb(228, 165, 31) !important;
    box-shadow: 0 0 5px rgb(228, 165, 31) !important;
}

.warning_label {
    color: #e4a51f !important;
}

.medium_label {
    color: var(--warning);
}

/*  */

.error_background {
    background-color: var(--red) !important;
}

.content_text {
    text-wrap: nowrap;
}

.borderTop-none {
    border-top: none !important;
}

.submenu {
    cursor: pointer;
}

.show_btn {
    display: none !important;
}

.loader {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    position: relative;
    animation: rotate 1s linear infinite
  }

.loader::before {
    content: "";
    box-sizing: border-box;
    position: absolute;
    inset: 0px;
    border-radius: 50%;
    border: 3px solid #FFF;
    animation: prixClipFix 2s linear infinite ;
}

.loader2 {
    display: flex;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    position: absolute;
    right: 50%;
    bottom: 324px;
    animation: rotate 1s linear infinite;
    z-index: 3;
}

.loader2::before {
    content: "";
    box-sizing: border-box;
    position: absolute;
    inset: 0px;
    border-radius: 50%;
    border: 3px solid #0890d9;
    animation: prixClipFix 2s linear infinite ;
}

.btn_shadow {
    display: none !important;
}

.btn_excel,
.content_btn .btn_excel {
    background-color: var(--btn_excel);
    transition: all 0.2s;
}

.btn_excel:hover,
.content_btn .btn_excel:hover {
    background-color: var(--btn_excel_hover);
}

.btn_excel:active,
.content_btn .btn_excel:active {
    background-color: var(--btn_excel);
}

button:hover {
    cursor: pointer;
}

.scrollTable {
    height: 25em !important;
    overflow-y: scroll !important;
}

.scrollTable::-webkit-scrollbar {
    display: block !important;
    width: 5px !important;
}

.scrollTable::-webkit-scrollbar-thumb {
    background: var(--orange);
    border-radius: 4px;
}

.color_blue {
    color: #0890d9;
    font-weight: bolder;
}

.modal-header {
    justify-content: center !important;
}

main table tbody tr td .btn-light {
    border: #000 solid 1px;
}

.td_center {
    text-align: center;
}

.td_center a {
    text-decoration: none;
}

.navBar .arrow_left img {
    transform: rotate(90deg);
}

.min_input {
    max-width: 50px;
    flex-basis: none;
}

.min_input input {
    padding: 0px !important;
    text-align: center;
}

  @keyframes rotate {
    100%   {transform: rotate(360deg)}
  }

  @keyframes prixClipFix {
      0%   {clip-path:polygon(50% 50%,0 0,0 0,0 0,0 0,0 0)}
      25%  {clip-path:polygon(50% 50%,0 0,100% 0,100% 0,100% 0,100% 0)}
      50%  {clip-path:polygon(50% 50%,0 0,100% 0,100% 100%,100% 100%,100% 100%)}
      75%  {clip-path:polygon(50% 50%,0 0,100% 0,100% 100%,0 100%,0 100%)}
      100% {clip-path:polygon(50% 50%,0 0,100% 0,100% 100%,0 100%,0 0)}
  }

  @media (max-width: 670px) {
    .shadow_col {
        display: none;
    }

    .btn_shadow {
        display: flex !important;
    }

    .show_btn {
        display: flex !important;
    }

    .td_center a button {
        margin-bottom: 10px;
    }
  }
    
.loaderT {
  position: absolute;
  width: 130px;
  height: 100px;
  background-repeat: no-repeat;
  background-image: linear-gradient(#77aece, #3485b4),
  linear-gradient(#eee, #c4c4c4), linear-gradient(#eee, #c4c4c4);
  background-size: 80px 70px, 30px 50px, 30px 30px;
  background-position: 0 0, 80px 20px, 100px 40px;
  top: 40%;
  left: 45%;
  right: 50%;
  z-index: 4;
}

.loaderT:after {
  content: "";
  position: absolute;
  bottom: 10px;
  left: 12px;
  width: 10px;
  height: 10px;
  background: #fff;
  border-radius: 50%;
  box-sizing: content-box;
  border: 10px solid #000;
  box-shadow: 78px 0 0 -10px #fff, 78px 0 #000;
  animation: wheelSk 0.75s ease-in infinite alternate;
}

.loaderT:before {
  content: "";
  position: absolute;
  right: 100%;
  top: 0px;
  height: 70px;
  width: 70px;
  background-image: linear-gradient(#40adbb 45px, transparent 0),
    linear-gradient(#40adbb 45px, transparent 0),
    linear-gradient(#40adbb 45px, transparent 0);
  background-repeat: no-repeat;
  background-size: 30px 4px;
  background-position: 0px 11px, 8px 35px, 0px 60px;
  animation: lineDropping 0.75s linear infinite;
}

/*  */

.loaderTable td {
    height: 50px;
    position: relative !important;/* Necesario para posicionar el gradiente */
    overflow: hidden; /* Oculta el gradiente fuera de la celda */
    /* Configuración del Gradiente "Shimmer" */
    background-image: linear-gradient(
        to right,
        #f3f3f3 0%,   /* Gris claro */
        #e0e0e08e 20%,  /* Borde más oscuro del "brillo" */
        #ffffff 50%,  /* Blanco brillante (el shimmer) */
        #e0e0e08e 80%,
        #f3f3f3 100%
    );
    
    /* Configuración del tamaño y posición del fondo */
    background-size: 200% 100%; /* El gradiente debe ser el doble de ancho que el elemento */
}

/* 2. Aplicación de la Animación */
.loaderTable td {
    animation: tableAnimation 4s infinite linear !important; /* Aplica la animación */
}

/* 3. Definición de la Animación */
@keyframes tableAnimation {
    0% {
        /* Posición inicial: el gradiente está fuera a la izquierda */
        background-position: -200% 0;
    }
    100% {
        /* Posición final: el gradiente se ha movido completamente a la derecha */
        background-position: 200% 0;
    }
}

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0; /* Necesario para corregir el espaciado en algunos navegadores */
}

@keyframes wheelSk {
  0%, 50%, 100% { transform: translatey(0) }
  30%, 90% { transform: translatey(-3px) }
}

@keyframes lineDropping {
  0% {
    background-position: 100px 11px, 115px 35px, 105px 60px;
    opacity: 1;
  }
  50% { background-position: 0px 11px, 20px 35px, 5px 60px }
  60% { background-position: -30px 11px, 0px 35px, -10px 60px }
  75%, 100% {
    background-position: -30px 11px, -30px 35px, -30px 60px;
    opacity: 0;
  }
}

/* HTML: <div class="loader"></div> */
.loaderModal {
  width: calc(100% / cos(45deg));
  height: 14px;
  background: repeating-linear-gradient(-45deg, var(--border_btn_blue) 0 15px,#0000 0 20px) left/200% 100%;
  animation: l3 2s infinite linear;
}

@keyframes l3 {
    100% {background-position:right}
}
