html, body {
    font-family: 'Inter', Helvetica, Arial, sans-serif;
    height: 100%;
    margin: 0;
}

#app {
    display: flex;
    flex-direction: column;
    height: 100%;
}

#content {
    flex: 1 0 auto; /* This will push the footer to the bottom */
}

footer {
    flex-shrink: 0; /* Ensures that the footer does not shrink */
    padding: 10px 20px; /* Padding for aesthetics */
    text-align: center; /* Center the footer content */
    margin-top: 2rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: none;
}

/* Cloud Theory CSS */

/* Height + Width Helpers */

.h-8q {
    height: 2rem;
}

.w-1 {
    width: 1%;
}

w-5 {
    width: 5%;
}

.w-10 {
    width: 10%;
}

.w-7 {
    width: 7%;
}

.p-6em {
    padding: 6em;
}

@media (max-width: 1000px) {
    .p-6em {
        padding: 3em;
    }
}

:root {
    --primary-text-color: #343A40;
    --primary-bg-color: #343A40;
}

.modal-80 {
    width: 80vw;
    max-width: none;
    height: 80vh;
}

.modal-90 {
    width: 90vw;
    max-width: none;
    height: 90vh;
}

.alias {
    cursor: alias;
}

.all-scroll {
    cursor: all-scroll;
}

.auto {
    cursor: auto;
}

.cell {
    cursor: cell;
}

.col-resize {
    cursor: col-resize;
}

.context-menu {
    cursor: context-menu;
}

.copy {
    cursor: copy;
}

.crosshair {
    cursor: crosshair;
}

.default {
    cursor: default;
}

.e-resize {
    cursor: e-resize;
}

.ew-resize {
    cursor: ew-resize;
}

.grab {
    cursor: grab;
}

.grabbing {
    cursor: grabbing;
}

.help {
    cursor: help;
}

.move {
    cursor: move;
}

.n-resize {
    cursor: n-resize;
}

.ne-resize {
    cursor: ne-resize;
}

.nesw-resize {
    cursor: nesw-resize;
}

.ns-resize {
    cursor: ns-resize;
}

.nw-resize {
    cursor: nw-resize;
}

.nwse-resize {
    cursor: nwse-resize;
}

.no-drop {
    cursor: no-drop;
}

.none {
    cursor: none;
}

.not-allowed {
    cursor: not-allowed;
}

.pointer {
    cursor: pointer;
}

.progress {
    cursor: progress;
}

.row-resize {
    cursor: row-resize;
}

.s-resize {
    cursor: s-resize;
}

.se-resize {
    cursor: se-resize;
}

.sw-resize {
    cursor: sw-resize;
}

.text {
    cursor: text;
}

.url {
    cursor: url(myBall.cur),auto;
}

.w-resize {
    cursor: w-resize;
}

.wait {
    cursor: wait;
}

.zoom-in {
    cursor: zoom-in;
}

.zoom-out {
    cursor: zoom-out;
}

.max-w-10rem {
    max-width: 10rem;
}

.max-w-20rem {
    max-width: 20rem;
}

.min-h-300 {
    min-height: 300px;
}

.min-h-400 {
    min-height: 400px;
}

.min-h-500 {
    min-height: 500px;
}

.min-w-250 {
    min-width: 250px;
}

.min-w-225 {
    min-width: 225px;
}

.min-w-200 {
    min-width: 200px;
}

.min-w-90 {
    min-width: 90px;
}

.min-w-0 {
    min-width: 0;
}

.justify-items-left {
    justify-items: left;
}

.justify-items-right {
    justify-items: right;
}

.justify-items-center {
    justify-items: center;
}

.justify-items-baseline {
    justify-items: baseline;
}

.trend-up {
    color: #08825D;
}

.trend-none {
    color: #fdae2a;
}

.trend-down {
    color: #B02A37;
}

.truncated-flex-text {
    flex-grow: 1;
    flex-shrink: 1; /* Allows the title to shrink if necessary */
    text-align: center;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    max-width: 85vw;
}

.invisible {
    visibility: hidden;
}

@media (max-width: 1000px) {
    .mobile-min-height-400 {
        min-height: 400px;
    }
}

.modal form {
    height: 100%;
}

.booking-date {
    font-weight: bold; /* Makes the date bold */
}

.booking-info {
    display: flex; /* Uses flexbox for layout */
    justify-content: space-between; /* Spreads content across the line */
    align-items: center; /* Centers items vertically */
}

div.sticky-header .k-grid-aria-root {
    overflow: visible;
}

.card-header .sticky-card-header {
    position: sticky;
    top: 0px;
    z-index: 6;
    border-collapse: separate;
}

.sticky-header .k-grid-header {
    position: sticky;
    top: 0px;
    z-index: 5;
    border-collapse: separate;
}

.sticky-scroll-wrapper {
    position: sticky;
    top: 0px;
    z-index: 4;
    border: none;
    overflow-x: scroll;
}

.sticky-scroll {
    position: sticky;
    top: 0px;
    z-index: 3;
    border: none;
    height: 1px;
    height: 1px;
}

.k-grid .micro-bold-grid-header {
    font-size: 0.8rem;
    font-weight: 600;
}

.k-grid .micro-grid-content {
    font-size: 0.8rem;
    font-weight: normal;
    line-height: 16px;
    border-left: 0px;
    border-right: 0px;
}

.k-grid .micro-bold-grid-content {
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 16px;
}

.k-grid .micro-bold-grid-content {
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 16px;
}

.no-scroll .k-grid-content {
    overflow-y: hidden;
    text-overflow: ellipsis;
}

.no-scroll .k-grid-header {
    padding-bottom: 0 !important;
}

.no-scroll .k-grid-header-wrap {
    border-width: 0px !important;
}

.k-pager-nav {
    padding: 1px;
}

.k-pager-info {
    font-size: 0.75rem !important;
}

.scroll-to-top {
    z-index: 999;
}

.kpi-grid-sized {
    max-height: 600px;
    overflow-y: hidden;
    border-left: none;
    border-right: none;
}

.page-header-fixed-top {
    margin-top: 70px; /* Height of navbar */
}

.external-link {
    color: inherit;
    font-weight: bold;
}

/* Hide middle navbar on Billing Signup */
.right .navbar-middle {
    display: none !important;
}

/* Utilities Expansion for Widths */

/* Small devices (?576px) */
@media (min-width: 576px) {
    .w-sm-25 {
        width: 25% !important;
    }

    .w-sm-50 {
        width: 50% !important;
    }

    .w-sm-75 {
        width: 75% !important;
    }

    .w-sm-100 {
        width: 100% !important;
    }
}

/* Medium devices (?768px) */
@media (min-width: 768px) {
    .w-md-25 {
        width: 25% !important;
    }

    .w-md-35 {
        width: 35% !important;
    }

    .w-md-50 {
        width: 50% !important;
    }

    .w-md-75 {
        width: 75% !important;
    }

    .w-md-100 {
        width: 100% !important;
    }
}

/* Large devices (?992px) */
@media (min-width: 992px) {
    .w-lg-25 {
        width: 25% !important;
    }

    .w-lg-50 {
        width: 50% !important;
    }

    .w-lg-75 {
        width: 75% !important;
    }

    .w-lg-100 {
        width: 100% !important;
    }
}

/* Extra large devices (?1200px) */
@media (min-width: 1200px) {
    .w-xl-25 {
        width: 25% !important;
    }

    .w-xl-50 {
        width: 50% !important;
    }

    .w-xl-75 {
        width: 75% !important;
    }

    .w-xl-100 {
        width: 100% !important;
    }
}

/* Extra extra large devices (?1400px) */
@media (min-width: 1400px) {
    .w-xxl-25 {
        width: 25% !important;
    }

    .w-xxl-50 {
        width: 50% !important;
    }

    .w-xxl-75 {
        width: 75% !important;
    }

    .w-xxl-100 {
        width: 100% !important;
    }
}

/* Toast Alert */

.system-notifications {
    max-width: 1400px;
    width: 100%;
}

    .system-notifications > .toast {
        width: 100%;
    }

/* SSR Styles */

.require-digit,
.require-length,
.require-lowercase,
.require-special,
.require-uppercase {
    display: flex;
}

.require-icon {
    height: 1rem;
    margin-right: .25rem;
    width: 1rem;
}

.require-default-icon {
    zoom: 25%;
    top: -12px;
    left: 20px;
    position: relative;
    opacity: 50%;
}

.require-icon i:nth-child(1) {
    display: none;
}

.require-icon.is-valid i:nth-child(1) {
    display: inline-block;
}

.require-icon.is-valid i:nth-child(2) {
    display: none;
}

.fa-stack-6q {
    font-size: 1.5em;
}

.dropdown-toggle.hide-dropdown-toggle-after::after {
    display: none;
}

/* Dark Theme */

.theme-dark .fa-primary-color-base {
    --fa-primary-color: #000;
    --fa-secondary-opacity: 1;
}

/* Light Theme */

.theme-light .fa-primary-color-base {
    --fa-primary-color: #fff;
    --fa-secondary-opacity: 1;
}

/* Dashboard Swiper Custom CSS */

.dashboard-swiper .swiper-pagination {
    text-align: center;
    position: static; /* Adjust if needed */
    width: 100%;
    padding: 6px 0 0 0;
}

.dashboard-swiper .swiper-pagination-bullet {
    display: inline-block;
    width: 40px; /* Width of the bar */
    height: 5px; /* Height of the bar */
    background-color: var(--bs-dark-bg-subtle); /* Default color, overridden by Bootstrap classes */
    border-radius: 1px;
}

.dashboard-swiper .swiper-pagination-bullet-active {
    background-color: var(--bs-dark); /* Active color, use Bootstrap class if needed */
}

/* Image Carousel Swiper Custom CSS */

.image-swiper {
    width: 100%;
    height: 100%;
}

    .image-swiper .swiper-slide:has(.swiper-lazy-preloader) .swiper-loading-overlay {
        position: absolute;
        bottom: 0;
        width: 100%;
        height: 100%;
        opacity: 1;
        backdrop-filter: blur(8px);
        z-index: 9;
        border-radius: 4px;
        display: block;
    }

    .image-swiper .swiper-slide .swiper-loading-overlay {
        display: none;
    }

    .image-swiper .swiper-lazy-preloader {
        background: var(--bs-body-bg);
        display: flex;
        justify-content: center;
        align-items: center;
        width: 42px;
        height: 42px;
        position: absolute;
        left: 50%;
        top: 50%;
        margin-left: -21px;
        margin-top: -21px;
        z-index: 20; /* Higher than overlay */
        transform-origin: 50%;
        box-sizing: border-box;
        border: 4px solid var(--bs-dark, var(--bs-light-bg-subtle));
        border-radius: 50%;
        border-top-color: transparent;
    }

    .image-swiper .swiper-slide img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .image-swiper .swiper-button-prev,
    .image-swiper .swiper-button-next {
        background-image: none !important;
        background: none;
        color: var(--bs-light);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 26px;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.3s ease;
    }

    .image-swiper:hover .swiper-button-prev:not(.swiper-button-disabled),
    .image-swiper:hover .swiper-button-next:not(.swiper-button-disabled) {
        opacity: 1;
        pointer-events: auto;
    }

    .image-swiper .swiper-button-prev:hover,
    .image-swiper .swiper-button-next:hover {
        opacity: 1;
    }

    .image-swiper .swiper-button-disabled {
        opacity: 0;
        transition: opacity 0.3s ease;
    }

    .image-swiper .swiper-button-prev, .image-swiper .swiper-rtl .swiper-button-next {
        left: var(--swiper-navigation-sides-offset, 4px);
        right: auto;
    }

    .image-swiper .swiper-button-next, .image-swiper .swiper-rtl .swiper-button-prev {
        right: var(--swiper-navigation-sides-offset, 4px);
        left: auto;
    }

    .image-swiper .swiper-button-prev::before {
        font-family: "Font Awesome 5 Pro";
        content: "\f32e";
    }

    .image-swiper .swiper-button-next::before {
        font-family: "Font Awesome 5 Pro";
        content: "\f330";
    }

    .image-swiper .swiper-button-prev:hover::before,
    .image-swiper .swiper-button-next:hover::before {
        opacity: 1;
    }

    .image-swiper .swiper-button-next:after,
    .image-swiper .swiper-button-prev:after {
        content: '';
        font-family: "Font Awesome 5 Pro";
        display: inline-block;
        text-transform: none;
        line-height: 1;
    }

    .image-swiper .swiper-button-prev:after {
        content: '';
    }

    .image-swiper .swiper-button-next:after {
        content: '';
    }

    .image-swiper .swiper-pagination-bullet {
        background-color: var(--bs-dark);
        opacity: 0.9;
    }

    .image-swiper .swiper-pagination-bullet-active {
        background-color: var(--bs-light-bg-subtle);
        box-shadow: 1px;
        opacity: 1;
    }

/* Stacked Images: Cannot be scoped when mixed with other components */

.marketing-opp-text {
    background: linear-gradient(90deg, #0089F2 0%, #EB01B5 68%, #F06400 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-fill-color: transparent;
}

.thumbnail-stack {
    display: flex;
    align-items: center;
}

    .thumbnail-stack > div:nth-child(n+2) {
        margin-left: -32px;
    }

    .thumbnail-stack > div {
        position: relative;
        z-index: 1;
        transition: z-index 0s, transform 0.2s ease-in-out;
    }

        .thumbnail-stack > div:hover {
            z-index: 10;
        }

.stacked-img {
    width: 120px;
    height: 100%;
    object-fit: cover;
    transition: transform 0.2s ease-in-out;
}

    .stacked-img:hover {
        transform: scale(1.2);
    }

@media (max-width: 768px) {
    .stacked-img {
        width: 80px;
    }
}


@media (max-width: 768px) {
    .stat-card {
        flex: 1 1 100%;
        max-width: 100% !important;
    }
}

@media (min-width: 768px) {
    .stat-card {
        min-width: 200px;
    }
}
