/**
 * Compatibilidad visual y de API entre Bootstrap 3 (marcado existente) y Bootstrap 5.
 * Mantener mientras existan clases/data-attributes heredados en las vistas.
 */
/* Grid BS3 */
.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{position:relative;width:100%;padding-right:calc(var(--bs-gutter-x,.75rem)*.5);padding-left:calc(var(--bs-gutter-x,.75rem)*.5)}
@media (min-width:576px){.col-xs-1{flex:0 0 auto;width:8.333333%}.col-xs-2{flex:0 0 auto;width:16.666667%}.col-xs-3{flex:0 0 auto;width:25%}.col-xs-4{flex:0 0 auto;width:33.333333%}.col-xs-5{flex:0 0 auto;width:41.666667%}.col-xs-6{flex:0 0 auto;width:50%}.col-xs-7{flex:0 0 auto;width:58.333333%}.col-xs-8{flex:0 0 auto;width:66.666667%}.col-xs-9{flex:0 0 auto;width:75%}.col-xs-10{flex:0 0 auto;width:83.333333%}.col-xs-11{flex:0 0 auto;width:91.666667%}.col-xs-12{flex:0 0 auto;width:100%}}
.pull-right,.pull-left{float:right!important}
.pull-left{float:left!important}
.center-block{display:block;margin-left:auto;margin-right:auto}
/* Navbar BS3 */
.navbar-default{background-color:#f8f9fa}
.navbar-fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}
.navbar-header{display:flex;align-items:center}
.navbar-toggle,.navbar-toggler.navbar-toggle{display:none}
@media (max-width:991.98px){
    .navbar-toggle,.navbar-toggler.navbar-toggle{display:block}
    .navbar-collapse.collapse:not(.show){display:none}
    .navbar-collapse.collapse.show{display:block}
}
.icon-bar{display:block;width:22px;height:2px;background:#888;margin:4px 0;border-radius:1px}
/* Paneles → cards */
.panel{margin-bottom:20px;background:#fff;border:1px solid transparent;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.05)}
.panel-default{border-color:#ddd}
.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px;background:#f5f5f5;border-color:#ddd}
.panel-body{padding:15px}
.panel-footer{padding:10px 15px;background:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}
/* Formularios */
.has-error .form-control,.has-error .form-select{border-color:#dc3545}
.has-error .control-label,.has-error label{color:#dc3545}
.control-label{margin-bottom:.5rem}
.input-group-addon,.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;background:#e9ecef;border:1px solid #ced4da}
.input-group>.form-control:not(:last-child),.input-group>.input-group-addon{border-top-right-radius:0;border-bottom-right-radius:0}
.input-group>.input-group-addon:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}
/* Botones */
.btn-default{color:#333;background:#fff;border-color:#ccc}
.btn-default:hover{color:#333;background:#e6e6e6;border-color:#adadad}
.btn-xs{padding:.125rem .25rem;font-size:.75rem;border-radius:.2rem}
/* Glyphicons → Font Awesome (v4-shims cubre fa-*) */
.glyphicon{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-family:"Font Awesome 6 Free";font-weight:900}
.glyphicon-ok:before{content:"\f00c"}
.glyphicon-remove:before{content:"\f00d"}
.glyphicon-calendar:before{content:"\f073"}
.glyphicon-search:before{content:"\f002"}
.glyphicon-plus:before{content:"\f067"}
.glyphicon-pencil:before{content:"\f303"}
.glyphicon-trash:before{content:"\f1f8"}
.glyphicon-eye-open:before{content:"\f06e"}
.glyphicon-download:before{content:"\f019"}
.glyphicon-upload:before{content:"\f093"}
.glyphicon-chevron-left:before{content:"\f053"}
.glyphicon-chevron-right:before{content:"\f054"}
.glyphicon-chevron-up:before{content:"\f077"}
.glyphicon-chevron-down:before{content:"\f078"}
.glyphicon-refresh:before{content:"\f021"}
.glyphicon-list-alt:before{content:"\f022"}
.glyphicon-file:before{content:"\f15b"}
.glyphicon-print:before{content:"\f02f"}
.glyphicon-envelope:before{content:"\f0e0"}
.glyphicon-user:before{content:"\f007"}
.glyphicon-lock:before{content:"\f023"}
.glyphicon-home:before{content:"\f015"}
.glyphicon-cog:before{content:"\f013"}
.glyphicon-warning-sign:before{content:"\f071"}
.glyphicon-info-sign:before{content:"\f05a"}
.glyphicon-question-sign:before{content:"\f059"}
/* Breadcrumb */
.breadcrumb .pull-right{float:right}
.app-container{padding-top:2.5rem}
.btp-loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);z-index:1030;text-align:center;padding-top:20%}
.btp-loading-overlay .btp-loading-spinner{font-size:92px;color:#fff}
.btp-loading-overlay .btp-loading-text{color:#fff;font-size:18px;margin-top:20px}
.seguimiento-detail-cell{padding-left:30px}
.btp-uploader-hidden{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;clip:rect(0,0,0,0)}
.login-modal-bg-0,.login-modal-bg-1,.login-modal-bg-2{background-size:cover;background-position:center}
#loginModal.login-modal-bg-0{background-image:url(../img/home/home.png)}
#loginModal.login-modal-bg-1{background-image:url(../img/home/home2.png)}
#loginModal.login-modal-bg-2{background-image:url(../img/home/home3.png)}
.login-modal-title{color:#111!important}
.navbar-brand img.btp-logo-nav{margin-top:-20px;width:80%}
#loginModal.modal.show{display:block!important}
#loginModal .modal-dialog{margin:30px auto}
/* DataTables BS3 class names */
table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_desc:after{opacity:.5}
/* Dropdown submenu (no nativo en BS5) */
.dropdown-submenu{position:relative}
.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-1px}
.dropdown-submenu.submenu>.dropdown-menu{display:none}
.dropdown-submenu.submenu>.dropdown-menu.btp-submenu-open{display:block}
/* Dropdowns del navbar: en escritorio, posicionar el menú justo bajo su toggle
   (BS3) y anular el transform de Popper, que lo desplazaba a la izquierda.
   Scope >=992px para no romper el menú colapsado (static) en móvil. */
@media (min-width:992px){
    .navbar-nav .dropdown,.navbar-nav .dropdown-submenu{position:relative}
    .navbar-nav>.dropdown>.dropdown-menu{position:absolute!important;top:100%!important;left:0!important;right:auto!important;margin-top:0!important;transform:none!important}
}
/* Bootstrap Dialog tamaños heredados */
.modal-dialog.size-wide,.modal-dialog.modal-lg{max-width:900px}
.modal-dialog.size-small{max-width:400px}
/* Alert dismiss */
.alert .close,.alert .btn-close{float:right}
/* Tabs BS3 (nav-tabs con li>a sin .nav-link): BS5 solo estila .nav-link, así que
   replicamos aquí el aspecto y el estado activo. El cambio de pestaña lo hace el
   handler delegado de btp-bs5-compat.js. */
.nav-tabs>li{margin-bottom:-1px}
.nav-tabs>li>a{display:block;padding:.5rem 1rem;border:1px solid transparent;border-top-left-radius:.375rem;border-top-right-radius:.375rem;color:#0d6efd;cursor:pointer}
.nav-tabs>li>a:hover{border-color:#e9ecef #e9ecef #dee2e6}
.nav-tabs>li.active>a,.nav-tabs>li>a.active{color:#495057;background:#fff;border-color:#dee2e6 #dee2e6 #fff}
/* Tablas: clases contextuales de fila BS3 (danger/success/warning/info), que en BS5 se llaman table-* */
.table>:not(caption)>*>tr.danger>*{background-color:#f2dede!important;color:#a94442}
.table>:not(caption)>*>tr.success>*{background-color:#dff0d8!important}
.table>:not(caption)>*>tr.warning>*{background-color:#fcf8e3!important}
.table>:not(caption)>*>tr.info>*{background-color:#d9edf7!important}
/* BootstrapDialog: color de cabecera por tipo (se perdió en la versión adaptada a BS5) */
.bootstrap-dialog-title{color:#fff;font-size:16px}
.bootstrap-dialog.type-default .modal-header{background-color:#fff}
.bootstrap-dialog.type-default .bootstrap-dialog-title{color:#333}
.bootstrap-dialog.type-info .modal-header{background-color:#5bc0de}
.bootstrap-dialog.type-primary .modal-header{background-color:#337ab7}
.bootstrap-dialog.type-success .modal-header{background-color:#5cb85c}
.bootstrap-dialog.type-warning .modal-header{background-color:#f0ad4e}
.bootstrap-dialog.type-danger .modal-header{background-color:#d9534f}
/* btn-info con el tono BS3 (BS5 lo hace demasiado brillante) para igualar a prod */
.btn-info{--bs-btn-bg:#5bc0de;--bs-btn-border-color:#46b8da;--bs-btn-hover-bg:#31b0d5;--bs-btn-hover-border-color:#269abc;--bs-btn-color:#fff;--bs-btn-hover-color:#fff}
/* Navbar BS3: alinear el bloque derecho como en navbar-right */
.navbar-nav.navbar-right{margin-left:auto}
/* Home (principal.php): el wrapper .text entre .row y las .col rompe el grid flex de BS5 */
#botones-menu .row>.text{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;width:100%}
/* Login BS3 (offsets, img-responsive, btn-block) no cubiertos por el resto del shim */
.img-responsive{display:block;max-width:100%;height:auto}
.btn-block{display:block;width:100%}
@media (min-width:576px){.col-xs-offset-2,.col-sm-offset-2{margin-left:16.666667%}}
@media (min-width:768px){.col-md-offset-2{margin-left:16.666667%}}
/* BS3: enlaces sin subrayado (BS5 subraya <a> por defecto: menú, breadcrumb, login) */
a{text-decoration:none}
/* Breadcrumb BS3 (ol.breadcrumb con <li> desnudos y .pull-right): BS5 lo pone flex y rompe separadores/float */
.breadcrumb{display:block}
.breadcrumb>li{display:inline-block}
.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}
.breadcrumb>li.active{color:#777}
/* El navbar fixed-top tapaba el breadcrumb: btp.css lo sube -33px, pero con el
   padding-top:1em de .app-container eso lo mete ~17px bajo el navbar. Lo dejamos
   justo debajo (mayor especificidad para ganar a btp.css sin tocarlo). */
.app-container .breadcrumb{margin-top:-2.5rem}
/* BS3/BS4: separación entre campos de formulario (BS5 eliminó .form-group y su margin) */
.form-group{margin-bottom:1rem}
