html {
  font-size: 14px;
}

/* ── Footer ── */
.main-footer {
    background: linear-gradient(135deg, #12303e 0%, #1a6070 55%, #17a2b8 100%) !important;
    color: rgba(255,255,255,.85) !important;
    border-top: none !important;
    padding: 0 !important;
    box-shadow: 0 -2px 12px rgba(0,0,0,.18) !important;
}
.footer-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .5rem;
    padding: .8rem 1.25rem;
    min-height: 54px;
}
.footer-brand {
    display: flex;
    align-items: center;
    gap: .9rem;
}
.footer-brand img {
    height: 24px;
    opacity: .92;
}
.footer-brand span {
    font-size: .75rem;
    color: rgba(255,255,255,.42);
    border-left: 1px solid rgba(255,255,255,.18);
    padding-left: .9rem;
    letter-spacing: .01em;
}
.footer-meta {
    display: flex;
    align-items: center;
    gap: .7rem;
    font-size: .75rem;
    color: rgba(255,255,255,.45);
}
.footer-badge {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 20px;
    padding: .15rem .65rem;
    color: rgba(255,255,255,.78);
    font-size: .7rem;
    letter-spacing: .3px;
    font-weight: 500;
}
.footer-badge .fa-shield-alt { color: #5ee7b0; font-size: .65rem; }

/* ── DataTables ── */
.dataTables_wrapper .dataTables_filter {
    text-align: right;
}
.dataTables_wrapper .dataTables_filter label {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-weight: normal;
    white-space: nowrap;
}
.dataTables_wrapper .dataTables_filter input {
    margin-left: 0 !important;
}
.dataTables_wrapper .dataTables_length label {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-weight: normal;
    white-space: nowrap;
}
.dataTables_wrapper .dataTables_length select {
    margin: 0 .25rem;
}
.dataTables_wrapper .dataTables_info {
    font-size: .85rem;
    color: #6c757d;
    padding-top: .5rem;
}
.dataTables_wrapper .dataTables_paginate {
    padding-top: .25rem;
}

/* ── Content header compacto ── */
.content-header {
    padding: .5rem 0;
}

/* AdminLTE 3 añade clearfix ::after en .card-header (display:block).
   Dentro de d-flex ese pseudo-elemento se convierte en un tercer flex-item
   vacío, desplazando justify-content:space-between y dejando el botón a mitad.
   Lo suprimimos cuando el header actúa como flex container. */
.card-header.d-flex::after {
    display: none !important;
}

/* Bootstrap 4 no incluye utilidades gap — backport de Bootstrap 5 */
.gap-0 { gap: 0 !important; }
.gap-1 { gap: .25rem !important; }
.gap-2 { gap: .5rem !important; }
.gap-3 { gap: 1rem !important; }
.gap-4 { gap: 1.5rem !important; }
.gap-5 { gap: 3rem !important; }

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

/* ── Override Bootstrap 4 primary → color corporativo del logo #17a2b8 ── */

/* btn-primary */
.btn-primary                                            { color:#fff; background-color:#17a2b8; border-color:#17a2b8; }
.btn-primary:hover                                      { color:#fff; background-color:#138496; border-color:#117a8b; }
.btn-primary:focus, .btn-primary.focus                  { color:#fff; background-color:#138496; border-color:#117a8b; box-shadow:0 0 0 .2rem rgba(23,162,184,.5); }
.btn-primary.disabled, .btn-primary:disabled            { color:#fff; background-color:#17a2b8; border-color:#17a2b8; }
.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active,
.show>.btn-primary.dropdown-toggle                      { color:#fff; background-color:#117a8b; border-color:#10707f; }
.btn-primary:not(:disabled):not(.disabled):active:focus,
.btn-primary:not(:disabled):not(.disabled).active:focus,
.show>.btn-primary.dropdown-toggle:focus                { box-shadow:0 0 0 .2rem rgba(23,162,184,.5); }

/* btn-outline-primary */
.btn-outline-primary                                    { color:#17a2b8; border-color:#17a2b8; }
.btn-outline-primary:hover                              { color:#fff; background-color:#17a2b8; border-color:#17a2b8; }
.btn-outline-primary:focus, .btn-outline-primary.focus  { box-shadow:0 0 0 .2rem rgba(23,162,184,.5); }
.btn-outline-primary.disabled, .btn-outline-primary:disabled { color:#17a2b8; background-color:transparent; }
.btn-outline-primary:not(:disabled):not(.disabled):active,
.btn-outline-primary:not(:disabled):not(.disabled).active,
.show>.btn-outline-primary.dropdown-toggle              { color:#fff; background-color:#17a2b8; border-color:#17a2b8; }
.btn-outline-primary:not(:disabled):not(.disabled):active:focus,
.show>.btn-outline-primary.dropdown-toggle:focus        { box-shadow:0 0 0 .2rem rgba(23,162,184,.5); }

/* Utilidades */
.bg-primary    { background-color:#17a2b8 !important; }
.text-primary  { color:#17a2b8 !important; }
.border-primary { border-color:#17a2b8 !important; }
.badge-primary { background-color:#17a2b8; }

/* Alert */
.alert-primary { color:#0c5460; background-color:#d1ecf1; border-color:#bee5eb; }
.alert-primary .alert-link { color:#062c33; }

/* List group */
.list-group-item-primary { color:#0c5460; background-color:#bee5eb; }
.list-group-item-primary.list-group-item-action:hover,
.list-group-item-primary.list-group-item-action:focus   { color:#0c5460; background-color:#abdde5; }
.list-group-item-primary.list-group-item-action.active  { color:#fff; background-color:#0c5460; border-color:#0c5460; }

/* Table */
.table-primary, .table-primary>td, .table-primary>th   { background-color:#bee5eb; }
.table-hover .table-primary:hover,
.table-hover .table-primary:hover>td,
.table-hover .table-primary:hover>th                   { background-color:#abdde5; }

/* Form controls */
.form-control:focus  { border-color:#17a2b8; box-shadow:0 0 0 .2rem rgba(23,162,184,.25); }
.custom-select:focus { border-color:#17a2b8; box-shadow:0 0 0 .2rem rgba(23,162,184,.25); }
.custom-control-input:checked ~ .custom-control-label::before          { border-color:#17a2b8; background-color:#17a2b8; }
.custom-control-input:focus  ~ .custom-control-label::before           { box-shadow:0 0 0 .2rem rgba(23,162,184,.25); }
.custom-control-input:focus:not(:checked) ~ .custom-control-label::before { border-color:#17a2b8; }
.custom-control-input:not(:disabled):active ~ .custom-control-label::before { background-color:#a9dde6; border-color:#a9dde6; }

/* Paginación */
.page-link              { color:#17a2b8; }
.page-link:hover        { color:#117a8b; }
.page-item.active .page-link { background-color:#17a2b8; border-color:#17a2b8; }

/* Progress */
.progress-bar { background-color:#17a2b8; }

/* Nav pills */
.nav-pills .nav-link.active, .nav-pills .show>.nav-link { background-color:#17a2b8; }

/* AdminLTE — card-primary (card outline top border y header sólido) */
.card-primary.card-outline { border-top:3px solid #17a2b8 !important; }
.card-primary:not(.card-outline) > .card-header { background-color:#17a2b8; border-color:#138496; }

/* AdminLTE — sidebar elemento activo */
.sidebar-dark-primary .nav-sidebar>.nav-item>.nav-link.active,
.sidebar-dark-primary .nav-sidebar>.nav-item.menu-open>.nav-link { background-color:#17a2b8 !important; color:#fff !important; }

/* Focus ring genérico */
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem rgba(23,162,184,.5);
}

html {
  position: relative;
  min-height: 100%;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}