@media (max-width: 768px) {
    .buttom-global-back {
        font-size: 0.70rem !important;
    }
}

/* =======================
    VISTA MÓVIL (cards)
   ======================= */

/* Textos: que rompan línea sin desbordar */
.d-md-none .card .text-wrap,
.d-md-none .card span,
.d-md-none .card strong {
    word-break: break-word;
    overflow-wrap: anywhere;
}

/* Iconos */
.d-md-none .card i.bi {
    font-size: 12px;
    line-height: 1;
}

/* Card paddings */
.d-md-none .card .card-body {
    padding: 10px 12px;
}

/* Badges compactas */
.d-md-none .card .badge {
    font-size: 11px;
    padding: .25rem .4rem;
    white-space: normal;
    line-height: 1.1;
}

/* Botones tocables */
.d-md-none .card .btn {
    padding: .45rem .6rem;
    min-height: 38px;
    font-size: 14px;
}

/* Filas de datos: separación mínima */
.d-md-none .card .d-flex.align-items-center {
    gap: .25rem;
    margin-top: 2px;
    font-size: 12px;
}

/* =======================
   AVATAR
   ======================= */

.d-md-none .avatar-wrap {
    flex: 0 0 auto;
}

/* Imagen siempre nítida y recortada (componente con clase .avatar-img) */
.avatar-img,
.d-md-none .card [data-avatar],
.d-md-none .card img.avatar,
.d-md-none .card .avatar {
    width: 60px !important;
    height: 60px !important;
    border-radius: 50%;
    object-fit: cover;
    display: block;
    background: #f1f3f5;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .05) inset;
}

/* Fallback con iniciales */
.avatar-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #6c757d;
    color: #fff;
    font-weight: 700;
    letter-spacing: .5px;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .05) inset;
}

.avatar-fallback__text {
    color: #fff;
    font-weight: 700;
    font-size: 0.95rem;
    letter-spacing: .5px;
    text-transform: uppercase;
    line-height: 1;
}

/* =======================
   TOOLBAR MÓVIL (buscador/acciones)
   ======================= */

.mobile-toolbar .mobile-toolbar__row {
    gap: .25rem;
}

.mobile-toolbar .mobile-toolbar__row>.btn {
    border-radius: .375rem;
}

.mobile-toolbar .mobile-toolbar__row>.form-control {
    min-width: 0;
}

/* Input-group (si usas esta estructura) */
.mobile-toolbar .input-group>.btn {
    border-radius: .375rem;
}

.mobile-toolbar .input-group>.btn+.form-control {
    margin-left: .25rem;
}

.mobile-toolbar .input-group>.form-control+.btn {
    margin-left: .25rem;
}

.mobile-toolbar .input-group .btn i {
    font-size: 1rem;
}

/* =======================
   HEADER / TABLA compat
   ======================= */

/* Header: separar elementos cuando envuelven */
.card-header .d-flex.flex-wrap {
    row-gap: .5rem;
}

@media (max-width: 575.98px) {

    .card-header form input[type="text"],
    /* .card-header .search-form .form-control{
    min-width: 0;
    width: 140px;
  } */
    .card-header .btn,
    .card-header button {
        padding: .4rem .55rem;
    }

    .mobile-toolbar .input-group .btn {
        padding: .45rem .6rem;
    }

    .mobile-toolbar .input-group .form-control {
        min-width: 0;
    }
}

/* En móvil ocultamos la tabla desktop y evitamos sticky conflict */
@media (max-width: 767.98px) {
    .sticky-col-end {
        position: static !important;
    }

    .table-responsive.d-none.d-md-block {
        display: none !important;
    }

    .breadcrumb {
        font-size: 0.70rem !important;
    }
}

/* =======================
   FAB (opcional)
   ======================= */
.fab-add {
    position: fixed;
    right: 16px;
    bottom: 72px;
    z-index: 1060;
    width: 52px;
    height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 16px rgba(0, 0, 0, .15);
}

/* =======================
   BREAKPOINTS FINOS
   ======================= */

/* Móviles muy estrechos (≤360px) */
@media (max-width: 360px) {
    .d-md-none .card .card-body {
        padding: 8px 10px;
    }

    .d-md-none .card strong {
        font-size: 14px;
    }

    .d-md-none .card .badge {
        font-size: 10px;
        padding: .2rem .35rem;
    }

    .d-md-none .card .btn {
        padding: .4rem .5rem;
        min-height: 36px;
        font-size: 13px;
    }

    .avatar-img,
    .avatar-fallback,
    .d-md-none .card [data-avatar],
    .d-md-none .card img.avatar,
    .d-md-none .card .avatar {
        width: 42px !important;
        height: 42px !important;
    }

    .avatar-fallback__text {
        font-size: 0.9rem;
    }

    .mobile-toolbar .mobile-toolbar__row .btn {
        padding: .4rem .5rem;
    }

    .mobile-toolbar .mobile-toolbar__row .form-control {
        font-size: .95rem;
    }
}

/* Mobiles grandes / landscape (≥576px y <768px) */
@media (min-width: 576px) and (max-width: 767.98px) {
    .d-md-none .card .card-body {
        padding: 12px 14px;
    }

    .d-md-none .card strong {
        font-size: 15px;
    }

    .d-md-none .card .btn {
        min-height: 40px;
        font-size: 14px;
    }
}

/* Filtros Globales Responsive */
.filter-div {
    width: 450px;
}

/* ============================
   TABLET (768px – 991px)
   Filtros fullscreen como móvil
   ============================ */
@media (min-width: 768px) and (max-width: 991.98px) {

    /* estado abierto */
    .filter-zone .dropdown-menu.filter-div.show {
        position: fixed !important;
        inset: 0 !important;
        transform: none !important;
        width: 100vw !important;
        max-width: 100vw !important;
        height: 100dvh;
        border-radius: 0;
        padding: 12px;
        display: flex !important;
        /* <— aquí sí */
        flex-direction: column;
        overflow: hidden;
        z-index: 1080;
    }

    /* NO toques el estado base: que siga oculto por Bootstrap */
    /* .filter-zone .dropdown-menu.filter-div { ... }  <-- elimina cualquier display aquí */

    /* 1 columna en móvil dentro del filtro */
    .filter-div .row>[class*="col-md-"] {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }

    .filter-div .row {
        --bs-columns: 1 !important;
    }

    /* el grid de filtros hace scroll */
    .filter-div.show form {
        display: flex;
        flex-direction: column;
        min-height: 0;
        flex: 1 1 auto;
    }

    .filter-div.show form>.row:first-of-type {
        flex: 1 1 auto;
        min-height: 0;
        overflow: auto;
        margin-right: -.5rem;
        padding-right: .5rem;
    }

    /* footer con botones siempre visible */
    .filter-div.show .row.g-3.mt-3 {
        position: sticky;
        bottom: 0;
        background: #fff;
        padding-top: .5rem;
    }


}

/*
Form Switches
*/
/* eliminar regla problemática */
.form-check-input {
    clear: none;
}

/* forzar alineado vertical centrado */
.form-check {
    display: flex;
    align-items: center;
    gap: .5rem;
}

/* asegurar que el input no empuje hacia arriba */
.form-check-input {
    margin: 0;
    /* quitar margen Bootstrap por defecto */
    vertical-align: middle;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* etiqueta centrada */
.form-check-label {
    margin-bottom: 0;
    line-height: 1;
    vertical-align: middle;
}

/* ajustar pequeños offsets si hace falta (tweak) */
.form-switch-sm .form-check-input {
    /* tweakeo fino */
    transform-origin: left center;
}

.form-switch.form-switch-sm {
    margin-bottom: 0.5rem;
    /* JUST FOR STYLING PURPOSE */
}

.form-switch.form-switch-sm .form-check-input {
    height: 1rem;
    width: calc(1rem + 0.75rem);
    border-radius: 2rem;
}

.form-switch.form-switch-md .form-check-input {
    height: 1.5rem;
    width: calc(2rem + 0.75rem);
    border-radius: 3rem;
}


.form-switch.form-switch-lg .form-check-input {
    height: 2rem;
    width: calc(3rem + 0.75rem);
    border-radius: 4rem;
}

.form-switch.form-switch-xl .form-check-input {
    height: 2.5rem;
    width: calc(4rem + 0.75rem);
    border-radius: 5rem;
}

.form-check-input {
    position: inherit !important;
}
