body {
    height: 100%;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

body::-webkit-scrollbar {
    display: none;
    /* Chrome, Safari, Opera */
}



.text-truncate {
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
}

.fs-sm {
    font-size: 0.875rem;
    /* ~14px */
}



table.sticky-header thead th {
    background-color: #f2f2f2;
    position: sticky;
    top: 0;
    z-index: 1;
    border-bottom: 2px solid #dee2e6;
    box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.1);
}

.scroll-x-only {
    overflow-x: auto;
    overflow-y: hidden;
    /* Hide vertical scrollbar */
    scrollbar-width: thin;
    /* Firefox: keeps horizontal scrollbar */
    scrollbar-color: auto;
    /* Optional: preserve scroll appearance */
}

/* Hide vertical scrollbar for Webkit (Chrome, Safari) */
.scroll-x-only::-webkit-scrollbar:vertical {
    display: none;
}

/* Optional: scoped to specific dropdowns */
.hide-caret .dropdown-toggle::after {
    display: none !important;
}