/* ==================== SIB BASE EXISTENTE ==================== */
/* --- Estética elegante para licencias (Bootstrap 4/5 friendly) --- */
.sib-lic-card {
    border: 1px solid #e6eaf0;
    border-radius: 14px;
    box-shadow: 0 6px 18px rgba(16,24,40,.06);
    background: #fff;
    padding: 18px;
    height: 100%
}
.sib-lic-title {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #00205b;
    font-weight: 700;
    font-size: 1.05rem;
    margin-bottom: 12px
}
.sib-lic-title img {
    width: 28px;
    height: 28px
}
.sib-lic-preview {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 390px;
    background: #f7f9fc;
    border: 1px dashed #d7deea;
    border-radius: 12px;
    padding: 18px;
    margin-bottom: 10px
}
.sib-lic-preview img {
    max-width: 100%;
    width: 630px;
    max-height: 390px;
    height: auto;
    border-radius: 10px;
    object-fit: contain
}
.sib-lic-hint {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: .80rem;
    color: #b42318;
    margin: 8px 0 10px 0
}
.sib-lic-file {
    border-radius: 10px
}
.sib-lic-file input[type="file"] {
    padding: 8px
}
.sib-lic-actions {
    display: flex;
    justify-content: center
}

@media (max-width: 576px) {
.sib-lic-preview {
    min-height: 300px
}
.sib-lic-preview img {
    width: 100%;
    max-height: 320px
}
}
/* ====== Estilo sobrio/elegante para bloque de campos licencia ====== */
.sib-form-card {
    border: 1px solid #e6eaf0;
    border-radius: 14px;
    box-shadow: 0 6px 18px rgba(16,24,40,.06);
    background: #fff;
    padding: 16px 16px 6px 16px
}
.sib-field {
    margin-bottom: 14px
}
.sib-label {
    display: block;
    color: #00205b;
    font-weight: 700;
    font-size: .92rem;
    margin: 0 0 6px 0
}
.sib-control {
    border-radius: 10px;
    border: 1px solid #d7deea;
    background: #fff;
    min-height: 42px;
    padding: .45rem .75rem;
    box-shadow: none
}
.sib-control:focus {
    border-color: #9bb0d6;
    box-shadow: 0 0 0 .15rem rgba(0,32,91,.12)
}
.sib-control[disabled], .sib-control[readonly] {
    background: #f7f9fc;
    opacity: 1
}
.sib-row-tight {
    row-gap: 10px
}
/*
====== (OPCIONAL) Preview inmediato + nombre de archivo (sin recargar) ======
*/
.sib-file-row {
display:flex;
align-items:center;
gap:10px;
flex-wrap:wrap
}
.sib-file-name {
    font-size: .85rem;
    color: #00205b;
    opacity: .85
}
.sib-file-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 999px;
    background: #f1f5ff;
    border: 1px solid #d8e2ff
}
.sib-file-badge i {
    font-style: normal;
    font-weight: 700
}

.sib-section-title{display:flex;align-items:center;justify-content:center;gap:10px;margin:6px 0 12px 0;padding:6px 0}
.sib-section-title .sib-title-text{color:#00205b;font-weight:800;font-size:1.25rem;letter-spacing:.2px}
.sib-section-title .sib-title-icon{width:28px;height:28px;opacity:.95}
.sib-section-divider{height:1px;background:linear-gradient(90deg, rgba(0,32,91,0), rgba(0,32,91,.18), rgba(0,32,91,0));margin:0 0 14px 0}
@media (max-width:576px){.sib-section-title .sib-title-text{font-size:1.10rem}}

/* ====== CodeHTML Premium Titles (SIB) ====== */
.sib-title-wrap{display:flex;justify-content:center;align-items:center;margin:6px 0 10px 0}
.sib-title-box{display:flex;align-items:center;gap:12px;padding:10px 16px;border-radius:999px;border:1px solid #e6eaf0;background:#ffffff;box-shadow:0 6px 18px rgba(16,24,40,.06)}
.sib-title-text{color:#00205b;font-weight:800;font-size:1.35rem;letter-spacing:.2px;line-height:1}
.sib-title-badge{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#f1f5ff;border:1px solid #d8e2ff;box-shadow:inset 0 0 0 2px rgba(0,32,91,.03)}
.sib-title-badge img{width:26px;height:26px;opacity:.95}
.sib-divider-soft{height:1px;background:linear-gradient(90deg, rgba(0,32,91,0), rgba(0,32,91,.22), rgba(0,32,91,0));margin:12px 0 18px 0}
@media (max-width:576px){
  .sib-title-text{font-size:1.12rem}
  .sib-title-badge{width:40px;height:40px}
  .sib-title-badge img{width:24px;height:24px}
  .sib-title-box{padding:8px 12px}
}

/* --- Estética elegante para licencias (Bootstrap 4/5 friendly) --- */
.sib-lic-card{border:1px solid #e6eaf0;border-radius:14px;box-shadow:0 6px 18px rgba(16,24,40,.06);background:#fff;padding:18px;height:100%}
.sib-lic-title{display:flex;align-items:center;gap:10px;color:#00205b;font-weight:700;font-size:1.05rem;margin-bottom:12px}
.sib-lic-title img{width:28px;height:28px}
.sib-lic-preview{display:flex;justify-content:center;align-items:center;min-height:390px;background:#f7f9fc;border:1px dashed #d7deea;border-radius:12px;padding:18px;margin-bottom:10px}
.sib-lic-preview img{max-width:100%;width:630px;max-height:390px;height:auto;border-radius:10px;object-fit:contain}
.sib-lic-hint{display:flex;align-items:center;justify-content:center;gap:8px;font-size:.80rem;color:#b42318;margin:8px 0 10px 0}
.sib-lic-file{border-radius:10px}
.sib-lic-file input[type="file"]{padding:8px}
.sib-lic-actions{display:flex;justify-content:center}
@media (max-width:576px){.sib-lic-preview{min-height:300px}.sib-lic-preview img{width:100%;max-height:320px}}

/* ====== Base card/form ====== */
.sib-form-card{border:1px solid #e6eaf0;border-radius:14px;box-shadow:0 6px 18px rgba(16,24,40,.06);background:#fff;padding:16px 16px 6px 16px}
.sib-form{width:100%}
.sib-field{margin-bottom:14px}
.sib-label{display:block;color:#00205b;font-weight:700;font-size:.92rem;margin:0 0 6px 0}
.sib-label-sm{font-size:.82rem}
.sib-control{width:100%;border-radius:10px;border:1px solid #d7deea;background:#fff;min-height:42px;padding:.45rem .75rem;box-shadow:none}
.sib-control:focus{border-color:#9bb0d6;box-shadow:0 0 0 .15rem rgba(0,32,91,.12)}
.sib-control[disabled],.sib-control[readonly]{background:#f7f9fc;opacity:1}
.sib-row-tight{row-gap:10px}

/* ====== Head / Titles ====== */
.sib-form-head{padding:2px 2px 10px 2px}
.sib-form-title{color:#00205b;font-weight:900;font-size:1.20rem;letter-spacing:.2px;line-height:1.1;margin:0 0 4px 0}
.sib-form-subtitle{color:#6b7280;font-size:.90rem;margin:0 0 6px 0}

/* ====== Grid system (lo que te falta) ====== */
.sib-grid{display:grid;gap:14px}
.sib-grid-1{grid-template-columns:1fr}
.sib-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.sib-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.sib-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.sib-grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.sib-grid-6{grid-template-columns:repeat(6,minmax(0,1fr))}
@media (max-width:1200px){.sib-grid-6{grid-template-columns:repeat(3,minmax(0,1fr))}.sib-grid-5{grid-template-columns:repeat(3,minmax(0,1fr))}.sib-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:768px){.sib-grid-6,.sib-grid-5,.sib-grid-4,.sib-grid-3,.sib-grid-2{grid-template-columns:1fr}}

/* ====== Dividers / blocks ====== */
.sib-divider{height:1px;background:linear-gradient(90deg, rgba(0,32,91,0), rgba(0,32,91,.20), rgba(0,32,91,0));margin:12px 0 14px 0}
.sib-block{padding:2px 0 0 0}
.sib-block-title{font-weight:900;font-size:1.05rem;margin:0 0 10px 0}

/* ====== Checkbox grid ====== */
.sib-checkgrid{display:flex;flex-wrap:wrap;gap:10px 14px;padding:4px 0}
.sib-check{display:inline-flex;align-items:center;gap:8px;background:#f7f9fc;border:1px solid #e6eaf0;border-radius:999px;padding:6px 10px}
.sib-check-input{transform:scale(1.05)}
.sib-check-label{color:#00205b;font-weight:700;font-size:.88rem}

/* ====== Media cards ====== */
.sib-media-card{border:1px solid #e6eaf0;border-radius:14px;background:#fff;box-shadow:0 6px 18px rgba(16,24,40,.06);overflow:hidden}
.sib-media-head{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#f7f9fc;border-bottom:1px solid #e6eaf0;color:#00205b;font-weight:900}
.sib-media-body{padding:12px;display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center}
.sib-thumb{max-width:100%;width:260px;max-height:260px;height:auto;border-radius:12px;object-fit:contain;border:1px solid #e6eaf0;background:#fff}
.sib-embed{width:100%;max-width:340px;height:260px;border:1px solid #e6eaf0;border-radius:12px;background:#fff}
.sib-link{color:#00205b;font-weight:800;text-decoration:none}
.sib-link:hover{text-decoration:underline}

/* ====== File helpers ====== */
.sib-file-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sib-file-name{font-size:.85rem;color:#00205b;opacity:.85}
.sib-file-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#f1f5ff;border:1px solid #d8e2ff}
.sib-file-badge i{font-style:normal;font-weight:700}

/* ====== Section titles (tu extra) ====== */
.sib-section-title{display:flex;align-items:center;justify-content:center;gap:10px;margin:6px 0 12px 0;padding:6px 0}
.sib-section-title .sib-title-text{color:#00205b;font-weight:800;font-size:1.25rem;letter-spacing:.2px}
.sib-section-title .sib-title-icon{width:28px;height:28px;opacity:.95}
.sib-section-divider{height:1px;background:linear-gradient(90deg, rgba(0,32,91,0), rgba(0,32,91,.18), rgba(0,32,91,0));margin:0 0 14px 0}
@media (max-width:576px){.sib-section-title .sib-title-text{font-size:1.10rem}}

/* ====== Premium title (tu extra) ====== */
.sib-title-wrap{display:flex;justify-content:center;align-items:center;margin:6px 0 10px 0}
.sib-title-box{display:flex;align-items:center;gap:12px;padding:10px 16px;border-radius:999px;border:1px solid #e6eaf0;background:#ffffff;box-shadow:0 6px 18px rgba(16,24,40,.06)}
.sib-title-text{color:#00205b;font-weight:800;font-size:1.35rem;letter-spacing:.2px;line-height:1}
.sib-title-badge{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#f1f5ff;border:1px solid #d8e2ff;box-shadow:inset 0 0 0 2px rgba(0,32,91,.03)}
.sib-title-badge img{width:26px;height:26px;opacity:.95}
.sib-divider-soft{height:1px;background:linear-gradient(90deg, rgba(0,32,91,0), rgba(0,32,91,.22), rgba(0,32,91,0));margin:12px 0 18px 0}
@media (max-width:576px){.sib-title-text{font-size:1.12rem}.sib-title-badge{width:40px;height:40px}.sib-title-badge img{width:24px;height:24px}.sib-title-box{padding:8px 12px}}

/* ====== ModalBoost: Fix definitivo móvil (BS4) ====== */
.modal-elegante.modal{
  padding-right:0 !important; /* evita desplazamientos raros */
}

.modal-elegante .modal-dialog{
  width:calc(100% - 16px);
  margin:8px auto;
}

@media (max-width:576px){
  /* que el modal use TODO el alto real del dispositivo */
  .modal-elegante .modal-dialog{
    width:100%;
    margin:0;
    height:calc(var(--vh, 1vh) * 100);
    max-height:calc(var(--vh, 1vh) * 100);
  }

  /* modal como columna: header fijo, body scrolleable, footer fijo */
  .modal-elegante .modal-content{
    height:calc(var(--vh, 1vh) * 100);
    border-radius:0;
    display:flex;
    flex-direction:column;
  }

  .modal-elegante .modal-header,
  .modal-elegante .modal-footer{
    flex:0 0 auto;
  }

  .modal-elegante .modal-body{
    flex:1 1 auto;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    max-height:none !important; /* anula el cálculo anterior */
  }

  /* compactar un poco */
  .modal-elegante .modal-header{padding:12px 14px}
  .modal-elegante .modal-body{padding:14px}
  .modal-elegante .modal-title{font-size:1.05rem;line-height:1.2}
  .modal-elegante .subtitulo{font-size:.88rem}
  .modal-elegante .nota{font-size:.92rem}

  /* botón único en móvil */
  .modal-elegante .btn-mb-cancel{display:none}
  .modal-elegante .modal-footer{flex-direction:column;align-items:stretch;gap:10px}
  .modal-elegante .modal-footer .btn{width:100%}
}

/* ====== ModalBoost FINAL (Bootstrap 4) ====== */

/* evita el “corte” por padding-right que mete BS4 al abrir modal */
body.modal-open{padding-right:0 !important; overflow:hidden !important;}

/* evita scroll horizontal fantasma */
#myModal1, #myModal1 *{ box-sizing:border-box; }
#myModal1 .modal-content,
#myModal1 .modal-header,
#myModal1 .modal-body,
#myModal1 .modal-footer{ overflow-x:hidden !important; }

@media (max-width:576px){

  /* 1) Modal a pantalla completa */
  #myModal1 .modal-dialog{
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    height:calc(var(--vh, 1vh) * 100) !important;
  }

  #myModal1 .modal-content{
    height:calc(var(--vh, 1vh) * 100) !important;
    border-radius:0 !important;
    display:flex !important;
    flex-direction:column !important;
  }

  /* 2) Header/Footer fijos + Body scrolleable */
  #myModal1 .modal-header,
  #myModal1 .modal-footer{ flex:0 0 auto !important; }

  #myModal1 .modal-body{
    flex:1 1 auto !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch !important;
    padding:14px !important;
  }

  /* 3) Anti “corte” por flex del título */
  #myModal1 .modal-header{
    padding:12px 14px !important;
  }
  #myModal1 .modal-header .d-flex.align-items-center{
    flex-wrap:wrap !important;
    width:100% !important;
    min-width:0 !important;
  }
  #myModal1 .modal-title{
    width:100% !important;
    min-width:0 !important;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
    word-break:break-word !important;
    font-size:1.05rem !important;
    line-height:1.2 !important;
  }
  #myModal1 .subtitulo{
    white-space:normal !important;
    overflow-wrap:anywhere !important;
    word-break:break-word !important;
    font-size:.88rem !important;
    line-height:1.2 !important;
  }

  /* 4) Simplificar acciones en móvil */
  #myModal1 .btn-mb-cancel{display:none !important;}
  #myModal1 .modal-footer{
    padding:12px 14px 14px 14px !important;
    flex-direction:column !important;
    gap:10px !important;
    align-items:stretch !important;
  }
  #myModal1 .modal-footer .btn{ width:100% !important; }
}
    
/* ====== Móvil primero: menos márgenes/padding ====== */
.sib-container-tight{padding-left:10px;padding-right:10px}
@media (min-width:576px){.sib-container-tight{padding-left:16px;padding-right:16px}}

/* Row más apretado en móvil */
.sib-row-tight{margin-left:-6px;margin-right:-6px}
.sib-row-tight>[class*="col-"]{padding-left:6px;padding-right:6px}

/* Card menos “gorda” en móvil */
.sib-card-tight{padding:12px 12px 6px 12px}
@media (min-width:576px){.sib-card-tight{padding:16px 16px 6px 16px}}

/* Items de menú más compactos (evita que se vea “angosto”) */
.sib-menu-item{display:flex;align-items:center;gap:10px;padding:10px 10px}
@media (min-width:576px){.sib-menu-item{padding:12px 12px}}

/* Texto del item */
.sib-item-text{color:#00205b;font-weight:400;line-height:1.25}

/* Contenedor y gutters apretados en móvil */
.sib-container-tight{padding-left:10px;padding-right:10px}
.sib-row-tight{margin-left:-6px;margin-right:-6px}
.sib-col-tight{padding-left:6px;padding-right:6px;margin-bottom:10px}

/* Card más compacta */
.sib-card-tight{border-radius:14px}
.sib-header-tight{padding:10px 12px}
.sib-body-tight{padding:10px 12px}

/* Items más compactos (recupera ancho útil) */
.sib-menu-item-tight{gap:10px;padding:10px 10px}
@media (min-width:576px){
  .sib-container-tight{padding-left:16px;padding-right:16px}
  .sib-col-tight{margin-bottom:16px}
  .sib-header-tight{padding:12px 14px}
  .sib-body-tight{padding:12px 14px}
  .sib-menu-item-tight{padding:12px 12px}
}
/* ===== AIDER: MÓVIL 100% ANCHO / CERO MÁRGENES ===== */
@media (max-width: 576px){

  /* Quita padding/margen de wrappers típicos */
  .container, .container-fluid{padding-left:1 !important;padding-right:1 !important;margin-left:1 !important;margin-right:1 !important}
  .row{margin-left:1 !important;margin-right:1 !important}
  [class*="col-"]{padding-left:1 !important;padding-right:1 !important}

  /* Card sin “aire” lateral */
  .sib-zero-card{border-radius:0 !important}
  .sib-zero-header{padding:10px 10px !important}
  .sib-zero-body{padding:0 !important}

  /* List items pegados al borde, pero legibles */
  .sib-zero-item{padding:12px 10px !important;gap:10px !important;border-left:0 !important;border-right:0 !important}

  /* Si tu sib-form-card trae padding fuerte, lo anulamos en móvil */
  .sib-form-card{padding:0 !important}

  /* Si el título/encabezado global mete margen */
  h1,h2,h3,.sib-block-title{margin-left:0 !important;margin-right:0 !important}
}
    
/* CTA SIB (verde elegante) - no depende de bootstrap */
.sib-btn{display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer;text-decoration:none;}
.sib-btn-block{width:100%;max-width:520px;}

.sib-cta{
  background:#2c9f45;
  color:#fff;
  font-weight:900;
  letter-spacing:.2px;
  padding:14px 18px;
  border-radius:16px;
  box-shadow:0 12px 26px rgba(44,159,69,.20);
  transition:transform .12s ease, box-shadow .12s ease, filter .12s ease;
}

.sib-cta:hover{filter:brightness(.98);transform:translateY(-1px);box-shadow:0 14px 30px rgba(44,159,69,.26);}
.sib-cta:active{transform:translateY(0);box-shadow:0 10px 22px rgba(44,159,69,.18);}

.sib-cta:focus{outline:none;}
.sib-cta:focus-visible{box-shadow:0 0 0 4px rgba(44,159,69,.22), 0 12px 26px rgba(44,159,69,.20);}

.sib-cta[disabled], .sib-cta:disabled{opacity:.65;cursor:not-allowed;box-shadow:none;transform:none;}
    
/* Centrado SIB (sin depender de align="center") */
.sib-center-card{margin-left:auto;margin-right:auto;}
.sib-center-text{text-align:center;}
.sib-center-actions{align-items:center;}
.sib-center-box{display:flex;flex-direction:column;align-items:center;}
.sib-center-inline{display:flex;justify-content:center;width:100%;}

/* (Opcional) si quieres que el botón quede centrado pero con ancho “elegante” */
.sib-btn-block{width:100%;max-width:520px;}    


.sib-alert-jefe {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 20px 48px 20px 22px;
    margin: 18px 0 22px 0;
    border-radius: 14px;
    border-left: 7px solid #00205b;
    background: linear-gradient(135deg, #e8f2ff 0%, #ffffff 100%);
    box-shadow: 0 8px 22px rgba(0, 32, 91, 0.12);
    color: #00205b;
}

.sib-alert-icon {
    min-width: 46px;
    height: 46px;
    border-radius: 50%;
    background: #00205b;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    margin-top: 2px;
}

.sib-alert-title {
    font-size: 20px;
    font-weight: 800;
    color: #00205b;
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.sib-alert-text {
    font-size: 17px;
    line-height: 1.55;
    color: #00205b;
}

.sib-alert-note {
    margin-top: 12px;
    padding: 10px 14px;
    border-radius: 10px;
    background: #fff3cd;
    border-left: 5px solid #ffc107;
    color: #664d03;
    font-size: 15px;
    font-weight: 600;
}

.sib-alert-close {
    position: absolute;
    top: 12px;
    right: 16px;
    color: #00205b;
    opacity: 0.8;
    font-size: 24px;
}

.sib-alert-close:hover {
    opacity: 1;
}

@media (max-width: 768px) {
    .sib-alert-jefe {
        flex-direction: column;
        padding: 18px 42px 18px 18px;
    }

    .sib-alert-title {
        font-size: 17px;
    }

    .sib-alert-text {
        font-size: 15px;
    }

    .sib-alert-icon {
        width: 42px;
        height: 42px;
        font-size: 20px;
    }
}


.sib-menu-dashboard {
    text-align: left !important;
}

.sib-menu-dashboard .sib-form-card {
    text-align: left !important;
    border: 1px solid #dfe7f1;
    border-radius: 12px;
    padding: 18px 14px;
    background: #ffffff;
    box-shadow: 0 4px 14px rgba(0, 32, 91, 0.06);
    height: 100%;
}

.sib-section-title {
    display: flex;
    align-items: center;
    justify-content: flex-start !important;
    gap: 10px;
    margin-bottom: 18px;
    padding-bottom: 12px;
    border-bottom: 1px solid #e6edf5;
    font-size: 15px;
    font-weight: 800;
    color: #00205b;
    text-transform: uppercase;
    letter-spacing: 0.2px;
    text-align: left !important;
}

.sib-section-icon {
    width: 36px;
    height: 36px;
    min-width: 36px;
    border-radius: 50%;
    background: #00205b;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    box-shadow: 0 6px 16px rgba(0, 32, 91, 0.18);
}

.sib-menu-list {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    text-align: left !important;
}

.sib-menu-item {
    display: flex;
    align-items: center;
    justify-content: flex-start !important;
    gap: 12px;
    width: 100%;
    padding: 12px 14px;
    border: 1px solid #e4ebf3;
    border-radius: 10px;
    background: #ffffff;
    color: #00205b;
    text-decoration: none;
    transition: all 0.22s ease;
    box-shadow: 0 4px 12px rgba(0, 32, 91, 0.05);
    text-align: left !important;
}

.sib-menu-item:hover {
    color: #00205b;
    text-decoration: none;
    transform: translateY(-2px);
    border-color: #b8cbe3;
    box-shadow: 0 8px 20px rgba(0, 32, 91, 0.12);
    background: linear-gradient(135deg, #ffffff 0%, #f3f8ff 100%);
}

.sib-menu-icon {
    width: 38px;
    height: 38px;
    min-width: 38px;
    border-radius: 9px;
    background: #f4f7fb;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sib-menu-icon img {
    max-width: 30px;
    max-height: 30px;
    object-fit: contain;
}

.sib-menu-text {
    flex: 1;
    text-align: left !important;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
    color: #00205b;
}

.sib-menu-arrow {
    color: #2c9f45;
    font-size: 13px;
    margin-left: auto;
}

@media (max-width: 768px) {
    .sib-menu-dashboard .sib-form-card {
        margin-bottom: 16px;
    }

    .sib-section-title {
        font-size: 14px;
    }

    .sib-menu-item {
        padding: 11px 12px;
    }

    .sib-menu-text {
        font-size: 13px;
    }
}

.sib-modalboost-content {
    border: 0;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.22);
    font-family: Arial, Helvetica, sans-serif;
  }

  .sib-modalboost-header {
    background: linear-gradient(135deg, #00205b 0%, #123a7a 100%);
    color: #ffffff;
    border-bottom: 0;
    padding: 22px 26px;
  }

  .sib-modalboost-title-wrap {
    display: flex;
    align-items: center;
    gap: 16px;
  }

  .sib-modalboost-icon {
    width: 48px;
    height: 48px;
    min-width: 48px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.14);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    color: #ffc107;
  }

  .sib-modalboost-title {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: 0.3px;
    text-transform: uppercase;
  }

  .sib-modalboost-subtitle {
    margin: 4px 0 0;
    font-size: 0.93rem;
    color: rgba(255, 255, 255, 0.86);
  }

  .sib-modalboost-close {
    color: #ffffff;
    opacity: 1;
    text-shadow: none;
    font-size: 1.9rem;
  }

  .sib-modalboost-close:hover {
    color: #ffc107;
  }

  .sib-modalboost-body {
    padding: 26px;
    background: #f7f9fc;
  }

  .sib-modalboost-alert {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    background: #ffffff;
    border-left: 6px solid #00205b;
    border-radius: 14px;
    padding: 18px 20px;
    box-shadow: 0 8px 20px rgba(0, 32, 91, 0.08);
    margin-bottom: 20px;
  }

  .sib-modalboost-alert-icon {
    width: 38px;
    height: 38px;
    min-width: 38px;
    border-radius: 50%;
    background: #eaf0fb;
    color: #00205b;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
  }

  .sib-modalboost-alert-text {
    color: #27364a;
    font-size: 1rem;
    line-height: 1.45;
  }

  .sib-modalboost-id {
    display: inline-block;
    color: #c82333;
    font-weight: 800;
    font-size: 1.08rem;
    padding: 2px 8px;
    background: #fff1f2;
    border-radius: 8px;
    margin-left: 4px;
  }

  .sib-modalboost-confirm-box {
    background: #fff8e1;
    border: 1px solid #ffe08a;
    border-radius: 14px;
    padding: 18px 20px;
    margin-bottom: 22px;
  }

  .sib-modalboost-radio-label {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    cursor: pointer;
  }

  .sib-modalboost-radio-label input[type="radio"] {
    width: 20px;
    height: 20px;
    min-width: 20px;
    accent-color: #00205b;
  }

  .sib-modalboost-radio-text {
    color: #4b3b00;
    font-size: 1rem;
    font-weight: 700;
  }

  .sib-modalboost-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 12px;
    margin-top: 8px;
  }

  .sib-modalboost-btn-cancel {
    background: #6c757d;
    color: #ffffff;
    border: 0;
    border-radius: 10px;
    padding: 10px 18px;
    font-weight: 700;
  }

  .sib-modalboost-btn-cancel:hover {
    background: #5a6268;
    color: #ffffff;
  }

  .sib-modalboost-btn-confirm {
    background: #2c9f45;
    color: #ffffff;
    border: 0;
    border-radius: 10px;
    padding: 10px 20px;
    font-weight: 800;
    box-shadow: 0 6px 14px rgba(44, 159, 69, 0.25);
  }

  .sib-modalboost-btn-confirm:hover {
    background: #24883a;
    color: #ffffff;
  }

  .sib-modalboost-message {
    margin-top: 14px;
  }

  @media (max-width: 768px) {
    .sib-modalboost-header {
      padding: 18px;
    }

    .sib-modalboost-title-wrap {
      align-items: flex-start;
      gap: 12px;
    }

    .sib-modalboost-icon {
      width: 42px;
      height: 42px;
      min-width: 42px;
      font-size: 19px;
    }

    .sib-modalboost-title {
      font-size: 1.08rem;
    }

    .sib-modalboost-subtitle {
      font-size: 0.85rem;
    }

    .sib-modalboost-body {
      padding: 18px;
    }

    .sib-modalboost-alert {
      padding: 16px;
    }

    .sib-modalboost-actions {
      flex-direction: column-reverse;
      align-items: stretch;
    }

    .sib-modalboost-btn-cancel,
    .sib-modalboost-btn-confirm {
      width: 100%;
    }
  }
    
    
    
    /* ==========================================================
   ALERTBOOST SIB - Alerta informativa corporativa
   ========================================================== */

.sib-alertboost {
  width: 100%;
  background: #ffffff;
  border: 1px solid #dbe3ef;
  border-left: 6px solid #00205b;
  border-radius: 14px;
  padding: 18px 20px;
  margin: 15px 0 22px 0;
  box-shadow: 0 8px 22px rgba(0, 32, 91, 0.08);
  display: flex;
  align-items: flex-start;
  gap: 15px;
  color: #263238;
}

.sib-alertboost-icon {
  width: 42px;
  height: 42px;
  min-width: 42px;
  border-radius: 50%;
  background: #00205b;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
}

.sib-alertboost-content {
  flex: 1;
}

.sib-alertboost-title {
  font-size: 15px;
  font-weight: 800;
  color: #00205b;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  margin: 0 0 6px 0;
}

.sib-alertboost-text {
  font-size: 14px;
  line-height: 1.55;
  margin: 0;
  color: #374151;
}

.sib-alertboost-note {
  display: inline-block;
  margin-top: 10px;
  padding: 7px 11px;
  background: #fff7d6;
  border: 1px solid #f3d46b;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  color: #5c4700;
}

.sib-alertboost-code {
  font-family: Consolas, Monaco, monospace;
  background: #f1f5f9;
  border: 1px solid #dbe3ef;
  color: #00205b;
  padding: 2px 6px;
  border-radius: 6px;
  font-weight: 800;
}

@media (max-width: 576px) {
  .sib-alertboost {
    padding: 15px;
    gap: 12px;
    border-radius: 12px;
  }

  .sib-alertboost-icon {
    width: 36px;
    height: 36px;
    min-width: 36px;
    font-size: 19px;
  }

  .sib-alertboost-title {
    font-size: 14px;
  }

  .sib-alertboost-text {
    font-size: 13.5px;
  }

  .sib-alertboost-note {
    font-size: 12.5px;
  }
}

.sib-alertboost {
  position: relative;
  width: 100%;
  background: #ffffff;
  border-left: 6px solid #00205b;
  border-radius: 14px;
  box-shadow: 0 8px 22px rgba(0, 32, 91, 0.10);
  padding: 18px 48px 18px 18px;
  margin-bottom: 18px;
  color: #1f2937;
}

.sib-alertboost-content {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.sib-alertboost-icon {
  width: 44px;
  height: 44px;
  min-width: 44px;
  border-radius: 50%;
  background: #eef4ff;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sib-alertboost-icon img {
  width: 28px;
  height: 28px;
  object-fit: contain;
}

.sib-alertboost-body {
  width: 100%;
  text-align: left;
}

.sib-alertboost-title {
  display: block;
  color: #00205b;
  font-size: 16px;
  font-weight: 800;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.sib-alertboost-text {
  color: #374151;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.45;
  text-align: justify;
  margin: 0;
}

.sib-alertboost-close {
  position: absolute;
  top: 12px;
  right: 14px;
  border: none;
  background: transparent;
  color: #00205b;
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  opacity: 0.75;
}

.sib-alertboost-close:hover {
  opacity: 1;
}

@media (max-width: 576px) {
  .sib-alertboost {
    padding: 16px 42px 16px 14px;
    border-radius: 12px;
  }

  .sib-alertboost-content {
    gap: 10px;
  }

  .sib-alertboost-icon {
    width: 38px;
    height: 38px;
    min-width: 38px;
  }

  .sib-alertboost-icon img {
    width: 24px;
    height: 24px;
  }

  .sib-alertboost-title {
    font-size: 14px;
  }

  .sib-alertboost-text {
    font-size: 13px;
    text-align: left;
  }
}    

.sib-alertboost-documentos {
    border: 1px solid #d7e2f1;
    border-left: 6px solid #00205b;
    background: #ffffff;
    border-radius: 12px;
    padding: 18px 20px;
    box-shadow: 0 4px 14px rgba(0, 32, 91, 0.08);
    position: relative;
}

.sib-alertboost-documentos .sib-alertboost-close {
    position: absolute;
    top: 10px;
    right: 14px;
    border: 0;
    background: transparent;
    color: #6c757d;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}

.sib-alertboost-documentos .sib-alertboost-content {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding-right: 25px;
}

.sib-alertboost-documentos .sib-alertboost-icon {
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: 50%;
    background: #00205b;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    font-weight: bold;
}

.sib-alertboost-documentos .sib-alertboost-title {
    color: #00205b;
    font-size: 1.05rem;
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 6px;
}

.sib-alertboost-documentos .sib-alertboost-text {
    color: #333333;
    font-size: 0.95rem;
    line-height: 1.55;
    margin-bottom: 0;
    text-align: justify;
}

.sib-alertboost-documentos .sib-alertboost-note {
    margin-top: 10px;
    padding: 10px 12px;
    background: #fff8df;
    border-left: 4px solid #f0b429;
    border-radius: 8px;
    color: #4a3b00;
    font-size: 0.9rem;
}

@media (max-width: 576px) {
    .sib-alertboost-documentos {
        padding: 16px 14px;
    }

    .sib-alertboost-documentos .sib-alertboost-content {
        gap: 10px;
    }

    .sib-alertboost-documentos .sib-alertboost-icon {
        width: 38px;
        height: 38px;
        min-width: 38px;
        font-size: 18px;
    }

    .sib-alertboost-documentos .sib-alertboost-title {
        font-size: 0.98rem;
    }

    .sib-alertboost-documentos .sib-alertboost-text {
        font-size: 0.9rem;
    }
}

.campo-error {
    border: 2px solid red !important;
    box-shadow: 0 0 5px red;
    transition: border 0.3s ease-in-out;
}

.row > div {
    color: #012649;
    font-weight: 600;
    font-size: 18px;
    margin-bottom: 15px;
}
.form-control, .form-check {
    margin-top: 5px;
    font-size: 18px;
}
.form-control:hover, .form-control:focus {
    border-color: #012649;
    box-shadow: 0 0 5px rgba(1, 38, 73, 0.4);
    outline: none;
}
.form-check input[type="radio"]:hover, .form-check input[type="radio"]:focus {
    accent-color: #012649;
}
.tooltip-readable .tooltip-inner {
    max-width: 720px;      /* mÃ¡s ancho */
    padding: 14px 18px;    /* mÃ¡s aire */
    font-size: 1.05rem;    /* ~16-17px */
    line-height: 1.6;      /* fÃ¡cil de leer */
    text-align: left;
    white-space: normal;   /* permitir saltos de lÃ­nea */
    word-break: break-word;
}

@media (max-width: 576px) {
.tooltip-readable .tooltip-inner {
    max-width: 90vw;
    font-size: 1rem;
}
}
.autocomplete-list {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1056;
    border: 1px solid #d8dee4;
    background: #fff;
    max-height: 220px;
    overflow: auto;
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0,0,0,.08);
}
.autocomplete-item {
    padding: 8px 10px;
    cursor: pointer;
}
.autocomplete-item:hover, .autocomplete-item.active {
    background: #f1f5f9;
}
.autocomplete-empty {
    padding: 8px 10px;
    color: #6b7280;
}

.table-sm td, .table-sm th {
    vertical-align: middle;
}
#tbodyComplementaria tr:hover {
    background: #f7fafc;
}
.btn[disabled] {
    opacity: .7;
    cursor: not-allowed;
}
.saving-hint {
    display: none;
    font-size: .95rem;
    color: #2e7d32;
}
.saving-hint.on {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
}
.badge-soft {
    background: #ecf5ff;
    color: #0b3d91;
    border-radius: 12px;
    padding: .2rem .6rem;
    font-size: .8rem;
}

.infocomp-state {
    font-size: 12px;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-top: .25rem
}
.infocomp-badge {
    padding: .1rem .45rem;
    border-radius: .35rem;
    line-height: 1
}
.badge-dirty {
    background: #fff3cd;
    color: #664d03
}
.badge-saving {
    background: #cff4fc;
    color: #055160
}
.badge-saved {
    background: #d1e7dd;
    color: #0f5132
}
.badge-error {
    background: #f8d7da;
    color: #842029
}
.progress-wrap {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-top: .25rem
}
.progress {
    width: 100%;
    height: 6px;
    background: #eee;
    border-radius: 6px;
    overflow: hidden
}
.progress>span {
    display: block;
    height: 100%;
    width: 0%;
    background: #0d6efd
}

.acad-status {
    margin: .5rem 0 0
}
.acad-item {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
    padding: .35rem .6rem;
    border: 1px solid #eee;
    border-radius: .4rem;
    background: #f8f9fa;
    margin: .25rem 0;
}
.acad-tag {
    font-weight: 600
}
.acad-flex {
    display: flex;
    gap: .6rem;
    align-items: center;
    flex: 1 1 280px;
    min-width: 0
}
.acad-state {
    font-size: .85rem;
    padding: .1rem .45rem;
    border-radius: .35rem;
    white-space: nowrap
}
.acad-state.dirty {
    background: #fff3cd;
    color: #664d03
}
.acad-state.saving {
    background: #cff4fc;
    color: #055160
}
.acad-state.saved {
    background: #d1e7dd;
    color: #0f5132
}
.acad-state.error {
    background: #f8d7da;
    color: #842029
}
.acad-msg {
    font-size: .85rem;
    opacity: .9;
    overflow: hidden;
    text-overflow: ellipsis
}
.acad-progress {
    flex: 1 1 160px;
    height: 6px;
    background: #eee;
    border-radius: 6px;
    overflow: hidden;
    display: none
}
.acad-progress>span {
    display: block;
    height: 100%;
    width: 0;
    background: #0d6efd
}

.comp-status {
    margin: .5rem 0 0
}
.comp-item {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
    padding: .35rem .6rem;
    border: 1px solid #eee;
    border-radius: .4rem;
    background: #f8f9fa;
    margin: .25rem 0;
}
.comp-tag {
    font-weight: 600
}
.comp-flex {
    display: flex;
    gap: .6rem;
    align-items: center;
    flex: 1 1 280px;
    min-width: 0
}
.comp-state {
    font-size: .85rem;
    padding: .1rem .45rem;
    border-radius: .35rem;
    white-space: nowrap
}
.comp-state.dirty {
    background: #fff3cd;
    color: #664d03
}
.comp-state.saving {
    background: #cff4fc;
    color: #055160
}
.comp-state.saved {
    background: #d1e7dd;
    color: #0f5132
}
.comp-state.error {
    background: #f8d7da;
    color: #842029
}
.comp-msg {
    font-size: .85rem;
    opacity: .9;
    overflow: hidden;
    text-overflow: ellipsis
}
.comp-progress {
    flex: 1 1 160px;
    height: 6px;
    background: #eee;
    border-radius: 6px;
    overflow: hidden;
    display: none
}
.comp-progress>span {
    display: block;
    height: 100%;
    width: 0;
    background: #0d6efd
}

.exp-status {
    margin: .5rem 0 0
}
.exp-item {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
    padding: .35rem .6rem;
    border: 1px solid #eee;
    border-radius: .4rem;
    background: #f8f9fa;
    margin: .25rem 0;
}
.exp-tag {
    font-weight: 600
}
.exp-flex {
    display: flex;
    gap: .6rem;
    align-items: center;
    flex: 1 1 280px;
    min-width: 0
}
.exp-state {
    font-size: .85rem;
    padding: .1rem .45rem;
    border-radius: .35rem;
    white-space: nowrap
}
.exp-state.dirty {
    background: #fff3cd;
    color: #664d03
}
.exp-state.saving {
    background: #cff4fc;
    color: #055160
}
.exp-state.saved {
    background: #d1e7dd;
    color: #0f5132
}
.exp-state.error {
    background: #f8d7da;
    color: #842029
}
.exp-msg {
    font-size: .85rem;
    opacity: .9;
    overflow: hidden;
    text-overflow: ellipsis
}
.exp-progress {
    flex: 1 1 160px;
    height: 6px;
    background: #eee;
    border-radius: 6px;
    overflow: hidden;
    display: none
}
.exp-progress>span {
    display: block;
    height: 100%;
    width: 0;
    background: #0d6efd
}

.ref-status {
    margin: .5rem 0 0
}
.ref-item {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
    padding: .35rem .6rem;
    border: 1px solid #eee;
    border-radius: .4rem;
    background: #f8f9fa;
    margin: .25rem 0;
}
.ref-tag {
    font-weight: 600
}
.ref-flex {
    display: flex;
    gap: .6rem;
    align-items: center;
    flex: 1 1 280px;
    min-width: 0
}
.ref-state {
    font-size: .85rem;
    padding: .1rem .45rem;
    border-radius: .35rem;
    white-space: nowrap
}
.ref-state.dirty {
    background: #fff3cd;
    color: #664d03
}
.ref-state.saving {
    background: #cff4fc;
    color: #055160
}
.ref-state.saved {
    background: #d1e7dd;
    color: #0f5132
}
.ref-state.error {
    background: #f8d7da;
    color: #842029
}
.ref-msg {
    font-size: .85rem;
    opacity: .9;
    overflow: hidden;
    text-overflow: ellipsis
}
.ref-progress {
    flex: 1 1 160px;
    height: 6px;
    background: #eee;
    border-radius: 6px;
    overflow: hidden;
    display: none
}
.ref-progress>span {
    display: block;
    height: 100%;
    width: 0;
    background: #0d6efd
}
    
    
.exp-row-saved { background:#f3f9f3 !important; }
.btnEliminarFila.disabled{
  opacity:.6; 
  cursor:not-allowed; 
  pointer-events:none; /* ðŸ”’ evita cualquier click en navegadores tercos */
}
    
.ref-row-saved{ background:#f3f9f3 !important; }
.btnEliminarFila.disabled{ opacity:.6; cursor:not-allowed; pointer-events:none; }

.sib-progress-hv {
    border-radius: 14px;
    overflow: hidden;
    background: #eef3f8;
    box-shadow: inset 0 1px 3px rgba(0,0,0,.08);
  }

  .sib-progress-hv .progress-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 8px;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .2px;
    text-align: center;
    white-space: normal;
    line-height: 1.15;
  }

  @media (max-width: 768px) {
    .sib-progress-hv {
      height: auto !important;
      display: block;
    }

    .sib-progress-hv .progress-bar {
      width: 100% !important;
      min-height: 38px;
      justify-content: flex-start;
      padding-left: 14px;
    }
  }

.autocomplete-list{position:absolute;top:100%;left:0;right:0;z-index:1056;border:1px solid #d8dee4;background:#fff;max-height:220px;overflow:auto;border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.08);}
      .autocomplete-item{padding:8px 10px;cursor:pointer;}
      .autocomplete-item:hover,.autocomplete-item.active{background:#f1f5f9;}
      .autocomplete-empty{padding:8px 10px;color:#6b7280;}

.table-sm td,.table-sm th{vertical-align:middle;}
      #tbodyAcademica tr:hover{background:#f7fafc;}
      .acad-status{font-size:.9rem;}
      .acad-state{font-size:.8rem;margin-top:.25rem;color:#2e7d32}
      .acad-state.error{color:#c62828}

.sib-final-consent {
    width: 100%;
    text-align: center;
  }

  .sib-final-consent-text {
    text-align: center;
    margin-bottom: 14px;
    color: #00205b;
    font-weight: 500;
  }

  .sib-final-pill {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    margin: 0 auto;
  }

  .sib-final-pill input[type="checkbox"] {
    margin-right: 8px;
  }

  .sib-final-pill-ui {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
  }

/* ===== SIB FINAL CARD (estética premium + centrado real) ===== */
.sib-final-card {
    max-width: 980px;
    margin: 0 auto;
    border: 1px solid rgba(0,32,91,.12);
    border-radius: 18px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 14px 34px rgba(0,0,0,.08);
}
.sib-final-head {
    padding: 18px 18px 16px 18px;
    background: linear-gradient(90deg, rgba(0,32,91,.10), rgba(0,32,91,.02));
    border-bottom: 1px solid rgba(0,32,91,.10);
    text-align: center;
}
.sib-final-kicker {
    display: inline-block;
    font-weight: 900;
    letter-spacing: .7px;
    text-transform: uppercase;
    font-size: 12px;
    color: rgba(0,32,91,.72);
    margin-bottom: 6px;
}
.sib-final-title {
    font-weight: 900;
    letter-spacing: .2px;
    color: #00205b;
    font-size: 26px;
    line-height: 1.12;
    margin: 0;
}
.sib-final-subtitle {
    margin-top: 8px;
    color: rgba(0,32,91,.80);
    font-size: 15px;
    line-height: 1.35;
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
}
.sib-final-body {
    padding: 18px;
    text-align: center;
}
.sib-final-alert {
    border: 1px solid rgba(0,32,91,.12);
    background: rgba(0,32,91,.03);
    border-radius: 16px;
    padding: 14px 16px;
    margin: 0 auto 14px auto;
    max-width: 860px;
    text-align: left;
}
.sib-final-alert-title {
    font-weight: 900;
    color: #00205b;
    margin: 0 0 4px 0;
    font-size: 15px;
}
.sib-final-alert-text {
    color: rgba(0,32,91,.88);
    font-size: 15px;
    line-height: 1.45;
}
.sib-final-consent {
    border: 1px solid rgba(0,32,91,.10);
    border-radius: 16px;
    padding: 14px 16px;
    background: #fff;
    margin: 0 auto 16px auto;
    max-width: 860px;
    text-align: left;
}
.sib-final-consent-text {
    color: #00205b;
    font-size: 15px;
    line-height: 1.45;
    margin: 0 0 12px 0;
}
.sib-final-pill {
    display: inline-flex;
    align-items: center;
    cursor: pointer;
    user-select: none;
    margin: 0;
}
.sib-final-pill input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.sib-final-pill-ui {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    border: 1px solid rgba(0,32,91,.18);
    background: #fff;
    border-radius: 999px;
    padding: 10px 14px;
    transition: all .15s ease;
    box-shadow: 0 6px 18px rgba(0,0,0,.06);
}
.sib-final-pill-box {
    width: 18px;
    height: 18px;
    border-radius: 6px;
    border: 2px solid rgba(0,32,91,.35);
    display: inline-block;
    position: relative;
    background: #fff;
    transition: all .15s ease;
}
.sib-final-pill-label {
    font-weight: 900;
    color: #00205b;
    font-size: 14.5px;
    line-height: 1;
}
.sib-final-pill input:checked + .sib-final-pill-ui {
    border-color: rgba(44,159,69,.55);
    background: rgba(44,159,69,.07);
}
.sib-final-pill input:checked + .sib-final-pill-ui .sib-final-pill-box {
    border-color: rgba(44,159,69,.85);
    background: rgba(44,159,69,.10);
}
.sib-final-pill input:checked + .sib-final-pill-ui .sib-final-pill-box:after {
    content: "";
    position: absolute;
    left: 4px;
    top: 1px;
    width: 6px;
    height: 10px;
    border: 3px solid rgba(44,159,69,.95);
    border-top: none;
    border-left: none;
    transform: rotate(45deg);
}
.sib-final-actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}
.sib-final-cta {
    width: 100%;
    max-width: 520px;
    border: 0;
    background: #2c9f45;
    color: #fff;
    font-weight: 900;
    letter-spacing: .2px;
    font-size: 16px;
    padding: 14px 18px;
    border-radius: 16px;
    cursor: pointer;
    box-shadow: 0 12px 26px rgba(44,159,69,.20);
    transition: transform .12s ease, box-shadow .12s ease, filter .12s ease;
}
.sib-final-cta:hover {
    filter: brightness(.98);
    transform: translateY(-1px);
    box-shadow: 0 14px 30px rgba(44,159,69,.26);
}
.sib-final-cta:active {

    transform: translateY(0);
    box-shadow: 0 10px 22px rgba(44,159,69,.18);
}
.sib-final-cta:focus {
    outline: none;
}
.sib-final-cta:focus-visible {
box-shadow:0 0 0 4px rgba(44,159,69,.22), 0 12px 26px rgba(44,159,69,.20);
}
.sib-final-hint {
    color: rgba(0,32,91,.70);
    font-size: 13px;
    line-height: 1.35;
    max-width: 680px;
}

@media (max-width:576px) {
.sib-final-head {
    padding: 16px;
}
.sib-final-title {
    font-size: 21px;
}
.sib-final-body {
    padding: 16px;
}
.sib-final-alert, .sib-final-consent {
    padding: 12px 12px;
    text-align: left;
}
.sib-final-cta {
    max-width: 100%;
    font-size: 15px;
    padding: 14px 16px;
}
}
   

.sib-menu-candidato-section {
  width: 100%;
}

.sib-zero-card {
  border: 1px solid #dce6f2;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 22px rgba(0, 32, 91, .06);
}

.sib-zero-header {
  background: linear-gradient(135deg, #00205b, #063b88);
  color: #fff;
  border-bottom: 0;
  padding: 14px 16px;
}

.sib-block-title {
  display: inline-block;
  font-size: .95rem;
  font-weight: 800;
  letter-spacing: .2px;
}

.sib-zero-body {
  background: #fff;
  padding: 14px;
}

.sib-list-group-rounded {
  border-radius: 14px;
  overflow: hidden;
}

.sib-zero-item {
  border-left: 0;
  border-right: 0;
  padding: 12px 14px;
  gap: 10px;
  color: #00205b;
  font-weight: 600;
  transition: all .18s ease-in-out;
}

.sib-zero-item:hover {
  background: #eef5ff;
  color: #00205b;
  transform: translateX(3px);
}

.sib-zero-icon {
  object-fit: contain;
}

.sib-item-text {
  display: inline-block;
  line-height: 1.2;
}

.sib-empty-menu {
  padding: 16px;
  text-align: center;
  color: #6c757d;
  background: #f8f9fa;
  border: 1px dashed #ced4da;
  border-radius: 12px;
  font-size: .9rem;
}

@media (max-width: 991px) {
  .sib-zero-card {
    margin-bottom: 14px;
  }
}

.sib-modalboost-mobile {
  border: 0;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 18px 45px rgba(0, 32, 91, .22);
}

.sib-modalboost-mobile-header {
  background: linear-gradient(135deg, #00205b, #06489d);
  color: #fff;
  border-bottom: 0;
  padding: 18px 22px;
}

.sib-modalboost-mobile-title {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #fff;
  font-weight: 800;
  letter-spacing: .3px;
  text-transform: uppercase;
}

.sib-modalboost-mobile-icon {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.16);
  border-radius: 50%;
  font-size: 1.25rem;
}

.sib-modalboost-mobile-close {
  color: #fff;
  opacity: .95;
  text-shadow: none;
}

.sib-modalboost-mobile-body {
  background: #f5f8fc;
  padding: 28px;
}

.sib-modalboost-mobile-card {
  background: #fff;
  border: 1px solid #dce6f2;
  border-radius: 18px;
  padding: 24px;
  text-align: left;
  box-shadow: 0 8px 22px rgba(0, 32, 91, .06);
}

.sib-modalboost-mobile-badge {
  display: inline-flex;
  align-items: center;
  background: #eaf2ff;
  color: #00205b;
  border-left: 5px solid #00205b;
  border-radius: 10px;
  padding: 8px 12px;
  font-size: .82rem;
  font-weight: 800;
  text-transform: uppercase;
  margin-bottom: 16px;
}

.sib-modalboost-mobile-heading {
  color: #00205b;
  font-weight: 800;
  margin-bottom: 14px;
}

.sib-modalboost-mobile-text {
  color: #344054;
  font-size: .98rem;
  line-height: 1.55;
  text-align: justify;
  margin-bottom: 12px;
}

.sib-modalboost-mobile-note {
  background: #fff8e1;
  border-left: 5px solid #ffc107;
  color: #5f4700;
  border-radius: 12px;
  padding: 14px 16px;
  margin: 18px 0;
  line-height: 1.45;
}

.sib-modalboost-mobile-steps {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}

.sib-modalboost-mobile-step {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #f8fbff;
  border: 1px solid #e1e9f3;
  border-radius: 12px;
  padding: 10px 12px;
  color: #00205b;
  font-weight: 600;
}

.sib-modalboost-mobile-step span {
  width: 28px;
  height: 28px;
  min-width: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #00205b;
  color: #fff;
  border-radius: 50%;
  font-weight: 800;
}

.sib-modalboost-mobile-footer {
  background: #eef5ff;
  border-top: 1px solid #dce6f2;
  justify-content: center;
  padding: 18px;
}

.sib-modalboost-mobile-btn {
  background: #00205b;
  color: #fff;
  border-radius: 14px;
  padding: 10px 26px;
  font-weight: 800;
  border: 0;
  box-shadow: 0 8px 18px rgba(0, 32, 91, .22);
}

.sib-modalboost-mobile-btn:hover {
  background: #063b88;
  color: #fff;
}

@media (max-width: 576px) {
  .sib-modalboost-mobile-body {
    padding: 18px;
  }

  .sib-modalboost-mobile-card {
    padding: 18px;
  }

  .sib-modalboost-mobile-title {
    font-size: .95rem;
  }

  .sib-modalboost-mobile-heading {
    font-size: 1.15rem;
  }

  .sib-modalboost-mobile-btn {
    width: 100%;
  }
}

.sib-acad-actions {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

.sib-acad-submit {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 320px;
  max-width: 100%;
  padding: 11px 22px;
  font-weight: 700;
  border-radius: 14px;
}

@media (max-width: 576px) {
  .sib-acad-submit {
    width: 100%;
    min-width: 0;
  }
}

.sib-final-body {
  width: 100%;
  max-width: 920px;
  margin: 0 auto;
  text-align: center;
}

.sib-final-alert,
.sib-final-consent,
.sib-final-actions {
  width: 100%;
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
}

.sib-final-alert {
  text-align: left;
}

.sib-final-consent {
  text-align: center;
}

.sib-final-consent-text {
  text-align: center;
  margin-bottom: 14px;
}

.sib-final-consent-check {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

.sib-final-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  cursor: pointer;
}

.sib-final-pill-ui {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.sib-final-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.sib-final-cta {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 360px;
  max-width: 100%;
}

.sib-final-hint {
  text-align: center;
  margin-top: 10px;
}

.sib-alertboost-final {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  width: 100%;
  max-width: 920px;
  margin: 0 auto;
  padding: 18px 48px 18px 18px;
  background: #f4fbf6;
  border: 1px solid #d8f0de;
  border-left: 6px solid #2c9f45;
  border-radius: 16px;
  box-shadow: 0 8px 22px rgba(44, 159, 69, .08);
}

.sib-alertboost-icon {
  width: 42px;
  height: 42px;
  min-width: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #2c9f45;
  color: #fff;
  border-radius: 50%;
  font-size: 1.15rem;
}

.sib-alertboost-content {
  flex: 1;
  text-align: left;
}

.sib-alertboost-title {
  color: #0f5132;
  font-weight: 900;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: .3px;
  margin-bottom: 4px;
}

.sib-alertboost-text {
  color: #244232;
  font-size: .95rem;
  line-height: 1.45;
  font-weight: 600;
}

.sib-alertboost-note {
  margin-top: 10px;
  padding: 10px 12px;
  background: #ffffff;
  border: 1px solid #dcefe3;
  border-radius: 12px;
  color: #365244;
  font-size: .88rem;
  line-height: 1.4;
}

.sib-alertboost-close {
  position: absolute;
  top: 10px;
  right: 14px;
  border: 0;
  background: transparent;
  color: #0f5132;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  opacity: .75;
}

.sib-alertboost-close:hover {
  opacity: 1;
}

@media (max-width: 576px) {
  .sib-alertboost-final {
    flex-direction: column;
    padding: 18px;
  }

  .sib-alertboost-icon {
    margin: 0 auto;
  }

  .sib-alertboost-content {
    text-align: center;
  }

  .sib-alertboost-close {
    top: 8px;
    right: 12px;
  }
}

.sib-alertboost-continuar {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  width: 100%;
  max-width: 920px;
  margin: 0 auto;
  padding: 18px;
  background: #f8fbff;
  border: 1px solid #dce6f2;
  border-left: 6px solid #00205b;
  border-radius: 16px;
  box-shadow: 0 8px 22px rgba(0, 32, 91, .06);
  text-align: left;
}

.sib-alertboost-continuar-icon {
  width: 44px;
  height: 44px;
  min-width: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #00205b;
  color: #fff;
  border-radius: 50%;
  font-size: 1.1rem;
}

.sib-alertboost-continuar-content {
  flex: 1;
}

.sib-alertboost-continuar-title {
  color: #00205b;
  font-weight: 900;
  font-size: 1.05rem;
  text-transform: uppercase;
  letter-spacing: .3px;
  margin-bottom: 6px;
}

.sib-alertboost-continuar-text {
  color: #344054;
  font-size: .95rem;
  line-height: 1.45;
  font-weight: 600;
}

.sib-alertboost-continuar-note {
  margin-top: 10px;
  padding: 10px 12px;
  background: #eef5ff;
  border: 1px solid #d8e7fb;
  border-radius: 12px;
  color: #00205b;
  font-size: .9rem;
  line-height: 1.4;
}

@media (max-width: 576px) {
  .sib-alertboost-continuar {
    flex-direction: column;
    text-align: center;
  }

  .sib-alertboost-continuar-icon {
    margin: 0 auto;
  }
}

.sib-alertboost-entidades {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  width: 100%;
  max-width: 920px;
  margin: 0 auto;
  padding: 18px 48px 18px 18px;
  background: #f8fbff;
  border: 1px solid #dce6f2;
  border-left: 6px solid #00205b;
  border-radius: 16px;
  box-shadow: 0 8px 22px rgba(0, 32, 91, .06);
  text-align: left;
}

.sib-alertboost-entidades-icon {
  width: 44px;
  height: 44px;
  min-width: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #00205b;
  color: #fff;
  border-radius: 50%;
  font-size: 1.15rem;
}

.sib-alertboost-entidades-content {
  flex: 1;
}

.sib-alertboost-entidades-title {
  color: #00205b;
  font-weight: 900;
  font-size: 1.05rem;
  text-transform: uppercase;
  letter-spacing: .3px;
  margin-bottom: 6px;
}

.sib-alertboost-entidades-text {
  color: #344054;
  font-size: .95rem;
  line-height: 1.45;
  font-weight: 600;
}

.sib-alertboost-entidades-note {
  margin-top: 10px;
  padding: 10px 12px;
  background: #eef5ff;
  border: 1px solid #d8e7fb;
  border-radius: 12px;
  color: #00205b;
  font-size: .9rem;
  line-height: 1.4;
}

.sib-alertboost-entidades-close {
  position: absolute;
  top: 10px;
  right: 14px;
  border: 0;
  background: transparent;
  color: #00205b;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  opacity: .7;
}

.sib-alertboost-entidades-close:hover {
  opacity: 1;
}

@media (max-width: 576px) {
  .sib-alertboost-entidades {
    flex-direction: column;
    text-align: center;
    padding: 18px;
  }

  .sib-alertboost-entidades-icon {
    margin: 0 auto;
  }

  .sib-alertboost-entidades-close {
    top: 8px;
    right: 12px;
  }
}

.sib-firma-contrato-section {
  width: 100%;
}

.sib-firma-hero {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  background: #f8fbff;
  border: 1px solid #dce6f2;
  border-left: 6px solid #00205b;
  border-radius: 18px;
  padding: 20px;
  box-shadow: 0 8px 22px rgba(0, 32, 91, .06);
}

.sib-firma-hero-icon {
  width: 54px;
  height: 54px;
  min-width: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #00205b;
  color: #fff;
  border-radius: 50%;
  font-size: 1.35rem;
}

.sib-firma-hero-title {
  color: #00205b;
  font-weight: 900;
  font-size: 1.08rem;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.sib-firma-hero-text {
  color: #344054;
  font-size: .95rem;
  line-height: 1.45;
}

.sib-firma-candidato-card,
.sib-firma-camera-card,
.sib-firma-preview-card {
  background: #fff;
  border: 1px solid #dce6f2;
  border-radius: 18px;
  padding: 18px;
  box-shadow: 0 8px 22px rgba(0, 32, 91, .05);
}

.sib-firma-card-title,
.sib-firma-preview-title {
  color: #00205b;
  font-weight: 900;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: .2px;
  margin-bottom: 14px;
  text-align: center;
}

.sib-label-center {
  display: block;
  text-align: center;
}

.sib-firma-step-badge {
  display: inline-flex;
  background: #eef5ff;
  color: #00205b;
  border-left: 5px solid #00205b;
  border-radius: 10px;
  padding: 8px 14px;
  font-weight: 900;
  text-transform: uppercase;
  margin-bottom: 14px;
}

.sib-firma-helper {
  color: #667085;
  font-size: .88rem;
  line-height: 1.35;
}

.sib-video-frame {
  background: #0f172a;
  border-radius: 18px;
  padding: 14px;
  border: 1px solid #dce6f2;
  box-shadow: 0 12px 26px rgba(15, 23, 42, .18);
}

#video {
  width: 100%;
  max-height: 430px;
  border-radius: 14px;
  background: #111827;

  /* contain, NO cover (09/09/2026).
     `cover` rellenaba la caja RECORTANDO lo que sobraba, y como la caja es mas
     apaisada que cualquier camara, el recorte se comia la frente y el menton
     del empleado: no habia forma de encuadrarse.
     `contain` nunca recorta -- si algo no encaja deja franja del fondo oscuro.

     Este selector es por ID y por eso MANDA sobre `.sib-video-wrap video`. Es
     la trampa que ya estaba documentada al final de este archivo, y hay que
     corregir aqui: cambiarlo solo en la clase no habria hecho nada.

     Lo usan 12 pantallas (marcacion, firma, reconocimiento facial). El cambio
     es seguro para todas: contain solo puede mostrar MAS, nunca menos. */
  object-fit: contain;
}

.sib-camera-status {
  background: #f8fbff;
  border-radius: 12px;
  padding: 10px 12px;
  font-weight: 700;
  font-size: .9rem;
}

.sib-camera-status-info {
  color: #00205b;
  border: 1px solid #d8e7fb;
}

.sib-camera-status-ok {
  color: #0f5132;
  border: 1px solid #badbcc;
  background: #f4fbf6;
}

.sib-camera-status-error {
  color: #842029;
  border: 1px solid #f5c2c7;
  background: #fff5f5;
}

.sib-camera-btn {
  background: #00205b;
  color: #fff;
  border: 0;
  border-radius: 16px;
  padding: 12px 24px;
  font-weight: 900;
  box-shadow: 0 8px 18px rgba(0, 32, 91, .22);
}

.sib-camera-btn:hover {
  background: #063b88;
  color: #fff;
}

.sib-firma-photo-ready,
.sib-firma-warning {
  max-width: 920px;
  margin: 0 auto;
  background: #f4fbf6;
  border: 1px solid #d8f0de;
  border-left: 6px solid #2c9f45;
  border-radius: 16px;
  padding: 16px;
  color: #0f5132;
  font-weight: 800;
  text-align: center;
}

.sib-firma-photo-ready-icon {
  font-size: 1.35rem;
  margin-bottom: 6px;
}

.sib-firma-warning {
  background: #fff8e1;
  border-color: #ffe8a1;
  border-left-color: #ffc107;
  color: #5f4700;
}

.sib-firma-photo-img {
  max-width: 300px;
  width: 100%;
  height: auto;
  border-radius: 16px;
}

.sib-firma-qr-img {
  max-width: 300px;
  width: 100%;
  height: auto;
  border-radius: 16px;
}

.sib-firma-empty {
  background: #f8f9fa;
  border: 1px dashed #ced4da;
  color: #6c757d;
  border-radius: 14px;
  padding: 28px 16px;
  font-weight: 700;
}

.sib-code-input {
  text-align: center;
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: .8px;
}

.sib-firma-submit {
  min-width: 280px;
  border-radius: 16px;
  font-weight: 900;
  padding: 11px 22px;
}

.sib-alertboost-firma,
.sib-alertboost-contrato,
.sib-alertboost-codigo,
.sib-alertboost-ajustes,
.sib-alertboost-firmado {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  width: 100%;
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
  padding: 18px;
  background: #f8fbff;
  border: 1px solid #dce6f2;
  border-left: 6px solid #00205b;
  border-radius: 16px;
  box-shadow: 0 8px 22px rgba(0, 32, 91, .06);
  text-align: left;
}

.sib-alertboost-firma-icon,
.sib-alertboost-contrato-icon,
.sib-alertboost-codigo-icon,
.sib-alertboost-ajustes-icon,
.sib-alertboost-firmado-icon {
  width: 44px;
  height: 44px;
  min-width: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #00205b;
  color: #fff;
  border-radius: 50%;
  font-size: 1.15rem;
}

.sib-alertboost-firma-content,
.sib-alertboost-contrato-content,
.sib-alertboost-codigo-content,
.sib-alertboost-ajustes-content,
.sib-alertboost-firmado-content {
  flex: 1;
}

.sib-alertboost-firma-title,
.sib-alertboost-contrato-title,
.sib-alertboost-codigo-title,
.sib-alertboost-firmado-title {
  color: #00205b;
  font-weight: 900;
  font-size: 1.05rem;
  text-transform: uppercase;
  letter-spacing: .3px;
  margin-bottom: 6px;
}

.sib-alertboost-firma-text,
.sib-alertboost-contrato-text,
.sib-alertboost-codigo-text,
.sib-alertboost-firmado-text {
  color: #344054;
  font-size: .95rem;
  line-height: 1.45;
  font-weight: 600;
}

.sib-alertboost-firma-note,
.sib-alertboost-codigo-note {
  margin-top: 10px;
  padding: 10px 12px;
  background: #fff8e1;
  border: 1px solid #ffe8a1;
  border-radius: 12px;
  color: #5f4700;
  font-size: .9rem;
  line-height: 1.4;
}

.sib-alertboost-contrato-steps {
  margin-top: 12px;
  display: grid;
  gap: 8px;
  color: #00205b;
  font-weight: 650;
}

.sib-alertboost-ajustes {
  background: #eef5ff;
}

.sib-alertboost-ajustes-content {
  color: #00205b;
  font-weight: 650;
  line-height: 1.45;
}

.sib-alertboost-firmado {
  background: #f4fbf6;
  border-left-color: #2c9f45;
}

.sib-alertboost-firmado-icon {
  background: #2c9f45;
}

.sib-alertboost-firmado-title {
  color: #0f5132;
}

@media (max-width: 768px) {
  .sib-firma-hero,
  .sib-alertboost-firma,
  .sib-alertboost-contrato,
  .sib-alertboost-codigo,
  .sib-alertboost-ajustes,
  .sib-alertboost-firmado {
    flex-direction: column;
    text-align: center;
  }

  .sib-firma-hero-icon,
  .sib-alertboost-firma-icon,
  .sib-alertboost-contrato-icon,
  .sib-alertboost-codigo-icon,
  .sib-alertboost-ajustes-icon,
  .sib-alertboost-firmado-icon {
    margin: 0 auto;
  }

  .sib-firma-submit,
  .sib-camera-btn {
    width: 100%;
  }
}

.sib-autogestion-panel {
  width: 100%;
}

.sib-autogestion-card {
  border: 1px solid #dce6f2;
  border-radius: 18px;
  box-shadow: 0 8px 22px rgba(0, 32, 91, .06);
  overflow: hidden;
  background: #fff;
}

.sib-autogestion-header {
  padding: 16px 18px;
  background: #ffffff;
  border-bottom: 1px solid #e4ebf3;
}

.sib-autogestion-header-secondary {
  margin-top: 16px;
  border-top: 1px solid #e4ebf3;
}

.sib-autogestion-title {
  color: #00205b;
  font-weight: 900;
  font-size: 1.25rem;
  display: flex;
  align-items: center;
  gap: 8px;
}

.sib-autogestion-subtitle {
  color: #667085;
  font-size: .9rem;
  margin-top: 4px;
}

.sib-autogestion-body {
  padding: 16px;
}

.sib-autogestion-list {
  border-radius: 14px;
  overflow: hidden;
}

.sib-autogestion-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 14px;
  color: #00205b;
  font-weight: 700;
  border: 1px solid #edf2f7;
  margin-bottom: 8px;
  border-radius: 14px !important;
  transition: all .18s ease-in-out;
  background: #fff;
}

.sib-autogestion-item:hover {
  background: #eef5ff;
  color: #00205b;
  transform: translateX(3px);
  box-shadow: 0 6px 16px rgba(0, 32, 91, .08);
}

.sib-autogestion-icon {
  width: 46px;
  height: 46px;
  min-width: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #f8fbff;
  border: 1px solid #dce6f2;
  border-radius: 14px;
}

.sib-autogestion-icon img {
  object-fit: contain;
}

.sib-autogestion-text {
  flex: 1;
  line-height: 1.25;
}

.sib-autogestion-arrow {
  color: #98a2b3;
  font-size: .85rem;
}

.sib-autogestion-divider {
  height: 1px;
  background: #e4ebf3;
  margin: 18px 0;
}

.sib-autogestion-empty {
  padding: 18px;
  text-align: center;
  color: #667085;
  background: #f8f9fa;
  border: 1px dashed #cfd8e3;
  border-radius: 14px;
  font-weight: 600;
}

.sib-posts {
  display: grid;
  gap: 16px;
}

.sib-post-card {
  background: #fff;
  border: 1px solid #dce6f2;
  border-radius: 18px;
  padding: 18px;
  box-shadow: 0 8px 22px rgba(0, 32, 91, .05);
}

.sib-post-header {
  border-bottom: 1px solid #e4ebf3;
  margin-bottom: 12px;
  padding-bottom: 10px;
}

.sib-post-title {
  font-size: 1.1rem;
  font-weight: 900;
  margin: 0;
}

.sib-post-title a {
  color: #00205b;
  text-decoration: none;
}

.sib-post-title a:hover {
  text-decoration: underline;
}

.sib-post-content {
  color: #344054;
  line-height: 1.55;
  font-size: .95rem;
}

.sib-post-img {
  max-width: 100%;
  height: auto;
  border-radius: 14px;
}

.sib-post-actions .btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.sib-post-footer {
  margin-top: 14px;
  padding-top: 10px;
  border-top: 1px solid #e4ebf3;
  color: #667085;
  font-size: .88rem;
}

.sib-post-date {
  color: #d00000;
  font-weight: 800;
}

@media (max-width: 768px) {
  .sib-autogestion-title {
    font-size: 1.08rem;
  }

  .sib-autogestion-item {
    align-items: flex-start;
  }
}

.sib-section-title h4{
  color:#00205b;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.3px;
  margin:0;
}

.sib-table-head{
  background:#00205b;
  color:#ffffff;
}

.sib-radio-option{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-right:14px;
  font-weight:600;
  color:#333333;
}

.sib-card-header{
  background:#00205b !important;
  color:#ffffff !important;
  border-radius:10px 10px 0 0;
}

.sib-alert-danger{
  position:relative;
  padding:16px 42px 16px 18px;
  border-left:5px solid #dc3545;
  background:#fff1f1;
  color:#842029;
  border-radius:10px;
  font-size:14px;
  line-height:1.6;
}

.modalboost-popup{
  border-radius:16px !important;
  box-shadow:0 12px 34px rgba(0,0,0,.18) !important;
}

.modalboost-title{
  color:#00205b !important;
  font-weight:700 !important;
}

.modalboost-confirm{
  border-radius:8px !important;
  padding:10px 24px !important;
  font-weight:700 !important;
}

.sib-cert-wrapper{padding:18px 0 28px 0;}
.sib-cert-title{color:#00205b;font-weight:800;font-size:1.55rem;margin:0 0 8px 0;}
.sib-cert-breadcrumb{background:#f4f7fb;border-left:5px solid #00205b;border-radius:10px;padding:12px 16px;margin-bottom:22px;color:#00205b;font-weight:700;text-transform:uppercase;box-shadow:0 3px 10px rgba(0,0,0,.05);}
.sib-cert-card{background:#ffffff;border:1px solid #e5e9f2;border-radius:16px;padding:22px;box-shadow:0 6px 18px rgba(0,0,0,.06);margin-bottom:22px;}
.sib-cert-section-label{display:block;color:#00205b;font-size:1rem;font-weight:800;margin-bottom:8px;}
.sib-cert-section-label-danger{display:block;color:#c00000;font-size:1rem;font-weight:800;margin-bottom:8px;}
.sib-cert-radio-box{background:#fff5f5;border:1px solid #f3c2c2;border-radius:12px;padding:12px 14px;min-height:86px;}
.sib-cert-radio-option{display:flex;align-items:center;gap:8px;margin:0;color:#012649;font-size:1.2rem;font-weight:800;}
.sib-cert-radio-option input{width:18px;height:18px;}
.sib-cert-action-box{background:#f8fafc;border:1px solid #dce4f2;border-radius:12px;padding:12px 14px;min-height:86px;}
.sib-cert-action-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.sib-cert-action-row img{width:30px;height:30px;}
.sib-alert-cert{background:#f4f8ff;border:1px solid #cbdcf5;border-left:5px solid #00205b;border-radius:14px;padding:16px 18px;color:#333333;box-shadow:0 4px 12px rgba(0,0,0,.05);}
.sib-alert-cert strong{color:#00205b;}
.sib-alert-cert .close{color:#00205b;opacity:.9;}
@media(max-width:767px){.sib-cert-card{padding:16px;}.sib-cert-title{font-size:1.3rem;}.sib-cert-action-row{align-items:flex-start;}.sib-cert-action-row input[type='submit']{width:100%;margin-top:8px;}}

.sib-alertboost-certificacion{background:#ffffff;border:1px solid #dbe5f1;border-left:6px solid #00205b;border-radius:14px;padding:18px 20px;box-shadow:0 6px 16px rgba(0,0,0,.06);color:#333333;position:relative;margin-bottom:20px;}
.sib-alertboost-certificacion .sib-alertboost-close{position:absolute;top:10px;right:14px;color:#00205b;opacity:.75;font-size:1.4rem;font-weight:700;background:transparent;border:0;line-height:1;}
.sib-alertboost-certificacion .sib-alertboost-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding-right:28px;}
.sib-alertboost-certificacion .sib-alertboost-icon{width:42px;height:42px;border-radius:50%;background:#00205b;color:#ffffff;display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:800;flex:0 0 42px;}
.sib-alertboost-certificacion .sib-alertboost-title{margin:0;color:#00205b;font-size:1.05rem;font-weight:800;text-transform:uppercase;letter-spacing:.3px;}
.sib-alertboost-certificacion .sib-alertboost-text{margin:0;color:#444444;font-size:.96rem;line-height:1.6;}
.sib-alertboost-certificacion .sib-alertboost-steps{margin:12px 0 0 0;padding:0;list-style:none;}
.sib-alertboost-certificacion .sib-alertboost-steps li{display:flex;align-items:flex-start;gap:8px;margin-bottom:7px;color:#333333;font-size:.95rem;}
.sib-alertboost-certificacion .sib-alertboost-number{background:#eaf0f8;color:#00205b;border-radius:50%;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:.82rem;flex:0 0 24px;}
.sib-alertboost-certificacion .sib-alertboost-note{margin-top:12px;background:#fff8df;border:1px solid #f1d98b;border-radius:10px;padding:10px 12px;color:#5c4700;font-size:.9rem;}
@media(max-width:767px){.sib-alertboost-certificacion{padding:16px 15px;}.sib-alertboost-certificacion .sib-alertboost-head{align-items:flex-start;}.sib-alertboost-certificacion .sib-alertboost-title{font-size:.98rem;}}

.sib-alert-acciones-capacitacion {
    background: #ffffff;
    border: 1px solid #dbe4f0;
    border-left: 5px solid #00205b;
    border-radius: 14px;
    padding: 18px 20px;
    box-shadow: 0 6px 18px rgba(0, 32, 91, 0.08);
    color: #333333;
}

.sib-alert-acciones-capacitacion .close {
    color: #00205b;
    opacity: 0.85;
    font-size: 1.4rem;
    line-height: 1;
}

.sib-cap-accion-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 6px;
}

.sib-cap-accion-icon {
    width: 30px;
    height: 30px;
    object-fit: contain;
    flex-shrink: 0;
}

.sib-cap-accion-texto {
    color: #00205b;
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.2;
}

@media (max-width: 767.98px) {
    .sib-alert-acciones-capacitacion {
        padding: 16px 14px;
    }

    .sib-cap-accion-item {
        padding: 10px 4px;
        border-bottom: 1px solid #eef2f7;
    }

    .sib-cap-accion-item:last-child {
        border-bottom: none;
    }

    .sib-cap-accion-texto {
        font-size: 1rem;
    }
}

/* =========================================================
   CODEHTML - TABLA CAPACITACIONES AUTOGESTIÓN
   ========================================================= */

.sib-table-card {
    background: #ffffff;
    border: 1px solid #dbe4f0;
    border-radius: 16px;
    padding: 16px;
    box-shadow: 0 8px 24px rgba(0, 32, 91, 0.08);
    margin-bottom: 20px;
}

.sib-table-card .table-responsive {
    border-radius: 12px;
    overflow-x: auto;
}

.sib-table-capacitaciones {
    width: 100% !important;
    margin-bottom: 0;
    background: #ffffff;
    border-collapse: separate;
    border-spacing: 0;
}

.sib-table-capacitaciones thead th,
.sib-table-capacitaciones tfoot th {
    background: #00205b;
    color: #ffffff;
    font-weight: 700;
    font-size: 0.85rem;
    text-align: center;
    vertical-align: middle;
    border-color: #00205b;
    white-space: nowrap;
}

.sib-table-capacitaciones tbody td {
    font-size: 0.88rem;
    color: #333333;
    vertical-align: middle;
    border-color: #e4eaf2;
}

.sib-table-capacitaciones tbody tr {
    background: #ffffff;
    transition: all 0.2s ease-in-out;
}

.sib-table-capacitaciones tbody tr:hover {
    background: #f4f8fc;
}

.sib-table-capacitaciones .sib-td-center {
    text-align: center;
    white-space: nowrap;
}

.sib-table-capacitaciones .sib-td-capacitacion {
    font-weight: 600;
    color: #00205b;
}

.sib-table-capacitaciones .sib-action-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #f1f5fb;
    border: 1px solid #dbe4f0;
    transition: all 0.2s ease-in-out;
}

.sib-table-capacitaciones .sib-action-link:hover {
    background: #e7eef8;
    transform: translateY(-1px);
    text-decoration: none;
}

.sib-table-capacitaciones .sib-action-icon {
    width: 24px;
    height: 24px;
    object-fit: contain;
}

@media (max-width: 767.98px) {
    .sib-table-card {
        padding: 10px;
        border-radius: 12px;
    }

    .sib-table-capacitaciones thead th,
    .sib-table-capacitaciones tfoot th {
        font-size: 0.78rem;
    }

    .sib-table-capacitaciones tbody td {
        font-size: 0.82rem;
    }

    .sib-table-capacitaciones .sib-action-link {
        width: 32px;
        height: 32px;
    }

    .sib-table-capacitaciones .sib-action-icon {
        width: 22px;
        height: 22px;
    }
}

/* =========================================================
   CODEHTML - FORMULARIO MODIFICACIÓN DOCUMENTO
   ========================================================= */

.sib-doc-form-card {
    background: #ffffff;
    border: 1px solid #dbe4f0;
    border-radius: 18px;
    padding: 22px;
    box-shadow: 0 8px 24px rgba(0, 32, 91, 0.08);
    margin-bottom: 24px;
}

.sib-doc-alert {
    width: 100%;
    background: #f8fbff;
    border: 1px solid #dbe4f0;
    border-left: 5px solid #00205b;
    border-radius: 14px;
    padding: 16px 18px;
    color: #333333;
    margin-bottom: 22px;
    box-shadow: 0 4px 14px rgba(0, 32, 91, 0.06);
}

.sib-doc-alert strong {
    color: #00205b;
    font-weight: 800;
}

.sib-doc-alert-text {
    font-size: 0.98rem;
    line-height: 1.55;
    margin: 0;
    padding-right: 28px;
}

.sib-doc-alert .close {
    color: #00205b;
    opacity: 0.9;
}

.sib-field {
    margin-bottom: 16px;
}

.sib-label {
    display: block;
    color: #00205b;
    font-weight: 700;
    font-size: 0.92rem;
    margin-bottom: 6px;
}

.sib-control {
    border: 1px solid #ccd7e5;
    border-radius: 10px;
    min-height: 40px;
    font-size: 0.92rem;
    color: #333333;
}

.sib-control:focus {
    border-color: #00205b;
    box-shadow: 0 0 0 0.15rem rgba(0, 32, 91, 0.15);
}

.sib-textarea {
    min-height: 110px;
    resize: vertical;
}

.sib-file-control {
    padding: 7px 10px;
}

.sib-form-actions {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 8px;
}

.sib-btn-primary {
    background: #00205b;
    border-color: #00205b;
    color: #ffffff;
    font-weight: 700;
    border-radius: 10px;
    padding: 10px 22px;
    box-shadow: 0 6px 16px rgba(0, 32, 91, 0.18);
}

.sib-btn-primary:hover {
    background: #001846;
    border-color: #001846;
    color: #ffffff;
}

@media (max-width: 767.98px) {
    .sib-doc-form-card {
        padding: 16px;
        border-radius: 14px;
    }

    .sib-doc-alert {
        padding: 14px;
    }

    .sib-doc-alert-text {
        font-size: 0.9rem;
    }

    .sib-btn-primary {
        width: 100%;
        padding: 11px 16px;
    }
}

/* =========================================================
   CODEHTML - ACCIONES DOCUMENTALES
   ========================================================= */

.sib-actions-doc-row {
    margin-bottom: 18px;
}

.sib-action-doc-card {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #ffffff;
    border: 1px solid #dbe4f0;
    border-left: 5px solid #00205b;
    border-radius: 14px;
    padding: 12px 14px;
    min-height: 68px;
    box-shadow: 0 6px 18px rgba(0, 32, 91, 0.08);
    text-decoration: none;
    transition: all 0.2s ease-in-out;
}

.sib-action-doc-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(0, 32, 91, 0.13);
    text-decoration: none;
}

.sib-action-doc-icon {
    width: 32px;
    height: 32px;
    object-fit: contain;
    flex-shrink: 0;
}

.sib-action-doc-btn {
    width: 100%;
    border-radius: 10px;
    font-weight: 700;
    font-size: 0.88rem;
    padding: 9px 12px;
    white-space: normal;
    text-align: center;
}

@media (max-width: 767.98px) {
    .sib-action-doc-card {
        margin-bottom: 12px;
    }

    .sib-action-doc-btn {
        font-size: 0.86rem;
    }
}

/* =========================================================
   CODEHTML - TABLA DOCUMENTOS SG-SST / GESTIÓN DOCUMENTAL
   ========================================================= */

.sib-table-doc-card {
    background: #ffffff;
    border: 1px solid #dbe4f0;
    border-radius: 16px;
    padding: 16px;
    box-shadow: 0 8px 24px rgba(0, 32, 91, 0.08);
    margin-bottom: 22px;
}

.sib-table-doc-card .table-responsive {
    border-radius: 12px;
    overflow-x: auto;
}

.sib-table-documentos {
    width: 100% !important;
    margin-bottom: 0;
    background: #ffffff;
    border-collapse: separate;
    border-spacing: 0;
}

.sib-table-documentos thead th,
.sib-table-documentos tfoot th {
    background: #00205b;
    color: #ffffff;
    font-weight: 700;
    font-size: 0.78rem;
    text-align: center;
    vertical-align: middle;
    border-color: #00205b;
    white-space: nowrap;
}

.sib-table-documentos tbody td {
    font-size: 0.78rem;
    color: #333333;
    vertical-align: middle;
    border-color: #e4eaf2;
}

.sib-table-documentos tbody tr {
    background: #ffffff;
    transition: all 0.2s ease-in-out;
}

.sib-table-documentos tbody tr:hover {
    background: #f4f8fc;
}

.sib-table-documentos .sib-td-center {
    text-align: center;
    white-space: nowrap;
}

.sib-table-documentos .sib-td-doc {
    font-weight: 700;
    color: #00205b;
    min-width: 220px;
}

.sib-table-documentos .sib-td-text {
    font-weight: 600;
    color: #333333;
    min-width: 130px;
}

.sib-table-documentos .sib-action-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #f1f5fb;
    border: 1px solid #dbe4f0;
    transition: all 0.2s ease-in-out;
}

.sib-table-documentos .sib-action-link:hover {
    background: #e7eef8;
    transform: translateY(-1px);
    text-decoration: none;
}

.sib-table-documentos .sib-action-icon {
    width: 24px;
    height: 24px;
    object-fit: contain;
}

.sib-table-documentos .sib-qr-img {
    width: 90px;
    height: 90px;
    object-fit: contain;
    border: 1px solid #dbe4f0;
    border-radius: 10px;
    padding: 4px;
    background: #ffffff;
}

@media (max-width: 767.98px) {
    .sib-table-doc-card {
        padding: 10px;
        border-radius: 12px;
    }

    .sib-table-documentos thead th,
    .sib-table-documentos tfoot th {
        font-size: 0.72rem;
    }

    .sib-table-documentos tbody td {
        font-size: 0.74rem;
    }

    .sib-table-documentos .sib-action-link {
        width: 32px;
        height: 32px;
    }

    .sib-table-documentos .sib-action-icon {
        width: 22px;
        height: 22px;
    }

    .sib-table-documentos .sib-qr-img {
        width: 70px;
        height: 70px;
    }
}

/* =========================================================
   CODEHTML - LEYENDA ACCIONES DOCUMENTOS
   ========================================================= */

.sib-doc-legend-alert {
    background: #ffffff;
    border: 1px solid #dbe4f0;
    border-left: 5px solid #00205b;
    border-radius: 14px;
    padding: 16px 18px;
    box-shadow: 0 6px 18px rgba(0, 32, 91, 0.08);
    color: #333333;
    margin-bottom: 18px;
}

.sib-doc-legend-alert .close {
    color: #00205b;
    opacity: 0.9;
    font-size: 1.4rem;
}

.sib-doc-legend-content {
    padding-right: 26px;
}

.sib-doc-legend-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 6px;
}

.sib-doc-legend-icon {
    width: 30px;
    height: 30px;
    object-fit: contain;
    flex-shrink: 0;
}

.sib-doc-legend-text {
    color: #00205b;
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.25;
}

@media (max-width: 767.98px) {
    .sib-doc-legend-alert {
        padding: 14px;
    }

    .sib-doc-legend-item {
        padding: 10px 4px;
        border-bottom: 1px solid #eef2f7;
    }

    .sib-doc-legend-item:last-child {
        border-bottom: none;
    }

    .sib-doc-legend-text {
        font-size: 0.95rem;
    }
}

/* =========================================================
   CODEHTML - MODIFICACIÓN SALARIO FIJO / DOCUMENTO
   ========================================================= */

.sib-alert-salario {
    background: #fff7f7;
    border: 1px solid #f3c7c7;
    border-left: 6px solid #dc3545;
    border-radius: 14px;
    padding: 18px 20px;
    margin-bottom: 24px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.04);
}

.sib-alert-salario__title {
    color: #b00020;
    font-weight: 800;
    font-size: 1.05rem;
    margin-bottom: 4px;
    display: block;
}

.sib-alert-salario__text {
    color: #5f2120;
    font-size: 0.95rem;
    line-height: 1.5;
    margin: 0;
}

.sib-email-card {
    background: #ffffff;
    border: 1px solid #dbe3ef;
    border-left: 6px solid #00205b;
    border-radius: 14px;
    padding: 18px 20px;
    margin-bottom: 22px;
    box-shadow: 0 8px 22px rgba(0, 32, 91, 0.05);
}

.sib-email-card__title {
    color: #00205b;
    font-weight: 800;
    font-size: 1rem;
    margin-bottom: 12px;
    display: block;
    text-transform: uppercase;
}

.sib-radio-elegant {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #f4f7fb;
    border: 1px solid #dbe3ef;
    border-radius: 999px;
    padding: 9px 16px;
    color: #00205b;
    font-weight: 700;
    cursor: pointer;
}

.sib-radio-elegant input {
    transform: scale(1.1);
}

.sib-table-card {
    background: #ffffff;
    border: 1px solid #dbe3ef;
    border-radius: 14px;
    padding: 16px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.04);
}

.sib-table-card .table thead th,
.sib-table-card .table tfoot th {
    background: #00205b;
    color: #ffffff;
    font-size: 0.82rem;
    vertical-align: middle;
    text-align: center;
    white-space: nowrap;
}

.sib-table-card .table tbody td {
    vertical-align: middle;
    font-size: 0.84rem;
}

.sib-table-card .form-control {
    font-size: 0.84rem;
    min-height: 34px;
}

.sib-submit-zone {
    margin-top: 24px;
    text-align: center;
}

.sib-btn-modificacion {
    background: #00205b;
    border-color: #00205b;
    border-radius: 999px;
    padding: 8px 22px;
    font-weight: 700;
    letter-spacing: .2px;
}

.sib-btn-modificacion:hover {
    background: #001640;
    border-color: #001640;
}

@media (max-width: 768px) {
    .sib-alert-salario,
    .sib-email-card,
    .sib-table-card {
        padding: 14px;
        border-radius: 12px;
    }

    .sib-radio-elegant {
        width: 100%;
        justify-content: center;
        border-radius: 12px;
        text-align: center;
    }
}

/* =========================================================
   CODEHTML - TARJETA ENVÍO EMAIL AMBIENTACIÓN ROJA
   ========================================================= */

.sib-email-card {
    background: #fff7f7;
    border: 1px solid #f3c7c7;
    border-left: 6px solid #dc3545;
    border-radius: 14px;
    padding: 18px 20px;
    margin-bottom: 22px;
    box-shadow: 0 8px 22px rgba(220, 53, 69, 0.08);
}

.sib-email-card__title {
    color: #b00020;
    font-weight: 800;
    font-size: 1rem;
    margin-bottom: 12px;
    display: block;
    text-transform: uppercase;
}

.sib-radio-elegant {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #ffffff;
    border: 1px solid #f1b8b8;
    border-radius: 999px;
    padding: 9px 16px;
    color: #b00020;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(220, 53, 69, 0.08);
}

.sib-radio-elegant input {
    transform: scale(1.1);
    accent-color: #dc3545;
}

.sib-radio-elegant:hover {
    background: #fff0f0;
    border-color: #dc3545;
}

@media (max-width: 768px) {
    .sib-email-card {
        padding: 14px;
        border-radius: 12px;
    }

    .sib-radio-elegant {
        width: 100%;
        justify-content: center;
        border-radius: 12px;
        text-align: center;
    }
}

/* =========================================================
   CODEHTML - FIRMA DOCUMENTOS ELECTRÓNICOS
   ========================================================= */

.sib-alert-firma-electronica {
    background: #f4f8ff;
    border: 1px solid #cbdaf0;
    border-left: 6px solid #00205b;
    border-radius: 14px;
    padding: 18px 20px;
    margin-bottom: 24px;
    box-shadow: 0 8px 22px rgba(0, 32, 91, 0.06);
}

.sib-alert-firma-electronica__title {
    color: #00205b;
    font-weight: 800;
    font-size: 1.05rem;
    margin-bottom: 6px;
    display: block;
    text-transform: uppercase;
}

.sib-alert-firma-electronica__text {
    color: #263238;
    font-size: 0.95rem;
    line-height: 1.6;
    margin: 0;
}

.sib-alert-firma-electronica__icon {
    width: 36px;
    height: 36px;
    vertical-align: middle;
    margin: 0 4px;
}

.sib-card-tabla-firma {
    background: #ffffff;
    border: 1px solid #dbe3ef;
    border-radius: 14px;
    padding: 16px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.04);
}

.sib-card-tabla-firma .table thead th,
.sib-card-tabla-firma .table tfoot th {
    background: #00205b;
    color: #ffffff;
    font-size: 0.82rem;
    text-align: center;
    vertical-align: middle;
    white-space: nowrap;
}

.sib-card-tabla-firma .table tbody td {
    font-size: 0.84rem;
    vertical-align: middle;
    text-align: center;
}

.sib-action-icon {
    width: 38px;
    height: 38px;
    transition: transform .15s ease, opacity .15s ease;
}

.sib-action-link:hover .sib-action-icon {
    transform: scale(1.08);
    opacity: .88;
}

.sib-doc-name {
    color: #00205b;
    font-weight: 700;
}

.sib-muted-small {
    color: #607080;
    font-size: 0.82rem;
}

@media (max-width: 768px) {
    .sib-alert-firma-electronica,
    .sib-card-tabla-firma {
        padding: 14px;
        border-radius: 12px;
    }

    .sib-alert-firma-electronica__text {
        font-size: 0.9rem;
    }

    .sib-action-icon {
        width: 34px;
        height: 34px;
    }
}

/* =========================================================
   CODEHTML - FIRMA ELECTRÓNICA DOCUMENTO INDIVIDUAL
   ========================================================= */

.sib-firma-wrapper {
    background: #ffffff;
    border: 1px solid #dbe3ef;
    border-radius: 16px;
    padding: 22px;
    margin-bottom: 24px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05);
}

.sib-section-title {
    color: #00205b;
    font-size: 1.05rem;
    font-weight: 800;
    text-align: center;
    text-transform: uppercase;
    margin: 0 0 18px 0;
    letter-spacing: .3px;
}

.sib-field-label {
    color: #00205b;
    font-size: 0.86rem;
    font-weight: 700;
    margin-bottom: 5px;
    display: block;
}

.sib-readonly-control {
    background: #f7f9fc !important;
    border: 1px solid #dbe3ef;
    color: #263238;
    font-weight: 600;
}

.sib-alert-firma-info {
    background: #f4f8ff;
    border: 1px solid #cbdaf0;
    border-left: 6px solid #00205b;
    border-radius: 14px;
    padding: 18px 20px;
    margin: 24px 0;
    box-shadow: 0 8px 22px rgba(0, 32, 91, 0.06);
}

.sib-alert-firma-info__title {
    color: #00205b;
    font-weight: 800;
    font-size: 1rem;
    display: block;
    margin-bottom: 6px;
    text-transform: uppercase;
}

.sib-alert-firma-info__text {
    color: #263238;
    font-size: 0.95rem;
    line-height: 1.6;
    margin: 0;
}

.sib-alert-firma-danger {
    background: #fff7f7;
    border: 1px solid #f3c7c7;
    border-left: 6px solid #dc3545;
    border-radius: 14px;
    padding: 16px 18px;
    height: 100%;
    box-shadow: 0 8px 20px rgba(220, 53, 69, 0.06);
}

.sib-alert-firma-danger__title {
    color: #b00020;
    font-weight: 800;
    font-size: 0.95rem;
    display: block;
    margin-bottom: 6px;
    text-transform: uppercase;
}

.sib-alert-firma-danger__text {
    color: #5f2120;
    font-size: 0.9rem;
    line-height: 1.55;
    margin: 0;
}

.sib-codigo-box {
    background: #f8fafc;
    border: 1px solid #dbe3ef;
    border-left: 6px solid #2c9f45;
    border-radius: 14px;
    padding: 16px 18px;
    height: 100%;
}

.sib-codigo-label {
    color: #11862f;
    font-size: 0.95rem;
    line-height: 1.5;
    font-weight: 800;
    display: block;
    margin-bottom: 10px;
}

.sib-codigo-label strong {
    color: #dc3545;
}

.sib-codigo-input {
    min-height: 42px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: none;
}

.sib-firma-submit-zone {
    margin-top: 28px;
    text-align: center;
}

.sib-btn-firma-electronica {
    background: #2c9f45;
    border-color: #2c9f45;
    border-radius: 999px;
    padding: 10px 28px;
    color: #ffffff;
    font-weight: 800;
    letter-spacing: .2px;
    box-shadow: 0 8px 18px rgba(44, 159, 69, 0.18);
}

.sib-btn-firma-electronica:hover {
    background: #23873a;
    border-color: #23873a;
    color: #ffffff;
}

@media (max-width: 768px) {
    .sib-firma-wrapper {
        padding: 16px;
        border-radius: 14px;
    }

    .sib-alert-firma-info,
    .sib-alert-firma-danger,
    .sib-codigo-box {
        padding: 14px;
        border-radius: 12px;
    }

    .sib-section-title {
        font-size: 1rem;
    }

    .sib-btn-firma-electronica {
        width: 100%;
        padding: 11px 18px;
    }
}

/* =========================================================
   CODEHTML - MODIFICACIÓN SALARIO FIJO / CARGO
   ========================================================= */

.sib-alert-salario {
    background: #fff7f7;
    border: 1px solid #f3c7c7;
    border-left: 6px solid #dc3545;
    border-radius: 14px;
    padding: 18px 20px;
    margin-bottom: 24px;
    box-shadow: 0 8px 22px rgba(220, 53, 69, 0.08);
}

.sib-alert-salario__title {
    color: #b00020;
    font-weight: 800;
    font-size: 1.05rem;
    margin-bottom: 4px;
    display: block;
    text-transform: uppercase;
}

.sib-alert-salario__text {
    color: #5f2120;
    font-size: 0.95rem;
    line-height: 1.5;
    margin: 0;
}

.sib-email-card {
    background: #fff7f7;
    border: 1px solid #f3c7c7;
    border-left: 6px solid #dc3545;
    border-radius: 14px;
    padding: 18px 20px;
    margin-bottom: 22px;
    box-shadow: 0 8px 22px rgba(220, 53, 69, 0.08);
}

.sib-email-card__title {
    color: #b00020;
    font-weight: 800;
    font-size: 1rem;
    margin-bottom: 12px;
    display: block;
    text-transform: uppercase;
}

.sib-radio-elegant {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #ffffff;
    border: 1px solid #f1b8b8;
    border-radius: 999px;
    padding: 9px 16px;
    color: #b00020;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(220, 53, 69, 0.08);
}

.sib-radio-elegant input {
    transform: scale(1.1);
    accent-color: #dc3545;
}

.sib-radio-elegant:hover {
    background: #fff0f0;
    border-color: #dc3545;
}

.sib-table-card {
    background: #ffffff;
    border: 1px solid #dbe3ef;
    border-radius: 14px;
    padding: 16px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.04);
}

.sib-table-card .table thead th,
.sib-table-card .table tfoot th {
    background: #00205b;
    color: #ffffff;
    font-size: 0.82rem;
    vertical-align: middle;
    text-align: center;
    white-space: nowrap;
}

.sib-table-card .table tbody td {
    vertical-align: middle;
    font-size: 0.84rem;
}

.sib-table-card .form-control {
    font-size: 0.84rem;
    min-height: 34px;
}

.sib-submit-zone {
    margin-top: 24px;
    text-align: center;
}

.sib-btn-modificacion {
    background: #00205b;
    border-color: #00205b;
    border-radius: 999px;
    padding: 8px 22px;
    font-weight: 700;
    letter-spacing: .2px;
}

.sib-btn-modificacion:hover {
    background: #001640;
    border-color: #001640;
}

@media (max-width: 768px) {
    .sib-alert-salario,
    .sib-email-card,
    .sib-table-card {
        padding: 14px;
        border-radius: 12px;
    }

    .sib-radio-elegant {
        width: 100%;
        justify-content: center;
        border-radius: 12px;
        text-align: center;
    }
}

/* =========================================================
   CODEHTML - MODIFICACIÓN INFORMACIÓN EMPLEADO
   ========================================================= */

.sib-modificacion-card {
    background: #ffffff;
    border: 1px solid #dbe3ef;
    border-radius: 16px;
    padding: 20px;
    margin-bottom: 24px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05);
}

.sib-email-card {
    background: #fff7f7;
    border: 1px solid #f3c7c7;
    border-left: 6px solid #dc3545;
    border-radius: 14px;
    padding: 18px 20px;
    margin-bottom: 22px;
    box-shadow: 0 8px 22px rgba(220, 53, 69, 0.08);
}

.sib-email-card__title {
    color: #b00020;
    font-weight: 800;
    font-size: 1rem;
    margin-bottom: 12px;
    display: block;
    text-transform: uppercase;
}

.sib-radio-elegant {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #ffffff;
    border: 1px solid #f1b8b8;
    border-radius: 999px;
    padding: 9px 16px;
    color: #b00020;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(220, 53, 69, 0.08);
}

.sib-radio-elegant input {
    transform: scale(1.1);
    accent-color: #dc3545;
}

.sib-radio-elegant:hover {
    background: #fff0f0;
    border-color: #dc3545;
}

.sib-table-card {
    background: #ffffff;
    border: 1px solid #dbe3ef;
    border-radius: 14px;
    padding: 16px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.04);
}

.sib-table-card .table thead th,
.sib-table-card .table tfoot th {
    background: #00205b;
    color: #ffffff;
    font-size: 0.8rem;
    vertical-align: middle;
    text-align: center;
    white-space: nowrap;
}

.sib-table-card .table tbody td {
    vertical-align: middle;
    font-size: 0.82rem;
}

.sib-table-card .form-control {
    font-size: 0.82rem;
    min-height: 34px;
}

.sib-estado-verde {
    color: #2c9f45;
    font-weight: 800;
}

.sib-estado-rojo {
    color: #dc3545;
    font-weight: 800;
}

/* Estado intermedio: pendiente de revision. Agregada el 09/09/2026
   para el enrolamiento facial, que necesitaba un tercer estado
   entre el verde y el rojo. Mismo peso que sus hermanas. */
.sib-estado-ambar {
    color: #8a6100;
    font-weight: 800;
}

.sib-submit-zone {
    margin-top: 24px;
    text-align: center;
}

.sib-btn-modificacion {
    background: #00205b;
    border-color: #00205b;
    border-radius: 999px;
    padding: 8px 24px;
    font-weight: 700;
    letter-spacing: .2px;
}

.sib-btn-modificacion:hover {
    background: #001640;
    border-color: #001640;
}

@media (max-width: 768px) {
    .sib-modificacion-card,
    .sib-email-card,
    .sib-table-card {
        padding: 14px;
        border-radius: 12px;
    }

    .sib-radio-elegant {
        width: 100%;
        justify-content: center;
        border-radius: 12px;
        text-align: center;
    }
}

.sib-alertboost-card {
    background:#ffffff;
    border-left:6px solid #00205b;
    border-radius:10px;
    padding:18px 20px;
    margin:0 0 18px 0;
    box-shadow:0 4px 14px rgba(0,0,0,0.08);
    color:#333333;
}

.sib-alertboost-header {
    display:flex;
    gap:16px;
    align-items:flex-start;
}

.sib-alertboost-icon {
    flex:0 0 auto;
    width:52px;
    height:52px;
    border-radius:50%;
    background:#f1f4f8;
    display:flex;
    align-items:center;
    justify-content:center;
}

.sib-alertboost-content {
    flex:1;
}

.sib-alertboost-title {
    margin:0 0 8px 0;
    color:#00205b;
    font-size:1.1rem;
    font-weight:800;
    text-transform:uppercase;
}

.sib-alertboost-text {
    margin:0 0 10px 0;
    font-size:1rem;
    line-height:1.6;
    text-align:justify;
}

.sib-alertboost-note {
    margin-top:12px;
    background:#fff8e1;
    border-left:4px solid #ffc107;
    border-radius:6px;
    padding:12px 14px;
    font-size:.95rem;
    line-height:1.6;
    color:#4a4a4a;
    text-align:justify;
}

@media (max-width: 768px) {
    .sib-alertboost-header {
        flex-direction:column;
    }

    .sib-alertboost-icon {
        width:48px;
        height:48px;
    }

    .sib-alertboost-card {
        padding:16px;
    }
}

.sib-page-title {
  color: #00205b;
  font-weight: 700;
}

.sib-breadcrumb {
  background: #f4f6f9;
  border-left: 4px solid #00205b;
  border-radius: 8px;
  padding: 10px 14px;
  font-weight: 700;
  color: #00205b;
}

.sib-chart-card,
.sib-summary-card {
  margin-top: 18px;
}

.sib-chart-description {
  color: #00205b;
  font-weight: 600;
  text-align: justify;
  margin-top: 12px;
}

.sib-summary-total {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  justify-content: center;
  align-items: center;
  background: #f4f6f9;
  border-radius: 10px;
  padding: 12px;
  margin-bottom: 18px;
  color: #00205b;
}

.sib-summary-total span {
  color: #c00000;
  font-weight: 800;
}

.sib-month-box {
  background: #ffffff;
  border: 1px solid #dfe5ef;
  border-radius: 10px;
  padding: 8px;
  margin-bottom: 12px;
  box-shadow: 0 3px 10px rgba(0, 32, 91, 0.06);
}

.sib-month-label {
  color: #00205b;
  font-size: 0.82rem;
  min-height: 38px;
}

.sib-control-center {
  text-align: center;
  font-weight: 700;
}

.sib-percent-label {
  color: #c00000;
  font-size: 0.82rem;
  margin-top: 7px;
}

.sib-percent-input {
  color: #c00000;
}

.sib-table thead th,
.sib-table tfoot th {
  background: #00205b;
  color: #ffffff;
  text-align: center;
  vertical-align: middle;
}

.sib-table tbody td {
  vertical-align: middle;
}

.sib-actions {
  text-align: left;
}

.sib-alert {
  border-radius: 10px;
  padding: 12px 14px;
  margin: 15px 0;
}

.sib-alert-warning {
  background: #fff8e5;
  border-left: 4px solid #f0ad4e;
  color: #5c4600;
}

@media (max-width: 767.98px) {
  .sib-summary-total {
    flex-direction: column;
    align-items: flex-start;
  }

  .sib-actions .btn {
    width: 100%;
  }
}

.sib-form-card {
  background: #ffffff;
  border: 1px solid #e4e8ef;
  border-radius: 14px;
  padding: 22px;
  box-shadow: 0 6px 18px rgba(0, 32, 91, 0.08);
  margin-bottom: 24px;
}

.sib-form-header {
  border-bottom: 1px solid #edf0f5;
  padding-bottom: 14px;
  margin-bottom: 20px;
}

.sib-form-title {
  color: #00205b;
  font-size: 1.35rem;
  font-weight: 700;
  margin: 0;
}

.sib-form-subtitle {
  color: #5d6778;
  font-size: 0.93rem;
  margin: 5px 0 0 0;
}

.sib-field {
  margin-bottom: 18px;
}

.sib-label {
  display: block;
  color: #00205b;
  font-size: 0.92rem;
  font-weight: 700;
  margin-bottom: 7px;
}

.sib-control {
  border: 1px solid #cfd6e2;
  border-radius: 8px;
  min-height: 39px;
  font-size: 0.94rem;
  box-shadow: none;
}

.sib-control:focus {
  border-color: #00205b;
  box-shadow: 0 0 0 0.15rem rgba(0, 32, 91, 0.12);
}

.sib-btn-primary {
  background-color: #00205b;
  border-color: #00205b;
  border-radius: 8px;
  font-weight: 700;
  padding: 9px 22px;
}

.sib-btn-primary:hover,
.sib-btn-primary:focus {
  background-color: #001846;
  border-color: #001846;
}

@media (max-width: 767.98px) {
  .sib-form-card {
    padding: 16px;
    border-radius: 12px;
  }

  .sib-btn-primary {
    width: 100%;
  }
}

/* =========================================================
   SIB Autogestión - Cámara / Captura de fotografía
   ========================================================= */

/* --------------------------------------------------------------------------
   MARCO DE LA CAMARA — corregido el 09/09/2026

   QUE PASABA
   El marco era `width:100%` con alto FIJO de 460px. En una tarjeta ancha eso
   da una caja de proporcion ~2,6:1, muy apaisada. Una webcam entrega 4:3 (1,33)
   o 16:9 (1,78), y como el video iba con `object-fit:cover` -- que rellena la
   caja y RECORTA lo que sobra -- para cubrir esa caja tenia que ampliar el
   cuadro hasta que el ancho encajara, cortando arriba y abajo.

   Resultado: al empleado le quedaba la cabeza cortada por arriba y el menton
   por fuera. No se podia encuadrar porque no se veia.

   LO QUE NO PASABA, Y CONVIENE SABERLO
   La foto que se guarda NUNCA estuvo recortada. Tanto ingresar.js como
   foto_reconocimiento.js dibujan en el canvas desde `videoWidth`/`videoHeight`,
   que es el cuadro completo de la camara, no lo que la caja CSS dejaba ver. El
   recorte era solo de la vista previa. Aun asi importa: si uno no se ve, no se
   encuadra, y una foto de referencia mal encuadrada falla todos los dias
   siguientes.

   LA CORRECCION
   `contain` en vez de `cover`: contain NUNCA recorta -- si algo no encaja,
   deja franjas del fondo oscuro. Y se le pone tope de ancho proporcional al
   alto para que la caja no quede apaisada y esas franjas sean minimas.
   Donde el navegador soporta `aspect-ratio` la caja calza exacta.

   ESTA CLASE LA USAN CINCO PANTALLAS: mi_foto_reconocimiento y las cuatro de
   marcacion (ingreso, ingreso_ubi, teletrabajo, teletrabajo_ubi). Las cinco
   tenian el mismo recorte, asi que la correccion las arregla todas.
   -------------------------------------------------------------------------- */

.sib-video-wrap {
  width: 100%;

  /* `#video` impone max-height:430px y gana por ser selector de ID, asi que
     el marco se ajusta A ESE alto y no al reves. 430 x 4/3 = 573.
     Con el marco en 613x460 quedaba una banda oscura de 30px debajo del video:
     medido en el navegador, no calculado a ojo.
     Centrado, porque ya no ocupa todo el ancho de la tarjeta. */
  max-width: 573px;
  margin-left: auto;
  margin-right: auto;

  min-height: 430px;
  height: 430px;
  border-radius: 14px;
  overflow: hidden;
  background: #0b172a;
  border: 1px solid rgba(0, 32, 91, .18);
}

/* Donde se soporta, la caja toma la proporcion exacta y el alto se calcula
   solo. En navegadores viejos manda el alto fijo de arriba, que tambien
   funciona. */
@supports (aspect-ratio: 4 / 3) {
  .sib-video-wrap {
    aspect-ratio: 4 / 3;
    height: auto;
    min-height: 0;
  }
}

.sib-video-wrap video {
  width: 100%;
  height: 100%;
  display: block;

  /* contain, NO cover. Es la linea que arregla el recorte de la cara. */
  object-fit: contain;
}

/* La previsualizacion se rige por lo mismo: lo que el empleado revisa antes
   de enviar tiene que ser lo mismo que vio al encuadrarse. */
.sib-video-wrap img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

#canvas {
  width: 100%;
  max-width: 100%;
}

@media (max-width: 768px) {
  .sib-video-wrap {
    /* 340 x 4/3 = 453. En un celular el ancho real manda casi siempre, pero
       el tope evita que en una tableta la caja se vuelva apaisada otra vez. */
    max-width: 453px;
    min-height: 340px;
    height: 340px;
  }

  @supports (aspect-ratio: 4 / 3) {
    .sib-video-wrap {
      height: auto;
      min-height: 0;
    }
  }
}

/* =========================================================
   SIB Autogestión - Vista pro responsive
   Mobile first / 2 columnas móvil / 4 columnas escritorio
   ========================================================= */

.sib-autog-container {
  width: 100%;
  max-width: 1320px;
  margin: 0 auto;
  padding-left: 16px;
  padding-right: 16px;
}

.sib-autog-head {
  margin-top: 34px;
  margin-bottom: 16px;
}

.sib-autog-title {
  margin: 0 0 6px 0;
  color: #1f2937;
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.15;
}

.sib-autog-subtitle {
  margin: 0;
  color: #6b7280;
  font-size: .92rem;
  line-height: 1.45;
  max-width: 680px;
}

.sib-autog-divider {
  height: 1px;
  background: #d8dee8;
  margin: 16px 0 18px 0;
}

.sib-autog-system {
  margin-bottom: 26px;
}

.sib-autog-system-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
  padding: 14px 16px;
  border-radius: 16px;
  background: #ffffff;
  border: 1px solid #e6eaf0;
  box-shadow: 0 8px 22px rgba(16, 24, 40, .06);
}

.sib-autog-system-title {
  margin: 0;
  color: #0052cc;
  font-size: 1.05rem;
  font-weight: 900;
  line-height: 1.2;
}

.sib-autog-system-count {
  flex: 0 0 auto;
  color: #6b7280;
  font-size: .82rem;
  font-weight: 700;
  padding: 6px 10px;
  border-radius: 999px;
  background: #f3f6fb;
  border: 1px solid #e6eaf0;
}

.sib-autog-module {
  margin-bottom: 22px;
}

.sib-autog-module-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 0 0 10px 0;
}

.sib-autog-module-label {
  color: #9aa3af;
  font-size: .68rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 2px;
}

.sib-autog-module-title {
  margin: 0;
  color: #1f2937;
  font-size: .95rem;
  font-weight: 850;
  line-height: 1.2;
}

.sib-autog-module-count {
  flex: 0 0 auto;
  color: #8a94a3;
  font-size: .78rem;
  font-weight: 700;
}

.sib-autog-row {
  display: flex;
  flex-wrap: wrap;
  margin-left: -7px;
  margin-right: -7px;
}

.sib-autog-col {
  padding-left: 7px;
  padding-right: 7px;
  margin-bottom: 14px;
}

.sib-autog-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 154px;
  color: inherit;
  text-decoration: none;
  border-radius: 16px;
  background: #ffffff;
  border: 1px solid #e7ebf2;
  box-shadow: 0 8px 20px rgba(16, 24, 40, .07);
  overflow: hidden;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}

.sib-autog-card:hover,
.sib-autog-card:focus {
  text-decoration: none;
  transform: translateY(-2px);
  border-color: rgba(0, 82, 204, .24);
  box-shadow: 0 12px 28px rgba(16, 24, 40, .12);
}

.sib-autog-card-body {
  flex: 1 1 auto;
  padding: 14px;
}

.sib-autog-card-top {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.sib-autog-icon {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border-radius: 13px;
  background: #0065f5;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16);
}

.sib-autog-icon img {
  width: 27px;
  height: 27px;
  display: block;
  object-fit: contain;
}

.sib-autog-card-title {
  margin: 0 0 5px 0;
  color: #0052cc;
  font-size: .94rem;
  font-weight: 900;
  line-height: 1.15;
  word-break: normal;
  overflow-wrap: anywhere;
}

.sib-autog-card-text {
  margin: 0;
  color: #111827;
  font-size: .80rem;
  font-weight: 700;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.sib-autog-card-footer {
  padding: 10px 14px;
  border-top: 1px solid #edf0f5;
  background: #ffffff;
  color: #8a94a3;
  font-size: .76rem;
  font-weight: 700;
  line-height: 1.2;
}

.sib-autog-empty {
  padding: 16px;
  border-radius: 14px;
  background: #ffffff;
  border: 1px solid #e6eaf0;
  color: #6b7280;
  box-shadow: 0 8px 22px rgba(16, 24, 40, .06);
}

/* Tablet */
@media (min-width: 768px) {
  .sib-autog-container {
    padding-left: 24px;
    padding-right: 24px;
  }

  .sib-autog-title {
    font-size: 1.55rem;
  }

  .sib-autog-subtitle {
    font-size: 1rem;
  }

  .sib-autog-row {
    margin-left: -9px;
    margin-right: -9px;
  }

  .sib-autog-col {
    padding-left: 9px;
    padding-right: 9px;
    margin-bottom: 18px;
  }

  .sib-autog-card {
    min-height: 170px;
  }

  .sib-autog-card-body {
    padding: 16px;
  }

  .sib-autog-icon {
    width: 50px;
    height: 50px;
    flex-basis: 50px;
  }

  .sib-autog-icon img {
    width: 30px;
    height: 30px;
  }
}

/* Móvil fino: recuperar ancho útil */
@media (max-width: 575.98px) {
  .sib-autog-container {
    padding-left: 8px;
    padding-right: 8px;
  }

  .sib-autog-head {
    margin-top: 24px;
    margin-bottom: 12px;
  }

  .sib-autog-title {
    font-size: 1.25rem;
  }

  .sib-autog-subtitle {
    font-size: .88rem;
    line-height: 1.38;
  }

  .sib-autog-divider {
    margin: 13px 0 16px 0;
  }

  .sib-autog-system-head {
    padding: 12px;
    border-radius: 14px;
    margin-bottom: 14px;
  }

  .sib-autog-system-title {
    font-size: .98rem;
  }

  .sib-autog-system-count {
    font-size: .72rem;
    padding: 5px 8px;
  }

  .sib-autog-module {
    margin-bottom: 18px;
  }

  .sib-autog-module-title {
    font-size: .90rem;
  }

  .sib-autog-row {
    margin-left: -5px;
    margin-right: -5px;
  }

  .sib-autog-col {
    padding-left: 5px;
    padding-right: 5px;
    margin-bottom: 10px;
  }

  .sib-autog-card {
    min-height: 142px;
    border-radius: 14px;
  }

  .sib-autog-card-body {
    padding: 11px;
  }

  .sib-autog-card-top {
    display: block;
  }

  .sib-autog-icon {
    width: 42px;
    height: 42px;
    margin-bottom: 10px;
  }

  .sib-autog-icon img {
    width: 26px;
    height: 26px;
  }

  .sib-autog-card-title {
    font-size: .86rem;
    line-height: 1.15;
  }

  .sib-autog-card-text {
    font-size: .76rem;
  }

  .sib-autog-card-footer {
    padding: 8px 11px;
    font-size: .72rem;
  }
}

/* Móviles muy angostos */
@media (max-width: 360px) {
  .sib-autog-container {
    padding-left: 6px;
    padding-right: 6px;
  }

  .sib-autog-card-title {
    font-size: .82rem;
  }

  .sib-autog-card-text {
    font-size: .73rem;
  }
}

/* =========================================================
   SIB AUTOGESTIÓN RESPONSIVE
   Sistema -> Módulo -> Opciones
   2 columnas móvil | 3 tablet | 4 escritorio
   ========================================================= */

.sib-auto-page {
  width: 100%;
  max-width: 1320px;
  margin: 0 auto;
  padding: 28px 14px 42px 14px;
}

.sib-auto-head {
  margin-bottom: 18px;
}

.sib-auto-title {
  margin: 0 0 6px 0;
  color: #1f2937;
  font-size: 1.45rem;
  font-weight: 900;
  line-height: 1.15;
}

.sib-auto-subtitle {
  margin: 0;
  color: #6b7280;
  font-size: .92rem;
  line-height: 1.42;
  max-width: 720px;
}

.sib-auto-line {
  height: 1px;
  background: #d9dfe8;
  margin: 16px 0 20px 0;
}

.sib-auto-system {
  margin-bottom: 30px;
}

.sib-auto-system-box {
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  padding: 17px 18px;
  margin-bottom: 18px;
  background: linear-gradient(135deg, #00205b 0%, #0052cc 58%, #008fd3 100%);
  box-shadow: 0 12px 26px rgba(0, 32, 91, .24);
}

.sib-auto-system-box::after {
  content: "";
  position: absolute;
  right: -44px;
  top: -44px;
  width: 128px;
  height: 128px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .14);
}

.sib-auto-system-title {
  position: relative;
  z-index: 1;
  margin: 0 0 5px 0;
  color: #ffffff;
  font-size: 1.12rem;
  font-weight: 900;
  line-height: 1.2;
}

.sib-auto-system-subtitle {
  position: relative;
  z-index: 1;
  color: rgba(255, 255, 255, .88);
  font-size: .82rem;
  font-weight: 700;
}

.sib-auto-module {
  margin-bottom: 24px;
}

.sib-auto-module-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 12px 0;
  padding: 0 2px;
}

.sib-auto-module-label {
  color: #0052cc;
  font-size: .68rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .09em;
  margin-bottom: 2px;
}

.sib-auto-module-title {
  margin: 0;
  color: #1f2937;
  font-size: 1rem;
  font-weight: 900;
  line-height: 1.2;
}

.sib-auto-module-count {
  flex: 0 0 auto;
  color: #5f6b7a;
  font-size: .76rem;
  font-weight: 800;
  padding: 5px 10px;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  box-shadow: 0 4px 12px rgba(16, 24, 40, .05);
}

.sib-auto-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.sib-auto-card {
  display: flex;
  flex-direction: column;
  min-height: 158px;
  text-decoration: none !important;
  color: inherit;
  border-radius: 18px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  box-shadow: 0 10px 24px rgba(16, 24, 40, .10);
  overflow: hidden;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.sib-auto-card:hover,
.sib-auto-card:focus {
  text-decoration: none !important;
  transform: translateY(-2px);
  border-color: rgba(0, 82, 204, .35);
  box-shadow: 0 14px 30px rgba(16, 24, 40, .15);
}

.sib-auto-card-body {
  flex: 1 1 auto;
  padding: 14px 13px 12px 13px;
}

.sib-auto-icon {
  width: 48px;
  height: 48px;
  border-radius: 15px;
  background: #0065f5;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16);
}

.sib-auto-icon img {
  width: 30px;
  height: 30px;
  display: block;
  object-fit: contain;
}

.sib-auto-card-title {
  margin: 0 0 7px 0;
  color: #00205b;
  font-size: .92rem;
  font-weight: 900;
  line-height: 1.15;
  overflow-wrap: anywhere;
}

.sib-auto-card-text {
  margin: 0;
  color: #4b5563;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.sib-auto-card-action {
  padding: 10px 13px;
  border-top: 1px solid #edf1f6;
  background: #f8fafc;
}

.sib-auto-card-action span {
  display: inline-flex;
  align-items: center;
  color: #0052cc;
  font-size: .76rem;
  font-weight: 900;
  line-height: 1;
}

.sib-auto-empty {
  padding: 16px;
  border-radius: 16px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  color: #6b7280;
  box-shadow: 0 10px 24px rgba(16, 24, 40, .08);
}

@media (min-width: 768px) {
  .sib-auto-page {
    padding-left: 24px;
    padding-right: 24px;
  }

  .sib-auto-title {
    font-size: 1.60rem;
  }

  .sib-auto-subtitle {
    font-size: 1rem;
  }

  .sib-auto-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
  }

  .sib-auto-card {
    min-height: 172px;
  }
}

@media (min-width: 1200px) {
  .sib-auto-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .sib-auto-page {
    padding-left: 10px;
    padding-right: 10px;
    padding-top: 24px;
  }

  .sib-auto-title {
    font-size: 1.30rem;
  }

  .sib-auto-subtitle {
    font-size: .88rem;
  }

  .sib-auto-system-box {
    border-radius: 16px;
    padding: 15px 14px;
    margin-bottom: 16px;
  }

  .sib-auto-system-title {
    font-size: 1.02rem;
  }

  .sib-auto-system-subtitle {
    font-size: .76rem;
  }

  .sib-auto-module-head {
    align-items: flex-start;
  }

  .sib-auto-module-title {
    font-size: .96rem;
  }

  .sib-auto-module-count {
    font-size: .72rem;
    padding: 4px 8px;
  }

  .sib-auto-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .sib-auto-card {
    min-height: 156px;
    border-radius: 16px;
  }

  .sib-auto-card-body {
    padding: 12px 11px 10px 11px;
  }

  .sib-auto-icon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    margin-bottom: 11px;
  }

  .sib-auto-icon img {
    width: 28px;
    height: 28px;
  }

  .sib-auto-card-title {
    font-size: .86rem;
  }

  .sib-auto-card-text {
    font-size: .74rem;
  }

  .sib-auto-card-action {
    padding: 9px 11px;
  }

  .sib-auto-card-action span {
    font-size: .72rem;
  }
}

@media (max-width: 360px) {
  .sib-auto-page {
    padding-left: 8px;
    padding-right: 8px;
  }

  .sib-auto-grid {
    gap: 8px;
  }

  .sib-auto-card-title {
    font-size: .82rem;
  }

  .sib-auto-card-text {
    font-size: .71rem;
  }
}

/* =========================================================
   SIB - INDEX AUTOGESTIÓN DOBLE PANTALLA
   Opciones de Autogestión + Noticias
   Perfilado por módulos contratados, permisos y opciones
   ========================================================= */

.sib-auto-doble-page {
  width: 100%;
  padding: 16px 10px 36px 10px;
}

.sib-auto-doble-title {
  margin: 0;
  color: #1f2937;
  font-size: 1.55rem;
  font-weight: 900;
  line-height: 1.15;
}

.sib-auto-doble-subtitle {
  margin-top: 6px;
  color: #6b7280;
  font-size: .92rem;
  line-height: 1.35;
}

.sib-auto-doble-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 18px;
  box-shadow: 0 10px 24px rgba(16, 24, 40, .08);
  overflow: hidden;
}

.sib-auto-doble-card-soft {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 18px;
  box-shadow: 0 8px 20px rgba(16, 24, 40, .07);
  overflow: hidden;
}

.sib-auto-doble-section-head {
  padding: 16px 16px;
  background: linear-gradient(135deg, #00205b 0%, #0052cc 58%, #008fd3 100%);
  color: #ffffff;
  position: relative;
  overflow: hidden;
}

.sib-auto-doble-section-head::after {
  content: "";
  position: absolute;
  right: -42px;
  top: -42px;
  width: 125px;
  height: 125px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .14);
}

.sib-auto-doble-section-title {
  position: relative;
  z-index: 1;
  margin: 0 0 4px 0;
  color: #ffffff;
  font-size: 1.12rem;
  font-weight: 900;
  line-height: 1.2;
}

.sib-auto-doble-section-subtitle {
  position: relative;
  z-index: 1;
  color: rgba(255, 255, 255, .88);
  font-size: .78rem;
  font-weight: 700;
}

.sib-auto-doble-body {
  padding: 14px;
}

.sib-auto-system-box {
  margin-bottom: 18px;
}

.sib-auto-system-title {
  margin: 0 0 3px 0;
  color: #0052cc;
  font-size: .98rem;
  font-weight: 900;
  line-height: 1.2;
}

.sib-auto-system-count {
  color: #6b7280;
  font-size: .76rem;
  font-weight: 800;
}

.sib-auto-module {
  margin-top: 16px;
  margin-bottom: 20px;
}

.sib-auto-module-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}

.sib-auto-module-label {
  color: #0052cc;
  font-size: .66rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .09em;
  margin-bottom: 2px;
}

.sib-auto-module-title {
  margin: 0;
  color: #1f2937;
  font-size: .94rem;
  font-weight: 900;
  line-height: 1.18;
}

.sib-auto-module-count {
  flex: 0 0 auto;
  color: #5f6b7a;
  font-size: .70rem;
  font-weight: 800;
  padding: 4px 8px;
  border-radius: 999px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.sib-auto-options-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.sib-auto-option-card {
  display: flex;
  flex-direction: column;
  min-height: 142px;
  text-decoration: none !important;
  color: inherit;
  border-radius: 16px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  box-shadow: 0 8px 18px rgba(16, 24, 40, .08);
  overflow: hidden;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.sib-auto-option-card:hover,
.sib-auto-option-card:focus {
  text-decoration: none !important;
  transform: translateY(-2px);
  border-color: rgba(0, 82, 204, .35);
  box-shadow: 0 12px 26px rgba(16, 24, 40, .14);
}

.sib-auto-option-body {
  flex: 1 1 auto;
  padding: 11px 10px 9px 10px;
}

.sib-auto-option-icon {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: #0065f5;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 10px;
}

.sib-auto-option-icon img {
  width: 27px;
  height: 27px;
  display: block;
  object-fit: contain;
}

.sib-auto-option-title {
  margin: 0;
  color: #00205b;
  font-size: .82rem;
  font-weight: 900;
  line-height: 1.15;
  overflow-wrap: anywhere;
}

.sib-auto-option-action {
  padding: 8px 10px;
  border-top: 1px solid #edf1f6;
  background: #f8fafc;
  color: #0052cc;
  font-size: .72rem;
  font-weight: 900;
}

.sib-auto-empty {
  padding: 14px;
  border-radius: 14px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  color: #6b7280;
  font-size: .90rem;
  font-weight: 700;
}

.sib-news-head {
  padding: 16px;
  border-bottom: 1px solid #edf1f6;
}

.sib-news-title {
  margin: 0;
  color: #00205b;
  font-size: 1.18rem;
  font-weight: 900;
  line-height: 1.15;
}

.sib-news-subtitle {
  margin-top: 4px;
  color: #6b7280;
  font-size: .82rem;
  font-weight: 700;
}

.sib-news-item {
  padding: 14px;
  margin-bottom: 14px;
}

.sib-news-item-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 900;
  line-height: 1.2;
}

.sib-news-item-title a {
  color: #0477BF;
  text-decoration: none;
}

.sib-news-item-title a:hover {
  text-decoration: underline;
}

.sib-news-content {
  margin-top: 10px;
  color: #223;
  line-height: 1.38;
  font-size: .92rem;
}

.sib-news-date {
  margin-top: 12px;
  font-size: .88rem;
}

.sib-news-date strong {
  color: #00205b;
  font-weight: 900;
}

.sib-news-date span {
  color: #ff0000;
  font-weight: 900;
}

.sib-news-img {
  max-width: 100%;
  height: auto;
  border-radius: 14px;
}

@media (min-width: 768px) {
  .sib-auto-doble-page {
    padding-left: 12px;
    padding-right: 12px;
  }

  .sib-auto-options-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sib-auto-option-card {
    min-height: 150px;
  }
}

@media (min-width: 1200px) {
  .sib-auto-doble-page {
    padding-left: 14px;
    padding-right: 14px;
  }

  .sib-auto-options-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .sib-auto-doble-page {
    padding-left: 4px;
    padding-right: 4px;
    padding-top: 12px;
  }

  .sib-auto-doble-title {
    font-size: 1.35rem;
  }

  .sib-auto-doble-subtitle {
    font-size: .86rem;
  }

  .sib-auto-doble-body {
    padding: 11px;
  }

  .sib-auto-options-grid {
    gap: 8px;
  }

  .sib-auto-option-card {
    min-height: 138px;
    border-radius: 15px;
  }

  .sib-auto-option-body {
    padding: 10px 9px 8px 9px;
  }

  .sib-auto-option-title {
    font-size: .78rem;
  }

  .sib-auto-option-action {
    font-size: .70rem;
    padding: 8px 9px;
  }

  .sib-auto-option-icon {
    width: 40px;
    height: 40px;
    margin-bottom: 9px;
  }

  .sib-auto-option-icon img {
    width: 25px;
    height: 25px;
  }
}

/* =========================================================
   SIB AUTOGESTIÓN - AJUSTE ESTÉTICO FINAL CORREGIDO
   Exterior del sistema en blanco.
   Interior de tarjetas conserva azul corporativo.
   ========================================================= */

/* CAJÓN EXTERIOR DEL SISTEMA */
.sib-auto-system-box {
  color: #ffffff !important;
}

.sib-auto-system-box .sib-auto-system-title,
.sib-auto-system-box .sib-auto-system-subtitle,
.sib-auto-system-box .sib-auto-system-count,
.sib-auto-system-box .sib-auto-module-label,
.sib-auto-system-box .sib-auto-module-title {
  color: #ffffff !important;
  font-weight: 900 !important;
}

.sib-auto-system-box .sib-auto-system-title {
  text-shadow: 0 1px 2px rgba(0, 0, 0, .18);
}

.sib-auto-system-box .sib-auto-system-subtitle,
.sib-auto-system-box .sib-auto-system-count {
  color: rgba(255, 255, 255, .94) !important;
  font-weight: 800 !important;
}

.sib-auto-system-box .sib-auto-module-label {
  color: rgba(255, 255, 255, .88) !important;
  letter-spacing: .09em;
}

.sib-auto-system-box .sib-auto-module-count {
  color: #ffffff !important;
  font-weight: 900 !important;
  background: rgba(255, 255, 255, .18) !important;
  border: 1px solid rgba(255, 255, 255, .45) !important;
  box-shadow: 0 8px 18px rgba(0, 0, 0, .12) !important;
  backdrop-filter: blur(6px);
}

/* TARJETAS INTERNAS: CONSERVAN CAJÓN BLANCO */
.sib-auto-system-box .sib-auto-card,
.sib-auto-system-box .sib-auto-option-card {
  background: #ffffff !important;
  border: 1px solid rgba(226, 232, 240, .95) !important;
  box-shadow: 0 12px 26px rgba(0, 0, 0, .18) !important;
}

/* CUERPO INTERNO DE LA TARJETA */
.sib-auto-system-box .sib-auto-card-body,
.sib-auto-system-box .sib-auto-option-body {
  background: #ffffff !important;
  color: #00205b !important;
}

/* TÍTULO DE CADA OPCIÓN */
.sib-auto-system-box .sib-auto-card-title,
.sib-auto-system-box .sib-auto-option-title {
  color: #00205b !important;
  font-weight: 900 !important;
}

/* TEXTO / DESCRIPCIÓN DE CADA OPCIÓN */
.sib-auto-system-box .sib-auto-card-text,
.sib-auto-system-box .sib-auto-option-text {
  color: #4b5563 !important;
  font-weight: 700 !important;
}

/* PIE DE TARJETA / ACCIÓN INGRESAR */
.sib-auto-system-box .sib-auto-card-action,
.sib-auto-system-box .sib-auto-option-action {
  background: #f8fafc !important;
  border-top: 1px solid #edf1f6 !important;
  color: #0052cc !important;
  font-weight: 900 !important;
}

.sib-auto-system-box .sib-auto-card-action span,
.sib-auto-system-box .sib-auto-option-action span {
  color: #0052cc !important;
  font-weight: 900 !important;
}

/* ICONO INTERNO */
.sib-auto-system-box .sib-auto-icon,
.sib-auto-system-box .sib-auto-option-icon {
  background: #0065f5 !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18);
}

/* HOVER PROFESIONAL */
.sib-auto-system-box .sib-auto-card:hover,
.sib-auto-system-box .sib-auto-option-card:hover {
  border-color: rgba(255, 255, 255, .85) !important;
  box-shadow: 0 16px 34px rgba(0, 0, 0, .24) !important;
  transform: translateY(-2px);
}

/* =========================================================
   SIB AUTOGESTIÓN - ICONOS CON DEGRADADO CORPORATIVO
   Aplica el mismo estilo visual del cajón del sistema
   a los iconos de cada opción.
   ========================================================= */

.sib-auto-system-box .sib-auto-option-icon,
.sib-auto-system-box .sib-auto-icon {
  position: relative;
  overflow: hidden;
  width: 48px;
  height: 48px;
  border-radius: 15px;
  background: linear-gradient(135deg, #00205b 0%, #0052cc 58%, #008fd3 100%) !important;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow:
    0 10px 22px rgba(0, 32, 91, .28),
    inset 0 0 0 1px rgba(255, 255, 255, .20);
}

.sib-auto-system-box .sib-auto-option-icon::after,
.sib-auto-system-box .sib-auto-icon::after {
  content: "";
  position: absolute;
  right: -16px;
  top: -16px;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .16);
  pointer-events: none;
}

.sib-auto-system-box .sib-auto-option-icon img,
.sib-auto-system-box .sib-auto-icon img {
  position: relative;
  z-index: 1;
  width: 29px;
  height: 29px;
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .18));
}

.sib-auto-system-box .sib-auto-option-card:hover .sib-auto-option-icon,
.sib-auto-system-box .sib-auto-card:hover .sib-auto-icon {
  box-shadow:
    0 12px 26px rgba(0, 32, 91, .36),
    inset 0 0 0 1px rgba(255, 255, 255, .28);
}

/* Ajuste móvil */
@media (max-width: 575.98px) {
  .sib-auto-system-box .sib-auto-option-icon,
  .sib-auto-system-box .sib-auto-icon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
  }

  .sib-auto-system-box .sib-auto-option-icon::after,
  .sib-auto-system-box .sib-auto-icon::after {
    right: -15px;
    top: -15px;
    width: 39px;
    height: 39px;
  }

  .sib-auto-system-box .sib-auto-option-icon img,
  .sib-auto-system-box .sib-auto-icon img {
    width: 27px;
    height: 27px;
  }
}

.sib-modalboost .sib-modalboost-content {
  border: 0;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(0, 32, 91, .28);
}

.sib-modalboost .sib-modalboost-header {
  position: relative;
  align-items: flex-start;
  padding: 22px 24px;
  border-bottom: 0;
  background:
    radial-gradient(circle at top right, rgba(4, 119, 191, .28), transparent 34%),
    linear-gradient(135deg, #00205b 0%, #013b7a 52%, #0477bf 100%);
  color: #ffffff;
}

.sib-modalboost .sib-modalboost-eyebrow {
  display: inline-flex;
  margin-bottom: 8px;
  padding: 6px 11px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .14);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.sib-modalboost .sib-modalboost-title {
  margin: 0;
  color: #ffffff;
  font-weight: 850;
  letter-spacing: -.025em;
}

.sib-modalboost .sib-modalboost-close {
  color: #ffffff;
  opacity: .9;
  text-shadow: none;
}

.sib-modalboost .sib-modalboost-body {
  padding: 24px;
  color: #24364f;
  font-size: .95rem;
  line-height: 1.55;
}

.sib-modalboost .sib-modalboost-text {
  margin: 0;
  color: #53647c;
}

.sib-modalboost .sib-modalboost-footer {
  gap: 10px;
  padding: 16px 24px 22px;
  border-top: 1px solid rgba(0, 32, 91, .08);
  background: #ffffff;
}

.sib-modalboost .sib-btn-primary,
.sib-modalboost .sib-btn-secondary {
  min-height: 42px;
  padding: 9px 18px;
  border-radius: 14px;
  font-weight: 850;
}

.sib-modalboost .sib-btn-primary {
  color: #ffffff;
  border: 0;
  background: linear-gradient(135deg, #00205b, #0477bf);
  box-shadow: 0 12px 24px rgba(0, 32, 91, .20);
}

.sib-modalboost .sib-btn-secondary {
  color: #00205b;
  background: rgba(0, 32, 91, .06);
  border: 1px solid rgba(0, 32, 91, .12);
}

@media (max-width: 575.98px) {
  .sib-modalboost .sib-modalboost-dialog {
    margin: .75rem;
  }

  .sib-modalboost .sib-modalboost-header,
  .sib-modalboost .sib-modalboost-body,
  .sib-modalboost .sib-modalboost-footer {
    padding-left: 18px;
    padding-right: 18px;
  }

  .sib-modalboost .sib-modalboost-footer {
    flex-direction: column;
  }

  .sib-modalboost .sib-modalboost-footer .btn {
    width: 100%;
  }
}

/* =========================================================
   FIX FINAL SIB - ALINEACIÓN MENÚ LATERAL / CONTENIDO
   =========================================================
   La barra superior ya reserva su altura mediante body.nav-fixed.
   Por eso el menú lateral no debe sumar nuevamente 70px.
   Se usa la misma variable y el mismo ancho definidos por
   menu_db_superior.php y menu_lateral.php.
========================================================= */

@media (min-width: 992px) {

  html body:not(.sib-autog-body):not(.sib-modulos-body) #layoutSidenav#layoutSidenav {
    display: flex !important;
    align-items: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  html body:not(.sib-autog-body):not(.sib-modulos-body):not(.sb-sidenav-toggled)
  #layoutSidenav#layoutSidenav > #layoutSidenav_nav {
    position: sticky !important;
    top: 0 !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;

    flex: 0 0 var(--sib-sidebar-width, 292px) !important;
    flex-basis: var(--sib-sidebar-width, 292px) !important;

    width: var(--sib-sidebar-width, 292px) !important;
    min-width: var(--sib-sidebar-width, 292px) !important;
    max-width: var(--sib-sidebar-width, 292px) !important;

    height: calc(100vh - var(--sib-topnav-height, 58px)) !important;
    height: calc(100dvh - var(--sib-topnav-height, 58px)) !important;

    margin-top: 0 !important;
    padding-top: 0 !important;
    transform: none !important;
    overflow: hidden !important;
  }

  html body:not(.sib-autog-body):not(.sib-modulos-body):not(.sb-sidenav-toggled)
  #layoutSidenav#layoutSidenav > #layoutSidenav_content {
    position: relative !important;

    flex: 1 1 calc(100% - var(--sib-sidebar-width, 292px)) !important;
    flex-basis: calc(100% - var(--sib-sidebar-width, 292px)) !important;

    margin-left: 0 !important;
    margin-top: 0 !important;
    padding-left: 0 !important;
    padding-top: 0 !important;

    width: calc(100% - var(--sib-sidebar-width, 292px)) !important;
    min-width: 0 !important;
    max-width: calc(100% - var(--sib-sidebar-width, 292px)) !important;

    overflow-x: hidden !important;
  }

  html body:not(.sib-autog-body):not(.sib-modulos-body).sb-sidenav-toggled
  #layoutSidenav#layoutSidenav > #layoutSidenav_nav {
    position: sticky !important;
    top: 0 !important;

    flex: 0 0 0 !important;
    flex-basis: 0 !important;

    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;

    margin-top: 0 !important;
    padding-top: 0 !important;
    transform: translateX(calc(var(--sib-sidebar-width, 292px) * -1)) !important;
    overflow: hidden !important;
  }

  html body:not(.sib-autog-body):not(.sib-modulos-body).sb-sidenav-toggled
  #layoutSidenav#layoutSidenav > #layoutSidenav_content {
    flex: 1 1 100% !important;
    flex-basis: 100% !important;

    margin-left: 0 !important;
    margin-top: 0 !important;
    padding-left: 0 !important;
    padding-top: 0 !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
}

/* En móvil el menú continúa superpuesto debajo de la barra superior. */
@media (max-width: 991.98px) {

  html body:not(.sib-autog-body):not(.sib-modulos-body) #layoutSidenav#layoutSidenav > #layoutSidenav_content,
  html body:not(.sib-autog-body):not(.sib-modulos-body).sb-sidenav-toggled
  #layoutSidenav#layoutSidenav > #layoutSidenav_content {
    margin-left: 0 !important;
    margin-top: 0 !important;
    padding-left: 0 !important;
    padding-top: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
}

/* ==================== MENÚ AUTOGESTIÓN ==================== */
:root {
    --sib-autog-blue: #00205b;
    --sib-autog-blue-2: #0477bf;
    --sib-autog-cyan: #18a8df;
    --sib-autog-ink: #12233f;
    --sib-autog-muted: #6b7b90;
    --sib-autog-soft: #f3f7fb;
  }

  body.sib-autog-body {
    background: #eef3f8;
  }

  .sib-autog-topnav {
    min-height: 64px;
    padding: 0 .95rem;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
    background:
      radial-gradient(circle at top right, rgba(4, 119, 191, .32), transparent 34%),
      linear-gradient(135deg, #00205b 0%, #013b7a 52%, #0477bf 100%) !important;
    box-shadow: 0 12px 32px rgba(0, 32, 91, .24);
    z-index: 1050;
  }

  .sib-autog-brand {
    display: inline-flex !important;
    align-items: center;
    gap: 11px;
    min-width: 0;
    color: #ffffff !important;
    text-decoration: none;
  }

  .sib-autog-brand-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    border-radius: 15px;
    color: #ffffff;
    background: rgba(255, 255, 255, .14);
    border: 1px solid rgba(255, 255, 255, .16);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15);
  }

  .sib-autog-brand-text {
    min-width: 0;
    line-height: 1.15;
  }

  .sib-autog-brand-title {
    display: block;
    max-width: 210px;
    overflow: hidden;
    color: #ffffff;
    font-size: .98rem;
    font-weight: 900;
    letter-spacing: -.02em;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .sib-autog-brand-subtitle {
    display: block;
    max-width: 230px;
    overflow: hidden;
    color: rgba(255, 255, 255, .76);
    font-size: .72rem;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .sib-autog-toggle {
    width: 42px;
    height: 42px;
    margin-left: .65rem;
    border-radius: 14px !important;
    color: #ffffff !important;
    background: rgba(255, 255, 255, .12) !important;
    border: 1px solid rgba(255, 255, 255, .14) !important;
    box-shadow: none !important;
  }

  .sib-autog-toggle:hover {
    background: rgba(255, 255, 255, .20) !important;
  }

  .sib-autog-top-actions {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin-left: auto;
  }

  .sib-autog-top-link,
  .sib-autog-user-trigger {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    padding: 8px 12px !important;
    border-radius: 999px;
    color: #ffffff !important;
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .14);
    font-size: .84rem;
    font-weight: 850;
    text-decoration: none;
  }

  .sib-autog-top-link:hover,
  .sib-autog-user-trigger:hover {
    color: #ffffff !important;
    background: rgba(255, 255, 255, .20);
    text-decoration: none;
  }

  .sib-autog-user-trigger::after {
    margin-left: 2px;
  }

  .sib-autog-dropdown {
    overflow: hidden;
    width: 290px;
    padding: 0;
    border: 0;
    border-radius: 18px;
    box-shadow: 0 24px 56px rgba(0, 32, 91, .22);
  }

  .sib-autog-dropdown-head {
    padding: 16px;
    color: #ffffff;
    background: linear-gradient(135deg, #00205b, #0477bf);
  }

  .sib-autog-dropdown-head strong {
    display: block;
    font-size: .94rem;
  }

  .sib-autog-dropdown-head span {
    display: block;
    margin-top: 3px;
    color: rgba(255, 255, 255, .78);
    font-size: .78rem;
  }

  .sib-autog-dropdown .dropdown-item {
    padding: 14px 16px;
    color: #24364f;
    font-size: .9rem;
    font-weight: 750;
  }

  .sib-autog-dropdown .dropdown-item i {
    width: 20px;
    color: #0477bf;
  }

  .sib-autog-mobile-overlay {
    position: fixed;
    inset: 64px 0 0 0;
    display: none;
    background: rgba(0, 32, 91, .45);
    backdrop-filter: blur(2px);
    z-index: 1038;
  }

  .sib-autog-body.sib-autog-sidebar-open .sib-autog-mobile-overlay {
    display: block;
  }

  .sib-autog-sidebar {
    background:
      radial-gradient(circle at top right, rgba(4, 119, 191, .24), transparent 32%),
      linear-gradient(180deg, #001b4d 0%, #00205b 48%, #013b7a 100%) !important;
    box-shadow: 14px 0 40px rgba(0, 32, 91, .22);
  }

  .sib-autog-sidebar .sb-sidenav-menu {
    padding-top: 10px;
  }

  .sib-autog-side-brand {
    margin: 14px 14px 12px;
    padding: 16px;
    border-radius: 22px;
    color: #ffffff;
    background: rgba(255, 255, 255, .10);
    border: 1px solid rgba(255, 255, 255, .12);
  }

  .sib-autog-side-brand-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: 10px;
    border-radius: 16px;
    color: #ffffff;
    background: rgba(255, 255, 255, .14);
    border: 1px solid rgba(255, 255, 255, .14);
  }

  .sib-autog-side-brand h6 {
    margin: 0 0 5px;
    font-weight: 900;
    letter-spacing: -.02em;
  }

  .sib-autog-side-brand p {
    margin: 0;
    color: rgba(255, 255, 255, .76);
    font-size: .8rem;
    line-height: 1.45;
  }

  .sib-autog-sidebar .sb-sidenav-menu-heading {
    margin: 18px 18px 8px;
    padding: 0;
    color: rgba(255, 255, 255, .58) !important;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
  }

  .sib-autog-side-link {
    display: flex !important;
    align-items: center;
    gap: 12px;
    min-height: 48px;
    margin: 4px 12px;
    padding: 10px 12px !important;
    border-radius: 16px;
    color: rgba(255, 255, 255, .82) !important;
    border: 1px solid transparent;
    transition: background .18s ease, border-color .18s ease, transform .18s ease;
  }

  .sib-autog-side-link:hover {
    color: #ffffff !important;
    background: rgba(255, 255, 255, .12);
    border-color: rgba(255, 255, 255, .13);
    transform: translateX(2px);
  }

  .sib-autog-side-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    border-radius: 13px;
    color: #ffffff;
    background: rgba(255, 255, 255, .12);
  }

  .sib-autog-side-icon img {
    max-width: 24px;
    max-height: 24px;
    object-fit: contain;
  }

  .sib-autog-side-text {
    overflow: hidden;
    font-size: .87rem;
    font-weight: 800;
    line-height: 1.25;
    text-overflow: ellipsis;
  }

  .sib-autog-side-footer {
    margin: 14px;
    padding: 14px;
    border-radius: 18px;
    color: rgba(255, 255, 255, .84);
    background: rgba(255, 255, 255, .09);
    border: 1px solid rgba(255, 255, 255, .11);
  }

  .sib-autog-side-footer .small {
    color: rgba(255, 255, 255, .68) !important;
  }

  /*
  |--------------------------------------------------------------------------
  | Sesión al final REAL del menú
  |--------------------------------------------------------------------------
  | Se neutraliza cualquier comportamiento heredado de .sb-sidenav-footer.
  | El JavaScript inferior mueve físicamente este bloque dentro de
  | .sb-sidenav-menu .nav, después de la última opción.
  |--------------------------------------------------------------------------
  */
  #layoutSidenav_nav .sib-autog-side-footer,
  #layoutSidenav_nav .sib-autog-side-footer .sb-sidenav-footer,
  #layoutSidenav_nav .sib-autog-side-footer .sib-session-panel {
    position: static !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    float: none !important;
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    margin-top: 18px !important;
  }

  #layoutSidenav_nav .sib-autog-side-footer .sb-sidenav-footer {
    padding: 0 !important;
    color: inherit !important;
    background: transparent !important;
  }

  #layoutSidenav_nav .sib-autog-sidebar .sb-sidenav-menu {
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  #layoutSidenav_nav .sib-autog-sidebar .sb-sidenav-menu > .nav {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    min-height: max-content !important;
    padding-bottom: 2px !important;
  }

  /*
  |--------------------------------------------------------------------------
  | Continuidad azul hasta la parte inferior de la página
  |--------------------------------------------------------------------------
  */
  :root {
    --sib-autog-sidebar-width: 225px;
  }

  #layoutSidenav {
    background:
      linear-gradient(
        90deg,
        #00205b 0,
        #013b7a var(--sib-autog-sidebar-width),
        #eef3f8 var(--sib-autog-sidebar-width),
        #eef3f8 100%
      ) !important;
  }

  #layoutSidenav_content {
    background: #eef3f8 !important;
  }

  @media (max-width: 767.98px) {
    #layoutSidenav {
      background: #eef3f8 !important;
    }
  }

  .sib-autog-mobile-shortcuts {
    display: none;
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: 12px;
    z-index: 1035;
    padding: 8px;
    border-radius: 20px;
    background: rgba(0, 32, 91, .94);
    box-shadow: 0 18px 44px rgba(0, 32, 91, .28);
    backdrop-filter: blur(10px);
  }

  .sib-autog-mobile-shortcuts a {
    display: flex;
    flex: 1;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 3px;
    min-height: 52px;
    border-radius: 15px;
    color: rgba(255, 255, 255, .86);
    text-decoration: none;
    font-size: .68rem;
    font-weight: 850;
  }

  .sib-autog-mobile-shortcuts a:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, .12);
    text-decoration: none;
  }

  .sib-autog-mobile-shortcuts i {
    font-size: 1rem;
  }

  @media (max-width: 991.98px) {
    .sib-autog-brand-title {
      max-width: 145px;
    }

    .sib-autog-brand-subtitle {
      max-width: 150px;
    }

    .sib-autog-top-link span,
    .sib-autog-user-trigger span {
      display: none;
    }

    .sib-autog-top-link,
    .sib-autog-user-trigger {
      justify-content: center;
      width: 40px;
      height: 40px;
      padding: 0 !important;
    }
  }

  @media (max-width: 767.98px) {
    body.sib-autog-body {
      padding-bottom: 78px;
    }

    .sib-autog-topnav {
      padding: 0 .65rem;
    }

    .sib-autog-brand-mark {
      width: 38px;
      height: 38px;
      border-radius: 14px;
      flex-basis: 38px;
    }

    .sib-autog-brand-title {
      max-width: 132px;
      font-size: .88rem;
    }

    .sib-autog-brand-subtitle {
      max-width: 135px;
      font-size: .67rem;
    }

    .sib-autog-toggle {
      margin-left: .35rem;
    }

    #layoutSidenav #layoutSidenav_nav {
      width: 306px;
      transform: translateX(-306px);
      transition: transform .2s ease;
      z-index: 1040;
    }

    body.sib-autog-sidebar-open #layoutSidenav #layoutSidenav_nav,
    body.sb-sidenav-toggled #layoutSidenav #layoutSidenav_nav {
      transform: translateX(0);
    }

    .sib-autog-mobile-shortcuts {
      display: flex;
    }
  }

  @media (max-width: 390px) {
    .sib-autog-brand-text {
      display: none;
    }
  }

/* ==================== PÁGINA INDEX AUTOGESTIÓN ==================== */
/*
  |--------------------------------------------------------------------------
  | Footer general a todo el ancho
  |--------------------------------------------------------------------------
  | El footer queda fuera de #layoutSidenav_content para que cubra también
  | la columna del menú lateral y no deje la esquina inferior en blanco.
  |--------------------------------------------------------------------------
  */
  #layoutSidenav {
    margin-bottom: 0 !important;
  }

  .sib-autog-footer-full {
    position: relative;
    z-index: 5;
    width: 100%;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
  }

  .sib-autog-footer-full > footer,
  .sib-autog-footer-full footer {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }

  .sib-dashboard-home {
    position: relative;
    width: 100%;
    min-width: 0;
    overflow-x: hidden;
  }

  /*
  | Contenedor SIB de ancho completo.
  | Sustituye el límite de container-xl y aprovecha todo el espacio
  | disponible después del menú lateral.
  */
  .sib-dashboard-home .sib-autog-shell {
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
    padding-left: clamp(12px, 1.25vw, 22px);
    padding-right: clamp(12px, 1.25vw, 22px);
    box-sizing: border-box;
  }

  #layoutSidenav_content > main {
    width: 100%;
    min-width: 0;
  }

  .sib-dashboard-home .sib-home-hero {
    position: relative;
    overflow: hidden;
    border-radius: 0 0 28px 28px;
    padding: 34px 0 86px;
    margin-bottom: -58px;
    background:
      radial-gradient(circle at top right, rgba(4, 119, 191, .25), transparent 34%),
      linear-gradient(135deg, #00205b 0%, #013b7a 52%, #0477bf 100%);
    box-shadow: 0 18px 42px rgba(0, 32, 91, .22);
  }

  .sib-dashboard-home .sib-home-hero::after {
    content: "";
    position: absolute;
    right: -80px;
    bottom: -100px;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    border: 48px solid rgba(255, 255, 255, .08);
    pointer-events: none;
  }

  .sib-dashboard-home .sib-home-hero-content {
    position: relative;
    z-index: 2;
  }

  .sib-dashboard-home .sib-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 13px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
    color: #ffffff;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .sib-dashboard-home .sib-home-title {
    max-width: 980px;
    margin: 14px 0 8px;
    color: #ffffff;
    font-size: clamp(1.65rem, 3vw, 2.55rem);
    font-weight: 850;
    letter-spacing: -.04em;
    line-height: 1.08;
  }

  .sib-dashboard-home .sib-home-subtitle {
    max-width: 760px;
    margin: 0;
    color: rgba(255, 255, 255, .86);
    font-size: .98rem;
    line-height: 1.55;
  }

  .sib-dashboard-home .sib-home-grid {
    position: relative;
    z-index: 3;
    padding-top: 22px;
  }

  .sib-dashboard-home .sib-module-card {
    position: relative;
    display: block;
    height: 100%;
    overflow: hidden;
    border-radius: 22px;
    background: #ffffff;
    border: 1px solid rgba(0, 32, 91, .08);
    box-shadow: 0 16px 38px rgba(0, 32, 91, .13);
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  }

  .sib-dashboard-home .sib-module-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 22px 48px rgba(0, 32, 91, .20);
    border-color: rgba(4, 119, 191, .25);
    text-decoration: none;
  }

  .sib-dashboard-home .sib-module-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 5px;
    background: linear-gradient(90deg, #00205b, #0477bf);
  }

  .sib-dashboard-home .sib-module-body {
    min-height: 178px;
    padding: 24px;
  }

  .sib-dashboard-home .sib-module-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    height: 100%;
  }

  .sib-dashboard-home .sib-module-info {
    flex: 1;
    min-width: 0;
  }

  .sib-dashboard-home .sib-module-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin-bottom: 14px;
    border-radius: 16px;
    color: #ffffff;
    background: linear-gradient(135deg, #00205b, #0477bf);
    box-shadow: 0 12px 24px rgba(0, 32, 91, .18);
  }

  .sib-dashboard-home .sib-module-icon svg {
    width: 24px;
    height: 24px;
  }

  .sib-dashboard-home .sib-module-title {
    margin: 0 0 7px;
    color: #00205b;
    font-size: 1.05rem;
    font-weight: 850;
    line-height: 1.25;
  }

  .sib-dashboard-home .sib-module-text {
    margin: 0;
    color: #53647c;
    font-size: .88rem;
    line-height: 1.45;
  }

  .sib-dashboard-home .sib-module-figure {
    flex: 0 0 118px;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .sib-dashboard-home .sib-module-img {
    max-width: 7.6rem;
    width: 100%;
    height: auto;
    filter: drop-shadow(0 12px 18px rgba(0, 32, 91, .14));
  }

  .sib-dashboard-home .sib-module-arrow {
    position: absolute;
    right: 18px;
    bottom: 16px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #0477bf;
    font-size: .82rem;
    font-weight: 850;
  }

  .sib-dashboard-home .sib-card-green::before {
    background: linear-gradient(90deg, #007a55, #15b981);
  }

  .sib-dashboard-home .sib-card-green .sib-module-icon {
    background: linear-gradient(135deg, #007a55, #15b981);
  }

  .sib-dashboard-home .sib-card-purple::before {
    background: linear-gradient(90deg, #3d2f8f, #7965d8);
  }

  .sib-dashboard-home .sib-card-purple .sib-module-icon {
    background: linear-gradient(135deg, #3d2f8f, #7965d8);
  }

  /*
  | Zona inferior de Autogestión a ancho completo.
  */
  .sib-auto-doble-page {
    width: 100% !important;
    max-width: none !important;
    min-width: 0;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 18px clamp(12px, 1.25vw, 22px) 28px !important;
    box-sizing: border-box;
  }

  .sib-auto-doble-page > .row {
    margin-left: -7px !important;
    margin-right: -7px !important;
  }

  .sib-auto-doble-page > .row > [class*="col-"] {
    min-width: 0;
    padding-left: 7px !important;
    padding-right: 7px !important;
  }

  /*
  | Opciones compactas: icono al frente, nombre al lado y toda la
  | tarjeta funciona como enlace.
  */
  .sib-auto-doble-page .sib-auto-system-box {
    padding: 16px !important;
  }

  .sib-auto-doble-page .sib-auto-module {
    margin-top: 14px !important;
    padding-bottom: 0 !important;
  }

  .sib-auto-doble-page .sib-auto-module-head {
    align-items: center !important;
    margin-bottom: 9px !important;
  }

  .sib-auto-doble-page .sib-auto-options-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
    gap: 9px !important;
    margin-top: 0 !important;
  }

  .sib-auto-doble-page .sib-auto-option-card {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    min-height: 66px !important;
    padding: 9px 12px !important;
    overflow: hidden;
    border-radius: 15px !important;
    color: #00205b !important;
    text-decoration: none !important;
    background: #ffffff !important;
    border: 1px solid rgba(0, 32, 91, .10) !important;
    box-shadow: 0 8px 20px rgba(0, 32, 91, .10) !important;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  }

  .sib-auto-doble-page .sib-auto-option-card:hover {
    color: #00205b !important;
    text-decoration: none !important;
    transform: translateY(-2px);
    border-color: rgba(4, 119, 191, .30) !important;
    box-shadow: 0 13px 28px rgba(0, 32, 91, .16) !important;
  }

  .sib-auto-doble-page .sib-auto-option-body {
    display: flex !important;
    flex: 1 1 auto;
    width: 100% !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 12px !important;
    min-width: 0;
    text-align: left !important;
    min-height: 0 !important;
    padding: 0 !important;
  }

  .sib-auto-doble-page .sib-auto-option-icon {
    flex: 0 0 auto;
    margin: 0 !important;
    text-align: left !important;
  }

  .sib-auto-doble-page .sib-auto-option-title {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0 !important;
    text-align: left !important;
    color: #00205b !important;
    font-size: .88rem !important;
    font-weight: 850 !important;
    line-height: 1.25 !important;
  }

  .sib-auto-doble-page .sib-auto-option-action {
    display: none !important;
  }

  @media (max-width: 767.98px) {
    .sib-dashboard-home .sib-home-hero {
      padding: 28px 0 76px;
      border-radius: 0 0 22px 22px;
    }

    .sib-dashboard-home .sib-module-body {
      padding: 20px;
    }

    .sib-dashboard-home .sib-module-content {
      align-items: flex-start;
    }

    .sib-dashboard-home .sib-module-figure {
      flex-basis: 92px;
    }

    .sib-dashboard-home .sib-module-img {
      max-width: 5.8rem;
    }

    .sib-dashboard-home .sib-autog-shell {
      padding-left: 10px;
      padding-right: 10px;
    }

    .sib-auto-doble-page {
      padding: 14px 10px 22px !important;
    }

    .sib-auto-doble-page .sib-auto-options-grid {
      grid-template-columns: 1fr !important;
    }

    .sib-auto-doble-page .sib-auto-option-card {
      min-height: 62px !important;
      padding: 8px 10px !important;
    }
  }

/* ==================== FOOTER PERFIL ==================== */
.sib-autogestion-footer {
      position: relative;
      overflow: hidden;
      color: #ffffff;
      background:
        radial-gradient(circle at top right, rgba(4, 119, 191, .42), transparent 32%),
        radial-gradient(circle at bottom left, rgba(255, 255, 255, .07), transparent 24%),
        linear-gradient(135deg, #00205b 0%, #053f7f 52%, #0477bf 100%);
      box-shadow: 0 -18px 42px rgba(0, 32, 91, .18);
    }

    .sib-autogestion-footer::before {
      content: "";
      position: absolute;
      right: -96px;
      top: -120px;
      width: 290px;
      height: 290px;
      border-radius: 50%;
      border: 48px solid rgba(255, 255, 255, .08);
      pointer-events: none;
    }

    .sib-autogestion-footer::after {
      content: "";
      position: absolute;
      left: -110px;
      bottom: -145px;
      width: 300px;
      height: 300px;
      border-radius: 50%;
      background: rgba(255, 255, 255, .045);
      pointer-events: none;
    }

    .sib-autogestion-footer .sib-footer-main {
      position: relative;
      z-index: 2;
      padding: 30px 28px 22px;
    }

    .sib-autogestion-footer .sib-footer-grid {
      display: grid;
      grid-template-columns: minmax(280px, 1.35fr) minmax(240px, .9fr) minmax(260px, .9fr);
      gap: 30px;
      align-items: stretch;
    }

    .sib-autogestion-footer .sib-brand-row {
      display: flex;
      align-items: flex-start;
      gap: 14px;
    }

    .sib-autogestion-footer .sib-brand-icon {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex: 0 0 54px;
      width: 54px;
      height: 54px;
      border-radius: 18px;
      color: #ffffff;
      background: rgba(255, 255, 255, .13);
      border: 1px solid rgba(255, 255, 255, .18);
      box-shadow: 0 14px 28px rgba(0, 32, 91, .20);
      backdrop-filter: blur(8px);
    }

    .sib-autogestion-footer .sib-brand-title {
      margin: 0 0 6px;
      color: #ffffff;
      font-size: 1.05rem;
      font-weight: 900;
      letter-spacing: -.02em;
    }

    .sib-autogestion-footer .sib-brand-text {
      max-width: 620px;
      margin: 0;
      color: rgba(255, 255, 255, .86);
      font-size: .88rem;
      line-height: 1.6;
    }

    .sib-autogestion-footer .sib-company-pill {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      max-width: 100%;
      margin-top: 16px;
      padding: 9px 14px;
      border-radius: 999px;
      color: #ffffff;
      background: rgba(255, 255, 255, .14);
      border: 1px solid rgba(255, 255, 255, .20);
      font-size: .78rem;
      font-weight: 850;
      text-transform: uppercase;
      letter-spacing: .02em;
      backdrop-filter: blur(8px);
    }

    .sib-autogestion-footer .sib-footer-card {
      padding: 18px;
      border-radius: 20px;
      background: rgba(255, 255, 255, .10);
      border: 1px solid rgba(255, 255, 255, .17);
      box-shadow: 0 16px 34px rgba(0, 32, 91, .16);
      backdrop-filter: blur(9px);
    }

    .sib-autogestion-footer .sib-footer-card-title {
      margin: 0 0 14px;
      color: #ffffff;
      font-size: .82rem;
      font-weight: 900;
      letter-spacing: .05em;
      text-transform: uppercase;
    }

    .sib-autogestion-footer .sib-footer-links {
      display: grid;
      gap: 10px;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .sib-autogestion-footer .sib-footer-links a,
    .sib-autogestion-footer .sib-legal-links a {
      color: rgba(255, 255, 255, .88);
      text-decoration: none;
      font-weight: 800;
      transition: color .18s ease, transform .18s ease;
    }

    .sib-autogestion-footer .sib-footer-links a {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      font-size: .86rem;
    }

    .sib-autogestion-footer .sib-footer-links a:hover,
    .sib-autogestion-footer .sib-legal-links a:hover {
      color: #ffffff;
      transform: translateX(2px);
      text-decoration: none;
    }

    .sib-autogestion-footer .sib-session-list {
      display: grid;
      gap: 10px;
      margin: 0;
      padding: 0;
      list-style: none;
      color: rgba(255, 255, 255, .88);
      font-size: .84rem;
      line-height: 1.45;
    }

    .sib-autogestion-footer .sib-session-list li {
      display: flex;
      align-items: flex-start;
      gap: 10px;
    }

    .sib-autogestion-footer .sib-session-list i,
    .sib-autogestion-footer .sib-footer-links i,
    .sib-autogestion-footer .sib-legal-links i {
      flex: 0 0 auto;
      margin-top: 2px;
      color: rgba(255, 255, 255, .78);
    }

    .sib-autogestion-footer .sib-footer-bottom {
      position: relative;
      z-index: 2;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 15px 28px 17px;
      border-top: 1px solid rgba(255, 255, 255, .14);
      background: rgba(0, 32, 91, .20);
      color: rgba(255, 255, 255, .88);
      font-size: .78rem;
    }

    .sib-autogestion-footer .sib-copyright strong {
      color: #ffffff;
      font-weight: 900;
    }

    .sib-autogestion-footer .sib-legal-links {
      display: inline-flex;
      flex-wrap: wrap;
      gap: 16px;
      align-items: center;
    }

    .sib-autogestion-footer .sib-scroll-top {
      position: fixed;
      right: 22px;
      bottom: 22px;
      z-index: 1040;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 52px;
      height: 52px;
      border: 0;
      border-radius: 16px;
      color: #ffffff;
      background: linear-gradient(135deg, #00205b, #0477bf);
      box-shadow: 0 16px 34px rgba(0, 32, 91, .30);
      cursor: pointer;
      transition: transform .18s ease, box-shadow .18s ease;
    }

    .sib-autogestion-footer .sib-scroll-top:hover {
      transform: translateY(-3px);
      box-shadow: 0 20px 42px rgba(0, 32, 91, .38);
    }

    .table-responsive {
      max-height: calc(100vh - 160px);
      overflow-y: auto;
      overflow-x: auto;
      position: relative;
    }

    table {
      border-collapse: separate !important;
      width: max-content;
    }

    thead th {
      position: sticky !important;
      top: 0;
      z-index: 100;
      background-color: #ffffff;
      border-bottom: 2px solid #dee2e6;
    }

    tbody td,
    thead th {
      white-space: nowrap;
    }

    @media (max-width: 991.98px) {
      .sib-autogestion-footer .sib-footer-grid {
        grid-template-columns: 1fr;
      }
    }

    @media (max-width: 575.98px) {
      .sib-autogestion-footer .sib-footer-main {
        padding: 24px 18px 18px;
      }

      .sib-autogestion-footer .sib-brand-row {
        flex-direction: column;
      }

      .sib-autogestion-footer .sib-footer-bottom {
        padding: 14px 18px 76px;
      }

      .sib-autogestion-footer .sib-legal-links {
        width: 100%;
        justify-content: flex-start;
      }
    }

/* ==========================================================================
   AUTOGESTIÓN SIB — LAYOUT ÚNICO Y AUTORITATIVO
   ========================================================================== */
:root {
  --sib-autog-topnav-height: 64px;
  --sib-autog-sidebar-width: 225px;
  --sib-autog-sidebar-mobile-width: min(306px, 88vw);
  --sib-autog-page-bg: #eef3f8;
}

html,
body.sib-autog-body {
  min-width: 0;
  margin: 0;
}

body.sib-autog-body {
  overflow-x: hidden;
  background: var(--sib-autog-page-bg) !important;
}

/* Barra superior fija con una única altura oficial. */
body.sib-autog-body .sib-autog-topnav {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: var(--sib-autog-topnav-height) !important;
  min-height: var(--sib-autog-topnav-height) !important;
}

/*
 * Escritorio:
 * #layoutSidenav vuelve a ser el contenedor real de dos columnas.
 * El fondo del padre mantiene azul toda la columna izquierda hasta el footer.
 */
body.sib-autog-body #layoutSidenav {
  display: flex !important;
  align-items: stretch !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: calc(100vh - var(--sib-autog-topnav-height)) !important;
  min-height: calc(100dvh - var(--sib-autog-topnav-height)) !important;
  margin: var(--sib-autog-topnav-height) 0 0 !important;
  padding: 0 !important;
  background:
    linear-gradient(
      90deg,
      #00205b 0,
      #013b7a var(--sib-autog-sidebar-width),
      var(--sib-autog-page-bg) var(--sib-autog-sidebar-width),
      var(--sib-autog-page-bg) 100%
    ) !important;
}

body.sib-autog-body #layoutSidenav > #layoutSidenav_nav {
  position: sticky !important;
  top: var(--sib-autog-topnav-height) !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  align-self: flex-start !important;
  flex: 0 0 var(--sib-autog-sidebar-width) !important;
  width: var(--sib-autog-sidebar-width) !important;
  min-width: var(--sib-autog-sidebar-width) !important;
  max-width: var(--sib-autog-sidebar-width) !important;
  height: calc(100vh - var(--sib-autog-topnav-height)) !important;
  height: calc(100dvh - var(--sib-autog-topnav-height)) !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  transform: none !important;
  z-index: 1038 !important;
}

body.sib-autog-body #layoutSidenav > #layoutSidenav_content {
  position: relative !important;
  top: 0 !important;
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  min-height: calc(100vh - var(--sib-autog-topnav-height)) !important;
  min-height: calc(100dvh - var(--sib-autog-topnav-height)) !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: hidden !important;
  background: var(--sib-autog-page-bg) !important;
}

body.sib-autog-body #layoutSidenav_content > main {
  flex: 1 0 auto;
  width: 100%;
  min-width: 0;
}

/* Sidebar y desplazamiento interno completo. */
body.sib-autog-body .sib-autog-sidebar {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

body.sib-autog-body .sib-autog-sidebar .sb-sidenav-menu {
  display: block !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, .38) transparent;
}

body.sib-autog-body .sib-autog-sidebar .sb-sidenav-menu > .nav {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  min-height: max-content !important;
  padding-bottom: 2px !important;
}

/* La sesión forma parte del flujo y queda después de la última opción. */
body.sib-autog-body #layoutSidenav_nav .sib-autog-side-footer,
body.sib-autog-body #layoutSidenav_nav .sib-autog-side-footer .sb-sidenav-footer,
body.sib-autog-body #layoutSidenav_nav .sib-autog-side-footer .sib-session-panel {
  position: static !important;
  inset: auto !important;
  float: none !important;
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
}

body.sib-autog-body #layoutSidenav_nav .sib-autog-side-footer {
  margin: 18px 14px 16px !important;
}

body.sib-autog-body #layoutSidenav_nav .sib-autog-side-footer .sb-sidenav-footer {
  margin: 0 !important;
  padding: 0 !important;
  color: inherit !important;
  background: transparent !important;
}

/* Footer general fuera del layout y a todo el ancho real. */
body.sib-autog-body .sib-autog-footer-full {
  position: relative !important;
  z-index: 1041 !important;
  display: block !important;
  clear: both !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.sib-autog-body .sib-autog-footer-full > footer,
body.sib-autog-body .sib-autog-footer-full .sib-autogestion-footer {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

/* Colapsado de escritorio. */
@media (min-width: 768px) {
  body.sib-autog-body.sb-sidenav-toggled #layoutSidenav {
    background: var(--sib-autog-page-bg) !important;
  }

  body.sib-autog-body.sb-sidenav-toggled
  #layoutSidenav > #layoutSidenav_nav {
    flex-basis: 0 !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    transform: translateX(calc(var(--sib-autog-sidebar-width) * -1)) !important;
  }
}

/* Móvil: menú superpuesto y contenido a todo el ancho. */
@media (max-width: 767.98px) {
  body.sib-autog-body {
    padding-bottom: 78px;
  }

  body.sib-autog-body.sib-autog-sidebar-open {
    overflow: hidden !important;
  }

  body.sib-autog-body #layoutSidenav {
    display: block !important;
    min-height: calc(100vh - var(--sib-autog-topnav-height)) !important;
    min-height: calc(100dvh - var(--sib-autog-topnav-height)) !important;
    background: var(--sib-autog-page-bg) !important;
  }

  body.sib-autog-body #layoutSidenav > #layoutSidenav_nav {
    position: fixed !important;
    top: var(--sib-autog-topnav-height) !important;
    right: auto !important;
    bottom: 0 !important;
    left: 0 !important;
    width: var(--sib-autog-sidebar-mobile-width) !important;
    min-width: 0 !important;
    max-width: var(--sib-autog-sidebar-mobile-width) !important;
    height: auto !important;
    max-height: none !important;
    transform: translateX(-108%) !important;
    transition: transform .22s ease !important;
    box-shadow: 24px 0 48px rgba(0, 32, 91, .34);
    z-index: 1040 !important;
  }

  body.sib-autog-body.sib-autog-sidebar-open
  #layoutSidenav > #layoutSidenav_nav,
  body.sib-autog-body.sb-sidenav-toggled
  #layoutSidenav > #layoutSidenav_nav {
    transform: translateX(0) !important;
  }

  body.sib-autog-body #layoutSidenav > #layoutSidenav_content {
    width: 100% !important;
    max-width: 100% !important;
    min-height: calc(100vh - var(--sib-autog-topnav-height)) !important;
    min-height: calc(100dvh - var(--sib-autog-topnav-height)) !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.sib-autog-body .sib-autog-mobile-overlay {
    inset: var(--sib-autog-topnav-height) 0 0 0;
  }

  body.sib-autog-body .sib-autog-footer-full {
    padding-bottom: 0 !important;
  }
}

/* ==================== INDEX MÓDULOS ==================== */
body.sib-modulos-body .sib-modulos-body {
    background: #eef3f8;
  }

  body.sib-modulos-body #layoutSidenav {
    position: relative;
    display: flex;
    width: 100%;
    min-width: 0;
    overflow-x: hidden;
  }

  body.sib-modulos-body #layoutSidenav_nav {
    flex: 0 0 280px !important;
    width: 280px !important;
    min-width: 280px !important;
    z-index: 1035;
  }

  body.sib-modulos-body #layoutSidenav_content {
    position: relative;
    min-width: 0 !important;
    width: calc(100% - 280px) !important;
    max-width: calc(100% - 280px) !important;
    overflow-x: hidden;
  }

  @media (min-width: 992px) {

    body.sib-modulos-body:not(.sb-sidenav-toggled) #layoutSidenav_nav {
      transform: translateX(0) !important;
    }

    body.sib-modulos-body:not(.sb-sidenav-toggled) #layoutSidenav_content {
      margin-left: 0 !important;
      width: calc(100% - 280px) !important;
      max-width: calc(100% - 280px) !important;
    }

    body.sib-modulos-body.sb-sidenav-toggled #layoutSidenav_nav {
      transform: translateX(-280px) !important;
    }

    body.sib-modulos-body.sb-sidenav-toggled #layoutSidenav_content {
      margin-left: 0 !important;
      width: 100% !important;
      max-width: 100% !important;
    }
  
}

  body.sib-modulos-body .sib-sidebar-overlay {
    display: none;
  }

  body.sib-modulos-body .sib-sidenav-pro {
    width: 280px;
    border: 0;
    background:
      radial-gradient(circle at top left, rgba(4, 119, 191, .22), transparent 34%),
      linear-gradient(180deg, #00205b 0%, #052a62 55%, #031a3c 100%);
    box-shadow: 14px 0 38px rgba(0, 32, 91, .20);
  }

  body.sib-modulos-body .sib-sidenav-pro .sb-sidenav-menu {
    padding: 16px 12px 18px;
  }

  body.sib-modulos-body .sib-sidenav-pro .sib-sidebar-brand-card {
    position: relative;
    overflow: hidden;
    padding: 18px;
    margin: 0 0 14px;
    border-radius: 22px;
    color: #ffffff;
    background: rgba(255, 255, 255, .10);
    border: 1px solid rgba(255, 255, 255, .16);
  }

  body.sib-modulos-body .sib-sidenav-pro .sib-sidebar-brand-card::after {
    content: "";
    position: absolute;
    right: -36px;
    bottom: -42px;
    width: 132px;
    height: 132px;
    border-radius: 50%;
    border: 24px solid rgba(255, 255, 255, .07);
  }

  body.sib-modulos-body .sib-sidenav-pro .sib-sidebar-brand-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    margin-bottom: 12px;
    border-radius: 16px;
    color: #ffffff;
    background: linear-gradient(135deg, #0477bf, #38bdf8);
    box-shadow: 0 14px 24px rgba(0, 32, 91, .24);
  }

  body.sib-modulos-body .sib-sidenav-pro .sib-sidebar-title {
    position: relative;
    z-index: 2;
    margin: 0 0 4px;
    color: #ffffff;
    font-size: .98rem;
    font-weight: 900;
    line-height: 1.25;
  }

  body.sib-modulos-body .sib-sidenav-pro .sib-sidebar-subtitle {
    position: relative;
    z-index: 2;
    margin: 0;
    color: rgba(255, 255, 255, .72);
    font-size: .78rem;
    line-height: 1.42;
  }

  body.sib-modulos-body .sib-sidenav-pro .sb-sidenav-menu-heading {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 18px 12px 8px;
    color: rgba(255, 255, 255, .72);
    font-size: .70rem;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
  }

  body.sib-modulos-body .sib-sidenav-pro .sb-sidenav-menu-heading i {
    color: #8ddcff;
  }

  body.sib-modulos-body .sib-sidenav-pro .nav-link {
    display: flex;
    align-items: center;
    gap: 11px;
    min-height: 44px;
    padding: 10px 12px;
    margin: 3px 0;
    border-radius: 15px;
    color: rgba(255, 255, 255, .86);
    font-size: .88rem;
    font-weight: 750;
    line-height: 1.25;
    transition: background .18s ease, transform .18s ease, color .18s ease;
  }

  body.sib-modulos-body .sib-sidenav-pro .nav-link:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, .13);
    transform: translateX(2px);
    text-decoration: none;
  }

  body.sib-modulos-body .sib-sidenav-pro .nav-link .sb-nav-link-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    overflow: hidden;
    border-radius: 12px;
    color: #ffffff;
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .12);
  }

  body.sib-modulos-body .sib-sidenav-pro .nav-link .sb-nav-link-icon img {
    width: 21px;
    height: 21px;
    object-fit: contain;
  }

  body.sib-modulos-body .sib-sidenav-pro .sib-nav-link-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  body.sib-modulos-body .sib-sidenav-pro .sib-sidebar-empty {
    margin: 4px 0 8px;
    padding: 10px 12px;
    border-radius: 14px;
    color: rgba(255, 255, 255, .66);
    background: rgba(255, 255, 255, .08);
    font-size: .80rem;
    line-height: 1.35;
  }

  body.sib-modulos-body .sib-sidenav-pro .sb-sidenav-footer {
    padding: 14px 12px 16px;
    background: rgba(0, 0, 0, .16);
    border-top: 1px solid rgba(255, 255, 255, .10);
  }

  body.sib-modulos-body .sib-sidenav-pro .sib-user-card {
    padding: 14px;
    border-radius: 18px;
    color: #ffffff;
    background: rgba(255, 255, 255, .10);
    border: 1px solid rgba(255, 255, 255, .14);
  }

  body.sib-modulos-body .sib-sidenav-pro .sib-user-card small {
    display: block;
    color: rgba(255, 255, 255, .66);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
  }

  body.sib-modulos-body .sib-sidenav-pro .sib-user-card strong {
    display: block;
    margin: 2px 0 7px;
    color: #ffffff;
    font-size: .90rem;
    line-height: 1.28;
  }

  body.sib-modulos-body .sib-sidenav-pro .sib-user-client,
body.sib-modulos-body .sib-sidenav-pro .sib-user-date {
    margin: 0;
    color: rgba(255, 255, 255, .74);
    font-size: .76rem;
    line-height: 1.35;
  }

  body.sib-modulos-body .sib-mobile-quickbar {
    display: none;
  }

  @media (max-width: 991.98px) {

    body.sib-modulos-body #layoutSidenav {
      display: block;
      width: 100%;
      overflow-x: hidden;
    }

    body.sib-modulos-body #layoutSidenav_nav {
      position: fixed;
      top: 64px;
      left: 0;
      bottom: 0;
      flex: none !important;
      width: 280px !important;
      min-width: 280px !important;
      max-width: 84vw;
      transform: translateX(-105%) !important;
      transition: transform .22s ease;
    }

    body.sib-modulos-body #layoutSidenav_content {
      margin-left: 0 !important;
      padding-left: 0 !important;
      width: 100% !important;
      max-width: 100% !important;
      min-width: 0 !important;
      overflow-x: hidden;
    }

    body.sib-modulos-body.sb-sidenav-toggled #layoutSidenav_nav {
      transform: translateX(0) !important;
    }

    body.sib-modulos-body .sib-sidebar-overlay {
      position: fixed;
      inset: 64px 0 0 0;
      z-index: 1030;
      background: rgba(0, 20, 48, .48);
      backdrop-filter: blur(2px);
    }

    body.sib-modulos-body.sb-sidenav-toggled .sib-sidebar-overlay {
      display: block;
    }

    body.sib-modulos-body .sib-sidenav-pro {
      height: calc(100vh - 64px);
      overflow-y: auto;
    }

    body.sib-modulos-body .sib-mobile-quickbar {
      position: fixed;
      left: 12px;
      right: 12px;
      bottom: 12px;
      z-index: 1045;
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 6px;
      padding: 8px;
      border-radius: 22px;
      background: rgba(0, 32, 91, .94);
      border: 1px solid rgba(255, 255, 255, .14);
      box-shadow: 0 18px 40px rgba(0, 32, 91, .28);
    }

    body.sib-modulos-body .sib-mobile-quickbar a {
      display: flex;
      align-items: center;
      justify-content: center;
      flex-direction: column;
      gap: 3px;
      min-height: 48px;
      border-radius: 16px;
      color: rgba(255, 255, 255, .84);
      font-size: .68rem;
      font-weight: 850;
      text-decoration: none;
    }

    body.sib-modulos-body .sib-mobile-quickbar a:hover {
      color: #ffffff;
      background: rgba(255, 255, 255, .12);
      text-decoration: none;
    }

    body.sib-modulos-body .sib-mobile-quickbar i {
      font-size: .94rem;
    }

    body.sib-modulos-body {
      padding-bottom: 76px;
    }
  
}


  /* =========================================================
     FIX FINAL SIB PRO - SB ADMIN LAYOUT
     Corrige el cruce con las reglas originales de SB Admin.
     El problema era que SB Admin seguía moviendo el sidebar -225px,
     pero este menú mide 280px. Eso dejaba una franja visible y montada.
  ========================================================= */

  body.sib-modulos-body {
    --sib-sidebar-width: 280px;
    --sib-topnav-height: 70px;
    --sib-topnav-height-mobile: 64px;
  }

  html body.sib-modulos-body {
    overflow-x: hidden !important;
  }

  html body.sib-modulos-body #layoutSidenav {
    display: flex !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
  }

  html body.sib-modulos-body #layoutSidenav #layoutSidenav_nav {
    flex: 0 0 var(--sib-sidebar-width) !important;
    width: var(--sib-sidebar-width) !important;
    min-width: var(--sib-sidebar-width) !important;
    max-width: var(--sib-sidebar-width) !important;
    transform: translateX(0) !important;
    z-index: 1035 !important;
  }

  html body.sib-modulos-body #layoutSidenav #layoutSidenav_nav .sib-sidenav-pro {
    width: var(--sib-sidebar-width) !important;
    min-width: var(--sib-sidebar-width) !important;
  }

  html body.sib-modulos-body #layoutSidenav #layoutSidenav_content {
    flex: 1 1 auto !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
    overflow-x: hidden !important;
  }

  html body.sib-modulos-body #layoutSidenav #layoutSidenav_content main,
html body.sib-modulos-body #layoutSidenav #layoutSidenav_content .container-fluid {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  @media (min-width: 992px) {

    html body.sib-modulos-body:not(.sb-sidenav-toggled) #layoutSidenav #layoutSidenav_nav {
      transform: translateX(0) !important;
    }

    html body.sib-modulos-body:not(.sb-sidenav-toggled) #layoutSidenav #layoutSidenav_content {
      margin-left: 0 !important;
      width: auto !important;
      max-width: none !important;
    }

    html body.sib-modulos-body.sb-sidenav-toggled #layoutSidenav #layoutSidenav_nav {
      transform: translateX(calc(-1 * var(--sib-sidebar-width))) !important;
      flex-basis: 0 !important;
      width: 0 !important;
      min-width: 0 !important;
      max-width: 0 !important;
      overflow: hidden !important;
    }

    html body.sib-modulos-body.sb-sidenav-toggled #layoutSidenav #layoutSidenav_content {
      margin-left: 0 !important;
      width: 100% !important;
      max-width: 100% !important;
      flex-basis: 100% !important;
    }
  
}

  @media (max-width: 991.98px) {

    html body.sib-modulos-body #layoutSidenav {
      display: block !important;
      width: 100% !important;
      max-width: 100% !important;
      overflow-x: hidden !important;
    }

    html body.sib-modulos-body #layoutSidenav #layoutSidenav_nav {
      position: fixed !important;
      top: var(--sib-topnav-height-mobile) !important;
      left: 0 !important;
      bottom: 0 !important;
      width: var(--sib-sidebar-width) !important;
      min-width: var(--sib-sidebar-width) !important;
      max-width: 84vw !important;
      height: calc(100vh - var(--sib-topnav-height-mobile)) !important;
      transform: translateX(-105%) !important;
      transition: transform .22s ease !important;
      overflow: hidden !important;
      z-index: 1045 !important;
    }

    html body.sib-modulos-body.sb-sidenav-toggled #layoutSidenav #layoutSidenav_nav {
      transform: translateX(0) !important;
      width: var(--sib-sidebar-width) !important;
      min-width: var(--sib-sidebar-width) !important;
      max-width: 84vw !important;
    }

    html body.sib-modulos-body #layoutSidenav #layoutSidenav_nav .sib-sidenav-pro {
      height: calc(100vh - var(--sib-topnav-height-mobile)) !important;
      overflow-y: auto !important;
      overflow-x: hidden !important;
    }

    html body.sib-modulos-body #layoutSidenav #layoutSidenav_content {
      display: block !important;
      width: 100% !important;
      max-width: 100% !important;
      min-width: 0 !important;
      margin-left: 0 !important;
      padding-left: 0 !important;
      overflow-x: hidden !important;
    }

    html body.sib-modulos-body #layoutSidenav #layoutSidenav_content main {
      width: 100% !important;
      max-width: 100% !important;
      overflow-x: hidden !important;
      padding-bottom: 96px !important;
    }

    html body.sib-modulos-body #layoutSidenav #layoutSidenav_content .container-fluid {
      width: 100% !important;
      max-width: 100% !important;
      overflow-x: hidden !important;
    }

    html body.sib-modulos-body #layoutSidenav #layoutSidenav_content .row {
      margin-left: 0 !important;
      margin-right: 0 !important;
    }
  
}

/* =========================================================
     FIX LAYOUT SIB PRO
     Este bloque corrige la sobreposición del menú lateral
     sobre el contenido principal en escritorio y móvil.
  ========================================================= */

  body.sib-modulos-body {
    --sib-sidebar-width: 280px;
    --sib-topnav-height: 72px;
  }

  body.sib-modulos-body,
body.sib-modulos-body {
    overflow-x: hidden;
  }

  body.sib-modulos-body #layoutSidenav {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  @media (min-width: 992px) {

    body.sib-modulos-body #layoutSidenav {
      display: flex !important;
      align-items: stretch !important;
    }

    body.sib-modulos-body #layoutSidenav #layoutSidenav_nav {
      position: sticky !important;
      top: var(--sib-topnav-height) !important;
      flex: 0 0 var(--sib-sidebar-width) !important;
      width: var(--sib-sidebar-width) !important;
      min-width: var(--sib-sidebar-width) !important;
      max-width: var(--sib-sidebar-width) !important;
      height: calc(100vh - var(--sib-topnav-height)) !important;
      transform: none !important;
      margin-left: 0 !important;
      z-index: 1030 !important;
      overflow: hidden !important;
    }

    body.sib-modulos-body #layoutSidenav #layoutSidenav_content.sib-modulos-layout-content {
      position: relative !important;
      flex: 1 1 auto !important;
      width: calc(100% - var(--sib-sidebar-width)) !important;
      max-width: calc(100% - var(--sib-sidebar-width)) !important;
      min-width: 0 !important;
      margin-left: 0 !important;
      padding-left: 0 !important;
      overflow-x: hidden !important;
    }

    body.sib-modulos-body.sb-sidenav-toggled #layoutSidenav #layoutSidenav_nav {
      margin-left: calc(var(--sib-sidebar-width) * -1) !important;
      transform: none !important;
    }

    body.sib-modulos-body.sb-sidenav-toggled #layoutSidenav #layoutSidenav_content.sib-modulos-layout-content {
      width: 100% !important;
      max-width: 100% !important;
      margin-left: 0 !important;
    }
  
}

  @media (max-width: 991.98px) {

    body.sib-modulos-body #layoutSidenav {
      display: block !important;
      width: 100% !important;
      max-width: 100% !important;
      overflow-x: hidden !important;
    }

    body.sib-modulos-body #layoutSidenav #layoutSidenav_nav {
      position: fixed !important;
      top: var(--sib-topnav-height) !important;
      left: 0 !important;
      width: var(--sib-sidebar-width) !important;
      max-width: 84vw !important;
      height: calc(100vh - var(--sib-topnav-height)) !important;
      transform: translateX(-105%) !important;
      margin-left: 0 !important;
      transition: transform .25s ease !important;
      z-index: 1055 !important;
      overflow-y: auto !important;
      overflow-x: hidden !important;
    }

    body.sib-modulos-body.sb-sidenav-toggled #layoutSidenav #layoutSidenav_nav {
      transform: translateX(0) !important;
    }

    body.sib-modulos-body #layoutSidenav #layoutSidenav_content.sib-modulos-layout-content {
      position: relative !important;
      width: 100% !important;
      max-width: 100% !important;
      min-width: 0 !important;
      margin-left: 0 !important;
      padding-left: 0 !important;
      overflow-x: hidden !important;
    }
  
}

  /* =========================================================
     PRESENTACIÓN PRINCIPAL DEL MÓDULO
  ========================================================= */

  body.sib-modulos-body .sib-modulos-main {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
    padding-bottom: 42px;
  }

  body.sib-modulos-body .sib-modulos-shell {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 22px 24px 28px;
    overflow-x: hidden;
  }

  body.sib-modulos-body .sib-modulos-hero {
    position: relative;
    overflow: hidden;
    border-radius: 22px;
    padding: 24px;
    margin-bottom: 18px;
    background:
      radial-gradient(circle at top right, rgba(4, 119, 191, .25), transparent 34%),
      linear-gradient(135deg, #00205b 0%, #013b7a 52%, #0477bf 100%);
    box-shadow: 0 18px 42px rgba(0, 32, 91, .22);
  }

  body.sib-modulos-body .sib-modulos-hero::after {
    content: "";
    position: absolute;
    right: -70px;
    bottom: -80px;
    width: 240px;
    height: 240px;
    border-radius: 50%;
    border: 42px solid rgba(255, 255, 255, .08);
    pointer-events: none;
  }

  body.sib-modulos-body .sib-modulos-hero-content {
    position: relative;
    z-index: 2;
  }

  body.sib-modulos-body .sib-modulos-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 13px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
    color: #ffffff;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  body.sib-modulos-body .sib-modulos-title {
    margin: 14px 0 6px;
    color: #ffffff;
    font-size: clamp(1.55rem, 3vw, 2.35rem);
    font-weight: 850;
    letter-spacing: -.035em;
    line-height: 1.1;
  }

  body.sib-modulos-body .sib-modulos-subtitle {
    max-width: 860px;
    margin: 0;
    color: rgba(255, 255, 255, .86);
    font-size: .96rem;
    line-height: 1.55;
  }

  body.sib-modulos-body .sib-modulos-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 20px;
  }

  body.sib-modulos-body .sib-modulos-stat {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 11px 14px;
    border-radius: 15px;
    color: #ffffff;
    background: rgba(255, 255, 255, .14);
    border: 1px solid rgba(255, 255, 255, .18);
    backdrop-filter: blur(8px);
  }

  body.sib-modulos-body .sib-modulos-stat strong {
    font-size: 1.05rem;
  }

  body.sib-modulos-body .sib-modulos-guide {
    margin-bottom: 18px;
    padding: 16px 18px;
    border-radius: 18px;
    color: #24364f;
    background: linear-gradient(135deg, rgba(0, 32, 91, .06), rgba(4, 119, 191, .10));
    border: 1px solid rgba(4, 119, 191, .18);
    box-shadow: 0 12px 28px rgba(0, 32, 91, .08);
  }

  body.sib-modulos-body .sib-modulos-guide strong {
    color: #00205b;
  }

  body.sib-modulos-body .sib-modulos-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  body.sib-modulos-body .sib-modulo-card {
    overflow: hidden;
    min-width: 0;
    border-radius: 20px;
    background: #ffffff;
    border: 1px solid rgba(0, 32, 91, .10);
    box-shadow: 0 16px 38px rgba(0, 32, 91, .12);
  }

  body.sib-modulos-body .sib-modulo-card-header {
    display: flex;
    align-items: center;
    gap: 11px;
    min-height: 58px;
    padding: 15px 18px;
    background: linear-gradient(135deg, #00205b, #063f8a);
    color: #ffffff;
  }

  body.sib-modulos-body .sib-modulo-card-header i {
    color: rgba(255, 255, 255, .9);
  }

  body.sib-modulos-body .sib-modulo-card-title {
    margin: 0;
    color: #ffffff;
    font-size: .98rem;
    font-weight: 850;
    line-height: 1.25;
  }

  body.sib-modulos-body .sib-modulo-card-body {
    padding: 18px;
  }

  body.sib-modulos-body .sib-modulo-list {
    overflow: hidden;
    border-radius: 14px;
    border: 1px solid rgba(0, 32, 91, .10);
  }

  body.sib-modulos-body .sib-modulo-item {
    display: flex;
    align-items: center;
    gap: 13px;
    min-height: 58px;
    padding: 12px 14px;
    color: #00205b;
    background: #ffffff;
    border-bottom: 1px solid rgba(0, 32, 91, .09);
    text-decoration: none;
    font-weight: 650;
    transition: background .18s ease, transform .18s ease, color .18s ease;
  }

  body.sib-modulos-body .sib-modulo-item:last-child {
    border-bottom: 0;
  }

  body.sib-modulos-body .sib-modulo-item:hover {
    color: #00205b;
    background: rgba(4, 119, 191, .07);
    text-decoration: none;
    transform: translateX(3px);
  }

  body.sib-modulos-body .sib-modulo-item-icon {
    flex: 0 0 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 13px;
    background: rgba(0, 32, 91, .06);
  }

  body.sib-modulos-body .sib-modulo-item-icon img {
    max-width: 28px;
    max-height: 28px;
    object-fit: contain;
  }

  body.sib-modulos-body .sib-modulo-item-text {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
    line-height: 1.3;
  }

  body.sib-modulos-body .sib-modulos-empty {
    padding: 30px 18px;
    border-radius: 20px;
    background: #ffffff;
    border: 1px solid rgba(0, 32, 91, .10);
    box-shadow: 0 16px 38px rgba(0, 32, 91, .10);
    text-align: center;
    color: #53647c;
  }

  body.sib-modulos-body .sib-modulos-empty i {
    display: block;
    margin-bottom: 10px;
    color: #0477bf;
    font-size: 2rem;
  }

  @media (max-width: 1199.98px) {

    body.sib-modulos-body .sib-modulos-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  
}

  @media (max-width: 991.98px) {

    body.sib-modulos-body .sib-modulos-shell {
      padding: 18px 14px 104px;
    }

    body.sib-modulos-body .sib-modulos-grid {
      grid-template-columns: 1fr;
    }

    body.sib-modulos-body .sib-modulos-hero {
      padding: 20px;
      border-radius: 18px;
    }
  
}

/* ==========================================================================
   INDEX MÓDULOS SIB — LAYOUT ÚNICO Y AUTORITATIVO
   ========================================================================== */
body.sib-modulos-body {
  --sib-modulos-topnav-height: 70px;
  --sib-modulos-topnav-mobile-height: 64px;
  --sib-modulos-sidebar-width: 280px;
  --sib-modulos-page-bg: #eef3f8;

  min-width: 0;
  margin: 0;
  overflow-x: hidden;
  background: var(--sib-modulos-page-bg) !important;
}

/*
 * El layout es una fila real:
 * menú de 280 px + contenido flexible.
 * El fondo del padre conserva la columna azul hasta el footer.
 */
body.sib-modulos-body #layoutSidenav {
  display: flex !important;
  align-items: stretch !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: calc(
    100vh - var(--sib-modulos-topnav-height)
  ) !important;
  min-height: calc(
    100dvh - var(--sib-modulos-topnav-height)
  ) !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  background:
    linear-gradient(
      90deg,
      #00205b 0,
      #013b7a var(--sib-modulos-sidebar-width),
      var(--sib-modulos-page-bg)
        var(--sib-modulos-sidebar-width),
      var(--sib-modulos-page-bg) 100%
    ) !important;
}

body.sib-modulos-body
#layoutSidenav > #layoutSidenav_nav {
  position: sticky !important;
  top: var(--sib-modulos-topnav-height) !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  align-self: flex-start !important;
  flex: 0 0 var(--sib-modulos-sidebar-width) !important;
  width: var(--sib-modulos-sidebar-width) !important;
  min-width: var(--sib-modulos-sidebar-width) !important;
  max-width: var(--sib-modulos-sidebar-width) !important;
  height: calc(
    100vh - var(--sib-modulos-topnav-height)
  ) !important;
  height: calc(
    100dvh - var(--sib-modulos-topnav-height)
  ) !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  transform: none !important;
  z-index: 1035 !important;
}

body.sib-modulos-body
#layoutSidenav > #layoutSidenav_content {
  position: relative !important;
  top: 0 !important;
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  min-height: calc(
    100vh - var(--sib-modulos-topnav-height)
  ) !important;
  min-height: calc(
    100dvh - var(--sib-modulos-topnav-height)
  ) !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: hidden !important;
  background: var(--sib-modulos-page-bg) !important;
}

body.sib-modulos-body
#layoutSidenav_content > main {
  width: 100% !important;
  min-width: 0 !important;
}

/* Sidebar con desplazamiento interno completo. */
body.sib-modulos-body .sib-sidenav-pro {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

body.sib-modulos-body
.sib-sidenav-pro .sb-sidenav-menu {
  display: block !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  padding-bottom: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color:
    rgba(255, 255, 255, .38) transparent;
}

body.sib-modulos-body
.sib-sidenav-pro .sb-sidenav-menu > .nav {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  min-height: max-content !important;
}

/* Inicio de sesión al final real del listado. */
body.sib-modulos-body .sib-modulos-side-footer,
body.sib-modulos-body
.sib-modulos-side-footer .sb-sidenav-footer,
body.sib-modulos-body
.sib-modulos-side-footer .sib-session-panel {
  position: static !important;
  inset: auto !important;
  float: none !important;
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
}

body.sib-modulos-body .sib-modulos-side-footer {
  margin: 18px 0 0 !important;
  padding: 14px 0 16px !important;
  background: rgba(0, 32, 91, .18);
  border-top: 1px solid rgba(255, 255, 255, .10);
}

body.sib-modulos-body
.sib-modulos-side-footer .sb-sidenav-footer {
  margin: 0 !important;
  padding: 0 12px !important;
  color: inherit !important;
  background: transparent !important;
}

/* Footer corporativo fuera del layout y a todo el ancho. */
body.sib-modulos-body .sib-modulos-footer-full {
  position: relative !important;
  z-index: 1041 !important;
  display: block !important;
  clear: both !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.sib-modulos-body
.sib-modulos-footer-full > footer,
body.sib-modulos-body
.sib-modulos-footer-full .sib-autogestion-footer {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

/* Colapsado en escritorio. */
@media (min-width: 992px) {
  body.sib-modulos-body.sb-sidenav-toggled
  #layoutSidenav {
    background: var(--sib-modulos-page-bg) !important;
  }

  body.sib-modulos-body.sb-sidenav-toggled
  #layoutSidenav > #layoutSidenav_nav {
    flex-basis: 0 !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    transform: translateX(
      calc(var(--sib-modulos-sidebar-width) * -1)
    ) !important;
  }
}

/* Móvil: menú superpuesto y contenido al 100 %. */
@media (max-width: 991.98px) {
  body.sib-modulos-body {
    padding-bottom: 76px;
  }

  body.sib-modulos-body.sb-sidenav-toggled {
    overflow: hidden !important;
  }

  body.sib-modulos-body #layoutSidenav {
    display: block !important;
    min-height: calc(
      100vh - var(--sib-modulos-topnav-mobile-height)
    ) !important;
    min-height: calc(
      100dvh - var(--sib-modulos-topnav-mobile-height)
    ) !important;
    background: var(--sib-modulos-page-bg) !important;
  }

  body.sib-modulos-body
  #layoutSidenav > #layoutSidenav_nav {
    position: fixed !important;
    top: var(
      --sib-modulos-topnav-mobile-height
    ) !important;
    right: auto !important;
    bottom: 0 !important;
    left: 0 !important;
    width: min(
      var(--sib-modulos-sidebar-width),
      84vw
    ) !important;
    min-width: 0 !important;
    max-width: 84vw !important;
    height: auto !important;
    max-height: none !important;
    transform: translateX(-108%) !important;
    transition: transform .22s ease !important;
    box-shadow:
      24px 0 48px rgba(0, 32, 91, .34);
    z-index: 1045 !important;
  }

  body.sib-modulos-body.sb-sidenav-toggled
  #layoutSidenav > #layoutSidenav_nav {
    transform: translateX(0) !important;
  }

  body.sib-modulos-body
  #layoutSidenav > #layoutSidenav_content {
    width: 100% !important;
    max-width: 100% !important;
    min-height: calc(
      100vh - var(--sib-modulos-topnav-mobile-height)
    ) !important;
    min-height: calc(
      100dvh - var(--sib-modulos-topnav-mobile-height)
    ) !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.sib-modulos-body .sib-sidebar-overlay {
    inset:
      var(--sib-modulos-topnav-mobile-height)
      0 0 0;
  }
}

/* ==========================================================================
   INDEX MÓDULOS — PANTALLA COMPLETA SIN MENÚ LATERAL
   ==========================================================================
   Corrige una regla heredada que conservaba el ancho de 280 px y desplazaba
   el contenido cuando se ocultaba el sidebar.
   ========================================================================== */
@media (min-width: 992px) {
  html body.sib-modulos-body.sb-sidenav-toggled
  #layoutSidenav {
    display: flex !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    overflow-x: hidden !important;
  }

  html body.sib-modulos-body.sb-sidenav-toggled
  #layoutSidenav > #layoutSidenav_nav {
    flex: 0 0 0 !important;
    flex-basis: 0 !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    transform: translateX(
      calc(var(--sib-modulos-sidebar-width) * -1)
    ) !important;
  }

  html body.sib-modulos-body.sb-sidenav-toggled
  #layoutSidenav > #layoutSidenav_content.sib-modulos-layout-content {
    position: relative !important;
    top: 0 !important;
    right: auto !important;
    left: 0 !important;
    flex: 1 1 100% !important;
    flex-basis: 100% !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    overflow-x: hidden !important;
  }

  html body.sib-modulos-body.sb-sidenav-toggled
  #layoutSidenav_content > main,
  html body.sib-modulos-body.sb-sidenav-toggled
  #layoutSidenav_content .sib-modulos-main,
  html body.sib-modulos-body.sb-sidenav-toggled
  #layoutSidenav_content .sib-modulos-shell {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    transform: none !important;
  }
}

/* ==========================================================================
   EXPERIENCIA DE NAVEGACIÓN SIB PRO — ÍNDICE DE MÓDULOS
   ==========================================================================
   Objetivos:
   - panel principal limpio y a pantalla completa;
   - encabezado compacto;
   - búsqueda inmediata con Ctrl/Cmd + K;
   - favoritos y recientes locales;
   - jerarquía visual consistente y cómoda.
   ========================================================================== */

body.sib-modulos-body .sib-modulos-shell-pro {
  padding: 14px 16px 28px !important;
}

body.sib-modulos-body .sib-modulos-hero-pro {
  margin-bottom: 14px !important;
  padding: 16px 20px 18px !important;
  border-radius: 20px !important;
}

body.sib-modulos-body .sib-modulos-breadcrumb {
  position: relative;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  margin: 0 0 12px;
  color: rgba(255, 255, 255, .72);
  font-size: .72rem;
  font-weight: 750;
}

body.sib-modulos-body .sib-modulos-breadcrumb a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgba(255, 255, 255, .84);
  text-decoration: none;
}

body.sib-modulos-body .sib-modulos-breadcrumb a:hover {
  color: #ffffff;
  text-decoration: none;
}

body.sib-modulos-body .sib-modulos-breadcrumb strong {
  color: #ffffff;
  font-weight: 900;
}

body.sib-modulos-body .sib-modulos-hero-layout {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    minmax(320px, 430px);
  gap: 22px;
  align-items: center;
}

body.sib-modulos-body .sib-modulos-hero-copy {
  min-width: 0;
}

body.sib-modulos-body .sib-modulos-hero-pro
.sib-modulos-eyebrow {
  padding: 5px 10px !important;
  font-size: .68rem !important;
}

body.sib-modulos-body .sib-modulos-hero-pro
.sib-modulos-title {
  margin: 9px 0 5px !important;
  font-size: clamp(1.45rem, 2.3vw, 2rem) !important;
}

body.sib-modulos-body .sib-modulos-hero-pro
.sib-modulos-subtitle {
  max-width: 760px;
  font-size: .88rem !important;
  line-height: 1.45 !important;
}

body.sib-modulos-body .sib-modulos-hero-pro
.sib-modulos-stats {
  gap: 8px !important;
  margin-top: 12px !important;
}

body.sib-modulos-body .sib-modulos-hero-pro
.sib-modulos-stat {
  gap: 7px !important;
  padding: 7px 10px !important;
  border-radius: 12px !important;
  font-size: .76rem;
}

body.sib-modulos-body .sib-modulos-hero-pro
.sib-modulos-stat strong {
  font-size: .88rem !important;
}

body.sib-modulos-body .sib-module-search-panel {
  padding: 14px;
  border-radius: 17px;
  background: rgba(255, 255, 255, .14);
  border: 1px solid rgba(255, 255, 255, .20);
  box-shadow: 0 14px 32px rgba(0, 32, 91, .16);
  backdrop-filter: blur(10px);
}

body.sib-modulos-body .sib-module-search-label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  color: #ffffff;
  font-size: .76rem;
  font-weight: 900;
}

body.sib-modulos-body .sib-module-search-box {
  position: relative;
  display: flex;
  align-items: center;
  min-width: 0;
}

body.sib-modulos-body .sib-module-search-box > i {
  position: absolute;
  left: 14px;
  z-index: 2;
  color: #0477bf;
  pointer-events: none;
}

body.sib-modulos-body .sib-module-search-input {
  width: 100%;
  min-width: 0;
  height: 46px;
  padding: 0 94px 0 42px;
  border: 1px solid rgba(255, 255, 255, .45);
  border-radius: 14px;
  outline: 0;
  color: #12233f;
  background: rgba(255, 255, 255, .97);
  font-size: .88rem;
  font-weight: 650;
  box-shadow: 0 8px 20px rgba(0, 32, 91, .12);
}

body.sib-modulos-body
.sib-module-search-input:focus {
  border-color: #7dd3fc;
  box-shadow:
    0 0 0 4px rgba(125, 211, 252, .22),
    0 10px 24px rgba(0, 32, 91, .16);
}

body.sib-modulos-body
.sib-module-search-input::placeholder {
  color: #7b8798;
  font-weight: 550;
}

body.sib-modulos-body .sib-module-search-clear {
  position: absolute;
  right: 58px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 9px;
  color: #52657d;
  background: transparent;
}

body.sib-modulos-body
.sib-module-search-clear:hover {
  color: #00205b;
  background: rgba(0, 32, 91, .07);
}

body.sib-modulos-body
.sib-module-search-shortcut {
  position: absolute;
  right: 9px;
  z-index: 2;
  padding: 4px 7px;
  border: 1px solid rgba(0, 32, 91, .12);
  border-radius: 7px;
  color: #53647c;
  background: #f1f5f9;
  font-size: .62rem;
  font-weight: 900;
  box-shadow: none;
}

body.sib-modulos-body .sib-module-search-help,
body.sib-modulos-body .sib-module-search-status {
  margin-top: 7px;
  color: rgba(255, 255, 255, .74);
  font-size: .68rem;
  line-height: 1.35;
}

body.sib-modulos-body
.sib-module-search-status:not(:empty) {
  color: #ffffff;
  font-weight: 850;
}

body.sib-modulos-body .sib-smart-access {
  margin-bottom: 14px;
  padding: 15px 16px;
  border: 1px solid rgba(0, 32, 91, .10);
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 12px 28px rgba(0, 32, 91, .08);
}

body.sib-modulos-body .sib-smart-access-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 12px;
}

body.sib-modulos-body .sib-smart-access-kicker {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #0477bf;
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.sib-modulos-body .sib-smart-access-head h2 {
  margin: 3px 0 0;
  color: #00205b;
  font-size: .98rem;
  font-weight: 900;
}

body.sib-modulos-body .sib-smart-access-note {
  color: #718096;
  font-size: .68rem;
}

body.sib-modulos-body .sib-smart-access-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

body.sib-modulos-body .sib-smart-group {
  min-width: 0;
}

body.sib-modulos-body .sib-smart-group h3 {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 8px;
  color: #32445e;
  font-size: .74rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}

body.sib-modulos-body .sib-smart-group h3 i {
  color: #0477bf;
}

body.sib-modulos-body .sib-smart-links {
  display: grid;
  gap: 7px;
}

body.sib-modulos-body .sib-smart-link {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid rgba(0, 32, 91, .09);
  border-radius: 12px;
  color: #00205b;
  background: #f8fbff;
  text-decoration: none;
  transition:
    transform .16s ease,
    border-color .16s ease,
    box-shadow .16s ease;
}

body.sib-modulos-body .sib-smart-link:hover {
  color: #00205b;
  border-color: rgba(4, 119, 191, .24);
  box-shadow: 0 8px 18px rgba(0, 32, 91, .08);
  transform: translateY(-1px);
  text-decoration: none;
}

body.sib-modulos-body .sib-smart-link-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  overflow: hidden;
  border-radius: 11px;
  color: #0477bf;
  background: rgba(4, 119, 191, .08);
}

body.sib-modulos-body .sib-smart-link-icon img {
  width: 24px;
  height: 24px;
  object-fit: contain;
}

body.sib-modulos-body .sib-smart-link-content {
  min-width: 0;
}

body.sib-modulos-body .sib-smart-link-content strong,
body.sib-modulos-body .sib-smart-link-content small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.sib-modulos-body
.sib-smart-link-content strong {
  font-size: .78rem;
  font-weight: 850;
}

body.sib-modulos-body
.sib-smart-link-content small {
  margin-top: 1px;
  color: #718096;
  font-size: .64rem;
}

body.sib-modulos-body .sib-smart-link > i {
  color: #91a1b5;
  font-size: .68rem;
}

body.sib-modulos-body .sib-modulos-grid {
  gap: 14px !important;
}

body.sib-modulos-body .sib-modulo-card {
  border-radius: 18px !important;
  box-shadow: 0 12px 28px rgba(0, 32, 91, .09) !important;
}

body.sib-modulos-body .sib-modulo-card-header {
  min-height: 52px !important;
  padding: 11px 14px !important;
}

body.sib-modulos-body .sib-modulo-card-header-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 31px;
  width: 31px;
  height: 31px;
  border-radius: 10px;
  color: #ffffff;
  background: rgba(255, 255, 255, .13);
  border: 1px solid rgba(255, 255, 255, .14);
}

body.sib-modulos-body .sib-modulo-card-title {
  font-size: .85rem !important;
}

body.sib-modulos-body .sib-modulo-card-count {
  display: block;
  margin-top: 1px;
  color: rgba(255, 255, 255, .66);
  font-size: .62rem;
  font-weight: 750;
}

body.sib-modulos-body .sib-modulo-card-body {
  padding: 12px !important;
}

body.sib-modulos-body .sib-modulo-list {
  border-radius: 13px !important;
}

body.sib-modulos-body .sib-modulo-item-row {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 38px;
  align-items: stretch;
  min-width: 0;
  border-bottom: 1px solid rgba(0, 32, 91, .09);
  background: #ffffff;
}

body.sib-modulos-body
.sib-modulo-item-row:last-child {
  border-bottom: 0;
}

body.sib-modulos-body
.sib-modulo-item-row:hover {
  background: rgba(4, 119, 191, .055);
}

body.sib-modulos-body .sib-modulo-item {
  min-height: 51px !important;
  padding: 8px 8px 8px 10px !important;
  border: 0 !important;
  background: transparent !important;
}

body.sib-modulos-body .sib-modulo-item:hover {
  transform: none !important;
}

body.sib-modulos-body .sib-modulo-item-icon {
  flex-basis: 34px !important;
  width: 34px !important;
  height: 34px !important;
  border-radius: 11px !important;
}

body.sib-modulos-body .sib-modulo-item-icon img {
  max-width: 25px !important;
  max-height: 25px !important;
}

body.sib-modulos-body .sib-modulo-item-text {
  flex: 1 1 auto;
  font-size: .78rem;
  font-weight: 800;
}

body.sib-modulos-body .sib-modulo-item-arrow {
  margin-left: auto;
  color: #a1aec0;
  font-size: .64rem;
  opacity: 0;
  transform: translateX(-3px);
  transition:
    opacity .16s ease,
    transform .16s ease;
}

body.sib-modulos-body
.sib-modulo-item-row:hover
.sib-modulo-item-arrow {
  opacity: 1;
  transform: translateX(0);
}

body.sib-modulos-body .sib-favorite-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  width: 38px;
  padding: 0;
  border: 0;
  border-left: 1px solid transparent;
  color: #a4afbf;
  background: transparent;
  font-size: .84rem;
}

body.sib-modulos-body
.sib-favorite-toggle:hover {
  color: #d89a00;
  background: rgba(255, 193, 7, .08);
  border-left-color: rgba(255, 193, 7, .16);
}

body.sib-modulos-body
.sib-favorite-toggle.is-active {
  color: #d89a00;
  background: rgba(255, 193, 7, .08);
}

body.sib-modulos-body
.sib-module-no-results {
  display: grid;
  justify-items: center;
  padding: 42px 18px;
  border: 1px dashed rgba(0, 32, 91, .18);
  border-radius: 18px;
  color: #53647c;
  background: #ffffff;
  text-align: center;
}

body.sib-modulos-body
.sib-module-no-results-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  margin-bottom: 10px;
  border-radius: 17px;
  color: #0477bf;
  background: rgba(4, 119, 191, .09);
  font-size: 1.1rem;
}

body.sib-modulos-body
.sib-module-no-results h2 {
  margin: 0;
  color: #00205b;
  font-size: 1rem;
  font-weight: 900;
}

body.sib-modulos-body
.sib-module-no-results p {
  margin: 5px 0 14px;
  font-size: .8rem;
}

body.sib-modulos-body
.sib-module-secondary-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 8px 13px;
  border: 1px solid rgba(0, 32, 91, .12);
  border-radius: 11px;
  color: #00205b;
  background: #f5f8fc;
  font-size: .76rem;
  font-weight: 850;
}

body.sib-modulos-body
.sib-module-secondary-btn:hover {
  background: #eaf2fb;
}

body.sib-modulos-body [hidden] {
  display: none !important;
}

@media (max-width: 1199.98px) {
  body.sib-modulos-body .sib-modulos-hero-layout {
    grid-template-columns:
      minmax(0, 1fr)
      minmax(300px, 380px);
  }
}

@media (max-width: 991.98px) {
  body.sib-modulos-body .sib-modulos-shell-pro {
    padding: 12px 12px 100px !important;
  }

  body.sib-modulos-body .sib-modulos-hero-layout {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  body.sib-modulos-body .sib-module-search-panel {
    padding: 12px;
  }

  body.sib-modulos-body .sib-smart-access-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575.98px) {
  body.sib-modulos-body .sib-modulos-shell-pro {
    padding-right: 8px !important;
    padding-left: 8px !important;
  }

  body.sib-modulos-body .sib-modulos-hero-pro {
    padding: 14px !important;
    border-radius: 17px !important;
  }

  body.sib-modulos-body .sib-modulos-breadcrumb {
    font-size: .64rem;
  }

  body.sib-modulos-body .sib-modulos-hero-pro
  .sib-modulos-title {
    font-size: 1.42rem !important;
  }

  body.sib-modulos-body .sib-modulos-hero-pro
  .sib-modulos-subtitle {
    font-size: .8rem !important;
  }

  body.sib-modulos-body
  .sib-module-search-input {
    height: 44px;
    padding-right: 46px;
  }

  body.sib-modulos-body
  .sib-module-search-shortcut {
    display: none;
  }

  body.sib-modulos-body
  .sib-module-search-clear {
    right: 8px;
  }

  body.sib-modulos-body
  .sib-smart-access-head {
    display: block;
  }

  body.sib-modulos-body
  .sib-smart-access-note {
    display: block;
    margin-top: 5px;
  }

  body.sib-modulos-body
  .sib-modulo-item-row {
    grid-template-columns: minmax(0, 1fr) 40px;
  }

  body.sib-modulos-body
  .sib-modulo-item-arrow {
    display: none;
  }

  body.sib-modulos-body
  .sib-favorite-toggle {
    width: 40px;
  }
}

/* ==========================================================================
   SIB PRO — MENÚ SUPERIOR COMPACTO Y SIN SUPERPOSICIÓN
   ==========================================================================
   La barra superior es fija. El layout principal comienza exactamente
   después de ella para evitar que el encabezado azul del módulo quede
   oculto o parcialmente cubierto.
   ========================================================================== */

body.sib-modulos-body {
  --sib-modulos-topnav-height: 56px;
  --sib-modulos-topnav-mobile-height: 54px;
}

/* Barra superior: menor altura, mejor densidad y misma identidad SIB. */
body.sib-modulos-body .sib-topnav-pro-compact {
  position: fixed !important;
  inset: 0 0 auto 0 !important;
  width: 100% !important;
  height: var(--sib-modulos-topnav-height) !important;
  min-height: var(--sib-modulos-topnav-height) !important;
  padding: 0 12px !important;
  border: 0;
  background:
    radial-gradient(
      circle at top right,
      rgba(4, 119, 191, .25),
      transparent 30%
    ),
    linear-gradient(
      135deg,
      #00205b 0%,
      #003b79 52%,
      #0477bf 100%
    ) !important;
  box-shadow: 0 8px 24px rgba(0, 32, 91, .20);
  z-index: 1060 !important;
}

body.sib-modulos-body
.sib-topnav-pro-compact .sib-topnav-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  margin-right: 10px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 12px;
  color: #ffffff;
  background: rgba(255, 255, 255, .11);
  outline: 0;
  transition:
    transform .18s ease,
    background .18s ease,
    box-shadow .18s ease;
}

body.sib-modulos-body
.sib-topnav-pro-compact .sib-topnav-toggle:hover {
  color: #ffffff;
  background: rgba(255, 255, 255, .19);
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(0, 32, 91, .18);
}

body.sib-modulos-body
.sib-topnav-pro-compact .sib-topnav-brand {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  color: #ffffff;
  text-decoration: none;
}

body.sib-modulos-body
.sib-topnav-pro-compact .sib-topnav-brand:hover {
  color: #ffffff;
  text-decoration: none;
}

body.sib-modulos-body
.sib-topnav-pro-compact .sib-brand-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  overflow: hidden;
  border-radius: 13px;
  color: #ffffff;
  background: rgba(255, 255, 255, .14);
  border: 1px solid rgba(255, 255, 255, .20);
  box-shadow: 0 7px 16px rgba(0, 32, 91, .16);
}

body.sib-modulos-body
.sib-topnav-pro-compact .sib-brand-logo img {
  width: 100%;
  height: 100%;
  padding: 4px;
  object-fit: contain;
  background: #ffffff;
}

body.sib-modulos-body
.sib-topnav-pro-compact .sib-brand-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.08;
}

body.sib-modulos-body
.sib-topnav-pro-compact .sib-brand-text strong {
  display: block;
  max-width: 390px;
  overflow: hidden;
  color: #ffffff;
  font-size: .90rem;
  font-weight: 900;
  letter-spacing: -.02em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.sib-modulos-body
.sib-topnav-pro-compact .sib-brand-text small {
  display: block;
  margin-top: 2px;
  color: rgba(255, 255, 255, .76);
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .045em;
  text-transform: uppercase;
}

body.sib-modulos-body
.sib-topnav-pro-compact .sib-topnav-spacer {
  flex: 1 1 auto;
}

body.sib-modulos-body
.sib-topnav-pro-compact .sib-topnav-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

body.sib-modulos-body
.sib-topnav-pro-compact .sib-topnav-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 7px 11px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 999px;
  color: #ffffff;
  background: rgba(255, 255, 255, .13);
  font-size: .74rem;
  font-weight: 850;
  text-decoration: none;
  transition:
    transform .18s ease,
    background .18s ease;
}

body.sib-modulos-body
.sib-topnav-pro-compact .sib-topnav-chip:hover {
  color: #ffffff;
  background: rgba(255, 255, 255, .20);
  transform: translateY(-1px);
  text-decoration: none;
}

body.sib-modulos-body
.sib-topnav-pro-compact .sib-user-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 5px 10px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 999px;
  color: #ffffff;
  background: rgba(0, 32, 91, .24);
  font-size: .80rem;
  text-decoration: none;
}

body.sib-modulos-body
.sib-topnav-pro-compact .sib-user-button:hover,
body.sib-modulos-body
.sib-topnav-pro-compact .sib-user-button:focus {
  color: #ffffff;
  text-decoration: none;
}

body.sib-modulos-body
.sib-topnav-pro-compact .sib-user-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  color: #00205b;
  background: #ffffff;
}

body.sib-modulos-body
.sib-topnav-pro-compact .sib-dropdown-menu {
  margin-top: 9px;
  overflow: hidden;
  border: 0;
  border-radius: 15px;
  box-shadow: 0 18px 42px rgba(0, 32, 91, .20);
}

body.sib-modulos-body
.sib-topnav-pro-compact
.sib-dropdown-menu .dropdown-item {
  padding: 10px 15px;
  color: #24364f;
  font-size: .84rem;
  font-weight: 750;
}

body.sib-modulos-body
.sib-topnav-pro-compact
.sib-dropdown-menu .dropdown-item:hover {
  color: #00205b;
  background: rgba(4, 119, 191, .08);
}

/*
 * Corrección estructural principal:
 * el contenido ya no empieza debajo de la barra fija.
 */
html body.sib-modulos-body #layoutSidenav {
  margin-top: var(--sib-modulos-topnav-height) !important;
  min-height: calc(
    100vh - var(--sib-modulos-topnav-height)
  ) !important;
  min-height: calc(
    100dvh - var(--sib-modulos-topnav-height)
  ) !important;
}

html body.sib-modulos-body
#layoutSidenav > #layoutSidenav_nav {
  top: var(--sib-modulos-topnav-height) !important;
  height: calc(
    100vh - var(--sib-modulos-topnav-height)
  ) !important;
  height: calc(
    100dvh - var(--sib-modulos-topnav-height)
  ) !important;
}

html body.sib-modulos-body
#layoutSidenav > #layoutSidenav_content {
  top: 0 !important;
  min-height: calc(
    100vh - var(--sib-modulos-topnav-height)
  ) !important;
  min-height: calc(
    100dvh - var(--sib-modulos-topnav-height)
  ) !important;
}

/* Móvil: altura todavía más compacta y layout coordinado. */
@media (max-width: 991.98px) {
  body.sib-modulos-body .sib-topnav-pro-compact {
    height: var(
      --sib-modulos-topnav-mobile-height
    ) !important;
    min-height: var(
      --sib-modulos-topnav-mobile-height
    ) !important;
    padding: 0 8px !important;
  }

  body.sib-modulos-body
  .sib-topnav-pro-compact .sib-topnav-toggle {
    flex-basis: 36px;
    width: 36px;
    height: 36px;
    margin-right: 8px;
  }

  body.sib-modulos-body
  .sib-topnav-pro-compact .sib-brand-logo {
    flex-basis: 36px;
    width: 36px;
    height: 36px;
    border-radius: 12px;
  }

  body.sib-modulos-body
  .sib-topnav-pro-compact .sib-brand-text strong {
    max-width: 170px;
    font-size: .82rem;
  }

  body.sib-modulos-body
  .sib-topnav-pro-compact .sib-brand-text small {
    display: none;
  }

  body.sib-modulos-body
  .sib-topnav-pro-compact .sib-topnav-chip {
    display: none;
  }

  body.sib-modulos-body
  .sib-topnav-pro-compact
  .sib-user-button span:not(.sib-user-avatar) {
    display: none;
  }

  body.sib-modulos-body
  .sib-topnav-pro-compact .sib-user-button {
    justify-content: center;
    width: 36px;
    height: 36px;
    min-height: 36px;
    padding: 0;
  }

  html body.sib-modulos-body #layoutSidenav {
    margin-top: var(
      --sib-modulos-topnav-mobile-height
    ) !important;
    min-height: calc(
      100vh - var(--sib-modulos-topnav-mobile-height)
    ) !important;
    min-height: calc(
      100dvh - var(--sib-modulos-topnav-mobile-height)
    ) !important;
  }

  html body.sib-modulos-body
  #layoutSidenav > #layoutSidenav_nav {
    top: var(
      --sib-modulos-topnav-mobile-height
    ) !important;
    bottom: 0 !important;
    height: auto !important;
    max-height: none !important;
  }

  html body.sib-modulos-body
  #layoutSidenav > #layoutSidenav_content {
    top: 0 !important;
    min-height: calc(
      100vh - var(--sib-modulos-topnav-mobile-height)
    ) !important;
    min-height: calc(
      100dvh - var(--sib-modulos-topnav-mobile-height)
    ) !important;
  }

  body.sib-modulos-body .sib-sidebar-overlay {
    inset:
      var(--sib-modulos-topnav-mobile-height)
      0 0 0 !important;
  }
}

@media (max-width: 575.98px) {
  body.sib-modulos-body
  .sib-topnav-pro-compact .sib-brand-text strong {
    max-width: 125px;
    font-size: .78rem;
  }
}

/* ==========================================================================
   CORRECCIÓN FINAL PC — HEADER EN EL FLUJO, SIN SUPERPOSICIÓN
   ==========================================================================
   En escritorio la barra superior se mantiene visible mediante sticky,
   pero ocupa su espacio real dentro del documento. De esta forma el
   encabezado del módulo nunca puede quedar debajo de ella.

   En móvil se conserva el comportamiento fijo que ya funciona bien.
   ========================================================================== */

@media (min-width: 992px) {
  html body.sib-modulos-body
  .sib-topnav-pro-compact {
    position: sticky !important;
    top: 0 !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    inset: auto !important;
    display: flex !important;
    width: 100% !important;
    margin: 0 !important;
    z-index: 1060 !important;
  }

  /*
   * La barra sticky ya ocupa 56 px en el flujo.
   * Por eso no se debe volver a sumar esa altura al layout.
   */
  html body.sib-modulos-body
  #layoutSidenav {
    margin-top: 0 !important;
    padding-top: 0 !important;
    min-height: calc(
      100vh - var(--sib-modulos-topnav-height)
    ) !important;
    min-height: calc(
      100dvh - var(--sib-modulos-topnav-height)
    ) !important;
  }

  html body.sib-modulos-body
  #layoutSidenav > #layoutSidenav_content {
    position: relative !important;
    top: 0 !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
    transform: none !important;
  }

  /*
   * El menú lateral permanece debajo de la barra sticky al desplazarse.
   */
  html body.sib-modulos-body
  #layoutSidenav > #layoutSidenav_nav {
    top: var(--sib-modulos-topnav-height) !important;
    height: calc(
      100vh - var(--sib-modulos-topnav-height)
    ) !important;
    height: calc(
      100dvh - var(--sib-modulos-topnav-height)
    ) !important;
  }

  /*
   * Separación visual pequeña y constante entre la barra y el hero.
   */
  html body.sib-modulos-body
  .sib-modulos-shell-pro {
    padding-top: 12px !important;
  }
}

/* ==================== DASHBOARD PRINCIPAL ==================== */
/* ==========================================================================
   DASHBOARD PRINCIPAL SIB PRO
   ==========================================================================
   Diseño centrado en:
   - lectura rápida;
   - navegación cómoda;
   - búsqueda instantánea;
   - favoritos y recientes;
   - conservación estricta de los colores semáforo.
   ========================================================================== */

.sib-dashboard-principal-content {
  min-width: 0 !important;
  overflow-x: hidden !important;
  background: #eef3f8;
}

.sib-dashboard-page-frame {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: calc(
    100vh - var(--sib-topnav-height, 58px)
  );
  background: #eef3f8;
}

.sib-dashboard-main {
  flex: 1 0 auto;
  width: 100%;
  min-width: 0;
}

.sib-dashboard-shell {
  width: 100%;
  min-width: 0;
  max-width: none;
  padding: 14px clamp(12px, 1.3vw, 22px) 30px;
}

.sib-dashboard-hero {
  position: relative;
  overflow: hidden;
  margin-bottom: 14px;
  padding: 17px 20px 19px;
  border-radius: 21px;
  color: #ffffff;
  background:
    radial-gradient(
      circle at 90% 15%,
      rgba(24, 168, 223, .28),
      transparent 31%
    ),
    linear-gradient(
      135deg,
      #00205b 0%,
      #063b84 53%,
      #0477bf 100%
    );
  box-shadow: 0 17px 38px rgba(0, 32, 91, .18);
}

.sib-dashboard-hero::after {
  content: "";
  position: absolute;
  right: -70px;
  bottom: -96px;
  width: 250px;
  height: 250px;
  border: 42px solid rgba(255, 255, 255, .07);
  border-radius: 50%;
  pointer-events: none;
}

.sib-dashboard-hero-content {
  position: relative;
  z-index: 2;
}

.sib-dashboard-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  margin-bottom: 11px;
  color: rgba(255, 255, 255, .70);
  font-size: .69rem;
  font-weight: 750;
}

.sib-dashboard-breadcrumb a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgba(255, 255, 255, .84);
  text-decoration: none;
}

.sib-dashboard-breadcrumb a:hover {
  color: #ffffff;
  text-decoration: none;
}

.sib-dashboard-breadcrumb strong {
  color: #ffffff;
  font-weight: 900;
}

.sib-dashboard-hero-layout {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    minmax(330px, 450px);
  gap: 22px;
  align-items: center;
}

.sib-dashboard-hero-copy {
  min-width: 0;
}

.sib-dashboard-eyebrow,
.sib-dashboard-section-kicker {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #0477bf;
  font-size: .66rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.sib-dashboard-eyebrow {
  padding: 6px 10px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 999px;
  color: #ffffff;
  background: rgba(255, 255, 255, .13);
}

.sib-dashboard-title {
  margin: 10px 0 5px;
  color: #ffffff;
  font-size: clamp(1.55rem, 2.35vw, 2.15rem);
  font-weight: 900;
  letter-spacing: -.035em;
  line-height: 1.08;
}

.sib-dashboard-subtitle {
  max-width: 780px;
  margin: 0;
  color: rgba(255, 255, 255, .84);
  font-size: .88rem;
  line-height: 1.48;
}

.sib-dashboard-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 13px;
}

.sib-dashboard-stat {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  border: 1px solid rgba(255, 255, 255, .17);
  border-radius: 12px;
  color: rgba(255, 255, 255, .88);
  background: rgba(255, 255, 255, .12);
  font-size: .74rem;
  font-weight: 750;
}

.sib-dashboard-stat strong {
  color: #ffffff;
  font-size: .88rem;
  font-weight: 900;
}

.sib-dashboard-search-panel {
  padding: 14px;
  border: 1px solid rgba(255, 255, 255, .20);
  border-radius: 17px;
  background: rgba(255, 255, 255, .13);
  box-shadow: 0 14px 30px rgba(0, 32, 91, .15);
  backdrop-filter: blur(10px);
}

.sib-dashboard-search-label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  color: #ffffff;
  font-size: .76rem;
  font-weight: 900;
}

.sib-dashboard-search-box {
  position: relative;
  display: flex;
  align-items: center;
  min-width: 0;
}

.sib-dashboard-search-box > i {
  position: absolute;
  left: 14px;
  z-index: 2;
  color: #0477bf;
  pointer-events: none;
}

.sib-dashboard-search-input {
  width: 100%;
  min-width: 0;
  height: 46px;
  padding: 0 94px 0 42px;
  border: 1px solid rgba(255, 255, 255, .46);
  border-radius: 14px;
  outline: 0;
  color: #12233f;
  background: rgba(255, 255, 255, .98);
  font-size: .86rem;
  font-weight: 650;
  box-shadow: 0 8px 20px rgba(0, 32, 91, .11);
}

.sib-dashboard-search-input:focus {
  border-color: #7dd3fc;
  box-shadow:
    0 0 0 4px rgba(125, 211, 252, .22),
    0 10px 24px rgba(0, 32, 91, .15);
}

.sib-dashboard-search-input::placeholder {
  color: #7b8798;
  font-weight: 550;
}

.sib-dashboard-search-clear {
  position: absolute;
  right: 58px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 9px;
  color: #53647c;
  background: transparent;
}

.sib-dashboard-search-clear:hover {
  color: #00205b;
  background: rgba(0, 32, 91, .07);
}

.sib-dashboard-search-shortcut {
  position: absolute;
  right: 9px;
  z-index: 2;
  padding: 4px 7px;
  border: 1px solid rgba(0, 32, 91, .12);
  border-radius: 7px;
  color: #53647c;
  background: #f1f5f9;
  font-size: .61rem;
  font-weight: 900;
  box-shadow: none;
}

.sib-dashboard-search-help,
.sib-dashboard-search-status {
  margin-top: 7px;
  color: rgba(255, 255, 255, .74);
  font-size: .67rem;
  line-height: 1.35;
}

.sib-dashboard-search-status:not(:empty) {
  color: #ffffff;
  font-weight: 850;
}

.sib-dashboard-systems,
.sib-dashboard-smart-access,
.sib-dashboard-section {
  margin-bottom: 14px;
  border: 1px solid rgba(0, 32, 91, .09);
  border-radius: 19px;
  background: #ffffff;
  box-shadow: 0 12px 28px rgba(0, 32, 91, .08);
}

.sib-dashboard-systems {
  padding: 15px;
}

.sib-dashboard-section-heading,
.sib-dashboard-section-header,
.sib-dashboard-smart-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.sib-dashboard-section-heading {
  margin-bottom: 12px;
}

.sib-dashboard-section-heading h2,
.sib-dashboard-smart-head h2 {
  margin: 3px 0 2px;
  color: #00205b;
  font-size: 1rem;
  font-weight: 900;
}

.sib-dashboard-section-heading p {
  margin: 0;
  color: #697a90;
  font-size: .76rem;
  line-height: 1.4;
}

.sib-dashboard-system-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.sib-dashboard-system-card {
  position: relative;
  display: grid;
  grid-template-columns:
    44px minmax(0, 1fr) 76px auto;
  gap: 11px;
  align-items: center;
  min-width: 0;
  min-height: 118px;
  padding: 14px;
  overflow: hidden;
  border: 1px solid rgba(0, 32, 91, .09);
  border-radius: 16px;
  color: #00205b;
  background:
    linear-gradient(
      135deg,
      rgba(255, 255, 255, .98),
      rgba(242, 248, 255, .94)
    );
  text-decoration: none;
  transition:
    transform .17s ease,
    border-color .17s ease,
    box-shadow .17s ease;
}

.sib-dashboard-system-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: #0477bf;
}

.sib-dashboard-system-card-sst::before {
  background: #6f42c1;
}

.sib-dashboard-system-card-pesv::before {
  background: #00a86b;
}

.sib-dashboard-system-card:hover {
  color: #00205b;
  border-color: rgba(4, 119, 191, .22);
  box-shadow: 0 12px 24px rgba(0, 32, 91, .11);
  transform: translateY(-2px);
  text-decoration: none;
}

.sib-dashboard-system-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  color: #ffffff;
  background: linear-gradient(135deg, #00205b, #0477bf);
  box-shadow: 0 10px 20px rgba(0, 32, 91, .16);
}

.sib-dashboard-system-card-sst
.sib-dashboard-system-icon {
  background: linear-gradient(135deg, #4d2aa5, #8162d7);
}

.sib-dashboard-system-card-pesv
.sib-dashboard-system-icon {
  background: linear-gradient(135deg, #007c50, #00ad73);
}

.sib-dashboard-system-copy {
  min-width: 0;
}

.sib-dashboard-system-copy small,
.sib-dashboard-system-copy strong,
.sib-dashboard-system-copy span {
  display: block;
}

.sib-dashboard-system-copy small {
  color: #0477bf;
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.sib-dashboard-system-copy strong {
  margin-top: 3px;
  color: #00205b;
  font-size: .87rem;
  font-weight: 900;
  line-height: 1.25;
}

.sib-dashboard-system-copy span {
  margin-top: 4px;
  color: #66788f;
  font-size: .69rem;
  line-height: 1.38;
}

.sib-dashboard-system-card img {
  width: 76px;
  max-height: 70px;
  object-fit: contain;
}

.sib-dashboard-system-arrow {
  color: #8fa0b4;
  font-size: .74rem;
}

.sib-dashboard-smart-access {
  padding: 15px 16px;
}

.sib-dashboard-smart-head {
  margin-bottom: 12px;
}

.sib-dashboard-smart-note {
  color: #718096;
  font-size: .67rem;
}

.sib-dashboard-smart-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px;
}

.sib-dashboard-smart-group {
  min-width: 0;
}

.sib-dashboard-smart-group h3 {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 8px;
  color: #32445e;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.sib-dashboard-smart-group h3 i {
  color: #0477bf;
}

.sib-dashboard-smart-links {
  display: grid;
  gap: 7px;
}

.sib-dashboard-smart-link {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid rgba(0, 32, 91, .09);
  border-radius: 12px;
  color: #00205b;
  background: #f8fbff;
  text-decoration: none;
  transition:
    transform .16s ease,
    box-shadow .16s ease;
}

.sib-dashboard-smart-link:hover {
  color: #00205b;
  box-shadow: 0 8px 18px rgba(0, 32, 91, .08);
  transform: translateY(-1px);
  text-decoration: none;
}

.sib-dashboard-smart-link-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 11px;
  color: #ffffff;
  background: linear-gradient(135deg, #00205b, #0477bf);
}

.sib-dashboard-smart-link-copy {
  min-width: 0;
}

.sib-dashboard-smart-link-copy strong,
.sib-dashboard-smart-link-copy small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sib-dashboard-smart-link-copy strong {
  font-size: .76rem;
  font-weight: 850;
}

.sib-dashboard-smart-link-copy small {
  margin-top: 1px;
  color: #718096;
  font-size: .63rem;
}

.sib-dashboard-smart-link > i {
  color: #91a1b5;
  font-size: .66rem;
}

.sib-dashboard-section-nav {
  position: sticky;
  top: calc(var(--sib-topnav-height, 58px) + 8px);
  z-index: 20;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  margin-bottom: 14px;
  padding: 9px 11px;
  border: 1px solid rgba(0, 32, 91, .09);
  border-radius: 15px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 9px 22px rgba(0, 32, 91, .09);
  backdrop-filter: blur(10px);
}

.sib-dashboard-section-nav-label {
  color: #718096;
  font-size: .69rem;
  font-weight: 850;
}

.sib-dashboard-section-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  padding: 6px 10px;
  border: 1px solid rgba(0, 32, 91, .08);
  border-radius: 999px;
  color: #00205b;
  background: #f4f8fc;
  font-size: .69rem;
  font-weight: 850;
  text-decoration: none;
}

.sib-dashboard-section-chip:hover {
  color: #ffffff;
  background: linear-gradient(135deg, #00205b, #0477bf);
  text-decoration: none;
}

.sib-dashboard-section {
  scroll-margin-top: calc(
    var(--sib-topnav-height, 58px) + 62px
  );
  padding: 15px;
}

.sib-dashboard-section-header {
  margin-bottom: 12px;
}

.sib-dashboard-section-title-wrap {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  min-width: 0;
}

.sib-dashboard-section-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  border-radius: 13px;
  color: #ffffff;
  background: linear-gradient(135deg, #00205b, #0477bf);
  box-shadow: 0 9px 18px rgba(0, 32, 91, .14);
}

.sib-dashboard-section-header h2 {
  margin: 2px 0 2px;
  color: #00205b;
  font-size: 1rem;
  font-weight: 900;
}

.sib-dashboard-section-header p {
  margin: 0;
  color: #6c7d92;
  font-size: .72rem;
  line-height: 1.38;
}

.sib-dashboard-section-count {
  flex: 0 0 auto;
  padding: 6px 9px;
  border: 1px solid rgba(0, 32, 91, .08);
  border-radius: 999px;
  color: #53647c;
  background: #f4f8fc;
  font-size: .65rem;
  font-weight: 850;
}

.sib-dashboard-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.sib-dashboard-kpi-wrap {
  min-width: 0;
}

.sib-dashboard-kpi {
  position: relative;
  min-height: 130px;
  overflow: hidden;
  border: 0 !important;
  border-radius: 17px !important;
  box-shadow: 0 12px 26px rgba(0, 32, 91, .15) !important;
  transition:
    transform .17s ease,
    box-shadow .17s ease;
}

/*
 * IMPORTANTE:
 * No se reemplaza el background de card-kpi-success,
 * card-kpi-danger, card-kpi-warning ni card-kpi-primary.
 * Los colores semáforo existentes permanecen como autoridad.
 */

.sib-dashboard-kpi::after {
  content: "";
  position: absolute;
  right: -28px;
  top: -34px;
  width: 112px;
  height: 112px;
  border: 22px solid rgba(255, 255, 255, .08);
  border-radius: 50%;
  pointer-events: none;
}

.sib-dashboard-kpi:hover {
  box-shadow: 0 16px 32px rgba(0, 32, 91, .20) !important;
  transform: translateY(-2px);
}

.sib-dashboard-kpi-main {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  min-height: 88px;
  padding: 15px;
  color: #ffffff;
  text-decoration: none;
}

.sib-dashboard-kpi-main:hover {
  color: #ffffff;
  text-decoration: none;
}

.sib-dashboard-kpi-copy {
  min-width: 0;
}

.sib-dashboard-kpi-copy small,
.sib-dashboard-kpi-copy strong {
  display: block;
}

.sib-dashboard-kpi-copy small {
  color: rgba(255, 255, 255, .82);
  font-size: .72rem;
  font-weight: 800;
  line-height: 1.3;
}

.sib-dashboard-kpi-copy strong {
  margin-top: 7px;
  color: #ffffff;
  font-size: 1.35rem;
  font-weight: 900;
  line-height: 1;
}

.sib-dashboard-kpi-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 39px;
  width: 39px;
  height: 39px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 13px;
  color: rgba(255, 255, 255, .92);
  background: rgba(255, 255, 255, .13);
  font-size: 1rem;
}

.sib-dashboard-kpi-footer {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 41px;
  padding: 0 8px 0 15px;
  border-top: 1px solid rgba(255, 255, 255, .13);
  background: rgba(0, 0, 0, .08);
}

.sib-dashboard-kpi-report {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #ffffff;
  font-size: .70rem;
  font-weight: 850;
  text-decoration: none;
}

.sib-dashboard-kpi-report:hover {
  color: #ffffff;
  text-decoration: none;
}

.sib-dashboard-favorite-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 10px;
  color: rgba(255, 255, 255, .72);
  background: transparent;
}

.sib-dashboard-favorite-toggle:hover,
.sib-dashboard-favorite-toggle.is-active {
  color: #ffd86b;
  background: rgba(255, 255, 255, .13);
}

.sib-dashboard-no-results,
.sib-dashboard-empty {
  display: grid;
  justify-items: center;
  padding: 44px 18px;
  border: 1px dashed rgba(0, 32, 91, .18);
  border-radius: 19px;
  color: #53647c;
  background: #ffffff;
  text-align: center;
}

.sib-dashboard-no-results-icon,
.sib-dashboard-empty > i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  margin-bottom: 10px;
  border-radius: 17px;
  color: #0477bf;
  background: rgba(4, 119, 191, .09);
  font-size: 1.15rem;
}

.sib-dashboard-no-results h2,
.sib-dashboard-empty h2 {
  margin: 0;
  color: #00205b;
  font-size: 1rem;
  font-weight: 900;
}

.sib-dashboard-no-results p,
.sib-dashboard-empty p {
  margin: 5px 0 14px;
  font-size: .78rem;
}

.sib-dashboard-secondary-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 8px 13px;
  border: 1px solid rgba(0, 32, 91, .12);
  border-radius: 11px;
  color: #00205b;
  background: #f5f8fc;
  font-size: .74rem;
  font-weight: 850;
}

.sib-dashboard-secondary-button:hover {
  background: #eaf2fb;
}

.sib-dashboard-principal-content [hidden] {
  display: none !important;
}

@media (max-width: 1399.98px) {
  .sib-dashboard-kpi-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .sib-dashboard-system-card {
    grid-template-columns:
      42px minmax(0, 1fr) 62px auto;
  }

  .sib-dashboard-system-card img {
    width: 62px;
  }
}

@media (max-width: 1199.98px) {
  .sib-dashboard-hero-layout {
    grid-template-columns:
      minmax(0, 1fr)
      minmax(300px, 390px);
  }

  .sib-dashboard-system-grid {
    grid-template-columns: 1fr;
  }

  .sib-dashboard-system-card {
    min-height: 104px;
  }
}

@media (max-width: 991.98px) {
  .sib-dashboard-shell {
    padding:
      10px 10px 92px;
  }

  .sib-dashboard-hero-layout {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .sib-dashboard-smart-grid {
    grid-template-columns: 1fr;
  }

  .sib-dashboard-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sib-dashboard-section-nav {
    top: calc(var(--sib-topnav-height, 58px) + 5px);
  }
}

@media (max-width: 575.98px) {
  .sib-dashboard-shell {
    padding-right: 8px;
    padding-left: 8px;
  }

  .sib-dashboard-hero {
    padding: 14px;
    border-radius: 17px;
  }

  .sib-dashboard-title {
    font-size: 1.42rem;
  }

  .sib-dashboard-subtitle {
    font-size: .80rem;
  }

  .sib-dashboard-search-input {
    height: 44px;
    padding-right: 46px;
  }

  .sib-dashboard-search-shortcut {
    display: none;
  }

  .sib-dashboard-search-clear {
    right: 8px;
  }

  .sib-dashboard-system-card {
    grid-template-columns:
      40px minmax(0, 1fr) auto;
    min-height: 96px;
    padding: 12px;
  }

  .sib-dashboard-system-card img {
    display: none;
  }

  .sib-dashboard-system-copy span {
    display: none;
  }

  .sib-dashboard-section-nav {
    overflow-x: auto;
    flex-wrap: nowrap;
    scrollbar-width: none;
  }

  .sib-dashboard-section-nav::-webkit-scrollbar {
    display: none;
  }

  .sib-dashboard-section-nav-label {
    display: none;
  }

  .sib-dashboard-section-chip {
    flex: 0 0 auto;
  }

  .sib-dashboard-section {
    padding: 12px;
  }

  .sib-dashboard-section-header,
  .sib-dashboard-smart-head {
    display: block;
  }

  .sib-dashboard-section-count,
  .sib-dashboard-smart-note {
    display: inline-flex;
    margin-top: 8px;
  }

  .sib-dashboard-kpi-grid {
    grid-template-columns: 1fr;
  }

  .sib-dashboard-kpi {
    min-height: 122px;
  }
}

/* ==================== NAVEGACIÓN LATERAL PRO ==================== */
/* ==========================================================================
   NAVEGACIÓN PRINCIPAL SIB PRO
   ==========================================================================
   - Barra superior compacta.
   - Menú lateral abierto por defecto en escritorio.
   - Ocultable por decisión del usuario.
   - Panel superpuesto en móvil.
   - Módulos agrupados por sistema mediante acordeón.
   ========================================================================== */

:root {
  --sib-topnav-height: 58px;
  --sib-sidebar-width: 292px;
  --sib-sidebar-mobile-width: min(320px, 88vw);
  --sib-navigation-bg: #eef3f8;
}

html,
body.sib-main-system-body {
  min-width: 0;
}

body.sib-main-system-body {
  padding-top: var(--sib-topnav-height) !important;
  overflow-x: hidden;
  background: var(--sib-navigation-bg);
}

/* --------------------------------------------------------------------------
   Barra superior
   -------------------------------------------------------------------------- */

body.sib-main-system-body .sib-db-topnav {
  position: fixed !important;
  inset: 0 0 auto 0 !important;
  z-index: 1060 !important;
  width: 100% !important;
  height: var(--sib-topnav-height) !important;
  min-height: var(--sib-topnav-height) !important;
  padding: 0 12px !important;
  color: #20324b;
  background:
    radial-gradient(
      circle at 84% -30%,
      rgba(4, 119, 191, .12),
      transparent 28%
    ),
    linear-gradient(
      180deg,
      rgba(255, 255, 255, .99),
      rgba(247, 250, 254, .98)
    ) !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(0, 32, 91, .10) !important;
  box-shadow: 0 8px 24px rgba(0, 32, 91, .11);
}

body.sib-main-system-body .sib-db-topnav::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 3px;
  background:
    linear-gradient(
      90deg,
      #00205b,
      #0477bf,
      #18a8df
    );
  pointer-events: none;
}

body.sib-main-system-body .sib-db-toggle {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  flex: 0 0 38px;
  width: 38px !important;
  height: 38px !important;
  padding: 0 !important;
  color: #00205b !important;
  background: rgba(0, 32, 91, .06) !important;
  border: 1px solid rgba(0, 32, 91, .10) !important;
  border-radius: 13px !important;
  box-shadow: none !important;
}

body.sib-main-system-body .sib-db-toggle:hover,
body.sib-main-system-body .sib-db-toggle:focus {
  color: #ffffff !important;
  background:
    linear-gradient(
      135deg,
      #00205b,
      #0477bf
    ) !important;
}

body.sib-main-system-body .sib-db-brand {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  margin-right: 12px;
  color: #00205b !important;
  font-size: .92rem;
  font-weight: 900;
  letter-spacing: -.02em;
  text-decoration: none;
}

body.sib-main-system-body
.sib-db-topnav .navbar-nav {
  min-width: 0;
}

body.sib-main-system-body
.sib-db-topnav .nav-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 36px;
  padding: 7px 11px !important;
  border-radius: 999px;
  color: #34445e;
  font-size: .82rem;
  font-weight: 800;
}

body.sib-main-system-body
.sib-db-topnav .nav-link:hover,
body.sib-main-system-body
.sib-db-topnav .nav-link:focus,
body.sib-main-system-body
.sib-db-topnav .nav-item.show > .nav-link {
  color: #00205b;
  background: rgba(4, 119, 191, .09);
}

body.sib-main-system-body
.sib-db-topnav .btn.btn-icon {
  width: 38px;
  height: 38px;
  border-radius: 13px;
  color: #34445e;
  background: rgba(0, 32, 91, .055);
}

body.sib-main-system-body
.sib-db-topnav .btn.btn-icon:hover,
body.sib-main-system-body
.sib-db-topnav .btn.btn-icon:focus {
  color: #ffffff;
  background:
    linear-gradient(
      135deg,
      #00205b,
      #0477bf
    );
}

body.sib-main-system-body
.sib-db-topnav .dropdown-menu {
  overflow: hidden;
  border: 1px solid rgba(0, 32, 91, .08) !important;
  border-radius: 17px;
  box-shadow: 0 22px 48px rgba(0, 32, 91, .18) !important;
}

body.sib-main-system-body
.sib-db-topnav .dropdown-item {
  color: #34445e;
  font-size: .86rem;
  font-weight: 700;
}

body.sib-main-system-body
.sib-db-topnav .dropdown-item:hover,
body.sib-main-system-body
.sib-db-topnav .dropdown-item:focus {
  color: #00205b;
  background: rgba(4, 119, 191, .08);
}

body.sib-main-system-body
.sib-db-topnav .dropdown-user .btn img {
  border: 2px solid rgba(4, 119, 191, .25);
}

/* --------------------------------------------------------------------------
   Layout principal
   -------------------------------------------------------------------------- */

body.sib-main-system-body #layoutSidenav {
  display: flex !important;
  align-items: stretch !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: calc(
    100vh - var(--sib-topnav-height)
  ) !important;
  min-height: calc(
    100dvh - var(--sib-topnav-height)
  ) !important;
  margin: 0 !important;
  padding: 0 !important;
  background:
    linear-gradient(
      90deg,
      #00205b 0,
      #063b84 var(--sib-sidebar-width),
      var(--sib-navigation-bg)
        var(--sib-sidebar-width),
      var(--sib-navigation-bg) 100%
    ) !important;
}

body.sib-main-system-body
#layoutSidenav > #layoutSidenav_nav {
  position: sticky !important;
  top: var(--sib-topnav-height) !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  align-self: flex-start !important;
  flex: 0 0 var(--sib-sidebar-width) !important;
  width: var(--sib-sidebar-width) !important;
  min-width: var(--sib-sidebar-width) !important;
  max-width: var(--sib-sidebar-width) !important;
  height: calc(
    100vh - var(--sib-topnav-height)
  ) !important;
  height: calc(
    100dvh - var(--sib-topnav-height)
  ) !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  transform: none !important;
  z-index: 1035 !important;
  transition:
    flex-basis .22s ease,
    width .22s ease,
    min-width .22s ease,
    max-width .22s ease,
    transform .22s ease;
}

body.sib-main-system-body
#layoutSidenav > #layoutSidenav_content {
  position: relative !important;
  top: 0 !important;
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  min-height: calc(
    100vh - var(--sib-topnav-height)
  ) !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: hidden !important;
  background: var(--sib-navigation-bg) !important;
}

/* --------------------------------------------------------------------------
   Sidebar
   -------------------------------------------------------------------------- */

body.sib-main-system-body .sib-side-pro {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  color: #ffffff;
  background:
    radial-gradient(
      circle at 94% 8%,
      rgba(24, 168, 223, .34),
      transparent 30%
    ),
    radial-gradient(
      circle at -20% 84%,
      rgba(255, 255, 255, .09),
      transparent 31%
    ),
    linear-gradient(
      180deg,
      #00205b 0%,
      #063b84 54%,
      #0477bf 100%
    );
  border-right: 1px solid rgba(255, 255, 255, .15);
  box-shadow: 16px 0 38px rgba(0, 32, 91, .20);
}

body.sib-main-system-body .sib-side-pro::after {
  content: "";
  position: absolute;
  right: -92px;
  top: 170px;
  width: 230px;
  height: 230px;
  border: 38px solid rgba(255, 255, 255, .045);
  border-radius: 50%;
  pointer-events: none;
}

body.sib-main-system-body .sib-side-pro-inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}

body.sib-main-system-body .sib-side-pro-head {
  flex: 0 0 auto;
  padding: 13px 13px 11px;
  border-bottom: 1px solid rgba(255, 255, 255, .10);
  background:
    linear-gradient(
      135deg,
      rgba(255, 255, 255, .13),
      rgba(255, 255, 255, .06)
    );
}

body.sib-main-system-body
.sib-side-pro-head-main {
  display: flex;
  align-items: center;
  gap: 11px;
}

body.sib-main-system-body
.sib-side-pro-head-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  color: #ffffff;
  background:
    linear-gradient(
      135deg,
      #18a8df,
      #7dd3fc
    );
  box-shadow: 0 11px 22px rgba(0, 32, 91, .20);
}

body.sib-main-system-body
.sib-side-pro-head-copy {
  min-width: 0;
}

body.sib-main-system-body
.sib-side-pro-head-copy span,
body.sib-main-system-body
.sib-side-pro-head-copy strong,
body.sib-main-system-body
.sib-side-pro-head-copy small {
  display: block;
}

body.sib-main-system-body
.sib-side-pro-head-kicker {
  color: rgba(255, 255, 255, .62);
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.sib-main-system-body
.sib-side-pro-head-copy strong {
  margin-top: 2px;
  color: #ffffff;
  font-size: .92rem;
  font-weight: 900;
  line-height: 1.18;
}

body.sib-main-system-body
.sib-side-pro-head-copy small {
  margin-top: 3px;
  max-width: 190px;
  overflow: hidden;
  color: rgba(255, 255, 255, .72);
  font-size: .67rem;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.sib-main-system-body
.sib-side-pro-total {
  display: inline-flex;
  margin-top: 10px;
  padding: 6px 9px;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 999px;
  color: rgba(255, 255, 255, .82);
  background: rgba(255, 255, 255, .09);
  font-size: .64rem;
  font-weight: 850;
}

body.sib-main-system-body .sib-side-pro-search {
  position: relative;
  flex: 0 0 auto;
  margin: 10px 12px 6px;
}

body.sib-main-system-body
.sib-side-pro-search > i {
  position: absolute;
  top: 50%;
  left: 12px;
  z-index: 2;
  color: rgba(255, 255, 255, .72);
  transform: translateY(-50%);
  pointer-events: none;
}

body.sib-main-system-body
.sib-side-pro-search input {
  width: 100%;
  height: 40px;
  padding: 0 38px 0 37px;
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: 13px;
  outline: 0;
  color: #ffffff;
  background: rgba(0, 32, 91, .24);
  font-size: .73rem;
  font-weight: 700;
}

body.sib-main-system-body
.sib-side-pro-search input::placeholder {
  color: rgba(255, 255, 255, .58);
}

body.sib-main-system-body
.sib-side-pro-search input:focus {
  border-color: rgba(125, 211, 252, .65);
  background: rgba(0, 32, 91, .34);
  box-shadow: 0 0 0 3px rgba(125, 211, 252, .12);
}

body.sib-main-system-body
.sib-side-pro-search button {
  position: absolute;
  top: 50%;
  right: 6px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 29px;
  height: 29px;
  padding: 0;
  border: 0;
  border-radius: 9px;
  color: rgba(255, 255, 255, .72);
  background: transparent;
  transform: translateY(-50%);
}

body.sib-main-system-body
.sib-side-pro-search button:hover {
  color: #ffffff;
  background: rgba(255, 255, 255, .11);
}

body.sib-main-system-body .sib-side-pro-menu {
  flex: 1 1 auto;
  min-height: 0;
  padding: 4px 12px 15px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color:
    rgba(255, 255, 255, .34) transparent;
}

body.sib-main-system-body
.sib-side-pro-menu::-webkit-scrollbar {
  width: 7px;
}

body.sib-main-system-body
.sib-side-pro-menu::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(255, 255, 255, .25);
}

body.sib-main-system-body
.sib-side-pro-primary {
  margin-bottom: 9px;
}

body.sib-main-system-body
.sib-side-pro-home-link {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 15px;
  color: rgba(255, 255, 255, .86);
  background: rgba(255, 255, 255, .08);
  text-decoration: none;
}

body.sib-main-system-body
.sib-side-pro-home-link:hover,
body.sib-main-system-body
.sib-side-pro-home-link.is-active {
  color: #00205b;
  background:
    linear-gradient(
      135deg,
      #ffffff,
      #eaf7ff
    );
  text-decoration: none;
}

body.sib-main-system-body
.sib-side-pro-home-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 12px;
  color: #ffffff;
  background:
    linear-gradient(
      135deg,
      #18a8df,
      #0477bf
    );
}

body.sib-main-system-body
.sib-side-pro-home-link span:nth-child(2) {
  min-width: 0;
}

body.sib-main-system-body
.sib-side-pro-home-link strong,
body.sib-main-system-body
.sib-side-pro-home-link small {
  display: block;
}

body.sib-main-system-body
.sib-side-pro-home-link strong {
  font-size: .76rem;
  font-weight: 900;
}

body.sib-main-system-body
.sib-side-pro-home-link small {
  margin-top: 2px;
  overflow: hidden;
  color: rgba(255, 255, 255, .58);
  font-size: .61rem;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.sib-main-system-body
.sib-side-pro-home-link:hover small,
body.sib-main-system-body
.sib-side-pro-home-link.is-active small {
  color: #65768b;
}

body.sib-main-system-body
.sib-side-group {
  margin-bottom: 7px;
}

body.sib-main-system-body
.sib-side-group-toggle {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  width: 100%;
  min-width: 0;
  min-height: 50px;
  padding: 7px 9px;
  border: 1px solid transparent;
  border-radius: 15px;
  color: rgba(255, 255, 255, .84);
  background: transparent;
  text-align: left;
}

body.sib-main-system-body
.sib-side-group-toggle:hover,
body.sib-main-system-body
.sib-side-group.is-open
.sib-side-group-toggle {
  color: #ffffff;
  border-color: rgba(255, 255, 255, .13);
  background: rgba(255, 255, 255, .09);
}

body.sib-main-system-body
.sib-side-group-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 12px;
  color: #ffffff;
  background:
    linear-gradient(
      135deg,
      rgba(24, 168, 223, .46),
      rgba(255, 255, 255, .14)
    );
}

body.sib-main-system-body
.sib-side-group-copy {
  min-width: 0;
}

body.sib-main-system-body
.sib-side-group-copy strong,
body.sib-main-system-body
.sib-side-group-copy small {
  display: block;
}

body.sib-main-system-body
.sib-side-group-copy strong {
  overflow: hidden;
  font-size: .75rem;
  font-weight: 900;
  line-height: 1.22;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.sib-main-system-body
.sib-side-group-copy small {
  margin-top: 2px;
  color: rgba(255, 255, 255, .53);
  font-size: .61rem;
  font-weight: 700;
}

body.sib-main-system-body
.sib-side-group-chevron {
  color: rgba(255, 255, 255, .56);
  font-size: .65rem;
  transition: transform .18s ease;
}

body.sib-main-system-body
.sib-side-group.is-open
.sib-side-group-chevron {
  transform: rotate(180deg);
}

body.sib-main-system-body
.sib-side-group-panel {
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  transition:
    grid-template-rows .22s ease,
    opacity .18s ease;
}

body.sib-main-system-body
.sib-side-group.is-open
.sib-side-group-panel {
  grid-template-rows: 1fr;
  opacity: 1;
}

body.sib-main-system-body
.sib-side-group-items {
  min-height: 0;
  overflow: hidden;
}

body.sib-main-system-body
.sib-side-pro-link {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  min-width: 0;
  min-height: 43px;
  margin: 4px 0 0 8px;
  padding: 6px 8px;
  border: 1px solid transparent;
  border-radius: 13px;
  color: rgba(255, 255, 255, .79);
  text-decoration: none;
  transition:
    color .16s ease,
    background .16s ease,
    transform .16s ease;
}

body.sib-main-system-body
.sib-side-pro-link:hover,
body.sib-main-system-body
.sib-side-pro-link.is-active {
  color: #00205b;
  border-color: rgba(255, 255, 255, .65);
  background:
    linear-gradient(
      135deg,
      rgba(255, 255, 255, .98),
      rgba(231, 247, 255, .94)
    );
  transform: translateX(2px);
  text-decoration: none;
}

body.sib-main-system-body
.sib-side-pro-link-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 11px;
  background: rgba(255, 255, 255, .10);
}

body.sib-main-system-body
.sib-side-pro-link:hover
.sib-side-pro-link-icon,
body.sib-main-system-body
.sib-side-pro-link.is-active
.sib-side-pro-link-icon {
  background:
    linear-gradient(
      135deg,
      #18a8df,
      #0477bf
    );
}

body.sib-main-system-body
.sib-side-pro-link-icon img {
  width: 22px;
  height: 22px;
  object-fit: contain;
}

body.sib-main-system-body
.sib-side-pro-link-text {
  min-width: 0;
  font-size: .72rem;
  font-weight: 850;
  line-height: 1.25;
}

body.sib-main-system-body
.sib-side-pro-link-arrow {
  color: rgba(255, 255, 255, .38);
  font-size: .58rem;
}

body.sib-main-system-body
.sib-side-pro-link:hover
.sib-side-pro-link-arrow,
body.sib-main-system-body
.sib-side-pro-link.is-active
.sib-side-pro-link-arrow {
  color: #5e7087;
}

body.sib-main-system-body
.sib-side-pro-no-results {
  display: grid;
  justify-items: center;
  gap: 4px;
  margin: 14px 4px;
  padding: 18px 10px;
  border: 1px dashed rgba(255, 255, 255, .18);
  border-radius: 14px;
  color: rgba(255, 255, 255, .72);
  text-align: center;
}

body.sib-main-system-body
.sib-side-pro-no-results > i {
  font-size: 1rem;
}

body.sib-main-system-body
.sib-side-pro-no-results strong {
  color: #ffffff;
  font-size: .72rem;
}

body.sib-main-system-body
.sib-side-pro-no-results small {
  font-size: .62rem;
}

body.sib-main-system-body
.sib-side-pro-session-wrap {
  margin-top: 15px;
  padding-top: 13px;
  border-top: 1px solid rgba(255, 255, 255, .11);
}

/*
 * Neutraliza el comportamiento de footer fijo que pueda traer
 * info_ini_sesion.php. El panel queda al final real del menú.
 */
body.sib-main-system-body
.sib-side-pro-session-wrap,
body.sib-main-system-body
.sib-side-pro-session-wrap .sb-sidenav-footer,
body.sib-main-system-body
.sib-side-pro-session-wrap .sib-session-panel {
  position: static !important;
  inset: auto !important;
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
}

body.sib-main-system-body
.sib-side-pro-session-wrap .sb-sidenav-footer {
  padding: 0 !important;
  color: inherit !important;
  background: transparent !important;
}

body.sib-main-system-body
.sib-side-pro-overlay {
  display: none;
}

/* --------------------------------------------------------------------------
   Ocultar menú en escritorio
   -------------------------------------------------------------------------- */

@media (min-width: 992px) {
  body.sib-main-system-body.sb-sidenav-toggled
  #layoutSidenav {
    background: var(--sib-navigation-bg) !important;
  }

  body.sib-main-system-body.sb-sidenav-toggled
  #layoutSidenav > #layoutSidenav_nav {
    flex-basis: 0 !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    transform: translateX(
      calc(var(--sib-sidebar-width) * -1)
    ) !important;
  }

  body.sib-main-system-body.sb-sidenav-toggled
  #layoutSidenav > #layoutSidenav_content {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* --------------------------------------------------------------------------
   Móvil
   -------------------------------------------------------------------------- */

@media (max-width: 991.98px) {
  body.sib-main-system-body .sib-db-topnav {
    padding: 0 8px !important;
  }

  body.sib-main-system-body .sib-db-brand {
    max-width: 190px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.sib-main-system-body #layoutSidenav {
    display: block !important;
    min-height: calc(
      100vh - var(--sib-topnav-height)
    ) !important;
    background: var(--sib-navigation-bg) !important;
  }

  body.sib-main-system-body
  #layoutSidenav > #layoutSidenav_nav {
    position: fixed !important;
    top: var(--sib-topnav-height) !important;
    right: auto !important;
    bottom: 0 !important;
    left: 0 !important;
    width: var(--sib-sidebar-mobile-width) !important;
    min-width: 0 !important;
    max-width: var(--sib-sidebar-mobile-width) !important;
    height: auto !important;
    max-height: none !important;
    transform: translateX(-108%) !important;
    box-shadow: 24px 0 48px rgba(0, 32, 91, .34);
    z-index: 1055 !important;
  }

  body.sib-main-system-body.sb-sidenav-toggled {
    overflow: hidden !important;
  }

  body.sib-main-system-body.sb-sidenav-toggled
  #layoutSidenav > #layoutSidenav_nav {
    transform: translateX(0) !important;
  }

  body.sib-main-system-body
  #layoutSidenav > #layoutSidenav_content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.sib-main-system-body .sib-side-pro-overlay {
    position: fixed;
    inset: var(--sib-topnav-height) 0 0 0;
    z-index: 1045;
    border: 0;
    background: rgba(0, 32, 91, .48);
    backdrop-filter: blur(4px);
  }

  body.sib-main-system-body.sb-sidenav-toggled
  .sib-side-pro-overlay {
    display: block;
  }
}

@media (max-width: 575.98px) {
  body.sib-main-system-body .sib-db-brand {
    max-width: 145px;
    font-size: .84rem;
  }

  body.sib-main-system-body
  .sib-db-topnav .dropdown-notifications,
  body.sib-main-system-body
  .sib-db-topnav #navbarDropdownDocs,
  body.sib-main-system-body
  .sib-db-topnav #navbarDropdownSupport {
    display: none !important;
  }
}

/* ==========================================================================
   SIB — UN SOLO CONTENEDOR DE SCROLL PARA EL MENÚ LATERAL
   ==========================================================================
   El problema anterior era que el scroll cambiaba entre:
   - #layoutSidenav_nav
   - .sib-side-pro-menu
   - el documento principal

   Eso produjo reglas contradictorias.

   Solución:
   - #layoutSidenav_nav únicamente define posición y altura.
   - .sib-side-pro-inner es el ÚNICO contenedor desplazable.
   - Funciona igual con rueda del mouse, touchpad y pantalla táctil.
   - La sesión queda dentro del mismo recorrido.
   ========================================================================== */

/* Fondo lateral continuo hasta el final del layout y del footer. */
html body.sib-main-system-body #layoutSidenav {
  align-items: stretch !important;
  background:
    linear-gradient(
      90deg,
      #00205b 0,
      #063b84 var(--sib-sidebar-width),
      var(--sib-navigation-bg)
        var(--sib-sidebar-width),
      var(--sib-navigation-bg) 100%
    ) !important;
}

/* --------------------------------------------------------------------------
   ESCRITORIO
   -------------------------------------------------------------------------- */
@media (min-width: 992px) {
  html body.sib-main-system-body
  #layoutSidenav > #layoutSidenav_nav {
    position: sticky !important;
    top: var(--sib-topnav-height) !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;

    align-self: flex-start !important;

    height: calc(
      100vh - var(--sib-topnav-height)
    ) !important;
    height: calc(
      100dvh - var(--sib-topnav-height)
    ) !important;

    min-height: 0 !important;

    max-height: calc(
      100vh - var(--sib-topnav-height)
    ) !important;
    max-height: calc(
      100dvh - var(--sib-topnav-height)
    ) !important;

    overflow: hidden !important;
  }
}

/* --------------------------------------------------------------------------
   MÓVIL
   -------------------------------------------------------------------------- */
@media (max-width: 991.98px) {
  html body.sib-main-system-body
  #layoutSidenav > #layoutSidenav_nav {
    position: fixed !important;
    top: var(--sib-topnav-height) !important;
    right: auto !important;
    bottom: 0 !important;
    left: 0 !important;

    height: calc(
      100vh - var(--sib-topnav-height)
    ) !important;
    height: calc(
      100dvh - var(--sib-topnav-height)
    ) !important;

    min-height: 0 !important;

    max-height: calc(
      100vh - var(--sib-topnav-height)
    ) !important;
    max-height: calc(
      100dvh - var(--sib-topnav-height)
    ) !important;

    overflow: hidden !important;
  }
}

/* --------------------------------------------------------------------------
   CONTENEDOR VISUAL
   -------------------------------------------------------------------------- */
html body.sib-main-system-body
#layoutSidenav > #layoutSidenav_nav
.sib-side-pro {
  display: block !important;

  width: 100% !important;
  height: 100% !important;

  min-width: 0 !important;
  min-height: 0 !important;

  overflow: hidden !important;
}

/*
 * ÚNICO SCROLL DEL SIDEBAR.
 * Incluye cabecera, buscador, grupos, módulos y sesión.
 */
html body.sib-main-system-body
#layoutSidenav > #layoutSidenav_nav
.sib-side-pro-inner {
  display: flex !important;
  flex-direction: column !important;

  width: 100% !important;
  height: 100% !important;

  min-width: 0 !important;
  min-height: 0 !important;

  overflow-x: hidden !important;
  overflow-y: scroll !important;

  overscroll-behavior-y: contain;
  touch-action: pan-y;
  -webkit-overflow-scrolling: touch;

  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color:
    rgba(255, 255, 255, .42)
    rgba(0, 32, 91, .16);
}

html body.sib-main-system-body
#layoutSidenav > #layoutSidenav_nav
.sib-side-pro-inner::-webkit-scrollbar {
  width: 9px;
}

html body.sib-main-system-body
#layoutSidenav > #layoutSidenav_nav
.sib-side-pro-inner::-webkit-scrollbar-track {
  background: rgba(0, 32, 91, .16);
}

html body.sib-main-system-body
#layoutSidenav > #layoutSidenav_nav
.sib-side-pro-inner::-webkit-scrollbar-thumb {
  min-height: 44px;
  border: 2px solid transparent;
  border-radius: 999px;
  background: rgba(255, 255, 255, .42);
  background-clip: padding-box;
}

html body.sib-main-system-body
#layoutSidenav > #layoutSidenav_nav
.sib-side-pro-inner::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, .62);
  background-clip: padding-box;
}

/*
 * Se desactiva el scroll interno anterior.
 * Así no existen dos contenedores compitiendo por la rueda del mouse.
 */
html body.sib-main-system-body
#layoutSidenav > #layoutSidenav_nav
.sib-side-pro-menu {
  display: block !important;
  flex: 0 0 auto !important;

  min-height: 0 !important;

  overflow: visible !important;
}

/* La sesión permanece al final natural del recorrido. */
html body.sib-main-system-body
#layoutSidenav > #layoutSidenav_nav
.sib-side-pro-session-wrap {
  flex: 0 0 auto !important;
  margin-top: 16px !important;
  padding-bottom: max(
    20px,
    env(safe-area-inset-bottom)
  ) !important;
}

/* El buscador no crea otro contexto de desplazamiento. */
html body.sib-main-system-body
#layoutSidenav > #layoutSidenav_nav
.sib-side-pro-head,
html body.sib-main-system-body
#layoutSidenav > #layoutSidenav_nav
.sib-side-pro-search {
  flex: 0 0 auto !important;
}

/*
 * En móvil se bloquea el contenido de fondo, pero no el scroll interno
 * de .sib-side-pro-inner.
 */
@media (max-width: 991.98px) {
  html body.sib-main-system-body.sb-sidenav-toggled {
    overflow: hidden !important;
  }

  html body.sib-main-system-body.sb-sidenav-toggled
  #layoutSidenav > #layoutSidenav_nav
  .sib-side-pro-inner {
    overflow-y: scroll !important;
    touch-action: pan-y !important;
  }
}

/* ==========================================================================
   PC — MENÚ LATERAL A TODA LA ALTURA DE LA PANTALLA
   ==========================================================================
   Objetivo:
   - El panel lateral comienza debajo del header.
   - Llega exactamente hasta el borde inferior de la pantalla.
   - Permanece visible aunque el contenido llegue al footer.
   - Conserva su scroll interno independiente.
   - El contenido principal respeta el ancho del sidebar.
   - Al ocultar el menú, el dashboard recupera el 100 % del ancho.
   - No altera el comportamiento móvil ya aprobado.
   ========================================================================== */

@media (min-width: 992px) {
  /*
   * El aside deja de depender de la altura del contenido principal.
   * Queda anclado desde el header hasta el borde inferior.
   */
  html body.sib-main-system-body
  #layoutSidenav > #layoutSidenav_nav {
    position: fixed !important;

    top: var(--sib-topnav-height) !important;
    right: auto !important;
    bottom: 0 !important;
    left: 0 !important;

    align-self: auto !important;

    width: var(--sib-sidebar-width) !important;
    min-width: var(--sib-sidebar-width) !important;
    max-width: var(--sib-sidebar-width) !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden !important;

    transform: translateX(0) !important;
    z-index: 1050 !important;
  }

  /*
   * El contenido principal reserva exactamente el ancho del menú fijo.
   */
  html body.sib-main-system-body
  #layoutSidenav > #layoutSidenav_content {
    flex: none !important;

    width: calc(
      100% - var(--sib-sidebar-width)
    ) !important;

    min-width: 0 !important;
    max-width: calc(
      100% - var(--sib-sidebar-width)
    ) !important;

    margin-left: var(--sib-sidebar-width) !important;
    margin-right: 0 !important;

    transition:
      margin-left .22s ease,
      width .22s ease,
      max-width .22s ease;
  }

  /*
   * Todo el panel visual llena el alto disponible.
   */
  html body.sib-main-system-body
  #layoutSidenav > #layoutSidenav_nav
  .sib-side-pro {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
  }

  /*
   * Se conserva el único scroll interno que ya quedó funcionando.
   */
  html body.sib-main-system-body
  #layoutSidenav > #layoutSidenav_nav
  .sib-side-pro-inner {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;

    overflow-x: hidden !important;
    overflow-y: scroll !important;
  }

  /*
   * Estado de pantalla completa:
   * se oculta el menú y el contenido ocupa todo el ancho.
   */
  html body.sib-main-system-body.sb-sidenav-toggled
  #layoutSidenav > #layoutSidenav_nav {
    width: var(--sib-sidebar-width) !important;
    min-width: var(--sib-sidebar-width) !important;
    max-width: var(--sib-sidebar-width) !important;

    transform: translateX(-100%) !important;
  }

  html body.sib-main-system-body.sb-sidenav-toggled
  #layoutSidenav > #layoutSidenav_content {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
  }

  /*
   * El fondo general ya no necesita reservar una franja inferior.
   * El propio sidebar fijo cubre toda la columna izquierda.
   */
  html body.sib-main-system-body #layoutSidenav {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    background: var(--sib-navigation-bg) !important;
  }
}

/* ==========================================================================
   DASHBOARD SIB — SIN OPACIDAD REAL
   ==========================================================================
   La apariencia pálida no provenía solamente de `opacity`.
   La producía principalmente el degradado que terminaba en azul claro
   (#007fbd), junto con el círculo radial decorativo.

   Esta corrección elimina:
   - degradados claros;
   - fondos rgba;
   - filtros glass;
   - pseudo-elementos aclaradores;
   - estados visuales is-searching.

   El hero y el buscador quedan con colores sólidos permanentes.
   ========================================================================== */

/* Hero completamente sólido: un único azul corporativo. */
html body.sib-main-system-body
.sib-dashboard-hero {
  background: #003f78 !important;
  background-color: #003f78 !important;
  background-image: none !important;

  opacity: 1 !important;
  filter: none !important;

  border: 1px solid #075a95 !important;

  box-shadow:
    0 18px 42px rgba(0, 32, 91, .25) !important;
}

/* Eliminar los círculos/decoraciones que aclaraban el costado derecho. */
html body.sib-main-system-body
.sib-dashboard-hero::before,
html body.sib-main-system-body
.sib-dashboard-hero::after {
  display: none !important;
  content: none !important;

  opacity: 0 !important;
  background: none !important;
  background-image: none !important;
  border: 0 !important;
}

/* Todos los elementos interiores permanecen totalmente definidos. */
html body.sib-main-system-body
.sib-dashboard-hero-content,
html body.sib-main-system-body
.sib-dashboard-hero-layout,
html body.sib-main-system-body
.sib-dashboard-hero-copy,
html body.sib-main-system-body
.sib-dashboard-title,
html body.sib-main-system-body
.sib-dashboard-subtitle,
html body.sib-main-system-body
.sib-dashboard-breadcrumb,
html body.sib-main-system-body
.sib-dashboard-breadcrumb a,
html body.sib-main-system-body
.sib-dashboard-breadcrumb strong {
  opacity: 1 !important;
  filter: none !important;
}

/* Buscador sólido siempre: vacío, con foco o con texto. */
html body.sib-main-system-body
.sib-dashboard-search-panel,
html body.sib-main-system-body
.sib-dashboard-search-panel.is-searching,
html body.sib-main-system-body
.sib-dashboard-search-panel:not(.is-searching) {
  background: #005b96 !important;
  background-color: #005b96 !important;
  background-image: none !important;

  opacity: 1 !important;
  filter: none !important;

  border: 1px solid #58b8df !important;

  box-shadow:
    0 14px 30px rgba(0, 32, 91, .25) !important;

  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;

  transform: none !important;
}

/* Campo de búsqueda blanco sólido. */
html body.sib-main-system-body
.sib-dashboard-search-input,
html body.sib-main-system-body
.sib-dashboard-search-panel.is-searching
.sib-dashboard-search-input,
html body.sib-main-system-body
.sib-dashboard-search-panel:not(.is-searching)
.sib-dashboard-search-input {
  color: #12233f !important;

  background: #ffffff !important;
  background-color: #ffffff !important;
  background-image: none !important;

  opacity: 1 !important;
  filter: none !important;

  border-color: #d2e1ee !important;

  box-shadow:
    0 8px 20px rgba(0, 32, 91, .14) !important;
}

/* Mantener únicamente el realce funcional al enfocar. */
html body.sib-main-system-body
.sib-dashboard-search-input:focus {
  border-color: #7dd3fc !important;

  box-shadow:
    0 0 0 4px rgba(125, 211, 252, .20),
    0 10px 24px rgba(0, 32, 91, .20) !important;
}

/* Etiquetas, ayuda y resultados totalmente visibles. */
html body.sib-main-system-body
.sib-dashboard-search-label,
html body.sib-main-system-body
.sib-dashboard-search-help,
html body.sib-main-system-body
.sib-dashboard-search-status,
html body.sib-main-system-body
.sib-dashboard-eyebrow,
html body.sib-main-system-body
.sib-dashboard-stat {
  opacity: 1 !important;
  filter: none !important;
}

/* Etiqueta y contadores con fondos sólidos. */
html body.sib-main-system-body
.sib-dashboard-eyebrow {
  background: #00558f !important;
  background-image: none !important;
  border-color: #2c96ca !important;
}

html body.sib-main-system-body
.sib-dashboard-stat {
  background: #005f9f !important;
  background-image: none !important;
  border-color: #3d9ed0 !important;
}

/* =====================================================================
   MOVIL: RECUPERAR PANTALLA
   ---------------------------------------------------------------------
   Va al FINAL a proposito. Las clases de tarjeta y campo estan definidas
   en cinco puntos distintos de esta hoja, con reglas que se pisan entre
   si; pelear con esa cascada desde el medio es como se llego aqui. Este
   bloque cierra el archivo, asi que gana sin tocar nada de lo anterior.
   ---------------------------------------------------------------------
   QUE SE ARREGLA
     En un telefono cabian dos campos por pantalla: el espacio entre
     etiqueta e input, entre campos y entre tarjetas estaba pensado para
     un monitor. Aqui se comprime SOLO en pantallas chicas; en escritorio
     todo queda exactamente igual.

     La burbuja de Aider IA tapaba el ultimo campo. Se le deja sitio al
     final de la pagina en vez de moverla: flota a proposito.
   ===================================================================== */
@media (max-width: 767.98px) {

  .sib-form-card,
  .sib-firma-camera-card,
  .sib-firma-preview-card,
  .sib-firma-candidato-card {
    padding: 12px 12px 4px 12px !important;
    border-radius: 12px !important;
    margin-bottom: 12px !important;
  }

  /* 24px de Bootstrap entre bloques es medio dedo de pantalla. */
  .sib-firma-contrato-section .mb-4,
  .sib-form-card .mb-4 { margin-bottom: 12px !important; }

  /* Lo que mas pantalla recupera: se repite en cada campo. */
  .sib-field { margin-bottom: 9px !important; }

  .sib-label,
  .sib-label-center {
    margin: 0 0 3px 0 !important;
    font-size: .86rem !important;
    line-height: 1.25 !important;
  }

  .sib-control {
    min-height: 40px !important;
    padding: .4rem .6rem !important;
    /* 16px evita que iOS haga zoom al enfocar. Bajarlo se ve mas
       compacto pero descuadra la pagina entera al escribir. */
    font-size: 16px !important;
  }

  .sib-form-header { padding: 8px 4px !important; }
  .sib-form-title {
    font-size: 1.06rem !important;
    line-height: 1.25 !important;
    margin-bottom: 2px !important;
  }
  .sib-form-subtitle {
    font-size: .82rem !important;
    line-height: 1.35 !important;
    margin-bottom: 0 !important;
  }

  .sib-alertboost,
  .sib-alertboost-firma,
  .sib-alertboost-contrato,
  .sib-alertboost-entidades,
  .sib-firma-hero {
    padding: 10px 12px !important;
    margin-bottom: 12px !important;
  }

  .sib-firma-hero-title,
  .sib-alertboost-firma-title,
  .sib-alertboost-contrato-title {
    font-size: .95rem !important;
    line-height: 1.3 !important;
  }

  .sib-firma-hero-text,
  .sib-alertboost-firma-text,
  .sib-alertboost-contrato-text,
  .sib-alertboost-firma-note,
  .sib-firma-helper {
    font-size: .82rem !important;
    line-height: 1.4 !important;
  }

  /* Los <br> sueltos del formulario viejo: en movil son media pantalla. */
  .sib-form-card > br,
  .sib-firma-contrato-section br + br { display: none !important; }

  .container-fluid > h2.mt-4 {
    font-size: 1.25rem !important;
    margin-top: 12px !important;
    margin-bottom: 4px !important;
  }
  .breadcrumb {
    padding: 6px 10px !important;
    margin-bottom: 12px !important;
    font-size: .85rem !important;
  }

  /* -------------------------------------------------------------------
     LOS MARGENES DE LOS COSTADOS

     Se acumulaban tres rellenos, uno dentro de otro:

       <main><div class="container-fluid">        15px por lado
         <section><div class="container-fluid">   15px mas
           <div class="row"><div class="col-md-6"> 15px mas

     45px de cada lado antes de que empiece la tarjeta: en un telefono de
     360px eso es una cuarta parte de la pantalla gastada en aire. En
     escritorio los tres tienen sentido; en movil sobran dos.
     ------------------------------------------------------------------- */
  .container-fluid {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  /* El container anidado no vuelve a separar: ya lo hizo el de afuera. */
  .container-fluid .container-fluid,
  section.content > .container-fluid {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Columnas y filas: el canal de Bootstrap baja de 15px a 5px. */
  .row {
    margin-left: -5px !important;
    margin-right: -5px !important;
  }
  .col, [class^="col-"], [class*=" col-"] {
    padding-left: 5px !important;
    padding-right: 5px !important;
  }

  #layoutSidenav_content {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Sitio para la burbuja de Aider IA, que si no tapa el ultimo campo. */
  #layoutSidenav_content > main { padding-bottom: 96px !important; }

  /* La camara de la firma dejaba franjas negras a los lados. */
  .sib-video-frame video,
  #video {
    width: 100% !important;
    height: auto !important;
    max-height: 46vh !important;
    /* contain tambien aqui (09/09/2026): en movil el recorte era peor, porque
       la caja es aun mas apaisada respecto a la camara frontal. */
    object-fit: contain !important;
  }
  .modal-dialog { margin: .5rem !important; }
  .modal-body { padding: 12px !important; }
}

/* Telefonos angostos: un apreton mas. */
@media (max-width: 400px) {
  .sib-form-card,
  .sib-firma-camera-card,
  .sib-firma-preview-card { padding: 10px 10px 2px 10px !important; }
  .sib-field { margin-bottom: 7px !important; }
  .sib-form-title { font-size: 1rem !important; }
}

/* ==========================================================
   CLASE BASE V2 -- Icono de alerta en azul corporativo SIB
   ----------------------------------------------------------
   POR QUE EXISTE
     .sib-alertboost-icon esta definida TRES veces en este archivo
     (lineas ~919, ~1021 y ~4408). Gana la ultima, que pinta el
     circulo gris claro (#f1f4f8). Pero el color:#ffffff de la
     primera SI sobrevive, asi que el simbolo queda blanco sobre
     gris claro: invisible.

     No se corrige ninguna de las tres definiciones a proposito.
     Cambiar la que gana afectaria TODAS las alertas del sistema y
     no hay inventario todavia de cuales dependen del gris. La regla
     del estandar CodeHTML v2.0 es congelar lo existente y agregar
     una capa nueva encima.

   COMO SE USA
     <div class="sib-alertboost-icon sib-icon-azul">!</div>

     Reutilizable en cualquier alerta que necesite el circulo azul
     corporativo con el simbolo en blanco.

   POR QUE DOS CLASES EN EL SELECTOR
     .sib-alertboost-icon.sib-icon-azul tiene mas especificidad que
     las definiciones sueltas de una sola clase, asi que gana sin
     depender del orden del archivo.
   ========================================================== */
.sib-alertboost-icon.sib-icon-azul {
  background: #00205b;
  color: #ffffff;
  font-weight: 800;
}

/* ==================== FOOTER AL PIE — ÁREA DEL CANDIDATO ==================== */
/*
  |--------------------------------------------------------------------------
  | El footer quedaba pegado al final del contenido. En las pantallas del
  | candidato, que tienen poca información —la tarjeta de cierre es una sola
  | caja—, eso dejaba una franja en blanco debajo y el sistema se veía
  | cortado a media pantalla.
  |
  | La columna de contenido ya venía como flex vertical desde styles.css;
  | lo que faltaba era que <main> creciera para ocupar el sobrante. Con eso
  | el footer baja solo, y en pantallas largas se comporta igual que antes:
  | queda después del contenido, sin flotar ni taparlo.
  |
  | Va limitado a .sib-perfil-body (header_perfil_c.php) para no mover el
  | resto del sistema.
  |--------------------------------------------------------------------------
  */
body.sib-perfil-body #layoutSidenav_content {
  display: flex !important;
  flex-direction: column !important;
  min-height: calc(100vh - 56px) !important;
}

body.sib-perfil-body #layoutSidenav_content > main {
  flex: 1 0 auto !important;
}

body.sib-perfil-body #layoutSidenav_content > footer,
body.sib-perfil-body #layoutSidenav_content > .sib-autogestion-footer,
body.sib-perfil-body #layoutSidenav_content > .sib-autog-footer-full {
  flex: 0 0 auto !important;
  margin-top: auto !important;
}


/* ==================== CAMPO CON ICONO ==================== */
/*
 * Para inputs que llevan un icono superpuesto a la izquierda
 * (position:absolute; left:14px). Reserva el espacio del icono.
 *
 * POR QUE LLEVA !important
 *   La regla de movil de mas arriba hace
 *     @media (max-width:767.98px){ .sib-control{ padding:.4rem .6rem !important } }
 *   y un !important de hoja de estilos VENCE al style= en linea. Por eso
 *   el padding-left inline se perdia solo en el celular y el texto del
 *   placeholder quedaba debajo del icono. En PC se veia bien.
 *
 * VA AL FINAL DEL ARCHIVO a proposito: misma especificidad que
 * .sib-control, asi que gana por orden de aparicion.
 *
 * USO:  <input class="sib-control sib-control-icono" ...>
 *       sin style de padding.
 */
.sib-control-icono { padding-left: 42px !important; }

/* ==========================================================================
   CLASES BASE V2 -- agregadas 02/09/2026 (CodeHTML v2.1, seccion 10)
   ==========================================================================

   POR QUE SON GENERICAS Y NO DEL FORMULARIO:

   .sib-char*  -- contador de caracteres para cualquier textarea con minimo
                  o maximo. Lo necesita hoy el registro de horario, pero
                  sirve igual en observaciones, justificaciones y campos de
                  descripcion de cualquier modulo.
                  Estas cuatro se venian USANDO en
                  index_Regristra_ingreso_ubi.php sin estar definidas: el
                  contador se veia sin ningun color, en negro sobre blanco,
                  y no se distinguia "faltan caracteres" de "listo".

   .sib-camera-*  -- vista previa de camara. Se suma a la familia que ya
                  existe en este archivo (.sib-camera-status-ok /
                  .sib-camera-status-error). Reemplaza el bloque <style>
                  que estaba dentro de la pantalla de marcacion y que la
                  pantalla de teletrabajo repetia igual.
   ========================================================================== */

.sib-char {
  display: inline-block;
  font-weight: 600;
  font-size: 0.95rem;
}

.sib-char-ok {
  color: #2c9f45;
}

.sib-char-warn {
  color: #b06a00;
}

.sib-char-danger {
  color: #d9534f;
}

/* Las clases de camara que se habian propuesto aqui (.sib-camera-video,
   .sib-camera-canvas, .sib-camera-boton) se RETIRARON el 02/09/2026 sin
   llegar a produccion: eran redundantes.

   sib.css ya resolvia la camara desde antes:

     #video          width:100%; max-height:430px; object-fit:contain (linea ~2611)
     #canvas         width:100%; max-width:100%                       (linea ~4677)
     .sib-video-wrap marco 4:3, tope 573px de ancho y 430 de alto     (linea ~4680)
     .sib-video-wrap video   llena el marco sin recortar

   Un selector de ID gana sobre una clase, asi que #video pisaba a
   .sib-camera-video y las reglas nuevas no se aplicaban nunca. El video
   salia a todo el ancho de la columna y descuadraba la pantalla.

   LECCION: verificar la clase no basta. Hay que mirar tambien si el
   elemento ya esta estilado por ID o por etiqueta.

   ACTUALIZADO EL 09/09/2026 — y la leccion de arriba se cobro otra victima.
   Los dos `object-fit` eran `cover`, que rellena RECORTANDO. Con un marco mas
   apaisado que cualquier camara, el recorte se comia la frente y el menton del
   empleado: no habia forma de encuadrarse. Se cambiaron los dos a `contain`,
   que nunca recorta, y el marco se ajusto a 4:3 (573x430) para que no queden
   franjas.

   Al corregirlo se intento primero cambiar solo `.sib-video-wrap video` -- y no
   paso NADA, exactamente por lo que dice la leccion: `#video` es un ID y
   manda. Hubo que corregir en `#video`, en sus DOS sitios: la regla de la
   linea ~2611 y la del bloque movil (~12660), que ademas lleva !important.

   La foto que se guarda nunca estuvo recortada: ingresar.js y
   foto_reconocimiento.js capturan desde videoWidth/videoHeight, que es el
   cuadro completo de la camara y no lo que la caja CSS dejaba ver. */

/* ==========================================================================
   PANTALLAS SIN BARRA SUPERIOR -- modificador (04/09/2026, CodeHTML v2.1 §4)
   ==========================================================================

   La regla de mas arriba deja el pie al final de la pantalla asi:

       body.sib-perfil-body #layoutSidenav_content { min-height: calc(100vh - 56px) }

   Esos 56px son la altura de la barra superior. Pero las pantallas que se
   abren desde un correo automatico NO tienen barra: el contenido arranca en
   el pixel 0. Comprobado el 04/09/2026 en consulta_ausentismos_box_pend_rh:
   document.querySelector('nav') devuelve null y el contenido empieza en top 0.

   Resultado: en esas pantallas quedaba una franja de 56px sin usar debajo
   del pie.

   NO SE MODIFICA LA REGLA ORIGINAL. Sigue sirviendo a las pantallas que si
   tienen barra (header_perfil_c.php). Este es un modificador de dos clases
   en el selector, que gana por especificidad y no depende del orden.

   COMO SE USA: el header agrega las dos clases al body.

       <body class="sib-perfil-body sib-sin-topnav">

   Es generica: sirve para cualquier pantalla sin barra superior, no solo
   para las de ausentismos.
   ========================================================================== */

body.sib-perfil-body.sib-sin-topnav #layoutSidenav_content {
  min-height: 100vh !important;
}

/* ==========================================================================
   BOTONES — piezas genéricas que faltaban (09/09/2026)
   CodeHTML v2.1 §3: solo se agrega CSS cuando la necesidad es general,
   repetible y útil para varios módulos, y siempre como clase genérica.
   ==========================================================================

   POR QUE SE AGREGA `.sib-btn-secondary` SIN ANIDAR
   -------------------------------------------------
   `.sib-btn-secondary` ya existía, pero SOLO dentro de `.sib-modalboost`
   (líneas ~6037 y ~6051). Fuera de un modal no tenía ni una regla, así que
   cualquier botón secundario en una pantalla normal salía crudo, con el
   estilo por defecto del navegador, al lado de un `.sib-btn-primary` bien
   formado. Se veía como un error, y lo era.

   Esta regla NO toca las dos existentes ni las reemplaza: `.sib-modalboost
   .sib-btn-secondary` tiene mayor especificidad (0,2,0 contra 0,1,0), así que
   DENTRO de los modales sigue ganando la de siempre, esté donde esté en el
   archivo. Los modales no cambian de aspecto.

   Los colores son los mismos del secundario del modal, para que un botón
   secundario se vea igual en toda la aplicación.
   ========================================================================== */

.sib-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #00205b;
  background: rgba(0, 32, 91, .06);
  border: 1px solid rgba(0, 32, 91, .12);
  border-radius: 8px;
  font-weight: 700;
  /*
     8px + 1px de borde = los 9px de relleno de .sib-btn-primary, que va sin
     borde porque `.sib-btn` pone border:0. Medido en el navegador: con 9px
     aqui el secundario quedaba 35px de alto contra 33px del primario, y dos
     botones lado a lado con 2px de diferencia se notan.
  */
  padding: 8px 21px;
  cursor: pointer;
  text-decoration: none;
  transition: background .12s ease, border-color .12s ease;
}

.sib-btn-secondary:hover,
.sib-btn-secondary:focus {
  color: #00205b;
  background: rgba(0, 32, 91, .12);
  border-color: rgba(0, 32, 91, .22);
  text-decoration: none;
}

.sib-btn-secondary[disabled],
.sib-btn-secondary:disabled {
  opacity: .55;
  cursor: not-allowed;
}

/*
   `.sib-btn-row` — una fila de botones que respira.

   `.sib-form-actions` centra pero NO separa: no tiene `gap`, así que dos
   botones seguidos quedan pegados uno contra otro. En vez de agregarle `gap`
   —que cambiaría el aspecto de todas las pantallas que ya la usan— se deja
   esta clase aparte, que se puede componer con ella:

       <div class="sib-form-actions sib-btn-row">   centrada y separada
       <div class="sib-btn-row">                    alineada a la izquierda

   `flex-wrap` es lo que evita que en un celular la fila se salga de la
   tarjeta: los botones bajan de línea en vez de desbordarse.
*/

.sib-btn-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

/*
   EN MOVIL LOS DOS SE COMPORTAN IGUAL.

   `sib.css` ya trae, en su bloque de autogestión (línea ~4659):

       @media (max-width: 767.98px) { .sib-btn-primary { width: 100%; } }

   Eso está bien para un formulario con UN solo botón: en el celular conviene
   un blanco de toque grande. Pero dentro de una FILA de botones deja el
   primario a todo el ancho y el secundario pequeño al lado — dos botones
   hermanos de tamaños distintos, que fue justo lo que se veía mal.

   Aquí se neutraliza, y SOLO dentro de `.sib-btn-row`: ninguna otra pantalla
   cambia. Los botones conservan su tamaño natural y, si no caben, `flex-wrap`
   los baja de línea.
*/

@media (max-width: 767.98px) {
  .sib-btn-row > .sib-btn-primary,
  .sib-btn-row > .sib-btn-secondary {
    width: auto;
  }
}

/* ==========================================================================
   PIEZAS GENERICAS SIB (09/09/2026) — CodeHTML v2.1 §3
   ==========================================================================

   Se agregan porque FALTABAN, no por gusto. Cada una resuelve algo que hoy
   se estaba resolviendo con CSS en linea o quedandose sin resolver, y las
   cinco sirven en cualquier modulo, no solo en el de reconocimiento facial.

   Todas son GENERICAS y ninguna esta atada a un formulario concreto. No se
   toco, renombro ni borro ninguna clase existente.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. .sib-page-head — el encabezado de una pantalla

   Hoy las pantallas abren con `<h2 class="mt-4">`, que es el titulo por
   defecto de Bootstrap: no tiene el azul SIB, ni peso, ni sitio para decir de
   que va la pantalla. Esto da las dos lineas y deja el titulo con la misma
   voz que el resto del sistema.
   -------------------------------------------------------------------------- */

.sib-page-head {
  margin: 22px 0 18px 0;
}

.sib-page-title {
  color: #00205b;
  font-size: 1.6rem;
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: .2px;
  margin: 0 0 4px 0;
}

.sib-page-sub {
  color: #6b7280;
  font-size: .95rem;
  line-height: 1.45;
  margin: 0;
  max-width: 70ch;
}

/* --------------------------------------------------------------------------
   2. .sib-pill — el estado como pildora

   `.sib-estado-verde/-ambar/-rojo` sirven para una palabra dentro de una
   frase, pero cuando el estado ES la informacion principal, un texto en
   negrita se pierde. La pildora se ve de un vistazo y es lo que uno espera
   de una pantalla de gestion.

   Se usa junto a la base:  <span class="sib-pill sib-pill-ok">Aprobada</span>
   -------------------------------------------------------------------------- */

.sib-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 999px;
  padding: 4px 13px;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .2px;
  line-height: 1.4;
  white-space: nowrap;
  border: 1px solid transparent;
}

.sib-pill-ok {
  color: #14682f;
  background: rgba(44, 159, 69, .12);
  border-color: rgba(44, 159, 69, .28);
}

.sib-pill-espera {
  color: #8a6100;
  background: rgba(251, 191, 36, .16);
  border-color: rgba(251, 191, 36, .34);
}

.sib-pill-no {
  color: #a01824;
  background: rgba(220, 53, 69, .10);
  border-color: rgba(220, 53, 69, .26);
}

.sib-pill-neutro {
  color: #00205b;
  background: rgba(0, 32, 91, .07);
  border-color: rgba(0, 32, 91, .16);
}

/* --------------------------------------------------------------------------
   3. .sib-alert-success — la variante que faltaba

   `.sib-alert` tenia `-warning` (linea ~4582) y `-danger` (~3085), pero NO
   una de exito. Consecuencia real: los mensajes de "se guardo bien" se
   pintaban con `.sib-alert` a secas, o sea una caja gris sin color ni
   sentido, al lado de los errores que si se veian rojos.
   -------------------------------------------------------------------------- */

.sib-alert-success {
  border-left: 4px solid #2c9f45;
  background: #f2fbf5;
  color: #14682f;
  border-radius: 10px;
}

.sib-alert-success .sib-alert-title {
  color: #14682f;
}

/* --------------------------------------------------------------------------
   4. .sib-kpi — un numero que importa

   Para resumenes tipo "de 218 empleados: 12 enrolados, 4 en espera". Con el
   numero dentro de la frase hay que leer para enterarse; asi se ve solo.

       <div class="sib-grid sib-grid-3">
         <div class="sib-kpi"><span class="sib-kpi-num">12</span>
                              <span class="sib-kpi-rot">Enrolados</span></div>
       </div>
   -------------------------------------------------------------------------- */

.sib-kpi {
  background: #f7f9fc;
  border: 1px solid #e4e8ef;
  border-radius: 14px;
  padding: 14px 16px;
  text-align: center;
}

.sib-kpi-num {
  display: block;
  color: #00205b;
  font-size: 1.9rem;
  font-weight: 900;
  line-height: 1.05;
}

.sib-kpi-rot {
  display: block;
  color: #6b7280;
  font-size: .82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .4px;
  margin-top: 3px;
}

.sib-kpi-ok    .sib-kpi-num { color: #2c9f45; }
.sib-kpi-ojo   .sib-kpi-num { color: #8a6100; }
.sib-kpi-falta .sib-kpi-num { color: #dc3545; }

/* --------------------------------------------------------------------------
   5. .sib-lista-check — requisitos, uno por linea

   Antes esto se hacia con `<ul class="sib-alert-text">`, que es texto de
   alerta puesto sobre una lista que no esta dentro de ninguna alerta. Se veia
   como una lista de vinetas del navegador.
   -------------------------------------------------------------------------- */

.sib-lista-check {
  list-style: none;
  margin: 0 0 14px 0;
  padding: 0;
}

.sib-lista-check li {
  position: relative;
  padding: 5px 0 5px 26px;
  color: #374151;
  font-size: .93rem;
  line-height: 1.45;
}

.sib-lista-check li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 12px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #00205b;
}

/* --------------------------------------------------------------------------
   6. .sib-thumb-foto — miniatura de una fotografia en una tabla

   Estaba escrito en el atributo `style` de cada <img>. Ahora es una clase, y
   el dia que haya que cambiar el tamano se cambia en un sitio.
   -------------------------------------------------------------------------- */

.sib-thumb-foto {
  width: 92px;
  height: 92px;
  object-fit: cover;
  border-radius: 10px;
  border: 1px solid #e4e8ef;
  background: #f7f9fc;
  display: block;
}

/* ==========================================================================
   BLOQUE DE CAMARA — que no quede un hueco negro ni un vacio al lado
   (09/09/2026, CodeHTML v2.1 §3)
   ========================================================================== */

/* --------------------------------------------------------------------------
   .sib-camara-2col — los controles a la izquierda, la camara a la derecha

   Antes se probaron dos disposiciones en una sola columna: con el marco
   centrado quedaba flotando en medio de la tarjeta, y alineado a la izquierda
   dejaba todo el lado derecho vacio. Las dos desperdiciaban la mitad del
   ancho, porque el marco mide 573px y la tarjeta suele medir el doble.

   Esta parte la tarjeta en dos: a la izquierda lo que hay que elegir antes de
   empezar -- centrado en vertical, para que quede a la altura del rostro y no
   arriba del todo -- y a la derecha el marco con sus botones.

   La columna del marco pide 573px EXACTOS, que es lo que mide, y la izquierda
   se queda con el resto. Asi el video nunca se encoge por culpa del reparto.

   Por debajo de 1100px ya no caben las dos, y se apilan: primero elegir la
   camara, despues el marco. Es el mismo orden de lectura.
   -------------------------------------------------------------------------- */

.sib-camara-2col {
  display: grid;
  grid-template-columns: 1fr 573px;
  gap: 22px;
  align-items: center;
}

/* La caja de la izquierda: centrada en su mitad, en los dos ejes. El
   `align-items:center` de arriba resuelve el vertical; esto, el horizontal. */
.sib-camara-2col > .sib-camara-eleccion {
  text-align: center;
}

.sib-camara-2col > .sib-camara-eleccion .sib-control {
  max-width: 340px;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 1100px) {
  .sib-camara-2col {
    grid-template-columns: 1fr;
  }

  /* Apiladas, el marco queda centrado en su fila y el boton tambien. Sin
     esto el mensaje de estado se quedaba pegado a la izquierda, con el marco
     y el boton centrados encima y debajo: tres alineaciones en una columna. */
  .sib-camara-2col > .sib-camara-marco {
    text-align: center;
  }
}

/* --------------------------------------------------------------------------
   .sib-video-vacio — la camara apagada, con algo dentro

   QUE PASABA: antes de presionar "Activar cámara" el marco era un rectangulo
   negro y vacio. No parecia una camara apagada: parecia un hueco, o una foto
   que no cargo. Ahora el propio marco dice que esta apagada y que hay que
   hacer para encenderla.

   Va superpuesto al video, y el JS lo esconde en cuanto entra la senal.
   -------------------------------------------------------------------------- */

/* El marco necesita ser el ancla del posicionamiento. No tenia `position` y
   ningun hijo suyo estaba posicionado, asi que agregarlo no cambia nada de lo
   que ya funciona en las cinco pantallas que usan esta clase. */
.sib-video-wrap {
  position: relative;
}

/*
   EL CARTEL VA DEBAJO DEL VIDEO, NO ENCIMA.

   Pasó de verdad: se subió el PHP con el cartel pero no el JS que lo esconde,
   y el cartel se quedó escrito sobre la cara del empleado con la cámara ya
   encendida. Quien lo vio no tenía forma de saber que faltaba un archivo.

   Con el video en `z-index:1` y el cartel en `0`, eso no puede volver a
   pasar: apagada, el elemento <video> no pinta nada y el cartel se ve a
   través; encendida, la imagen es opaca y lo tapa ella sola, sin depender de
   que ningún JavaScript haya llegado.

   El JS SIGUE HACIENDO FALTA -- es quien lo esconde de verdad y quien lo
   devuelve al apagar. Esto es la red por debajo, no el reemplazo.
*/

.sib-video-wrap video,
.sib-video-wrap img {
  position: relative;
  z-index: 1;
}

.sib-video-vacio {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 20px;
  text-align: center;
  pointer-events: none; /* que no estorbe a nada de abajo */
}

.sib-video-vacio-icono {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  line-height: 1;
  color: #cfe0f5;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .16);
}

.sib-video-vacio-texto {
  color: #cfe0f5;
  font-size: .92rem;
  font-weight: 700;
  line-height: 1.45;
  margin: 0;
  max-width: 34ch;
}

/* ==========================================================
   CLASE BASE V2 -- Tabla de cruce (matriz filas x columnas)
   ----------------------------------------------------------
   PARA QUE SIRVE
     Una matriz donde las filas son elementos (cargos, personas,
     equipos) y las columnas otros (capacitaciones, requisitos,
     documentos), con una marca en el cruce y un total al final.
     La primera columna queda fija al desplazar a lo ancho y los
     encabezados de las columnas van en vertical para que quepan
     muchas.

   COMO SE USA (encima de .sib-table-capacitaciones)
     <table class="table table-bordered table-sm sib-table-capacitaciones sib-tabla-cruce">
       <th class="sib-cruce-fija">Cargo</th>
       <th class="sib-cruce-grupo">Programa</th>            (banda opcional)
       <th class="sib-cruce-columna"><span class="sib-cruce-vertical">Nombre</span></th>
       <th class="sib-cruce-total">Total</th>
       <td class="sib-cruce-fija">Fila</td>
       <td class="sib-cruce-marca">X</td>
       <td class="sib-cruce-total sib-cruce-cero">0</td>

   Primera pantalla: consul_capacit_cargo_matriz.php (28/10/2026).
   ========================================================== */
.sib-tabla-cruce {
  width: auto !important;
  min-width: 100%;
}

.sib-tabla-cruce th,
.sib-tabla-cruce td {
  text-align: center;
  vertical-align: middle;
  padding: 4px 6px;
}

.sib-tabla-cruce .sib-cruce-fija {
  position: sticky;
  left: 0;
  z-index: 2;
  min-width: 220px;
  max-width: 320px;
  text-align: left;
  white-space: normal;
  box-shadow: 2px 0 0 #dbe4f0;
}

.sib-tabla-cruce tbody .sib-cruce-fija {
  background: #ffffff;
}

.sib-tabla-cruce tbody tr:hover .sib-cruce-fija {
  background: #f4f8fc;
}

.sib-tabla-cruce thead .sib-cruce-fija,
.sib-tabla-cruce tfoot .sib-cruce-fija {
  z-index: 3;
  vertical-align: bottom;
}

/* gestion/css/main.css pinta todo `table th` de #337ab7 con !important:
   la matriz usa el azul corporativo, como su PDF. */
.sib-tabla-cruce thead th,
.sib-tabla-cruce tfoot th {
  background-color: #00205b !important;
  color: #ffffff;
}

.sib-tabla-cruce thead .sib-cruce-grupo {
  background-color: #29447a !important;
  font-size: 0.74rem;
  max-width: 1px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sib-tabla-cruce thead .sib-cruce-columna {
  vertical-align: bottom;
  padding: 8px 2px;
  min-width: 34px;
}

.sib-tabla-cruce .sib-cruce-vertical {
  display: inline-block;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  white-space: nowrap;
  max-height: 15rem;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1.15;
  text-align: left;
}

.sib-tabla-cruce tbody .sib-cruce-marca {
  background: #d6e2f5;
  color: #00205b;
  font-weight: 800;
}

.sib-tabla-cruce tbody .sib-cruce-total {
  background: #eef3fb;
  color: #00205b;
  font-weight: 800;
  min-width: 56px;
}

.sib-tabla-cruce tbody .sib-cruce-total.sib-cruce-cero {
  background: #fdecee;
  color: #b02a37;
}

@media (max-width: 767.98px) {
  .sib-tabla-cruce .sib-cruce-fija {
    min-width: 150px;
    max-width: 180px;
  }

  .sib-tabla-cruce .sib-cruce-vertical {
    max-height: 11rem;
  }
}

/* ==========================================================================
   TABLA ADAPTABLE — .sib-tabla-adaptable (05/11/2026)

   Para listas con simple-datatables cuyas celdas traen mucho contenido
   (etiquetas, botones). Sin ella, la regla global
   `tbody td, thead th { white-space: nowrap }` deja cada fila en una sola
   linea y la tabla se sale de la pantalla: user-management-list medía
   3.464 px y habia que desplazarse para llegar a las acciones.

       <div class="sib-tabla-adaptable">
         <table id="datatablesSimple"> ... </table>
       </div>

   - Las celdas vuelven a partir linea.
   - Cuando la CAJA mide menos de 760 px (celular, tableta o barra lateral
     abierta) cada fila se vuelve una tarjeta: nunca hay desplazamiento
     horizontal. Se mide la caja (container query), no la ventana.
   - Los rotulos que la tarjeta necesita van DENTRO de la celda con
     <span class="sib-celda-rotulo">: simple-datatables redibuja las filas
     y pierde los atributos del <td>, asi que data-label no sirve.
   Primer uso: sb-admin/user-management-list.php
   ========================================================================== */

.sib-tabla-adaptable {
  container-type: inline-size;
}

.sib-tabla-adaptable table tbody td,
.sib-tabla-adaptable table thead th,
.sib-tabla-adaptable table tfoot th {
  white-space: normal;
  vertical-align: middle;
}

/* simple-datatables fija al cargar un ancho en % a cada <th> (style="width: 18%"):
   con celdas que parten linea eso aprieta nombres y perfiles. Se deja que la
   tabla reparta por contenido. */
.sib-tabla-adaptable table thead th,
.sib-tabla-adaptable table tfoot th {
  width: auto !important;
}

.sib-tabla-adaptable .sib-celda-rotulo {
  display: none;
}

/* Columna que solo debe medir lo que mide su contenido (perfil, estado,
   botones): se marca con un <div class="sib-celda-ajustada"> dentro de la
   celda y el espacio sobrante se lo llevan las demas columnas. */
.sib-tabla-adaptable table tbody td:has(> .sib-celda-ajustada) {
  width: 1%;
  white-space: nowrap;
}

@container (max-width: 760px) {
  .sib-tabla-adaptable .sib-persona {
    min-width: 0;
  }

  .sib-tabla-adaptable table thead,
  .sib-tabla-adaptable table tfoot {
    display: none;
  }

  .sib-tabla-adaptable table,
  .sib-tabla-adaptable table tbody,
  .sib-tabla-adaptable table tbody tr,
  .sib-tabla-adaptable table tbody td {
    display: block;
    width: 100% !important;
  }

  .sib-tabla-adaptable table {
    border: 0;
  }

  .sib-tabla-adaptable table tbody tr {
    background: #ffffff;
    border: 1px solid #e4e8ef;
    border-radius: 14px;
    box-shadow: 0 4px 14px rgba(16, 24, 40, .05);
    margin: 0 0 12px 0;
    padding: 12px 14px;
  }

  .sib-tabla-adaptable table tbody tr > td {
    border: 0;
    padding: 6px 0;
    background: transparent;
  }

  .sib-tabla-adaptable table tbody tr > td:first-child {
    border-bottom: 1px solid #eef1f5;
    padding-bottom: 10px;
    margin-bottom: 4px;
  }

  .sib-tabla-adaptable .sib-celda-rotulo {
    display: block;
    color: #6b7280;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .4px;
    text-transform: uppercase;
    margin-bottom: 4px;
  }

  .sib-tabla-adaptable .sib-acciones-fila .btn {
    flex: 1 1 0;
  }
}

/* Persona en una celda: foto (o iniciales), nombre y un dato debajo. */
.sib-persona {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 210px;
}

.sib-persona-texto {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.sib-persona-nombre {
  color: #00205b;
  font-weight: 800;
  line-height: 1.2;
}

.sib-persona-dato {
  color: #6b7280;
  font-size: .8rem;
}

.sib-avatar-iniciales {
  flex: 0 0 auto;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: #e8eef8;
  color: #00205b;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .85rem;
  font-weight: 800;
}

/* Etiquetas (badges) que parten linea, con su total encima. */
.sib-etiquetas {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.sib-etiquetas .badge {
  white-space: nowrap;
}

.sib-etiquetas-total {
  display: block;
  color: #6b7280;
  font-size: .75rem;
  font-weight: 700;
  margin-bottom: 4px;
}

/* Botones de accion de una fila: con texto, juntos y sin salirse. */
.sib-acciones-fila {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.sib-acciones-fila .btn {
  white-space: nowrap;
}

/* Fila de totales con .sib-kpi: en celular quedan 2 o 3 por renglon en vez
   de una columna de cajas altas. */
.sib-kpi-fila {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
  gap: 10px;
}

.sib-kpi-fila .sib-kpi {
  padding: 10px 8px;
}

.sib-kpi-fila .sib-kpi-rot {
  font-size: .72rem;
}

.sib-kpi-fila .sib-kpi-num {
  font-size: 1.6rem;
}

.sib-kpi-azul .sib-kpi-num { color: #005fcc; }
