.bg-aquamarine {
    background-color: aquamarine;
}

.h-100 {
    height: 100px;
}

.h-150 {
    height: 150px;
}

.h-200 {
    height: 200px;
}

.h-300 {
    height: 300px;
}

.h-max-300 {
    max-height: 300px;
}
.gg-radio-with-badge {
    position: relative;
    display: inline-block;
    /* space to the right so the tape doesn't overlap the radio control */
    padding-right: 2.25rem;
}

.gg-beta-tape {
    position: absolute;
    top: -0.8rem;
    right: -1.6rem;
    width: 60px; /* scale as needed */
    height: auto;
    pointer-events: none;
    display: block;
}
/* fine-tune for small screens */
@media (max-width: 480px) {
    .gg-beta-tape {
        width: 40px;
        top: -0.35rem;
        right: -0.1rem;
    }
}

/* Plugin / marketplace anonymous flow — mobile safe areas and fixed footers */

:root {
    --plugin-fixed-bar-height: 56px;
    --plugin-safe-top: env(safe-area-inset-top, 0px);
    --plugin-safe-bottom: env(safe-area-inset-bottom, 0px);
    --plugin-safe-left: env(safe-area-inset-left, 0px);
    --plugin-safe-right: env(safe-area-inset-right, 0px);
    --plugin-fixed-bar-total: calc(var(--plugin-fixed-bar-height) + var(--plugin-safe-bottom));
    --plugin-scroll-padding-bottom: calc(var(--plugin-fixed-bar-total) + 16px);
}

.gg_plugin_main {
    padding-left: calc(20px + var(--plugin-safe-left));
    padding-right: calc(20px + var(--plugin-safe-right));
    padding-bottom: calc(24px + var(--plugin-safe-bottom));
}

.gg_plugin_header_skeleton {
    padding-top: calc(20px + var(--plugin-safe-top));
    padding-left: calc(20px + var(--plugin-safe-left));
    padding-right: calc(20px + var(--plugin-safe-right));
}

.gg_plugin_header_inner {
    padding-top: calc(20px + var(--plugin-safe-top));
    padding-left: calc(20px + var(--plugin-safe-left));
    padding-right: calc(20px + var(--plugin-safe-right));
}

.gg_plugin_footer_inner {
    padding-left: calc(20px + var(--plugin-safe-left));
    padding-right: calc(20px + var(--plugin-safe-right));
    padding-bottom: calc(24px + var(--plugin-safe-bottom));
}

.checkout-page {
    padding-left: calc(20px + var(--plugin-safe-left));
    padding-right: calc(20px + var(--plugin-safe-right));
    padding-bottom: calc(48px + var(--plugin-safe-bottom));
}

/* Sticky View Cart — stays on screen while scrolling gallery / listing */
.gg_plugin_view_cart {
    position: sticky;
    top: calc(12px + var(--plugin-safe-top));
    z-index: 90;
    width: fit-content;
    max-width: 1200px;
    margin: 12px calc(20px + var(--plugin-safe-right)) 4px calc(20px + var(--plugin-safe-left));
    padding: 6px 0;
    background: #fff;
}

.gg_plugin_main > .gg_plugin_view_cart,
.booking-process-container .gg_plugin_view_cart,
.gg_plugin_process_actions {
    margin-left: 0;
    margin-right: 0;
}

.gg_plugin_process_actions {
    position: sticky;
    top: calc(12px + var(--plugin-safe-top));
    z-index: 90;
    background: #fff;
    padding-top: 8px;
    padding-bottom: 8px;
}

.config-bottom-bar,
.mobile-bottom-bar,
.checkout-bottom-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    padding-top: 10px;
    padding-left: calc(10px + var(--plugin-safe-left));
    padding-right: calc(10px + var(--plugin-safe-right));
    padding-bottom: calc(10px + var(--plugin-safe-bottom));
    background: #fff;
    z-index: 100;
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08);
}

.mobile-bottom-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Listing detail: keep content above the fixed "Check availability" bar */
@media only screen and (max-width: 768px) {
    .booking-process-container.gg_plugin_main {
        padding-bottom: var(--plugin-scroll-padding-bottom);
    }

    .marketplace-configurator-card {
        margin-bottom: 0;
        padding-bottom: var(--plugin-scroll-padding-bottom) !important;
    }

    .booking-form {
        display: flex;
        flex-direction: column;
        padding-top: var(--plugin-safe-top);
        padding-bottom: var(--plugin-safe-bottom);
        box-sizing: border-box;
    }

    .booking-form .form-cal-cont {
        position: relative;
        bottom: auto;
        flex: 1;
        min-height: 0;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        align-self: stretch;
    }

    .checkout-page.gg_plugin_main {
        padding-bottom: var(--plugin-scroll-padding-bottom);
    }
}

@media (max-width: 767px) {
    .gg_plugin_header_inner {
        padding-top: calc(16px + var(--plugin-safe-top));
        padding-left: calc(16px + var(--plugin-safe-left));
        padding-right: calc(16px + var(--plugin-safe-right));
    }

    .checkout-card {
        padding-left: calc(16px + var(--plugin-safe-left));
        padding-right: calc(16px + var(--plugin-safe-right));
    }
}

/* Public booking not-found — global inset (scoped component CSS cannot style Telerik buttons) */
.gg_public_booking_not_found_page {
    display: flex;
    flex-direction: column;
    min-height: 100dvh;
    max-height: 100dvh;
    overflow: hidden;
    width: 100%;
    box-sizing: border-box;
}

.gg_public_booking_not_found_main {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 0;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding-left: calc(20px + var(--plugin-safe-left));
    padding-right: calc(20px + var(--plugin-safe-right));
    box-sizing: border-box;
}

.gg_public_booking_not_found_page .gg_plugin_footer {
    flex-shrink: 0;
    width: 100%;
    margin-top: auto;
}

.gg_not_found_page_actions .k-button,
.gg_not_found_page_actions .gg_not_found_action_button {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

@media (min-width: 900px) {
    .gg_public_booking_not_found_main .gg_not_found_page_copy {
        margin-left: 0;
        margin-right: 0;
    }

    .gg_public_booking_not_found_main .gg_not_found_page_actions {
        width: 100%;
        max-width: none;
        margin: 0;
    }
}

@media (max-width: 767px) {
    .gg_public_booking_not_found_main {
        padding-left: calc(24px + var(--plugin-safe-left));
        padding-right: calc(24px + var(--plugin-safe-right));
    }

    .gg_public_booking_not_found_main .gg_not_found_page_copy {
        width: 100%;
        max-width: 360px;
        margin-left: auto;
        margin-right: auto;
    }

    .gg_public_booking_not_found_main .gg_not_found_page_actions {
        width: 100%;
        max-width: 360px;
        margin-left: auto;
        margin-right: auto;
    }
}

.grid-no-header .k-grid-header {
    display: none;
}

.k-tabstrip-item.k-item {
    font-size: 18px;
    font-weight: 500;
    color: var(--kendo-color-subtle, #606060);
}

.k-tabstrip-item.k-active {
    font-size: 18px;
    font-weight: 500;
    color: var(--kendo-color-on-app-surface, #212529);
}

.k-tabstrip-item.k-active::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 3px;
    background-color: var(--kendo-color-on-app-surface, #606060);
}

.k-window-title {
    cursor: grab;
}

.k-window-title:active {
    cursor: grabbing;
}

.k-window-actions {
    padding: 10px 10px calc(10px + env(safe-area-inset-bottom, 34px)) 10px;
}

/* Custom notification/snackbar styling - responsive */
.nl-toast-window {
    min-width: 300px !important;
    max-width: 600px !important;
    padding: 20px !important;
    font-size: 16px !important;
    margin-bottom: 10px;
    margin-right: 10px;
}

.nl-toast-window .nl-toast-window-content {
    font-size: 16px !important;
    line-height: 1.5 !important;
}


/* Responsive adjustments for smaller screens */
@media (max-width: 768px) {
    .nl-toast-window {
        min-width: 280px !important;
        max-width: 90vw !important;
        padding: 16px !important;
        font-size: 15px !important;
    }

    .nl-toast-window .nl-toast-window-content {
        font-size: 15px !important;
    }
}

@media (max-width: 480px) {
    .nl-toast-window {
        min-width: 0 !important;
        max-width: 95vw !important;
        padding: 14px !important;
        font-size: 14px !important;
    }

    .nl-toast-window .nl-toast-window-content {
        font-size: 14px !important;
    }
}

/* Global max-width for Telerik dialogs (used by DialogFactory.ConfirmAsync) */
.k-dialog {
    max-width: min(95vw, 500px) !important;
}

/* Global max-width for Telerik windows without explicit width */
.k-window:not([style*="width"]) {
    max-width: min(95vw, 600px);
}

/*
 * Adaptive DateTimePicker / TimePicker / DropDown action sheets on iPhone:
 * GoGuide app bar (1000), edit-page Continue bar (999) and Telerik windows
 * (.k-window 11500, including the near-fullscreen time-off editor) otherwise paint
 * over the sheet — clipping the titlebar confirm and burying Set/Cancel. Raise the
 * sheet above that pile, still under .k-popover / .k-tooltip at 12000. The black
 * notch shim (.safe-area-top 11001) is stood down while a sheet is open (see fsh.css)
 * so this bump does not reopen the sliced-confirm fight.
 */
.k-actionsheet-container {
    z-index: 11600;
    /* Theme uses 100vh here; on iPhone that can outgrow the visual viewport and
       overflow:hidden then clips the Set/Cancel footer off the bottom. */
    max-height: 100vh;
    max-height: 100dvh;
}

/*
 * Fallback first, then dvh: declared the other way round, vh won wherever both are
 * supported, and vh counts the space behind mobile browser toolbars. That makes a
 * fullscreen sheet taller than the visible viewport and drops its footer - Set and
 * Cancel - below the fold. Pad the sheet itself for the notch / home indicator so
 * titlebar confirm and footer actions stay in the safe rectangle even when a
 * titlebar-only padding rule loses the cascade fight.
 */
.k-actionsheet-fullscreen {
    position: fixed;
    inset: 0;
    max-height: 100vh;
    max-height: 100dvh;
    padding-top: env(safe-area-inset-top, 0px);
    padding-bottom: env(safe-area-inset-bottom, 0px);
    box-sizing: border-box;
}

.k-adaptive-actionsheet .k-actionsheet-titlebar,
.k-adaptive-actionsheet .k-actionsheet-jq .k-actionsheet-header {
    padding-top: var(--kendo-spacing-4, 1rem);
}

.k-adaptive-actionsheet .k-actionsheet-footer,
.k-adaptive-actionsheet .k-actionsheet-actions {
    padding-bottom: var(--kendo-spacing-2, 0.5rem);
}

/*
 * Adaptive calendar header on narrow phones: one nowrap flex row
 * (title | prev | Today | next) at min-width 304px with space-between, inside a sheet
 * that only offers ~320px. Overflow lands on the trailing next-month arrow, which
 * .k-datetime-wrap's overflow:hidden then clips away entirely. Reclaim the sheet
 * gutters, pin the nav group, and let the month title be the only thing that gives.
 * flex: 1 1 0 is required — min-width: 0 alone does not shrink a button whose
 * intrinsic width is the full month name (September still shoved the next arrow off
 * inside the tighter time-off window).
 */
.k-adaptive-actionsheet .k-calendar-header {
    min-width: 0;
    width: 100%;
    gap: var(--kendo-spacing-1, 0.25rem);
}

.k-adaptive-actionsheet .k-calendar-header > .k-calendar-nav {
    flex: 0 0 auto;
}

.k-adaptive-actionsheet .k-calendar-header > :not(.k-calendar-nav) {
    flex: 1 1 0;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

.k-adaptive-actionsheet .k-calendar-header > :not(.k-calendar-nav) .k-button-text {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 420px) {
    .k-adaptive-actionsheet:has(.k-calendar) .k-actionsheet-content {
        padding-inline: var(--kendo-spacing-2, 0.5rem);
    }
}

/*
 * Product UI face: system stack (ui-sans-serif / system-ui / Segoe / SF / Roboto).
 * Replaces Montserrat (Google Fonts) — geometric pitch-deck face, wrong for ops UI.
 *
 * Faces we test-drove and parked (Root localStorage lab, then removed):
 * - IBM Plex Sans — strong ops candidate if system feels too plain.
 * - Source Sans 3 — Adobe UI workhorse; solid fallback.
 * - Inter — clear metrics, too "every SaaS" for GoGuide.
 * Lab lived on feature/root-font-preview-picker; don't resurrect without a real need.
 */
:root {
    --kendo-font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --kendo-font-family-sans-serif: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
html {
    height: 100%;
    height: -webkit-fill-available;
}

#nlbody {
    margin: 0;
    padding: 0;
    min-height: 100%;
    min-height: 100dvh;
    min-height: -webkit-fill-available;
}

body {
    color: unset;
    font-family: var(--kendo-font-family-sans-serif) !important;
    min-height: 100%;
    min-height: 100dvh;
    min-height: -webkit-fill-available;
}

html {
    height: 100%;
    height: -webkit-fill-available;
}

#nlbody {
    margin: 0;
    padding: 0;
    min-height: 100%;
    min-height: 100dvh;
    min-height: -webkit-fill-available;
}

body {
    color: unset;
    font-family: var(--kendo-font-family-sans-serif) !important;
    min-height: 100%;
    min-height: 100dvh;
    min-height: -webkit-fill-available;
}

/* iOS installed PWA + black-translucent: extend the document into the notch area
   or a white band appears above the home indicator on cold launch. */
html:has(.auth-container) {
    background-color: #f5f7fa;
    background-image: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
    min-height: calc(100% + env(safe-area-inset-top, 0px));
    min-height: 100%;
    min-height: 100dvh;
    min-height: -webkit-fill-available;
}

body:has(.auth-container),
body:has(.auth-container)#nlbody {
    background-color: #f5f7fa;
    background-image: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
    min-height: 100dvh;
    min-height: -webkit-fill-available;
}

html:has(.auth-splash),
body:has(.auth-splash) {
    overflow: hidden;
    overscroll-behavior: none;
}

/* Auth/splash pages paint edge-to-edge; skip the black status-bar shim. */
body:has(.auth-container) .safe-area-top {
    display: none;
}

.fsh-center-text, .text-center {
    text-align: center !important;
}

#blazor-error-ui {
    color: var(--kendo-color-on-app-surface, #000000b2);
    background: var(--kendo-color-surface, #fff);
}

.fsh-nav-child {
    padding-left: 10px !important;
}

.gg_wrap {
    max-width: 1400px;
    min-width: 1024px;
    margin: 0 auto;
}

.gg_form_width {
    max-width: 350px;
}

.nl-block {
    display: block;
}

.nl-inline-block {
    display: inline-block;
}

.gg_flex {
    display: flex;
}

.justify-center {
    justify-content: center;
}

.align-center {
    align-items: center;
}

.gg_flex_column {
    display: flex;
    flex-direction: column;
}

.gg_flex_row {
    display: flex;
    flex-direction: row;
}

.gg_flex_grow {
    flex: 1;
}

.no-shrink {
    flex-shrink: 0;
}

.gg_flex_wrap {
    flex-wrap: wrap;
}

.gg_space_between {
    justify-content: space-between;
}

.gg_space_around {
    justify-content: space-around;
}

.gg_space_evenly {
    justify-content: space-evenly;
}

.gg_justify_center {
    justify-content: center;
}

.gg_justify_end {
    justify-content: flex-end;
}

.gg_align_center {
    align-items: center;
}

.gg_align_start {
    align-items: flex-start !important;
}

.gg_align_end {
    align-items: flex-end;
}

.gg_align_stretch {
    align-items: stretch !important;
}

.align-self-center {
    align-self: center;
}

.gg_grid {
    display: grid;
}

    .gg_grid.gg_grid_cols_2 {
        grid-template-columns: repeat(2, minmax(0px, 1fr));
    }

    .gg_grid.gg_grid_cols_3 {
        grid-template-columns: repeat(3, minmax(0px, 1fr));
    }

    .gg_grid.gg_grid_cols_4 {
        grid-template-columns: repeat(4, minmax(0px, 1fr));
    }

    .gg_grid.gg_grid_cols_5 {
        grid-template-columns: repeat(5, minmax(0px, 1fr));
    }

    .gg_grid.gg_grid_cols_6 {
        grid-template-columns: repeat(6, minmax(0px, 1fr));
    }

.gg_gap_5 {
    gap: 5px;
}

.gg_gap_10 {
    gap: 10px;
}

.gg_gap_15 {
    gap: 15px;
}

.gg_gap_20, .gg_page_actions.gg_gap_20 {
    gap: 20px;
}

.gg_gap_25 {
    gap: 25px;
}

.gg_gap_30 {
    gap: 30px;
}

.gg_gap_35 {
    gap: 35px;
}

.gg_gap_40 {
    gap: 40px;
}

.gg_gap_45 {
    gap: 45px;
}

.gg_gap_50 {
    gap: 50px;
}

.gg_col_gap_5 {
    column-gap: 5px;
}

.gg_col_gap_10 {
    column-gap: 10px;
}

.gg_col_gap_15 {
    column-gap: 15px;
}

.gg_col_gap_20 {
    column-gap: 20px;
}

.gg_col_gap_25 {
    column-gap: 25px;
}

.gg_col_gap_30 {
    column-gap: 30px;
}

.gg_col_gap_35 {
    column-gap: 35px;
}

.gg_col_gap_40 {
    column-gap: 40px;
}

.gg_col_gap_45 {
    column-gap: 45px;
}

.gg_col_gap_50 {
    column-gap: 50px;
}

.gg_row_gap_5 {
    row-gap: 5px;
}

.gg_row_gap_10 {
    row-gap: 10px;
}

.gg_row_gap_15 {
    row-gap: 15px;
}

.gg_row_gap_20 {
    row-gap: 20px;
}

.gg_row_gap_25 {
    row-gap: 25px;
}

.gg_row_gap_30 {
    row-gap: 30px;
}

.gg_row_gap_35 {
    row-gap: 35px;
}

.gg_row_gap_40 {
    row-gap: 40px;
}

.gg_row_gap_45 {
    row-gap: 45px;
}

.gg_row_gap_50 {
    row-gap: 50px;
}

.code-container {
    background-color: var(--kendo-color-app-surface, #f5f5f5);
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 5px;
    position: relative;
    white-space: pre-wrap;
    word-break: break-all;
}

pre {
    font-size: 14px;
    white-space: pre-wrap;
}

.m_10 {
    margin: 10px !important;
}

.m_15 {
    margin: 15px !important;
}

.m_20 {
    margin: 20px !important;
}

.m_30 {
    margin: 30px !important;
}

.m_40 {
    margin: 40px !important;
}

.m_50 {
    margin: 50px !important;
}

.mt_5 {
    margin-top: 5px !important;
}

.mt_10 {
    margin-top: 10px !important;
}

.mt_15 {
    margin-top: 15px !important;
}

.mt_20 {
    margin-top: 20px !important;
}

.mt_30 {
    margin-top: 30px !important;
}

.mt_40 {
    margin-top: 40px !important;
}

.mt_50 {
    margin-top: 50px !important;
}

.mb_5 {
    margin-bottom: 5px !important;
}

.mb_10 {
    margin-bottom: 10px !important;
}

.mb_15 {
    margin-bottom: 15px !important;
}

.mb_20 {
    margin-bottom: 20px !important;
}

.mb_30 {
    margin-bottom: 30px !important;
}

.mb_40 {
    margin-bottom: 40px !important;
}

.mb_50 {
    margin-bottom: 50px !important;
}

.ml_5 {
    margin-left: 5px !important;
}

.ml_10 {
    margin-left: 10px !important;
}

.ml_15 {
    margin-left: 15px !important;
}

.ml_20 {
    margin-left: 20px !important;
}

.ml_30 {
    margin-left: 30px !important;
}

.ml_40 {
    margin-left: 40px !important;
}

.ml_50 {
    margin-left: 50px !important;
}

.mr_5 {
    margin-right: 5px !important;
}

.mr_10 {
    margin-right: 10px !important;
}

.mr_15 {
    margin-right: 15px !important;
}

.mr_20 {
    margin-right: 20px !important;
}

.mr_30 {
    margin-right: 30px !important;
}

.mr_40 {
    margin-right: 40px !important;
}

.mr_50 {
    margin-right: 50px !important;
}

.mh_5 {
    margin-left: 5px !important;
    margin-right: 5px !important;
}

.mh_10 {
    margin-left: 10px !important;
    margin-right: 10px !important;
}

.mh_15 {
    margin-left: 15px !important;
    margin-right: 15px !important;
}

.mh_20 {
    margin-left: 20px !important;
    margin-right: 20px !important;
}

.mh_30 {
    margin-left: 30px !important;
    margin-right: 30px !important;
}

.mh_40 {
    margin-left: 40px !important;
    margin-right: 40px !important;
}

.mh_50 {
    margin-left: 50px !important;
    margin-right: 50px !important;
}

.mv_10 {
    margin-top: 10px !important;
    margin-bottom: 10px !important;
}

.mv_15 {
    margin-top: 15px !important;
    margin-bottom: 15px !important;
}

.mv_20 {
    margin-top: 20px !important;
    margin-bottom: 20px !important;
}

.mv_30 {
    margin-top: 30px !important;
    margin-bottom: 30px !important;
}

.mv_40 {
    margin-top: 40px !important;
    margin-bottom: 40px !important;
}

.mv_50 {
    margin-top: 50px !important;
    margin-bottom: 50px !important;
}

.p_10 {
    padding: 10px !important;
}

.p_15 {
    padding: 15px !important;
}

.p_20 {
    padding: 20px !important;
}

.p_30 {
    padding: 30px !important;
}

.p_40 {
    padding: 40px !important;
}

.p_50 {
    padding: 50px !important;
}

.pt_10 {
    padding-top: 10px !important;
}

.pt_15 {
    padding-top: 15px !important;
}

.pt_20 {
    padding-top: 20px !important;
}

.pt_30 {
    padding-top: 30px !important;
}

.pt_40 {
    padding-top: 40px !important;
}

.pt_50 {
    padding-top: 50px !important;
}

.pb_10 {
    padding-bottom: 10px !important;
}

.pb_15 {
    padding-bottom: 15px !important;
}

.pb_20 {
    padding-bottom: 20px !important;
}

.pb_30 {
    padding-bottom: 30px !important;
}

.pb_40 {
    padding-bottom: 40px !important;
}

.pb_50 {
    padding-bottom: 50px !important;
}

.pr_10 {
    padding-right: 10px !important;
}

.pr_15 {
    padding-right: 15px !important;
}

.pr_20 {
    padding-right: 20px !important;
}

.pr_30 {
    padding-right: 30px !important;
}

.pr_40 {
    padding-right: 40px !important;
}

.pr_50 {
    padding-right: 50px !important;
}

.pv_10 {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
}

.pv_15 {
    padding-top: 15px !important;
    padding-bottom: 15px !important;
}

.pv_20 {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
}

.pv_30 {
    padding-top: 30px !important;
    padding-bottom: 30px !important;
}

.pv_40 {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
}

.pv_50 {
    padding-top: 50px !important;
    padding-bottom: 50px !important;
}

.ph_10 {
    padding-left: 10px !important;
    padding-right: 10px !important;
}

.ph_15 {
    padding-left: 15px !important;
    padding-right: 15px !important;
}

.ph_20 {
    padding-left: 20px !important;
    padding-right: 20px !important;
}

.ph_30 {
    padding-left: 30px !important;
    padding-right: 30px !important;
}

.ph_40 {
    padding-left: 40px !important;
    padding-right: 40px !important;
}

.ph_50 {
    padding-left: 50px !important;
    padding-right: 50px !important;
}

.cell-pv-10 td {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
}

.cell-pv-15 td {
    padding-top: 15px !important;
    padding-bottom: 15px !important;
}

.cell-pv-20 td {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
}

.full-width {
    width: 100% !important;
}

.width-80pc {
    width: 80% !important;
}

.width-75pc {
    width: 75%;
}

.width-60pc {
    width: 60% !important;
}

.half-width {
    width: 50% !important;
}

.width-40pc {
    width: 40% !important;
}

.one-third-width {
    width: 33% !important;
}

.width-30pc {
    width: 30% !important;
}

.quarter-width {
    width: 25% !important;
}

.block-center {
    margin-left: auto;
    margin-right: auto;
}

.hidden {
    display: none !important;
}

.orientation-portrait {
    aspect-ratio: 0.75;
}

.orientation-landscape {
    aspect-ratio: 1.5;
}

.border-all {
    border: 1px solid var(--kendo-color-border, #E6EBEC);
}

.border-v {
    border-top: 1px solid var(--kendo-color-border, #E6EBEC);
    border-bottom: 1px solid var(--kendo-color-border, #E6EBEC);
}

.border-top {
    border-top: 1px solid var(--kendo-color-border, #E6EBEC);
}

.border-bottom {
    border-bottom: 1px solid var(--kendo-color-border, #E6EBEC);
}

.border-h {
    border-left: 1px solid var(--kendo-color-border, #E6EBEC);
    border-right: 1px solid var(--kendo-color-border, #E6EBEC);
}

.border-left {
    border-left: 1px solid var(--kendo-color-border, #E6EBEC);
}

.border-right {
    border-right: 1px solid var(--kendo-color-border, #E6EBEC);
}

.border-danger {
    border-color: #F50000 !important;
}

.border-red {
    border-color: #F68D8D !important;
}

.border-yellow {
    border-color: #FFC536 !important;
}

.border-green {
    border-color: green;
}

.border-primary {
    border-color: var(--kendo-color-on-app-surface, #000) !important;
}

.border-secondary {
    border-color: var(--kendo-color-subtle, #7F888A) !important;
}

.border-link {
    border-color: var(--kendo-color-primary, #58AFF9) !important;
}

.b-radius-5 {
    border-radius: 5px;
}

.b-radius-10 {
    border-radius: 10px;
}

.b-radius-15 {
    border-radius: 15px;
}

.b-radius-20 {
    border-radius: 20px;
}

.b-width-2 {
    border-width: 2px;
}

.link {
    text-decoration: underline;
    cursor: pointer;
}

.cursor-pointer {
    cursor: pointer;
}

.cursor-default {
    cursor: default !important;
}

.link:hover {
    text-decoration: none;
}

.underline {
    text-decoration: underline;
}

.strikethrough {
    text-decoration: line-through;
    color: var(--kendo-color-subtle, #adadad);
}

.truncated-text {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gg_page_content {
    /*background:var(--kendo-color-app-surface, #F7FAFB);*/
}

    .gg_page_content > .gg_page_header {
        display: flex;
        justify-content: space-between;
        /*align-items: center;*/
    }

        .gg_page_content > .gg_page_header > .gg_page_actions {
            display: flex;
            align-items: center;
            gap: 10px;
        }

.gg_page_filter {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 20px 0;
}

    .gg_page_filter > .gg_page_filter_actions {
        display: flex;
        align-items: center;
        gap: 10px;
    }

/*Global elements*/
.gg_input_cont {
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 7px;
    border: 1px solid var(--kendo-color-border, #C2CBCD);
    border-radius: 8px;
    background: var(--kendo-color-surface, #fff);
    overflow: hidden;
}

    .gg_input_cont input {
        outline: none;
    }

.gg_button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 15px;
    font-weight: normal;
    padding: 9px 15px;
    border-radius: 10px;
    cursor: pointer;
    transition: all 0.2s linear;
    text-decoration: none;
}

    .gg_button.k-button {
        display: inline-flex;
        align-items: center !important;
        gap: 10px !important;
        font-size: 15px;
        font-weight: normal !important;
        padding: 9px 15px !important;
        border-radius: 10px !important;
        cursor: pointer !important;
        transition: all 0.2s linear !important;
    }

/* Busy spinner inside a button: match button text colour (Inverse/Primary loader tokens blend into solid buttons). */
.k-button .k-loader {
    color: currentColor;
}

.gg_button_small {
    padding: 7px;
    font-size: 12px;
}

.gg_button_with_icon {
    padding: 7px;
}

    .gg_button_with_icon.gg_button_small {
        padding: 3px 7px;
    }

.gg_button_border {
    color: var(--kendo-color-on-app-surface, #000);
    border: 1px solid var(--kendo-color-border, #C2CBCD);
    padding-top: 8px;
    padding-bottom: 8px;
}

    .gg_button_border:hover {
        border-color: var(--kendo-color-subtle, #7F888A);
    }

.gg_button_disabled {
    color: var(--kendo-color-on-app-surface, #333);
    background: #AAA;
}

.gg_button_basic {
    color: var(--kendo-color-on-app-surface, #000) !important;
    background: var(--kendo-color-base-subtle, #E6EBEC) !important;
}

    .gg_button_basic:hover {
        background: #C2CBCD !important;
    }

.gg_button_success {
    color: #fff !important;
    background: #53B670 !important;
}

    .gg_button_success:hover {
        background: #49aa65 !important;
    }

.gg_button_danger {
    color: #fff !important;
    background: #F31700 !important;
}

    .gg_button_danger:hover {
        background: #DF1600 !important;
    }

.gg_button_theme {
    color: #fff !important;
    background: linear-gradient(to top right, #64C4FC 0%, #60BDFB 70%, #58AFF9 100%) !important;
    box-shadow: 0 1px 4px #bbb !important;
}

    .gg_button_theme:hover {
        background: linear-gradient(to top right, #58AFF9 0%, #58AFF9 70%, #58AFF9 100%) !important;
    }

.gg_button_info {
    color: #fff !important;
    background: #58AFF9 !important;
}

    .gg_button_info:hover {
        background: #49a2ef !important;
    }

.gg_button_black {
    background: #000 !important;
    color: #fff !important;
}

    .gg_button_black:hover {
        background: #333 !important;
    }

.gg_button_white {
    background: var(--kendo-color-surface, #fff) !important;
    color: var(--kendo-color-on-app-surface, #000) !important;
}

    .gg_button_white:hover {
        background: rgba(255,255,255,0.6) !important;
    }

.gg_link_button {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    transition: all 0.2s linear;
}

    .gg_link_button.theme {
        color: #64C4FC;
    }

.gg_button_link {
    padding: 10px 15px;
    color: var(--kendo-color-on-app-surface, #000);
    text-decoration: underline;
}

    .gg_button_link:hover {
        background: var(--kendo-color-base-subtle, #E6EBEC);
    }

.gg_button_circle {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    transition: all 0.2s linear;
    cursor: pointer;
}

.gg_max_height_75 {
    max-height: 75vh;
}

/*Drawer styles*/
.gg_drawer_container.k-window {
    top: 0 !important;
    left: calc(100vw - 360px) !important;
    width: 360px !important;
    height: 100vh !important;
}

.gg_drawer_container.k-centered {
    transform: unset !important;
}

.gg_drawer_container > .k-window-content {
    display: flex;
    flex-direction: column;
    padding: 0 !important;
}

.connection-status-window.k-window {
    width: min(420px, calc(100vw - 24px)) !important;
    max-width: calc(100vw - 24px) !important;
    box-sizing: border-box;
}

.connection-status-window .k-window-content {
    box-sizing: border-box;
    overflow-x: hidden;
    padding: 12px 16px !important;
}

.gg_drawer_header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px;
}

    .gg_drawer_header h3 {
        font-size: 16px;
        font-weight: 500;
    }

    .gg_drawer_header a.basic_button {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 36px;
        height: 36px;
        background: var(--kendo-color-base-subtle, #E6EBEC);
        border-radius: 18px;
        cursor: pointer;
    }

        .gg_drawer_header a.basic_button:hover {
            background: var(--kendo-color-base-subtle, #E6EBEC);
        }

.gg_drawer_body {
    display: flex;
    flex-direction: column;
    gap: 15px;
    flex: 1;
}

.gg_drawer_filter_group {
    margin: 0 15px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--kendo-color-border, #E6EBEC);
}

    .gg_drawer_filter_group:last-child {
        border: none;
    }

    .gg_drawer_filter_group h4 {
        font-weight: normal;
        color: var(--kendo-color-subtle, #7F888A);
        margin-bottom: 15px;
    }

    .gg_drawer_filter_group .resource_item {
        padding: 5px 0;
    }

    .gg_drawer_filter_group label {
        display: flex;
        align-items: center;
        gap: 5px;
        color: var(--kendo-color-on-app-surface, #000);
    }

.gg_drawer_footer {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: stretch;
    gap: 10px;
    margin: 15px;
}

/*Radio button*/
.gg_radio {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 12px;
    background: #C2CBCD;
    flex-shrink: 0;
}

    .gg_radio.selected {
        background: #000;
    }

    .gg_radio > span {
        display: block;
        width: 12px;
        height: 12px;
        border-radius: 6px;
        background: #C2CBCD;
    }

    .gg_radio.selected > span {
        background: var(--kendo-color-surface, #fff);
    }

.k-radio:checked {
    background-color: var(--kendo-color-on-app-surface, #000) !important;
    border-color: var(--kendo-color-on-app-surface, #000) !important;
}

    .k-radio:checked:focus {
        box-shadow: none !important;
    }

.k-radio-item, .k-radio-list-item {
    gap: 10px;
}

/*Checkbox*/
.gg_checkbox {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 3px;
    background: var(--kendo-color-surface, #fff);
    border: 1px solid #000;
    flex-shrink: 0;
}

    .gg_checkbox .k-icon {
        color: #fff;
    }

    .gg_checkbox.selected {
        background: #000;
    }

/*Label*/
/*
 * Status / meaning chips — global fixed palette for light and dark Admin chrome.
 * Soft wash + dark ink (not theme tokens). Hues stay near the old fills so
 * meaning stays recognizable; ink is always --gg-status-ink for contrast.
 */
:root {
    --gg-status-ink: #1a1d20;
    --gg-status-green-bg: #aedcbb;
    --gg-status-yellow-bg: #ffd97b;
    --gg-status-red-bg: #f68d8d;
    --gg-status-gray-bg: #c2cbcd;
    /* Soft callout washes (not chip fills). Ink stays readable on the wash. */
    --gg-callout-warning-bg: #fff3cd;
    --gg-callout-warning-ink: #856404;
    --gg-callout-warning-border: #ffc107;
    --gg-callout-success-bg: #d4edda;
    --gg-callout-success-ink: #155724;
    --gg-callout-success-border: #28a745;
    --gg-callout-info-bg: #cce5ff;
    --gg-callout-info-ink: #004085;
    --gg-callout-info-border: #004085;
    --gg-callout-danger-bg: #f8d7da;
    --gg-callout-danger-ink: #721c24;
    --gg-callout-danger-border: #dc3545;
}

.gg_status_label {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    font-weight: 500;
    padding: 3px 10px;
    border-radius: 20px;
    color: var(--gg-status-ink);
}

    .gg_status_label.live,
    .gg_status_label.green,
    .gg_status_label.status-green {
        color: var(--gg-status-ink);
        background: var(--gg-status-green-bg);
    }

    .gg_status_label.red,
    .gg_status_label.status-red {
        color: var(--gg-status-ink);
        background: var(--gg-status-red-bg);
    }

    .gg_status_label.yellow,
    .gg_status_label.status-yellow {
        color: var(--gg-status-ink);
        background: var(--gg-status-yellow-bg);
    }

    .gg_status_label.gray,
    .gg_status_label.status-gray {
        color: var(--gg-status-ink);
        background: var(--gg-status-gray-bg);
    }

/*Wizard styles*/
.gg_wizard_container {
    background: linear-gradient(to top left, #fff 20%, #D9EFFC 80%, #fff 100%);
}

    .gg_wizard_container .k-window-content {
        display: flex;
        flex-direction: column;
        gap: 0;
        padding: 0;
    }

.gg_wizard_header, .gg_wizard_body, .gg_wizard_footer > .buttons_container {
    width: 100%;
    max-width: 1400px;
    min-width: 1000px;
    margin: 0 auto;
    padding: 0 50px;
}

.gg_wizard_header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 20px;
    padding-bottom: 20px;
}

    .gg_wizard_header a.logo_btn {
        cursor: pointer;
    }

    .gg_wizard_header img {
        height: 52px;
    }

    .gg_wizard_header a.exit_btn {
        padding: 10px 40px;
        border-radius: 25px;
        border: 1px solid var(--kendo-color-border, #C2CBCD);
        color: var(--kendo-color-on-app-surface, #000);
        font-weight: 500;
        cursor: pointer;
        transition: all 0.2s linear;
    }

        .gg_wizard_header a.exit_btn:hover {
            border-color: var(--kendo-color-on-app-surface, #000);
        }

.gg_wizard_body {
    flex: 1;
    overflow-y: scroll;
    padding-bottom: 50px;
}

    .gg_wizard_body h1 {
        color: var(--kendo-color-on-app-surface, #000000);
    }

    .gg_wizard_body .gg_wizard_section, .gg_wizard_body .section_overview, .gg_wizard_body .section_intro, .gg_wizard_body .section_step {
        min-height: 100%;
        margin-left: auto;
        margin-right: auto;
    }

    .gg_wizard_body .gg_wizard_section {
        display: flex;
    }

    .gg_wizard_body .section_overview, .gg_wizard_body .section_intro {
        display: flex;
        align-items: center;
        gap: 30px;
        width: 80%;
    }

        /*SECTION OVERVIEW*/
        .gg_wizard_body .section_overview .title_side {
            width: 60%;
        }

        .gg_wizard_body .section_overview .details_side {
            width: 40%;
        }

            .gg_wizard_body .section_overview .details_side ol.steps_overview li {
                padding: 0 30px 30px 30px;
                margin-bottom: 30px;
                border-bottom: 1px solid var(--kendo-color-border, #E6EBEC);
            }

                .gg_wizard_body .section_overview .details_side ol.steps_overview li:last-child {
                    margin-bottom: 0;
                    padding-bottom: 0;
                    border: none;
                }

                .gg_wizard_body .section_overview .details_side ol.steps_overview li h3 {
                    color: var(--kendo-color-on-app-surface, #000);
                    margin-bottom: 10px;
                }

        /*SECTION INTRO*/
        .gg_wizard_body .section_intro .text_side {
            width: 60%;
        }

        .gg_wizard_body .section_intro .icon_side {
            width: 40%;
        }

        .gg_wizard_body .section_intro .text_side h1 {
            margin: 10px 0 20px 0;
        }

        .gg_wizard_body .section_intro .text_side p {
            font-size: 18px;
        }

    /*SECTION STEP*/
    .gg_wizard_body .section_step {
        width: 60%;
        min-width: 600px;
        /*padding:30px 0;*/
    }

        .gg_wizard_body .section_step h1 {
            width: 80%;
            margin-bottom: 30px;
        }

            .gg_wizard_body .section_step h1 ~ p {
                font-size: 16px;
                color: var(--kendo-color-subtle, #7F888A);
            }

        .gg_wizard_body .section_step.small {
            width: 40%;
            min-width: 600px;
        }

            .gg_wizard_body .section_step.small h1 {
                width: 100%;
            }

        .gg_wizard_body .section_step .gg_select_option_cell {
            display: flex;
            padding: 15px;
            background: var(--kendo-color-surface, #fff);
            border-radius: 6px !important;
            border: 1px solid var(--kendo-color-border, #C2CBCD);
            cursor: pointer;
            transition: all 0.2s linear;
        }

            .gg_wizard_body .section_step .gg_select_option_cell:hover, .gg_wizard_body .section_step .gg_select_option_cell.selected, .gg_wizard_body .section_step .gg_select_option_cell.k-selected {
                border-color: var(--kendo-color-on-app-surface, #000);
                outline: 1px solid #000;
            }

            .gg_wizard_body .section_step .gg_select_option_cell.tile {
                flex-direction: column;
                gap: 10px;
                font-size: 16px;
                color: var(--kendo-color-on-app-surface, #000);
            }

            .gg_wizard_body .section_step .gg_select_option_cell.long_tile {
                padding: 20px 25px;
                gap: 25px;
                align-items: center;
            }

                .gg_wizard_body .section_step .gg_select_option_cell.long_tile h3 {
                    color: var(--kendo-color-on-app-surface, #000);
                    margin-bottom: 5px;
                }

                .gg_wizard_body .section_step .gg_select_option_cell.long_tile p {
                    font-size: 16px;
                    color: var(--kendo-color-subtle, #7F888A);
                }

                .gg_wizard_body .section_step .gg_select_option_cell.long_tile.add_on {
                    cursor: default;
                }

                    .gg_wizard_body .section_step .gg_select_option_cell.long_tile.add_on:not(.selected):hover {
                        border-color: var(--kendo-color-border, #C2CBCD);
                        outline: none;
                    }

                    .gg_wizard_body .section_step .gg_select_option_cell.long_tile.add_on img {
                        width: 64px;
                        height: 64px;
                        object-fit: cover;
                        border-radius: 6px;
                    }

                    .gg_wizard_body .section_step .gg_select_option_cell.long_tile.add_on a.gg_button {
                        border-radius: 5px;
                    }

                    .gg_wizard_body .section_step .gg_select_option_cell.long_tile.add_on ~ a.gg_link_button {
                        font-size: 16px;
                        font-weight: 500;
                    }

                        .gg_wizard_body .section_step .gg_select_option_cell.long_tile.add_on ~ a.gg_link_button:hover {
                            color: var(--kendo-color-on-app-surface, #000);
                        }

                        .gg_wizard_body .section_step .gg_select_option_cell.long_tile.add_on ~ a.gg_link_button .k-icon {
                            width: 24px;
                            height: 24px;
                        }

        .gg_wizard_body .section_step input.main_input, .gg_wizard_body .section_step .k-form-field.main_input .k-input {
            font-size: 18px;
            padding: 15px 20px;
            margin: 30px 0 10px 0;
            width: 100%;
            border-radius: 5px;
            border: 1px solid var(--kendo-color-border, #C2CBCD);
            outline: none;
        }

            .gg_wizard_body .section_step input.main_input:focus, .gg_wizard_body .section_step .main_input .k-focus {
                border-color: var(--kendo-color-on-app-surface, #000) !important;
                box-shadow: none;
            }

.gg_wizard_footer {
    background: var(--kendo-color-surface, #fff);
}

    .gg_wizard_footer > .progress_container {
        display: flex;
        gap: 5px;
    }

        .gg_wizard_footer > .progress_container > .progress_step {
            display: flex;
            flex: 1;
            height: 5px;
            background: var(--kendo-color-base-subtle, #E6EBEC);
        }

            .gg_wizard_footer > .progress_container > .progress_step > .progress_sub_step {
                flex: 1;
            }

                .gg_wizard_footer > .progress_container > .progress_step > .progress_sub_step.completed {
                    background: #000;
                }

    .gg_wizard_footer > .buttons_container {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding-top: 20px;
        padding-bottom: 20px;
    }

        .gg_wizard_footer > .buttons_container > a {
            display: block;
            font-size: 15px;
            font-weight: 500;
            border-radius: 5px;
            cursor: pointer;
            transition: all 0.2s linear;
        }

            .gg_wizard_footer > .buttons_container > a.back_btn {
                padding: 10px 15px;
                color: var(--kendo-color-on-app-surface, #000);
                text-decoration: underline;
            }

                .gg_wizard_footer > .buttons_container > a.back_btn:hover {
                    background: var(--kendo-color-base-subtle, #E6EBEC);
                }

            .gg_wizard_footer > .buttons_container > a.next_btn {
                padding: 10px 30px;
                color: #fff;
                background: linear-gradient(to top right, #64C4FC 0%, #60BDFB 70%, #58AFF9 100%);
                box-shadow: 0 1px 4px #bbb;
            }

                .gg_wizard_footer > .buttons_container > a.next_btn:hover {
                    /*background:#58AFF9;*/
                    background: linear-gradient(to top right, #58AFF9 0%, #58AFF9 70%, #58AFF9 100%);
                }

/*Data table*/
.gg_table_cont {
    background: var(--kendo-color-surface, #fff);
    border: 1px solid var(--kendo-color-border, #C2CBCD);
    border-radius: 8px;
    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.15);
    overflow: hidden;
}

.gg_table_head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px;
    color: var(--kendo-color-on-app-surface, #000);
    font-size: 15px;
    font-weight: 500;
    border-bottom: 1px solid var(--kendo-color-border, #C2CBCD);
}

    .gg_table_head .head_actions a {
        display: flex;
        align-items: center;
        gap: 5px;
        color: var(--kendo-color-primary, #58AFF9);
        padding: 5px 10px;
        border-radius: 4px;
        transition: all 0.2s linear;
        cursor: pointer;
    }

        .gg_table_head .head_actions a:hover {
            background: var(--kendo-color-base-subtle, #E8EDEE);
        }

.gg_table_cont table.gg_table_body {
    width: 100%;
    border-collapse: collapse;
}

    .gg_table_cont table.gg_table_body td {
        padding: 15px;
        color: var(--kendo-color-on-app-surface, #000);
        font-size: 15px;
        /*border-bottom:1px solid var(--kendo-color-border, #E6EBEC);*/
        transition: all 0.2s linear;
        cursor: pointer;
    }

    .gg_table_cont table.gg_table_body tr:last-child td {
        border: none;
    }

    .gg_table_cont table.gg_table_body tr:hover td {
        background: var(--kendo-color-base-subtle, #f8f8f8);
    }

    .gg_table_cont table.gg_table_body td.item_image {
        width: 100px;
    }

        .gg_table_cont table.gg_table_body td.item_image img {
            width: 70px;
            aspect-ratio: 1;
            object-fit: cover;
        }

        .gg_table_cont table.gg_table_body td.item_image span.image_placeholder, .customer-mobile-list .image_placeholder {
            display: flex;
            justify-content: center;
            align-items: center;
            width: 70px;
            aspect-ratio: 1;
            background: var(--kendo-color-base-subtle, #eee);
            border-radius: 5px;
        }

            .gg_table_cont table.gg_table_body td.item_image span.image_placeholder .k-icon, .customer-mobile-list .image_placeholder .k-icon {
                width: 24px;
                color: var(--kendo-color-subtle, #bbb);
            }

    .gg_table_cont table.gg_table_body td.item_status {
        width: 200px;
    }

    .gg_table_cont table.gg_table_body td.action_indicator {
        width: 64px;
        color: var(--kendo-color-subtle, #7F888A);
        text-align: center;
    }

/*Scheduler*/
.calendar_container {
    position: relative;
}

.mobile-calendar-nav {
    display: flex;
    height: 100px;
}

.calendar_container .custom_buttons {
    position: absolute;
    display: flex;
    top: 16px;
    right: 15px;
    gap: 15px;
    height: 40px;
    z-index: 9;
}

/*.calendar_container .custom_buttons .gg_button{*/
/*    font-size:14px;*/
/*}*/

.calendar_container .gg_scheduler .k-scheduler-toolbar {
    padding-right: 300px;
}

.k-calendar.k-mobile-calendar {
    display: block;
    position: absolute;
    z-index: 10;
}

.toolbar_date_picker {
    display: none;
}

.gg_calendar .k-nav-current {
    display: none;
}

.gg_scheduler {
    .k-scheduler-toolbar .k-nav-current {
        display: none;
    }
}

    .gg_scheduler .k-scheduler-toolbar {
        padding: 15px;
        background: var(--kendo-color-surface, #fff);
    }

        .gg_scheduler .k-scheduler-toolbar .k-toolbar-button-group.k-scheduler-views {
            display: flex;
            gap: 10px;
            background: var(--kendo-color-base-subtle, #E6EBEC);
            padding: 3px;
            border-radius: 12px;
        }

            .gg_scheduler .k-scheduler-toolbar .k-toolbar-button-group.k-scheduler-views .k-toolbar-toggle-button {
                padding: 7px 15px;
                color: var(--kendo-color-subtle, #52595B);
                border: none;
                border-radius: 10px;
                background: none;
            }

                .gg_scheduler .k-scheduler-toolbar .k-toolbar-button-group.k-scheduler-views .k-toolbar-toggle-button.k-selected {
                    background: var(--kendo-color-surface, #fff);
                    color: var(--kendo-color-on-app-surface, #000);
                }

                .gg_scheduler .k-scheduler-toolbar .k-toolbar-button-group.k-scheduler-views .k-toolbar-toggle-button:focus {
                    box-shadow: none;
                }

    .gg_scheduler span.k-event-actions {
        display: none;
    }

/*Popup window*/
.gg_popup_window {
    border-radius: 10px !important;
    overflow: hidden;
    font-weight: normal;
}

    .gg_popup_window .k-window-titlebar, .gg_full_window .k-window-titlebar {
        background: var(--kendo-color-surface, #fff);
    }

        .gg_popup_window .k-window-titlebar .k-window-titlebar-action, .gg_full_window .k-window-titlebar .k-window-titlebar-action {
            border-radius: 15px;
            background: var(--kendo-color-base-subtle, #E6EBEC) !important;
        }

            .gg_popup_window .k-window-titlebar .k-window-titlebar-action:hover, .gg_full_window .k-window-titlebar .k-window-titlebar-action:hover {
                background: #C2CBCD !important;
            }

    .gg_popup_window .k-window-content {
        display: flex;
        flex-direction: column;
        min-width: 30vw;
        padding: 0;
    }

        .gg_popup_window .k-window-content a.gg_action_button {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 15px;
            border-bottom: 1px solid var(--kendo-color-border, #E6EBEC);
            transition: all 0.2s linear;
            cursor: pointer;
        }

            .gg_popup_window .k-window-content a.gg_action_button:hover {
                background: var(--kendo-color-base-subtle, #F4F6F8);
            }

            .gg_popup_window .k-window-content a.gg_action_button .k-icon {
                width: 20px;
                height: 20px;
            }

.gg_full_window {
}

    .gg_full_window .k-window-titlebar {
        border: none;
        padding: 30px;
    }

    .gg_full_window .k-window-content {
        padding: 30px;
    }

/*Button group*/
.gg_element .k-button-group {
    display: flex;
    gap: 10px;
    background: var(--kendo-color-base-subtle, #E6EBEC);
    padding: 3px;
    border-radius: 12px;
}

    .gg_element .k-button-group .k-button {
        padding: 7px 15px;
        color: var(--kendo-color-subtle, #52595B);
        border: none;
        border-radius: 10px !important;
        background: none;
    }

        .gg_element .k-button-group .k-button.k-selected {
            background: var(--kendo-color-surface, #fff);
            color: var(--kendo-color-on-app-surface, #000);
        }

        .gg_element .k-button-group .k-button:focus {
            box-shadow: none;
        }

/*Input*/
.gg_element.k-input, .gg_element .k-input {
    border-color: var(--kendo-color-border, #C2CBCD);
    border-radius: 10px;
    outline: none;
}

    .gg_element.k-input:hover, .gg_element .k-input:hover {
        border-color: #B2BBBD;
    }

/*.gg_element.k-input:focus, .gg_element input:focus{*/
/*    outline:none;*/
/*}*/

.gg_element input {
    /*padding-block:0;*/
    /*padding-inline:0;*/
    padding: 8px !important;
}

/*Checkbox*/
.gg_element.k-checkbox {
    border-color: var(--kendo-color-subtle, #7F888A);
}

    .gg_element.k-checkbox.k-checked, .gg_element.k-checkbox:checked {
        border-color: var(--kendo-color-on-app-surface, #000);
        background-color: var(--kendo-color-on-app-surface, #000);
    }

        .gg_element.k-checkbox.k-checked.k-focus, .gg_element.k-checkbox:checked:focus {
            box-shadow: none;
        }

/*Date picker*/
.gg_element.k-datepicker .k-input-button, .gg_element .k-datepicker .k-input-button {
    background: transparent;
    border: none;
    padding-left: 20px;
    padding-right: 20px;
    transition: all 0.2s linear;
}

    .gg_element.k-datepicker .k-input-button:hover, .gg_element .k-datepicker .k-input-button:hover {
        background-color: var(--kendo-color-base-subtle, #E6EBEC);
    }

/*Dropdown list*/
.gg_element.k-dropdownlist, .gg_element .k-dropdownlist {
    background: transparent;
    border-color: var(--kendo-color-border, #C2CBCD);
    border-radius: 10px;
}

    .gg_element.k-dropdownlist:hover, .gg_element .k-dropdownlist:hover {
        background: transparent;
        border-color: #B2BBBD;
    }

    .gg_element.k-dropdownlist .k-input-inner, .gg_element .k-dropdownlist .k-input-inner {
        padding: 8px;
    }

/*Switch*/
.gg_element.k-switch .k-switch-track {
    border-color: var(--kendo-color-primary, #58AFF9) !important;
    background-color: var(--kendo-color-primary, #58AFF9) !important;
    outline: none !important;
}

.gg_element.k-switch-off .k-switch-track {
    border-color: #D9D9D9 !important;
    background-color: #D9D9D9 !important;
}

/*Panelbar*/
.gg_element.k-panelbar {
    border-radius: 10px !important;
    overflow: hidden !important;
}

    .gg_element.k-panelbar .k-link {
        background: none !important;
        color: var(--kendo-color-on-app-surface, #000) !important;
        transition: all 0.2s linear !important;
        cursor: pointer !important;
    }

        .gg_element.k-panelbar .k-link:hover {
            background: var(--kendo-color-base-subtle, #FAFAFA) !important;
        }

        .gg_element.k-panelbar .k-link.k-focus {
            box-shadow: none !important;
        }

.gg_error {
    color: indianred;
}

.gg_card {
    border: 1px solid var(--kendo-color-border, #E6EBEC);
    border-radius: 8px;
    background: var(--kendo-color-surface, #fff);
}

    .gg_card.shadow {
        box-shadow: 0 2px 5px #eee;
    }

    .gg_card .group_title {
        display: flex;
        align-items: center;
        gap: 5px;
        font-size: 15px;
        font-weight: 500;
    }

.status-label {
    font-weight: normal;
    padding: 5px 10px;
    border-radius: 5px;
    color: var(--gg-status-ink);
}

    .status-label.status-red {
        color: var(--gg-status-ink);
        background: var(--gg-status-red-bg);
    }

    .status-label.status-yellow {
        color: var(--gg-status-ink);
        background: var(--gg-status-yellow-bg);
    }

    .status-label.status-green {
        color: var(--gg-status-ink);
        background: var(--gg-status-green-bg);
    }

    .status-label.status-gray {
        color: var(--gg-status-ink);
        background: var(--gg-status-gray-bg);
    }

.indicator {
    font-size: 13px;
    background: none !important;
}

    .indicator::before {
        display: inline-block;
        content: "";
        width: 12px;
        height: 12px;
        border-radius: 50%;
        margin-right: 5px;
        margin-bottom: -1px;
    }

    .indicator.green::before {
        background: #53B670 !important;
    }

    .indicator.gray::before {
        background: #555 !important;
    }

    .indicator.yellow::before {
        background: darkorange !important;
    }

    .indicator.red::before {
        background: darkred !important;
    }

    .indicator.blue::before {
        background: darkblue !important;
    }

.color-danger {
    color: #F50000 !important;
}

.color-red {
    color: #F68D8D !important;
}

.color-yellow {
    color: #FFC536 !important;
}

.color-gold {
    color: #DAA520 !important;
}

.color-darkgold {
    color: #B8860B !important;
}

.color-green {
    color: #53B670 !important;
}

.color-link {
    color: var(--kendo-color-primary, #58AFF9) !important;
}

.color-primary {
    color: var(--kendo-color-on-app-surface, #000) !important;
}

.color-secondary {
    color: var(--kendo-color-subtle, #7F888A) !important;
}

.color-invert-primary {
    color: #fff !important;
}

.fs-24 {
    font-size: 24px !important;
}

.fs-20 {
    font-size: 20px !important;
}

.fs-18 {
    font-size: 18px !important;
}

.fs-16 {
    font-size: 16px !important;
}

.fs-15 {
    font-size: 15px !important;
}

.fs-14 {
    font-size: 14px !important;
}

.fs-13 {
    font-size: 13px !important;
}

.fs-12 {
    font-size: 12px !important;
}

.fw-600 {
    font-weight: 600 !important;
}

.fw-500 {
    font-weight: 500 !important;
}

.fw-400 {
    font-weight: 400 !important;
}

/*Data grid*/
.gg_element.k-grid {
    border: none !important;
}

    .gg_element.k-grid .k-grid-header {
        display: none;
    }

    .gg_element.k-grid table.k-grid-table tr:nth-child(even) {
        background: none;
    }

    .gg_element.k-grid table.k-grid-table td {
        border-bottom: 1px solid var(--kendo-color-border, #C2CBCD) !important;
        border-left: none !important;
        border-right: none !important;
    }

    .gg_element.k-grid table.k-grid-table .image_placeholder {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 75px;
        height: 50px;
        background: var(--kendo-color-base-subtle, #eee);
        border-radius: 5px;
    }

        .gg_element.k-grid table.k-grid-table .image_placeholder .k-icon {
            width: 24px;
            color: var(--kendo-color-subtle, #bbb);
        }

/*Image container/placeholder */
.img-cont {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    background: #ddd;
    border-radius: 5px;
    overflow: hidden;
}

    .img-cont.circle {
        border-radius: 50%;
    }

.wh-72 {
    width: 72px !important;
    height: 72px !important;
}

.wh-64 {
    width: 64px !important;
    height: 64px !important;
}

.wh-56 {
    width: 56px !important;
    height: 56px !important;
}

.wh-48 {
    width: 48px !important;
    height: 48px !important;
}

.wh-40 {
    width: 40px !important;
    height: 40px !important;
}

.wh-32 {
    width: 32px !important;
    height: 32px !important;
}

.wh-24 {
    width: 24px !important;
    height: 24px !important;
}

.img-cont > img {
    height: 100%;
    width: 100%;
    object-fit: cover;
}

.img-cont > .k-icon {
    color: var(--kendo-color-subtle, #888);
}

/* Editor */
.configurator-container {
    display: flex;
    height: 100%;
}

.listing-header {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

.edit_page_header {
    border-bottom: 1px solid var(--kendo-color-border, #E6EBEC);
}

    .edit_page_header > .gg_wrap {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 15px 20px;
    }

    .edit_page_header .actions {
        display: flex;
        align-items: center;
        gap: 10px;
    }

        .edit_page_header .actions a {
            display: flex;
            justify-content: center;
            align-items: center;
            width: 36px;
            height: 36px;
            border-radius: 18px;
            border: 1px solid var(--kendo-color-border, #C2CBCD);
            cursor: pointer;
            transition: all 0.2s linear;
        }

            .edit_page_header .actions a:hover {
                border-color: var(--kendo-color-on-app-surface, #000);
            }

            .edit_page_header .actions a img {
                width: 30px;
                height: 30px;
                object-fit: cover;
                border-radius: 15px;
            }

.edit_page_side {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    padding: 0px 15px;
    width: 32%;
    flex-shrink: 0;
    border-right: 1px solid var(--kendo-color-border, #E6EBEC);
    overflow-y: auto;
}

    .edit_page_side > a.side_back_button {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 36px;
        height: 36px;
        border-radius: 18px;
        background: var(--kendo-color-base-subtle, #E6EBEC);
        color: rgba(0,0,0,0.4);
        flex-shrink: 0;
        cursor: pointer;
    }

        .edit_page_side > a.side_back_button .k-icon {
            width: 20px;
            height: 20px;
        }

    .edit_page_side .side_content {
        flex: 1;
    }

        .edit_page_side .side_content h2, .edit_page_content h2 {
            color: var(--kendo-color-on-app-surface, #000);
        }

            .edit_page_side .side_content p.offer_name, .edit_page_content h2.field_name {
            }

        .edit_page_side .side_content p.offer_name, .edit_page_content p.field_label {
            font-size: 16px;
            color: var(--kendo-color-on-app-surface, #000);
        }

        .edit_page_side .side_content .tab_container {
            display: flex;
            gap: 5px;
            background: var(--kendo-color-base-subtle, #E6EBEC);
            padding: 4.5px 5px;
            margin: 30px 0;
            border-radius: 25px;
        }

            .edit_page_side .side_content .tab_container a {
                display: flex;
                justify-content: center;
                align-items: center;
                gap: 5px;
                flex: 1;
                text-align: center;
                padding: 8px 0;
                font-weight: 500;
                color: var(--kendo-color-on-app-surface, #000);
                border-radius: 20px;
                cursor: pointer;
                transition: all 0.2s linear;
            }

                .edit_page_side .side_content .tab_container a:not(.active):hover {
                    background: var(--kendo-color-surface, #fff);
                    opacity: 0.85;
                }

                .edit_page_side .side_content .tab_container a.active {
                    background: var(--kendo-color-surface, #fff);
                    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
                }

        .edit_page_side .side_content .offer_status {
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-size: 16px;
            font-weight: 500;
            padding: 10px 10px 10px 0px;
        }

            .edit_page_side .side_content .offer_status span.status_indicator {
                display: flex;
                align-items: center;
                gap: 5px;
                font-size: 14px;
                font-weight: 500;
                color: var(--kendo-color-on-app-surface, #000);
            }

                .edit_page_side .side_content .offer_status span.status_indicator > span {
                    width: 12px;
                    height: 12px;
                    border-radius: 6px;
                }

                .edit_page_side .side_content .offer_status span.status_indicator.live > span {
                    background: #53B670;
                }

                .edit_page_side .side_content .offer_status span.status_indicator.draft > span {
                    background: #555;
                }

                .edit_page_side .side_content .offer_status span.status_indicator.inactive > span {
                    background: darkorange;
                }

                .edit_page_side .side_content .offer_status span.status_indicator.deleted > span {
                    background: darkred;
                }

        .edit_page_side .side_content .editor_details_param_list {
            display: flex;
            flex-direction: column;
            gap: 20px;
            margin: 20px 0;
        }

.configurator-container > .edit_page_content {
    width: 100%;
}

.edit_page_content {
    display: flex;
    flex-direction: column;
    overflow-y: auto;
}

    .edit_page_content .form_cont {
        flex: 1;
        overflow-y: auto;
    }

        .edit_page_content .form_cont .form_header {
            position: sticky;
            top: 0;
            padding: 0 20px;
            background: var(--kendo-color-surface, #fff);
            z-index: 9;
        }

    .edit_page_content p.field_label {
        margin-bottom: 0;
    }

    .edit_page_content .buttons_cont {
        z-index: 999; /* ensure it covers underlying content */
        display: flex;
        justify-content: space-between;
        align-items: center;
        border-top: 1px solid var(--kendo-color-border, #E6EBEC);
        background: var(--kendo-color-surface, #fff); /* ensure it covers underlying content */
        padding: 20px;
        padding-bottom: calc(20px + env(safe-area-inset-bottom, 0)); /* fallback for older iOS */
        padding-bottom: calc(20px + constant(safe-area-inset-bottom));
    }

        .edit_page_content .buttons_cont .gg_button {
            font-weight: 500;
            justify-content: center;
        }

            .edit_page_content .buttons_cont .gg_button.gg_button_theme {
                min-width: 120px;
            }

.trip_name_field {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 20px;
    height: 65vh;
}

/* Forms */
.gg_form_group {
    background: var(--kendo-color-surface, #fff);
    border: 1px solid var(--kendo-color-border, #E6EBEC) !important;
    border-radius: 8px;
    padding: 0 20px 20px !important;
}

    .gg_form_group .k-form-legend {
        display: none;
    }

    .gg_form_group h3.gg_form_group_title {
        color: var(--kendo-color-on-app-surface, #000);
        font-size: 14px;
        border-bottom: 1px solid var(--kendo-color-border, #E6EBEC);
        padding-bottom: 10px;
        margin-right: -20px;
        margin-bottom: 15px;
    }

    .gg_form_group h3.gg_form_section_title {
        color: var(--kendo-color-on-app-surface, #000);
        font-size: 16px;
    }

    .gg_form_group .gg_form_item_cont {
        margin-top: 20px;
    }

        .gg_form_group .gg_form_item_cont span.field_label {
            display: inline-block;
            margin-bottom: 10px;
            color: var(--kendo-color-subtle, #444);
            font-size: 14px;
            font-weight: 500;
        }

/* Listing Gallery */
.gg_listing_card {
    display: block;
    border: 1px solid var(--kendo-color-border, #E8E8E8);
    border-radius: 10px;
    background: var(--kendo-color-surface, #fff);
    cursor: pointer;
    overflow: hidden;
    transition: all 0.2s linear;
}

.gg_listing_card_image {
    display: block;
    width: 100%;
    aspect-ratio: 1.5;
    object-fit: cover;
    text-align: center;
    /*background: var(--kendo-color-app-surface, #f5f5f5);*/
}

.gg_listing_card_details {
    padding: 15px;
}

.clear-user-relation {
    position: absolute;
    right: 5px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    font-size: 42px;
    color: #ff3f3f;
}

    .clear-user-relation:hover {
        color: #b90000;
    }

/*Loading skeletons*/
.k-skeleton.skl-h2 {
    height: 30px;
}

.k-skeleton.skl-p {
    height: 20px;
}

.k-skeleton.skl-span {
    height: 14px;
}

/*Media queries*/
/*Mobile*/
/*Size definition: --sm*/
@media only screen and (max-width: 580px) {

    /* 1/22/2026 Adam Patrick, Fixes for janky form layout on mobile.  */
    .edit_page_side {
        padding: 0;
    }

        .edit_page_side .side_content h2 {
            margin-left: 20px;
        }

        .edit_page_side .side_content p.offer_name {
            margin-left: 20px;
        }

    .edit_page_content .buttons_cont {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
    }

    .k-form-md .k-form-field {
        margin-block-start: 0;
        border-radius: 0;
        box-shadow: none;
        border-top: 1px solid #ccc;
    }

    .k-form .k-form-buttons {
        padding: 20px;
    }

    .hidden--sm {
        display: none !important;
    }

    .full-width--sm {
        width: 100% !important;
    }

    .full-height--sm {
        height: 100%;
    }

    .full-view-height--sm {
        height: 100vh !important;
    }

    .orientation-portrait--sm {
        aspect-ratio: 0.75;
    }

    .orientation-landscape--sm {
        aspect-ratio: 1.5;
    }

    .gg_card--sm {
        border: 1px solid var(--kendo-color-border, #E6EBEC);
        border-radius: 8px;
        background: var(--kendo-color-surface, #fff);
    }
    /*Grids & flex*/
    .gg_flex--sm {
        display: flex !important;
        flex-direction: row !important;
    }

    .gg_flex_column--sm {
        display: flex !important;
        flex-direction: column !important;
    }

    .gg_flex_column_reverse--sm {
        display: flex !important;
        flex-direction: column-reverse !important;
    }

    .align-self-end--sm {
        align-self: flex-end !important;
    }

    .align-center--sm {
        align-items: center;
    }

    .align-start--sm {
        align-items: start;
    }

    .gg_align_stretch--sm, .gg_page_content > .gg_page_header > .gg_page_actions.gg_align_stretch--sm, .gg_page_content > .gg_page_header > .gg_page_actions .gg_align_stretch--sm {
        align-items: stretch;
    }

    .gg_space_between--sm {
        justify-content: space-between !important;
    }

    .gg_grid_cols_1--sm {
        grid-template-columns: repeat(1, minmax(0px, 1fr)) !important;
    }

    .gg_grid_cols_2--sm {
        grid-template-columns: repeat(2, minmax(0px, 1fr)) !important;
    }

    .gg_grid_cols_3--sm {
        grid-template-columns: repeat(3, minmax(0px, 1fr)) !important;
    }

    .gg_gap_5--sm {
        gap: 5px !important;
    }

    .gg_gap_10--sm {
        gap: 10px !important;
    }

    .gg_gap_50--sm {
        gap: 50px !important;
    }

    .align-center--sm {
        align-items: center !important;
    }
    /*Font sizes*/
    .fs-10--sm {
        font-size: 10px !important;
    }

    .fs-16--sm {
        font-size: 16px !important;
    }

    .fs-18--sm {
        font-size: 18px !important;
    }

    .fs-20--sm {
        font-size: 20px !important;
    }
    /*Text alignments*/
    .text-center--sm {
        text-align: center !important;
    }

    .text-left--sm {
        text-align: left !important;
    }

    .text-right--sm {
        text-align: right !important;
    }
    /*Margins & paddings*/
    .m_0--sm {
        margin: 0px;
    }

    .mt_0--sm {
        margin: 0px;
    }

    .m_10--sm {
        margin: 10px !important;
    }

    .m_15--sm {
        margin: 15px !important;
    }

    .m_20--sm {
        margin: 20px !important;
    }

    .m_30--sm {
        margin: 30px !important;
    }

    .m_40--sm {
        margin: 40px !important;
    }

    .m_50--sm {
        margin: 50px !important;
    }

    .mt_5--sm {
        margin-top: 5px !important;
    }

    .mt_10--sm {
        margin-top: 10px !important;
    }

    .mt_15--sm {
        margin-top: 15px !important;
    }

    .mt_20--sm {
        margin-top: 20px !important;
    }

    .mt_30--sm {
        margin-top: 30px !important;
    }

    .mt_40--sm {
        margin-top: 40px !important;
    }

    .mt_50--sm {
        margin-top: 50px !important;
    }

    .mb_5--sm {
        margin-bottom: 5px !important;
    }

    .mb_10--sm {
        margin-bottom: 10px !important;
    }

    .mb_15--sm {
        margin-bottom: 15px !important;
    }

    .mb_20--sm {
        margin-bottom: 20px !important;
    }

    .mb_30--sm {
        margin-bottom: 30px !important;
    }

    .mb_40--sm {
        margin-bottom: 40px !important;
    }

    .mb_50--sm {
        margin-bottom: 50px !important;
    }

    .ml_5--sm {
        margin-left: 5px !important;
    }

    .ml_10--sm {
        margin-left: 10px !important;
    }

    .ml_15--sm {
        margin-left: 15px !important;
    }

    .ml_20--sm {
        margin-left: 20px !important;
    }

    .ml_30--sm {
        margin-left: 30px !important;
    }

    .ml_40--sm {
        margin-left: 40px !important;
    }

    .ml_50--sm {
        margin-left: 50px !important;
    }

    .mr_5--sm {
        margin-right: 5px !important;
    }

    .mr_10--sm {
        margin-right: 10px !important;
    }

    .mr_15--sm {
        margin-right: 15px !important;
    }

    .mr_20--sm {
        margin-right: 20px !important;
    }

    .mr_30--sm {
        margin-right: 30px !important;
    }

    .mr_40--sm {
        margin-right: 40px !important;
    }

    .mr_50--sm {
        margin-right: 50px !important;
    }

    .mh_10--sm {
        margin-left: 10px !important;
        margin-right: 10px !important;
    }

    .mh_15--sm {
        margin-left: 15px !important;
        margin-right: 15px !important;
    }

    .mh_20--sm {
        margin-left: 20px !important;
        margin-right: 20px !important;
    }

    .mh_30--sm {
        margin-left: 30px !important;
        margin-right: 30px !important;
    }

    .mh_40--sm {
        margin-left: 40px !important;
        margin-right: 40px !important;
    }

    .mh_50--sm {
        margin-left: 50px !important;
        margin-right: 50px !important;
    }

    .mv_10--sm {
        margin-top: 10px !important;
        margin-bottom: 10px !important;
    }

    .mv_15--sm {
        margin-top: 15px !important;
        margin-bottom: 15px !important;
    }

    .mv_20--sm {
        margin-top: 20px !important;
        margin-bottom: 20px !important;
    }

    .mv_30--sm {
        margin-top: 30px !important;
        margin-bottom: 30px !important;
    }

    .mv_40--sm {
        margin-top: 40px !important;
        margin-bottom: 40px !important;
    }

    .mv_50--sm {
        margin-top: 50px !important;
        margin-bottom: 50px !important;
    }

    .p_10--sm {
        padding: 10px !important;
    }

    .p_15--sm {
        padding: 15px !important;
    }

    .p_20--sm {
        padding: 20px !important;
    }

    .p_30--sm {
        padding: 30px !important;
    }

    .p_40--sm {
        padding: 40px !important;
    }

    .p_50--sm {
        padding: 50px !important;
    }

    .pt_10--sm {
        padding-top: 10px !important;
    }

    .pt_15--sm {
        padding-top: 15px !important;
    }

    .pt_20--sm {
        padding-top: 20px !important;
    }

    .pt_30--sm {
        padding-top: 30px !important;
    }

    .pt_40--sm {
        padding-top: 40px !important;
    }

    .pt_50--sm {
        padding-top: 50px !important;
    }

    .pb_10--sm {
        padding-bottom: 10px !important;
    }

    .pb_15--sm {
        padding-bottom: 15px !important;
    }

    .pb_20--sm {
        padding-bottom: 20px !important;
    }

    .pb_30--sm {
        padding-bottom: 30px !important;
    }

    .pb_40--sm {
        padding-bottom: 40px !important;
    }

    .pb_50--sm {
        padding-bottom: 50px !important;
    }

    .pr_10--sm {
        padding-right: 10px !important;
    }

    .pr_15--sm {
        padding-right: 15px !important;
    }

    .pr_20--sm {
        padding-right: 20px !important;
    }

    .pr_30--sm {
        padding-right: 30px !important;
    }

    .pr_40--sm {
        padding-right: 40px !important;
    }

    .pr_50--sm {
        padding-right: 50px !important;
    }

    .pv_10--sm {
        padding-top: 10px !important;
        padding-bottom: 10px !important;
    }

    .pv_15--sm {
        padding-top: 15px !important;
        padding-bottom: 15px !important;
    }

    .pv_20--sm {
        padding-top: 20px !important;
        padding-bottom: 20px !important;
    }

    .pv_30--sm {
        padding-top: 30px !important;
        padding-bottom: 30px !important;
    }

    .pv_40--sm {
        padding-top: 40px !important;
        padding-bottom: 40px !important;
    }

    .pv_50--sm {
        padding-top: 50px !important;
        padding-bottom: 50px !important;
    }

    .ph_10--sm {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    .ph_15--sm {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    .ph_20--sm {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    .ph_30--sm {
        padding-left: 30px !important;
        padding-right: 30px !important;
    }

    .ph_40--sm {
        padding-left: 40px !important;
        padding-right: 40px !important;
    }

    .ph_50--sm {
        padding-left: 50px !important;
        padding-right: 50px !important;
    }

    .p_0--sm, .gg_calendar_event.p_0--sm, .gg_table_cont table.gg_table_body td.p_0--sm {
        padding: 0;
    }

    .pt_0--sm, .gg_table_cont table.gg_table_body td.pt_0--sm {
        padding-top: 0;
    }

    .pv_0--sm, .gg_table_cont table.gg_table_body td.pv_0--sm {
        padding-top: 0;
        padding-bottom: 0;
    }

    .ph_0--sm, .gg_calendar_event.ph_0--sm {
        padding-left: 0;
        padding-right: 0;
    }

    .text-nowrap--sm {
        white-space: nowrap;
    }

    .booking-form > .form-cal-cont > .gg_card {
        overflow: scroll;
        height: calc(100vh - 30px);
        box-shadow: none;
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
        margin-bottom: 0 !important;
        padding-bottom: 74px !important;
    }

        .booking-form > .form-cal-cont > .gg_card .field-item .nl-calendar .k-calendar-header button {
            font-size: 14px;
            padding: 6px;
        }

        .booking-form > .form-cal-cont > .gg_card .field-item .nl-calendar .k-calendar-view {
            width: unset;
            inline-size: unset;
            padding-bottom: 10px;
        }

    .gg_scheduler .k-heading-cell > span.k-nav-day {
        letter-spacing: 10px;
        width: 16px;
        overflow: hidden;
    }

    .gg_scheduler .k-scheduler-toolbar .k-toolbar-separator {
        display: none;
    }

    .k-window-content {
        width: 90vw;
    }

    .k-window.full-width--sm .k-window-content {
        width: 100%;
    }

    .gg_full_window .k-window-titlebar, .gg_full_window .k-window-content {
        padding: 10px;
    }

    .gg_full_window .content-container > .content-left {
        border: none !important;
    }

    .gg_element .k-button-group {
        flex-direction: column;
    }

    .gg_drawer_container.k-window {
        top: 0;
        left: 0 !important;
        width: 100vw !important;
        height: 100vh;
    }

    .connection-status-window.k-window {
        width: calc(100vw - 16px) !important;
        max-width: calc(100vw - 16px) !important;
    }

    .gg_drawer_container .k-window-content {
        width: 100vw;
    }

    .configurator-container {
        margin: -16px;
    }

    .edit_page_side {
        width: 100%;
        border: none;
    }

        .edit_page_side > .side_content > .tab_container {
            gap: 0;
            border-radius: 0;
        }

            .edit_page_side > .side_content > .tab_container a {
                padding: 8px;
            }

    .configurator-container > .edit_page_content, .configurator-container > .edit_page_wrapper {
        position: absolute;
        background: var(--kendo-color-surface, #fff);
        height: calc(100dvh - 56px - env(safe-area-inset-bottom, 0px));
        z-index: 9;
    }

    .configurator-container > .edit_page_wrapper {
        display: flex;
        flex-direction: column;
        width: 100%;
    }

        .configurator-container > .edit_page_wrapper > .edit_page_content {
            height: 100%;
        }

    .settings-tabs .k-tabstrip-items-wrapper {
        border: none !important;
    }

        .settings-tabs .k-tabstrip-items-wrapper ul.k-tabstrip-items {
            display: flex;
            flex-direction: column;
            gap: 10px;
        }

            .settings-tabs .k-tabstrip-items-wrapper ul.k-tabstrip-items .k-tabstrip-item, .settings-tabs .k-tabstrip-items-wrapper ul.k-tabstrip-items .k-tabstrip-item.k-active {
                color: #ff6358;
                border: 1px solid rgba(0, 0, 0, 0.08);
                border-bottom-color: rgba(0, 0, 0, 0.08) !important;
                border-radius: 3px;
            }

    .settings-tabs.k-tabstrip .k-tabstrip-content {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        background: var(--kendo-color-surface, #fff);
        z-index: 999;
    }

    .settings-tabs.k-tabstrip.hide-content .k-tabstrip-content {
        display: none !important;
    }

    .reschedule_config .field-group {
        margin-left: -15px;
        margin-right: -15px;
        border-radius: 0;
        border-left: none;
        border-right: none;
    }

        .reschedule_config .field-group table.k-calendar-table, .custom-booking .field-item table.k-calendar-table {
            margin-left: 0;
        }

    .booking-list .nl_page_tab_links {
        margin-left: -16px;
        margin-right: -16px;
    }

        .booking-list .nl_page_tab_links a {
            padding: 12px 20px 14px 20px;
        }

            .booking-list .nl_page_tab_links a.active {
                padding: 14px;
            }

    .mobile-calendar-nav {
        height: 100px;
    }
    /*.booking-form > .form-cal-cont .gg_card > .k-button.gg_button{*/
    /*    display:none !important;*/
    /*}*/
}

/*Tablet, mobile landscape*/
/*Size definition: --md*/
@media only screen and (min-width: 581px) and (max-width: 768px) {
    .gg_mobile-calendar-selector {
        display: none;
    }

    .hidden--md {
        display: none !important;
    }

    .gg_card--md {
        border: 1px solid var(--kendo-color-border, #E6EBEC);
        border-radius: 8px;
        background: var(--kendo-color-surface, #fff);
    }

    .full-width--md {
        width: 100% !important;
    }

    .half-width--md {
        width: 50% !important;
    }

    .full-height--md {
        height: 100vh !important;
    }

    .gg_flex--md {
        display: flex !important;
        flex-direction: row !important;
    }

    .gg_flex_column--md {
        display: flex !important;
        flex-direction: column !important;
    }

    .gg_flex_column_reverse--md {
        display: flex !important;
        flex-direction: column-reverse !important;
    }

    .gg_space_between--md {
        justify-content: space-between !important;
    }

    .align-center--md {
        align-items: center;
    }

    .gg_grid_cols_1--md {
        grid-template-columns: repeat(1, minmax(0px, 1fr)) !important;
    }

    .gg_grid_cols_2--md {
        grid-template-columns: repeat(2, minmax(0px, 1fr)) !important;
    }

    .gg_grid_cols_3--md {
        grid-template-columns: repeat(3, minmax(0px, 1fr)) !important;
    }

    .gg_gap_10--md {
        gap: 10px !important;
    }

    .gg_gap_50--md {
        gap: 50px !important;
    }

    .align-center--md {
        align-items: center !important;
    }

    .gg_flex_wrap--md {
        flex-wrap: wrap !important;
    }

    .mt_0--md {
        margin: 0px;
    }

    .mb_10--md {
        margin-bottom: 10px !important;
    }

    .p_10--md {
        padding: 10px !important;
    }

    .p_15--md {
        padding: 15px !important;
    }

    .pb_10--md {
        padding-bottom: 10px !important;
    }

    .ph_20--md {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    .pb_50--md {
        padding-bottom: 50px !important;
    }

    .booking-form > .form-cal-cont .gg_card {
        overflow: scroll;
        height: calc(100vh - 30px);
        box-shadow: none;
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
        margin-bottom: 0 !important;
        padding-bottom: 74px !important;
    }

    .gg_popup_window .k-window-content {
        width: 60vw;
    }

    .configurator-container {
        margin: -16px;
    }

    .edit_page_side {
        width: 100%;
        border: none;
    }

    .configurator-container > .edit_page_content, .configurator-container > .edit_page_wrapper {
        position: absolute;
        background: var(--kendo-color-surface, #fff);
        height: calc(100vh - 56px);
        z-index: 9;
    }

    .configurator-container > .edit_page_wrapper {
        display: flex;
        flex-direction: column;
        width: 100%;
    }

        .configurator-container > .edit_page_wrapper > .edit_page_content {
            height: 100%;
        }

    .mobile-calendar-nav {
        height: 100px;
    }
    /*.booking-form > .form-cal-cont .gg_card > .k-button.gg_button{*/
    /*    display:none !important;*/
    /*}*/
}

/*Small screen*/
/*Size definition: --lg*/
@media only screen and (min-width: 769px) and (max-width: 1240px) {
    .hidden--lg {
        display: none !important;
    }

    .full-width--lg {
        width: 100% !important;
    }

    .one-third-width--lg {
        width: 33% !important;
    }

    .width-40pc--lg {
        width: 40% !important;
    }

    .half-width--lg {
        width: 50% !important;
    }

    .gg_flex_column_reverse--lg {
        display: flex !important;
        flex-direction: column-reverse !important;
    }

    .gg_card--lg {
        border: 1px solid var(--kendo-color-border, #E6EBEC);
        border-radius: 8px;
        background: var(--kendo-color-surface, #fff);
    }

    .gg_grid_cols_1--lg {
        grid-template-columns: repeat(1, minmax(0px, 1fr)) !important;
    }

    .gg_grid_cols_2--lg {
        grid-template-columns: repeat(2, minmax(0px, 1fr)) !important;
    }

    .gg_grid_cols_3--lg {
        grid-template-columns: repeat(3, minmax(0px, 1fr)) !important;
    }

    .gg_gap_20--lg {
        gap: 20px !important;
    }

    .ph_20--lg {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    .mt_0--lg {
        margin: 0px;
    }

    .mobile-calendar-nav {
        height: 60px;
    }
}

.deny-click {
    cursor: not-allowed;
}

/*All large screens*/
/*Size definition: --xlg*/
@media only screen and (min-width: 1241px) {
    .hidden--xlg {
        display: none !important;
    }

    .gg_card--xlg {
        border: 1px solid var(--kendo-color-border, #E6EBEC);
        border-radius: 8px;
        background: var(--kendo-color-surface, #fff);
    }

    .gg_flex--xlg {
        display: flex;
        flex-direction: row !important;
    }

    .gg_space_between--xlg {
        justify-content: space-between;
    }

    .mt_0--xlg {
        margin: 0px;
    }

    .mobile-calendar-nav {
        height: 60px;
    }
}

.overflow_y_scroll {
    overflow-y: auto;
}

@media only screen and (max-width: 580px) {
    .listing-form {
        margin-bottom: 100px;
    }
}

@media only screen and (max-width: 580px) {
    .summary-page-detail {
        display: flex;
        flex-direction: column;
    }
}

.dashboard-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px; /* spacing between cards */
}

.stat-icon-size {
    font-size: 54px; /* ~48px if your base font is 16px */
    height: 54px;
    width: 54px;
}

@media (min-width: 768px) {
    .dashboard-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1200px) {
    .dashboard-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.notification-container {
    margin-bottom: 16px;
    margin-right: 16px;
}

@media only screen and (max-width: 580px) {
    .notification-container {
        width: 100%;
    }
}

@media only screen and (min-width: 581px) {
    .notification-container {
        width: 580px;
    }
}

/* Stuff for the authorization (password) pages */

.auth-container {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    inset: 0;
    width: 100%;
    box-sizing: border-box;
    min-height: 100dvh;
    min-height: -webkit-fill-available;
    padding-top: env(safe-area-inset-top, 0);
    padding-bottom: env(safe-area-inset-bottom, 0);
    padding-left: env(safe-area-inset-left, 0);
    padding-right: env(safe-area-inset-right, 0);
    background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
    z-index: 1;
}

/* Splash: gradient fills edge-to-edge; safe-area insets live on inner content. */
.auth-container:has(.auth-splash) {
    padding: 0;
    overflow: hidden;
    width: 100%;
    height: 100%;
    min-height: 100%;
    min-height: 100dvh;
    min-height: -webkit-fill-available;
    background: transparent;
}

.auth-container:has(.auth-splash)::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: var(--kendo-color-app-surface, #f5f7fa);
    background-image: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
    z-index: -1;
}

.auth-splash {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    flex: 1;
    width: 100%;
    min-height: 100%;
    min-height: 100dvh;
    min-height: -webkit-fill-available;
    padding-top: calc(3rem + env(safe-area-inset-top, 0px));
    padding-bottom: 3rem;
    padding-left: calc(2rem + env(safe-area-inset-left, 0px));
    padding-right: calc(2rem + env(safe-area-inset-right, 0px));
    box-sizing: border-box;
}

@media (display-mode: standalone) {
    html:has(.auth-splash),
    html:has(.auth-card) {
        min-height: calc(100% + env(safe-area-inset-top, 0px));
    }

    body:has(.auth-splash),
    body:has(.auth-card)#nlbody,
    body:has(.auth-splash),
    body:has(.auth-card)#nlbody {
        min-height: 100dvh;
        min-height: -webkit-fill-available;
    }

    .auth-container:has(.auth-splash),
    .auth-container:has(.auth-card) {
        position: fixed;
        inset: 0;
    }
}

.auth-card {
    background: var(--kendo-color-surface, #fff);
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
    padding: 32px;
    width: 100%;
    max-width: 450px;
    position: relative;
}

@media (max-width: 450px) {
    body:has(.auth-card) {
        background: var(--kendo-color-surface, #fff);
    }

    .auth-container:has(.auth-card) {
        flex-direction: column;
        align-items: stretch;
        justify-content: stretch;
        padding: 0;
        background: var(--kendo-color-surface, #fff);
    }

    .auth-card {
        flex: 1;
        min-height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: stretch;
        align-self: stretch;
        max-width: none;
        border-radius: 0;
        padding-top: calc(1.5rem + env(safe-area-inset-top, 0));
        padding-bottom: calc(1.5rem + env(safe-area-inset-bottom, 0));
        padding-left: calc(1.5rem + env(safe-area-inset-left, 0));
        padding-right: calc(1.5rem + env(safe-area-inset-right, 0));
        border: none;
        box-shadow: none;
        box-sizing: border-box;
    }

    .loading-overlay {
        border-radius: 0;
    }
}

.loading-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: color-mix(in srgb, var(--kendo-color-app-surface, #fff) 95%, transparent);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

/*Media queries*/
/*Mobile*/
/*Size definition: --sm*/
@media only screen and (max-width: 580px) {
    /* Mobile auth card styling handled in the max-width: 450px block above. */
}

.auth-back-button {
    position: absolute;
    top: 16px;
    left: 16px;
}

.auth-logo {
    display: flex;
    justify-content: center;
    margin-bottom: 24px;
    margin-top: 24px;
}

    .auth-logo img {
        max-width: 200px;
        height: auto;
    }

.auth-header {
    text-align: center;
    margin-bottom: 24px;
}

    .auth-header h4 {
        font-size: 24px;
        font-weight: 600;
        margin: 0 0 8px 0;
        color: var(--kendo-color-on-app-surface, #333);
    }

    .auth-header p {
        margin: 0;
        color: var(--kendo-color-subtle, #666);
        font-size: 14px;
    }

.form-actions {
    display: flex;
    justify-content: space-between;
    gap: 8px;
}

.form-field {
    margin-bottom: 20px;
}

    /* Style Telerik textboxes to match MudBlazor outlined variant */
    .form-field .k-floating-label-container {
        width: 100%;
    }

    .form-field .k-textbox,
    .form-field .k-input {
        width: 100% !important;
        border-radius: 8px;
        border: 1px solid rgba(0, 0, 0, 0.23);
        font-size: 16px;
        padding: 14px 16px;
    }

        .form-field .k-textbox:hover,
        .form-field .k-input:hover {
            border-color: rgba(0, 0, 0, 0.87);
        }

        .form-field .k-textbox:focus,
        .form-field .k-input:focus {
            border-color: var(--kendo-color-primary, #365b81);
            border-width: 2px;
            outline: none;
        }

    .form-field .k-floating-label {
        font-size: 16px;
        line-height: 48px;
    }

.form-submit {
    display: flex;
    justify-content: center;
}

    .form-submit .k-button {
        width: 100%;
        height: 48px;
        border-radius: 8px;
        font-size: 16px;
        font-weight: 500;
        background-color: var(--kendo-color-primary, #365b81);
        border-color: var(--kendo-color-primary, #365b81);
        color: white;
    }

        .form-submit .k-button:hover:not(:disabled) {
            background-color: var(--kendo-color-primary, #2d4a68);
            border-color: var(--kendo-color-primary, #2d4a68);
        }

        .form-submit .k-button:active:not(:disabled) {
            background-color: #24394f;
            border-color: #24394f;
        }

        .form-submit .k-button:disabled {
            opacity: 0.6;
            cursor: not-allowed;
        }

/* ------------------------------------ */

/* ---- What's New (inbox, nudge, timeline) ---- */
.whats-new-inbox {
    position: relative;
    display: inline-flex;
    align-items: center;
}
.whats-new-inbox.has-new .whats-new-inbox-trigger {
    color: #e67e22;
    filter: drop-shadow(0 0 4px rgba(230, 126, 34, 0.65));
}
.whats-new-inbox-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: min(360px, 92vw);
    max-height: 420px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background: var(--kendo-color-surface, #fff);
    border: 1px solid var(--kendo-color-border, #dde3ea);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    z-index: 1200;
}
.whats-new-inbox-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--kendo-color-border, #eef2f6);
}
.whats-new-inbox-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    /* 32px keeps a thumb-sized target; negative margin holds the header height */
    min-width: 32px;
    min-height: 32px;
    margin: -5px -5px -5px 0;
    padding: 0;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: var(--kendo-color-subtle, #4a6274);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
}
.whats-new-inbox-close:hover {
    background: var(--kendo-color-base-subtle, rgba(0, 0, 0, 0.06));
}
/* Scrim only exists for the phone bottom sheet; see the 480px block below. */
.whats-new-inbox-scrim {
    display: none;
}
.whats-new-inbox-box {
    overflow-y: auto;
    padding: 8px 14px 14px;
}
.whats-new-inbox-footer {
    display: flex;
    justify-content: flex-end;
    padding: 10px 14px 12px;
    border-top: 1px solid var(--kendo-color-border, #eef2f6);
}
.whats-new-inbox-changelog {
    font-size: 0.9rem;
}
/* The dropdown is anchored to the bell, which sits mid-bar, so a 360px card runs
   off the left edge on narrow screens. Pin it under the app bar instead.
   Offset math tracks .gg-appbar: height + top/bottom padding + 1px border. */
@media (max-width: 768px) {
    .whats-new-inbox-dropdown {
        position: fixed;
        top: calc(env(safe-area-inset-top, 0px) + var(--appbar-height, 40px) + (2 * var(--appbar-vertical-padding, 6px)) + 1px);
        left: 8px;
        right: 8px;
        width: auto;
        max-height: calc(100vh - 120px);
        max-height: min(420px, calc(100dvh - 120px));
    }
}
/* Phones: bottom sheet, rail to rail, so the footer link stays in thumb reach. */
@media (max-width: 480px) {
    .whats-new-inbox-scrim {
        display: block;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.35);
        z-index: 1199;
    }
    .whats-new-inbox-dropdown {
        top: auto;
        bottom: 0;
        left: 0;
        right: 0;
        max-height: 70vh;
        max-height: 70dvh;
        border-radius: 12px 12px 0 0;
        border-bottom: none;
        padding-bottom: env(safe-area-inset-bottom, 0px);
        box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.18);
    }
}
.whats-new-item {
    padding: 10px 0;
    border-bottom: 1px solid var(--kendo-color-border, #f0f3f6);
}
.whats-new-item:last-child {
    border-bottom: none;
}
.whats-new-item-date {
    font-size: 0.75rem;
    color: var(--kendo-color-subtle, #6b7c8f);
    margin-bottom: 4px;
}
.whats-new-item-description {
    font-size: 0.9rem;
    line-height: 1.4;
}
.whats-new-page-header {
    margin-bottom: 1rem;
}
.whats-new-page-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}
.whats-new-page-title {
    margin: 0;
    color: var(--kendo-color-primary, #007bff);
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1.2;
}
.whats-new-page-description {
    margin: 0 0 1rem;
    color: var(--kendo-color-on-app-surface, #424242);
}
.whats-new-manage-btn {
    flex-shrink: 0;
}
.whats-new-nudge {
    display: grid;
    grid-template-rows: 1fr;
    overflow: hidden;
    background: var(--kendo-color-primary-subtle, #e8f4fc);
    border-bottom: 1px solid var(--kendo-color-border, #b6d7ea);
    color: var(--kendo-color-on-app-surface, #212529);
    transition: grid-template-rows 0.28s ease, opacity 0.28s ease, border-bottom-color 0.28s ease;
}
.whats-new-nudge.is-closing {
    grid-template-rows: 0fr;
    opacity: 0;
    border-bottom-color: transparent;
}
.whats-new-nudge-inner {
    min-height: 0;
    overflow: hidden;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
    box-sizing: border-box;
}
.whats-new-nudge-body {
    flex: 1;
    font-size: 0.95rem;
    color: var(--kendo-color-on-app-surface, #212529);
}
.whats-new-nudge-body > :last-child {
    margin-bottom: 0;
}
.whats-new-nudge-close {
    border: none;
    background: transparent;
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    color: var(--kendo-color-subtle, #4a6274);
    flex-shrink: 0;
    padding: 0 4px;
}
.whats-new-nudge-close:disabled {
    cursor: default;
    opacity: 0.5;
}
.whats-new-timeline {
    max-width: 840px;
    margin: 0;
    padding: 8px 0 40px;
}
.whats-new-timeline-item {
    display: grid;
    grid-template-columns: 110px 24px 1fr;
    gap: 12px;
    margin-bottom: 24px;
}
.whats-new-timeline-date {
    text-align: right;
    font-size: 0.85rem;
    color: var(--kendo-color-subtle, #6b7c8f);
    padding-top: 4px;
}
.whats-new-timeline-rail {
    position: relative;
    display: flex;
    justify-content: center;
}
.whats-new-timeline-rail::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: -24px;
    width: 2px;
    background: var(--kendo-color-border, #d9e2ec);
}
.whats-new-timeline-dot {
    width: 12px;
    height: 12px;
    margin-top: 6px;
    border-radius: 50%;
    background: #9aa8b6;
    z-index: 1;
}
.whats-new-timeline-item.is-new .whats-new-timeline-dot {
    background: #e67e22;
}
.whats-new-timeline-content {
    background: var(--kendo-color-surface, #fff);
    border: 1px solid var(--kendo-color-border, #e6edf3);
    border-radius: 8px;
    padding: 14px 16px;
}
.whats-new-timeline-item.is-new .whats-new-timeline-content {
    border-color: #f0c48a;
    box-shadow: 0 0 0 1px rgba(230, 126, 34, 0.15);
}
.whats-new-badge {
    display: inline-block;
    margin-bottom: 8px;
    padding: 2px 8px;
    border-radius: 999px;
    background: #e67e22;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
}
.whats-new-admin-preview {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.whats-new-html-source textarea,
textarea.whats-new-html-source {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.85rem;
}
.whats-new-field-help {
    display: inline-flex;
    align-items: center;
    color: var(--kendo-color-subtle, #6b7c8f);
    cursor: help;
}
.whats-new-field-help:hover {
    color: var(--kendo-color-primary, #2d4a68);
}

/*
 * When a Telerik adaptive action sheet is open (DateTimePicker Set/Cancel, etc.),
 * hide GoGuide chrome that stacks above the sheet on real iPhones: the app bar
 * clips the sheet titlebar (X / Date|Time tabs), the fixed edit footer covers
 * Set/Cancel, and the time-off Telerik window footer (.schedule-edit-window
 * .k-window-actions) does the same. Laptop device-mode often misses safe-area
 * padding so the bug hides.
 *
 * The gate requires the inner .k-actionsheet, not just the container. The container
 * is a fixed full-viewport shell Telerik keeps in the root component, so keying on it
 * alone can leave this chrome hidden for the life of the page - which is why the app
 * bar goes missing on pages holding an adaptive picker even with no sheet open.
 * Scoped to .schedule-edit-window so a sheet footer is never mistaken for a window
 * footer (that blanket .k-window-actions miss wiped Set/Cancel earlier).
 */
body:has(.k-actionsheet-container .k-actionsheet) .gg-appbar,
body:has(.k-actionsheet-container .k-actionsheet) .edit_page_content .buttons_cont,
body:has(.k-actionsheet-container .k-actionsheet) .config-bottom-bar,
body:has(.k-actionsheet-container .k-actionsheet) .schedule-edit-window .k-window-actions {
    visibility: hidden;
    pointer-events: none;
}

/*
 * A fullscreen sheet spans the notch. Even with the sheet above .safe-area-top, stand
 * the strip down while a sheet is open so the black band cannot land on the titlebar.
 * Same move as the auth-page rule.
 */
body:has(.k-actionsheet-container .k-actionsheet) .safe-area-top {
    display: none;
}

/* Thin dark escape hatch: color-scheme + notch. Surfaces follow Kendo tokens. */
html[data-theme="dark"] {
    --safe-area-color: #1a1d20;
    color-scheme: dark;
    /* Muted callout washes so Admin dark does not glow Bootstrap pastels. */
    --gg-callout-warning-bg: #3d3520;
    --gg-callout-warning-ink: #f0e6b8;
    --gg-callout-warning-border: #c9a227;
    --gg-callout-success-bg: #1e3a28;
    --gg-callout-success-ink: #b7e0c2;
    --gg-callout-success-border: #3d9b5f;
    --gg-callout-info-bg: #1a2f45;
    --gg-callout-info-ink: #b3d4f5;
    --gg-callout-info-border: #4a8fd4;
    --gg-callout-danger-bg: #3a1f24;
    --gg-callout-danger-ink: #f0b8bf;
    --gg-callout-danger-border: #d95363;
}

h4 {
    margin-block-start: 0px;
    margin-block-end: 5px;
}

p {
    margin: 0px;
}

.d-flex {
    display: flex !important;
}

.fs-18--sm {
    margin-block: 0px;
}

.ActionsEdit__Form {
    font-weight: 200;
    font-size: 14px;
}
.ActionsEdit__Form > label {
    display: inline-block;
}

.k-input,
.k-picker {
    font-size: 16px;
}

.k-grid {
}

.k-radio-list-item {
    padding-block-start: 4px;
    padding-block-end: 4px;
}

.k-switch {
    zoom: 150%
}