/*
|--------------------------------------------------------------------------
| SEFT Banking R18 — long brand-name and deep responsive containment
|--------------------------------------------------------------------------
| Loaded after the cumulative interface styles. This layer prevents long
| installer/site names, customer data and operational labels from widening
| headers, sidebars, cards, loaders, tables or mobile pages.
*/

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

body {
    overflow-x: hidden;
}

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

.gb-public-nav,
.gb-public-header .gb-container,
.gb-app-shell,
.sft-app-shell,
.gb-app-main,
.sft-app-main,
.gb-app-content,
.sft-app-content,
.gb-content-inner,
.sft-content-inner,
.main-panel,
.content,
.card,
.card-body,
.modal-content,
.dropdown-menu,
.table-responsive {
    min-width: 0;
}

.sft-brand,
.gb-brand {
    display: inline-flex !important;
    align-items: center !important;
    flex: 0 1 auto !important;
    min-width: 0 !important;
    max-width: min(100%, 330px) !important;
    overflow: hidden !important;
    gap: 10px !important;
    text-decoration: none !important;
}

.sft-brand-logo-image,
.gb-brand-logo-image {
    display: grid !important;
    place-items: center !important;
    flex: 0 0 auto !important;
    min-width: 0 !important;
    max-width: 190px !important;
    overflow: hidden !important;
}

.sft-brand-logo-image.is-custom {
    max-width: 210px !important;
}

.sft-brand-logo-image.sft-brand-mark-image,
.sft-brand.has-generated-logo .sft-brand-logo-image {
    width: 44px !important;
    height: 44px !important;
    max-width: 44px !important;
    border-radius: 12px !important;
    overflow: hidden !important;
}

.sft-brand-logo-image img,
.gb-brand-logo-image img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 52px !important;
    object-fit: contain !important;
    object-position: left center !important;
}

.sft-brand-logo-image.sft-brand-mark-image img,
.sft-brand.has-generated-logo .sft-brand-logo-image img {
    width: 44px !important;
    height: 44px !important;
    max-width: 44px !important;
    max-height: 44px !important;
    object-fit: contain !important;
}

.sft-brand-fallback-mark {
    display: grid;
    place-items: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--gb-primary, #075fd8);
    color: #fff;
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: .04em;
}

.sft-brand-copy,
.gb-brand-copy {
    display: grid !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: 260px !important;
    overflow: hidden !important;
    line-height: 1.12 !important;
}

.sft-brand-copy strong,
.gb-brand-copy strong {
    display: block !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    color: inherit !important;
    font-size: clamp(.76rem, 1vw, .94rem) !important;
    font-weight: 850 !important;
    line-height: 1.18 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.sft-brand-copy small,
.gb-brand-copy small {
    display: block !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-top: 3px !important;
    overflow: hidden !important;
    color: var(--gb-muted, #617086) !important;
    font-size: .58rem !important;
    font-weight: 700 !important;
    letter-spacing: .045em !important;
    text-overflow: ellipsis !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
}

.sft-brand-compact {
    width: 44px !important;
    max-width: 44px !important;
    gap: 0 !important;
}

.gb-public-nav > .sft-brand {
    flex: 0 1 280px !important;
    max-width: 280px !important;
}

.gb-public-nav > .sft-brand.has-custom-logo {
    flex-basis: 210px !important;
    max-width: 210px !important;
}

.gb-public-menu,
.gb-public-actions {
    min-width: 0 !important;
}

.gb-public-menu a,
.gb-public-actions a,
.gb-mobile-panel a {
    overflow-wrap: anywhere;
}

.gb-public-footer .sft-brand {
    max-width: 360px !important;
    color: #fff !important;
}

.gb-public-footer .sft-brand-copy {
    max-width: 290px !important;
}

.gb-public-footer .sft-brand-copy small {
    color: rgba(255, 255, 255, .68) !important;
}

.sft-admin-side-brand,
.sft-sidebar-brand {
    gap: 10px !important;
    min-width: 0 !important;
}

.sft-admin-side-brand .sft-brand,
.bank-native-sidebar .sft-brand,
.sft-app-sidebar .sft-brand,
.gb-app-sidebar .sft-brand {
    display: inline-flex !important;
    flex: 1 1 auto !important;
    width: auto !important;
    max-width: calc(100% - 48px) !important;
    overflow: hidden !important;
}

.sft-admin-side-brand .sft-brand-logo-image.sft-brand-mark-image,
.bank-native-sidebar .sft-brand-logo-image.sft-brand-mark-image,
.sft-app-sidebar .sft-brand-logo-image.sft-brand-mark-image {
    width: 42px !important;
    height: 42px !important;
    max-width: 42px !important;
}

.sft-admin-side-brand .sft-brand-logo-image.sft-brand-mark-image img,
.bank-native-sidebar .sft-brand-logo-image.sft-brand-mark-image img,
.sft-app-sidebar .sft-brand-logo-image.sft-brand-mark-image img {
    width: 42px !important;
    height: 42px !important;
    max-width: 42px !important;
    max-height: 42px !important;
}

.sft-admin-side-brand .sft-brand-copy,
.bank-native-sidebar .sft-brand-copy,
.sft-app-sidebar .sft-brand-copy,
.gb-app-sidebar .sft-brand-copy {
    max-width: calc(100% - 52px) !important;
}

.sft-admin-side-brand .sft-brand-copy strong,
.bank-native-sidebar .sft-brand-copy strong,
.sft-app-sidebar .sft-brand-copy strong,
.gb-app-sidebar .sft-brand-copy strong {
    color: #fff !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
}

.sft-admin-side-brand .sft-brand-copy small,
.bank-native-sidebar .sft-brand-copy small,
.sft-app-sidebar .sft-brand-copy small,
.gb-app-sidebar .sft-brand-copy small {
    color: rgba(255, 255, 255, .68) !important;
}

.bank-card-brand {
    max-width: 100% !important;
    overflow: hidden !important;
}

.bank-card-brand-copy {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: calc(100% - 38px) !important;
    overflow: hidden !important;
}

.bank-card-brand-copy strong,
.bank-card-brand-copy small {
    display: block !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.bank-page-loader {
    contain: layout paint;
}

.bank-page-loader.is-complete,
.bank-page-loader[aria-hidden="true"] {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

.bank-page-loader__panel {
    grid-template-columns: 72px minmax(0, 1fr) !important;
    max-width: calc(100vw - 28px) !important;
}

.bank-page-loader__copy {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
}

.bank-page-loader__copy strong {
    display: -webkit-box !important;
    max-width: 100% !important;
    overflow: hidden !important;
    font-size: clamp(.86rem, 3.5vw, 1rem) !important;
    line-height: 1.25 !important;
    overflow-wrap: anywhere !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
}

.bank-page-loader__copy small,
.bank-loader-kicker,
.bank-page-loader__security span {
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.gb-page-heading,
.sft-page-heading,
.sft-admin-profile-copy,
.sft-admin-user-copy,
.gb-topbar-user-copy,
.sft-topbar-user-copy,
.bank-admin-page-head,
.bank-auth-copy,
.gb-auth-copy {
    min-width: 0 !important;
}

.gb-page-heading strong,
.sft-page-heading strong,
.sft-admin-profile-copy strong,
.sft-admin-user-copy strong,
.gb-topbar-user-copy strong,
.sft-topbar-user-copy strong,
.bank-admin-page-head h1,
.bank-admin-page-head h2,
.card-title,
.modal-title,
.alert,
.notification,
.toast,
.dropdown-item,
.table td,
.table th {
    overflow-wrap: anywhere;
    word-break: normal;
}

.gb-footer-bottom,
.sft-footer-bottom,
.gb-app-footer,
.sft-app-footer,
.footer {
    overflow-wrap: anywhere;
}

.table-responsive,
.bank-responsive-table {
    width: 100%;
    max-width: 100%;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
}

.table {
    width: 100% !important;
    max-width: 100% !important;
}

.form-control,
.form-select,
.custom-select,
.select2-container,
.input-group,
.input-group > *,
textarea,
input,
select {
    min-width: 0 !important;
    max-width: 100%;
}

.modal-dialog {
    width: auto;
    max-width: min(720px, calc(100vw - 24px)) !important;
    margin-right: auto !important;
    margin-left: auto !important;
}

.dropdown-menu {
    max-width: min(360px, calc(100vw - 24px)) !important;
}

@media (max-width: 1240px) {
    .gb-public-nav > .sft-brand {
        flex-basis: 230px !important;
        max-width: 230px !important;
    }

    .gb-public-nav > .sft-brand .sft-brand-copy {
        max-width: 172px !important;
    }

    .gb-public-menu {
        gap: 12px !important;
    }
}

@media (max-width: 991.98px) {
    .gb-public-nav > .sft-brand {
        flex: 1 1 auto !important;
        max-width: calc(100% - 58px) !important;
    }

    .gb-public-nav > .sft-brand.has-custom-logo {
        max-width: calc(100% - 58px) !important;
    }

    .gb-public-nav > .sft-brand .sft-brand-copy {
        max-width: calc(100vw - 145px) !important;
    }

    .sft-admin-side-brand .sft-brand,
    .bank-native-sidebar .sft-brand,
    .sft-app-sidebar .sft-brand,
    .gb-app-sidebar .sft-brand {
        max-width: calc(100% - 52px) !important;
    }
}

@media (max-width: 560px) {
    .sft-brand-logo-image.sft-brand-mark-image,
    .sft-brand.has-generated-logo .sft-brand-logo-image,
    .sft-brand-fallback-mark {
        width: 38px !important;
        height: 38px !important;
        max-width: 38px !important;
        flex-basis: 38px !important;
        border-radius: 10px !important;
    }

    .sft-brand-logo-image.sft-brand-mark-image img,
    .sft-brand.has-generated-logo .sft-brand-logo-image img {
        width: 38px !important;
        height: 38px !important;
        max-width: 38px !important;
        max-height: 38px !important;
    }

    .sft-brand-copy strong {
        font-size: .78rem !important;
    }

    .sft-brand-copy small {
        font-size: .5rem !important;
    }

    .bank-page-loader__panel {
        grid-template-columns: 56px minmax(0, 1fr) !important;
        gap: 12px !important;
        width: calc(100vw - 24px) !important;
        padding: 17px !important;
    }

    .bank-page-loader__mark,
    .bank-page-loader__mark svg {
        width: 56px !important;
        height: 56px !important;
    }

    .bank-loader-kicker {
        letter-spacing: .08em !important;
    }

    .gb-footer-bottom,
    .sft-footer-bottom {
        align-items: flex-start !important;
        flex-direction: column !important;
    }
}
