body.bm-app,
body.bm-guest {
    background: #f4f6f8;
}

.bm-app .navbar-vertical {
    border-right: 1px solid rgba(98, 105, 118, .16);
    box-shadow: none;
}

.bm-app .navbar-vertical .navbar-brand {
    min-height: 3.5rem;
    font-size: 1rem;
    letter-spacing: 0;
}

.bm-app .navbar-vertical .nav-link {
    margin: .125rem .5rem;
    border-radius: 4px;
    padding: .5rem .75rem;
}

.bm-app .navbar-vertical .nav-link-icon {
    opacity: .82;
}

.bm-app .navbar-vertical .nav-item.active .nav-link,
.bm-app .navbar-vertical .nav-link:hover {
    background: rgba(32, 107, 196, .14);
}

.bm-app .page-wrapper > .navbar {
    min-height: 3.25rem;
    border-bottom: 1px solid rgba(98, 105, 118, .16);
    box-shadow: none;
}

.bm-app .page-body {
    margin-top: 1rem;
}

.bm-app .page-header {
    margin: 0 0 .75rem;
}

.bm-app .page-title {
    font-size: 1.15rem;
    line-height: 1.35;
}

.bm-app .page-pretitle {
    margin-bottom: .125rem;
}

.bm-app .card,
.bm-guest .card {
    border-radius: 4px;
    box-shadow: none;
}

.bm-app .card-header {
    min-height: 2.75rem;
    padding: .75rem 1rem;
}

.bm-app .card-body {
    padding: 1rem;
}

.bm-app .card-footer {
    padding: .75rem 1rem;
}

.bm-app .row-cards {
    --tblr-gutter-x: .75rem;
    --tblr-gutter-y: .75rem;
}

.bm-app .table.card-table > :not(caption) > * > * {
    padding: .65rem .75rem;
}

.bm-app .table thead th {
    color: #4b5563;
    font-size: .75rem;
    letter-spacing: 0;
    text-transform: uppercase;
}

.bm-app .form-label {
    margin-bottom: .25rem;
    font-size: .8125rem;
}

.bm-app .btn,
.bm-guest .btn,
.bm-app .form-control,
.bm-app .form-select,
.bm-guest .form-control,
.bm-guest .form-select {
    border-radius: 4px;
}

.bm-filter-card .card-body {
    padding: .75rem;
}

.bm-module-form {
    max-width: 1180px;
}

.bm-module-form .card + .card {
    margin-top: .75rem !important;
}

.bm-module-form .card-header {
    background: #fff;
}

.bm-guest .page-center {
    min-height: 100vh;
}

.bm-guest .navbar-brand {
    font-size: 1.35rem;
    letter-spacing: 0;
}

.bm-guest .card-md .card-body {
    padding: 1.5rem;
}

@media (max-width: 767.98px) {
    .bm-app .page-body {
        margin-top: .75rem;
    }

    .bm-app .card-header,
    .bm-app .card-body {
        padding: .75rem;
    }
}


.bm-payment-calendar .card-subtitle {
    margin-top: .125rem;
}

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

.bm-calendar-table .bm-calendar-cell {
    min-width: 4.75rem;
}

.bm-calendar-table .badge {
    width: 100%;
    justify-content: center;
}


.bm-calendar-pay-trigger {
    cursor: pointer;
    font: inherit;
}

.bm-calendar-pay-trigger:hover {
    filter: brightness(.96);
}

.bm-calendar-empty-trigger {
    cursor: pointer;
    font: inherit;
    border: 1px dashed rgba(98, 105, 118, .35) !important;
}

.bm-calendar-empty-trigger:hover {
    color: var(--tblr-primary) !important;
    background: var(--tblr-primary-lt) !important;
    border-color: rgba(var(--tblr-primary-rgb), .45) !important;
}


.bm-device-subscription-header .bm-service-toggle {
    min-height: 2rem;
}

.bm-device-calendar .card-header {
    background: #fff;
}

.bm-device-calendar .bm-calendar-cell,
.bm-payment-calendar .bm-calendar-cell {
    background: #fbfcfd;
}

.bm-calendar-table .badge,
.bm-calendar-table button.badge {
    min-height: 1.5rem;
}
.bm-sidebar-brand {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
}

.bm-sidebar-logo {
    max-width: 168px;
    max-height: 36px;
    object-fit: contain;
}

.bm-tenant-logo-preview {
    width: 180px;
    min-height: 96px;
    border: 1px dashed rgba(98, 105, 118, .35);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px;
    background: var(--tblr-bg-surface-secondary);
}

.bm-tenant-logo-preview img {
    max-height: 92px;
    object-fit: contain;
}

.bm-tenant-logo-fallback {
    font-weight: 700;
    color: var(--tblr-primary);
}



.bm-footer {
    border-top: 1px solid rgba(98, 105, 118, .16);
    padding-top: .75rem;
    padding-bottom: .75rem;
}

.bm-guest .bm-footer {
    background: transparent;
}


.bm-license-box {
    margin: 1rem .5rem .75rem;
    padding: .75rem;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 6px;
    background: rgba(255, 255, 255, .06);
    color: rgba(255, 255, 255, .92);
}

.bm-license-box .text-secondary {
    color: rgba(255, 255, 255, .62) !important;
}



.bm-sidebar-menu-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-width: 1.55rem;
    height: 1.35rem;
    margin-left: auto;
    padding: 0 .45rem;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .2);
}

.bm-sidebar-alert-badge {
    background: #fef2f2;
    color: #b42318;
    border: 1px solid rgba(180, 35, 24, .18);
}

.bm-app .navbar-vertical .nav-link:hover .bm-sidebar-alert-badge,
.bm-app .navbar-vertical .nav-item.active .bm-sidebar-alert-badge {
    background: #fee4e2;
    color: #912018;
}

.bm-sidebar-submenu {
    margin: .15rem .5rem .35rem 1.1rem;
    padding-left: .35rem;
    border-left: 1px solid rgba(255, 255, 255, .14);
}

.bm-sidebar-submenu .nav-link {
    margin: .08rem 0;
    padding-top: .42rem;
    padding-bottom: .42rem;
    font-size: .86rem;
}


.bm-admin-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
    background: #fff;
}

.bm-admin-pagination-summary {
    color: #667085;
    font-size: .8125rem;
}

.bm-admin-pagination-summary strong {
    color: #344054;
}

.bm-admin-pagination-nav {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    flex-wrap: wrap;
}

.bm-admin-pagination-pages {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
}

.bm-admin-page-link {
    min-width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(98, 105, 118, .24);
    border-radius: 4px;
    color: #344054;
    background: #fff;
    font-size: .8125rem;
    font-weight: 600;
    text-decoration: none;
}

.bm-admin-page-link:hover {
    border-color: rgba(32, 107, 196, .4);
    background: #f5f9ff;
    color: #206bc4;
}

.bm-admin-page-link.active {
    border-color: #206bc4;
    background: #206bc4;
    color: #fff;
}

.bm-admin-page-ellipsis {
    min-width: 1.25rem;
    text-align: center;
    color: #98a2b3;
    font-weight: 700;
}


.bm-bug-row-tenant-report > td {
    background: #fff7ed !important;
}

.bm-bug-row-tenant-report:hover > td {
    background: #ffedd5 !important;
}

.bm-bug-row-fixed > td {
    background: #f0f9f2 !important;
}

.bm-bug-row-open > td {
    background: #fff4f2 !important;
}

.bm-bug-row-ignored > td {
    background: #f8fafc !important;
}

.bm-bug-row-fixed:hover > td,
.bm-bug-row-open:hover > td,
.bm-bug-row-ignored:hover > td {
    filter: brightness(.985);
}

.bm-import-page .page-header {
    margin-bottom: .5rem;
}

.bm-import-console {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 20rem;
    gap: 1rem;
    border: 1px solid rgba(98, 105, 118, .16);
    border-radius: 6px;
    background: #fff;
    padding: 1.25rem;
    position: relative;
    overflow: hidden;
}

.bm-import-console::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: linear-gradient(90deg, #206bc4, #2fb344, #f59f00);
}

.bm-import-console-main,
.bm-import-console-side {
    position: relative;
    z-index: 1;
}

.bm-import-kicker {
    color: var(--tblr-primary);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    margin-bottom: .35rem;
}

.bm-import-console h3 {
    font-size: 1.35rem;
    line-height: 1.3;
    margin: 0 0 .35rem;
}

.bm-import-console p {
    max-width: 48rem;
    color: #667085;
    margin-bottom: .9rem;
}

.bm-import-console-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.bm-import-console-side {
    display: grid;
    gap: .5rem;
}

.bm-import-status-card {
    display: flex;
    align-items: center;
    gap: .65rem;
    border: 1px solid rgba(98, 105, 118, .14);
    border-radius: 6px;
    background: #fbfcfd;
    padding: .75rem;
}

.bm-import-wizard {
    border-color: rgba(32, 107, 196, .18);
}

.bm-import-wizard .card-body {
    padding: 1rem;
}

.bm-import-wizard-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .85rem;
}

.bm-import-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    counter-reset: import-step;
}

.bm-import-step {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    border: 1px solid rgba(98, 105, 118, .14);
    border-radius: 6px;
    background: #fff;
    padding: .9rem;
    min-height: 5.25rem;
    position: relative;
}

.bm-import-step::after {
    content: "";
    position: absolute;
    left: 2.5rem;
    right: -1rem;
    top: 1.9rem;
    border-top: 1px dashed rgba(98, 105, 118, .28);
    z-index: 0;
}

.bm-import-step:last-child::after {
    display: none;
}

.bm-import-step > div,
.bm-import-step-number {
    position: relative;
    z-index: 1;
}

.bm-import-step-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.15rem;
    height: 2.15rem;
    border-radius: 999px;
    background: #eef2f7;
    color: #475467;
    font-weight: 700;
    flex: 0 0 auto;
    box-shadow: 0 0 0 4px #fff;
}

.bm-import-step.is-complete .bm-import-step-number {
    background: rgba(47, 179, 68, .14);
    color: #2fb344;
}

.bm-import-step.is-active {
    border-color: rgba(32, 107, 196, .42);
    background: linear-gradient(180deg, rgba(32, 107, 196, .06), #fff);
}

.bm-import-step.is-active .bm-import-step-number {
    background: var(--tblr-primary);
    color: #fff;
}

.bm-import-upload-card,
.bm-import-spec-card,
.bm-import-preview-card {
    border-color: rgba(98, 105, 118, .16);
}

.bm-import-upload-card .card-header,
.bm-import-spec-card .card-header,
.bm-import-preview-card .card-header {
    background: #fff;
}

.bm-import-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .6rem;
}

.bm-import-column {
    border: 1px solid rgba(98, 105, 118, .14);
    border-radius: 5px;
    background: #fbfcfd;
    padding: .7rem;
    min-height: 4.75rem;
}

.bm-import-column code {
    color: #1f2937;
    background: #eef2f7;
    border-radius: 4px;
    padding: .12rem .32rem;
}

.bm-import-dropzone {
    display: flex;
    min-height: 20rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    border: 2px dashed rgba(32, 107, 196, .78);
    border-radius: 10px;
    background:
        radial-gradient(circle at top, rgba(32, 107, 196, .13), transparent 42%),
        linear-gradient(180deg, rgba(32, 107, 196, .07), rgba(32, 107, 196, .025)),
        #fbfdff;
    color: #1f2937;
    text-align: center;
    padding: 1.75rem;
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease, transform .15s ease, box-shadow .15s ease;
    position: relative;
}

.bm-import-dropzone:hover,
.bm-import-dropzone:focus {
    border-color: var(--tblr-primary);
    background-color: #f8fbff;
    box-shadow: 0 12px 30px rgba(32, 107, 196, .10);
    transform: translateY(-1px);
    outline: none;
}

.bm-import-dropzone-ribbon {
    position: absolute;
    top: .85rem;
    left: .85rem;
    border-radius: 999px;
    background: rgba(32, 107, 196, .12);
    color: var(--tblr-primary);
    font-size: .75rem;
    font-weight: 700;
    padding: .22rem .55rem;
}

.bm-import-dropzone-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4.4rem;
    height: 4.4rem;
    border-radius: 999px;
    background: var(--tblr-primary);
    color: #fff;
    margin-bottom: .35rem;
    box-shadow: 0 10px 24px rgba(32, 107, 196, .25);
}

.bm-import-dropzone-title {
    font-size: 1.15rem;
    font-weight: 800;
}

.bm-import-dropzone-subtitle {
    color: #667085;
    font-size: .9rem;
    max-width: 25rem;
}

.bm-import-dropzone-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    background: var(--tblr-primary);
    color: #fff;
    font-weight: 700;
    padding: .5rem 1rem;
    margin-top: .35rem;
}

.bm-import-file-name {
    margin-top: .4rem;
    border-radius: 999px;
    background: #fff;
    border: 1px solid rgba(98, 105, 118, .18);
    padding: .28rem .75rem;
    color: #4b5563;
    font-size: .8rem;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bm-import-dropzone-help {
    color: #667085;
    font-size: .78rem;
}

.bm-import-upload-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.bm-import-preview-table thead th {
    background: #f8fafc;
}

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

.bm-import-note {
    background: #fff;
}

@media (max-width: 991.98px) {
    .bm-import-console {
        grid-template-columns: 1fr;
    }

    .bm-import-steps {
        grid-template-columns: 1fr;
    }

    .bm-import-step::after {
        display: none;
    }
}

@media (max-width: 767.98px) {
    .bm-import-columns {
        grid-template-columns: 1fr;
    }

    .bm-import-upload-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .bm-import-dropzone {
        min-height: 17rem;
        padding: 1.25rem;
    }
}


/* Global Search */
.bm-global-search {
    position: relative;
    flex: 1 1 420px;
    max-width: 620px;
    margin: 0 1rem;
    z-index: 30;
}

.bm-global-search-toggle {
    display: none;
}

.bm-global-search-box {
    position: relative;
}

.bm-global-search-icon {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: #6c7a91;
    pointer-events: none;
    z-index: 2;
}

.bm-global-search-input {
    padding-left: 2.35rem;
    border-radius: 8px;
    background: #f8fafc;
    border-color: #dbe3ef;
    min-height: 38px;
}

.bm-global-search-input:focus {
    background: #fff;
    border-color: #206bc4;
    box-shadow: 0 0 0 0.18rem rgba(32, 107, 196, 0.12);
}

.bm-global-search-results {
    position: absolute;
    top: calc(100% + 0.5rem);
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid #dbe3ef;
    border-radius: 8px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.18);
    max-height: min(72vh, 560px);
    overflow: auto;
    padding: 0.45rem;
}

.bm-global-search-group + .bm-global-search-group {
    border-top: 1px solid #eef2f7;
    margin-top: 0.35rem;
    padding-top: 0.35rem;
}

.bm-global-search-group-title {
    color: #6c7a91;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.45rem 0.55rem 0.25rem;
    text-transform: uppercase;
}

.bm-global-search-item {
    display: block;
    text-decoration: none;
    color: #1f2937;
    border-radius: 6px;
    padding: 0.55rem 0.65rem;
}

.bm-global-search-item:hover,
.bm-global-search-item.active {
    background: #eef6ff;
    color: #0b4ea2;
}

.bm-global-search-item-title {
    display: block;
    font-weight: 650;
    line-height: 1.25;
}

.bm-global-search-item-subtitle {
    display: block;
    color: #667085;
    font-size: 0.78rem;
    line-height: 1.25;
    margin-top: 0.15rem;
}

.bm-global-search mark {
    background: transparent;
    color: inherit;
    font-weight: 800;
    padding: 0;
}

.bm-global-search-empty {
    color: #667085;
    padding: 1.1rem;
    text-align: center;
}

@media (max-width: 767.98px) {
    .bm-global-search {
        flex: 0 0 auto;
        max-width: none;
        margin: 0 0.35rem 0 auto;
    }

    .bm-global-search-toggle {
        display: inline-flex;
    }

    .bm-global-search-box {
        display: none;
        position: fixed;
        left: 0.75rem;
        right: 0.75rem;
        top: 4.25rem;
        z-index: 1050;
    }

    .bm-global-search.is-open .bm-global-search-box {
        display: block;
    }

    .bm-global-search-results {
        max-height: 68vh;
    }
}


.bm-sidebar-feedback-badge {
    background: linear-gradient(135deg, #2563eb, #0ea5e9);
    color: #fff;
    box-shadow: 0 5px 14px rgba(14, 165, 233, 0.28);
}

/* Boss Changelog */
.bm-changelog-version-card {
    top: 1rem;
    max-height: calc(100vh - 2rem);
    overflow: hidden;
}

.bm-changelog-version-list {
    max-height: calc(100vh - 6.5rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.bm-changelog-version-list .list-group-item {
    min-height: 2.75rem;
}

@media (max-width: 991.98px) {
    .bm-changelog-version-card {
        position: static !important;
        max-height: none;
    }

    .bm-changelog-version-list {
        max-height: 18rem;
    }
}
