/*--------------------------------------------------------------
# Hoja de estilos comunes
--------------------------------------------------------------*/

html {
      font-size: var(--bs-body-font-size);/*Usamos como medida base para rem*/
      font-weight: normal;
}

body {
  color: var(--bs-body-color);
  background:var(--bs-body-bg); 
  overflow: auto;
}

body.mobile-nav-active{
  overflow: hidden;
}

a {
  color: var(--bs-link-color);
  text-decoration: none;
}

a:hover {
  color: var(--bs-link-hover-color);
  text-decoration: none;
}

:focus {
  /*outline: 2px solid var(--bs-primary);
  outline-offset: 2px;*/
  box-shadow: none !important;
}

/*--------------------------------------------------------------
# Global Sections
--------------------------------------------------------------*/
section,
.section {
  padding: 60px 0;
  scroll-margin-top: 90px;
 }

.section-bg, .light-background {
  background:  var(--light-background);
}


@media (max-width: 1199px) {

  section,
  .section {
    scroll-margin-top: 66px;
  }
}

.section-title {
  text-align: center;
  padding-bottom: 30px;
position: relative;
}

.section-title h2 ,.section-title h1{
   font-size: 2.2rem;
  font-weight: bold;
  margin-bottom: 20px;
  padding-bottom: 20px;
  position: relative;
   text-align: center;
}

/*
.section-title h2:after ,.section-title h1:after{
  content: "";
  position: absolute;
  display: block;
  width: 50px;
  height: 3px;
  background: var(--bs-primary);
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}*/

.section-title p {
  margin-bottom: 0;
   text-align: center;
   font-size: 1.2rem;
     line-height: 1.5;

}
 



/*--------------------------------------------------------------
# Scroll Top Button
--------------------------------------------------------------*/
.scroll-top {
  position: fixed;
  visibility: hidden;
  opacity: 0;
  right: 15px;
  bottom: -15px;
  z-index: 99999;
  background-color: var(--bs-primary);
  width: 44px;
  height: 44px;
  border-radius: 50px;
  transition: all 0.4s;
}

.scroll-top i {
  font-size: 1rem;
  color: #fff;
  line-height: 0;
}

.scroll-top:hover {
  background-color: var(--bs-primary-hover);
  color: #fff;
}

.scroll-top.active {
  visibility: visible;
  opacity: 1;
  bottom: 15px;
}

/*--------------------------------------------------------------
# Disable aos animation delay on mobile devices
--------------------------------------------------------------*/
@media screen and (max-width: 768px) {
  [data-aos-delay] {
    transition-delay: 0 !important;
  }
}



/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
 .header { 
    background: var(--bs-white); 
}
:root[data-gf-theme="dark"] .header  {
     background:var(--bs-gray-300);
      border-bottom: 1px solid var(--bs-gray-500);

}


.header {
  padding: 20px 0;
  transition: all 0.5s;
  z-index: 997;
  height: auto;
  box-shadow: none;
}


.header .header-container {
  background: #fff;
  border-radius: 50px;
  padding: 5px 25px;
  box-shadow:var(--bs-navbar-shadow);
}

.scrolled .header .header-container {
  background: rgba(255, 255, 255, .95);
}

.header .logo {
  line-height: 1;
  padding-left: 5px;
}

.header .logo img {
  max-height: 26px;
  margin-right: 8px;
}


.logo span {
  font-size: 20px;
  font-weight: 900;
}

.logo span { 
    color: var(--bs-dark-text);
}
:root[data-gf-theme="dark"] .logo span  {
     color: var(--bs-body-color)
}

.header .btn-getstarted,
.header .btn-getstarted:focus {
  color: #fff;
  background: var(--bs-primary);
  font-size: 14px;
  padding: 8px 20px;
  margin: 0 0 0 30px;
  border-radius: 50px;
  transition: 0.3s;
}

.header .btn-getstarted:hover,
.header .btn-getstarted:focus {
   color: #fff;
   background: color-mix(in srgb, var(--bs-primary-hover), transparent 15%);
}


 @media (max-width: 1200px) {
  .header {
    padding-top: 10px;
  }

  .header .header-container {
    margin-left: 10px;
    margin-right: 10px;
    padding: 10px 5px 10px 15px;
  }

  .header .logo {
    order: 1;
  }

  .header .btn-getstarted {
    order: 2;
    margin: 0 10px 0 0;
    padding: 6px 15px;
  }

  .header .navbar {
    order: 3;
  }
}

 




/*--------------------------------------------------------------
# Navigation Menu
--------------------------------------------------------------*/
 /*comun*/ 
 .navbar .navbar-nav .nav-item { 
  flex: 0 0 auto;
}

.navbar {
  --nav-link-color: var(--bs-dark-text);
  --nav-link-active-color: var(--bs-primary-text);
}

:root[data-gf-theme="dark"] .navbar  {
    --nav-link-color: var(--bs-body-color);
    --nav-link-active-color: var(--bs-link-color);


}
 .navbar .nav-item .nav-link {
    color: var(--nav-link-color);
    padding: 18px 15px;
    font-size: .8rem;
    /*display: flex;
    align-items: center;
    justify-content: space-between;*/
    white-space: nowrap;
    font-weight: 500;
    transition: 0.3s;
  }




  .navbar .nav-item:hover .nav-link,
  .navbar .nav-item .nav-link:focus,
  .navbar .nav-item .nav-link.current,
  .navbar .nav-item .nav-link.show {
    color: var(--nav-link-active-color);
  }




.dropdown-menu {
 --bg: var(--bs-body-bg);
  --color: var(--bs-body-color);
}

:root[data-gf-theme="dark"] .dropdown-menu  {
    --bg: var(--bs-gray-300);
    --color: var(--bs-body-color);
}


  .navbar .dropdown ul.dropdown-menu {
    padding: 10px 0;
    background: var(--bg);
    color: var(--color);
    transition: 0.3s;
    border-radius: 4px;
    z-index: 999;
    box-shadow: var(--bs-navbar-shadow);
    min-width: 200px;
    border: none;
  }

  .navbar .dropdown ul.dropdown-menu.show {
   position: absolute;
   transition: 0.3s;
  }


  .dropdown-item {
  --color: var(--bs-body-color);
  --colorh: var(--bs-primary-text);
}

:root[data-gf-theme="dark"] .dropdown-item  {
    --color: var(--bs-body-color);
    --colorh: var(--bs-link-color);
}
 
  .navbar .dropdown ul.dropdown-menu .dropdown-item {
    padding: 10px 20px;
    text-transform: none;
    color: var(--color);
    font-size: .8rem;
  }

  .navbar .dropdown ul.dropdown-menu .li-dd:hover .dropdown-item ,
  .navbar .dropdown ul.dropdown-menu  .dropdown-item:focus ,
  .navbar .dropdown ul.dropdown-menu  .dropdown-item.current ,
  .navbar .dropdown ul.dropdown-menu  .dropdown-item.active ,
  .navbar .dropdown ul.dropdown-menu  .dropdown-item.show {
    color: var(--colorh);
    background-color: transparent;
  }

  .navbar .nav-item.dropdown { position: relative; }
.navbar .nav-item.dropdown .dropdown-menu {
  left: auto;
  right: 0;
}

/* navbar - Desktop */
@media (min-width: 1200px) {

 .navbar {padding: 0;z-index: 9997;}

  .navbar ul.navbar-nav {
    margin: 0;
    padding: 0;
    display: flex;
    list-style: none;
    align-items: center;
    flex-direction: row;
  }

  .navbar ul.navbar-nav li {
    position: relative;
  }

  
  .navbar li:last-child a {
   /* padding-right: 0;*/
  }

  
    
}

/* navbar - Mobile */
@media (max-width: 1199px) {
  .mobile-nav-toggle {
    color: var(--bs-dark-text);
    font-size: 1.5rem;
    line-height: 0;
    margin-right: 10px;
    cursor: pointer;
    transition: color 0.3s;
  }



  .navbar ul.navbar-nav {
    display: none;
    list-style: none;
    position: absolute;
    inset: 60px 20px 20px 20px;
    padding: 10px;
    margin: 0;
    border-radius: 6px;
    background-color: #fff;
    overflow-y: auto;
    transition: 0.3s;
    z-index: 9998;
    box-shadow: var(--bs-navbar-shadow);
  }

  
     .navbar .nav-item .nav-link {
    padding: 10px ;
    font-size: 1.1rem;
 
  }
   
 .navbar .dropdown ul.dropdown-menu {
    box-shadow: none;
    padding: 0;
    margin-left: 10px;
    border-left: 1px solid var(--bs-gray-300);
    border-radius: 0;
    transition: 0.3s;
  }
 
  .mobile-nav-active {
    overflow: hidden;
     /* Evita que el body “salte” en iOS */
  }

  .mobile-nav-active .mobile-nav-toggle {
    color: #fff;
    position: absolute;
    top: 15px;
    right: 15px;
    margin-right: 0;
    z-index: 9999;
    margin-top: 15px;
  }

  .mobile-nav-active .navbar {
    position: fixed;
    overflow: hidden;
    inset: 0;
    background: rgba(33, 37, 41, 0.8);
    transition: 0.3s;
  }

  .mobile-nav-active .navbar>ul {
    display: block;
  }

 
}

 

/*--------------------------------------------------------------
# Cards
--------------------------------------------------------------*/

/**/
.card { 
    background: var(--bs-white);
    border: 1px solid transparent;
 
}
:root[data-gf-theme="dark"] .card  {
     background:var(--bs-gray-300);
    border: 1px solid var(--bs-gray-500);

}
.card {
   border-radius: 15px;
   box-shadow: var(--bs-box-shadow-card);
   overflow: hidden;
}

.card .card-header {
   background: var(--bs-gradient);
   color: var(--bs-white);
   border-bottom: 0;
}


/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
/**/
footer { padding: 45px 0 0 0; transition: .3s; }

 
.footer-credits{
  font-size: .75rem;
  line-height: 1.5; 
  text-align: center;
  width: 100%;
  padding: 10px 30px!important;

}
.admin .footer-credits,.b .footer-credits,.f .footer-credits,.s .footer-credits{
 width: auto;
  text-align: left;

}

.error footer{ margin: auto!important; }


/*--------------------------------------------------------------
# Botones y elementos de formularios
--------------------------------------------------------------*/ 
 .btn.sizefix, .swal2-modal .btn ,.tpl-error .btn,.tpl-auth .btn {
  min-width: 150px;
  padding: 10px 20px;
}





@media (max-width: 576px) {

 .btn.small-sm {
  min-width: unset;
  padding: 6px 8px;
}
}
@media (max-width: 576px) and (max-width: 992px) {
 .btn.small-sm {
  min-width: 100px;
  padding: 8px 10px;
}
}

 
.btn-primary {
  background-color: var(--bs-primary)!important;;
  border: transparent;
}

.btn-primary:hover{
  background-color: var(--bs-primary-hover)!important;;
  border: transparent!important;
}

.btn-primary.btn.disabled, .btn-primary.btn:disabled, fieldset:disabled .btn{
   /*color: #fff;*/
}


.btn-secondary{
  background-color: var(--bs-btn-bg)!important;
  color: #fff;
  border: none;
    border: none;
  min-width: 150px;
  padding: 10px 20px;
}

.btn-secondary:hover{
  background-color: var(--bs-btn-hover-bg)!important;
  color: fff;
  border: none!important;
}

.btn-danger{
  background-color: var(--bs-danger)!important;
  color: #fff;
  border: none;
    border: none;
  min-width: 150px;
  padding: 10px 20px;
}

.btn-danger:hover{
  background-color: var(--bs-danger-hover)!important;
  color: fff;
  border: none!important;
}

.btn-primary:focus,.btn-primary:focus-visible,.btn-secondary:focus,.btn-secondary:focus-visible,.btn-danger:focus,.btn-danger:focus-visible{
  box-shadow: none!important;
  border: none!important;
}

.btn-outline-secondary{
    border-color: var(--bs-gray-500);
    color: var(--bs-body-color);
}
:root[data-gf-theme="dark"] .btn-outline-secondary {
    border-color: var(--bs-gray-600);
}
.btn-outline-secondary:hover{
    color: var(--bs-body-color);
    border-color: var(--bs-gray-500);
    background: var(--bs-gray-100);
}
:root[data-gf-theme="dark"].btn-outline-secondary:hover{
    border-color: var(--bs-gray-400);
}

 /*
 
 .btn-tercero{
  background-color: var(--bs-red)!important;
  color: #fff;
  border: none;
  min-width: 150px;
  padding: 10px 20px;
}
.btn-tercero:hover{
    background-color: var(--bs-red)!important;
    color: #fff;
    border: none!important;
}
.btn-tercero:focus,.btn-primary:focus-visible{
   box-shadow: none!important;
 border: none!important;
}
 

*/

/*formularios*/
form label, .form-label{
font-weight: 600!important;
color: var(--bs-gray-600);
}

.form-check-input {
  width: 1.25rem;
  height: 1.25rem;
  margin-top: 0;
  margin-right: 10px;

}

:root[data-gf-theme="dark"] .form-check-input[role="switch"] {
     background-color: var(--bs-gray-100); /* gris apagado */
  border-color: var(--bs-border-color);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.55%29'/%3e%3c/svg%3e");
}
:root[data-gf-theme="dark"] .form-check-input[role="switch"]:checked {
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 1%29'/%3e%3c/svg%3e");
}

.form-check-input:checked {
 background-color: var(--bs-primary)!important;;
  border-color: var(--bs-primary)!important;;
}
.form-check-input:focus {
  border-color: var(--bs-primary);
  outline: 0;
  box-shadow: 0 0 0 .25rem rgba(13,110,253,.0);
}
 

 input::placeholder { color: var(--bs-light-text)!important; }
 input:-ms-input-placeholder { color: var(--bs-light-text)!important; } /* IE 10+ */
 input::-webkit-input-placeholder { color: var(--bs-light-text)!important; } /* WebKit */
 input::-moz-placeholder { color: var(--bs-light-text)!important; } /* Firefox 19+ */

.form-control,.form-select,.form-check-input {
background-color: var(--bs-gray-100);
font-size: .85rem!important;
}
 .form-control:focus,.form-select:focus,.form-check-input:focus {
background-color: color-mix(in oklab, var(--bs-gray-100), white 40%);;
}

:root[data-gf-theme="dark"] .form-control:focus,:root[data-gf-theme="dark"] .form-select:focus,:root[data-gf-theme="dark"] .form-check-input:focus {
background-color: var(--bs-body-bg);
}
 


.form-control.noValidate{
border-color: var(--bs-border-color)!important;
background-image:url()!important;
}

.form-control.noValidate:focus{
  border-color: var(--bs-primary)!important;
}



.form-select.noValidate {
border-color: var(--bs-border-color)!important;
background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")!important;
}

:root[data-gf-theme="dark"] .form-select.noValidate {
background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")!important;
}

.form-select.noValidate:focus {
  border-color: var(--bs-primary)!important;
  box-shadow: none!important;
}



 .form-check-input.is-valid.noValidate, .was-validated .form-check-input.noValidate:valid {
  border-color: var(--bs-border-color)!important;
} 
 
 .form-check-input.is-valid.noValidate:checked, .was-validated .form-check-input.noValidate:valid:checked {
  border-color: var(--bs-border-color)!important;
 background-color: var(--bs-primary)!important;
}
 
.form-check-input.is-valid.noValidate ~ .form-check-label, .was-validated .form-check-input.noValidate:valid ~ .form-check-label {
  color: var(--bs-light-text)!important;
}


.form-check-input.noValidate:focus{
  border-color: var(--bs-primary)!important;
}





.form-control:focus,.form-select:focus ,.form-check-input:focus {
  border-color: var(--bs-primary);
  outline: 0;
  box-shadow: 0 0 0 .25rem rgba(13,110,253,.0)!important;
}
.form-control:invalid fill{
  color: blue;
  background: blue;
}

/*cuando la validación es invalid*/
.form-control.is-invalid:not(.noValidate), .was-validated .form-control:invalid:not(.noValidate) {
  border-color: var(--bs-danger);
  padding-right: calc(1.5em + .75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23FF0055'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23FF0055' stroke='none'/%3e%3c/svg%3e");
}

.form-control.is-invalid:focus, .was-validated .form-control:invalid:focus{
  border-color: var(--bs-danger);
}

/* cuando la validacion es valid */
.form-control.is-invalid, .was-validated  .form-control:valid{
  border-color: var(--bs-success);
  padding-right: calc(1.5em + .75rem);

  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2315BE53' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
}

.resize-none       { resize: none !important; }
.resize-vertical   { resize: vertical !important; }
.resize-horizontal { resize: horizontal !important; }
.resize-both       { resize: both !important; }





/*--------------------------------------------------------------
# Modals
--------------------------------------------------------------*/
 .modal, .swal2-popup{
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
 }


 .modal .btn-modal{
  min-width: fit-content;
  justify-self: end;
  padding: 8px 12px ;
}
.modal p {
font-size:  1.2rem;
line-height: 1.5;
}
.modal .lead {
font-weight: bold;
  text-align: left;
  font-size: 1.5rem;
  padding-bottom: 0px;
  line-height: 1.5;
}

 
.modal-title{font-weight: bold;}

.pre {
  display: block;
  margin-top: 0;
  margin-bottom: 1rem;
  overflow: auto;
  font-size: .875em;
  padding: 40px;
  color: red;
}

/*--------------------------------------------------------------
# Toast
--------------------------------------------------------------*/
.toast-container {
  position: fixed;
  bottom: 5px;
  right: 0;
  margin-right: 15px;
  margin-left: 15px;
  z-index: 9999;
  width: max-content;
  max-width: 100%;
  pointer-events: none;
}

.toast-container .alert{
  max-width: 350px;
  word-wrap: anywhere;
}
.toast-container .alert button{
 margin-top: 0 !important;
}

.toast {
  
  margin-bottom:10px;
}
.toast-body{
  word-wrap: anywhere;
}

#toastBox{
  position: fixed;
  right: 0px;
  bottom: 0px;
  display: flex;
  align-items: flex-end;
  flex-direction: column;
  overflow: hidden;
  padding: 30px;
  z-index: 999;
}

.gtoast{
    --bg: color-mix(in srgb, var(--bs-white) 85%, transparent);
}


:root[data-gf-theme="dark"] .gtoast {
    --bg: color-mix(in srgb, var(--bs-gray-300) 85%, transparent);
}

.gtoast{
  max-width: 350px;
  min-width: 250px;
  background-color:  var(--bg);
  margin: 5px 0;
  box-shadow: var(--bs-box-shadow-card);
  border-radius: 5px;
  display: flex;
  align-items: center;
  position: relative;
  transform: translateX(25%);
  padding: 10px;  
  transition: .3s;
  opacity: 0;
  animation: moveleft 0.3s linear forwards;
  word-wrap: anywhere;

}

@keyframes moveleft{
  100%{
   transform: translateX(0%);
    opacity: 1;
  }
}
.gtoast .gtoast-body {
 display: flex;
 align-items: center;
}

.gtoast i {
  margin-right: 10px;
  font-size: 25px;
  display: block;
}
.gtoast p {
margin: 0;
line-height: 1.5;
}
.gtoast.alert-error i {
color: var(--bs-danger);
}
.gtoast.alert-warning i {
color: var(--bs-warning);
}
.gtoast.alert-success i {
color: var(--bs-success);
}
.gtoast::after {
content: '';
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 5px;
animation: anim 5s linear forwards;
}

@keyframes anim{
  100%{
    width: 0;

  }
}

.gtoast.alert-error::after {
background: var(--bs-danger);
}
.gtoast.alert-warning::after {
background: var(--bs-warning);
}
.gtoast.alert-success::after {
background: var(--bs-success);
}




.tips{
  background: var(--bs-gray);
  color: #fff;
  padding: 3px;
  border-radius: 100px;
  cursor: pointer;
  font-size: .75rem;
  margin-left: 5px;
}


/* solucion del feedback erro de bs */


.was-validated .input-group:has(input:invalid) ~ div.invalid-feedback {
  display: block;
}  
.was-validated .iti:has(input:invalid) ~ div.invalid-feedback {
  display: block;
}
 
.table > :not(caption) > * > * {
  background-color: transparent;
}







/*alertas*/
.alert {
    display: flex;
    align-items: center;
    margin: 10px 0;
    padding: 10px;
    font-size: .9rem;
    border-radius: 5px;
    color: var(--bs-body-color);
}
 
.alert i {
    font-size: 1.2rem;
    padding: 5px;
    border-radius: 100px;
    color: #fff;
    margin-right: 5px;
    background: var(--bs-bg);
    
}

 .alert p {
  margin: 0;
}

.alert-info {
    background: var(--bs-info-bg-subtle);
    border-color: var(--bs-info-border-subtle);

 }
.alert-info i{
    background: var(--bs-info);
 }
 .alert-warning i{
    background: var(--bs-warning);
 }



 /*paginacion*/

/* Tokens del paginador (light por defecto) */
#pagination {
  --pg-link-bg: var(--bs-white);
  --pg-link-color: var(--bs-primary);
  --pg-link-border: var(--bs-gray-300);

  --pg-link-bg-hover: var(--bs-primary-bg-subtle);
  --pg-link-color-hover: var(--bs-primary);
  --pg-link-border-hover: var(--bs-primary-bg-subtle);

  --pg-link-bg-active: var(--bs-primary);
  --pg-link-color-active: var(--bs-white);
  --pg-link-border-active: var(--bs-primary);

  --pg-link-bg-disabled: var(--bs-gray-200);
  --pg-link-color-disabled: var(--bs-gray-600);
  --pg-link-border-disabled: var(--bs-gray-300);
}

/* Overrides para dark (si necesitas afinar) */
:root[data-gf-theme="dark"] #pagination {
  --pg-link-bg: transparent;
  /* el resto puede quedar igual porque tus --bs-* ya cambian por tema */
}

/* Base */
#pagination .page-link {
  background-color: var(--pg-link-bg);
  color: var(--pg-link-color);
  border: 1px solid var(--pg-link-border);
}

/* Hover / Focus (no-Activos) */
#pagination .page-item:not(.active) .page-link:hover ,
#pagination .page-item:not(.active) .page-link:focus {
  background-color: var(--pg-link-bg-hover);
  color: var(--pg-link-color-hover);
  border-color: var(--pg-link-border-hover);
  outline: none;
}


/* Activo */
#pagination .active > .page-link,
#pagination .page-link.active {
  background-color: var(--pg-link-bg-active);
  color: var(--pg-link-color-active);
  border-color: var(--pg-link-border-active);
}

/* Disabled */
#pagination .disabled > .page-link,
#pagination .page-link.disabled {
  background-color: var(--pg-link-bg-disabled);
  color: var(--pg-link-color-disabled);
  border-color: var(--pg-link-border-disabled);
  pointer-events: none;
}


 


 .text-justify{text-align: justify;}
 
 
/* Estilos para GF Table */
th.sortable { 
  cursor: pointer; 
  user-select: none; 
  position: relative; 
  transition: background-color 0.2s ease;
}
th.sortable:after { 
  content: " ⇅"; 
  font-size: 0.8em; 
  color: var(--bs-gray-500); 
 padding-left: 5px; 
  padding-right: 10px;
  transition: all 0.2s ease;
}
th.sorted-asc:after { content: " ↑"; color: #0d6efd; }
th.sorted-desc:after { content: " ↓"; color: #0d6efd; }
th.sorted-asc, th.sorted-desc { background-color: #e9ecef; }
th.sortable:focus { outline: 2px solid #0d6efd; outline-offset: -2px; }

/* Estado de ordenación */
.gf-table-sorting {
  opacity: 0.7;
  pointer-events: none;
}