#wrapper {
    min-height: 100vh;
    width: 100%;
    overflow-x: hidden;
}

html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

#sidebar-wrapper {
    flex: 0 0 15rem;
    min-height: 100vh;
    margin-left: -15rem;
    transition: margin .25s ease-out;
    width: 15rem;
}

#sidebar-wrapper .sidebar-heading {
    padding: 0.875rem 1.25rem;
    font-size: 1.2rem;
}

#sidebar-wrapper .list-group {
    width: 15rem;
}

#page-content-wrapper {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
}

#wrapper.toggled #sidebar-wrapper {
    margin-left: 0;
}

@media (min-width: 768px) {
    #sidebar-wrapper {
        margin-left: 0;
    }

    #page-content-wrapper {
        min-width: 0;
        width: 100%;
    }

    #wrapper.toggled #sidebar-wrapper {
        margin-left: -15rem;
    }
}

.list-group-item {
    border: none;
    padding: 15px 20px;
    font-size: 1.05rem;
    transition: all 0.3s;
}

.list-group-item:hover {
    background: rgba(255,255,255,0.1) !important;
    border-radius: 8px;
    margin: 0 10px;
}

img,
svg,
video,
canvas {
    max-width: 100%;
}

.table-responsive {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.card-body:has(> table),
.card-body:has(> form > table),
.card-body:has(> .table-responsive) {
    overflow-x: auto;
}

table {
    max-width: 100%;
}

.table {
    vertical-align: middle;
}

.table th,
.table td {
    white-space: nowrap;
}

.form-control,
.form-select,
.input-group {
    min-width: 0;
    max-width: 100%;
}

.btn-group {
    max-width: 100%;
}

.btn-group .btn {
    white-space: normal;
}

@media (max-width: 767.98px) {
    #sidebar-wrapper {
        flex-basis: 15rem;
        position: fixed;
        top: 0;
        bottom: 0;
        z-index: 1040;
        margin-left: -15rem;
        box-shadow: 4px 0 16px rgba(0, 0, 0, 0.2);
    }

    #wrapper.toggled::after {
        content: "";
        position: fixed;
        inset: 0;
        z-index: 1030;
        background: rgba(0, 0, 0, 0.45);
    }

    #wrapper.toggled #sidebar-wrapper {
        margin-left: 0;
    }

    #page-content-wrapper {
        width: 100%;
        min-width: 0;
    }

    .navbar {
        padding: 0.75rem 1rem !important;
    }

    .navbar .ms-auto {
        min-width: 0;
    }

    .navbar .ms-auto span {
        max-width: 120px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .container-fluid {
        padding: 1rem !important;
        max-width: 100vw;
        overflow-x: hidden;
    }

    .table-responsive {
        width: 100%;
        max-width: 100%;
        overflow-x: auto !important;
    }

    h2 {
        font-size: 1.5rem;
    }

    .d-flex.justify-content-between.align-items-center {
        align-items: flex-start !important;
        flex-wrap: wrap;
        gap: 0.75rem;
    }

    .d-flex.justify-content-between.align-items-center > div {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
        max-width: 100%;
    }

    .d-flex.justify-content-between.align-items-center .btn {
        margin: 0 !important;
    }

    .card-body {
        padding: 1rem;
    }

    .card,
    .row,
    [class*="col-"] {
        max-width: 100%;
    }

    form.row > [class*="col-"] {
        width: 100%;
        margin-left: 0;
    }

    form.row .col-auto.ms-auto {
        margin-left: 0 !important;
    }

    .navbar .btn {
        flex: 0 0 auto;
    }

    .navbar .ms-auto {
        margin-left: auto !important;
    }

    .btn-group {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .btn-group > .btn {
        border-radius: 0.375rem !important;
    }

    .card-header.d-flex,
    .card-body > form > .d-flex {
        align-items: flex-start !important;
        flex-wrap: wrap;
        gap: 0.75rem;
    }

    .card-header h5 {
        line-height: 1.35;
    }

    .table {
        font-size: 0.9rem;
    }

    .table th,
    .table td {
        padding: 0.65rem 0.75rem;
    }

    .table-responsive,
    .card-body:has(> table),
    .card-body:has(> form > table) {
        margin-right: 0;
        margin-left: 0;
    }

    .input-group {
        flex-wrap: nowrap;
    }

    .form-label {
        margin-bottom: 0.35rem;
    }

    .btn {
        min-height: 38px;
    }
}

@media (max-width: 575.98px) {
    h2 {
        font-size: 1.35rem;
    }

    .navbar {
        padding: 0.65rem 0.75rem !important;
    }

    .navbar .ms-auto span {
        display: none;
    }

    .container-fluid {
        padding: 0.75rem !important;
    }

    .card-body,
    .card-header {
        padding: 0.85rem;
    }

    .d-flex.justify-content-between.align-items-center > div,
    .btn-group,
    .btn-group > .btn,
    .d-flex.justify-content-between.align-items-center > .btn {
        width: 100%;
    }

    .d-flex.justify-content-between.align-items-center > div .btn,
    .btn-group > .btn {
        flex: 1 1 auto;
    }

    .alert .btn {
        margin-top: 0.5rem;
        margin-left: 0 !important;
    }

    .form-check {
        min-height: 1.5rem;
    }
}
