div.dataTables_wrapper div.dataTables_processing {
    border-radius:.65rem!important;
    box-shadow:0 0 50px 0 rgba(82,63,105,.1)!important;
    background-color:#fff!important;
    color:#7e8299!important;
    font-weight:500!important;
    margin:0!important;
    width:auto!important;
    padding:1rem 2rem!important;
    transform:translateX(-50%) translateY(-50%)!important;
    position:absolute!important;
    left:50%!important;
    top:50%!important;
}

.optional::after {
    content: "(Optional)";
    font-style: italic!important;
    font-size: .75rem!important;
}

.kv-zoom-body {
    height: 100% !important;
}

.w-fit-content {
    width: fit-content !important;
}

.w-90 {
    width: 90% !important;
}

.text-dark-gray {
    color: #B5B5C3 !important;
}

.text-darker-gray {
    color: #707070 !important;
}

.separator.separator-content.border-dark-gray::before, .separator.separator-content.border-dark-gray::after {
    border-color: #D4D4DC !important;
}

.btn-block + .btn-block {
    margin-top: 0.5rem;
}
.btn-block {
    display: block;
    width: 100%;
}

.px-switch {
    padding-top: 6px;
    padding-bottom: 6px;
}

.link-button-disabled {
    pointer-events: none;
    opacity: 0.6;
}

.pointer-events-none {
    pointer-events: none;
}

.cursor-not-allowed {
    cursor: not-allowed!important;
}

.form-control[readonly], .form-select[readonly] {
    background-color: transparent !important;
    color: #B2B5C1;
}
.form-control:disabled,
.form-select:disabled {
    border-color: transparent !important;
    background-color: transparent !important;
    padding-left: 0 !important;
    background-image: none;
}

table.dataTable thead > tr > th.sorting_asc:before,
table.dataTable thead > tr > th.sorting_desc:before,
table.dataTable thead > tr > th.sorting_asc:after,
table.dataTable thead > tr > th.sorting_desc:after,
table.dataTable thead > tr > td.sorting_asc:before,
table.dataTable thead > tr > td.sorting_desc:before,
table.dataTable thead > tr > td.sorting_asc:after,
table.dataTable thead > tr > td.sorting_desc:after {
    opacity: 0.8;
}

table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:after, table.dataTable thead > tr > td.sorting:after, table.dataTable thead > tr > td.sorting_asc:after, table.dataTable thead > tr > td.sorting_desc:after, table.dataTable thead > tr > td.sorting_asc_disabled:after, table.dataTable thead > tr > td.sorting_desc_disabled:after {
    content: "";
    margin-top: -0.5em;
}

.form-check.form-check-solid.form-check-solid-success .form-check-input:checked {
    background-color: #50CD89;
}

.alert.bg-light-primary {
    background: #F6F8FA !important;
}

.tooltip-grey {
    color: #A1A5B7;
}

.tooltip-dark {
    color: #1e1e2d;
}

.text-truncate-x-line {
    --truncate-line: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: var(--truncate-line);
    -webkit-box-orient: vertical;
    padding-bottom: 0!important;
}

.datatable-url, .datatable-url:hover {
    text-decoration: underline!important;
}

.text-hover-active-primary:hover {
    color: #006dab !important;
}

.view-content{
    -webkit-text-decoration-line: underline;
    text-decoration-line: underline;
}



table.dataTable > thead .sorting:after {
    position: relative;
    display: inline-block;
    width: 0.75rem;
    height: 0.75rem;
    content: " ";
    bottom: auto;
    right: auto;
    left: auto;
    margin-left: 0.5rem;
    opacity: 1;
    background-repeat: no-repeat;
    background-position: center;
    background-color: transparent;
    background-image: url("/demo3/customize/media/icons/sort_default.svg");
    background-size: contain;
}

table.dataTable > thead .sorting_asc:after {
    opacity: 1;
    background-repeat: no-repeat;
    background-position: center;
    background-color: transparent;
    background-image: url("/demo3/customize/media/icons/sort_asc.svg");
    background-size: contain;
}

table.dataTable > thead .sorting_desc:after {
    opacity: 1;
    background-repeat: no-repeat;
    background-position: center;
    background-color: transparent;
    background-image: url("/demo3/customize/media/icons/sort_desc.svg");
    background-size: contain;
}

table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control {
    position: relative;
    padding-left:0;
    cursor: pointer
}

/* Sweet Alert Header */
.swal2-popup.swal2-info {
    border-top: 10px solid #0094F6;
}
.swal2-popup.swal2-brand {
    border-top: 10px solid #6732E7;
}
.swal2-popup.swal2-success {
    border-top: 10px solid #46C67E;
}
.swal2-popup.swal2-warning {
    border-top: 10px solid #FFC000;
}
.swal2-popup.swal2-danger {
    border-top: 10px solid #EF3961;
}

.nav-line-tabs .nav-item .nav-link.active, .nav-line-tabs .nav-item.show .nav-link, .nav-line-tabs .nav-item .nav-link:hover:not(.disabled) {
    border-bottom: 1px solid #3D7ED1 !important;
}

/* Datatable pagination */
.dataTables_paginate .page-item.active .page-link {
    color: #FFFFFF !important;
    background-color: #142F48 !important;
}

.arrange-icon {
    cursor: move!important;
}

.arrange-blur {
    filter: blur(2px);
    pointer-events: none;
    user-select: none;
}

.sortable tr.placeholder {
    display: block;
    background: red;
    position: relative;
    margin: 10px;
    padding: 0;
    border: none;
}
/* line 103, https://github.com/johnny/jquery-sortable/blob/master/source/css/application.css.sass */
.sortable tr.placeholder:before {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border: 5px solid transparent;
    border-left-color: red;
    margin-top: -5px;
    left: -5px;
    border-right: none; }

.sortable td:not(:first-child) {
    pointer-events: none;
}

th.align-top-th {
    vertical-align: top !important;
}

/* Expand/Collapse Icon */
.expandable.collapsed:before {
    top: 50%;
    left: 0;
    height: 1.35rem;
    width: 1.35rem;
    line-height: 1.5;
    margin-top: -0.675rem;
    margin-right: 0.675rem;
    display: inline-block;
    position: relative;
    font-size: 1.05rem;
    border: 0;
    box-shadow: none;
    box-sizing: content-box;
    text-align: center;
    text-indent: 0 !important;
    content: "+";
    color: #5E6278;
    font-family: Poppins, Helvetica, "sans-serif";
    background-color: #E4E6EF;
    border-radius: 0.65rem;
}
.expandable.expanded:before {
    top: 50%;
    left: 0;
    height: 1.35rem;
    width: 1.35rem;
    line-height: 1.5;
    margin-top: -0.675rem;
    margin-right: 0.675rem;
    display: inline-block;
    position: relative;
    font-size: 1.05rem;
    border: 0;
    box-shadow: none;
    box-sizing: content-box;
    text-align: center;
    text-indent: 0 !important;
    content: "-";
    color: #FFFFFF;
    font-family: Poppins, Helvetica, "sans-serif";
    background-color: #009EF7;
    border-radius: 0.65rem;
}

.left-rounded-border {
    border-top-left-radius: 1.25rem;
    border-bottom-left-radius: 1.25rem;
    width: 1.25rem;
    left: -1.25rem;
    position: relative;
    background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important;
}
.top-rounded-border {
    border-top-left-radius: 1.25rem;
    border-top-right-radius: 1.25rem;
    height: 1.25rem;
    top: -1.25rem;
    position: relative;
    background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important;
}

.text-break-all {
    word-break: break-all !important;
}
.text-keep-all {
    word-break: keep-all !important;
}
.text-nowrap {
    white-space: nowrap !important;
}

@media (max-width: 427px) {
    .marvel-device.iphone-x {
        width: calc(100% - 52px);
    }

    .marvel-device.iphone-x .notch {
        width: calc(100% * 210/(375 + 52));
        left: calc(100% * 108/(375 + 52));
    }

    .marvel-device.iphone-x .notch .speaker {
        width: calc(100% * 60/210);
        margin-left: calc(-100% * 30/210);
    }

    .marvel-device.iphone-x .notch .camera {
        left: calc(100% * 154/210);
    }

    .marvel-device.iphone-x .screen .status-bar {
        width: 100%;
        background-size: 100% 31px;
    }
}

.dataTables_processing {
    z-index: 1;
}

/* Demo 2 Horizontal Menu Style */
/* Hidden Menu Show Button */
body:not([data-kt-sticky-header=on]) .topbar .btn.btn-custom i,
body:not([data-kt-sticky-header=on]) .topbar .btn.btn-custom .svg-icon {
    color: #A1A5B7;
}
.btn-check:checked + body:not([data-kt-sticky-header=on]) .topbar .btn.btn-custom i,
.btn-check:checked + body:not([data-kt-sticky-header=on]) .topbar .btn.btn-custom .svg-icon,
.btn-check:active + body:not([data-kt-sticky-header=on]) .topbar .btn.btn-custom i,
.btn-check:active + body:not([data-kt-sticky-header=on]) .topbar .btn.btn-custom .svg-icon,
body:not([data-kt-sticky-header=on]) .topbar .btn.btn-custom:focus:not(.btn-active) i,
body:not([data-kt-sticky-header=on]) .topbar .btn.btn-custom:focus:not(.btn-active) .svg-icon,
body:not([data-kt-sticky-header=on]) .topbar .btn.btn-custom:hover:not(.btn-active) i,
body:not([data-kt-sticky-header=on]) .topbar .btn.btn-custom:hover:not(.btn-active) .svg-icon,
body:not([data-kt-sticky-header=on]) .topbar .btn.btn-custom:active:not(.btn-active) i,
body:not([data-kt-sticky-header=on]) .topbar .btn.btn-custom:active:not(.btn-active) .svg-icon,
body:not([data-kt-sticky-header=on]) .topbar .btn.btn-custom.active i,
body:not([data-kt-sticky-header=on]) .topbar .btn.btn-custom.active .svg-icon,
body:not([data-kt-sticky-header=on]) .topbar .btn.btn-custom.show i,
body:not([data-kt-sticky-header=on]) .topbar .btn.btn-custom.show .svg-icon,
.show > body:not([data-kt-sticky-header=on]) .topbar .btn.btn-custom i,
.show > body:not([data-kt-sticky-header=on]) .topbar .btn.btn-custom .svg-icon {
    color: #009EF7;
}
@media (min-width: 992px) {
    /* Default */
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item > .menu-link .menu-title {
        color: #5E6278;
    }
    /* Selected Link Menu */
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item > .menu-link.active .menu-title {
        color: #009EF7;
    }

    /* Hover */
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon,
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon i,
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item:not(.here) > .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon,
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item:not(.here) > .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item:not(.here) > .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon i {
        color: #009EF7;
    }
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-title,
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item:not(.here) > .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-title {
        color: #009EF7;
    }
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-arrow:after,
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item:not(.here) > .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-arrow:after {
        background-repeat: no-repeat;
        background-position: center;
        background-color: transparent;
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 9' fill='%23009EF7'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M5.93537 4.57889C6.03839 4.77912 6.0191 5.0363 5.87137 5.21403L2.87153 8.82282C2.68598 9.04603 2.36951 9.06026 2.16468 8.8546C1.95985 8.64893 1.94422 8.30126 2.12977 8.07804L4.80594 4.85863L2.15586 1.93583C1.96104 1.72096 1.96165 1.37314 2.15722 1.15895C2.35279 0.944757 2.66927 0.945311 2.86409 1.16018L5.85194 4.45551C5.8859 4.49296 5.91371 4.53459 5.93537 4.57889Z'/%3e%3c/svg%3e");
    }

    /* Sub Menu Show */
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item.show > .menu-link .menu-icon,
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item.show > .menu-link .menu-icon .svg-icon,
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item.show > .menu-link .menu-icon i {
        color: #009EF7;
    }
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item.show > .menu-link .menu-title {
        color: #009EF7;
    }
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item.show > .menu-link .menu-arrow:after {
        background-repeat: no-repeat;
        background-position: center;
        background-color: transparent;
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 9' fill='%23009EF7'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M5.93537 4.57889C6.03839 4.77912 6.0191 5.0363 5.87137 5.21403L2.87153 8.82282C2.68598 9.04603 2.36951 9.06026 2.16468 8.8546C1.95985 8.64893 1.94422 8.30126 2.12977 8.07804L4.80594 4.85863L2.15586 1.93583C1.96104 1.72096 1.96165 1.37314 2.15722 1.15895C2.35279 0.944757 2.66927 0.945311 2.86409 1.16018L5.85194 4.45551C5.8859 4.49296 5.91371 4.53459 5.93537 4.57889Z'/%3e%3c/svg%3e");
    }

    /* Selected Menu with Sub */
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item.here > .menu-link .menu-icon,
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item.here > .menu-link .menu-icon .svg-icon,
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item.here > .menu-link .menu-icon i {
        color: #009EF7;
    }
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item.here > .menu-link .menu-title {
        color: #009EF7;
    }
    body:not([data-kt-sticky-header=on]) .header .header-menu .menu > .menu-item.here > .menu-link .menu-arrow:after {
        background-repeat: no-repeat;
        background-position: center;
        background-color: transparent;
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 9' fill='%23009EF7'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M5.93537 4.57889C6.03839 4.77912 6.0191 5.0363 5.87137 5.21403L2.87153 8.82282C2.68598 9.04603 2.36951 9.06026 2.16468 8.8546C1.95985 8.64893 1.94422 8.30126 2.12977 8.07804L4.80594 4.85863L2.15586 1.93583C1.96104 1.72096 1.96165 1.37314 2.15722 1.15895C2.35279 0.944757 2.66927 0.945311 2.86409 1.16018L5.85194 4.45551C5.8859 4.49296 5.91371 4.53459 5.93537 4.57889Z'/%3e%3c/svg%3e");
    }
}

table.livewire-table > thead .sorting:after {
    position: relative;
    display: inline-block;
    width: 0.75rem;
    height: 0.75rem;
    content: " ";
    bottom: auto;
    right: auto;
    left: auto;
    margin-left: 0.5rem;
    opacity: 1;
    background-repeat: no-repeat;
    background-position: center;
    background-color: transparent;
    background-image: url("/demo3/customize/media/icons/sort_default.svg");
    background-size: contain;
}

table.livewire-table > thead .sorting-asc:after {
    opacity: 1;
    background-repeat: no-repeat;
    background-position: center;
    background-color: transparent;
    background-image: url("/demo3/customize/media/icons/sort_asc.svg");
    background-size: contain;
}

table.livewire-table > thead .sorting-desc:after {
    opacity: 1;
    background-repeat: no-repeat;
    background-position: center;
    background-color: transparent;
    background-image: url("/demo3/customize/media/icons/sort_desc.svg");
    background-size: contain;
}

table.livewire-table tr:first-child, table.livewire-table th:first-child, table.livewire-table td:first-child {
    padding-left: 0.75rem;
}

table.livewire-table tr:last-child, table.livewire-table th:last-child, table.livewire-table td:last-child {
    padding-right: 0.75rem;
}

table.livewire-table > thead, table.livewire-table > tbody {
    border: 1px solid #EDF0F3 !important;
}

table.livewire-table > thead {
    background-color: #F4F7F9 !important;
}

.btn-paginator {
    align-items: center;
    border-radius: .65rem;
    display: flex;
    font-size: 1.075rem;
    font-weight: 500;
    height: 2.5rem;
    justify-content: center;
    min-width: 2.5rem;
    padding: .375rem .75rem !important;
}

.paginator-previous {
    background-repeat: no-repeat;
    background-position: center;
    background-color: transparent;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 9' fill='%23B5B5C3'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M2.06463 4.42111C1.96161 4.22088 1.9809 3.9637 2.12863 3.78597L5.12847 0.177181C5.31402 -0.046034 5.63049 -0.060261 5.83532 0.145404C6.04015 0.351069 6.05578 0.698744 5.87023 0.921959L3.19406 4.14137L5.84414 7.06417C6.03896 7.27904 6.03835 7.62686 5.84278 7.84105C5.64721 8.05524 5.33073 8.05469 5.13591 7.83982L2.14806 4.54449C2.1141 4.50704 2.08629 4.46541 2.06463 4.42111Z'/%3e%3c/svg%3e");
}

.paginator-next {
    background-repeat: no-repeat;
    background-position: center;
    background-color: transparent;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 9' fill='%23B5B5C3'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M5.93537 4.57889C6.03839 4.77912 6.0191 5.0363 5.87137 5.21403L2.87153 8.82282C2.68598 9.04603 2.36951 9.06026 2.16468 8.8546C1.95985 8.64893 1.94422 8.30126 2.12977 8.07804L4.80594 4.85863L2.15586 1.93583C1.96104 1.72096 1.96165 1.37314 2.15722 1.15895C2.35279 0.944757 2.66927 0.945311 2.86409 1.16018L5.85194 4.45551C5.8859 4.49296 5.91371 4.53459 5.93537 4.57889Z'/%3e%3c/svg%3e");
}

.ss-select:not(.ss-main):not(.ss-content).ss-select-hidden {
    display: block;
    /* Out of flow so the 1px hidden select doesn't consume a flex `gap` and push the
       visible .ss-main out of line with sibling inputs. (clip also needs this.) */
    position: absolute !important;
    margin: 0 !important;
    border: 0 !important;
    clip: rect(0 0 0 0) !important;
    -webkit-clip-path: inset(50%) !important;
    clip-path: inset(50%) !important;
    height: 1px !important;
    width: 1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    white-space: nowrap !important;
}

.ss-select:not(.ss-main):not(.ss-content), .ss-main {
    width: 100%;
    padding: 0.75rem 1rem 0.75rem 1rem;
    -moz-padding-start: calc(1rem - 3px);
    font-size: 1.1rem;
    font-weight: 500;
    line-height: 1.5;
    color: #5E6278;
    background-color: #ffffff;
    border: 1px solid #E4E6EF;
    border-radius: 0.65rem;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
.ss-select:disabled, .ss-main.ss-disabled {
    border-color: transparent !important;
    background-color: transparent !important;
}
.ss-main:focus {
    box-shadow: none !important;
}
.ss-main .ss-values .ss-placeholder {
    padding: 0 !important;
    font-size: 1.1rem !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
}

.ss-content {
    border: 1px solid #E4E6EF;
    border-bottom-left-radius: 0.65rem !important;
    border-bottom-right-radius: 0.65rem !important;
}

.ss-search {
    padding: 1.5rem 1.25rem 1rem 1.25rem !important;
    box-shadow: none !important;
}
.ss-search input {
    box-shadow: none !important;
}

.ss-list {
    padding-bottom: 1rem !important;
}

.ss-option {
    padding: 0.75rem 1.25rem !important;
}
.ss-option:not(.ss-selected):hover {
    background-color: #F1FAFF !important;
    color: #009EF7 !important;
    transition: color 0.2s ease, background-color 0.2s ease !important;
}
.ss-option.ss-selected {
    background-color: #009EF7 !important;
    color: #FFFFFF !important;
    transition: color 0.2s ease, background-color 0.2s ease !important;
}

#kt_content,
#kt_header_container {
    padding-left: 10px !important;
    padding-right: 10px !important;
}

@media (min-width: 992px) {
    .aside {
        left: 10px;
        top: 10px;
        bottom: 10px;
        width: 250px;
    }

    .wrapper {
        padding-left: 270px;
        padding-top: 10px;
    }
}

.card > .card-header {
    min-height: 50px;
    padding-left: 20px;
    padding-right: 20px;
}

.card > .card-body {
    padding: 20px;
}

.card > .card-footer {
    padding-left: 20px;
    padding-right: 20px;
}

.form-control,
.form-select,
.ss-main,
.ss-select {
    border-radius: 0.25rem !important;
}

.border-form {
    border-color: #E4E6EF !important;
}

.ss-main .ss-values {
    flex-wrap: nowrap;
    overflow: hidden;
}

.ss-main .ss-values .ss-single,
.ss-main .ss-values .ss-placeholder {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Form layout utilities */
.form-content-area { max-width: 1260px; width: 100%; }
.form-sidebar { width: 320px; flex-shrink: 0; }
.form-sidebar-content { max-width: 320px; }
.h-fit { height: fit-content; }
.w-80px { width: 80px; }
.w-160px { width: 160px; flex-shrink: 0; }
.grid-cols-2 { display: grid; grid-template-columns: repeat(2, 1fr); }
.grid-cols-3 { display: grid; grid-template-columns: repeat(3, 1fr); }

/* Scrollable list container (used in SweetAlert popups) */
.swal-scrollable-list { max-height: 200px; overflow-y: auto; text-align: left; }

/* Workflow history timeline */
.wf-timeline-row { display: flex; gap: 12px; }
.wf-timeline-dot-col { display: flex; flex-direction: column; align-items: center; flex-shrink: 0; width: 12px; }
.wf-timeline-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; margin-top: 3px; }
.wf-timeline-line { width: 1px; flex: 1; background: #e4e6ef; margin-top: 4px; }
.wf-timeline-content { flex: 1; min-width: 0; }
.wf-timeline-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 2px; }
.wf-timeline-action { font-size: 12px; font-weight: 600; }
.wf-timeline-time { font-size: 11px; color: #a1a5b7; }
.wf-timeline-user { font-size: 11px; color: #7e8299; margin-bottom: 4px; }
.wf-timeline-change { font-size: 11px; color: #5e6278; padding: 1px 0; }

/* ─────────────────────────────────────────────────────────────────────────
   Compact form-control sizing (project-wide)
   Default form controls render at the legacy "-sm" size.
   .form-control-sm / .form-select-sm now render even smaller (an xs tier).
   See docs/ui-scope/03-forms.md
   ───────────────────────────────────────────────────────────────────────── */
.form-control,
.form-select,
.ss-main,
.ss-select:not(.ss-main):not(.ss-content) {
    padding-top: 0.55rem !important;
    padding-bottom: 0.55rem !important;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    font-size: 0.925rem !important;
    line-height: 1.5 !important;
}
/* Match the SlimSelect box height to the plain .form-control inputs beside it:
   line-height (1.5em) + vertical padding (2×0.55rem) + border (2px). */
.ss-main {
    min-height: calc(1.5em + 1.1rem + 2px) !important;
    align-items: center;
}
/* SlimSelect v4's .ss-values wrapper carries ~3px vertical padding, which makes it 24px
   tall (vs the 18px line) and pushes .ss-main ~6px past the .form-control beside it.
   Zero it so the box matches the inputs exactly. */
.ss-main .ss-values {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
.ss-main .ss-values .ss-placeholder,
.ss-main .ss-values .ss-single {
    font-size: 0.925rem !important;
    line-height: 1.5 !important;
    padding: 0 !important;
}
.ss-option {
    padding: 0.5rem 1rem !important;
    font-size: 0.925rem !important;
}
.ss-search {
    padding: 0.75rem 1rem 0.5rem 1rem !important;
}
.input-group-text {
    padding-top: 0.55rem !important;
    padding-bottom: 0.55rem !important;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    font-size: 0.925rem !important;
}

/* xs tier — tighter than default; used for toolbars, dense tables, in-row pickers */
.form-control-sm,
.form-select-sm {
    padding-top: 0.35rem !important;
    padding-bottom: 0.35rem !important;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    font-size: 0.85rem !important;
    line-height: 1.5 !important;
}

/* ─────────────────────────────────────────────────────────────────────────
   Input with a leading icon (project-wide component)

   Usage:
     <div class="input-icon">
         <i class="ra-search fs-3"></i>
         <input type="text" class="form-control" placeholder="Search…">
     </div>

   Works with .form-control, .form-select, .ss-main (SlimSelect).
   Supports <i>, <svg>, .svg-icon, and <img> as the icon element.
   ───────────────────────────────────────────────────────────────────────── */
.input-icon {
    position: relative;
}
.input-icon > i,
.input-icon > svg,
.input-icon > .svg-icon,
.input-icon > img {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: #868b9e;
    fill: currentColor;
    pointer-events: none;
    z-index: 2;
}
.input-icon > .form-control,
.input-icon > .form-select,
.input-icon > .ss-main,
.input-icon > .ss-select {
    padding-left: 3rem !important;
}

/* ─────────────────────────────────────────────────────────────────────────
   Compact button sizing (project-wide)
   Mirrors .form-control above so .btn / .btn-icon align vertically with
   inputs on the same row (search + filter + Add toolbar pattern).
   Height tiers (root font-size 13px in this theme):
     .btn      ≈ 34px   (matches .form-control)
     .btn-sm   ≈ 28px   (matches .form-control-sm)
     .btn-lg   ≈ 42px   (was ~52px)

   The +1px on padding-y mirrors Metronic's compensation for the border
   it strips from solid buttons (.btn:not(.btn-outline)... rule) so a
   borderless .btn lines up with a 1px-bordered .form-control.

   min-height: 0 !important overrides the .min-h-40px utility hard-baked
   into the 6 base button component defaults — that utility was set to
   40px and now dominates the natural compact height.
   See docs/ui-scope/03-forms.md
   ───────────────────────────────────────────────────────────────────────── */

/* Default tier — matches .form-control */
.btn:not(.btn-link):not(.btn-sm):not(.btn-lg) {
    font-size: 0.925rem !important;
    line-height: 1.5 !important;
}
.btn:not(.btn-link):not(.btn-icon):not(.btn-sm):not(.btn-lg) {
    padding-top: calc(0.55rem + 1px) !important;
    padding-bottom: calc(0.55rem + 1px) !important;
    padding-left: 1rem;
    padding-right: 1rem;
    min-height: 0 !important;
}
.btn.btn-icon:not(.btn-sm):not(.btn-lg) {
    height: calc(1.5em + 1.1rem + 2px) !important;
    width:  calc(1.5em + 1.1rem + 2px) !important;
}

/* xs tier — matches .form-control-sm */
.btn-sm:not(.btn-link),
.btn-group-sm > .btn:not(.btn-link) {
    font-size: 0.85rem !important;
    line-height: 1.5 !important;
}
.btn-sm:not(.btn-link):not(.btn-icon),
.btn-group-sm > .btn:not(.btn-link):not(.btn-icon) {
    padding-top: calc(0.35rem + 1px) !important;
    padding-bottom: calc(0.35rem + 1px) !important;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    min-height: 0 !important;
}
.btn.btn-icon.btn-sm,
.btn-group-sm > .btn.btn-icon {
    height: calc(1.5em + 0.7rem + 2px) !important;
    width:  calc(1.5em + 0.7rem + 2px) !important;
}

/* lg tier — was ~52px, now ~42px (still clearly larger than default) */
.btn-lg:not(.btn-link),
.btn-group-lg > .btn:not(.btn-link) {
    font-size: 1.05rem !important;
    line-height: 1.5 !important;
}
.btn-lg:not(.btn-link):not(.btn-icon),
.btn-group-lg > .btn:not(.btn-link):not(.btn-icon) {
    padding-top: calc(0.75rem + 1px) !important;
    padding-bottom: calc(0.75rem + 1px) !important;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    min-height: 0 !important;
}
.btn.btn-icon.btn-lg,
.btn-group-lg > .btn.btn-icon {
    height: calc(1.5em + 1.4rem + 2px) !important;
    width:  calc(1.5em + 1.4rem + 2px) !important;
}

/* ─────────────────────────────────────────────────────────────────────────
   Compact modal sizing (project-wide)
   Bootstrap 5.1.3 defaults waste ~28px on every side of header/body and
   24px on the footer. Aligned with the project's card spacing (20px) and
   the compact form-control sizing above.
   ───────────────────────────────────────────────────────────────────────── */
.modal-header {
    padding: 1rem 1.25rem !important;
}
.modal-header .btn-close {
    padding: 0.75rem !important;
    margin: -0.75rem -0.75rem -0.75rem auto !important;
}
.modal-body {
    padding: 1.25rem !important;
}
.modal-footer {
    padding: 0.75rem 1.25rem !important;
}
.modal-footer > * {
    margin: 0.15rem !important;
}

/* Date-picker inputs (the shared "Select date" placeholder convention) show a calendar
   icon and a pointer cursor so it's clear the field expects a picked date. Applied
   app-wide so every date input reads the same (file case, property, listings, etc.). */
input[placeholder="Select date"] {
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23a1a5b7'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='3'%20y='4'%20width='18'%20height='18'%20rx='2'%20ry='2'/%3E%3Cline%20x1='16'%20y1='2'%20x2='16'%20y2='6'/%3E%3Cline%20x1='8'%20y1='2'%20x2='8'%20y2='6'/%3E%3Cline%20x1='3'%20y1='10'%20x2='21'%20y2='10'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.85rem center;
    background-size: 1rem 1rem;
    padding-right: 2.5rem;
    cursor: pointer;
}

/* A SlimSelect sharing a Bootstrap input-group (e.g. Mukim type + Mukim, or a
   value + unit pair) is a .ss-main div, not a .form-control, so Bootstrap doesn't
   flex it. Let it grow to fill the row; a fixed member keeps its size because
   SlimSelect copies the <select>'s inline max-width onto .ss-main. */
.input-group > .ss-main {
    flex: 1 1 auto;
    width: 1%;
}
