/* =========================================
   Booknetic Modern Design System (Consolidated)
   Single Source of Truth for Frontend & Backend
   Includes: Booking Widget, Auth, SaaS Admin, Vendor Dashboard
   ========================================= */

/* 1. Variables & Tokens */
:root {
    /* Base Surfaces */
    --bk-base-100: #ffffff;
    --bk-base-200: #f8f8f8;
    --bk-base-300: #f1f1f1;
    --bk-base-content: #0f0f0f;

    --bk-surface: var(--bk-base-100);
    --bk-surface-muted: var(--bk-base-200);
    --bk-surface-elevated: var(--bk-base-100);

    /* Dimensions */
    --bk-radius-selector: 0.25rem;
    --bk-radius-field: 0.5rem;
    --bk-radius-box: 1rem;
    --bk-radius-round: 50rem;

    --bk-spacing-xs: 0.25rem;
    --bk-spacing-sm: 0.5rem;
    --bk-spacing-md: 1rem;
    --bk-spacing-lg: 1.5rem;
    --bk-spacing-xl: 2rem;

    /* Borders */
    --bk-border: #e3e6ea;
    --bk-border-strong: #cfd5dc;
    --bk-border-focus: #233b4d;
    --bk-border-width: 0.0625rem;

    /* Bridge Variable for Legacy Compatibility */
    --bk-border-color: var(--bk-border, #e3e6ea);

    /* Brand Colors */
    --bk-primary-100: #e5ebf1;
    --bk-primary-500: #233b4d;
    --bk-primary-600: #1c2f3e;
    --bk-primary-content: #ffffff;

    --bk-accent-100: #ffe6cc;
    --bk-accent-500: #ff6f00;
    --bk-accent-600: #e65f00;
    --bk-accent-content: #ffffff;

    --bk-neutral: #949494;
    --bk-neutral-content: #ffffff;

    /* Functional Colors */
    --bk-success: #27be69;
    --bk-success-content: #082615;
    --bk-success-soft: #e8f6ef;

    --bk-warning: #ffbf0f;
    --bk-warning-content: #382900;
    --bk-warning-soft: #fff7e0;

    --bk-error: #f2415a;
    --bk-error-content: #39040b;
    --bk-error-soft: #ffebef;

    --bk-info: #6dc0ff;

    /* Text Colors */
    --bk-text-primary: #0f0f0f;
    --bk-text-secondary: #4a5561;
    --bk-text-muted: #6b7280;
    --bk-text-inverse: #ffffff;

    /* Effects */
    --bk-shadow-soft: 0 0.0625rem 0.125rem rgba(0, 0, 0, 0.05);
    --bk-shadow-hover: 0 0.375rem 0.75rem rgba(0, 0, 0, 0.08);
    --bk-focus-ring: 0 0 0 0.1875rem rgba(35, 59, 77, 0.25);
    --bk-transition: 150ms ease;

    /* Aliases */
    --bk-primary: var(--bk-primary-500);
    --bk-accent: var(--bk-accent-500);
}

/* 2. Global Reset & Base */
html {
    overflow-x: hidden;
    font-size: 100%;
}

body {
    background: var(--bk-base-200, #ffffff);
    /* Force white/neutral */
    color: var(--bk-text-primary);
    font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    margin: 0;
    line-height: 1.5;
    overflow-x: hidden;
}

.hidden-important {
    display: none !important;
}

a {
    text-decoration: none;
    color: inherit;
    transition: color var(--bk-transition);
}

ul,
ol {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* Fix Bootstrap Icons (Missing Glyphs) */
.bi::before,
[class^="bi-"]::before,
[class*=" bi-"]::before {
    display: inline-block;
    font-family: "bootstrap-icons";
    /* Ensure this matches the loaded font */
    font-style: normal;
    font-weight: normal;
    /* Icons usually need normal weight */
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    vertical-align: -.125em;
    -webkit-font-smoothing: antialiased;
}

/* 3. Common Components */

/* Buttons */
.btn,
.bkntc-btn,
.booknetic_btn_primary,
.booknetic_btn_secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1.25rem;
    font-size: 0.875rem;
    font-weight: 500;
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-surface);
    color: var(--bk-text-primary);
    cursor: pointer;
    transition: all var(--bk-transition);
    line-height: 1.5;
    gap: 0.5rem;
    min-height: 2.375rem;
    box-shadow: none;
}

.btn:hover {
    background: var(--bk-primary-100);
    border-color: var(--bk-border-strong);
}

/* Primary Button (Orange/Accent Default) */
.btn-primary,
.bkntc-btn-primary,
.booknetic_btn_primary {
    background: var(--bk-accent);
    border-color: var(--bk-accent);
    color: var(--bk-text-inverse);
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.8rem;
    letter-spacing: 0.02em;
}

.booknetic_btn_secondary {
    background: var(--bk-surface);
    border-color: var(--bk-border-strong);
    color: var(--bk-text-primary);
    font-weight: 600;
}

.booknetic_btn_secondary:hover,
.booknetic_btn_secondary:focus {
    background: var(--bk-base-200);
    border-color: var(--bk-accent);
    color: var(--bk-text-primary);
}

.btn-primary:hover,
.bkntc-btn-primary:hover,
.booknetic_btn_primary:hover,
.btn-primary:focus {
    background: #e66400;
    /* Darker orange */
    border-color: #e66400;
    color: #fff;
}

.btn-outline-primary {
    background: transparent;
    border-color: var(--bk-accent);
    color: var(--bk-accent);
    font-weight: 600;
}

.btn-outline-primary:hover {
    background: var(--bk-accent);
    color: var(--bk-text-inverse);
}

.btn-outline-secondary {
    color: #374151;
    border: var(--bk-border-width) solid #d1d5db;
    background: #ffffff;
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus {
    background: var(--bk-base-200);
    color: var(--bk-text-primary);
    border-color: var(--bk-accent);
}

/* Functional Buttons */
.btn-success,
.booknetic_btn_success,
.badge.bg-success {
    background: var(--bk-success);
    border-color: var(--bk-success);
    color: var(--bk-success-content);
}

.btn-success:hover {
    background: #21a65a;
    border-color: #21a65a;
}

.btn-danger,
.booknetic_btn_danger,
.badge.bg-danger {
    background: var(--bk-error);
    border-color: var(--bk-error);
    color: var(--bk-error-content);
}

.btn-danger:hover {
    background: #d9364f;
}

.btn-warning,
.booknetic_btn_warning,
.badge.bg-warning,
.badge-default {
    background: var(--bk-warning);
    border-color: var(--bk-warning);
    color: var(--bk-warning-content);
}

/* Forms & Inputs */
.form-control,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="tel"],
select,
textarea {
    width: 100%;
    min-height: 3rem;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    color: var(--bk-text-primary);
    background: var(--bk-surface);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    transition: border-color var(--bk-transition), box-shadow var(--bk-transition);
}

.form-control:focus,
input:focus,
select:focus,
textarea:focus {
    border-color: var(--bk-border-focus);
    box-shadow: var(--bk-focus-ring);
    outline: none;
}

.form-label {
    display: block;
    margin-bottom: 0.5rem;
}

/* Checkbox & Radio */
input[type="checkbox"],
input[type="radio"] {
    appearance: none;
    width: 1rem;
    height: 1rem;
    border: var(--bk-border-width) solid var(--bk-border-strong);
    border-radius: 0.25rem;
    background: var(--bk-surface);
    cursor: pointer;
    vertical-align: middle;
    position: relative;
    display: inline-block;
}

input[type="radio"] {
    border-radius: 50%;
}

input[type="checkbox"]:checked,
input[type="radio"]:checked {
    background-color: var(--bk-primary);
    /* Default to Primary Blue unless overridden */
    border-color: var(--bk-primary);
}

input[type="checkbox"]:checked::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 0.625rem;
    height: 0.625rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E");
    background-size: cover;
}

input[type="radio"]:checked::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 0.5rem;
    height: 0.5rem;
    background-color: #fff;
    border-radius: 50%;
}

/* Badges */
.badge,
.booknetic_badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.35em 0.8em;
    font-size: 0.75rem;
    font-weight: 500;
    border-radius: 50rem;
    line-height: 1;
    background-image: none;
    border: var(--bk-border-width) solid var(--bk-border);
    color: var(--bk-text-primary);
}

.bg-warning-subtle,
.badge-warning {
    background-color: var(--bk-warning-soft);
    color: #b45309;
    border-color: rgba(255, 191, 15, 0.25);
}

.bg-success-subtle,
.badge-success {
    background-color: var(--bk-success-soft);
    color: #047857;
    border-color: rgba(39, 190, 105, 0.2);
}

.bg-danger-subtle,
.badge-danger {
    background-color: var(--bk-error-soft);
    color: #b91c1c;
    border-color: rgba(242, 65, 90, 0.25);
}

/* 4. Layout & Navigation (Admin/SaaS) */
:root {
    --bk-layout-sidebar-width: 17rem;
    --bk-layout-gutter: 1.5rem;
    --bk-layout-topbar-offset: 0.25rem;
}

@media (max-width: 48rem) {
    :root {
        --bk-layout-sidebar-width: 0rem;
        --bk-layout-gutter: 1rem;
        --bk-layout-topbar-offset: 0.25rem;
    }
}

.left_side_menu {
    position: fixed;
    top: 0;
    left: 0;
    height: 100%;
    width: 17rem;
    /* Updated to match overrides */
    background: #ffffff;
    border-right: var(--bk-border-width) solid var(--bk-border-color);
    box-shadow: 0.375rem 0 1.5rem rgba(0, 0, 0, 0.05);
    z-index: 20000;
    transition: transform var(--bk-transition);
    border-radius: 0;
    overflow-x: hidden;
}

.close_menu_s {
    position: fixed;
    inset: 0;
    background: rgba(15, 15, 15, 0.35);
    z-index: 19999;
}

body.bkntc-left-menu-open {
    overflow: hidden;
}

.left_side_menu>.l_m_head {
    background: #ffffff;
    border-bottom: var(--bk-border-width) solid var(--bk-border-color);
    padding: 0 1.375rem;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 5rem;
    border-radius: 0;
    overflow: hidden;
}

.left_side_menu>.l_m_head img {
    display: block;
    margin: 0 auto;
    filter: none;
    width: auto;
    height: 8rem;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.left_side_menu>.l_m_head .head_logo_sm {
    display: none;
}

.left_side_menu>.l_m_nav>.l_m_nav_item>.l_m_nav_item_link {
    color: #4b5563;
    padding: 0 1rem;
    margin: 0;
    border-radius: 0;
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
    display: flex;
    align-items: center;
    min-height: 3.5rem;
    font-size: 0.875rem;
    line-height: 1.5625rem;
    box-sizing: border-box;
}

.left_side_menu .l_m_nav_item_icon {
    width: 0.9375rem;
    text-align: center;
    color: #6b7280;
    font-size: 1.1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 2rem;
    margin-right: 0.9375rem;
}

/* Submenus & Active States */
.left_side_menu>.l_m_nav>.l_m_nav_item.active_menu>.l_m_nav_item_link {
    background: transparent;
    color: var(--bk-accent);
    box-shadow: inset 0.25rem 0 0 var(--bk-accent);
}

.left_side_menu>.l_m_nav>.l_m_nav_item.active_menu>.l_m_nav_item_link:before {
    display: none;
    /* Remove legacy dot */
}

.left_side_menu>.l_m_nav>.l_m_nav_item:hover>.l_m_nav_item_link {
    background: rgba(255, 111, 0, 0.05);
    color: var(--bk-accent);
    box-shadow: inset 0.25rem 0 0 var(--bk-accent);
}

.left_side_menu .l_m_nav_item_icon.is_collapse_icon {
    margin: 0 2rem;
}

.left_side_menu>.l_m_nav>.l_m_nav_item:hover>.l_m_nav_item_link>.l_m_nav_item_icon,
.left_side_menu>.l_m_nav>.l_m_nav_item.active_menu>.l_m_nav_item_link>.l_m_nav_item_icon {
    color: var(--bk-accent);
}

.left_side_menu>.l_m_nav>.l_m_nav_item.is_sub {
    background: transparent;
}

.left_side_menu>.l_m_nav>.l_m_nav_item.is_sub>.l_m_nav_item_link {
    margin-left: 2rem;
}

/* Top Bar */
.top_side_menu {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    height: 5rem;
    background: #ffffff;
    border-bottom: var(--bk-border-width) solid var(--bk-border-color);
    box-shadow: 0 0.5rem 1.625rem rgba(0, 0, 0, 0.05);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-left: calc(var(--bk-layout-sidebar-width) + var(--bk-layout-gutter) + var(--bk-layout-topbar-offset));
    padding-right: var(--bk-layout-gutter);
    z-index: 90;
    transition: left var(--bk-transition);
    border-radius: 0;
}

.top_side_menu .btn.btn-default {
    border-radius: var(--bk-radius-field);
    border-color: var(--bk-border-color);
    color: #374151;
    background: transparent;
}

.top_side_menu .btn.btn-default:hover {
    border-color: var(--bk-primary-500);
    color: var(--bk-primary-500);
}

/* Main Wrapper */
.main_wrapper {
    margin-left: 0;
    /* Reset default */
    padding: 5rem var(--bk-layout-gutter) 1.5rem calc(var(--bk-layout-sidebar-width) + var(--bk-layout-gutter));
    /* Adjusted for fixed sidebar */
    min-height: 100vh;
    background: #ffffff;
    box-sizing: border-box;
}

@media (max-width: 48rem) {
    .left_side_menu {
        transform: translateX(-100%);
    }

    .left_side_menu.active {
        transform: translateX(0);
        /* Mobile: keep the opened menu above any dialogs */
        z-index: 100001;
    }

    /* Mobile: keep menu backdrop above dialogs when menu is open */
    .close_menu_s {
        z-index: 100000;
    }

    .main_wrapper {
        padding: 6rem var(--bk-layout-gutter) 1rem;
    }
}

/* 5. Complex UI Components (Modals, Tables, Filters) */

/* Modern Filter Bar (Data Table Search Panel) */
.data_table_search_panel {
    padding: 0 0 1.5rem 0;
    background: transparent;
    width: 100%;
}

.data_table_search_panel .row {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    margin: 0;
}

.data_table_search_panel .col-md-3,
.data_table_search_panel .col-md-2,
.data_table_search_panel .col-md-4 {
    padding: 0;
    margin-bottom: 0.5rem;
}

/* Force controls to specific height and remove legacy spacers */
.data_table_search_panel .form-control,
.data_table_search_panel .modern-search-bar {
    min-height: 3rem;
    height: 3rem;
    display: flex;
    align-items: center;
}

/* Fix "Text Above" Issue: Hide labels in filter toolbar */
.data_table_search_panel label {
    display: none;
}

/* Modern Search Bar (Icon + Input) */
.data_table_search_panel .modern-search-bar {
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-surface);
    border-radius: var(--bk-radius-field);
    overflow: hidden;
}

.data_table_search_panel .modern-search-bar .form-control {
    border: none;
    box-shadow: none;
    border-radius: 0;
    height: 100%;
    background: transparent;
    padding: 0.75rem 0.75rem 0.75rem 0.5rem;
}

.data_table_search_panel .modern-search-bar .form-control:focus {
    box-shadow: none;
    outline: none;
}

.data_table_search_panel input[data-type="date"]:focus {
    outline: none;
    box-shadow: none;
    border-color: var(--bk-border);
}

.data_table_search_panel .modern-search-bar .input-group-text {
    border: none;
    border-right: var(--bk-border-width) solid var(--bk-border);
    background: transparent;
    color: var(--bk-text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 1rem;
    height: 100%;
    border-radius: 0;
}

/* Ensure all filter TomSelect controls match height */
.data_table_search_panel select,
.data_table_search_panel .ts-wrapper,
.data_table_search_panel .ts-wrapper .ts-control {
    min-height: 3rem;
    height: 3rem;
}

.data_table_search_panel .ts-wrapper .ts-control {
    display: flex;
    align-items: center;
    padding: 0 2rem 0 0.75rem;
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    background: var(--bk-surface);
    cursor: pointer;
}

.data_table_search_panel .ts-wrapper .ts-control>input {
    min-height: auto;
    height: auto;
}

/* Ensure filter panel is in its own stacking context */
.data_table_search_panel {
    position: relative;
    z-index: 100;
}

.data_table_search_panel .ts-wrapper {
    position: relative;
    z-index: 101;
}

/* Fix z-index for TomSelect dropdown menus - must be above table AND MODALS */
.ts-dropdown,
.data_table_search_panel .ts-dropdown {
    z-index: 110000 !important;
    /* Higher than .fs-modal (99999) - Force override */
    position: absolute;
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.15);
    background: var(--bk-surface, #fff);
}

/* Subtle grey focus state for TomSelect (replacing blue glow) */
.ts-wrapper.focus .ts-control,
.data_table_search_panel .ts-wrapper.focus .ts-control {
    border-color: var(--bk-border-strong, #cfd5dc);
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.05);
    outline: none;
}

/* Center selected items and hide blinking cursor in filter selects */
.data_table_search_panel .ts-wrapper .ts-control .item {
    display: flex;
    align-items: center;
    line-height: 3rem;
}

/* Hide the search input when an item is selected (no blinking cursor) */
.data_table_search_panel .ts-wrapper.has-items .ts-control>input {
    opacity: 0;
    width: 0;
    min-width: 0;
    padding: 0;
    margin: 0;
}


/* Centered Modal (.fs-modal) */
.fs-modal,
.bkntc_booking_modal,
.booknetic_no_booknetic_modal {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background: rgba(0, 0, 10, 0.35);
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* Must be above fixed sidebar/topbar in desktop/tablet layouts */
    z-index: 99999;
    backdrop-filter: blur(0.125rem);
}

/* Bootstrap modal stacking (admin uses both .fs-modal and .modal) */
.modal-backdrop {
    z-index: 99998;
}

.modal {
    z-index: 99999;
}

/* Toast notifications should appear above modals */
#fs-toaster.toast-container {
    z-index: 100000;
}

.fs-modal .fs-modal-content,
.modal-content {
    position: relative;
    width: min(80rem, 96vw);
    max-height: 90vh;
    height: auto;
    border-radius: var(--bk-radius-box);
    box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.08);
    background: var(--bk-surface);
    overflow: hidden;
    border: var(--bk-border-width) solid rgba(35, 59, 77, 0.08);
}

/* Ensure custom .fs-modal behaves like Bootstrap: fixed header/footer and scrollable body */
.fs-modal .fs-modal-content {
    display: flex;
    flex-direction: column;
}

.fs-modal .fs-modal-title,
.fs-modal .fs-modal-footer {
    flex-shrink: 0;
}

.fs-modal .fs-modal-title,
.modal-title {
    padding: 1rem 1.5rem;
    border-bottom: var(--bk-border-width) solid var(--bk-border-color);
    background: var(--bk-surface);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.fs-modal .fs-modal-title>.title-text {
    color: var(--bk-text-pr ary);
    font-weight: 600;
    font-size: 1.1rem;
}

.fs-modal .fs-modal-title>.close-btn,
.close_icon {
    width: 2rem;
    height: 2rem;
    border-radius: var(--bk-radius-field);
    background: var(--bk-surface-muted);
    border: var(--bk-border-width) solid rgba(35, 59, 77, 0.16);
    color: var(--bk-text-secondary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.fs-modal .fs-modal-title>.close-btn:hover {
    background: var(--bk-primary-100);
    color: var(--bk-primary-500);
}

.fs-modal-body,
.modal-body {
    padding: 1rem 1.5rem 2.5rem 1.5rem;
    overflow-y: auto;
    max-height: calc(90vh - 8.75rem);
}

/* Let the body flex within the modal so the footer never gets pushed out of view */
.fs-modal .fs-modal-body {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
}

@media (max-width: 48rem) {
    body.wp-admin .fs-modal,
    .fs-modal {
        padding: 0.75rem;
    }

    body.wp-admin .fs-modal-footer,
    .fs-modal-footer {
        padding: 0.75rem;
        flex-wrap: wrap;
        justify-content: flex-start !important;
        gap: 0.5rem;
    }

    body.wp-admin .fs-modal-footer .footer_left_action,
    .fs-modal-footer .footer_left_action {
        flex: 1 0 100%;
        width: 100%;
        min-width: 0;
    }

    body.wp-admin .fs-modal-footer .footer_left_action label,
    .fs-modal-footer .footer_left_action label {
        min-width: 0;
        white-space: normal;
    }

    body.wp-admin .fs-modal-footer .d-flex.gap-2,
    .fs-modal-footer .d-flex.gap-2 {
        flex: 1 0 100%;
        width: 100%;
        flex-wrap: wrap;
        justify-content: flex-end;
    }

    body.wp-admin .fs-modal-footer > .btn,
    body.wp-admin .fs-modal-footer .d-flex.gap-2 .btn,
    .fs-modal-footer > .btn,
    .fs-modal-footer .d-flex.gap-2 .btn {
        flex: 1 1 calc(50% - 0.25rem);
        min-width: 0;
    }
}

.fs-modal-body .row,
.modal-body .row {
    row-gap: 0.5rem;
}

.fs-modal-body .form-group,
.modal-body .form-group {
    margin-bottom: 0.5rem;
}

.fs-modal-body label,
.modal-body label {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--bk-text-secondary);
    margin-bottom: 0.35rem;
}

.fs-modal-body .form-control,
.modal-body .form-control {
    min-height: 2.75rem;
    padding: 0.55rem 0.9rem;
    border-color: rgba(35, 59, 77, 0.18);
    background: var(--bk-surface);
    box-shadow: none;
}

.fs-modal-body .form-control:focus,
.modal-body .form-control:focus {
    border-color: var(--bk-border-focus);
    box-shadow: var(--bk-focus-ring);
}

.fs-modal-body textarea.form-control,
.modal-body textarea.form-control {
    min-height: 6rem;
}

/* Fix Tom Select in modals - compact height and hide search input for single selects */
.fs-modal-body .ts-wrapper,
.modal-body .ts-wrapper {
    min-height: 2.75rem;
}

.fs-modal-body .ts-wrapper .ts-control,
.modal-body .ts-wrapper .ts-control {
    min-height: 2.75rem;
    height: auto;
    padding: 0.35rem 2.5rem 0.35rem 0.75rem;
    border: var(--bk-border-width) solid rgba(35, 59, 77, 0.18);
    border-radius: var(--bk-radius-field);
    background: var(--bk-surface);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.25rem;
}

/* Hide the blinking search input when item is selected (single select mode) */
.fs-modal-body .ts-wrapper.single.has-items .ts-control>input,
.modal-body .ts-wrapper.single.has-items .ts-control>input {
    opacity: 0;
    position: absolute;
    width: 0;
    height: 0;
    padding: 0;
    margin: 0;
}

/* Fix TomSelect single select items looking like pills in modals */
.fs-modal-body .ts-wrapper.single .ts-control .item,
.modal-body .ts-wrapper.single .ts-control .item {
    background: transparent !important;
    border: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    color: var(--bk-text-primary) !important;
}

/* Prevent empty items from rendering as blocks */
.fs-modal-body .ts-wrapper .ts-control .item.active:empty,
.modal-body .ts-wrapper .ts-control .item.active:empty {
    display: none;
}

/* Custom Orange Badge for Packages */
.badge-orange {
    background: var(--bk-accent-100);
    color: var(--bk-accent-500);
    border: 1px solid rgba(255, 111, 0, 0.2);
}

/* Ensure placeholder is visible when no item is selected */
.fs-modal-body .ts-wrapper.single .ts-control .item,
.modal-body .ts-wrapper.single .ts-control .item {
    display: none !important;
}

.fs-modal-body .ts-wrapper.single.has-items .ts-control .item,
.modal-body .ts-wrapper.single.has-items .ts-control .item {
    display: block !important;
}


/* =========================================
   16. Settings Module (Ported from settings.css)
   ========================================= */

.settings-main-container {
    height: 100%;
    overflow: auto;
    padding-bottom: 2rem;
}

.settings-main-container:after {
    content: '';
    margin-bottom: 2.5rem;
    display: block;
}

.settings-main-menu>div {
    padding: 1.5rem 1.5rem 0.5rem;
}

/* Settings Card (Grid Item) */
/* Ensure columns are flex containers for equal height cards */
.settings-main-menu .row>div[class*="col-"] {
    display: flex;
    flex-direction: column;
}

.settings-chart {
    position: relative;
    width: 100%;
    cursor: pointer;
    background: var(--bk-surface);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    box-shadow: var(--bk-shadow-soft);
    min-height: 14.375rem;
    padding: 1.125rem;
    margin-bottom: 1.5rem;
    /* overflow: hidden; Removed to allow tooltip/content expansion */
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    height: auto;
    /* Allow growth */
    flex: 1;
    /* Stretch to fill column */
    transition: transform var(--bk-transition), box-shadow var(--bk-transition), border-color var(--bk-transition);
}

.settings-chart:hover {
    transform: translateY(-0.0625rem);
    box-shadow: var(--bk-shadow-hover);
    border-color: var(--bk-border-strong);
}

.settings-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.settings-icon {
    width: 3.5rem;
    height: 3.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--bk-radius-box);
    font-size: 1.75rem;
    background: var(--bk-base-300);
    color: var(--bk-text-primary);
}

.settings-icon.is-compact {
    width: 2.5rem;
    height: 2.5rem;
    font-size: 1.25rem;
    border-radius: var(--bk-radius-field);
}

.settings-chip {
    display: none;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.625rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    background: var(--bk-base-300);
    color: var(--bk-text-secondary);
}

.settings-title {
    color: var(--bk-text-primary);
    font-size: 1.0625rem;
    font-weight: 600;
    margin: 0.25rem 0 0;
}

.settings-description {
    color: var(--bk-text-secondary);
    font-size: 0.875rem;
    line-height: 1.6;
    margin: 0;
    word-break: break-word;
    overflow-wrap: break-word;
}

.settings-card-cta {
    margin-top: auto;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--bk-primary);
    font-weight: 600;
    font-size: 0.8125rem;
    letter-spacing: 0.01em;
}

/* Tone Colors */
.tone-primary,
.tone-accent,
.tone-success,
.tone-info,
.tone-secondary,
.tone-neutral {
    background: var(--bk-base-300) !important;
    color: var(--bk-text-secondary) !important;
}

/* Sidebar Menu */
.settings-left-menu {
    background: var(--bk-surface);
    height: 100%;
    overflow: auto;
    border-right: 1px solid var(--bk-border);
}

.settings-left-menu>div {
    padding: 1.75rem 1.5rem;
}

.settings-left-menu-title {
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bk-text-secondary);
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
}


.settings_menu {
    min-height: 7.5rem;
    padding: 1.125rem;
    width: 100%;
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    background: var(--bk-surface);
    box-shadow: var(--bk-shadow-soft);
    cursor: pointer;
    margin-bottom: 0.75rem;
    transition: all var(--bk-transition);
    height: auto;
    /* Allow growth */
}

/* Clearfix to contain floated .sc-bars-cls and .sc-title 
   (cards without submenus don't have an explicit clearfix div) */
.settings_menu::after {
    content: '';
    display: block;
    clear: both;
}

.settings_menu:hover,
.settings_menu.selected-menu {
    border-color: var(--bk-primary);
    box-shadow: var(--bk-shadow-hover);
    transform: translateX(0.0625rem);
}

.sc-bars-cls {
    width: 3rem;
    height: 3rem;
    float: left;
}

.sc-title {
    float: left;
    width: calc(100% - 3.625rem);
    padding-left: 0.625rem;
}

.sc-title-div {
    color: var(--bk-text-primary);
    font-size: 0.9375rem;
    font-weight: 700;
    min-height: 1.5rem;
    /* overflow: hidden; Removed to prevent text clipping */
    word-break: break-word;
    /* Ensure clear wrapping */
    line-height: 1.4;
}

.sc-description {
    color: var(--bk-text-secondary);
    font-size: 0.8125rem;
    padding-top: 0.375rem;
    word-break: break-word;
    line-height: 1.5;
}

.clearfix::after {
    content: "";
    clear: both;
    display: table;
}

/* Submenus */
.settings_submenus {
    margin-top: 1rem;
    clear: both;
    /* Ensure submenus clear floats */
}


.settings_submenus>div {
    position: relative;
    border-top: var(--bk-border-width) solid var(--bk-border);
    padding-top: 0.75rem;
    margin-top: 0.75rem;
    color: var(--bk-text-secondary);
    font-size: 0.8125rem;
    font-weight: 600;
}

.settings_submenus>div:after {
    position: absolute;
    content: '';
    top: 1rem;
    right: -0.25rem;
    border: 0.25rem solid transparent;
    border-left-width: 0.375rem;
    border-left-color: var(--bk-border-strong);
}

.settings_submenus>.selected_sub_menu {
    color: var(--bk-primary);
}

.settings_submenus>.selected_sub_menu:after {
    border-left-color: var(--bk-primary);
}

/* Floating Back Button (Mobile/Legacy) */
.settings-floating-button {
    display: none;
}

/* Content Panels */
.ms-title {
    color: var(--bk-text-primary);
    font-size: 1rem;
    font-weight: 600;
    padding: 0.875rem 1.125rem;
    border-bottom: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-surface-muted);
    border-top-left-radius: var(--bk-radius-box);
    border-top-right-radius: var(--bk-radius-box);
}

.ms-subtitle {
    color: var(--bk-text-secondary);
}

.ms-subtitle:before {
    content: '\f111';
    font-family: "Font Awesome 5 Free";
    color: var(--bk-border-strong);
    font-weight: 600;
    font-size: 0.25rem;
    display: inline-block;
    vertical-align: middle;
    padding: 0.625rem;
}

.ms-content {
    padding: 1.25rem;
    background: var(--bk-surface);
    border-radius: 0 0 var(--bk-radius-box) var(--bk-radius-box);
    border: var(--bk-border-width) solid var(--bk-border);
    border-top: 0;
}

.settings-light-portlet {
    margin: 0 1.25rem 1.25rem 1.25rem;
    background: var(--bk-surface);
    box-shadow: var(--bk-shadow-soft);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
}

.actions_panel {
    display: flex;
    justify-content: flex-end;
    gap: 0.625rem;
    margin: 1.25rem 1.25rem 1rem;
}

.actions_panel .btn {
    border-radius: var(--bk-radius-field);
}

/* Form Controls in Settings */
.settings-main-container input,
.settings-main-container select,
.settings-main-container textarea,
.settings-main-container .form-control,
.settings-main-container .form-select {
    border-radius: var(--bk-radius-field);
    border-color: var(--bk-border);
}

.settings-main-container .btn {
    border-radius: var(--bk-radius-field);
}

.settings-main-container label {
    font-weight: 500;
    color: var(--bk-text-primary);
}

.settings-main-container .form-control-checkbox {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.settings-main-container .form-control-checkbox>label {
    margin: 0;
}

/* Warnings/Notices */
.redirect_users_on_confirm_notice {
    display: flex;
    align-items: center;
    padding: 0.5rem 0.625rem;
    background: var(--bk-warning-soft);
    border-radius: var(--bk-radius-field);
    color: var(--bk-warning-content);
    margin-top: 0.5rem;
    border: var(--bk-border-width) solid rgba(255, 191, 15, 0.25);
}

.fs-modal-body .ts-wrapper.single:not(.has-items) .ts-control>input,
.modal-body .ts-wrapper.single:not(.has-items) .ts-control>input {
    opacity: 1;
    position: relative;
    width: auto;
    height: auto;
}

/* Style selected items (chips/pills) */
.fs-modal-body .ts-wrapper .ts-control .item,
.modal-body .ts-wrapper .ts-control .item {
    background: var(--bk-primary-100);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
    line-height: 1.4;
    display: inline-flex;
    align-items: center;
}

/* Modal Tabs */
.fs-modal .nav-tabs,
.modal .nav-tabs {
    display: flex;
    flex-direction: row;
    border-bottom: var(--bk-border-width) solid rgba(35, 59, 77, 0.12);
    margin-bottom: 0.5rem;
    padding-left: 0;
    gap: 0.5rem;
}

.fs-modal .nav-tabs li,
.modal .nav-tabs li {
    list-style: none;
    margin-bottom: -var(--bk-border-width);
}

.fs-modal .nav-tabs a,
.modal .nav-tabs a {
    display: block;
    padding: 0.65rem 1.1rem;
    color: var(--bk-text-secondary);
    border: var(--bk-border-width) solid transparent;
    border-radius: var(--bk-radius-field) var(--bk-radius-field) 0 0;
    font-weight: 500;
    font-size: 0.9rem;
    transition: color var(--bk-transition), background var(--bk-transition), border-color var(--bk-transition);
}

.fs-modal .nav-tabs a.active,
.modal .nav-tabs a.active,
.fs-modal .nav-tabs li.active a,
.modal .nav-tabs li.active a {
    color: var(--bk-primary);
    background: var(--bk-surface-muted);
    border-color: rgba(35, 59, 77, 0.16);
    border-bottom-color: var(--bk-surface-muted);
}

.fs-modal-footer,
.modal-footer {
    padding: 1rem 1.5rem;
    border-top: var(--bk-border-width) solid var(--bk-border-color);
    background: var(--bk-surface);
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}

/* Fix dropdown z-index inside modals - ensure dropdowns appear in front */
.fs-modal .dropdown-menu,
.fs-modal-body .dropdown-menu,
.fs-modal .appointment-status-panel {
    z-index: 100001;
    position: absolute;
}

/* Inline status dropdown in appointments table */
.appointment-status-dropdown {
    position: relative;
    display: inline-block;
    cursor: pointer;
}

.appointment-status-dropdown .appointment-status-icon {
    cursor: pointer;
    transition: transform var(--bk-transition), box-shadow var(--bk-transition);
}

.appointment-status-dropdown .appointment-status-icon:hover {
    transform: scale(1.05);
    box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.1);
}

.appointment-status-dropdown .dropdown-menu {
    min-width: 10rem;
    padding: 0.5rem 0;
    border-radius: var(--bk-radius-field);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
    border: var(--bk-border-width) solid var(--bk-border);
}

.appointment-status-dropdown .dropdown-item {
    padding: 0.5rem 1rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    transition: background var(--bk-transition);
}

.appointment-status-dropdown .dropdown-item:hover {
    background: var(--bk-surface-muted);
}

.appointment-status-dropdown .dropdown-item i {
    font-size: 1rem;
}

/* Tables */
.table-responsive {
    box-shadow: none;
    border: none;
    border-radius: 0;
    overflow-x: auto;
}

.fs_data_table_wrapper {
    background: var(--bk-surface);
    border: var(--bk-border-width) solid rgba(35, 59, 77, 0.03);
    border-radius: var(--bk-radius-box);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.02);
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

.fs_data_table_wrapper.table-responsive {
    padding: 0;
}

.fs_data_table_wrapper.fs-data-table-overflow-visible {
    overflow: visible;
}

.elegant_table {
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
}

.elegant_table thead th {
    background-color: var(--bk-surface);
    color: var(--bk-text-secondary);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 600;
    padding: 1rem 1.5rem;
    border-top: none;
    border-bottom: var(--bk-border-width) solid rgba(35, 59, 77, 0.05);
    text-align: left;
    white-space: nowrap;
}

.elegant_table tbody td {
    background-color: var(--bk-surface);
    padding: 1.25rem 1.5rem;
    border-bottom: var(--bk-border-width) solid rgba(35, 59, 77, 0.04);
    color: var(--bk-text-primary);
    font-size: 0.875rem;
    vertical-align: middle;
}

.elegant_table tbody tr:hover td {
    background-color: var(--bk-surface-muted);
}

.elegant_table thead th:first-child {
    border-top-left-radius: var(--bk-radius-box);
}

.elegant_table thead th:last-child {
    border-top-right-radius: var(--bk-radius-box);
}

.elegant_table tbody tr:last-child td:first-child {
    border-bottom-left-radius: var(--bk-radius-box);
}

.elegant_table tbody tr:last-child td:last-child {
    border-bottom-right-radius: var(--bk-radius-box);
}

/* Fix Huge Images in Table */
.elegant_table td img,
.elegant_table td .img-circle {
    max-width: 2.5rem;
    max-height: 2.5rem;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    object-fit: cover;
    display: block;
}

/* Row action eye icon hidden for cleaner UI */
.elegant_table .row_is_disabled {
    display: none;
}

/* Invoice cell + icon */
.invoice-cell {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    align-items: center;
}

/* Action menu button */
.actions_btn.btn-light {
    width: 2rem;
    height: 2rem;
    padding: 0.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid rgba(35, 59, 77, 0.2);
    box-shadow: none;
}

.actions_btn.btn-light:hover,
.actions_btn.btn-light:focus-visible {
    border-color: rgba(35, 59, 77, 0.35);
    background: var(--bk-surface-muted);
    outline: none;
}

.actions_btn .bi-three-dots-vertical {
    font-size: 0.95rem;
}

.invoice-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.85rem;
    height: 1.85rem;
    border-radius: var(--bk-radius-field);
    background: var(--bk-surface-muted);
    color: var(--bk-primary-600);
    border: var(--bk-border-width) solid rgba(35, 59, 77, 0.12);
    cursor: pointer;
    transition: background var(--bk-transition), color var(--bk-transition), border-color var(--bk-transition);
}

.invoice-icon:hover {
    background: var(--bk-primary-100);
    color: var(--bk-primary-600);
    border-color: rgba(35, 59, 77, 0.2);
}

.invoice-icon.status-paid {
    color: var(--bk-success);
    background: var(--bk-success-soft);
    border-color: rgba(39, 190, 105, 0.25);
}

.invoice-icon.status-paid_deposit {
    color: var(--bk-warning);
    background: var(--bk-warning-soft);
    border-color: rgba(255, 191, 15, 0.25);
}

.invoice-icon.status-pending {
    color: var(--bk-accent);
    background: var(--bk-accent-100);
    border-color: rgba(255, 111, 0, 0.25);
}

.invoice-icon.status-canceled {
    color: var(--bk-error);
    background: var(--bk-error-soft);
    border-color: rgba(242, 65, 90, 0.25);
}

.invoice-icon.status-not_paid {
    color: var(--bk-text-muted);
    background: var(--bk-surface-muted);
    border-color: rgba(35, 59, 77, 0.12);
}

.invoice-icon[data-status="paid"] {
    color: var(--bk-success);
    background: var(--bk-success-soft);
    border-color: rgba(39, 190, 105, 0.25);
}

.invoice-icon[data-status="paid_deposit"] {
    color: var(--bk-warning);
    background: var(--bk-warning-soft);
    border-color: rgba(255, 191, 15, 0.25);
}

.invoice-icon[data-status="pending"] {
    color: var(--bk-accent);
    background: var(--bk-accent-100);
    border-color: rgba(255, 111, 0, 0.25);
}

.invoice-icon[data-status="canceled"] {
    color: var(--bk-error);
    background: var(--bk-error-soft);
    border-color: rgba(242, 65, 90, 0.25);
}

.invoice-icon[data-status="not_paid"] {
    color: var(--bk-text-muted);
    background: var(--bk-surface-muted);
    border-color: rgba(35, 59, 77, 0.12);
}

.invoice-icon i {
    font-size: 1rem;
    color: inherit;
}

.appointment-status-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: var(--bk-radius-field);
    background: var(--bk-surface-muted);
    color: inherit;
    margin: 0 auto;
    padding: 0.1rem;
    border: var(--bk-border-width) solid rgba(0, 0, 0, 0.05);
    box-shadow: inset 0 0 0 0.0625rem rgba(0, 0, 0, 0.02);
}

/* Subtle status pills */
.fs_data_table_wrapper .btn.btn-xs {
    padding: 0.25rem 0.55rem;
    font-size: 0.8rem;
    line-height: 1.2;
    border-radius: var(--bk-radius-field);
    border: none;
    box-shadow: none;
}

.fs_data_table_wrapper .btn-light-warning {
    background: var(--bk-warning-soft);
    color: var(--bk-warning-content);
}

.fs_data_table_wrapper .btn-light-success {
    background: var(--bk-success-soft);
    color: var(--bk-success-content);
}

.fs_data_table_wrapper .btn-light-primary {
    background: var(--bk-primary-100);
    color: var(--bk-primary-600);
}

.fs_data_table_wrapper .btn-light-danger {
    background: var(--bk-error-soft);
    color: var(--bk-error);
}

.fs_data_table_wrapper .btn-light-default {
    background: var(--bk-surface-muted);
    color: var(--bk-text-secondary);
}

.fs_data_table_wrapper .btn.btn-xs:hover {
    filter: brightness(0.98);
}

/* Table pager arrows */
.fs_data_table_wrapper .btn.btn-xs.btn-outline-secondary {
    min-width: 2rem;
    height: 2rem;
    padding: 0.2rem 0.4rem;
    border-color: rgba(35, 59, 77, 0.18);
    color: var(--bk-text-secondary);
}

.fs_data_table_wrapper .btn.btn-xs.btn-outline-secondary i {
    font-size: 0.9rem;
}

/* 6. Third Party Overrides (Tom Select, Datepicker) */

/* Tom Select uses tom-select.bootstrap5.css - no overrides needed */


/* Datepicker */
.datepicker,
.datepicker-dropdown {
    font-family: 'Poppins', sans-serif;
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    box-shadow: var(--bk-shadow-soft);
    padding: var(--bk-spacing-sm);
    background: var(--bk-surface);
}

.datepicker table {
    width: 100%;
    margin: 0;
    border-collapse: separate;
    border-spacing: 0.25rem;
}

.datepicker table tr th,
.datepicker table tr td {
    width: 2.25rem;
    height: 2.25rem;
    text-align: center;
    border: none;
    border-radius: var(--bk-radius-field);
    color: var(--bk-text-primary);
    font-size: 0.875rem;
    line-height: 1.25rem;
    background: transparent;
}

.datepicker table tr th {
    font-weight: 600;
    color: var(--bk-text-secondary);
    padding: var(--bk-spacing-xs) 0;
}

.datepicker table tr td:hover {
    background: var(--bk-base-200);
    cursor: pointer;
}

.datepicker table tr td.disabled,
.datepicker table tr td.old,
.datepicker table tr td.new {
    color: var(--bk-text-muted);
    background: transparent;
}

.datepicker .datepicker-switch,
.datepicker .next,
.datepicker .prev {
    color: var(--bk-text-primary);
    font-weight: 600;
    padding: var(--bk-spacing-xs) var(--bk-spacing-sm);
    border-radius: var(--bk-radius-field);
}

.datepicker .datepicker-switch:hover,
.datepicker .next:hover,
.datepicker .prev:hover {
    background: var(--bk-base-200);
}

.datepicker table tr td.active,
.datepicker table tr td.active:hover,
.datepicker table tr td.active.disabled,
.datepicker table tr td.active.disabled:hover {
    background-color: var(--bk-primary);
    color: var(--bk-primary-content);
    border-radius: var(--bk-radius-field);
}

.datepicker table tr td.today,
.datepicker table tr td.today:hover {
    background-color: var(--bk-warning-soft);
    color: var(--bk-text-primary);
    border-radius: var(--bk-radius-field);
}

/* 7. Booking Widget (Frontend - Preserved) */
.booknetic_hidden {
    display: none;
}

.booknetic_appointment_finished,
.booknetic_appointment_finished_with_error {
    display: none;
}

.booknetic_appointment_finished {
    align-items: center;
    background: var(--bk-surface-muted);
    justify-content: center;
    min-height: 100%;
    padding: 2rem 1.5rem;
    width: 100%;
}

.booknetic_finish_card {
    background: #ffffff;
    border: 0.0625rem solid #cfcfcf;
    border-radius: 1.25rem;
    box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.06), 0 0.5rem 2rem rgba(0, 0, 0, 0.08);
    display: flex;
    flex-direction: column;
    gap: 1rem;
    max-width: 20.4375rem;
    padding: 2rem;
    width: 100%;
}

.booknetic_finish_header {
    align-items: center;
    display: flex;
    justify-content: space-between;
    width: 100%;
}

.booknetic_finish_step {
    color: #666666;
    font-family: "Roboto", "Poppins", sans-serif;
    font-size: 0.75rem;
    font-weight: 400;
    letter-spacing: 0.009375rem;
    line-height: 1.5rem;
}

.booknetic_finish_celebration {
    align-items: center;
    color: #666666;
    display: flex;
    height: 1.25rem;
    justify-content: center;
    width: 1.25rem;
}

.booknetic_finish_celebration svg {
    display: block;
    fill: currentColor;
    height: 1rem;
    width: 1.125rem;
}

.booknetic_finish_divider {
    border-top: 0.0625rem solid #cfcfcf;
    width: 100%;
}

.booknetic_finish_message {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.booknetic_finish_title {
    color: #ff6f00;
    font-family: "Roboto", "Poppins", sans-serif;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.009375rem;
    line-height: 1rem;
}

.booknetic_finish_subtitle {
    color: #666666;
    flex-wrap: wrap;
    font-family: "Roboto", "Poppins", sans-serif;
    font-size: 0.75rem;
    font-weight: 400;
    gap: 0.25rem;
    letter-spacing: 0.009375rem;
    line-height: 1rem;
}

.booknetic_finish_subtitle:not(.booknetic_hidden) {
    display: flex;
}

.booknetic_finish_subtitle_value,
.booknetic_appointment_finished_code {
    color: #0f0f0f;
    font-weight: 700;
}

.booknetic_finish_body {
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
}

.booknetic_finish_details {
    border: 0.0625rem solid #cfcfcf;
    border-radius: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: 16.4375rem;
    padding: 0.75rem 1rem;
    width: 100%;
}

.booknetic_finish_service {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.booknetic_finish_service_name {
    color: #0f0f0f;
    font-family: "Inter", "Poppins", sans-serif;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.25rem;
}

.booknetic_finish_row {
    align-items: flex-end;
    gap: 0.25rem;
    line-height: 0.75rem;
}

.booknetic_finish_row:not(.booknetic_hidden) {
    display: flex;
}

.booknetic_finish_label {
    color: #666666;
    flex-shrink: 0;
    font-family: "Roboto", "Poppins", sans-serif;
    font-size: 0.75rem;
    font-weight: 400;
    letter-spacing: 0.009375rem;
    width: 4.375rem;
}

.booknetic_finish_value {
    color: #0f0f0f;
    font-family: "Roboto", "Poppins", sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.009375rem;
}

.booknetic_finish_details_divider {
    border-top: 0.0625rem solid #cfcfcf;
    width: 100%;
}

.booknetic_finish_actions {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
    align-items: center;
}

.booknetic_finish_action {
    align-items: center;
    background: #ffffff;
    border: 0.0625rem solid #ff6f00;
    border-radius: 0.75rem;
    color: #ff6f00;
    cursor: pointer;
    font-family: "Inter", "Poppins", sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    height: 2.75rem;
    justify-content: space-between;
    line-height: 1.25rem;
    max-width: 16.4375rem;
    padding: 0.75rem 1rem;
    text-decoration: none;
    width: 100%;
}

.booknetic_finish_action:not(.booknetic_hidden) {
    display: flex;
}

.booknetic_finish_action:focus-visible {
    box-shadow: var(--bk-focus-ring);
    outline: none;
}

.booknetic_finish_action_icon {
    align-items: center;
    display: flex;
    height: 1.25rem;
    justify-content: center;
    width: 1.25rem;
}

.booknetic_finish_action_icon svg {
    display: block;
    fill: currentColor;
    height: 1.25rem;
    width: 1.25rem;
}

.booknetic_appointment {
    background-color: var(--bk-surface-muted);
    border-radius: var(--bk-radius-box);
    box-shadow: var(--bk-shadow-soft);
    display: flex;
    flex-direction: column;
    position: relative;
    width: 100%;
    overflow: hidden;
    min-height: 37.5rem;
}

@media (min-width: 48em) {
    .booknetic_appointment {
        flex-direction: row;
    }
}

.booknetic_appointment_steps {
    background-color: var(--bk-primary-500);
    color: #fff;
    padding: 1.5rem;
    width: 100%;
}

@media (min-width: 48em) {
    .booknetic_appointment_steps {
        width: 16.25rem;
        flex-shrink: 0;
    }
}

.booknetic_appointment_step_element {
    padding: 0.75rem 0;
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.875rem;
    display: flex;
    align-items: center;
    cursor: pointer;
}

.booknetic_appointment_step_element.booknetic_menu_hidden {
    display: none;
}

.booknetic_appointment_step_element.booknetic_active_step {
    color: #fff;
    font-weight: 600;
}

.booknetic_appointment_container {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    background: var(--bk-surface-muted);
}

.booknetic_appointment_container_header {
    padding: 1.25rem 1.5rem;
    background: var(--bk-surface);
    border-bottom: var(--bk-border-width) solid var(--bk-border);
    font-weight: 600;
}

.booknetic_appointment_container_body {
    padding: 1.5rem;
    flex-grow: 1;
    overflow-y: auto;
    scrollbar-gutter: stable;
    width: 100%;
}

.booknetic_appointment_container_body > [data-step-id] {
    width: 100%;
}

.booknetic_appointment_container_footer {
    padding: 1.25rem 1.5rem;
    background: var(--bk-surface);
    border-top: var(--bk-border-width) solid var(--bk-border);
    display: flex;
    justify-content: space-between;
}

/* Cards (Services/Staff) */
.booknetic_card,
.booknetic_service_card {
    background: var(--bk-surface);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    padding: 1.5rem;
    cursor: pointer;
    transition: all 0.2s;
    text-align: center;
}

.booknetic_card:hover {
    border-color: var(--bk-accent);
    transform: translateY(-0.125rem);
    box-shadow: var(--bk-shadow-hover);
}

.booknetic_card.booknetic_card_selected {
    border-color: var(--bk-success);
    box-shadow: 0 0 0 0.125rem rgba(39, 190, 105, 0.1);
}

.booknetic_card_image {
    width: 4rem;
    height: 4rem;
    border-radius: 50%;
    margin: 0 auto 1rem;
    overflow: hidden;
}

.booknetic_card_image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Calendar */
.booknetic_calendar_div {
    background: var(--bk-surface);
    border-radius: var(--bk-radius-box);
    padding: 1.25rem;
    border: var(--bk-border-width) solid var(--bk-border);
}

.booknetic_calendar_days>div.booknetic_calendar_selected_day {
    background: var(--bk-accent);
    color: #fff;
}

/* Admin Calendar (FullCalendar + Filters) */
.main_wrapper .m_header {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem 0;
    margin-bottom: 1rem;
    background: var(--bk-surface);
    border: 0;
    border-bottom: var(--bk-border-width) solid var(--bk-border);
    border-radius: 0;
    box-shadow: none;
}


.main_wrapper .m_head_title {
    font-size: 1.25rem;
    font-weight: 500;
    color: var(--bk-text-primary);
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.m_head_actions {
    display: flex;
    flex-direction: row;
    gap: 0.75rem;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    width: auto;
}

.m_head_actions>div {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    align-items: center;
}

/* Soften separator lines under headers */
.main_wrapper .m_header,
.fs-calendar-container,
#fs-calendar .fc-widget-content,
#fs-calendar .fc-head-container,
#fs-calendar .fc-toolbar,
#fs-calendar .fc-day-grid-container,
#fs-calendar .fc-row,
#fs-calendar .fc-content-skeleton td,
#fs-calendar .fc-content-skeleton th {
    border-width: 0.04rem;
    border-color: #f2f4f6;
}

#fs-calendar .fc-unthemed td,
#fs-calendar .fc-unthemed th,
#fs-calendar .fc-unthemed tbody,
#fs-calendar .fc-unthemed thead,
#fs-calendar .fc-unthemed .fc-divider,
#fs-calendar .fc-unthemed .fc-row,
#fs-calendar .fc-unthemed hr,
#fs-calendar .fc-unthemed .fc-popover {
    border-color: #f2f4f6;
}

#fs-calendar .fc-toolbar-title,
#fs-calendar .fc-col-header-cell-cushion,
#fs-calendar .fc-daygrid-day-number,
#fs-calendar .fc-button,
#fs-calendar .fc-daygrid-more-link {
    font-weight: 400;
}

#fs-calendar .fc-button,
#fs-calendar .fc-button:focus,
#fs-calendar .fc-button:active {
    box-shadow: none;
}

/* List view cleanup */
#fs-calendar .fc-list-event td {
    vertical-align: middle;
}

#fs-calendar .fc-list-event img {
    max-width: 3rem;
    max-height: 3rem;
    border-radius: var(--bk-radius-round);
    object-fit: cover;
}

#fs-calendar .fc-list-event .calendar_cart {
    gap: 0.25rem;
    font-size: 0.95rem;
}

/* Calendar list view refinements */
#fs-calendar .bkntc-list-row td {
    vertical-align: middle;
    padding: 0.6rem 0.8rem;
    line-height: 1.35;
}

#fs-calendar .fc-list-item-time {
    white-space: nowrap;
    color: var(--bk-text-secondary);
    font-weight: 400;
}

#fs-calendar .fc-list-item-marker .fc-event-dot {
    width: 0.48rem;
    height: 0.48rem;
    border-radius: var(--bk-radius-round);
    margin-top: 0.08rem;
}

/* Hide service color dot column in list view */
#fs-calendar .fc-list-item-marker {
    display: none;
}

#fs-calendar .bkntc-service-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.32rem 0.7rem;
    border-radius: var(--bk-radius-field);
    font-weight: 500;
    font-size: 0.88rem;
    background: color-mix(in srgb, var(--bk-service-color, var(--bk-primary)) 92%, #ffffff 8%);
    color: var(--bk-service-text, #fff);
    box-shadow: none;
    border: var(--bk-border-width) solid color-mix(in srgb, var(--bk-service-color, var(--bk-primary)) 65%, #ffffff 35%);
}

#fs-calendar .bkntc-staff-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
}

#fs-calendar .bkntc-staff-chip .circle_image {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: var(--bk-radius-round);
    overflow: hidden;
    border: var(--bk-border-width) solid var(--bk-border);
    flex-shrink: 0;
    background: var(--bk-surface-muted);
}

#fs-calendar .bkntc-staff-chip .circle_image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

#fs-calendar .bkntc-staff-chip .bkntc-staff-name {
    font-weight: 400;
    color: var(--bk-text-primary);
}

#fs-calendar .bkntc-customer-line {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

#fs-calendar .appointment-status-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: var(--bk-radius-field);
    background: color-mix(in srgb, var(--bk-status-color, #6dc0ff) 16%, #ffffff 84%);
    color: color-mix(in srgb, var(--bk-status-color, #6dc0ff) 75%, #0f0f0f 25%);
    font-size: 0.9rem;
    line-height: 1;
    box-shadow: inset 0 0 0 0.05rem color-mix(in srgb, var(--bk-status-color, #6dc0ff) 25%, #ffffff 75%);
    border: var(--bk-border-width) solid color-mix(in srgb, var(--bk-status-color, #6dc0ff) 35%, #ffffff 65%);
}

#fs-calendar .appointment-status-pill i {
    line-height: 1;
}

/* Day headers and list typography */
#fs-calendar .fc-list-day-cushion {
    font-weight: 400;
}

#fs-calendar .fc-list-day-text,
#fs-calendar .fc-list-day-side-text {
    font-weight: 400;
    color: var(--bk-text-primary);
}

#fs-calendar .fc-list-day-cushion a {
    font-weight: 400;
    color: var(--bk-text-primary);
}

#fs-calendar .fc-list-table td,
#fs-calendar .fc-list-table th {
    font-weight: 400;
}

#fs-calendar .appointment-status-pill {
    color: #ffffff;
    border-color: transparent;
}

#fs-calendar table,
#fs-calendar td,
#fs-calendar th,
#fs-calendar .fc-scrollgrid,
#fs-calendar .fc-scrollgrid-section,
#fs-calendar .fc-scrollgrid-liquid {
    border-width: 0.04rem;
    border-color: #f2f4f6;
}

/* Day/time grid refinements */
#fs-calendar .fc-timegrid-slot-label,
#fs-calendar .fc-timegrid-axis-cushion,
#fs-calendar .fc-timegrid-slot-lane {
    color: var(--bk-text-secondary);
    font-weight: 400;
    border-color: #f2f4f6;
}

#fs-calendar .fc-timegrid-slot,
#fs-calendar .fc-timegrid-divider,
#fs-calendar .fc-timegrid-slot-minor {
    border-color: #f2f4f6;
}

#fs-calendar .fc-col-header-cell-cushion,
#fs-calendar .fc-timegrid-axis-cushion,
#fs-calendar .fc-timegrid-slot-label {
    font-size: 0.9rem;
}

.m_head_actions .action_btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.8rem;
    background: var(--bk-surface);
    color: var(--bk-text-secondary);
    border: 0.04rem solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    font-weight: 400;
    cursor: pointer;
    transition: background var(--bk-transition), border-color var(--bk-transition), box-shadow var(--bk-transition), transform var(--bk-transition);
    box-shadow: none;
    letter-spacing: 0.005em;
}

.m_head_actions .action_btn svg {
    flex-shrink: 0;
}

.m_head_actions .action_btn:hover {
    background: var(--bk-base-200);
    border-color: var(--bk-border);
    box-shadow: var(--bk-shadow-soft);
    transform: none;
}

.m_head_actions .google_calendar {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    background: var(--bk-surface);
}

.m_head_actions .google_calendar label {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 500;
    color: var(--bk-text-secondary);
    cursor: pointer;
}

/* Toggle switch styles have been moved to Section 17.4 */


.advanced_filters {
    position: relative;
}

.advanced_filters_btn .filter_status {
    display: inline-flex;
    margin-left: 0.25rem;
    width: 0.75rem;
    height: 0.75rem;
}

.advanced_filters_popover {
    position: absolute;
    top: 100%;
    right: 0;
    margin-top: 0.75rem;
    width: min(100vw, 32rem);
    background: var(--bk-surface);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    box-shadow: var(--bk-shadow-hover);
    padding: 1rem;
    display: none;
    z-index: 12;
}

.advanced_filters_popover_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding-bottom: 0.75rem;
    border-bottom: var(--bk-border-width) solid var(--bk-border);
    color: var(--bk-text-primary);
    font-weight: 600;
}

.advanced_filters_popover_body {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding-top: 0.75rem;
}

.advanced_filters_popover .filters {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

.advanced_filters_popover .filter {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.advanced_filters_popover .filter_title {
    font-weight: 500;
    color: var(--bk-text-secondary);
    font-size: 0.9375rem;
}

.advanced_filters_popover .filter>div {
    position: relative;
}


.advanced_filters_popover .clear_select {
    position: absolute;
    right: 0.75rem;
    top: 0;
    bottom: 0;
    margin: auto;
    transform: none;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: var(--bk-radius-round);
    background: var(--bk-base-200);
    border: var(--bk-border-width) solid var(--bk-border);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background var(--bk-transition), border-color var(--bk-transition);
}

.advanced_filters_popover .clear_select:hover {
    background: var(--bk-base-300);
    border-color: var(--bk-border-strong);
}

.advanced_filters_popover .filter_actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
}

.advanced_filters_popover .clear_filters_btn,
.advanced_filters_popover .save_filters_btn {
    padding: 0.75rem 1rem;
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid var(--bk-border);
    font-weight: 500;
    cursor: pointer;
    background: var(--bk-surface-muted);
    color: var(--bk-text-primary);
    transition: background var(--bk-transition), border-color var(--bk-transition), box-shadow var(--bk-transition);
}

.advanced_filters_popover .save_filters_btn {
    background: var(--bk-accent-500);
    border-color: var(--bk-accent-500);
    color: var(--bk-accent-content);
}

.advanced_filters_popover .clear_filters_btn:hover,
.advanced_filters_popover .save_filters_btn:hover {
    background: var(--bk-base-300);
    border-color: var(--bk-border-strong);
    box-shadow: var(--bk-shadow-soft);
}

.advanced_filters_popover .save_filters_btn:hover {
    background: var(--bk-accent-600);
    border-color: var(--bk-accent-600);
}

.create_new_appointment_btn {
    background: var(--bk-accent-500);
    border-color: var(--bk-accent-500);
    color: var(--bk-accent-content);
    font-weight: 600;
    border-radius: 0.375rem;
    border-width: 0.05rem;
}

.create_new_appointment_btn:hover {
    background: var(--bk-accent-600);
    border-color: var(--bk-accent-600);
}

.create_new_appointment_btn svg path {
    stroke: var(--bk-primary-500);
}

.block_time_btn {
    background: var(--bk-primary-500);
    border-color: var(--bk-primary-500);
    color: var(--bk-primary-content);
    font-weight: 600;
    border-radius: 0.375rem;
}

.block_time_btn:hover {
    background: var(--bk-primary-600);
    border-color: var(--bk-primary-600);
}

.fs-calendar-container {
    background: var(--bk-surface);
    border: 0.04rem solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    padding: 1rem;
    box-shadow: var(--bk-shadow-soft);
}

#fs-calendar {
    width: 100%;
}

#fs-calendar .fc-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1rem;
    align-items: center;
}

#fs-calendar .fc-left,
#fs-calendar .fc-right {
    display: flex;
    align-items: center;
}

#fs-calendar .fc-button-group {
    display: inline-flex;
    gap: 0.25rem;
}

#fs-calendar .fc-button {
    border-radius: var(--bk-radius-field);
    border: 0.04rem solid var(--bk-border);
    background: var(--bk-base-200);
    color: var(--bk-text-primary);
    text-transform: none;
    font-weight: 400;
    font-size: 0.875rem;
    padding: 0.45rem 0.8rem;
    box-shadow: none;
    transition: background var(--bk-transition), border-color var(--bk-transition), color var(--bk-transition), transform var(--bk-transition);
}

#fs-calendar .fc-button:hover {
    background: var(--bk-base-300);
    border-color: var(--bk-border-strong);
    transform: translateY(-0.0625rem);
}

#fs-calendar .fc-button.fc-button-active {
    background: var(--bk-accent-500);
    border-color: var(--bk-accent-500);
    color: var(--bk-accent-content);
}

#fs-calendar .fc-today-button:disabled {
    background: var(--bk-base-300);
    color: var(--bk-text-muted);
    border-color: var(--bk-border);
    cursor: not-allowed;
    opacity: 0.75;
}

#fs-calendar h2 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 500;
    color: var(--bk-text-primary);
}

#fs-calendar .fc-widget-header,
#fs-calendar .fc-widget-content {
    border-color: var(--bk-border);
}

#fs-calendar .fc-day-header {
    padding: 0.7rem 0;
    text-transform: none;
    letter-spacing: 0.005em;
    color: var(--bk-text-secondary);
    font-weight: 400;
    font-size: 0.83rem;
    background: var(--bk-base-200);
}

#fs-calendar .fc-day-number {
    display: inline-flex;
    justify-content: flex-end;
    width: 100%;
    padding: 0.2rem 0.45rem;
    color: var(--bk-text-primary);
    font-weight: 400;
}

#fs-calendar .fc-day {
    background: var(--bk-surface);
}

#fs-calendar .fc-day.fc-today {
    background: var(--bk-accent-100);
    border-color: var(--bk-accent-500);
}

#fs-calendar .fc-day.fc-other-month {
    background: var(--bk-base-200);
    color: var(--bk-text-muted);
}

#fs-calendar .fc-day-grid-event {
    margin: 0.25rem 0.125rem;
    padding: 0.25rem;
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid transparent;
    box-shadow: var(--bk-shadow-soft);
}

#fs-calendar .fc-content {
    width: 100%;
}

#fs-calendar .calendar_cart {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    font-size: 0.8125rem;
    line-height: 1.3;
}

#fs-calendar .calendar_event_line_1 {
    font-weight: 700;
}

#fs-calendar .calendar_event_line_3,
#fs-calendar .calendar_event_line_4 {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

#fs-calendar .cart_staff_line .circle_image {
    width: 2rem;
    height: 2rem;
    border-radius: var(--bk-radius-round);
    overflow: hidden;
    border: var(--bk-border-width) solid rgba(255, 255, 255, 0.6);
    flex-shrink: 0;
}

#fs-calendar .cart_staff_line .circle_image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

#fs-calendar .appointment-status-default {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    min-width: 1.75rem;
    min-height: 1.75rem;
    border-radius: var(--bk-radius-field, 0.5rem);
    background: rgba(255, 255, 255, 0.9);
    color: inherit;
    font-size: 0.85rem;
    border: 1px solid rgba(0, 0, 0, 0.08);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    flex-shrink: 0;
}

#fs-calendar .appointment-status-default i {
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

#fs-calendar .fc-more,
#fs-calendar .fc-list-item-title {
    color: var(--bk-primary-500);
    font-weight: 600;
}


@media (min-width: 48rem) {
    .main_wrapper .m_header {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .m_head_actions {
        flex-direction: row;
        justify-content: flex-end;
        align-items: center;
    }

    .advanced_filters_popover {
        width: 32rem;
    }

    .advanced_filters_popover .filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* 8. Auth Modules (Preserved) */
.booknetic_login,
.booknetic_signup,
.booknetic_forgot_password {
    background: var(--bk-surface);
    border-radius: var(--bk-radius-box);
    box-shadow: 0 0.625rem 1.875rem rgba(0, 0, 0, 0.1);
    max-width: 28rem;
    margin: 2rem auto;
    overflow: hidden;
    position: relative;
}

.booknetic_login::before {
    content: '';
    position: absolute;
    top: 0;
    width: 100%;
    height: 0.3125rem;
    background: var(--bk-accent);
}

.booknetic_header {
    padding: 2.5rem 3rem 1.5rem;
    text-align: center;
    font-weight: 600;
    font-size: 1.8rem;
}

.booknetic_form {
    padding: 0 3rem 2rem;
}

/* 9. Role Scopes (SaaS & Tenant Overrides) */

/* SaaS Admin Specifics */
body.bkntc-role-saas-admin {
    background: var(--bk-base-200);
}

body.bkntc-role-saas-admin .bkntc-card,
body.bkntc-role-saas-admin .card {
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    box-shadow: var(--bk-shadow-soft);
}

/* Tenant (Vendor) Admin - "The Nuclear Option" Overrides */
body.bkntc-role-tenant .btn-primary,
body.bkntc-role-tenant .badge-primary,
body.bkntc-role-tenant .bg-purple,
body.bkntc-role-tenant .l_m_nav_item_icon_dot {
    background-color: #ff6f00;
    border-color: #ff6f00;
    color: #ffffff;
}

/* Fix Sidebar Parent Items in Tenant View */
body.bkntc-role-tenant .left_side_menu .l_m_nav_item.is_parent>.l_m_nav_item_link {
    background: #ffffff;
    color: #6b7280;
}

body.bkntc-role-tenant .left_side_menu .l_m_nav_item.is_parent.active_menu>.l_m_nav_item_link>i {
    color: var(--bk-accent);
}

/* Dashboard Date Filter Buttons */
body.bkntc-role-tenant .date_filter_btns .btn.active {
    background-color: #ff6f00;
    border-color: #ff6f00;
    color: #ffffff;
}

/* Utilities */
.d-none {
    display: none;
}

.d-flex {
    display: flex;
}

.w-100 {
    width: 100%;
}

.text-center {
    text-align: center;
}

/* =========================================
   17. Calendar/Appointments Modal Fixes
   ========================================= */

/* Fix Issue 1: Hidden second-step table headers leaking visible */
.hidden,
.second-step.hidden,
#addAppointmentForm .second-step.hidden {
    display: none;
    visibility: hidden;
    height: 0;
    overflow: hidden;
}

/* Ensure table in hidden step doesn't leak */
.second-step.hidden table,
.second-step.hidden thead,
.second-step.hidden th,
.second-step.hidden tbody {
    display: none;
}



/* Ensure customer select dropdown parent is correct */
.customers_area .input-group {
    position: relative;
}

/* Fix appointments modal form group spacing */
#addAppointmentForm .form-group {
    margin-bottom: 1rem;
}

#addAppointmentForm .row {
    row-gap: 0.5rem;
}

/* Fix label visibility in modal - do not hide labels */
#addAppointmentForm label {
    display: block;
    margin-bottom: 0.375rem;
    font-weight: 500;
    color: var(--bk-text-secondary);
}

/* Mobile-first responsive adjustments */
@media (min-width: 48rem) {}

/* =========================================
   18. Customer Row & Date/Time Fixes
   ========================================= */

/* Fix customer template row layout - keep all elements on same row */
#addAppointmentForm .customer-tpl {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin-left: 0;
    padding-left: 0;
}

#addAppointmentForm .customer-tpl>.col-md-6:first-child {
    flex: 1 1 40%;
    min-width: 15rem;
    max-width: 50%;
    padding-left: 0;
    margin-left: 0;
}

#addAppointmentForm .customer-tpl>.col-md-6:last-child {
    flex: 1 1 auto;
    display: flex;
    gap: 0.5rem;
}

/* Fix input-group to keep + button inline with select */
#addAppointmentForm .customers_area .input-group {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100%;
}

/* ===========================================
   Date/Time Input Group Styling (bkntc-datetime-input)
   Uses Bootstrap input-group pattern with prepend icons
   =========================================== */

/* Base container - flex layout to keep icon and input together */
#addAppointmentForm .bkntc-datetime-input {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100%;
}

/* Icon prepend container */
#addAppointmentForm .bkntc-datetime-input .input-group-text {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 0.75rem;
    background-color: var(--bk-surface-muted, #f8f8f8);
    border: 1px solid var(--bk-border, #e3e6ea);
    border-right: none;
    border-radius: var(--bk-radius-field, 0.5rem) 0 0 var(--bk-radius-field, 0.5rem);
    min-height: 2.75rem;
}

/* Bootstrap icon inside the prepend */
#addAppointmentForm .bkntc-datetime-input .input-group-text i.bi {
    font-size: 1rem;
    color: var(--bk-text-muted, #6b7280);
    line-height: 1;
}

/* Date input styling */
#addAppointmentForm .bkntc-datetime-input input.form-control {
    flex: 1 1 auto;
    width: 1%;
    min-width: 0;
    min-height: 2.75rem;
    height: 2.75rem;
    border-radius: 0 var(--bk-radius-field, 0.5rem) var(--bk-radius-field, 0.5rem) 0;
    border-left: none;
}

/* ============================================
   STAFF MODULE - TABLE & MODAL IMPROVEMENTS
   ============================================ */

/* --- Data Table: User Visit Card (Image + Name Inline) --- */
/* Force inline layout in table cells - high specificity */
.elegant_table td .user_visit_card,
.booknetic_appointment .elegant_table td .user_visit_card,
.user_visit_card,
.booknetic_appointment .user_visit_card {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
    flex-wrap: nowrap;
}

.user_visit_card .circle_image,
.booknetic_appointment .user_visit_card .circle_image {
    flex-shrink: 0;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    overflow: hidden;
}

.user_visit_card .circle_image img,
.booknetic_appointment .user_visit_card .circle_image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.user_visit_card .user_visit_details,
.booknetic_appointment .user_visit_card .user_visit_details {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    min-width: 0;
    flex: 1;
}

.user_visit_card .user_visit_details span:first-child,
.booknetic_appointment .user_visit_card .user_visit_details span:first-child {
    font-weight: 500;
    color: var(--bk-text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.user_visit_card .user_visit_details span:last-child,
.booknetic_appointment .user_visit_card .user_visit_details span:last-child {
    font-size: 0.8rem;
    color: var(--bk-text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* --- Service Color Badge --- */
.service-color-badge,
.booknetic_appointment .service-color-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.25rem 0.625rem;
    border-radius: 50rem;
    font-size: 0.8125rem;
    font-weight: 500;
    white-space: nowrap;
    border: none;
    color: #fff;
    background-color: var(--badge-color, var(--bk-primary-500));
}

/* Light color variant (for light service colors) */
.service-color-badge.light-text,
.booknetic_appointment .service-color-badge.light-text {
    color: var(--bk-text-primary);
}

/* --- Staff Avatars Inline (Services List) --- */
.staff-avatars-inline,
.booknetic_appointment .staff-avatars-inline {
    display: inline-flex;
    align-items: center;
    gap: 0;
}

.staff-avatar-sm,
.booknetic_appointment .staff-avatar-sm {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--bk-surface);
    margin-left: -0.5rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.staff-avatar-sm:first-child,
.booknetic_appointment .staff-avatar-sm:first-child {
    margin-left: 0;
}

.staff-avatar-more,
.booknetic_appointment .staff-avatar-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 2rem;
    padding: 0 0.375rem;
    margin-left: -0.25rem;
    border-radius: 50rem;
    background: var(--bk-primary-100);
    color: var(--bk-primary-600);
    font-size: 0.75rem;
    font-weight: 600;
    border: 2px solid var(--bk-surface);
}

/* --- Add Service Modal: Deposit Input-Group Inline Layout --- */
.fs-modal [data-for="deposit"] .input-group,
.booknetic_appointment .fs-modal [data-for="deposit"] .input-group {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
}

.fs-modal [data-for="deposit"] .input-group>input,
.booknetic_appointment .fs-modal [data-for="deposit"] .input-group>input {
    flex: 1 1 auto;
    min-width: 0;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

.fs-modal [data-for="deposit"] .input-group>select,
.booknetic_appointment .fs-modal [data-for="deposit"] .input-group>select {
    flex: 0 0 auto;
    width: auto;
    min-width: 60px;
    border-left: 0;
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
}

/* --- Add Service Modal: TomSelect Locations Styling --- */
.fs-modal #input_service_locations+.ts-wrapper,
.booknetic_appointment .fs-modal #input_service_locations+.ts-wrapper {
    width: 100%;
}

.fs-modal #input_service_locations+.ts-wrapper .ts-control,
.booknetic_appointment .fs-modal #input_service_locations+.ts-wrapper .ts-control {
    min-height: 44px;
    border-radius: var(--bk-radius-field, 0.5rem);
    border: 1px solid var(--bk-border, #e3e6ea);
    background: var(--bk-surface, #ffffff);
    padding: 6px 10px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.fs-modal .ts-wrapper .ts-control .item,
.booknetic_appointment .fs-modal .ts-wrapper .ts-control .item {
    background: var(--bk-primary-100, #e5ebf1);
    color: var(--bk-text-primary, #0f0f0f);
    border-radius: 50rem;
    padding: 4px 10px;
    font-size: 0.8125rem;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* --- Data Table: Thicker Separators & Selection Color --- */
.booknetic_appointment .elegant_table tbody td {
    border-bottom: 2px solid rgba(35, 59, 77, 0.06);
}

.booknetic_appointment .elegant_table tbody tr:focus,
.booknetic_appointment .elegant_table tbody tr:focus-within,
.booknetic_appointment .elegant_table tbody tr.selected {
    outline: none;
    box-shadow: none;
}

.booknetic_appointment .elegant_table tbody tr.selected td,
.booknetic_appointment .elegant_table tbody tr:focus td,
.booknetic_appointment .elegant_table tbody tr.active td {
    background-color: var(--bk-primary-100);
}

/* --- Staff Modal: 2-Column Form Layout --- */
#addStaffForm .form-row {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1rem;
}

#addStaffForm .form-row .form-group {
    margin-bottom: 0;
}

#addStaffForm .form-row .form-group.col-md-6 {
    flex: 1 1 calc(50% - 0.5rem);
    min-width: 14rem;
}

#addStaffForm .form-row .form-group.col-md-12 {
    flex: 1 1 100%;
}

/* --- Staff Modal: Reduce Tab-Content Gap --- */
#addStaffForm .tab-content {
    margin-top: 1rem;
}

/* --- Staff Modal: Form Control Checkbox & Toggle Alignment --- */
#addStaffForm .form-control-checkbox {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-height: 2.75rem;
    padding: 0.5rem 0;
}

#addStaffForm .form-control-checkbox label {
    margin: 0;
    font-weight: 500;
    color: var(--bk-text-secondary);
    cursor: pointer;
}


/* --- Staff Modal: Image Upload Styling --- */
#addStaffForm input[type="file"] {
    padding: 0.5rem;
    border: 1px solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    background: var(--bk-surface);
}

#addStaffForm input[type="file"]::file-selector-button {
    background: var(--bk-primary-100);
    color: var(--bk-primary-600);
    border: none;
    border-radius: var(--bk-radius-field);
    padding: 0.375rem 0.875rem;
    font-weight: 500;
    font-size: 0.8125rem;
    margin-right: 0.75rem;
}

#addStaffForm input[type="file"]::file-selector-button:hover {
    background: var(--bk-primary-500);
    color: var(--bk-primary-content);
}

/* --- Staff Modal: Timesheet Styling --- */
#addStaffForm #set_specific_timesheet .form-row {
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--bk-border);
}

#addStaffForm .timesheet-label {
    font-weight: 600;
    color: var(--bk-primary-500);
}

#addStaffForm .day_off_checkbox {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

/* --- Staff Modal: Break Styling --- */
#addStaffForm #set_specific_timesheet .break_line,
#addStaffForm .break_line {
    background: var(--bk-surface-muted);
    padding: 0.875rem 1rem;
    border-radius: var(--bk-radius-field);
    margin: 0.5rem 0;
    border: 1px solid var(--bk-border);
}

#addStaffForm .break-controls {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

#addStaffForm .add-break-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    color: var(--bk-accent);
    font-weight: 500;
    cursor: pointer;
}

#addStaffForm .delete-break-btn {
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 1px solid var(--bk-border);
    border-radius: 50%;
    background: var(--bk-surface);
    color: var(--bk-text-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

#addStaffForm .delete-break-btn:hover {
    border-color: var(--bk-error);
    color: var(--bk-error);
}

/* --- Staff Modal: Yearly Calendar --- */
.yearly_calendar {
    background: var(--bk-surface);
    border: 1px solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    overflow: hidden;
}

.yearly_calendar .calendar-header {
    background: var(--bk-primary-500);
    color: var(--bk-primary-content);
    padding: 0.75rem 1rem;
}

.yearly_calendar .calendar-header th {
    color: var(--bk-primary-content);
}

.yearly_calendar .day-content {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--bk-radius-field);
}

.yearly_calendar .day.selected .day-content {
    background: var(--bk-primary-500);
    color: var(--bk-primary-content);
}

/* --- Special Days Tab --- */
#addStaffForm .special-day-row {
    background: var(--bk-surface-muted);
    border: 1px solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    padding: 1rem;
    margin-bottom: 0.75rem;
    position: relative;
}

#addStaffForm .remove-special-day-btn {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    width: 2rem;
    height: 2rem;
    border: 1px solid var(--bk-border);
    border-radius: 50%;
    background: var(--bk-surface);
}

#addStaffForm .remove-special-day-btn:hover {
    border-color: var(--bk-error);
    color: var(--bk-error);
}

#addStaffForm .days_divider2 {
    border-bottom: 1px solid var(--bk-border);
    margin: 0.75rem 0;
}

/* ============================================
   WOCHENPLAN (TIMESHEET) TAB IMPROVEMENTS
   ============================================ */

/* Day-off checkbox: Grey out time inputs when checked */
#addStaffForm .form-row:has(.dayy_off_checkbox:checked) .input-group {
    opacity: 0.4;
    pointer-events: none;
}

#addStaffForm .form-row:has(.dayy_off_checkbox:checked) .input-group select {
    background: var(--bk-surface-muted);
    cursor: not-allowed;
}

/* Remove double border when day-off is checked - hide break area and add-break */
#addStaffForm .form-row:has(.dayy_off_checkbox:checked)+.breaks_area,
#addStaffForm .form-row:has(.dayy_off_checkbox:checked)+.breaks_area+.add-break-btn {
    display: none;
}

/* Also hide divider when followed by a day-off checked row */
#addStaffForm .form-row:has(.dayy_off_checkbox:checked)+.breaks_area+.add-break-btn+.days_divider2 {
    margin-top: 0;
    border-top: none;
}

/* ============================================
   SERVICE MODAL TIMESHEET TAB FIXES
   ============================================ */

/* Day-off checkbox: Grey out time inputs when checked (Service Modal) */
.fs-modal .form-row:has(.dayy_off_checkbox:checked) .input-group,
.fs-modal [data-tstab="weekly-schedule"] .form-row:has(.dayy_off_checkbox:checked) .input-group {
    opacity: 0.4;
    pointer-events: none;
}

.fs-modal .form-row:has(.dayy_off_checkbox:checked) .input-group select,
.fs-modal [data-tstab="weekly-schedule"] .form-row:has(.dayy_off_checkbox:checked) .input-group select {
    background: var(--bk-surface-muted);
    cursor: not-allowed;
}

/* Hide break area and add-break button when day-off is checked */
.fs-modal .form-row:has(.dayy_off_checkbox:checked)+.breaks_area,
.fs-modal .form-row:has(.dayy_off_checkbox:checked)+.breaks_area+.add-break-btn {
    display: none;
}

/* Inner-Addon: Position icon inline-left of input (Service Modal) */
.fs-modal .inner-addon.left-addon,
.fs-modal [data-tstab="weekly-schedule"] .inner-addon.left-addon {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.fs-modal .inner-addon.left-addon>i,
.fs-modal [data-tstab="weekly-schedule"] .inner-addon.left-addon>i {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--bk-text-muted);
}

.fs-modal .inner-addon.left-addon>i img,
.fs-modal [data-tstab="weekly-schedule"] .inner-addon.left-addon>i img {
    width: 1rem;
    height: 1rem;
    opacity: 0.6;
}

.fs-modal .inner-addon.left-addon>select,
.fs-modal .inner-addon.left-addon>input,
.fs-modal [data-tstab="weekly-schedule"] .inner-addon.left-addon>select,
.fs-modal [data-tstab="weekly-schedule"] .inner-addon.left-addon>input {
    flex: 1;
    min-width: 0;
}

/* Day-off checkbox: Inline layout (Service Modal) */
.fs-modal .day_off_checkbox,
.fs-modal [data-tstab="weekly-schedule"] .day_off_checkbox {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.fs-modal .day_off_checkbox label,
.fs-modal [data-tstab="weekly-schedule"] .day_off_checkbox label {
    margin: 0;
    font-weight: 400;
    color: var(--bk-text-primary);
    cursor: pointer;
}

/* Toggle switch constraint for timesheet row */
.fs-modal .form-control-checkbox {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: nowrap;
}


/* Breaks Area - Better Spacing */
#addStaffForm .breaks_area {
    padding: 0 0 0.5rem 0;
}

#addStaffForm .break_line .breaks-label {
    font-weight: 600;
    color: var(--bk-text-secondary);
    font-size: 0.8125rem;
    margin-bottom: 0.5rem;
}

/* Break Controls - Even Spacing */
#addStaffForm .break-controls {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

#addStaffForm .break-controls .break-select {
    flex: 1 1 10rem;
    min-width: 8rem;
    max-width: 12rem;
}

/* Delete Break Button - Nicer Styling */
#addStaffForm .delete-break-btn {
    width: 2.25rem;
    height: 2.25rem;
    min-width: 2.25rem;
    padding: 0;
    border: 1px solid var(--bk-border);
    border-radius: 50%;
    background: var(--bk-surface);
    color: var(--bk-text-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all var(--bk-transition);
    flex-shrink: 0;
}

#addStaffForm .delete-break-btn:hover {
    border-color: var(--bk-error);
    color: var(--bk-error);
    background: var(--bk-error-soft);
}

#addStaffForm .delete-break-btn i {
    font-size: 0.75rem;
}

/* Add Break Button - Proper Styling */
#addStaffForm .add-break-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--bk-accent);
    font-weight: 500;
    font-size: 0.875rem;
    cursor: pointer;
    padding: 0.5rem 0;
    margin-top: 0.25rem;
    transition: color var(--bk-transition);
}

#addStaffForm .add-break-btn:hover {
    color: var(--bk-accent-600);
}

#addStaffForm .add-break-btn i {
    font-size: 1rem;
}

/* ============================================
   BESONDERE TAGE (SPECIAL DAYS) TAB FIXES
   ============================================ */

/* Special Day Row - Card Styling */
#addStaffForm .special-day-row {
    background: var(--bk-surface-muted);
    border: 1px solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    padding: 1.25rem;
    padding-right: 3.5rem;
    /* Space for remove button */
    margin-bottom: 1rem;
    position: relative;
}

/* Form Row - Even Alignment */
#addStaffForm .special-day-row .form-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
    align-items: stretch;
}

#addStaffForm .special-day-row .form-row:last-child {
    margin-bottom: 0;
}

#addStaffForm .special-day-row .form-group {
    margin-bottom: 0;
}

#addStaffForm .special-day-row .form-group.col-md-6 {
    flex: 1 1 calc(50% - 0.5rem);
    min-width: 12rem;
}

/* Date Input with Icon - Full Height */
#addStaffForm .special-day-row .inner-addon {
    position: relative;
    display: flex;
    align-items: center;
    height: 100%;
}

#addStaffForm .special-day-row .inner-addon.left-addon i {
    position: absolute;
    left: 0.875rem;
    color: var(--bk-text-muted);
    z-index: 1;
    font-size: 1rem;
}

#addStaffForm .special-day-row .inner-addon.left-addon input {
    padding-left: 2.5rem;
    height: 2.75rem;
}

/* Time Inputs - Same Row Alignment */
#addStaffForm .special-day-row .input-group {
    display: flex;
    gap: 0.5rem;
    height: 100%;
}

#addStaffForm .special-day-row .input-group .col-md-6 {
    flex: 1;
    min-width: 0;
}


/* Remove Special Day Button - Fixed Position Not Covered */
#addStaffForm .remove-special-day-btn {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 1px solid var(--bk-border);
    border-radius: 50%;
    background: var(--bk-surface);
    color: var(--bk-text-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all var(--bk-transition);
    z-index: 10;
}

#addStaffForm .remove-special-day-btn:hover {
    border-color: var(--bk-error);
    color: var(--bk-error-content);
    background: var(--bk-error);
}

#addStaffForm .remove-special-day-btn i {
    font-size: 0.75rem;
}

/* Special Day Breaks Footer */
#addStaffForm .sd_break_footer {
    margin-top: 0.75rem;
}

/* Special Day Add Break Button - Styled */
#addStaffForm .special-day-add-break-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: transparent;
    border: none;
    color: var(--bk-accent);
    font-weight: 500;
    font-size: 0.875rem;
    cursor: pointer;
    padding: 0.375rem 0;
    transition: color var(--bk-transition);
}

#addStaffForm .special-day-add-break-btn:hover {
    color: var(--bk-accent-600);
}

#addStaffForm .special-day-add-break-btn i {
    font-size: 1rem;
}

/* Add Special Day Button */
#addStaffForm .add-special-day-btn,
.add-special-day-btn {
    margin-top: 0.5rem;
}

/* ============================================
   URLAUB (HOLIDAYS) TAB - 2 COLUMN CALENDAR
   ============================================ */

/* Bootstrap Year Calendar - Container */
.yearly_calendar.calendar {
    background: var(--bk-surface);
    border: 1px solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    overflow: hidden;
}

/* Months Container - 2 Column Grid */
.yearly_calendar.calendar .months-container {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    padding: 1rem;
}

.yearly_calendar.calendar .month-container {
    width: 100%;
    min-width: 0;
    height: auto;
    text-align: center;
    padding: 0;
    float: none;
}

.yearly_calendar.calendar .month-container table.month {
    width: 100%;
}

/* Navigation Header - Even Width Year Selectors */
.yearly_calendar.calendar .calendar-header {
    padding: 0.75rem 1rem;
    background: var(--bk-primary-500);
    margin-bottom: 0;
}

.yearly_calendar.calendar .calendar-header table {
    width: 100%;
    table-layout: fixed;
}

.yearly_calendar.calendar .calendar-header th {
    padding: 0.5rem;
    text-align: center;
    vertical-align: middle;
}

.yearly_calendar.calendar .calendar-header th.prev,
.yearly_calendar.calendar .calendar-header th.next {
    width: 2.5rem;
    cursor: pointer;
    color: var(--bk-primary-content);
}

.yearly_calendar.calendar .calendar-header th.prev:hover,
.yearly_calendar.calendar .calendar-header th.next:hover {
    opacity: 0.8;
}

.yearly_calendar.calendar .calendar-header th.year-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--bk-primary-content);
    cursor: pointer;
}

.yearly_calendar.calendar .calendar-header th.year-neighbor,
.yearly_calendar.calendar .calendar-header th.year-neighbor2 {
    color: rgba(255, 255, 255, 0.6);
    cursor: pointer;
    font-size: 0.9375rem;
}

.yearly_calendar.calendar .calendar-header th.year-neighbor:hover,
.yearly_calendar.calendar .calendar-header th.year-neighbor2:hover {
    color: var(--bk-primary-content);
}

/* Month Title */
.yearly_calendar.calendar .month-container th.month-title {
    font-weight: 600;
    font-size: 0.9375rem;
    color: var(--bk-text-primary);
    padding: 0.75rem 0;
    text-align: center;
    background: var(--bk-base-200);
}

/* Calendar Days Grid */
.yearly_calendar.calendar table.month thead th {
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--bk-text-muted);
    text-transform: uppercase;
    text-align: center;
    padding: 0.375rem 0.125rem;
}

.yearly_calendar.calendar table.month tbody td {
    padding: 0.125rem;
    text-align: center;
}

.yearly_calendar.calendar table.month td.day .day-content {
    width: 1.75rem;
    height: 1.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--bk-radius-field);
    font-size: 0.75rem;
    cursor: pointer;
    transition: all var(--bk-transition);
}

.yearly_calendar.calendar table.month td.day:not(.disabled) .day-content:hover {
    background: var(--bk-primary-100);
    color: var(--bk-primary-600);
}

.yearly_calendar.calendar table.month td.day.range .day-content,
.yearly_calendar.calendar table.month td.day.range-start .day-content,
.yearly_calendar.calendar table.month td.day.range-end .day-content {
    background: var(--bk-primary-500);
    color: var(--bk-primary-content);
}

.yearly_calendar.calendar table.month td.day.disabled .day-content {
    color: var(--bk-text-muted);
    opacity: 0.4;
    cursor: not-allowed;
}

.yearly_calendar.calendar table.month td.day.old .day-content,
.yearly_calendar.calendar table.month td.day.new .day-content {
    color: var(--bk-text-muted);
    opacity: 0.3;
}

/* Responsive: Single column on smaller modals */
@media (max-width: 600px) {
    .yearly_calendar.calendar .months-container {
        grid-template-columns: 1fr;
    }
}


/* =====================================================
   18. TOM SELECT OVERRIDES
   - Styling for multi-select migration to Tom Select
   - Consistent with design system tokens
   ===================================================== */

/* Wrapper - Full width container */
.booknetic_appointment .ts-wrapper,
.fs-modal .ts-wrapper {
    width: 100%;
}

/* Hide blinking cursor/input in single select when item is selected */
.ts-wrapper.single.has-items .ts-control>input {
    opacity: 0 !important;
    position: absolute !important;
    width: 1px !important;
}

/* Control - Main input area */
.booknetic_appointment .ts-control,
.fs-modal .ts-control {
    border-radius: var(--bk-radius-field, 0.5rem);
    border: 1px solid var(--bk-border, #e3e6ea);
    background: var(--bk-surface, #ffffff);
    min-height: 2.75rem;
    padding: 0.375rem 0.5rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem;
    box-shadow: none;
    transition: border-color var(--bk-transition, 150ms ease), box-shadow var(--bk-transition, 150ms ease);
}

/* Focus state */
.booknetic_appointment .ts-wrapper.focus .ts-control,
.fs-modal .ts-wrapper.focus .ts-control {
    border-color: var(--bk-border-focus, #233b4d);
    box-shadow: var(--bk-focus-ring, 0 0 0 3px rgba(35, 59, 77, 0.25));
}

/* Dropdown - Options container */
.booknetic_appointment .ts-dropdown,
.fs-modal .ts-dropdown {
    border-radius: var(--bk-radius-field, 0.5rem);
    border: 1px solid var(--bk-border, #e3e6ea);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    margin-top: 2px;
    /* Small gap for visual separation */
    background: var(--bk-surface, #ffffff);
    z-index: 100001;
    /* Must be higher than modal z-index (99999) */
}

/* Dropdown content container */
.booknetic_appointment .ts-dropdown-content,
.fs-modal .ts-dropdown-content {
    padding: 0;
    max-height: 20rem;
    overflow-y: auto;
}

/* Individual options */
.booknetic_appointment .ts-dropdown .option,
.fs-modal .ts-dropdown .option {
    padding: 0.625rem 0.875rem;
    font-size: 0.9rem;
    color: var(--bk-text-primary, #0f0f0f);
    cursor: pointer;
    border-bottom: 1px solid var(--bk-border, #e3e6ea);
    transition: background var(--bk-transition, 150ms ease);
}

.booknetic_appointment .ts-dropdown .option:last-child,
.fs-modal .ts-dropdown .option:last-child {
    border-bottom: none;
}

/* Hover state */
.booknetic_appointment .ts-dropdown .option:hover,
.fs-modal .ts-dropdown .option:hover {
    background: var(--bk-base-200, #f8f8f8);
}

/* Active/highlighted option */
.booknetic_appointment .ts-dropdown .option.active,
.fs-modal .ts-dropdown .option.active {
    background: var(--bk-primary-100, #e5ebf1);
    color: var(--bk-primary-600, #1c2f3e);
}

/* Selected items (pills/tags) */
.booknetic_appointment .ts-control .item,
.fs-modal .ts-control .item {
    background: var(--bk-primary-100, #e5ebf1);
    color: var(--bk-primary-600, #1c2f3e);
    border-radius: 50rem;
    padding: 0.25rem 0.625rem 0.25rem 0.75rem;
    font-size: 0.8125rem;
    font-weight: 500;
    margin: 0.125rem;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    border: none;
}

/* Remove button on pills (from remove_button plugin) */
.booknetic_appointment .ts-control .item .remove,
.fs-modal .ts-control .item .remove {
    color: var(--bk-primary-500, #233b4d);
    font-size: 1rem;
    font-weight: 600;
    background: transparent;
    border: none;
    border-left: none;
    padding: 0;
    margin-left: 0.25rem;
    cursor: pointer;
    line-height: 1;
    opacity: 0.7;
    transition: opacity var(--bk-transition, 150ms ease), color var(--bk-transition, 150ms ease);
}

.booknetic_appointment .ts-control .item .remove:hover,
.fs-modal .ts-control .item .remove:hover {
    color: var(--bk-error, #f2415a);
    opacity: 1;
}

/* Clear button (from clear_button plugin) */
.booknetic_appointment .ts-wrapper .clear-button,
.fs-modal .ts-wrapper .clear-button {
    color: var(--bk-text-muted, #6b7280);
    font-size: 1.125rem;
    cursor: pointer;
    padding: 0 0.5rem;
    line-height: 1;
    transition: color var(--bk-transition, 150ms ease);
}

.booknetic_appointment .ts-wrapper .clear-button:hover,
.fs-modal .ts-wrapper .clear-button:hover {
    color: var(--bk-error, #f2415a);
}

/* Input field styling */
.booknetic_appointment .ts-control input,
.fs-modal .ts-control input {
    min-width: 5rem;
    height: 1.75rem;
    border: none;
    background: transparent;
    box-shadow: none;
    outline: none;
    font-size: 0.9rem;
    color: var(--bk-text-primary, #0f0f0f);
}

.booknetic_appointment .ts-control input::placeholder,
.fs-modal .ts-control input::placeholder {
    color: var(--bk-text-muted, #6b7280);
}

/* No results message */
.booknetic_appointment .ts-dropdown .no-results,
.fs-modal .ts-dropdown .no-results {
    padding: 0.75rem 0.875rem;
    color: var(--bk-text-muted, #6b7280);
    font-style: italic;
    text-align: center;
}

.booknetic_appointment .ts-wrapper.disabled .ts-control,
.fs-modal .ts-wrapper.disabled .ts-control {
    background: var(--bk-surface-muted, #f8f8f8);
    opacity: 0.6;
    cursor: not-allowed;
}

/* =========================================
   Dashboard Module (Backend)
   ========================================= */

/* Date Filter Buttons */
#date_buttons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 1rem 0 1.5rem;
}

#date_buttons .date_buttons_span {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}

#date_buttons .date_button {
    padding: 0.5rem 1rem;
    font-size: 0.8125rem;
    font-weight: 500;
    background: var(--bk-surface);
    border: 1px solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    color: var(--bk-text-secondary);
    cursor: pointer;
    transition: all var(--bk-transition);
}

#date_buttons .date_button:hover {
    background: var(--bk-base-200);
    border-color: var(--bk-border-strong);
    color: var(--bk-text-primary);
}

#date_buttons .date_button.active_btn,
#date_buttons .date_button.active {
    background: var(--bk-primary-500);
    border-color: var(--bk-primary-500);
    color: var(--bk-primary-content);
}

/* Custom Date Picker */
#date_buttons .date_custom_picker_d {
    position: relative;
    display: none;
    margin-left: 0.5rem;
}

#date_buttons .date_custom_picker_d.show {
    display: flex;
}

#date_buttons .inner-addon {
    position: relative;
}

#date_buttons .inner-addon.left-addon i {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    line-height: 1;
}

#date_buttons .inner-addon.left-addon i img {
    width: 1rem;
    height: 1rem;
    opacity: 0.5;
}

#date_buttons .custom_date_range {
    padding-left: 2.25rem;
    min-height: 2.375rem;
    font-size: 0.8125rem;
    min-width: 14rem;
}

/* Statistic Boxes (Top Cards) */
#statistic-boxes-area {
    margin-bottom: 1.5rem;
}

#statistic-boxes-area .row {
    display: flex;
    flex-wrap: wrap;
    margin: 0;
}

#statistic-boxes-area .col-xl-3,
#statistic-boxes-area .col-lg-6 {
    padding: 0;
    margin-bottom: 1.25rem;
}

.statistic-boxes {
    background: var(--bk-surface);
    border: 1px solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    padding: 1.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    transition: box-shadow var(--bk-transition), transform var(--bk-transition);
    min-height: 6rem;
}

.statistic-boxes:hover {
    box-shadow: var(--bk-shadow-hover);
    transform: translateY(-0.125rem);
}

.statistic-boxes .box-icon-div {
    width: auto;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin-bottom: 0.5rem;
}

.statistic-boxes .box-icon-div img {
    width: 3rem;
    height: 3rem;
}

.statistic-boxes .box-number-div {
    font-size: 1.75rem;
    font-weight: 600;
    color: var(--bk-text-primary);
    line-height: 1.2;
}

.statistic-boxes .box-title-div {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--bk-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

/* Dashboard Cards (Quick Stats + Graph) */
.card_list {
    margin-top: 1.5rem;
}

.card_list .row {
    display: flex;
    flex-wrap: wrap;
    margin: 0;
}

.card_list .col-xl-3,
.card_list .col-xl-9,
.card_list .col-lg-6 {
    padding: 0;
    margin-bottom: 1.25rem;
}

.dashboard-card {
    background: var(--bk-surface);
    border: 1px solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    overflow: hidden;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.dashboard-card-title {
    padding: 0.75rem 1.25rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--bk-text-muted);
    border-bottom: 1px solid var(--bk-border);
    background: var(--bk-surface-muted);
    min-height: 3rem;
    display: flex;
    align-items: center;
}

.dashboard-card-title.graph-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.dashboard-card-title .title-content {
    flex-shrink: 0;
}

.dashboard-card-title .graph-btns {
    display: flex;
    align-items: center;
}

.dashboard-card-title .graph-btns .date_buttons_span {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.dashboard-card-title .graph-btns .date_button {
    padding: 0.35rem 0.65rem;
    font-size: 0.6875rem;
    font-weight: 500;
    background: var(--bk-surface);
    border: 1px solid var(--bk-border);
    border-radius: var(--bk-radius-selector);
    color: var(--bk-text-secondary);
    cursor: pointer;
    transition: all var(--bk-transition);
}

.dashboard-card-title .graph-btns .date_button:hover {
    background: var(--bk-base-200);
    border-color: var(--bk-border-strong);
}

.dashboard-card-title .graph-btns .date_button.active {
    background: var(--bk-primary-500);
    border-color: var(--bk-primary-500);
    color: var(--bk-primary-content);
}

.dashboard-card-body {
    padding: 1.25rem 1.5rem;
    flex: 1;
}

/* Appointment Quick Stats List */
.dashboard-appointments {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--bk-border);
}

.dashboard-appointments:last-child {
    border-bottom: none;
}

.dashboard-appointments .appointment-status {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.dashboard-appointments .appointment-status-icon {
    width: 2rem;
    height: 2rem;
    border-radius: var(--bk-radius-field);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
}

.dashboard-appointments .appointment-status-icon i {
    line-height: 1;
}

.dashboard-appointments .appointment-status-title {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--bk-text-primary);
}

.dashboard-appointments .appointment-stats {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--bk-text-primary);
    min-width: 2.5rem;
    text-align: right;
}

/* Graph Container */
.graph-body {
    min-height: 18rem;
}

#graph {
    width: 100%;
    height: 100%;
    min-height: 16rem;
}

/* SVG Graph Styling */
#graph svg {
    width: 100%;
    height: 100%;
}

#graph rect {
    rx: 3;
    ry: 3;
}

#graph .month,
#graph .wday {
    font-size: 0.6875rem;
    fill: var(--bk-text-muted);
}

#graph .graph-legend {
    font-size: 0.6875rem;
    fill: var(--bk-text-muted);
}

/* Boostore Notification */
.boostore-notification-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: linear-gradient(90deg, var(--bk-accent-100), var(--bk-surface));
    border: 1px solid var(--bk-accent);
    border-radius: var(--bk-radius-box);
    padding: 0.875rem 1rem;
    margin-bottom: 1rem;
    cursor: pointer;
    transition: all var(--bk-transition);
}

.boostore-notification-container:hover {
    box-shadow: var(--bk-shadow-hover);
}

.boostore-notification-body {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.boostore-notification-badge {
    background: var(--bk-accent);
    color: var(--bk-accent-content);
    padding: 0.25rem 0.65rem;
    border-radius: var(--bk-radius-round);
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.boostore-notification-text {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--bk-text-primary);
}

.boostore-notification-arrow img {
    width: 1rem;
    height: 1rem;
    opacity: 0.6;
}

.boostore-notification-close {
    padding: 0.375rem;
    opacity: 0.6;
    transition: opacity var(--bk-transition);
}

.boostore-notification-close:hover {
    opacity: 1;
}

.boostore-notification-close img {
    width: 0.875rem;
    height: 0.875rem;
}

/* Mobile Responsiveness */
@media (max-width: 991.98px) {
    #statistic-boxes-area .col-lg-6 {
        margin-bottom: 1rem;
    }

    .card_list .col-lg-6 {
        margin-bottom: 1rem;
    }
}

@media (min-width: 48rem) {
    #statistic-boxes-area .row,
    .card_list .row {
        margin: 0 -0.75rem;
    }

    #statistic-boxes-area .col-xl-3,
    #statistic-boxes-area .col-lg-6,
    .card_list .col-xl-3,
    .card_list .col-xl-9,
    .card_list .col-lg-6 {
        padding: 0 0.75rem;
    }
}

@media (max-width: 767.98px) {
    #date_buttons {
        flex-direction: column;
        align-items: flex-start;
    }

    .statistic-boxes {
        padding: 1rem;
    }

    .statistic-boxes .box-number-div {
        font-size: 1.5rem;
    }

    .dashboard-card-title.graph-title {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* =====================================================
   19. SERVICES ORG CHART MODULE
   Mobile-first, rem-based, no !important
   ===================================================== */

/* Container & Map */
/* =====================================================
   19. SERVICES ORG CHART MODULE
   Mobile-first, rem-based, no !important
   ===================================================== */

/* Container & Map */
#services_map {
    position: relative;
    width: 100%;
    /* Mobile First: Maximize height minus header/footer for mobile */
    height: calc(100vh - 10rem);
    min-height: 25rem;
    overflow: hidden;
    cursor: move;
    padding: 0;
    /* Remove padding to maximize interactive area */
    box-sizing: border-box;
    background-color: var(--bk-base-200);
}

/* Tree Container */
#bkntc-services-tree {
    position: relative;
    width: 100%;
    height: 100%;
}

/* Reset legacy CSS pseudo-element connectors - use orgchart.js SVG instead */
#bkntc-services-tree #categories_tree ul::before,
#bkntc-services-tree #categories_tree ul::after,
#bkntc-services-tree #categories_tree li::before,
#bkntc-services-tree #categories_tree li::after {
    content: none;
    border: none;
}

#categories_tree {
    opacity: 1;
    transition: transform 0.2s ease;
}

#categories_tree ul {
    padding-top: 1.25rem;
    position: relative;
    display: flex;
    list-style: none;
    margin: 0;
    padding-left: 0;
}

#categories_tree li {
    text-align: center;
    list-style-type: none;
    position: relative;
    padding: 1.25rem 1.5rem 0;
}

/* SVG Line Container */
#bkntc-services-tree #bkntc-orgchart-lines {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: visible;
    z-index: 0;
}

#bkntc-services-tree #bkntc-orgchart-lines path {
    stroke: var(--bk-border-strong, #cfd5dc);
    stroke-width: 0.0625rem;
    fill: none;
}

/* Node Details - Base Card */
#categories_tree li>.node_details {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    padding: 0.625rem 1rem;
    background-color: var(--bk-surface);
    color: var(--bk-text-primary);
    font-size: 0.875rem;
    font-weight: 500;
    border-radius: var(--bk-radius-field);
    position: relative;
    user-select: none;
    transition: all 0.2s ease;
    min-height: 2.5rem;
}

/* Root Node (Categories) */
#categories_tree li[data-type="root"]>.node_details {
    padding: 0.625rem 1.125rem;
    background-color: var(--bk-surface);
    color: var(--bk-text-primary);
    font-size: 1rem;
    border: 0.0625rem solid var(--bk-border);
    border-radius: var(--bk-radius-field);
}

/* Category Nodes */
#categories_tree>ul>li>ul>li>.node_details {
    background-color: var(--bk-accent, #FF6F00);
    color: #fff;
    min-height: 2.5rem;
    max-height: 2.75rem;
    height: 2.5rem;
    padding: 0.5rem 1rem;
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    text-align: center;
    overflow: visible;
}

#categories_tree>ul>li>ul>li>ul>li>.node_details {
    background-color: #26C0D6;
    color: #fff;
    min-height: 2.5rem;
    max-height: 2.75rem;
    height: 2.5rem;
    padding: 0.5rem 1rem;
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    text-align: center;
    overflow: visible;
}

#categories_tree>ul>li>ul>li>ul>li>ul>li>.node_details {
    background-color: #ADBFC7;
    color: #fff;
    min-height: 2.5rem;
    max-height: 2.75rem;
    height: 2.5rem;
    padding: 0.5rem 1rem;
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    text-align: center;
    overflow: visible;
}

/* Service Cards */
#categories_tree li[data-type="service"]>.node_details {
    min-height: 6.875rem;
    min-width: 13.75rem;
    max-width: 17.5rem;
    padding: 0.875rem 1.25rem 1rem 1.5rem;
    background: var(--bk-surface);
    border: 0.0625rem solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    box-shadow: var(--bk-shadow-soft);
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    overflow: visible;
}

#categories_tree li[data-type="service"]>.node_details:hover {
    box-shadow: var(--bk-shadow-hover);
    transform: translateY(-0.125rem);
}

/* Service Color Bar - Left edge indicator */
#categories_tree .service_color_bar_wrap {
    position: absolute;
    inset: 0;
    border-radius: var(--bk-radius-box);
    overflow: hidden;
    pointer-events: none;
    z-index: 0;
}

#categories_tree .service_color_bar {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 0.25rem;
    border-radius: 0;
}

#categories_tree li[data-type="service"] .node_name,
#categories_tree li[data-type="service"] .staff_list,
#categories_tree li[data-type="service"] .staff_not_selected {
    position: relative;
    z-index: 1;
}

/* Node Name */
#categories_tree .node_name {
    display: block;
    width: 100%;
    white-space: normal;
    word-break: break-word;
    text-align: center;
    line-height: 1.3;
    color: inherit;
}

/* Service card node name - explicit dark color */
#categories_tree li[data-type="service"] .node_name {
    color: var(--bk-text-primary, #292D32);
    font-size: 1rem;
    font-weight: 500;
}

/* Hidden/Inactive Services */
#categories_tree .node_hidden {
    opacity: 0.5;
}

/* Staff List */
#categories_tree .staff_list {
    margin-top: 0.75rem;
    display: flex;
    justify-content: center;
    padding-left: 0.75rem;
}

#categories_tree .staff_list>img {
    width: 2.25rem;
    height: 2.25rem;
    margin-left: -0.625rem;
    border: 0.125rem solid #FFF;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 0.0625rem 0.1875rem rgba(0, 0, 0, 0.12);
}

#categories_tree .staff_list>span {
    color: var(--bk-text-primary);
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 2.25rem;
    padding-left: 0.375rem;
}

#categories_tree .staff_not_selected {
    position: absolute;
    font-size: 0.6875rem;
    font-weight: 500;
    color: var(--bk-text-muted);
    top: 0;
    left: 0;
    width: 100%;
    bottom: 0;
    height: 0.625rem;
    margin: auto;
    text-transform: uppercase;
}

/* Action Buttons (Add, Edit, Remove, Copy) */
#categories_tree .add_new_node,
#categories_tree .edit_node,
#categories_tree .remove_node,
#categories_tree .copy_node,
#categories_tree .save_node,
#categories_tree .cancel_node,
#categories_tree .node_translations {
    position: absolute;
    width: 1.25rem;
    height: 1.25rem;
    margin: auto;
    cursor: pointer;
    z-index: 9;
    background-size: 1.25rem 1.25rem;
    top: 0;
    bottom: 0;
}

#categories_tree .add_new_node {
    right: -1.875rem;
    background: url("../../../Backend/Services/assets/icons/add-green.svg") no-repeat center;
}

#categories_tree .edit_node {
    right: -3.5rem;
    background: url("../../../Backend/Services/assets/icons/edit.svg") no-repeat center;
}

#categories_tree .remove_node {
    right: -5rem;
    background: #F2415A;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

#categories_tree .remove_node::before {
    content: "\00D7";
    color: #fff;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1;
}

#categories_tree .save_node {
    right: -3.5rem;
    background: url("../../../Backend/Services/assets/icons/save.svg") no-repeat center;
}

#categories_tree .cancel_node {
    right: -1.875rem;
    background: url("../../../Backend/Services/assets/icons/cancel.svg") no-repeat center;
}

#categories_tree .node_translations {
    right: -5rem;
    background-color: var(--bk-text-muted);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    color: #fff;
}

/* Service-specific button positions */
#categories_tree li[data-type="service"]>.node_details>.remove_node,
#categories_tree li[data-type="service"]>.node_details>.edit_node,
#categories_tree li[data-type="service"]>.node_details>.copy_node,
#categories_tree li[data-type="service"]>.node_details>.node_translations {
    bottom: auto;
    margin: 0;
}

#categories_tree li[data-type="service"]>.node_details>.remove_node {
    top: 0.5rem;
    right: -2.25rem;
}

#categories_tree li[data-type="service"]>.node_details>.edit_node {
    top: 2.25rem;
    right: -2.25rem;
}

#categories_tree li[data-type="service"]>.node_details>.copy_node {
    top: 4rem;
    right: -2.25rem;
    background: linear-gradient(135deg, #6C63FF 0%, #9C27B0 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

#categories_tree li[data-type="service"]>.node_details>.copy_node::before {
    content: "\f0c5";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    color: #fff;
    font-size: 0.6875rem;
}

#categories_tree li[data-type="service"]>.node_details>.node_translations {
    top: 5.75rem;
    right: -2.25rem;
}

/* Vertical Layout (Siblings side by side) */
#categories_tree ul[data-type="vertical"] {
    flex-direction: row;
    justify-content: center;
    align-items: flex-start;
    gap: 2rem;
    padding-top: 2.5rem;
}

#categories_tree ul[data-type="vertical"]>li {
    padding: 2.5rem 1.5rem 0;
}

/* Horizontal Layout (Services stacked under category) */
#categories_tree ul[data-type="horizontal"] {
    flex-direction: column;
    gap: 1.75rem;
    padding-left: 3.5rem;
    padding-top: 1.25rem;
}

#categories_tree ul[data-type="horizontal"]::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: calc(50% + 0.875rem);
    left: 1.375rem;
    border-left: 0.0625rem solid var(--bk-border-strong, #cfd5dc);
    z-index: 0;
}

#categories_tree ul[data-type="horizontal"]>li {
    padding: 0 2rem 0 0;
    position: relative;
}

#categories_tree ul[data-type="horizontal"]>li::before {
    content: '';
    position: absolute;
    left: -2.125rem;
    top: 50%;
    width: 2.125rem;
    border-top: 0.0625rem solid var(--bk-border-strong, #cfd5dc);
    z-index: 0;
}

#categories_tree ul[data-type="horizontal"]>li .node_details {
    position: relative;
    z-index: 1;
}

/* Add New Service Button */
#categories_tree .add_new_service_btn {
    display: none;
}

/* Node Name Input (Edit Mode) */
#categories_tree .node_name>input {
    position: absolute;
    top: -0.125rem;
    left: -0.125rem;
    height: calc(100% + 0.25rem);
    width: calc(100% + 0.25rem);
    border: 0.0625rem solid var(--bk-border-focus);
    text-align: center;
    border-radius: var(--bk-radius-field);
    padding: 0.25rem 0.5rem;
    font-size: inherit;
}

/* Drag Navigation Arrows - Interactive Zones */
/* Mobile First: Large touch targets around the edges */
.drag-top-arrow,
.drag-bottom-arrow,
.drag-left-arrow,
.drag-right-arrow {
    position: absolute;
    /* Use muted/transparent background with icon for better aesthetics */
    background: rgba(35, 59, 77, 0.6);
    display: flex;
    justify-content: center;
    align-items: center;
    color: #FFF;
    cursor: pointer;
    z-index: 50;
    border-radius: var(--bk-radius-field);
    transition: background var(--bk-transition), opacity var(--bk-transition);
    backdrop-filter: blur(4px);
}

.drag-top-arrow:hover,
.drag-bottom-arrow:hover,
.drag-left-arrow:hover,
.drag-right-arrow:hover {
    background: var(--bk-primary-500);
    opacity: 1;
}

/* Top/Bottom Arrows */
.drag-top-arrow,
.drag-bottom-arrow {
    height: 2.5rem;
    width: 6rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 60;
}

.drag-top-arrow {
    top: 1rem;
}

.drag-bottom-arrow {
    bottom: 1rem;
}

/* Left/Right Arrows */
.drag-left-arrow,
.drag-right-arrow {
    width: 2.5rem;
    height: 6rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 61;
}

.drag-left-arrow {
    left: 1rem;
}

.drag-right-arrow {
    right: 1rem;
}

/* Services Module Header - Mobile First stack */
.services-header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1rem 0;
}

/* Prevent clearfix pseudo-elements from becoming flex items */
.services-header::before,
.services-header::after {
    content: none;
    display: none;
}

.services-title {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.services-title-icon {
    font-size: 1.25rem;
    color: var(--bk-primary-500);
}

.services-title-text {
    font-size: inherit;
    font-weight: inherit;
    color: var(--bk-text-primary);
}

.services-title-info {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 999px;
    border: 1px solid rgba(35, 59, 77, 0.15);
    color: var(--bk-text-muted);
    background: rgba(35, 59, 77, 0.04);
    cursor: help;
    transition: all 0.2s ease;
}

.services-title-info i {
    font-size: 0.9rem;
    line-height: 1;
}

.services-title-info:hover {
    color: var(--bk-primary-500);
    border-color: rgba(35, 59, 77, 0.25);
    background: rgba(35, 59, 77, 0.08);
}


.services-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    justify-content: flex-end;
    /* Default to full width on mobile for better wrapping */
}

/* Only limit width on larger screens if needed */
@media (min-width: 768px) {
    .services-actions {
        width: auto;
    }
}

.services-header .services-location-filter {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
    flex-wrap: nowrap;
}

.services-header .services-location-filter>i {
    color: var(--bk-text-muted);
    font-size: 1rem;
    line-height: 1;
    flex-shrink: 0;
}

.services-header .services-location-select {
    min-width: 10rem;
    max-width: 14rem;
    height: auto;
}

.services-zoom {
    display: flex;
    align-items: center;
}

.services-category-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.services-category-card {
    border: 1px solid rgba(35, 59, 77, 0.12);
    background: var(--bk-surface);
    color: var(--bk-text-primary);
    border-radius: var(--bk-radius-box);
    padding: 0.4rem 0.75rem;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.2;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.05);
}

.services-category-card:hover {
    border-color: var(--bk-primary);
    color: var(--bk-primary);
}

.services-category-card.is-active {
    background: var(--bk-primary);
    border-color: var(--bk-primary);
    color: #fff;
    box-shadow: 0 0.35rem 0.75rem rgba(0, 0, 0, 0.08);
}

.services-category-card.is-hidden {
    display: none !important;
}

.services-category-filter-hidden {
    display: none !important;
}

/* Zoom Controls */
#zoom-out,
#zoom-in,
#zoom-dropdown {
    padding: 0.5rem 0.75rem;
}

/* Type Selection Popup */
#select_add_type {
    position: absolute;
    display: none;
    z-index: 10;
    width: 20rem;
    background: var(--bk-surface);
    border-radius: var(--bk-radius-box);
    box-shadow: 0 0 1.25rem -0.3125rem rgba(0, 0, 0, 0.15);
    padding: 1.5rem;
}

#select_add_type::after {
    content: '';
    position: absolute;
    top: -1rem;
    left: 1.25rem;
    border: 0.5rem solid transparent;
    border-bottom-color: var(--bk-surface);
}

.add_type_title {
    font-size: 1rem;
    font-weight: 500;
    color: var(--bk-text-primary);
    text-align: center;
    margin-bottom: 1rem;
}

.add_type_options {
    text-align: center;
    display: flex;
    gap: 0.5rem;
    justify-content: center;
}

/* Desktop Responsiveness */
@media (min-width: 992px) {
    #services_map {
        /* On larger screens, fine tune height if header is taller/shorter */
        height: calc(100vh - 12rem);
    }

    .services-header {
        flex-direction: row;
        align-items: center;
    }

    .services-actions {
        justify-content: flex-end;
    }
}

/* Section 17: Services Module - Add/Edit Modal */

/* ----------------------------------------
   17.1 Modal Container & Layout
   ---------------------------------------- */

/* Color Picker Section */
.fs-modal .service_picture_div,
.modal .service_picture_div {
    margin-bottom: 1.25rem;
}

.fs-modal .color-picker-container,
.modal .color-picker-container {
    background: var(--bk-surface-muted);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    padding: 1rem 1.25rem;
}

.fs-modal .color-picker-header,
.modal .color-picker-header {
    font-size: 1rem;
    font-weight: 600;
    color: var(--bk-text-primary);
    margin: 0 0 0.75rem 0;
}

.fs-modal .fs-service-colors-line,
.modal .fs-service-colors-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.fs-modal .color-rounded,
.modal .color-rounded {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    border: 0.125rem solid transparent;
    cursor: pointer;
    transition: transform var(--bk-transition), box-shadow var(--bk-transition);
    flex-shrink: 0;
}

.fs-modal .color-rounded:hover,
.modal .color-rounded:hover {
    transform: scale(1.1);
    box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.15);
}

.fs-modal .color-rounded.selected-color,
.modal .color-rounded.selected-color {
    border-color: var(--bk-primary);
    box-shadow: 0 0 0 0.125rem var(--bk-primary-100);
}

.fs-modal .color-picker-cta,
.modal .color-picker-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.75rem;
    background: var(--bk-surface);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    font-size: 0.8125rem;
    color: var(--bk-text-secondary);
    cursor: pointer;
    transition: border-color var(--bk-transition), background var(--bk-transition);
}

.fs-modal .color-picker-cta:hover,
.modal .color-picker-cta:hover {
    border-color: var(--bk-border-strong);
    background: var(--bk-primary-100);
}

.fs-modal .color-preview-dot,
.modal .color-preview-dot {
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    border: var(--bk-border-width) solid rgba(0, 0, 0, 0.08);
    flex-shrink: 0;
}

/* ----------------------------------------
   17.2 Two-Column Form Grid System
   ---------------------------------------- */

.fs-modal .form-row.service-row,
.modal .form-row.service-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    margin-bottom: 1rem;
}

.fs-modal .form-row.service-row>.form-group,
.modal .form-row.service-row>.form-group {
    margin-bottom: 0;
    min-width: 0;
    width: 100%;
}

/* Ensure inputs/selects fill their columns */
.fs-modal .form-row.service-row .form-control,
.fs-modal .form-row.service-row select,
.fs-modal .form-row.service-row input,
.fs-modal .form-row.service-row .ts-wrapper,
.modal .form-row.service-row .form-control,
.modal .form-row.service-row select,
.modal .form-row.service-row input,
.modal .form-row.service-row .ts-wrapper {
    width: 100%;
}

/* Full-width row override */
.fs-modal .form-row.service-row>.form-group.col-md-12,
.modal .form-row.service-row>.form-group.col-md-12 {
    grid-column: 1 / -1;
}

/* Responsive: stack on mobile */
@media (max-width: 48rem) {

    .fs-modal .form-row.service-row,
    .modal .form-row.service-row {
        grid-template-columns: 1fr;
    }
}

/* ----------------------------------------
   17.3 Form Labels & Inputs
   ---------------------------------------- */

.fs-modal .form-group label,
.fs-modal .form-row label,
.modal .form-group label,
.modal .form-row label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--bk-text-secondary);
    margin-bottom: 0.375rem;
}

.fs-modal .required-star,
.modal .required-star {
    color: var(--bk-error);
    margin-left: 0.125rem;
}

.fs-modal .label-container,
.modal .label-container {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    margin-bottom: 0.375rem;
}

.fs-modal .help-icon,
.modal .help-icon {
    font-size: 0.875rem;
    color: var(--bk-text-muted);
    cursor: help;
}

.fs-modal .form-text.text-muted,
.modal .form-text.text-muted {
    font-size: 0.75rem;
    color: var(--bk-text-muted);
    margin-top: 0.375rem;
    line-height: 1.4;
}


.bkntc-switch {
    display: inline-block;
    vertical-align: middle;
    cursor: pointer;
    user-select: none;
    position: relative;
    font-size: 1rem;
}

.bkntc-switch input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 0;
    height: 0;
}

.bkntc-switch-container {
    position: relative;
    display: inline-block;
    width: 2.75rem;
    height: 1.5rem;
    background: var(--bk-base-200);
    border-radius: 2rem;
    transition: background 0.2s ease, border-color 0.2s ease;
    border: 0.0625rem solid var(--bk-border-strong);
    box-sizing: border-box;
    flex-shrink: 0;
}

.bkntc-switch-knob {
    position: absolute;
    top: 0.125rem;
    left: 0.125rem;
    width: 1.125rem;
    height: 1.125rem;
    background-color: #ffffff;
    border-radius: 50%;
    box-shadow: 0 0.0625rem 0.1875rem rgba(0, 0, 0, 0.2);
    transition: transform 0.2s cubic-bezier(0.4, 0.0, 0.2, 1);
}

.bkntc-switch input[type="checkbox"]:checked+.bkntc-switch-container {
    background: var(--bk-success);
    border-color: var(--bk-success);
}

.bkntc-switch input[type="checkbox"]:checked+.bkntc-switch-container .bkntc-switch-knob {
    transform: translateX(1.25rem);
}

.bkntc-switch:hover .bkntc-switch-container {
    border-color: var(--bk-primary-500);
}

.bkntc-switch input[type="checkbox"]:focus-visible+.bkntc-switch-container {
    box-shadow: 0 0 0 0.1875rem rgba(35, 59, 77, 0.25);
}

/* ----------------------------------------
   17.5 Form Control Checkbox Row
   ---------------------------------------- */

/* Hide empty spacer labels before checkbox rows */
.fs-modal .form-group>label:first-child:has(+ .form-control-checkbox),
.modal .form-group>label:first-child:has(+ .form-control-checkbox) {
    display: none;
}

/* Make form-group with checkbox vertically centered */
.fs-modal .form-row.service-row>.form-group:has(.form-control-checkbox),
.modal .form-row.service-row>.form-group:has(.form-control-checkbox) {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.fs-modal .form-control-checkbox,
.modal .form-control-checkbox {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 0.75rem;
    min-height: 2.75rem;
    padding: 0;
    flex-wrap: nowrap;
}

.fs-modal .form-control-checkbox>label,
.modal .form-control-checkbox>label {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 400;
    color: var(--bk-text-primary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
}


.fs-modal .enable_deposit_text,
.modal .enable_deposit_text {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}

/* ----------------------------------------
   17.6 Recurring Card Section
   ---------------------------------------- */

.fs-modal .bkntc-recurring-toggle-row,
.modal .bkntc-recurring-toggle-row {
    margin-top: 0.5rem;
}

.fs-modal .bkntc-recurring-header,
.modal .bkntc-recurring-header {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 1rem;
}

.fs-modal .bkntc-recurring-title,
.modal .bkntc-recurring-title {
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

/* Custom Duration Toggle Alignment Fix */
.bkcd-toggle.bkcd-toggle--inline .bkcd-toggle__label {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip: rect(0, 0, 0, 0);
    margin-bottom: 0;
}

.fs-modal .bkntc-recurring-card,
.modal .bkntc-recurring-card {
    background: var(--bk-surface-muted);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.fs-modal .bkntc-recurring-grid,
.modal .bkntc-recurring-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}

.fs-modal .bkntc-recurring-field,
.modal .bkntc-recurring-field {
    display: flex;
    flex-direction: column;
}

.fs-modal .bkntc-recurring-field.bkntc-wide-field,
.modal .bkntc-recurring-field.bkntc-wide-field {
    grid-column: 1 / -1;
}

.fs-modal .bkntc-recurring-field label,
.modal .bkntc-recurring-field label {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--bk-text-secondary);
    margin-bottom: 0.375rem;
}

.fs-modal .bkntc-checkbox-field,
.modal .bkntc-checkbox-field {
    flex-direction: row;
    align-items: center;
}

.fs-modal .bkntc-checkbox-line,
.modal .bkntc-checkbox-line {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.fs-modal .bkntc-checkbox-line label,
.modal .bkntc-checkbox-line label {
    margin: 0;
    font-weight: 400;
    color: var(--bk-text-primary);
}

.fs-modal .bkntc-input-split,
.modal .bkntc-input-split {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 0.5rem;
}

.fs-modal .bkntc-input-split .form-control,
.modal .bkntc-input-split .form-control {
    min-height: 2.5rem;
}

.fs-modal .bkntc-repeat-frequency-label,
.modal .bkntc-repeat-frequency-label {
    display: flex;
    align-items: center;
    font-size: 0.8125rem;
    color: var(--bk-text-secondary);
    background: var(--bk-surface);
}

.fs-modal .bkntc-disabled,
.modal .bkntc-disabled {
    opacity: 0.5;
    pointer-events: none;
}

/* Responsive: stack recurring grid on mobile */
@media (max-width: 48rem) {

    .fs-modal .bkntc-recurring-grid,
    .modal .bkntc-recurring-grid {
        grid-template-columns: 1fr;
    }
}

/* ----------------------------------------
   17.7 Promotion Container
   ---------------------------------------- */

.fs-modal .promotion-container,
.modal .promotion-container {
    margin: 1rem 0;
}

.fs-modal .promotion-body,
.modal .promotion-body {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: linear-gradient(135deg, var(--bk-primary-100) 0%, rgba(255, 111, 0, 0.08) 100%);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    padding: 0.75rem 1rem;
}

.fs-modal .promotion-text-container,
.modal .promotion-text-container {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.fs-modal .promotion-text,
.modal .promotion-text {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--bk-text-primary);
}

.fs-modal .promotion-link,
.modal .promotion-link {
    font-size: 0.8125rem;
    color: var(--bk-accent);
    font-weight: 500;
    cursor: pointer;
}

.fs-modal .promotion-link:hover,
.modal .promotion-link:hover {
    text-decoration: underline;
}

.fs-modal .promotion-close-icon,
.modal .promotion-close-icon {
    width: 1.25rem;
    height: 1.25rem;
    cursor: pointer;
    opacity: 0.6;
    transition: opacity var(--bk-transition);
}

.fs-modal .promotion-close-icon:hover,
.modal .promotion-close-icon:hover {
    opacity: 1;
}

/* ----------------------------------------
   17.8 Integrity Notice
   ---------------------------------------- */

.fs-modal .bkntc-integrity-notice,
.modal .bkntc-integrity-notice {
    background: var(--bk-warning-soft);
    border: var(--bk-border-width) solid rgba(255, 191, 15, 0.3);
    border-radius: var(--bk-radius-field);
    padding: 0.75rem 1rem;
    font-size: 0.8125rem;
    color: var(--bk-warning-content);
}

.fs-modal .bkntc-integrity-notice strong,
.modal .bkntc-integrity-notice strong {
    display: block;
    margin-bottom: 0.25rem;
}

/* ----------------------------------------
   17.9 Color Picker Popover
   ---------------------------------------- */

.fs-popover.color-picker-popover {
    position: absolute;
    background: var(--bk-surface);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.12);
    padding: 0;
    z-index: 10001;
    min-width: 18rem;
}

.fs-popover.color-picker-popover[aria-hidden="true"] {
    display: none;
}

.fs-popover .fs-popover-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    border-bottom: var(--bk-border-width) solid var(--bk-border);
    font-weight: 600;
    font-size: 0.9375rem;
    color: var(--bk-text-primary);
}

.fs-popover .close-popover-btn {
    width: 1rem;
    height: 1rem;
    cursor: pointer;
    opacity: 0.6;
    transition: opacity var(--bk-transition);
}

.fs-popover .close-popover-btn:hover {
    opacity: 1;
}

.fs-popover .color-picker-content {
    padding: 1rem;
}

.fs-popover .color-picker-field {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    margin-bottom: 1rem;
}

.fs-popover .color-picker-label {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--bk-text-secondary);
}

.fs-popover .color-picker-field .form-control {
    min-height: 2.5rem;
}

.fs-popover .selected-color {
    width: 1.5rem;
    height: 1.5rem;
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid var(--bk-border);
    flex-shrink: 0;
}

.fs-popover .color-picker-inline {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.fs-popover .color-picker-inline input[type="color"] {
    width: 100%;
    height: 2.5rem;
    padding: 0;
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    cursor: pointer;
}

.fs-popover .color-picker-help {
    font-size: 0.75rem;
    color: var(--bk-text-muted);
}

.fs-popover .fs-popover-footer {
    padding: 0.75rem 1rem;
    border-top: var(--bk-border-width) solid var(--bk-border);
    text-align: right;
}

/* ----------------------------------------
   17.10 Service Tags Feedback
   ---------------------------------------- */

.fs-modal .bkntc-service-tags-feedback,
.modal .bkntc-service-tags-feedback {
    font-size: 0.75rem;
    margin-top: 0.375rem;
}

/* ----------------------------------------
   17.11 TomSelect Item Styling (Pills)
   ---------------------------------------- */

.fs-modal .ts-wrapper .ts-control .item,
.modal .ts-wrapper .ts-control .item {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    background: var(--bk-primary-100);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    padding: 0.25rem 0.5rem 0.25rem 0.75rem;
    font-size: 0.875rem;
    line-height: 1.4;
    color: var(--bk-text-primary);
    max-width: 100%;
}

/* Remove button (x) styling */
.fs-modal .ts-wrapper .ts-control .item .remove,
.modal .ts-wrapper .ts-control .item .remove {
    order: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.125rem;
    height: 1.125rem;
    margin-left: auto;
    margin-right: 0;
    padding: 0;
    font-size: 1rem;
    font-weight: 400;
    color: var(--bk-text-muted);
    background: transparent;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    transition: color 0.15s ease, background 0.15s ease;
    flex-shrink: 0;
    line-height: 1;
}

.fs-modal .ts-wrapper .ts-control .item .remove:hover,
.modal .ts-wrapper .ts-control .item .remove:hover {
    color: var(--bk-error);
    background: var(--bk-error-soft);
}

/* ----------------------------------------
   17.12 Custom Duration Addon (bkcd-*)
   ---------------------------------------- */

.custom-duration-modern {
    margin-top: 1rem;
}

/* Toggle Shell */
.bkcd-toggle-shell {
    margin-bottom: 1rem;
}

.bkcd-toggle-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background: var(--bk-surface-muted);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    padding: 0.75rem 1rem;
    cursor: pointer;
    transition: border-color 0.15s ease;
}

.bkcd-toggle-bar:hover {
    border-color: var(--bk-border-strong);
}

.bkcd-toggle-bar__copy {
    flex: 1;
    min-width: 0;
}

.bkcd-eyebrow {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--bk-accent);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    margin-bottom: 0.125rem;
}

.bkcd-description {
    font-size: 0.8125rem;
    color: var(--bk-text-secondary);
    line-height: 1.4;
}

.bkcd-toggle {
    display: flex;
    align-items: center;
    align-self: center;
    gap: 0.5rem;
    flex-shrink: 0;
    margin: 0 0 0 auto;
    /* Explicitly reset margins, keep left auto */
    height: 1.5rem;
    /* Match toggle height */
}

.bkcd-toggle__label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

/* Card Container */
.bkcd-card {
    background: var(--bk-surface);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    padding: 1.25rem;
    margin-top: 0.75rem;
}

.bkcd-section {
    margin-bottom: 1rem;
}

.bkcd-section:last-child {
    margin-bottom: 0;
}

.bkcd-section__row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.bkcd-title-block .bkcd-field--full {
    margin-bottom: 1rem;
}

.bkcd-title-block .bkcd-field--full label {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--bk-text-secondary);
    margin-bottom: 0.375rem;
    display: block;
}

.bkcd-help-text {
    font-size: 0.75rem;
    color: var(--bk-text-muted);
    margin-top: 0.375rem;
    line-height: 1.4;
}

/* Toggle Inline (Show Labels) */
.bkcd-toggle--inline {
    justify-content: flex-start;
}

.bkcd-toggle-stack {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.375rem;
}

.bkcd-toggle-stack .bkcd-toggle__label {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip: rect(0, 0, 0, 0);
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--bk-text-primary);
}

/* Add Button Row */
.bkcd-add-row {
    margin-bottom: 0.75rem;
}

.add-custom-duration-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.5rem 0.875rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--bk-accent);
    background: transparent;
    border: var(--bk-border-width) solid var(--bk-accent);
    border-radius: var(--bk-radius-field);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.add-custom-duration-btn:hover {
    background: var(--bk-accent);
    color: var(--bk-accent-content);
}

.add-custom-duration-btn i {
    font-size: 0.875rem;
}

/* Duration List */
.custom_duration_list_area {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

/* Duration Item */
.bkcd-duration {
    position: relative;
    background: var(--bk-surface-muted);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    padding: 0.875rem 1rem;
}

.bkcd-duration__fields {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: end;
}

.bkcd-field {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

/* Force Label to full width */
.bkcd-field.bkcd-field--stretch {
    flex: 0 0 100%;
}

.bkcd-field label {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--bk-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin-bottom: 0.25rem;
}

.bkcd-field--stretch {
    flex: 1;
}

.bkcd-field--compact {
    flex: 1;
    min-width: 6rem;
}

.bkcd-field--payments {
    flex: 2;
    min-width: 0;
}

.bkcd-sublabels {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--bk-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin-bottom: 0.25rem;
    padding-right: 0.5rem;
    /* Match input padding/gap? */
}

.bkcd-sublabels span {
    flex: 1;
}

.bkcd-price-grid {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.bkcd-price-grid .form-control {
    width: 100%;
    min-width: 0;
    flex: 1;
    min-height: 2.25rem;
    padding: 0.375rem 0.5rem;
    font-size: 0.8125rem;
}

.bkcd-deposit-inputs {
    display: flex;
    gap: 0.25rem;
}

.bkcd-deposit-inputs .form-control {
    width: 3.5rem;
}

.bkcd-deposit-inputs select.form-control {
    width: 3rem;
    padding: 0.375rem 0.25rem;
}

/* Delete Button */
.bkcd-icon-btn {
    position: absolute;
    top: 0.375rem;
    right: 0.375rem;
    width: 1.5rem;
    height: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    font-weight: 400;
    color: var(--bk-text-muted);
    background: transparent;
    border: var(--bk-border-width) solid transparent;
    border-radius: var(--bk-radius-field);
    cursor: pointer;
    transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease;
    line-height: 1;
}

.bkcd-icon-btn:hover {
    color: var(--bk-error);
    background: var(--bk-error-soft);
    border-color: var(--bk-error);
}

/* Responsive */
@media (max-width: 48rem) {
    .bkcd-duration__fields {
        grid-template-columns: 1fr;
    }

    .bkcd-field--compact,
    .bkcd-field--payments {
        width: 100%;
    }

    .bkcd-price-grid {
        flex-wrap: wrap;
    }
}

/* =========================================
   17. Services Modal Specifics
   ========================================= */

/* 17.1 Modal Tabs - Force Single Row */
.fs-modal-body .nav-tabs {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    /* Firefox */
    border-bottom: 2px solid var(--bk-border);
    margin: 0 -1.5rem 1.5rem -1.5rem;
    /* Full width */
    padding: 0 1.5rem;
    gap: 1.5rem;
}

.fs-modal-body .nav-tabs::-webkit-scrollbar {
    display: none;
    /* Chrome/Safari */
}

.fs-modal-body .nav-tabs .nav-item {
    white-space: nowrap;
    margin-bottom: -2px;
}

.fs-modal-body .nav-tabs .nav-link {
    border: none;
    background: transparent;
    color: var(--bk-text-secondary);
    padding: 0.75rem 0;
    font-weight: 500;
    font-size: 0.9rem;
    position: relative;
    transition: color var(--bk-transition);
}

.fs-modal-body .nav-tabs .nav-link:hover {
    color: var(--bk-primary-500);
}

.fs-modal-body .nav-tabs .nav-link.active {
    color: var(--bk-primary-500);
    font-weight: 600;
}

.fs-modal-body .nav-tabs .nav-link.active::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background: var(--bk-primary-500);
    border-radius: 2px 2px 0 0;
}

/* Remove legacy tab content margins if any */
.fs-modal-body .tab-content {
    margin-top: 0 !important;
}


/* 17.2 Staff Tab Modernization */
#bkntc-staff-assign {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.bkntc-staff-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--bk-border);
    margin-bottom: 0.5rem;
}

.bkntc-staff-header__text {
    flex: 1;
}

.bkntc-staff-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--bk-text-primary);
    margin-bottom: 0.25rem;
}

.bkntc-staff-subtitle {
    font-size: 0.85rem;
    color: var(--bk-text-secondary);
    margin: 0;
    line-height: 1.4;
}

/* Add Staff Button */
.bkntc-staff-add.btn-default {
    white-space: nowrap;
    border: 1px solid var(--bk-border);
    color: var(--bk-text-primary);
    background: var(--bk-surface);
    font-weight: 500;
}

.bkntc-staff-add.btn-default:hover {
    border-color: var(--bk-border-focus);
    background: var(--bk-base-200);
}

/* Empty State */
.bkntc-staff-empty {
    display: none;
    padding: 2rem;
    text-align: center;
    background: var(--bk-surface-muted);
    border-radius: var(--bk-radius-field);
    border: 1px dashed var(--bk-border-strong);
    color: var(--bk-text-muted);
    font-size: 0.9rem;
}

.bkntc-staff-empty.is-visible {
    display: block;
}

/* Staff Rows */
/* Staff Rows */
.bkntc-staff-row {
    background: var(--bk-surface);
    border: 1px solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    padding: 1rem;
    margin-bottom: 0.75rem;
    transition: border-color var(--bk-transition), box-shadow var(--bk-transition);
    position: relative;
    /* Enable absolute positioning for children */
}

.bkntc-staff-row:hover {
    border-color: var(--bk-border-strong);
    box-shadow: var(--bk-shadow-soft);
}

/* Staff Person Info */
.bkntc-staff-row__person {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
    font-weight: 600;
    color: var(--bk-text-primary);
    font-size: 0.95rem;
    padding-right: 2.5rem;
    /* Make room for the button */
}

/* Pricing Toggle */
.bkntc-staff-row__specific {
    margin-bottom: 0.75rem;
}

.bkntc-staff-row__switch {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: var(--bk-text-secondary);
    cursor: pointer;
    user-select: none;
}

/* Inputs Row */
.bkntc-staff-row__inputs {
    display: grid;
    grid-template-columns: 1fr 1fr 80px;
    gap: 0.75rem;
    align-items: end;
}

.bkntc-staff-row__inputs.is-collapsed {
    display: none;
}

.bkntc-staff-row__input label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--bk-text-muted);
    margin-bottom: 0.25rem;
    display: block;
}

/* Actions */
.bkntc-staff-row__actions {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    margin: 0;
    padding: 0;
    border: none;
}

.bkntc-staff-row__remove {
    color: var(--bk-error);
    border-color: var(--bk-error-soft);
    background: var(--bk-error-soft);
    padding: 0.4rem;
    font-size: 0.8rem;
    height: 2rem;
    width: 2rem;
    min-height: 0;
    border-radius: 50%;
    /* Make it round/icon-only style */
    display: flex;
    align-items: center;
    justify-content: center;
}

.bkntc-staff-row__remove img {
    width: 1rem;
    height: 1rem;
}

.bkntc-staff-row__remove:hover {
    background: var(--bk-error);
    color: var(--bk-error-content);
}

/* Staff Picker (New Staff Selection) */
.bkntc-staff-assign__picker {
    background: var(--bk-base-200);
    border: 1px solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    padding: 1rem 3rem 1rem 1rem;
    /* Extra right padding for close button */
    margin-top: 0.75rem;
    position: relative;
    animation: bkFadeIn 0.2s ease-out;
}

@keyframes bkFadeIn {
    from {
        opacity: 0;
        transform: translateY(-5px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes bkntc-spin {
    to {
        transform: rotate(360deg);
    }
}

.bkntc-staff-picker-label {
    display: block;
    font-size: 0.85rem;
    font-weight: 500;
    margin-bottom: 0.75rem;
    color: var(--bk-text-secondary);
}

.bkntc-staff-assign__picker-remove {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 0.75rem;
}

.bkntc-staff-assign__picker-remove .btn {
    background: transparent;
    border: 1px solid transparent;
    color: var(--bk-text-muted);
    padding: 0;
    width: 2rem;
    height: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: all var(--bk-transition);
}

.bkntc-staff-assign__picker-remove .btn:hover {
    color: var(--bk-error);
    background: var(--bk-error-soft);
    border-color: var(--bk-error-soft);
}

.bkntc-staff-assign__picker-remove .btn img {
    /* Ensure icon color matches text color via filter or replacement if SVG */
    /* Assuming SVG is used as img src, filters might be needed or just rely on btn text color if it was an icon font */
    /* For img usage: */
    width: 1rem;
    height: 1rem;
    opacity: 0.6;
}

.bkntc-staff-assign__picker-remove .btn:hover img {
    opacity: 1;
    filter: invert(18%) sepia(61%) saturate(5435%) hue-rotate(342deg) brightness(87%) contrast(100%);
    /* Filters to match red-ish error color approximately */
}

/* Mobile Tweak for Staff Rows */
@media (max-width: 36rem) {
    .bkntc-staff-row__inputs {
        grid-template-columns: 1fr;
    }
}

/* =========================================
   18. Customer History Modal
   ========================================= */

/* 18.1 Modal Header - Title Left, Close Right */
#customer_history_modal .modal-header {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 1rem 1.25rem;
    border-bottom: none;
    gap: 0.5rem;
}

#customer_history_modal .modal-header .modal-title {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--bk-text-primary);
    margin: 0;
    flex: 0 1 auto;
    order: 1;
}

#customer_history_modal .modal-header .modal-title i {
    font-size: 1.25rem;
    color: var(--bk-primary-500);
    flex-shrink: 0;
}

/* Close button positioned on the right */
#customer_history_modal .modal-header>span[data-dismiss="modal"] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: var(--bk-surface-muted);
    border: 1px solid var(--bk-border);
    color: var(--bk-text-muted);
    cursor: pointer;
    transition: all var(--bk-transition);
    flex-shrink: 0;
    margin-left: auto;
    order: 2;
}

#customer_history_modal .modal-header>span[data-dismiss="modal"]:hover {
    background: var(--bk-error-soft);
    border-color: var(--bk-error);
    color: var(--bk-error);
}

#customer_history_modal .modal-header>span[data-dismiss="modal"] i {
    font-size: 1.25rem;
    line-height: 1;
}

/* 18.2 Modal Body - Scrollable Table */
#customer_history_modal .modal-body {
    padding: 0;
    max-height: 60vh;
    overflow: hidden;
}

#customer_history_modal .modal-body .m_content {
    padding: 0 1rem !important;
}

/* Table Wrapper - Horizontal Scroll */
#customer_history_modal .fs_data_table_wrapper {
    overflow-x: auto;
    overflow-y: auto;
    max-height: 55vh;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: var(--bk-border-strong) transparent;
    border-radius: 0;
    border: none;
}

#customer_history_modal .fs_data_table_wrapper::-webkit-scrollbar {
    height: 8px;
    width: 8px;
}

#customer_history_modal .fs_data_table_wrapper::-webkit-scrollbar-track {
    background: transparent;
}

#customer_history_modal .fs_data_table_wrapper::-webkit-scrollbar-thumb {
    background-color: var(--bk-border-strong);
    border-radius: 4px;
}

/* Ensure table has minimum width to trigger scroll */
#customer_history_modal .fs_data_table.elegant_table {
    min-width: 1000px;
    width: 100%;
    table-layout: auto;
    border-radius: 0;
}

/* Table header sticky */
#customer_history_modal .fs_data_table.elegant_table thead {
    position: sticky;
    top: 0;
    z-index: 10;
    background: var(--bk-surface);
}

#customer_history_modal .fs_data_table.elegant_table thead th {
    background: var(--bk-surface-muted);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--bk-text-secondary);
    padding: 0.75rem 1rem;
    white-space: nowrap;
    border-bottom: 1px solid var(--bk-border);
}

/* Table body */
#customer_history_modal .fs_data_table.elegant_table tbody td {
    padding: 0.875rem 1rem;
    vertical-align: middle;
    border-bottom: 1px solid var(--bk-border);
    font-size: 0.875rem;
    white-space: nowrap;
}

/* 18.3 Pagination & Footer */
#customer_history_modal .pagination {
    padding: 0.75rem 1rem;
    margin: 0;
    border-top: none;
    background: var(--bk-surface);
    overflow: visible;
}

#customer_history_modal .pagination .col-md-12 {
    overflow: visible;
}

#customer_history_modal .modal-footer {
    padding: 0.75rem 1.25rem;
    border-top: 1px solid var(--bk-border);
    background: var(--bk-surface);
    display: flex;
    justify-content: flex-start;
}

#customer_history_modal .modal-footer .btn {
    min-width: 6rem;
}

/* 18.4 Navigation Buttons in Header */
#customer_history_modal .fs_data_table thead th:last-child {
    text-align: right;
    background: var(--bk-surface-muted);
}

#customer_history_modal .fs_data_table thead th .btn-xs {
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
}

/* 18.5 Actions Column - No sticky */
#customer_history_modal .fs_data_table tbody td:last-child {
    background: var(--bk-surface);
}

#customer_history_modal .fs_data_table tbody tr:hover td:last-child {
    background: var(--bk-base-200);
}

/* =========================================
   19. Customer Info Modal
   ========================================= */

/* 19.1 Modal Header - Icon and Title Left, Close Right */
.fs-modal-title.customer-info-title {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.5rem;
    padding: 1rem 1.25rem;
    border-bottom: none;
    background: var(--bk-surface);
}

.fs-modal-title.customer-info-title .title-icon {
    font-size: 1.25rem;
    color: var(--bk-primary-500);
    flex-shrink: 0;
    order: 1;
}

.fs-modal-title.customer-info-title .title-text {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--bk-text-primary);
    order: 2;
    flex: 0 1 auto;
}

.fs-modal-title.customer-info-title .close-btn {
    margin-left: auto;
    order: 3;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: var(--bk-surface-muted);
    border: 1px solid var(--bk-border);
    color: var(--bk-text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all var(--bk-transition);
    flex-shrink: 0;
}

.fs-modal-title.customer-info-title .close-btn:hover {
    background: var(--bk-error-soft);
    border-color: var(--bk-error);
    color: var(--bk-error);
}

.fs-modal-title.customer-info-title .close-btn i {
    font-size: 1.25rem;
    line-height: 1;
}

/* 19.2 Customer Info Card Container */
.customer-info-card {
    padding: 0;
}

/* 19.3 Profile Header */
.customer-info-card .modal_payment-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding-bottom: 1.25rem;
    margin-bottom: 1.25rem;
    border-bottom: 1px solid var(--bk-border);
}

.customer-info-card .modal_payment-avatar {
    width: 5rem;
    height: 5rem;
    flex-shrink: 0;
    border-radius: 50%;
    overflow: hidden;
    background: var(--bk-surface-muted);
    border: 2px solid var(--bk-border);
}

.customer-info-card .modal_payment-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.customer-info-card .modal_payment-profile-text {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.customer-info-card .modal_payment-profile-text .customer-name {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--bk-text-primary);
}

.customer-info-card .modal_payment-profile-text .customer-email {
    font-size: 0.875rem;
    color: var(--bk-text-secondary);
}

/* 19.4 Info Cards Grid */
.customer-info-card .modal_payment-card {
    background: var(--bk-surface-muted);
    border: 1px solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    padding: 0.875rem 1rem;
    margin-bottom: 0.75rem;
}

.customer-info-card .modal_payment-card h6 {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--bk-text-muted);
    margin: 0 0 0.375rem 0;
}

.customer-info-card .modal_payment-card span {
    font-size: 0.9375rem;
    color: var(--bk-text-primary);
    display: block;
    word-break: break-word;
}

.customer-info-card .modal_payment-card span:empty::before {
    content: '-';
    color: var(--bk-text-muted);
}

/* 19.5 Modal Footer */
.fs-modal-footer {
    padding: 0.75rem 1.25rem;
    border-top: 1px solid var(--bk-border);
    background: var(--bk-surface);
    display: flex;
    justify-content: flex-start;
}

.fs-modal-footer .btn-outline-secondary {
    background: var(--bk-surface);
    border: 1px solid var(--bk-border);
    color: var(--bk-text-primary);
    font-weight: 500;
}

.fs-modal-footer .btn-outline-secondary:hover {
    background: var(--bk-surface-muted);
    border-color: var(--bk-border-strong);
}

/* Hide tabs in this modal if only one tab */
.customer-info-card~.nav-tabs:only-of-type {
    display: none;
}

/* =========================================
   20. Customer Add Modal
   ========================================= */

/* 20.1 Modal Header - Icon and Title Left, Close Right */
.fs-modal-title.customer-add-title {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.5rem;
    padding: 1rem 1.25rem;
    border-bottom: none;
    background: var(--bk-surface);
}

.fs-modal-title.customer-add-title .title-icon {
    font-size: 1.25rem;
    color: var(--bk-primary-500);
    flex-shrink: 0;
    order: 1;
    /* Reset badge styles */
    background: transparent;
    width: auto;
    height: auto;
    padding: 0;
}

.fs-modal-title.customer-add-title .title-text {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--bk-text-primary);
    order: 2;
    flex: 0 1 auto;
}

.fs-modal-title.customer-add-title .close-btn {
    margin-left: auto;
    order: 3;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: var(--bk-surface-muted);
    border: 1px solid var(--bk-border);
    color: var(--bk-text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all var(--bk-transition);
    flex-shrink: 0;
}

.fs-modal-title.customer-add-title .close-btn:hover {
    background: var(--bk-error-soft);
    border-color: var(--bk-error);
    color: var(--bk-error);
}

/* 20.2 Hide single tab nav when only one tab */
/*.fs-modal-body .nav-tabs.nav-light {
    display: none;
}*/

.fs-modal-body .tab-content {
    margin-top: 0;
}

/* =========================================
   21. intlTelInput Phone Picker Styles
   ========================================= */

/* Container */
.iti {
    display: block;
    width: 100%;
}

.iti--allow-dropdown .iti__flag-container {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    z-index: 10;
}

.iti--allow-dropdown input[type="tel"],
.iti--allow-dropdown input[type="text"] {
    padding-left: 3.25rem;
}

/* Flag button */
.iti__selected-flag {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    height: 100%;
    padding: 0 0.5rem 0 0.75rem;
    background: var(--bk-surface-muted);
    border: none;
    border-right: 1px solid var(--bk-border);
    cursor: pointer;
    border-radius: var(--bk-radius-field) 0 0 var(--bk-radius-field);
}

.iti__selected-flag:hover {
    background: var(--bk-base-200);
}

.iti__arrow {
    border-left: 0.25rem solid transparent;
    border-right: 0.25rem solid transparent;
    border-top: 0.3125rem solid var(--bk-text-secondary);
    margin-left: 0.25rem;
}

.iti__arrow--up {
    border-top: none;
    border-bottom: 0.3125rem solid var(--bk-text-secondary);
}

/* Dropdown */
.iti__country-list {
    position: absolute;
    z-index: 100;
    list-style: none;
    padding: 0.5rem 0;
    margin: 0.25rem 0 0;
    background: var(--bk-surface);
    border: 0.0625rem solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
    max-height: 15.625rem;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    width: max-content;
    min-width: 17.5rem;
}

.iti__country-list::-webkit-scrollbar {
    width: 0.375rem;
}

.iti__country-list::-webkit-scrollbar-track {
    background: transparent;
}

.iti__country-list::-webkit-scrollbar-thumb {
    background-color: var(--bk-border-strong);
    border-radius: 0.1875rem;
}

/* Country item */
.iti__country {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 1rem;
    cursor: pointer;
    font-size: 0.875rem;
    color: var(--bk-text-primary);
}

.iti__country:hover,
.iti__country--highlight {
    background: var(--bk-surface-muted);
}

.iti__country-name {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.iti__dial-code {
    color: var(--bk-text-muted);
    font-size: 0.8125rem;
}

/* Flag sprite placeholder */
.iti__flag {
    width: 1.25rem;
    height: 0.875rem;
    background-image: var(--iti-path-flags-1x);
    background-size: var(--iti-flag-sprite-width) var(--iti-flag-sprite-height);
    background-repeat: no-repeat;
    background-position: var(--iti-flag-position, 0 0);
    flex-shrink: 0;
}

/* Search input */
.iti__search-input {
    width: calc(100% - 1rem);
    margin: 0.5rem;
    padding: 0.5rem 2.5rem 0.5rem 2.5rem;
    border: 1px solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    font-size: 0.875rem;
    background: var(--bk-surface);
    color: var(--bk-text-primary);
    -webkit-appearance: none;
}

.iti__search-input::-webkit-search-cancel-button,
.iti__search-input::-webkit-search-decoration {
    display: none;
}

.iti__search-input::-ms-clear,
.iti__search-input::-ms-reveal {
    display: none;
    width: 0;
    height: 0;
}

.iti__search-input:focus {
    outline: none;
    border-color: var(--bk-border-focus);
    box-shadow: var(--bk-focus-ring);
}

/* Divider */
.iti__divider {
    border-bottom: 1px solid var(--bk-border);
    margin: 0.5rem 0;
}

/* 21.2 Phone Field Container */
.bkntc-phone-field {
    position: relative;
}

.bkntc-phone-field .iti {
    display: block;
    width: 100%;
}

/* =========================================
   22. Form Layout Improvements
   ========================================= */

/* Footer styling updates */
.fs-modal-footer .footer_left_action {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 1 1 auto;
    min-width: 0;
}

.fs-modal-footer .footer_left_action label {
    margin: 0;
    color: var(--bk-text-secondary);
    font-size: 0.875rem;
    cursor: pointer;
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
}

.fs-modal-footer .d-flex.gap-2 {
    flex-wrap: wrap;
    justify-content: flex-end;
    min-width: 0;
    max-width: 100%;
}

.fs-modal-footer .btn-primary {
    background: var(--bk-accent-500);
    border-color: var(--bk-accent-500);
    color: var(--bk-accent-content);
}

.fs-modal-footer .btn-primary:hover {
    background: var(--bk-accent-600);
    border-color: var(--bk-accent-600);
}

/* =========================================
   23. Customer Form 2-Column Layout
   ========================================= */

#addCustomerForm .form-row {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1rem;
}

#addCustomerForm .form-row .form-group {
    margin-bottom: 0;
}

#addCustomerForm .form-row .form-group.col-md-6 {
    flex: 1 1 calc(50% - 0.5rem);
    min-width: 14rem;
}

#addCustomerForm .form-row .form-group.col-md-12 {
    flex: 1 1 100%;
}

/* Responsive: Stack on small screens */
@media (max-width: 36rem) {
    #addCustomerForm .form-row .form-group.col-md-6 {
        flex: 1 1 100%;
        min-width: 100%;
    }
}

/* =========================================
   24. intlTelInput Fix - Proper Dropdown
   ========================================= */

/* Ensure iti wrapper is relative */
.iti.iti--allow-dropdown {
    display: block;
    width: 100%;
    position: relative;
}

/* Phone input field with proper left padding */
.iti.iti--allow-dropdown .iti__selected-country {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0 0.5rem 0 0.75rem;
    height: 100%;
    background: var(--bk-surface-muted);
    border-right: 0.0625rem solid var(--bk-border);
    cursor: pointer;
    border-radius: var(--bk-radius-field) 0 0 var(--bk-radius-field);
}

/* Dropdown container must be positioned absolute */
.iti .iti__country-container {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    z-index: 10;
}

/* Country list dropdown */
.iti .iti__country-list {
    position: absolute;
    left: 0;
    top: 100%;
    z-index: 1000;
    list-style: none;
    padding: 0.5rem 0;
    margin: 0.25rem 0 0;
    background: var(--bk-surface);
    border: 0.0625rem solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.15);
    max-height: 15rem;
    overflow-y: auto;
    min-width: 18rem;
}

/* Hide search when unfocused / initial state fix */
.iti .iti__search-input {
    display: block;
    width: calc(100% - 1rem);
    margin: 0.5rem;
    padding: 0.5rem 0.75rem;
    border: 0.0625rem solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    font-size: 0.875rem;
    background: var(--bk-surface);
    color: var(--bk-text-primary);
    box-sizing: border-box;
}

/* Country item */
.iti .iti__country {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 1rem;
    cursor: pointer;
    font-size: 0.875rem;
    color: var(--bk-text-primary);
}

.iti .iti__country:hover,
.iti .iti__country--highlight {
    background: var(--bk-surface-muted);
}

.iti .iti__country-name {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.iti .iti__dial-code {
    color: var(--bk-text-muted);
    font-size: 0.8125rem;
}

/* The phone input field itself */
.bkntc-phone-field input.form-control {
    padding-left: 3.5rem;
}

/* =========================================
   intlTelInput Complete Styling
   ========================================= */

/* CSS Variables for flag sprites */
.iti {
    --iti-path-flags-1x: url("../images/flags.png");
    --iti-path-flags-2x: url("../images/flags@2x.png");
    --iti-flag-height: 15px;
    --iti-flag-width: 20px;
    --iti-flag-sprite-width: 5652px;
    --iti-flag-sprite-height: 15px;
    --iti-spacer-horizontal: 0.5rem;
    --iti-arrow-height: 0.25rem;
    --iti-arrow-width: 0.375rem;
    --iti-arrow-color: var(--bk-text-secondary);
    position: relative;
    display: block;
    width: 100%;
}

.iti * {
    box-sizing: border-box;
}

/* Accessibility text - visually hidden for screen readers only */
.iti__a11y-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Country container (button wrapper) */
.iti__country-container {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    padding: 0.0625rem;
}

/* Selected country button */
.iti__selected-country {
    z-index: 1;
    position: relative;
    display: flex;
    align-items: center;
    height: 100%;
    background: none;
    border: 0;
    margin: 0;
    padding: 0;
    font-family: inherit;
    font-size: inherit;
    color: inherit;
    cursor: pointer;
}

.iti__selected-country-primary {
    display: flex;
    align-items: center;
    height: 100%;
    padding: 0 0.375rem 0 var(--iti-spacer-horizontal);
}

/* Arrow */
.iti__arrow {
    margin-left: 0.375rem;
    width: 0;
    height: 0;
    border-left: calc(var(--iti-arrow-width) / 2) solid transparent;
    border-right: calc(var(--iti-arrow-width) / 2) solid transparent;
    border-top: var(--iti-arrow-height) solid var(--iti-arrow-color);
}

.iti__arrow--up {
    border-top: none;
    border-bottom: var(--iti-arrow-height) solid var(--iti-arrow-color);
}

/* Selected dial code */
.iti__selected-dial-code {
    margin-left: 0.25rem;
    font-size: 0.875rem;
    color: var(--bk-text-primary);
}

/* Dropdown content wrapper */
.iti__dropdown-content {
    position: absolute;
    z-index: 1000;
    background: var(--bk-surface);
    border: 0.0625rem solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.15);
    margin-top: 0.1875rem;
    min-width: 18rem;
    max-width: 22rem;
}

/* Search wrapper */
.iti__search-input-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    padding: 0.5rem;
}

.iti__search-input {
    width: 100%;
    padding: 0.5rem 2.25rem 0.5rem 2.25rem;
    border: 0.0625rem solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    font-size: 0.875rem;
    background: var(--bk-surface);
    color: var(--bk-text-primary);
    -webkit-appearance: none;
    appearance: textfield;
}

.iti__search-input:focus {
    outline: none;
    border-color: var(--bk-border-focus);
    box-shadow: var(--bk-focus-ring);
}

.iti__search-icon {
    position: absolute;
    left: 0.75rem;
    display: flex;
    pointer-events: none;
    color: var(--bk-text-muted);
}

.iti__search-icon-svg {
    stroke: currentColor;
    fill: none;
    stroke-width: 2;
    width: 0.875rem;
    height: 0.875rem;
}

.iti__search-clear {
    position: absolute;
    right: 0.65rem;
    background: transparent;
    border: 0;
    cursor: pointer;
    padding: 0.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--bk-text-muted);
    display: none;
}

.iti__search-clear:hover {
    color: var(--bk-text-primary);
}

.iti__search-input-wrapper .iti__search-clear + .iti__search-clear {
    display: none;
}

.iti__search-input::-webkit-search-cancel-button,
.iti__search-input::-webkit-search-decoration,
.iti__search-input::-webkit-search-results-button,
.iti__search-input::-webkit-search-results-decoration {
    display: none;
}

.iti__search-input::-ms-clear,
.iti__search-input::-ms-reveal {
    display: none;
    width: 0;
    height: 0;
}

/* No results message */
.iti__no-results {
    text-align: center;
    padding: 1.5rem 0;
    color: var(--bk-text-muted);
    font-size: 0.875rem;
}

/* Country list */
.iti__country-list {
    list-style: none;
    padding: 0;
    margin: 0;
    overflow-y: auto;
    max-height: 12rem;
}

/* Country item */
.iti__country {
    display: flex;
    align-items: center;
    padding: 0.5rem var(--iti-spacer-horizontal);
    cursor: pointer;
    outline: none;
}

.iti__country:hover,
.iti__country.iti__highlight {
    background: var(--bk-surface-muted);
}

.iti__country-name {
    margin-left: var(--iti-spacer-horizontal);
    flex: 1;
    font-size: 0.875rem;
    color: var(--bk-text-primary);
}

.iti__dial-code {
    color: var(--bk-text-muted);
    font-size: 0.8125rem;
}

/* Flag sprite offsets (intl-tel-input v17 PNG sprite) */
.iti__flag {
    display: inline-block;
    width: 20px;
    height: 15px;
    flex-shrink: 0;
    background-image: var(--iti-path-flags-1x);
    background-repeat: no-repeat;
    background-color: #dbdbdb;
    background-position: 20px 0;
    background-size: var(--iti-flag-sprite-width) var(--iti-flag-sprite-height);
    box-shadow: 0 0 1px 0 #888;
}

@media (min-resolution: 2dppx) {
    .iti__flag {
        background-image: var(--iti-path-flags-2x);
    }
}

.iti__flag.iti__be {
    width: 18px;
}

.iti__flag.iti__ch {
    width: 15px;
}

.iti__flag.iti__mc {
    width: 19px;
}

.iti__flag.iti__ne {
    width: 18px;
}

.iti__flag.iti__np {
    width: 13px;
}

.iti__flag.iti__va {
    width: 15px;
}

.iti__flag.iti__ac {
    height: 10px;
    background-position: 0px 0px;
}

.iti__flag.iti__ad {
    height: 14px;
    background-position: -22px 0px;
}

.iti__flag.iti__ae {
    height: 10px;
    background-position: -44px 0px;
}

.iti__flag.iti__af {
    height: 14px;
    background-position: -66px 0px;
}

.iti__flag.iti__ag {
    height: 14px;
    background-position: -88px 0px;
}

.iti__flag.iti__ai {
    height: 10px;
    background-position: -110px 0px;
}

.iti__flag.iti__al {
    height: 15px;
    background-position: -132px 0px;
}

.iti__flag.iti__am {
    height: 10px;
    background-position: -154px 0px;
}

.iti__flag.iti__ao {
    height: 14px;
    background-position: -176px 0px;
}

.iti__flag.iti__aq {
    height: 14px;
    background-position: -198px 0px;
}

.iti__flag.iti__ar {
    height: 13px;
    background-position: -220px 0px;
}

.iti__flag.iti__as {
    height: 10px;
    background-position: -242px 0px;
}

.iti__flag.iti__at {
    height: 14px;
    background-position: -264px 0px;
}

.iti__flag.iti__au {
    height: 10px;
    background-position: -286px 0px;
}

.iti__flag.iti__aw {
    height: 14px;
    background-position: -308px 0px;
}

.iti__flag.iti__ax {
    height: 13px;
    background-position: -330px 0px;
}

.iti__flag.iti__az {
    height: 10px;
    background-position: -352px 0px;
}

.iti__flag.iti__ba {
    height: 10px;
    background-position: -374px 0px;
}

.iti__flag.iti__bb {
    height: 14px;
    background-position: -396px 0px;
}

.iti__flag.iti__bd {
    height: 12px;
    background-position: -418px 0px;
}

.iti__flag.iti__be {
    height: 15px;
    background-position: -440px 0px;
}

.iti__flag.iti__bf {
    height: 14px;
    background-position: -460px 0px;
}

.iti__flag.iti__bg {
    height: 12px;
    background-position: -482px 0px;
}

.iti__flag.iti__bh {
    height: 12px;
    background-position: -504px 0px;
}

.iti__flag.iti__bi {
    height: 12px;
    background-position: -526px 0px;
}

.iti__flag.iti__bj {
    height: 14px;
    background-position: -548px 0px;
}

.iti__flag.iti__bl {
    height: 14px;
    background-position: -570px 0px;
}

.iti__flag.iti__bm {
    height: 10px;
    background-position: -592px 0px;
}

.iti__flag.iti__bn {
    height: 10px;
    background-position: -614px 0px;
}

.iti__flag.iti__bo {
    height: 14px;
    background-position: -636px 0px;
}

.iti__flag.iti__bq {
    height: 14px;
    background-position: -658px 0px;
}

.iti__flag.iti__br {
    height: 14px;
    background-position: -680px 0px;
}

.iti__flag.iti__bs {
    height: 10px;
    background-position: -702px 0px;
}

.iti__flag.iti__bt {
    height: 14px;
    background-position: -724px 0px;
}

.iti__flag.iti__bv {
    height: 15px;
    background-position: -746px 0px;
}

.iti__flag.iti__bw {
    height: 14px;
    background-position: -768px 0px;
}

.iti__flag.iti__by {
    height: 10px;
    background-position: -790px 0px;
}

.iti__flag.iti__bz {
    height: 14px;
    background-position: -812px 0px;
}

.iti__flag.iti__ca {
    height: 10px;
    background-position: -834px 0px;
}

.iti__flag.iti__cc {
    height: 10px;
    background-position: -856px 0px;
}

.iti__flag.iti__cd {
    height: 15px;
    background-position: -878px 0px;
}

.iti__flag.iti__cf {
    height: 14px;
    background-position: -900px 0px;
}

.iti__flag.iti__cg {
    height: 14px;
    background-position: -922px 0px;
}

.iti__flag.iti__ch {
    height: 15px;
    background-position: -944px 0px;
}

.iti__flag.iti__ci {
    height: 14px;
    background-position: -961px 0px;
}

.iti__flag.iti__ck {
    height: 10px;
    background-position: -983px 0px;
}

.iti__flag.iti__cl {
    height: 14px;
    background-position: -1005px 0px;
}

.iti__flag.iti__cm {
    height: 14px;
    background-position: -1027px 0px;
}

.iti__flag.iti__cn {
    height: 14px;
    background-position: -1049px 0px;
}

.iti__flag.iti__co {
    height: 14px;
    background-position: -1071px 0px;
}

.iti__flag.iti__cp {
    height: 14px;
    background-position: -1093px 0px;
}

.iti__flag.iti__cr {
    height: 12px;
    background-position: -1115px 0px;
}

.iti__flag.iti__cu {
    height: 10px;
    background-position: -1137px 0px;
}

.iti__flag.iti__cv {
    height: 12px;
    background-position: -1159px 0px;
}

.iti__flag.iti__cw {
    height: 14px;
    background-position: -1181px 0px;
}

.iti__flag.iti__cx {
    height: 10px;
    background-position: -1203px 0px;
}

.iti__flag.iti__cy {
    height: 14px;
    background-position: -1225px 0px;
}

.iti__flag.iti__cz {
    height: 14px;
    background-position: -1247px 0px;
}

.iti__flag.iti__de {
    height: 12px;
    background-position: -1269px 0px;
}

.iti__flag.iti__dg {
    height: 10px;
    background-position: -1291px 0px;
}

.iti__flag.iti__dj {
    height: 14px;
    background-position: -1313px 0px;
}

.iti__flag.iti__dk {
    height: 15px;
    background-position: -1335px 0px;
}

.iti__flag.iti__dm {
    height: 10px;
    background-position: -1357px 0px;
}

.iti__flag.iti__do {
    height: 14px;
    background-position: -1379px 0px;
}

.iti__flag.iti__dz {
    height: 14px;
    background-position: -1401px 0px;
}

.iti__flag.iti__ea {
    height: 14px;
    background-position: -1423px 0px;
}

.iti__flag.iti__ec {
    height: 14px;
    background-position: -1445px 0px;
}

.iti__flag.iti__ee {
    height: 13px;
    background-position: -1467px 0px;
}

.iti__flag.iti__eg {
    height: 14px;
    background-position: -1489px 0px;
}

.iti__flag.iti__eh {
    height: 10px;
    background-position: -1511px 0px;
}

.iti__flag.iti__er {
    height: 10px;
    background-position: -1533px 0px;
}

.iti__flag.iti__es {
    height: 14px;
    background-position: -1555px 0px;
}

.iti__flag.iti__et {
    height: 10px;
    background-position: -1577px 0px;
}

.iti__flag.iti__eu {
    height: 14px;
    background-position: -1599px 0px;
}

.iti__flag.iti__fi {
    height: 12px;
    background-position: -1621px 0px;
}

.iti__flag.iti__fj {
    height: 10px;
    background-position: -1643px 0px;
}

.iti__flag.iti__fk {
    height: 10px;
    background-position: -1665px 0px;
}

.iti__flag.iti__fm {
    height: 11px;
    background-position: -1687px 0px;
}

.iti__flag.iti__fo {
    height: 15px;
    background-position: -1709px 0px;
}

.iti__flag.iti__fr {
    height: 14px;
    background-position: -1731px 0px;
}

.iti__flag.iti__ga {
    height: 15px;
    background-position: -1753px 0px;
}

.iti__flag.iti__gb {
    height: 10px;
    background-position: -1775px 0px;
}

.iti__flag.iti__gd {
    height: 12px;
    background-position: -1797px 0px;
}

.iti__flag.iti__ge {
    height: 14px;
    background-position: -1819px 0px;
}

.iti__flag.iti__gf {
    height: 14px;
    background-position: -1841px 0px;
}

.iti__flag.iti__gg {
    height: 14px;
    background-position: -1863px 0px;
}

.iti__flag.iti__gh {
    height: 14px;
    background-position: -1885px 0px;
}

.iti__flag.iti__gi {
    height: 10px;
    background-position: -1907px 0px;
}

.iti__flag.iti__gl {
    height: 14px;
    background-position: -1929px 0px;
}

.iti__flag.iti__gm {
    height: 14px;
    background-position: -1951px 0px;
}

.iti__flag.iti__gn {
    height: 14px;
    background-position: -1973px 0px;
}

.iti__flag.iti__gp {
    height: 14px;
    background-position: -1995px 0px;
}

.iti__flag.iti__gq {
    height: 14px;
    background-position: -2017px 0px;
}

.iti__flag.iti__gr {
    height: 14px;
    background-position: -2039px 0px;
}

.iti__flag.iti__gs {
    height: 10px;
    background-position: -2061px 0px;
}

.iti__flag.iti__gt {
    height: 13px;
    background-position: -2083px 0px;
}

.iti__flag.iti__gu {
    height: 11px;
    background-position: -2105px 0px;
}

.iti__flag.iti__gw {
    height: 10px;
    background-position: -2127px 0px;
}

.iti__flag.iti__gy {
    height: 12px;
    background-position: -2149px 0px;
}

.iti__flag.iti__hk {
    height: 14px;
    background-position: -2171px 0px;
}

.iti__flag.iti__hm {
    height: 10px;
    background-position: -2193px 0px;
}

.iti__flag.iti__hn {
    height: 10px;
    background-position: -2215px 0px;
}

.iti__flag.iti__hr {
    height: 10px;
    background-position: -2237px 0px;
}

.iti__flag.iti__ht {
    height: 12px;
    background-position: -2259px 0px;
}

.iti__flag.iti__hu {
    height: 10px;
    background-position: -2281px 0px;
}

.iti__flag.iti__ic {
    height: 14px;
    background-position: -2303px 0px;
}

.iti__flag.iti__id {
    height: 14px;
    background-position: -2325px 0px;
}

.iti__flag.iti__ie {
    height: 10px;
    background-position: -2347px 0px;
}

.iti__flag.iti__il {
    height: 15px;
    background-position: -2369px 0px;
}

.iti__flag.iti__im {
    height: 10px;
    background-position: -2391px 0px;
}

.iti__flag.iti__in {
    height: 14px;
    background-position: -2413px 0px;
}

.iti__flag.iti__io {
    height: 10px;
    background-position: -2435px 0px;
}

.iti__flag.iti__iq {
    height: 14px;
    background-position: -2457px 0px;
}

.iti__flag.iti__ir {
    height: 12px;
    background-position: -2479px 0px;
}

.iti__flag.iti__is {
    height: 15px;
    background-position: -2501px 0px;
}

.iti__flag.iti__it {
    height: 14px;
    background-position: -2523px 0px;
}

.iti__flag.iti__je {
    height: 12px;
    background-position: -2545px 0px;
}

.iti__flag.iti__jm {
    height: 10px;
    background-position: -2567px 0px;
}

.iti__flag.iti__jo {
    height: 10px;
    background-position: -2589px 0px;
}

.iti__flag.iti__jp {
    height: 14px;
    background-position: -2611px 0px;
}

.iti__flag.iti__ke {
    height: 14px;
    background-position: -2633px 0px;
}

.iti__flag.iti__kg {
    height: 12px;
    background-position: -2655px 0px;
}

.iti__flag.iti__kh {
    height: 13px;
    background-position: -2677px 0px;
}

.iti__flag.iti__ki {
    height: 10px;
    background-position: -2699px 0px;
}

.iti__flag.iti__km {
    height: 12px;
    background-position: -2721px 0px;
}

.iti__flag.iti__kn {
    height: 14px;
    background-position: -2743px 0px;
}

.iti__flag.iti__kp {
    height: 10px;
    background-position: -2765px 0px;
}

.iti__flag.iti__kr {
    height: 14px;
    background-position: -2787px 0px;
}

.iti__flag.iti__kw {
    height: 10px;
    background-position: -2809px 0px;
}

.iti__flag.iti__ky {
    height: 10px;
    background-position: -2831px 0px;
}

.iti__flag.iti__kz {
    height: 10px;
    background-position: -2853px 0px;
}

.iti__flag.iti__la {
    height: 14px;
    background-position: -2875px 0px;
}

.iti__flag.iti__lb {
    height: 14px;
    background-position: -2897px 0px;
}

.iti__flag.iti__lc {
    height: 10px;
    background-position: -2919px 0px;
}

.iti__flag.iti__li {
    height: 12px;
    background-position: -2941px 0px;
}

.iti__flag.iti__lk {
    height: 10px;
    background-position: -2963px 0px;
}

.iti__flag.iti__lr {
    height: 11px;
    background-position: -2985px 0px;
}

.iti__flag.iti__ls {
    height: 14px;
    background-position: -3007px 0px;
}

.iti__flag.iti__lt {
    height: 12px;
    background-position: -3029px 0px;
}

.iti__flag.iti__lu {
    height: 12px;
    background-position: -3051px 0px;
}

.iti__flag.iti__lv {
    height: 10px;
    background-position: -3073px 0px;
}

.iti__flag.iti__ly {
    height: 10px;
    background-position: -3095px 0px;
}

.iti__flag.iti__ma {
    height: 14px;
    background-position: -3117px 0px;
}

.iti__flag.iti__mc {
    height: 15px;
    background-position: -3139px 0px;
}

.iti__flag.iti__md {
    height: 10px;
    background-position: -3160px 0px;
}

.iti__flag.iti__me {
    height: 10px;
    background-position: -3182px 0px;
}

.iti__flag.iti__mf {
    height: 14px;
    background-position: -3204px 0px;
}

.iti__flag.iti__mg {
    height: 14px;
    background-position: -3226px 0px;
}

.iti__flag.iti__mh {
    height: 11px;
    background-position: -3248px 0px;
}

.iti__flag.iti__mk {
    height: 10px;
    background-position: -3270px 0px;
}

.iti__flag.iti__ml {
    height: 14px;
    background-position: -3292px 0px;
}

.iti__flag.iti__mm {
    height: 14px;
    background-position: -3314px 0px;
}

.iti__flag.iti__mn {
    height: 10px;
    background-position: -3336px 0px;
}

.iti__flag.iti__mo {
    height: 14px;
    background-position: -3358px 0px;
}

.iti__flag.iti__mp {
    height: 10px;
    background-position: -3380px 0px;
}

.iti__flag.iti__mq {
    height: 14px;
    background-position: -3402px 0px;
}

.iti__flag.iti__mr {
    height: 14px;
    background-position: -3424px 0px;
}

.iti__flag.iti__ms {
    height: 10px;
    background-position: -3446px 0px;
}

.iti__flag.iti__mt {
    height: 14px;
    background-position: -3468px 0px;
}

.iti__flag.iti__mu {
    height: 14px;
    background-position: -3490px 0px;
}

.iti__flag.iti__mv {
    height: 14px;
    background-position: -3512px 0px;
}

.iti__flag.iti__mw {
    height: 14px;
    background-position: -3534px 0px;
}

.iti__flag.iti__mx {
    height: 12px;
    background-position: -3556px 0px;
}

.iti__flag.iti__my {
    height: 10px;
    background-position: -3578px 0px;
}

.iti__flag.iti__mz {
    height: 14px;
    background-position: -3600px 0px;
}

.iti__flag.iti__na {
    height: 14px;
    background-position: -3622px 0px;
}

.iti__flag.iti__nc {
    height: 10px;
    background-position: -3644px 0px;
}

.iti__flag.iti__ne {
    height: 15px;
    background-position: -3666px 0px;
}

.iti__flag.iti__nf {
    height: 10px;
    background-position: -3686px 0px;
}

.iti__flag.iti__ng {
    height: 10px;
    background-position: -3708px 0px;
}

.iti__flag.iti__ni {
    height: 12px;
    background-position: -3730px 0px;
}

.iti__flag.iti__nl {
    height: 14px;
    background-position: -3752px 0px;
}

.iti__flag.iti__no {
    height: 15px;
    background-position: -3774px 0px;
}

.iti__flag.iti__np {
    height: 15px;
    background-position: -3796px 0px;
}

.iti__flag.iti__nr {
    height: 10px;
    background-position: -3811px 0px;
}

.iti__flag.iti__nu {
    height: 10px;
    background-position: -3833px 0px;
}

.iti__flag.iti__nz {
    height: 10px;
    background-position: -3855px 0px;
}

.iti__flag.iti__om {
    height: 10px;
    background-position: -3877px 0px;
}

.iti__flag.iti__pa {
    height: 14px;
    background-position: -3899px 0px;
}

.iti__flag.iti__pe {
    height: 14px;
    background-position: -3921px 0px;
}

.iti__flag.iti__pf {
    height: 14px;
    background-position: -3943px 0px;
}

.iti__flag.iti__pg {
    height: 15px;
    background-position: -3965px 0px;
}

.iti__flag.iti__ph {
    height: 10px;
    background-position: -3987px 0px;
}

.iti__flag.iti__pk {
    height: 14px;
    background-position: -4009px 0px;
}

.iti__flag.iti__pl {
    height: 13px;
    background-position: -4031px 0px;
}

.iti__flag.iti__pm {
    height: 14px;
    background-position: -4053px 0px;
}

.iti__flag.iti__pn {
    height: 10px;
    background-position: -4075px 0px;
}

.iti__flag.iti__pr {
    height: 14px;
    background-position: -4097px 0px;
}

.iti__flag.iti__ps {
    height: 10px;
    background-position: -4119px 0px;
}

.iti__flag.iti__pt {
    height: 14px;
    background-position: -4141px 0px;
}

.iti__flag.iti__pw {
    height: 13px;
    background-position: -4163px 0px;
}

.iti__flag.iti__py {
    height: 11px;
    background-position: -4185px 0px;
}

.iti__flag.iti__qa {
    height: 8px;
    background-position: -4207px 0px;
}

.iti__flag.iti__re {
    height: 14px;
    background-position: -4229px 0px;
}

.iti__flag.iti__ro {
    height: 14px;
    background-position: -4251px 0px;
}

.iti__flag.iti__rs {
    height: 14px;
    background-position: -4273px 0px;
}

.iti__flag.iti__ru {
    height: 14px;
    background-position: -4295px 0px;
}

.iti__flag.iti__rw {
    height: 14px;
    background-position: -4317px 0px;
}

.iti__flag.iti__sa {
    height: 14px;
    background-position: -4339px 0px;
}

.iti__flag.iti__sb {
    height: 10px;
    background-position: -4361px 0px;
}

.iti__flag.iti__sc {
    height: 10px;
    background-position: -4383px 0px;
}

.iti__flag.iti__sd {
    height: 10px;
    background-position: -4405px 0px;
}

.iti__flag.iti__se {
    height: 13px;
    background-position: -4427px 0px;
}

.iti__flag.iti__sg {
    height: 14px;
    background-position: -4449px 0px;
}

.iti__flag.iti__sh {
    height: 10px;
    background-position: -4471px 0px;
}

.iti__flag.iti__si {
    height: 10px;
    background-position: -4493px 0px;
}

.iti__flag.iti__sj {
    height: 15px;
    background-position: -4515px 0px;
}

.iti__flag.iti__sk {
    height: 14px;
    background-position: -4537px 0px;
}

.iti__flag.iti__sl {
    height: 14px;
    background-position: -4559px 0px;
}

.iti__flag.iti__sm {
    height: 15px;
    background-position: -4581px 0px;
}

.iti__flag.iti__sn {
    height: 14px;
    background-position: -4603px 0px;
}

.iti__flag.iti__so {
    height: 14px;
    background-position: -4625px 0px;
}

.iti__flag.iti__sr {
    height: 14px;
    background-position: -4647px 0px;
}

.iti__flag.iti__ss {
    height: 10px;
    background-position: -4669px 0px;
}

.iti__flag.iti__st {
    height: 10px;
    background-position: -4691px 0px;
}

.iti__flag.iti__sv {
    height: 12px;
    background-position: -4713px 0px;
}

.iti__flag.iti__sx {
    height: 14px;
    background-position: -4735px 0px;
}

.iti__flag.iti__sy {
    height: 14px;
    background-position: -4757px 0px;
}

.iti__flag.iti__sz {
    height: 14px;
    background-position: -4779px 0px;
}

.iti__flag.iti__ta {
    height: 10px;
    background-position: -4801px 0px;
}

.iti__flag.iti__tc {
    height: 10px;
    background-position: -4823px 0px;
}

.iti__flag.iti__td {
    height: 14px;
    background-position: -4845px 0px;
}

.iti__flag.iti__tf {
    height: 14px;
    background-position: -4867px 0px;
}

.iti__flag.iti__tg {
    height: 13px;
    background-position: -4889px 0px;
}

.iti__flag.iti__th {
    height: 14px;
    background-position: -4911px 0px;
}

.iti__flag.iti__tj {
    height: 10px;
    background-position: -4933px 0px;
}

.iti__flag.iti__tk {
    height: 10px;
    background-position: -4955px 0px;
}

.iti__flag.iti__tl {
    height: 10px;
    background-position: -4977px 0px;
}

.iti__flag.iti__tm {
    height: 14px;
    background-position: -4999px 0px;
}

.iti__flag.iti__tn {
    height: 14px;
    background-position: -5021px 0px;
}

.iti__flag.iti__to {
    height: 10px;
    background-position: -5043px 0px;
}

.iti__flag.iti__tr {
    height: 14px;
    background-position: -5065px 0px;
}

.iti__flag.iti__tt {
    height: 12px;
    background-position: -5087px 0px;
}

.iti__flag.iti__tv {
    height: 10px;
    background-position: -5109px 0px;
}

.iti__flag.iti__tw {
    height: 14px;
    background-position: -5131px 0px;
}

.iti__flag.iti__tz {
    height: 14px;
    background-position: -5153px 0px;
}

.iti__flag.iti__ua {
    height: 14px;
    background-position: -5175px 0px;
}

.iti__flag.iti__ug {
    height: 14px;
    background-position: -5197px 0px;
}

.iti__flag.iti__um {
    height: 11px;
    background-position: -5219px 0px;
}

.iti__flag.iti__un {
    height: 14px;
    background-position: -5241px 0px;
}

.iti__flag.iti__us {
    height: 11px;
    background-position: -5263px 0px;
}

.iti__flag.iti__uy {
    height: 14px;
    background-position: -5285px 0px;
}

.iti__flag.iti__uz {
    height: 10px;
    background-position: -5307px 0px;
}

.iti__flag.iti__va {
    height: 15px;
    background-position: -5329px 0px;
}

.iti__flag.iti__vc {
    height: 14px;
    background-position: -5344px 0px;
}

.iti__flag.iti__ve {
    height: 14px;
    background-position: -5366px 0px;
}

.iti__flag.iti__vg {
    height: 10px;
    background-position: -5388px 0px;
}

.iti__flag.iti__vi {
    height: 14px;
    background-position: -5410px 0px;
}

.iti__flag.iti__vn {
    height: 14px;
    background-position: -5432px 0px;
}

.iti__flag.iti__vu {
    height: 12px;
    background-position: -5454px 0px;
}

.iti__flag.iti__wf {
    height: 14px;
    background-position: -5476px 0px;
}

.iti__flag.iti__ws {
    height: 10px;
    background-position: -5498px 0px;
}

.iti__flag.iti__xk {
    height: 15px;
    background-position: -5520px 0px;
}

.iti__flag.iti__ye {
    height: 14px;
    background-position: -5542px 0px;
}

.iti__flag.iti__yt {
    height: 14px;
    background-position: -5564px 0px;
}

.iti__flag.iti__za {
    height: 14px;
    background-position: -5586px 0px;
}

.iti__flag.iti__zm {
    height: 14px;
    background-position: -5608px 0px;
}

.iti__flag.iti__zw {
    height: 10px;
    background-position: -5632px 0px;
}

.iti__flag.iti__np {
    background-color: transparent;
}

/* Utility classes */
.iti__hide {
    display: none !important;
}

.iti__v-hide {
    visibility: hidden !important;
}



/* =========================================
   25. Photo Upload Field
   ========================================= */

.bkntc-photo-field {
    position: relative;
}

.bkntc-photo-drop {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    border: 0.0625rem dashed var(--bk-border);
    border-radius: var(--bk-radius-field);
    background: var(--bk-surface-muted);
    cursor: pointer;
    transition: border-color var(--bk-transition), background var(--bk-transition);
}

.bkntc-photo-drop:hover {
    border-color: var(--bk-primary-500);
    background: var(--bk-primary-100);
}

.bkntc-photo-preview {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: var(--bk-radius-field);
    background: var(--bk-surface);
    border: 0.0625rem solid var(--bk-border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--bk-text-muted);
    font-size: 1.25rem;
    flex-shrink: 0;
    overflow: hidden;
    background-size: cover;
    background-position: center;
}

.bkntc-photo-preview.has-image {
    border-color: var(--bk-primary-500);
}

.bkntc-photo-copy {
    flex: 1;
    min-width: 0;
}

.bkntc-photo-title {
    font-weight: 600;
    color: var(--bk-text-primary);
    font-size: 0.875rem;
}

.bkntc-photo-hint {
    font-size: 0.75rem;
    color: var(--bk-text-muted);
    margin-top: 0.125rem;
}

.bkntc-photo-filename {
    font-size: 0.75rem;
    color: var(--bk-text-secondary);
    margin-top: 0.25rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bkntc-photo-action {
    padding: 0.5rem 1rem;
    background: var(--bk-primary-500);
    color: var(--bk-primary-content);
    border-radius: var(--bk-radius-field);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    flex-shrink: 0;
}

.bkntc-photo-input {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    opacity: 0;
    cursor: pointer;
}

/* =========================================
   26. Date Picker Field
   ========================================= */

.bkntc-date-field {
    position: relative;
    display: flex;
    align-items: center;
}

.bkntc-date-icon {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    z-index: 1;
}

.bkntc-date-icon img {
    width: 1rem;
    height: 1rem;
    opacity: 0.5;
}

.bkntc-date-field input.form-control {
    padding-left: 2.5rem;
    padding-right: 2.25rem;
}

.bkntc-date-clear {
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: var(--bk-radius-selector);
    color: var(--bk-text-muted);
    cursor: pointer;
    transition: color var(--bk-transition), background var(--bk-transition);
}

.bkntc-date-clear:hover {
    color: var(--bk-text-primary);
    background: var(--bk-surface-muted);
}

.bkntc-date-clear i {
    font-size: 1rem;
}


/* =========================================
   Override: Appointment Payment Icons
   Use dark blue accent for paid status
   ========================================= */
.booknetic_appointment .invoice-icon.status-paid,
.booknetic_appointment .invoice-icon.status-paid_deposit {
    color: var(--bk-primary);
}

.booknetic_appointment .invoice-icon.status-paid i,
.booknetic_appointment .invoice-icon.status-paid_deposit i {
    color: inherit;
}

.booknetic_appointment .invoice-icon.status-paid:hover,
.booknetic_appointment .invoice-icon.status-paid_deposit:hover {
    color: var(--bk-primary-600);
    cursor: pointer;
}

/* =========================================
   27. Appointment Info Modal Styles
   ========================================= */

/* Title icon badges */
.fs-modal-title .title-icon.badge-lg {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--bk-radius-field);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}

.fs-modal-title .title-icon.badge-primary {
    background: var(--bk-primary-100);
    color: var(--bk-primary);
}

.fs-modal-title .title-icon.badge-purple {
    background: var(--bk-accent-100);
    color: var(--bk-accent-500);
}

/* Appointment Info Modal - Form styling */
.booknetic_appointment .fs-modal-body .form-row {
    display: flex;
    flex-wrap: wrap;
    margin-left: -0.5rem;
    margin-right: -0.5rem;
    row-gap: 1rem;
}

.booknetic_appointment .fs-modal-body .form-group {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    margin-bottom: 0;
}

.booknetic_appointment .fs-modal-body label {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--bk-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin-bottom: 0.25rem;
    display: block;
}

.booknetic_appointment .fs-modal-body .form-control-plaintext {
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--bk-text-primary);
    padding: 0;
    margin: 0;
    background: transparent;
    border: none;
    min-height: auto;
}

.booknetic_appointment .fs-modal-body .form-control-plaintext pre {
    font-family: inherit;
    font-size: inherit;
    margin: 0;
    white-space: pre-wrap;
    word-break: break-word;
}

/* Separator line */
.booknetic_appointment .fs-modal-body hr {
    border: none;
    border-top: 0.0625rem solid var(--bk-border);
    margin: 1.5rem 0;
}

/* Labels with color classes */
.booknetic_appointment .fs-modal-body label.text-primary {
    color: var(--bk-primary);
}

.booknetic_appointment .fs-modal-body label.text-success {
    color: var(--bk-success);
}

/* Customer card row */
.booknetic_appointment .per-customer-div {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.booknetic_appointment .num_of_customers_span {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.8125rem;
    color: var(--bk-text-muted);
    background: var(--bk-surface-muted);
    padding: 0.25rem 0.5rem;
    border-radius: var(--bk-radius-selector);
}

/* Payment link section */
.booknetic_appointment .bkntc_payment_link_container {
    margin-top: 1rem;
}

.booknetic_appointment .bkntc_payment_link_container .payment_link {
    padding: 0.75rem;
    background: var(--bk-surface-muted);
    border-radius: var(--bk-radius-field);
    font-size: 0.8125rem;
    color: var(--bk-text-secondary);
    word-break: break-all;
    margin-bottom: 0.75rem;
}

/* Select in payment link section */
.booknetic_appointment #appointment_info_payment_gateway {
    min-height: 2.75rem;
    border: 0.0625rem solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    background: var(--bk-surface);
    color: var(--bk-text-primary);
    font-size: 0.875rem;
    padding: 0.5rem 0.75rem;
}

.booknetic_appointment #appointment_info_payment_gateway:focus {
    border-color: var(--bk-border-focus);
    box-shadow: var(--bk-focus-ring);
    outline: none;
}

/* Footer buttons - proper color scheme */
.booknetic_appointment .fs-modal-footer .btn-danger {
    background: transparent;
    border: 0.0625rem solid var(--bk-error);
    color: var(--bk-error);
}

.booknetic_appointment .fs-modal-footer .btn-danger:hover {
    background: var(--bk-error-soft);
}

.booknetic_appointment .fs-modal-footer .btn-primary {
    background: var(--bk-accent);
    border-color: var(--bk-accent);
    color: var(--bk-accent-content);
}

.booknetic_appointment .fs-modal-footer .btn-primary:hover {
    background: var(--bk-accent-600);
    border-color: var(--bk-accent-600);
}

.booknetic_appointment .fs-modal-footer .btn-default {
    background: var(--bk-surface);
    border: 0.0625rem solid var(--bk-border);
    color: var(--bk-text-secondary);
}

.booknetic_appointment .fs-modal-footer .btn-default:hover {
    background: var(--bk-surface-muted);
    border-color: var(--bk-border-strong);
}

/* Nav tabs in modal */
.booknetic_appointment .fs-modal-body .nav-tabs {
    border-bottom: 0.0625rem solid var(--bk-border);
    display: flex;
    gap: 0.25rem;
    flex-wrap: wrap;
}

.booknetic_appointment .fs-modal-body .nav-tabs .nav-item {
    margin-bottom: -0.0625rem;
}

.booknetic_appointment .fs-modal-body .nav-tabs .nav-link {
    padding: 0.625rem 1rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--bk-text-secondary);
    background: transparent;
    border: 0.0625rem solid transparent;
    border-bottom: none;
    border-radius: var(--bk-radius-field) var(--bk-radius-field) 0 0;
    transition: color var(--bk-transition), background var(--bk-transition);
}

.booknetic_appointment .fs-modal-body .nav-tabs .nav-link:hover {
    color: var(--bk-primary);
    background: var(--bk-surface-muted);
}

.booknetic_appointment .fs-modal-body .nav-tabs .nav-link.active {
    color: var(--bk-primary);
    background: var(--bk-surface);
    border-color: var(--bk-border);
}

.booknetic_appointment .fs-modal-body .tab-content {
    margin-top: 1.5rem;
}

/* Mobile responsive */
@media (max-width: 48rem) {

    .booknetic_appointment .fs-modal-body .form-group.col-md-4,
    .booknetic_appointment .fs-modal-body .form-group.col-md-6,
    .booknetic_appointment .fs-modal-body .form-group.col-md-8 {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .booknetic_appointment .fs-modal-footer {
        flex-direction: column;
        gap: 0.5rem;
    }

    .booknetic_appointment .fs-modal-footer .btn {
        width: 100%;
    }
}

/* =========================================
   28. Header Action Buttons Consistency
   Make all header buttons have same hover style
   ========================================= */



/* =========================================
   29. Appointment Info - Customer Status & Count
   ========================================= */

/* Status badge next to customer name */
.booknetic_appointment .appointment-status-icon {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    flex-shrink: 0;
}

.booknetic_appointment .appointment-status-icon i {
    font-size: 0.75rem;
}

/* Customer count badge */
.booknetic_appointment .num_of_customers_span {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--bk-text-muted);
    background: var(--bk-surface-muted);
    padding: 0.25rem 0.625rem;
    border-radius: var(--bk-radius-round);
    border: 0.0625rem solid var(--bk-border);
}

.booknetic_appointment .num_of_customers_span i {
    font-size: 0.875rem;
}

/* Customer row layout */
.booknetic_appointment .per-customer-div {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.5rem 0;
}

/* =========================================
   30. Split Footer Layout
   ========================================= */

.fs-modal-footer.bkntc-footer-split {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.5rem;
    border-top: 0.0625rem solid var(--bk-border);
    background: var(--bk-surface);
}

.bkntc-footer-left {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.bkntc-footer-right {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* Delete button - Red outline */
/* Delete button - Red outline */
.fs-modal-footer .bkntc-footer-left .btn-outline-danger {
    background: transparent;
    border: 0.0625rem solid var(--bk-error);
    color: var(--bk-error);
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}

.fs-modal-footer .bkntc-footer-left .btn-outline-danger:hover {
    background: var(--bk-error-soft);
    border-color: var(--bk-error);
    color: var(--bk-error);
}

/* Mobile responsive for split footer */
@media (max-width: 36rem) {
    .booknetic_appointment .fs-modal-footer.bkntc-footer-split {
        flex-direction: column;
        gap: 0.75rem;
    }

    .booknetic_appointment .bkntc-footer-left,
    .booknetic_appointment .bkntc-footer-right {
        width: 100%;
        justify-content: center;
    }

    .booknetic_appointment .bkntc-footer-left .btn,
    .booknetic_appointment .bkntc-footer-right .btn {
        flex: 1;
    }
}

/* =========================================
   31. Staff & Customer Cards (Premium Look)
   ========================================= */

/* Staff & Customer Card - Elevated */
.booknetic_appointment .bkntc-staff-card,
.booknetic_appointment .bkntc-customer-card {
    background: var(--bk-surface);
    border: 0.0625rem solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    box-shadow: var(--bk-shadow-soft);
    transition: box-shadow var(--bk-transition), border-color var(--bk-transition);
}

.booknetic_appointment .bkntc-staff-card:hover,
.booknetic_appointment .bkntc-customer-card:hover {
    box-shadow: var(--bk-shadow-hover);
    border-color: var(--bk-primary-100);
}

/* Override profile card styles inside these specific wrappers to ensure layout */
.booknetic_appointment .bkntc-staff-card .d-flex.align-items-center,
.booknetic_appointment .bkntc-customer-card .d-flex.align-items-center {
    gap: 0.75rem;
}

/* Ensure the status icon is improved */
.booknetic_appointment .bkntc-customer-card .appointment-status-icon {
    width: 2rem;
    height: 2rem;
    font-size: 1rem;
}

.booknetic_appointment .bkntc-customer-card .appointment-status-icon i {
    font-size: 0.875rem;
}

/* 17. Packages & Booking Widget Styles */

.package-modal {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 2rem);
}

.package-modal .scroll-wrapper {
    flex: 1;
    min-height: 0;
    max-height: calc(100vh - 14.375rem);
    overflow: auto;
    padding-bottom: 7.5rem;
}

#selectedPackageImage {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--bk-radius-round);
}

.package-expiration {
    margin-block: 0.125rem;
}

.expiration-span {
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.25rem;
    color: var(--bk-text-primary);
}

.expiration-select-container.hidden {
    opacity: 0;
    user-select: none;
    visibility: hidden;
    pointer-events: none;
}

.package-modal button,
.package-modal .booknetic-primary-btn,
.package-modal .booknetic-secondary-btn,
.package-modal .table-navigations .nav-link {
    border-radius: var(--bk-radius-field) !important;
}

.expiration-input {
    height: 3.25rem;
    text-align: center;
}

.booking-mode-container input[type="radio"] {
    appearance: none;
    width: 1.125rem;
    height: 1.125rem;
    border-radius: 50%;
    border: 0.125rem solid var(--bk-border-strong);
    background: var(--bk-surface);
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    cursor: pointer;
}

.booking-mode-container input[type="radio"]::after {
    content: "";
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: var(--bk-primary-500);
    opacity: 0;
    transition: opacity var(--bk-transition);
}

.booking-mode-container input[type="radio"]:checked {
    border-color: var(--bk-primary-500);
}

.booking-mode-container input[type="radio"]:checked::after {
    opacity: 1;
}

.package-modal footer {
    position: sticky;
    bottom: 0;
    z-index: 5;
    background: var(--bk-surface);
    border-top: var(--bk-border-width) solid var(--bk-border);
}

.package-price-container {
    padding-block: 1.5rem 0.5rem;
    border-bottom: var(--bk-border-width) solid var(--bk-border);
    display: none;
}

.total-price-container {
    margin-top: 1rem;
}

.total-price-container h2 {
    color: var(--bk-text-primary);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5rem;
}

.appointment-amount {
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.125rem;
    color: var(--bk-text-secondary);
}

.product-name {
    color: var(--bk-text-primary);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5rem;
}

.product-price {
    color: var(--bk-success);
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.5rem;
}

.line {
    flex: 1;
    height: 1px;
    position: relative;
    bottom: 0.4375rem;
    border-bottom: 0.0625rem dashed var(--bk-border);
    margin: 0 0.5rem;
}

.package-service {
    border: var(--bk-border-width) solid var(--bk-primary-100);
    background-color: color-mix(in srgb, var(--bk-primary-100) 30%, transparent);
    padding: 1rem;
    border-radius: var(--bk-radius-field);
    margin-bottom: 1rem;
}

.package-service-name {
    color: var(--bk-text-primary);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5rem;
}

.package-service-header {
    border-bottom: var(--bk-border-width) solid var(--bk-primary-100);
    padding-bottom: 1rem;
    margin-bottom: 1rem;
}

.number-appointments {
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    overflow: hidden;
}

.number-appointments input,
.number-appointments button {
    padding: 0.875rem 1rem;
    border: none;
    background-color: var(--bk-surface);
    text-align: center;
}

.number-appointments input {
    border-left: var(--bk-border-width) solid var(--bk-border);
    border-right: var(--bk-border-width) solid var(--bk-border);
    width: 30%;
}

/* Package Modal Override */
.package-modal-body {
    min-height: 550px !important;
}

/* Fix Expiration Height Mismatch */
#expirationSettingsContainer .expiration-input,
#expirationSettingsContainer .ts-wrapper .ts-control {
    min-height: 3rem;
    height: 3rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    display: flex;
    align-items: center;
}

/* 17. Package Booking Info Modal Styles (Refined) */
.package-info-accordion {
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    padding: var(--bk-spacing-md);
    background: var(--bk-surface);
}

.accordion-icon {
    /* Optional rotation transition if needed later */
    transition: transform var(--bk-transition);
}

.package-service-container {
    /* Spacing handled by utility gap classes */
}

.package-service {
    transition: box-shadow var(--bk-transition);
}

.package-service:hover {
    box-shadow: var(--bk-shadow-soft);
}

.package-more-menu-btn {
    border-radius: var(--bk-radius-field);
}

.package-more-menu-btn:hover {
    background: var(--bk-base-200);
    color: var(--bk-text-primary) !important;
    /* Utility override */
}

/* Dropdown override for consistent look */
.package-more-menu.dropdown-menu {
    margin-top: 0.5rem;
    padding: 0.5rem;
    border-radius: var(--bk-radius-box);
}

.package-more-menu .dropdown-item {
    border-radius: var(--bk-radius-field);
    padding: 0.5rem 0.75rem;
    color: var(--bk-text-secondary);
}

.package-more-menu .dropdown-item:hover {
    background: var(--bk-base-200);
    color: var(--bk-text-primary);
}

.package-more-menu .dropdown-item:active,
.package-more-menu .dropdown-item:focus {
    background: var(--bk-base-200);
    color: var(--bk-text-primary);
}

/* =========================================
   18. Confirmation Modal Styles
   ========================================= */

/* Independent of .booknetic_appointment scope because modals are appended to body */
.confirm_modal_icon_div {
    display: flex;
    justify-content: center;
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
}

.bk-confirm-icon {
    width: 5rem;
    height: 5rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    /* Default Neutral */
    background-color: var(--bk-base-200);
    color: var(--bk-text-secondary);
}

.bk-confirm-icon.text-danger {
    background-color: var(--bk-error-soft, #ffebef);
    color: var(--bk-error) !important;
}

.bk-confirm-icon.text-warning {
    background-color: var(--bk-warning-soft);
    color: var(--bk-warning) !important;
}

.bk-confirm-icon.text-success {
    background-color: var(--bk-success-soft);
    color: var(--bk-success) !important;
}

.bk-confirm-icon.text-primary {
    background-color: var(--bk-primary-100);
    color: var(--bk-primary-500) !important;
}

.confirm_modal_title {
    font-family: 'Poppins', sans-serif;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--bk-text-primary);
    text-align: center;
    margin-bottom: 0.5rem;
    padding: 0 1rem;
}

.confirm_modal_desc {
    font-family: 'Poppins', sans-serif;
    font-size: 0.875rem;
    color: var(--bk-text-secondary);
    text-align: center;
    line-height: 1.5;
    margin-bottom: 2rem !important;
    padding: 0 2rem;
}

.confirm_modal_actions {
    padding-bottom: 1.5rem;
}

.confirm_modal_actions .btn {
    min-width: 8rem;
    justify-content: center;
}

/* =========================================
   19. Conditional Prices Module
   ========================================= */

/* --- Modal Layout (Add Condition) --- */
.bkntc-cp-add-condition-form {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.bkntc-cp-add-condition-form .fs-modal-body-inner {
    padding-bottom: 1rem;
}

/* Ensure modal content takes full height and scrolls internally */
#addConditionForm .fs-modal-content {
    display: flex;
    flex-direction: column;
    max-height: 85vh;
    /* Prevent modal from growing beyond viewport */
}

#addConditionForm .fs-modal-body {
    flex: 1 1 auto;
    overflow-y: auto;
    /* Scrollable body */
    min-height: 0;
    /* Flexbox scrolling fix */
}

#addConditionForm .fs-modal-footer {
    flex: 0 0 auto;
    /* Fixed footer */
    z-index: 10;
    position: relative;
    background: #fff;
    border-top: 1px solid var(--bk-border);
}


/* --- Form Grid Layout --- */
.bkntc-cp-add-condition-form .form-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
    gap: 0.875rem 1.125rem;
}

.bkntc-cp-add-condition-form .form-group {
    margin-bottom: 0.25rem;
    position: relative;
}

.bkntc-cp-add-condition-form label {
    color: var(--bk-text-primary);
    font-weight: 600;
    margin-bottom: 0.375rem;
    display: block;
}

/* Ensure Bootstrap columns fill the Grid tracks */
.bkntc-cp-add-condition-form .form-row>[class*="col-"] {
    max-width: 100%;
    width: 100%;
    padding-left: 0;
    padding-right: 0;
    flex: none;
    /* Reset flex-basis if any */
}

/* --- Color Picker Circle --- */
.bkntc-cp-add-condition-form .condition_color {
    border: 1px solid var(--bk-border);
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    position: absolute;
    right: 0.75rem;
    top: 2rem;
    /* Centers vertically relative to input height */
    cursor: pointer;
    z-index: 5;
    box-shadow: var(--bk-shadow-soft);
}

/* --- Dynamic Conditions Group --- */
.group_conditions .form-row.condition {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.5rem;
    border: 1px dashed var(--bk-border);
    padding: 1rem;
    border-radius: var(--bk-radius-box);
    background: var(--bk-base-200);
    position: relative;
    margin-bottom: 0.75rem;
}

.group_conditions .form-row.condition .form-group {
    flex: 1;
    min-width: 10rem;
    margin-bottom: 0;
}

/* Delete Button */
.row_actions {
    position: absolute;
    right: -0.625rem;
    top: -0.625rem;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 0.125rem 0.3125rem rgba(0, 0, 0, 0.1);
    width: 1.5rem;
    height: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 5;
    border: 1px solid var(--bk-border);
}

.delete_condition_row {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    opacity: 0.7;
    transition: opacity 0.2s;
}

.delete_condition_row:hover {
    opacity: 1;
}

/* And/Or Switch */
.and_or_condition {
    margin: 0.625rem 0;
    text-align: center;
}

.condition_and_or_select {
    width: auto;
    min-width: 6.25rem;
    font-weight: 600;
    color: var(--bk-primary);
    margin: 0 auto;
}

/* --- Conditional Prices Color Panel (Global) --- */
#condition_color_panel {
    position: absolute;
    /* Fixed to ensure it floats above everything */
    z-index: 1060;
    /* Higher than modal */
    background: var(--bk-surface, #ffffff);
    border-radius: var(--bk-radius-box);
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.15);
    border: var(--bk-border-width) solid var(--bk-border);
    padding: 0;
    display: none;
    width: 18rem;
}

#condition_color_panel .fs-popover-title {
    padding: 1rem;
    border-bottom: var(--bk-border-width) solid var(--bk-border);
    font-weight: 600;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: var(--bk-text-primary);
}

#condition_color_panel .fs-popover-content {
    padding: 1rem;
}

#condition_color_panel .close-popover-btn {
    width: 1.5rem;
    height: 1.5rem;
    cursor: pointer;
    opacity: 0.6;
    transition: opacity 0.2s;
}

#condition_color_panel .close-popover-btn:hover {
    opacity: 1;
}

.fs-modal .fs-condition-colors-line,
#condition_color_panel .fs-condition-colors-line {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

#condition_color_panel .color-rounded {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    cursor: pointer;
    position: relative;
    border: 0.125rem solid transparent;
    transition: transform 0.1s;
}

#condition_color_panel .color-rounded:hover {
    transform: scale(1.1);
}

#condition_color_panel .selected-color.color-rounded {
    border-color: var(--bk-text-primary);
}

/* Tick mark for selected color */
#condition_color_panel .selected-color.color-rounded::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 0.375rem;
    height: 0.625rem;
    border: solid #fff;
    border-width: 0 0.125rem 0.125rem 0;
    transform: translate(-50%, -60%) rotate(45deg);
}

#condition_color_panel .color-r-1 {
    background: #53d56c;
}

#condition_color_panel .color-r-2 {
    background: #26c0d6;
}

#condition_color_panel .color-r-3 {
    background: #fd9b78;
}

#condition_color_panel .color-r-4 {
    background: #cc65aa;
}

#condition_color_panel .color-r-5 {
    background: #2078fa;
}

#condition_color_panel .color-r-6 {
    background: #947bbf;
}

#condition_color_panel .color-r-7 {
    background: #c9c2b8;
}

#condition_color_panel .color-r-8 {
    background: #527dde;
}

#condition_color_panel .color-r-9 {
    background: #425a64;
}

#condition_color_panel .color-r-10 {
    background: #ffbb44;
}

#condition_color_panel .fs-popover-footer {
    padding: 1rem;
    border-top: var(--bk-border-width) solid var(--bk-border);
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
}

/* --- Data Table Overrides (from index.css) --- */
.bkntc-cp-table-wrapper .fs_data_table_wrapper,
.bkntc-cp-table-wrapper .fs_data_table_wrapper.table-responsive {
    overflow: visible;
    /* Allow dropdowns to overflow */
}

/* Ensure dropdowns inside table cells appear on top */
.bkntc-cp-table-wrapper .dropdown-menu {
    transform: translate3d(-3.75rem, 2.875rem, 0);
    z-index: 9999;
}


/* --- Ported from conditions.css --- */

/* Condition Rows */
.fs-modal .bordered_row {
    position: relative;
    padding: 1.125rem 1.125rem 0.625rem;
    margin-bottom: 1.125rem;
    min-height: 7.1875rem;
    border: 1px dashed var(--bk-border);
    border-radius: var(--bk-radius-box);
    background: var(--bk-surface);
    box-shadow: none;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(13.75rem, 1fr));
    gap: 0.75rem 1rem;
}

.fs-modal .bordered_row[data-active="0"] {
    opacity: 0.5;
}

.fs-modal .bordered_row .row_actions {
    position: absolute;
    display: flex;
    flex-direction: column;
    height: 1.25rem;
    right: -1.25rem;
    /* Adjusted for rem */
    top: 0;
    bottom: 0;
    margin: auto;
    opacity: 0;
    transition: all 0.5s;
    background: none;
    /* Reset from previous generic .row_actions if needed */
    box-shadow: none;
    border: none;
    width: auto;
}

.fs-modal .bordered_row:hover .row_actions {
    opacity: 1;
}

.fs-modal .bordered_row .delete_condition_row {
    width: 1.25rem;
    height: 1.25rem;
    margin-top: 0.3125rem;
    cursor: pointer;
    opacity: 1;
    /* Reset */
    filter: none;
    /* Just in case */
}

/* Select2 Overrides for Conditions */
.group_conditions .select2-selection--multiple {
    min-height: 6.875rem;
    max-height: 13.75rem;
    padding: 0.625rem;
    display: flex;
    align-items: flex-start;
    overflow: hidden;
}

.group_conditions .select2-selection--multiple .select2-selection__rendered {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    align-content: flex-start;
    gap: 0.375rem 0.625rem;
    width: 100%;
    padding: 0;
    min-height: 100%;
    max-height: 12.5rem;
    overflow-y: auto;
    overflow-x: hidden;
}

.group_conditions .select2-selection--multiple .select2-selection__choice {
    margin: 0;
    display: inline-flex;
    align-items: center;
}

.group_conditions .select2-selection--multiple .select2-search--inline {
    padding: 0;
}

.group_conditions .select2-selection--multiple .select2-search__field {
    height: 1.75rem;
    line-height: 1.75rem;
    padding: 0;
    min-width: 7.5rem;
}

.group_conditions .new_condition_btn {
    border-radius: var(--bk-radius-field);
    background: var(--bk-accent-500);
    border-color: var(--bk-accent-500);
    padding: 0.625rem 1rem;
    font-weight: 600;
}

.group_conditions .new_condition_btn:hover,
.group_conditions .new_condition_btn:focus {
    background: var(--bk-accent-600);
    border-color: var(--bk-accent-600);
}

.condition_tabs_content .tab-pane>.col-md-12 label {
    font-weight: 700;
    color: var(--bk-text-primary);
}

.condition_tabs_content .tab-pane>.col-md-12 {
    margin-bottom: 0.5rem;
}

/* =========================================
   Section 17: Custom Forms Editor Module
   ========================================= */

/* 17.1 Main Container */
.bkntc-customforms-edit {
    background: var(--bk-surface);
    min-height: 100vh;
}

/* 17.2 Onboarding Rating Modal - Hidden by Default */
.bkntc-customforms-edit .onboarding-rating {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: var(--bk-surface);
    border-radius: var(--bk-radius-box);
    box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.15);
    padding: 1.5rem;
    z-index: 10000;
    max-width: 25rem;
    width: 90%;
    border: var(--bk-border-width) solid var(--bk-border);
}

.bkntc-customforms-edit .onboarding-rating.active {
    display: block;
}

.bkntc-customforms-edit .onboard-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: var(--bk-border-width) solid var(--bk-border);
}

.bkntc-customforms-edit .onboard-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--bk-text-primary);
    margin: 0;
}

.bkntc-customforms-edit .close-onboarding {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0.25rem;
    opacity: 0.7;
    transition: opacity var(--bk-transition);
}

.bkntc-customforms-edit .close-onboarding:hover {
    opacity: 1;
}

.bkntc-customforms-edit .star-rating {
    display: flex;
    gap: 0.25rem;
    font-size: 1.5rem;
}

.bkntc-customforms-edit .star-rating .star {
    cursor: pointer;
    color: var(--bk-border-strong);
    transition: color var(--bk-transition);
}

.bkntc-customforms-edit .star-rating .star:hover,
.bkntc-customforms-edit .star-rating .star.active {
    color: var(--bk-warning);
}

.bkntc-customforms-edit .one-star-rate-btn,
.bkntc-customforms-edit .five-star-rate-btn {
    background: transparent;
    border: var(--bk-border-width) solid var(--bk-border);
    padding: 0.375rem 0.75rem;
    border-radius: var(--bk-radius-field);
    font-size: 0.75rem;
    cursor: pointer;
    transition: all var(--bk-transition);
}

.bkntc-customforms-edit .one-star-rate-btn:hover,
.bkntc-customforms-edit .five-star-rate-btn:hover {
    background: var(--bk-base-200);
    border-color: var(--bk-border-strong);
}

.bkntc-customforms-edit .comment-section {
    margin-top: 1rem;
}

.bkntc-customforms-edit .comment-section h5 {
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.bkntc-customforms-edit .comment-section h5 span {
    font-weight: 400;
    color: var(--bk-text-muted);
}

.bkntc-customforms-edit .comment-section textarea {
    width: 100%;
    min-height: 5rem;
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid var(--bk-border);
    padding: 0.75rem;
    font-size: 0.875rem;
    resize: vertical;
    margin-bottom: 0.75rem;
}

.bkntc-customforms-edit .send-comment-btn {
    background: var(--bk-primary-500);
    color: var(--bk-primary-content);
    border: none;
    padding: 0.5rem 1rem;
    border-radius: var(--bk-radius-field);
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: background var(--bk-transition);
}

.bkntc-customforms-edit .send-comment-btn:hover {
    background: var(--bk-primary-600);
}

/* 17.3 Header Bar */
.bkntc-customforms-edit .m_header {
    background: var(--bk-surface);
    padding: 1rem 1.5rem;
    border-bottom: var(--bk-border-width) solid var(--bk-border);
    margin: 0 -1.5rem;
}

.bkntc-customforms-edit .m_head_title {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--bk-text-primary);
    margin-bottom: 0.5rem;
}

@media (min-width: 48rem) {
    .bkntc-customforms-edit .m_head_title {
        margin-bottom: 0;
    }
}

.bkntc-customforms-edit .m_head_actions {
    gap: 0.5rem;
    margin-top: 0.75rem;
}

@media (min-width: 48rem) {
    .bkntc-customforms-edit .m_head_actions {
        margin-top: 0;
    }
}

/* 17.3.1 Header Form Inputs */
.bkntc-customforms-edit .form-header-grid {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    width: 100%;
}

@media (min-width: 48rem) {
    .bkntc-customforms-edit .form-header-grid {
        flex-direction: row;
        align-items: center;
    }

    /* 17.3.1 Header Form Inputs */
    .bkntc-customforms-edit .m_header>.d-flex {
        align-items: center;
    }

    .bkntc-customforms-edit .m_head_title {
        margin-right: 1.5rem;
        white-space: nowrap;
    }

    /* New Class-based targeting: No !important needed for max-width */
    .bkntc-customforms-edit .form-inputs-wrapper {
        margin-right: 2rem;
        /* allow it to grow naturally */
        flex-grow: 1;
    }

    .bkntc-customforms-edit .form-header-grid {
        display: flex;
        gap: 1rem;
        width: 100%;
        align-items: center;
    }

    .bkntc-customforms-edit .form-name-container {
        flex: 0 0 18rem;
        /* Fixed width for name (~288px) */
    }

    .bkntc-customforms-edit .service-container {
        flex: 1;
        /* grow to fill space */
        min-width: 0;
        /* prevent overflow */
    }

    /* Force TomSelect/Select to take full width of the container */
    .bkntc-customforms-edit .service-container .ts-wrapper {
        width: 100%;
    }

    .bkntc-customforms-edit .m_header #input_form_name {
        min-height: 2.5rem;
        font-size: 0.875rem;
        border-radius: var(--bk-radius-field);
        border: var(--bk-border-width) solid var(--bk-border);
    }

    .bkntc-customforms-edit .m_header .service-container .ts-wrapper .ts-control {
        min-height: 2.5rem;
        border-radius: var(--bk-radius-field);
    }

    /* Restore Stacked Layout for Mobile */
    @media (max-width: 48rem) {
        .bkntc-customforms-edit .form-header-grid {
            flex-direction: column;
            align-items: stretch;
            gap: 0.5rem;
        }

        .bkntc-customforms-edit .form-name-container,
        .bkntc-customforms-edit .service-container {
            flex: auto;
            width: 100%;
        }

        .bkntc-customforms-edit .form-inputs-wrapper {
            margin-right: 0;
        }
    }

    /* 17.4 Separator */
    .bkntc-customforms-edit .fs_separator {
        height: var(--bk-border-width);
        background: var(--bk-border);
        margin: 0 -1.5rem;
    }

    /* 17.5 Portlet Cards */
    .bkntc-customforms-edit .fs_portlet {
        background: var(--bk-surface);
        border: var(--bk-border-width) solid var(--bk-border);
        border-radius: var(--bk-radius-box);
        box-shadow: var(--bk-shadow-soft);
        overflow: hidden;
    }

    .bkntc-customforms-edit .fs_portlet_title {
        font-size: 0.875rem;
        font-weight: 600;
        color: var(--bk-text-primary);
        padding: 0.875rem 1rem;
        background: var(--bk-base-200);
        border-bottom: var(--bk-border-width) solid var(--bk-border);
        margin: 0;
    }

    .bkntc-customforms-edit .fs_portlet_content {
        padding: 1rem;
    }

    /* 17.6 Elements Grid (Left Panel) */
    .bkntc-customforms-edit .form-input-elements {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 0.75rem;
        padding: 0;
        margin: 0;
    }

    .bkntc-customforms-edit .formbuilder_element {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 0.5rem;
        padding: 1.5rem 1rem;
        cursor: grab;
        border: var(--bk-border-width) solid var(--bk-border);
        border-radius: var(--bk-radius-box);
        transition: all var(--bk-transition);
        font-size: 0.875rem;
        font-weight: 500;
        color: var(--bk-text-secondary);
        background: var(--bk-surface);
        box-sizing: border-box;
        text-align: center;
        min-height: 7rem;
        box-shadow: var(--bk-shadow-soft);
    }

    .bkntc-customforms-edit .formbuilder_element i {
        font-size: 1.75rem;
        color: var(--bk-primary-500);
        width: auto;
        flex-shrink: 0;
        margin-bottom: 0.25rem;
    }

    .bkntc-customforms-edit .formbuilder_element span {
        white-space: normal;
        overflow: visible;
        line-height: 1.2;
    }

    .bkntc-customforms-edit .formbuilder_element:hover {
        background: var(--bk-primary-100);
        border-color: var(--bk-primary-500);
        color: var(--bk-primary-600);
        box-shadow: var(--bk-shadow-hover);
        transform: translateY(-0.125rem);
    }

    .bkntc-customforms-edit .formbuilder_element:hover i {
        color: var(--bk-primary-600);
    }

    .bkntc-customforms-edit .formbuilder_element:active {
        cursor: grabbing;
        transform: translateY(0);
    }

    /* jQuery UI Drag Helper Box */
    .bkntc-customforms-edit .helper_box,
    .helper_box {
        background: var(--bk-accent-500);
        color: var(--bk-accent-content);
        padding: 0.75rem 1rem;
        border-radius: var(--bk-radius-field);
        font-size: 0.875rem;
        font-weight: 500;
        box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.2);
        white-space: nowrap;
        z-index: 10000;
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }

    /* 17.7 Form Builder Dropzone (Center Panel) */
    .bkntc-customforms-edit #formbuilder_area {
        min-height: 20rem;
        background: var(--bk-base-200);
        border: 0.125rem dashed var(--bk-border-strong);
        border-radius: var(--bk-radius-field);
        padding: 1rem;
        display: flex;
        flex-wrap: wrap;
        align-content: flex-start;
        gap: 0.5rem;
    }

    .bkntc-customforms-edit #formbuilder_area:empty::before {
        content: "Drag and drop elements here";
        color: var(--bk-text-muted);
        font-size: 0.875rem;
        width: 100%;
        text-align: center;
        padding: 3rem 0;
    }

    .bkntc-customforms-edit #formbuilder_area .form_element {
        background: var(--bk-surface);
        border: var(--bk-border-width) solid var(--bk-border);
        border-radius: var(--bk-radius-field);
        padding: 0.75rem;
        position: relative;
        cursor: pointer;
        transition: all var(--bk-transition);
    }

    .bkntc-customforms-edit #formbuilder_area .form_element:hover {
        border-color: var(--bk-accent-500);
        box-shadow: 0 0 0 0.125rem rgba(255, 111, 0, 0.1);
    }

    .bkntc-customforms-edit #formbuilder_area .form_element.ui-sortable-helper {
        box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.15);
    }

    .bkntc-customforms-edit #formbuilder_area .form_element.selected {
        border-color: var(--bk-accent-500);
        box-shadow: 0 0 0 0.1875rem rgba(255, 111, 0, 0.15);
    }

    .bkntc-customforms-edit #formbuilder_area .form_element label[data-required="true"]::after {
        content: "*";
        color: var(--bk-error);
        margin-left: 0.25rem;
        font-weight: 600;
    }

    .bkntc-customforms-edit .remove-element-btn {
        position: absolute;
        top: 0.25rem;
        right: 0.25rem;
        width: 1.5rem;
        height: 1.5rem;
        border-radius: 50%;
        background: var(--bk-error-soft);
        border: none;
        color: var(--bk-error);
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        opacity: 0;
        transition: opacity var(--bk-transition);
        font-size: 0.875rem;
    }

    .bkntc-customforms-edit #formbuilder_area .form_element:hover .remove-element-btn {
        opacity: 1;
    }

    .bkntc-customforms-edit .remove-element-btn:hover {
        background: var(--bk-error);
        color: var(--bk-error-content);
    }

    /* 17.8 Options Panel (Right Panel) */
    .bkntc-customforms-edit #formbuilder_options .form-row {
        margin-bottom: 0.75rem;
    }

    .bkntc-customforms-edit #formbuilder_options .form-row.hidden {
        display: none;
    }

    .bkntc-customforms-edit #formbuilder_options label {
        font-size: 0.8125rem;
        font-weight: 500;
        color: var(--bk-text-secondary);
        margin-bottom: 0.25rem;
    }

    .bkntc-customforms-edit #formbuilder_options .form-control {
        min-height: 2.5rem;
        font-size: 0.875rem;
    }

    .bkntc-customforms-edit #formbuilder_options .form-control-plaintext {
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }

    .bkntc-customforms-edit #formbuilder_options .form-control-plaintext input[type="checkbox"] {
        margin: 0;
    }

    .bkntc-customforms-edit #formbuilder_options .form-control-plaintext label {
        margin: 0;
        font-weight: 400;
    }

    /* 17.9 Choices Area */
    .bkntc-customforms-edit #choices_area {
        display: flex;
        flex-direction: column;
        gap: 0.5rem;
        margin-bottom: 0.5rem;
    }

    .bkntc-customforms-edit #choices_area .choice-item {
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }

    .bkntc-customforms-edit #choices_area .choice-item input {
        flex: 1;
        min-height: 2.25rem;
    }

    .bkntc-customforms-edit #choices_area .choice-item .remove-choice-btn {
        width: 1.75rem;
        height: 1.75rem;
        border-radius: var(--bk-radius-field);
        background: var(--bk-error-soft);
        border: none;
        color: var(--bk-error);
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }

    .bkntc-customforms-edit #formbuilder_options_add_new_choice {
        display: inline-flex;
        align-items: center;
        gap: 0.375rem;
        color: var(--bk-accent-500);
        cursor: pointer;
        font-size: 0.8125rem;
        font-weight: 500;
        transition: color var(--bk-transition);
    }

    .bkntc-customforms-edit #formbuilder_options_add_new_choice:hover {
        color: var(--bk-accent-600);
    }

    /* 17.10 Header Actions Buttons */
    .bkntc-customforms-edit .m_head_actions .btn {
        font-size: 0.75rem;
        letter-spacing: 0.02em;
        padding: 0.625rem 1rem;
    }

    .bkntc-customforms-edit .m_head_actions .btn-success {
        background: var(--bk-accent-500);
        border-color: var(--bk-accent-500);
        color: var(--bk-accent-content);
    }

    .bkntc-customforms-edit .m_head_actions .btn-success:hover {
        background: var(--bk-accent-600);
        border-color: var(--bk-accent-600);
    }

    .bkntc-customforms-edit .m_head_actions .btn-secondary {
        background: var(--bk-surface);
        border-color: var(--bk-border);
        color: var(--bk-text-primary);
    }

    .bkntc-customforms-edit .m_head_actions .btn-secondary:hover {
        background: var(--bk-base-200);
        border-color: var(--bk-border-strong);
    }

    /* 17.11 Service Container TomSelect */
    .bkntc-customforms-edit .service-container .ts-wrapper .ts-control {
        min-height: 2.5rem;
        border-radius: var(--bk-radius-field);
    }

    /* 17.12 Responsive Layout */
    @media (max-width: 75rem) {

        .bkntc-customforms-edit .form-input-container,
        .bkntc-customforms-edit .options-container {
            order: 2;
        }

        .bkntc-customforms-edit .form-builder-container {
            order: 1;
        }
    }

    @media (max-width: 48rem) {
        .bkntc-customforms-edit .m_header {
            padding: 1rem;
        }

        .bkntc-customforms-edit .form-input-elements {
            grid-template-columns: 1fr;
        }

        .bkntc-customforms-edit #formbuilder_area {
            min-height: 15rem;
        }
    }
}

/* 17.7 Conditions Modal */
.bkntc-conditions-modal .fs-modal-body {
    padding: 1.5rem;
}

.bkntc-conditions-modal .nav-tabs {
    border-bottom: 2px solid var(--bk-base-200);
}

.bkntc-conditions-modal .nav-link {
    color: var(--bk-text-secondary);
    font-weight: 500;
    padding: 0.75rem 1rem;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
}

.bkntc-conditions-modal .nav-link.active {
    color: var(--bk-primary-500);
    border-bottom-color: var(--bk-primary-500);
    background: transparent;
}

.bkntc-conditions-modal .bordered_row {
    border: 1px dashed var(--bk-border-strong);
    background: var(--bk-base-200);
    border-radius: var(--bk-radius-box);
    padding: 1rem;
    margin-bottom: 1rem;
    position: relative;
}

.bkntc-conditions-modal .row_actions {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
}

.bkntc-conditions-modal .delete_condition_row,
.bkntc-conditions-modal .delete_do_row {
    background: transparent;
    border: none;
    color: var(--bk-text-muted);
    cursor: pointer;
    transition: color 0.2s;
}

.bkntc-conditions-modal .delete_condition_row:hover,
.bkntc-conditions-modal .delete_do_row:hover {
    color: var(--bk-error);
}

.bkntc-conditions-modal .fs-modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: 1rem;
    padding: 1rem 1.5rem;
    background: var(--bk-base-100);
    border-top: 1px solid var(--bk-border);
}

/* 17.7.1 Rewrite Conditions Grid System (Mobile First) */
.bkntc-conditions-modal .bkntc-and-or-wrapper,
.bkntc-conditions-modal .bkntc-condition-grid {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    width: 100%;
}

.bkntc-conditions-modal .bkntc-condition-col,
.bkntc-conditions-modal .bkntc-condition-col-sm {
    width: 100%;
}

/* Tablet/Desktop Grid */
@media (min-width: 48rem) {
    .bkntc-conditions-modal .bkntc-condition-grid {
        flex-direction: row;
        align-items: flex-end;
        /* Align bottom so inputs line up if labels vary */
    }

    .bkntc-conditions-modal .bkntc-condition-col {
        flex: 1;
        min-width: 0;
        /* Prevent overflow */
    }

    .bkntc-conditions-modal .bkntc-condition-col-sm {
        max-width: 8rem;
        /* Small width for AND/OR selector */
    }
}

/* Fix Inputs inside modal */
.bkntc-conditions-modal .form-control,
.bkntc-conditions-modal select.form-control,
.bkntc-conditions-modal .select2-container .select2-selection--single,
.bkntc-conditions-modal .select2-container--default .select2-selection--multiple {
    height: 2.75rem;
    /* Standardize height */
    min-height: 2.75rem;
    border-radius: var(--bk-radius-field);
    border: 1px solid var(--bk-border);
    display: flex;
    align-items: center;
}

/* Fix Select2 padding */
.bkntc-conditions-modal .select2-container .select2-selection--single .select2-selection__rendered {
    line-height: normal;
    padding-left: 0.75rem;
    padding-right: 2rem;
}

.bkntc-conditions-modal .select2-container .select2-selection--single .select2-selection__arrow {
    height: 2.6rem;
    right: 0.5rem;
}

/* Fix Label colors */
.bkntc-conditions-modal label {
    margin-bottom: 0.5rem;
    color: var(--bk-text-secondary);
    font-size: 0.875rem;
    font-weight: 500;
}

/* 17.7.2 Refined Grid Proportions & Visuals */

/* Icon Color Override */
.bkntc-conditions-modal .title-icon {
    background: var(--bk-base-200);
    color: var(--bk-accent-500);
}

/* Save Button Fix */
.bkntc-conditions-modal #save_conditions_btn {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    font-weight: 600;
}

/* Desktop Grid Proportions (account for flex gap) */
@media (min-width: 48rem) {
    /* "When" row: Field | Operator | Value | Delete */
    .bkntc-conditions-modal .row_condition .bkntc-col-field {
        flex: 35 1 0;
    }

    .bkntc-conditions-modal .row_condition .bkntc-col-operator {
        flex: 20 1 0;
    }

    .bkntc-conditions-modal .row_condition .bkntc-col-value {
        flex: 40 1 0;
    }

    .bkntc-conditions-modal .row_condition .bkntc-col-delete {
        flex: 0 0 2.75rem;
        padding-bottom: 0.75rem;
        padding-right: 0.5rem;
    }

    /* "Do" row: Action | Field | Value | Delete */
    .bkntc-conditions-modal .row_do .bkntc-col-action {
        flex: 35 1 0;
    }

    .bkntc-conditions-modal .row_do .bkntc-col-field {
        flex: 35 1 0;
    }

    .bkntc-conditions-modal .row_do .bkntc-col-value {
        flex: 25 1 0;
    }

    .bkntc-conditions-modal .row_do .bkntc-col-delete {
        flex: 0 0 2.75rem;
        padding-bottom: 0.75rem;
        padding-right: 0.5rem;
    }
}

/* Ensure hidden fields don't break layout */
.bkntc-conditions-modal .hidden {
    display: none !important;
}

/* 17.7.3 Fix Delete Button & TomSelect Interactions */

/* Delete Button Col */
.bkntc-conditions-modal .bkntc-col-delete {
    display: flex;
    justify-content: flex-end;
    /* Align right */
    align-items: center;
    padding-bottom: 0.5rem;
    /* Align with input center */
    padding-right: 0.25rem;
}

/* Make delete action more prominent and keep it inside the row */
.bkntc-conditions-modal .bkntc-col-delete .condition-action-btn {
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border-radius: var(--bk-radius-field);
    border: 1px solid var(--bk-border);
    background: var(--bk-base-100);
    color: var(--bk-text-secondary);
    box-shadow: var(--bk-shadow-soft);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background var(--bk-transition), box-shadow var(--bk-transition), border-color var(--bk-transition), color var(--bk-transition);
}

.bkntc-conditions-modal .bkntc-col-delete .condition-action-btn:hover {
    background: var(--bk-error-soft);
    border-color: var(--bk-error);
    color: var(--bk-error);
}

.bkntc-conditions-modal .bkntc-col-delete .condition-action-btn:focus-visible {
    outline: none;
    box-shadow: var(--bk-focus-ring);
}

.bkntc-conditions-modal .bkntc-col-delete .condition-action-btn i {
    font-size: 1.125rem;
    line-height: 1;
}

/* TomSelect Fixes for Modal */
.bkntc-conditions-modal .ts-control {
    height: 2.75rem;
    min-height: 2.75rem;
    border-radius: var(--bk-radius-field);
    border: 1px solid var(--bk-border);
    display: flex;
    align-items: center;
    padding-left: 0.75rem;
    background: #fff;
}

.bkntc-conditions-modal .ts-control>.items {
    display: flex !important;
    align-items: center;
    flex-wrap: nowrap;
}

.bkntc-conditions-modal .ts-wrapper.multi .ts-control>div {
    margin: 0 3px 0 0;
    /* Tighten up multi-select tags */
}

/* Z-Index Fix for Dropdowns in Modal */
.bkntc-conditions-modal .ts-dropdown {
    z-index: 1060 !important;
    /* Above Bootstrap Modal (1050) */
}

/* Service phases (service modal) */
.fs-modal .bkntc-service-phases-editor .bkntc-service-phases-timeline {
    margin-top: 0.75rem;
}

.fs-modal .bkntc-service-phases-editor .bkntc-service-phases-timeline-bar-wrap {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    padding: 0;
}

.fs-modal .bkntc-service-phases-editor .bkntc-service-phases-timeline-bar {
    height: 2.875rem;
    border-radius: var(--bk-radius-box);
    overflow: hidden;
    background: var(--bk-base-200);
}

.fs-modal .bkntc-service-phases-editor .bkntc-service-phases-segment {
    padding: 0;
    min-width: 0;
}

.fs-modal .bkntc-service-phases-editor .bkntc-service-phases-timeline-marker {
    --bkntc-marker-width: 0.125rem;
    --bkntc-marker-edge: calc((var(--bkntc-marker-width) / 2) + var(--bk-border-width));
    top: 0;
    bottom: 0;
    width: var(--bkntc-marker-width);
    border-radius: 0.125rem;
    left: clamp(
        var(--bkntc-marker-edge),
        calc(var(--bkntc-marker-pos, 0) * 100%),
        calc(100% - var(--bkntc-marker-edge))
    );
    transform: translateX(-50%);
    background: var(--bk-base-100);
    box-shadow: 0 0 0 var(--bk-border-width) rgba(15, 15, 15, 0.35);
    z-index: 2;
}

.fs-modal .bkntc-service-phases-editor .bkntc-service-phases-timeline-marker.is-at-start {
    left: 0;
    transform: translateX(0);
}

.fs-modal .bkntc-service-phases-editor input[type="number"] {
    -moz-appearance: textfield;
    appearance: textfield;
}

.fs-modal .bkntc-service-phases-editor input[type="number"]::-webkit-outer-spin-button,
.fs-modal .bkntc-service-phases-editor input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* =========================================
   Tenant Directory (Admin) – Landing page editor
   Scoped to `.bkntc-td-tenant-directory`
   ========================================= */

.bkntc-td-tenant-directory .gap-6 {
    gap: 0.375rem !important;
}

.bkntc-td-tenant-directory .gap-8 {
    gap: 0.5rem !important;
}

.bkntc-td-tenant-directory .gap-10 {
    gap: 0.625rem !important;
}

.bkntc-td-tenant-directory .gap-12 {
    gap: 0.75rem !important;
}

.bkntc-td-tenant-directory .gap-16 {
    gap: 1rem !important;
}

.bkntc-td-tenant-directory .gap-24 {
    gap: 1.5rem !important;
}

.bkntc-td-tenant-directory .gap-32 {
    gap: 2rem !important;
}

.bkntc-td-tenant-directory .landing-page-section {
    padding-inline: var(--bk-spacing-md);
    padding-bottom: var(--bk-spacing-xl);
}

.bkntc-td-tenant-directory .landing-page-wrapper {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--bk-spacing-lg);
    margin-top: var(--bk-spacing-lg);
}

@media (min-width: 67.5rem) {
    .bkntc-td-tenant-directory .landing-page-wrapper {
        grid-template-columns: minmax(0, 2.4fr) minmax(0, 1fr);
    }
}

.bkntc-td-tenant-directory .landing-page-wrapper > div {
    background: var(--bk-surface);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    box-shadow: var(--bk-shadow-soft);
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
    max-height: none;
}

@media (min-width: 67.5rem) {
    .bkntc-td-tenant-directory .landing-page-wrapper > div {
        max-height: calc(100vh - 13.875rem);
    }
}

.bkntc-td-tenant-directory .landing-page-content,
.bkntc-td-tenant-directory .log-messages {
    flex: 1 1 auto;
    min-height: 0;
    padding: var(--bk-spacing-lg);
}

.bkntc-td-tenant-directory .landing-page-content {
    padding-right: var(--bk-spacing-md);
}

.bkntc-td-tenant-directory .page-status-wrapper header {
    padding: var(--bk-spacing-md) var(--bk-spacing-lg);
    border-bottom: var(--bk-border-width) solid var(--bk-border);
}

.bkntc-td-tenant-directory .page-status-wrapper header h3 {
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.25rem;
}

.bkntc-td-tenant-directory .landing-page-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.375rem 0.875rem;
    border-radius: var(--bk-radius-round);
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1;
    text-transform: capitalize;
    border: var(--bk-border-width) solid transparent;
}

.bkntc-td-tenant-directory .landing-page-status.draft {
    background: var(--bk-base-300);
    color: var(--bk-text-muted);
    border-color: rgba(107, 114, 128, 0.18);
}

.bkntc-td-tenant-directory .landing-page-status.pending {
    background: var(--bk-warning-soft);
    color: #b45309;
    border-color: rgba(255, 191, 15, 0.25);
}

.bkntc-td-tenant-directory .landing-page-status.rejected,
.bkntc-td-tenant-directory .landing-page-status.hidden {
    background: var(--bk-error-soft);
    color: #b91c1c;
    border-color: rgba(242, 65, 90, 0.25);
}

.bkntc-td-tenant-directory .landing-page-status.approved {
    background: var(--bk-success-soft);
    color: #047857;
    border-color: rgba(39, 190, 105, 0.2);
}

.bkntc-td-tenant-directory .td-location-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 0.75rem;
}

.bkntc-td-tenant-directory .td-location-card {
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    background: var(--bk-surface);
    padding: 1.375rem 1.5rem;
    box-shadow: var(--bk-shadow-soft);
    transition: border-color var(--bk-transition), box-shadow var(--bk-transition);
}

.bkntc-td-tenant-directory .td-location-card.has-server-error {
    border-color: rgba(255, 111, 0, 0.55);
    box-shadow: 0 0 0 0.1875rem rgba(255, 111, 0, 0.18);
}

.bkntc-td-tenant-directory .td-location-card-header h4 {
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.5rem;
}

.bkntc-td-tenant-directory .td-location-card-header .td-location-address {
    font-size: 0.75rem;
}

.bkntc-td-tenant-directory .td-location-card-header .td-location-actions a {
    color: var(--bk-primary-500);
    font-size: 0.75rem;
}

.bkntc-td-tenant-directory .td-location-card-header .td-location-actions a:hover {
    color: var(--bk-primary-600);
}

.bkntc-td-tenant-directory .td-location-card-header .td-location-slug-preview {
    font-size: 0.75rem;
    color: var(--bk-text-muted);
}

.bkntc-td-tenant-directory .td-location-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.25rem 0.625rem;
    border-radius: var(--bk-radius-round);
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1;
    text-transform: capitalize;
    border: var(--bk-border-width) solid transparent;
    background: var(--bk-base-300);
    color: var(--bk-text-muted);
}

.bkntc-td-tenant-directory .td-location-status-badge.status-approved {
    background: var(--bk-success-soft);
    color: #047857;
    border-color: rgba(39, 190, 105, 0.2);
}

.bkntc-td-tenant-directory .td-location-status-badge.status-rejected {
    background: var(--bk-error-soft);
    color: #b91c1c;
    border-color: rgba(242, 65, 90, 0.25);
}

.bkntc-td-tenant-directory .td-location-status-badge.status-pending {
    background: var(--bk-warning-soft);
    color: #b45309;
    border-color: rgba(255, 191, 15, 0.25);
}

.bkntc-td-tenant-directory .td-location-status-badge.status-hidden {
    background: var(--bk-base-300);
    color: var(--bk-text-muted);
    border-color: rgba(107, 114, 128, 0.18);
}

.bkntc-td-tenant-directory .td-location-collapse-btn {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-base-200);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: background var(--bk-transition), border-color var(--bk-transition);
}

.bkntc-td-tenant-directory .td-location-collapse-btn:hover {
    background: var(--bk-base-300);
    border-color: var(--bk-border-strong);
}

.bkntc-td-tenant-directory .td-location-collapse-btn img {
    width: 1rem;
    height: 1rem;
    transition: transform var(--bk-transition);
}

.bkntc-td-tenant-directory .td-location-card.is-expanded .td-location-collapse-btn img {
    transform: rotate(180deg);
}

.bkntc-td-tenant-directory .td-location-card-messages {
    margin-top: 0.75rem;
}

.bkntc-td-tenant-directory .td-location-compliance {
    margin-top: 1rem;
}

.bkntc-td-tenant-directory .td-location-compliance-item {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.25rem 0.5rem;
    border-radius: var(--bk-radius-round);
    font-size: 0.75rem;
    background: var(--bk-primary-100);
    border: var(--bk-border-width) solid rgba(35, 59, 77, 0.12);
    color: var(--bk-primary-600);
}

.bkntc-td-tenant-directory .td-location-compliance-item[title] {
    cursor: help;
}

.bkntc-td-tenant-directory .td-location-compliance-item.is-ok {
    background: var(--bk-success-soft);
    border-color: rgba(39, 190, 105, 0.2);
    color: #047857;
}

.bkntc-td-tenant-directory .td-location-compliance-item.is-missing {
    background: var(--bk-warning-soft);
    border-color: rgba(255, 191, 15, 0.25);
    color: #b45309;
}

.bkntc-td-tenant-directory .td-location-validation-errors,
.bkntc-td-tenant-directory .td-location-warning {
    margin-top: 0.75rem;
    padding: 0.625rem 0.75rem;
    border-radius: var(--bk-radius-box);
    background: var(--bk-warning-soft);
    border: var(--bk-border-width) solid rgba(255, 191, 15, 0.25);
    color: #7c4a02;
    font-size: 0.8125rem;
}

.bkntc-td-tenant-directory .td-location-validation-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.bkntc-td-tenant-directory .td-location-card-body {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: var(--bk-border-width) solid rgba(35, 59, 77, 0.08);
}

.bkntc-td-tenant-directory .td-location-field {
    margin-top: 1.25rem;
}

.bkntc-td-tenant-directory .td-location-field:first-of-type {
    margin-top: 1rem;
}

.bkntc-td-tenant-directory .td-location-field label {
    font-weight: 600;
    color: var(--bk-text-primary);
}

.bkntc-td-tenant-directory .td-location-field label span {
    color: var(--bk-error);
}

.bkntc-td-tenant-directory .td-location-gallery .td-gallery-item img {
    height: 7.5rem;
}

.bkntc-td-tenant-directory .td-location-map .bkntc-tenant-map-container {
    margin-top: 0.75rem;
    min-height: 13.75rem;
    border-radius: var(--bk-radius-box);
    overflow: hidden;
    border: var(--bk-border-width) solid rgba(35, 59, 77, 0.08);
    background: var(--bk-surface-muted);
}

.bkntc-td-tenant-directory .td-location-card-body .summernote {
    min-height: 10rem;
}

.bkntc-td-tenant-directory .td-location-map-popup {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    max-width: 11.25rem;
}

.bkntc-td-tenant-directory .td-location-map-popup .td-map-thumb {
    width: 100%;
    height: 5.625rem;
    overflow: hidden;
    border-radius: var(--bk-radius-field);
}

.bkntc-td-tenant-directory .td-location-map-popup .td-map-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--bk-radius-field);
}

.bkntc-td-tenant-directory .td-location-logo-field .td-location-logo {
    flex-wrap: wrap;
}

.bkntc-td-tenant-directory .td-location-logo-preview {
    width: 4.5rem;
    height: 4.5rem;
    border-radius: var(--bk-radius-box);
    background-color: var(--bk-base-200);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: var(--bk-border-width) solid rgba(35, 59, 77, 0.08);
}

.bkntc-td-tenant-directory .td-location-logo-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.bkntc-td-tenant-directory .td-location-logo-preview--empty img {
    width: 2.25rem;
    height: 2.25rem;
    object-fit: contain;
    opacity: 0.65;
}

.bkntc-td-tenant-directory .td-location-logo-actions .btn {
    min-width: 7.5rem;
}

.bkntc-td-tenant-directory .td-location-logo-toggle .form-control-checkbox {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding: 0.625rem 0.75rem;
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    background: var(--bk-surface);
}

.bkntc-td-tenant-directory .td-location-logo-toggle .form-control-checkbox > label {
    margin: 0;
}

/* Gallery */
.bkntc-td-tenant-directory .gallery-grid-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
    grid-auto-rows: 6.125rem;
    gap: 0.625rem;
    width: 100%;
}

.bkntc-td-tenant-directory .gallery-grid-container .grid-item {
    border-radius: var(--bk-radius-field);
    overflow: hidden;
    background: var(--bk-surface-muted);
}

.bkntc-td-tenant-directory .gallery-grid-container .grid-item > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.bkntc-td-tenant-directory #add-landing-image,
.bkntc-td-tenant-directory .td-add-location-image {
    height: 100%;
    border: 0.125rem dashed rgba(35, 59, 77, 0.14);
    border-radius: var(--bk-radius-field);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 0.5rem;
    color: var(--bk-primary-500);
    background: var(--bk-surface);
    cursor: pointer;
}

.bkntc-td-tenant-directory #add-landing-image svg path,
.bkntc-td-tenant-directory .td-add-location-image svg path {
    stroke: currentColor;
}

.bkntc-td-tenant-directory #add-landing-image svg path[fill],
.bkntc-td-tenant-directory .td-add-location-image svg path[fill] {
    fill: none;
}

.bkntc-td-tenant-directory #add-landing-image:hover,
.bkntc-td-tenant-directory .td-add-location-image:hover {
    border-color: rgba(35, 59, 77, 0.24);
    background: var(--bk-base-200);
}

.bkntc-td-tenant-directory .delete-landing-page-image {
    top: 0.375rem;
    right: 0.5rem;
    display: none;
}

.bkntc-td-tenant-directory .delete-landing-page-image img {
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 0.375rem;
}

.bkntc-td-tenant-directory .gallery-grid-container .grid-item:hover .delete-landing-page-image {
    display: block;
}

/* Contact details */
.bkntc-td-tenant-directory .contact-details-container {
    margin-bottom: 0.5rem;
}

.bkntc-td-tenant-directory .contact-detail {
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid var(--bk-border);
    padding: 0.625rem 0.75rem;
    background: var(--bk-surface);
}

.bkntc-td-tenant-directory .contact-detail.disabled,
.bkntc-td-tenant-directory .contact-detail.disabled input {
    background-color: var(--bk-base-200);
    color: var(--bk-text-muted);
}

.bkntc-td-tenant-directory .contact-detail img {
    width: 1.25rem;
    height: 1.25rem;
}

.bkntc-td-tenant-directory .contact-detail input {
    border: 0;
    background: transparent;
    font-size: 0.8125rem;
    line-height: 1.125rem;
    padding: 0;
}

.bkntc-td-tenant-directory .contact-detail input:focus {
    outline: none;
    box-shadow: none;
}

.bkntc-td-tenant-directory .add-contact-details-btn {
    padding: 0.625rem 1rem;
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid rgba(35, 59, 77, 0.12);
    background: rgba(35, 59, 77, 0.04);
    color: var(--bk-primary-500);
}

.bkntc-td-tenant-directory .add-contact-details-btn svg path {
    stroke: currentColor;
}

.bkntc-td-tenant-directory .add-contact-details-btn span {
    color: var(--bk-primary-500);
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.125rem;
}

.bkntc-td-tenant-directory .add-contact-details-btn:hover {
    background: var(--bk-primary-100);
    border-color: rgba(35, 59, 77, 0.18);
}

.bkntc-td-tenant-directory .add-contact-details-btn.disabled {
    cursor: not-allowed;
    background: var(--bk-base-200);
    border-color: rgba(107, 114, 128, 0.18);
    color: var(--bk-text-muted);
}

.bkntc-td-tenant-directory .add-contact-details-btn.disabled span {
    color: var(--bk-text-muted);
}

.bkntc-td-tenant-directory .add-contact-list {
    display: none;
    top: 100%;
    left: 0;
    margin-top: 0.5rem;
    padding: 0.5rem;
    background: var(--bk-surface);
    border-radius: var(--bk-radius-box);
    border: var(--bk-border-width) solid var(--bk-border);
    box-shadow: var(--bk-shadow-hover);
    width: 11.875rem;
    z-index: 1050;
}

.bkntc-td-tenant-directory .add-contact-list li {
    padding: 0.375rem 0.75rem;
    cursor: pointer;
    border-radius: var(--bk-radius-field);
}

.bkntc-td-tenant-directory .add-contact-list li > div {
    width: 1.5rem;
    height: 1.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.bkntc-td-tenant-directory .add-contact-list li > div img {
    width: 1.25rem;
    height: 1.25rem;
    display: block;
    object-fit: contain;
}

.bkntc-td-tenant-directory .add-contact-list li:hover {
    background: var(--bk-base-200);
}

/* Tenant Directory - Review request modal */
.modal .request-review-modal__header {
    padding: 1rem 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    border-bottom: var(--bk-border-width) solid rgba(35, 59, 77, 0.08);
    background: var(--bk-surface);
}

.modal .request-review-modal__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--bk-radius-field);
    background: var(--bk-accent-100);
    color: var(--bk-accent-500);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    font-size: 1.25rem;
}

.modal .request-review-modal__title {
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1.2;
    color: var(--bk-text-primary);
}

.modal .request-review-modal__close {
    width: 2.25rem;
    height: 2.25rem;
    margin-left: auto;
    border-radius: var(--bk-radius-field);
    background: var(--bk-surface-muted);
    border: var(--bk-border-width) solid rgba(35, 59, 77, 0.16);
    color: var(--bk-text-secondary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    cursor: pointer;
    flex: 0 0 auto;
    transition: background var(--bk-transition), border-color var(--bk-transition), color var(--bk-transition);
}

.modal .request-review-modal__close:hover {
    background: var(--bk-primary-100);
    color: var(--bk-primary-500);
    border-color: rgba(35, 59, 77, 0.22);
}

.modal .request-review-modal__body {
    padding: 1rem 1.5rem;
}

.modal .request-review-modal__body label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    color: var(--bk-text-primary);
    margin-bottom: 0.5rem;
}

.modal .request-review-modal__body label span {
    font-weight: 500;
    color: var(--bk-text-muted);
}

.modal .request-review-modal__body .help-icon {
    color: var(--bk-text-muted);
}

.modal .request-review-modal__footer {
    padding: 1rem 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    border-top: var(--bk-border-width) solid rgba(35, 59, 77, 0.08);
    background: var(--bk-surface);
}

/* Sortable */
.bkntc-td-tenant-directory .drag-over,
.bkntc-td-tenant-directory .sortable-ghost,
.bkntc-td-tenant-directory .sortable-contact-ghost {
    border: 0.125rem dashed rgba(13, 110, 253, 0.8) !important;
    background-color: rgba(13, 110, 253, 0.08) !important;
}

.bkntc-td-tenant-directory .sortable-contact-ghost {
    height: 2.625rem;
}

.bkntc-td-tenant-directory .sortable-ghost img,
.bkntc-td-tenant-directory .sortable-contact-ghost input,
.bkntc-td-tenant-directory .sortable-contact-ghost img {
    display: none;
}

.bkntc-td-tenant-directory .sortable-chosen {
    opacity: 0.6;
    transition: opacity 0.2s;
}

/* Schedule editor */
.bkntc-td-tenant-directory .bkntc-schedule-editor {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

.bkntc-td-tenant-directory .bkntc-schedule-editor .bkntc-schedule-day {
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    padding: 0.875rem;
    background: var(--bk-surface);
    display: flex;
    flex-direction: column;
}

.bkntc-td-tenant-directory .bkntc-schedule-editor .bkntc-schedule-day > .bkntc-schedule-day-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.bkntc-td-tenant-directory .bkntc-schedule-editor .bkntc-schedule-interval-list {
    margin-top: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.bkntc-td-tenant-directory .bkntc-schedule-editor .bkntc-schedule-interval {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.bkntc-td-tenant-directory .bkntc-schedule-editor .bkntc-schedule-interval input[type="time"] {
    flex: 1 1 calc(8ch + 2.5rem);
    min-width: calc(8ch + 2.5rem);
    width: auto;
    padding-inline: 0.5rem 2rem;
}

.bkntc-td-tenant-directory .bkntc-schedule-editor .bkntc-interval-separator {
    color: var(--bk-text-muted);
    flex: 0 0 auto;
}

.bkntc-td-tenant-directory .bkntc-schedule-editor .bkntc-remove-interval {
    border: 0;
    background: transparent;
    color: var(--bk-error);
    font-size: 1.125rem;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-height: 2.5rem;
    min-width: 2.5rem;
}

.bkntc-td-tenant-directory .bkntc-schedule-editor .bkntc-schedule-day.is-day-off .bkntc-schedule-interval-list {
    opacity: 0.6;
    pointer-events: none;
}

@media (min-width: 72rem) {
    .bkntc-td-tenant-directory .bkntc-schedule-editor {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.bkntc-td-tenant-directory .bkntc-schedule-editor .bkntc-remove-interval::before {
    content: "\00d7";
}

/* Logs */
.bkntc-td-tenant-directory .log {
    border-radius: var(--bk-radius-box);
    background-color: var(--bk-base-200);
    border: var(--bk-border-width) solid rgba(35, 59, 77, 0.08);
    padding: 0.875rem 1rem;
}

.bkntc-td-tenant-directory .log-info {
    padding-block: 0.375rem 0.625rem;
    border-bottom: var(--bk-border-width) solid rgba(35, 59, 77, 0.08);
}

.bkntc-td-tenant-directory .clock-icon {
    width: 1rem;
    height: 1rem;
    margin-right: 0.25rem;
}

.bkntc-td-tenant-directory .color-gray {
    color: var(--bk-text-muted);
}

.bkntc-td-tenant-directory .log-text {
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1rem;
}

.bkntc-td-tenant-directory .log-bold {
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1rem;
}

.bkntc-td-tenant-directory .status-text.hidden {
    display: inline-block;
    color: #b91c1c;
}

.bkntc-td-tenant-directory .status-text.approved {
    color: #047857;
}

.bkntc-td-tenant-directory .status-text.pending {
    color: #b45309;
}

.bkntc-td-tenant-directory .status-text.rejected {
    color: #b91c1c;
}

.bkntc-td-tenant-directory .log-description {
    border-radius: var(--bk-radius-box);
    border: var(--bk-border-width) solid rgba(35, 59, 77, 0.1);
    padding: 0.75rem;
    gap: 0.5rem;
    background: var(--bk-surface);
}

.bkntc-td-tenant-directory .accordion-header {
    cursor: pointer;
}

.bkntc-td-tenant-directory .accordion-logs-wrapper.show,
.bkntc-td-tenant-directory .accordion-logs-wrapper.collapsing {
    display: flex !important;
    flex-direction: column;
}

/* Summernote (minimal) */
.bkntc-td-tenant-directory .note-editor * {
    font-family: inherit !important;
}

.bkntc-td-tenant-directory .note-editor.note-airframe,
.bkntc-td-tenant-directory .note-editor.note-frame {
    border: var(--bk-border-width) solid var(--bk-border) !important;
    border-radius: var(--bk-radius-field);
    overflow: visible;
}

.bkntc-td-tenant-directory .note-editor.note-airframe .note-editing-area,
.bkntc-td-tenant-directory .note-editor.note-frame .note-editing-area {
    overflow: hidden;
    border-bottom-left-radius: var(--bk-radius-field);
    border-bottom-right-radius: var(--bk-radius-field);
}

.bkntc-td-tenant-directory .note-editor .note-toolbar {
    border-top-left-radius: var(--bk-radius-field);
    border-top-right-radius: var(--bk-radius-field);
}

.bkntc-td-tenant-directory .note-editor .note-toolbar .note-dropdown-menu {
    max-height: 16rem;
    overflow-y: auto;
    overflow-x: hidden;
}

.bkntc-td-tenant-directory .note-editor .note-toolbar,
.bkntc-td-tenant-directory .note-popover .popover-content {
    background-color: var(--bk-surface) !important;
    padding: 0.5rem !important;
    border-bottom: var(--bk-border-width) solid var(--bk-border) !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.bkntc-td-tenant-directory .note-statusbar {
    border-top: var(--bk-border-width) solid var(--bk-border) !important;
}

.bkntc-td-tenant-directory .note-statusbar .note-resizebar {
    background-color: var(--bk-base-300) !important;
}

.bkntc-td-tenant-directory .note-editor .note-toolbar > .note-btn-group {
    margin: 0 !important;
}

.bkntc-td-tenant-directory .note-btn-group > .note-btn {
    padding: 0.5rem 0.75rem;
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-surface);
    font-size: 0.875rem !important;
    box-shadow: none !important;
}

.bkntc-td-tenant-directory .note-btn-group > .note-btn:hover,
.bkntc-td-tenant-directory .note-btn-group > .note-btn.active {
    background: var(--bk-base-200) !important;
}

.bkntc-td-tenant-directory .note-btn-group > .note-btn.disabled,
.bkntc-td-tenant-directory .note-editor.note-airframe .note-editing-area .note-editable[contenteditable="false"],
.bkntc-td-tenant-directory .note-editor.note-frame .note-editing-area .note-editable[contenteditable="false"],
.bkntc-td-tenant-directory .note-editor .note-toolbar.disabled {
    background-color: var(--bk-base-200) !important;
    color: var(--bk-text-muted) !important;
}

.bkntc-td-tenant-directory .note-editable {
    font-size: 0.875rem !important;
    line-height: 1.25rem !important;
    padding: 0.75rem;
}

/* Leaflet (minimal – map preview) */
.bkntc-td-tenant-directory .leaflet-pane,
.bkntc-td-tenant-directory .leaflet-tile,
.bkntc-td-tenant-directory .leaflet-marker-icon,
.bkntc-td-tenant-directory .leaflet-marker-shadow,
.bkntc-td-tenant-directory .leaflet-tile-container,
.bkntc-td-tenant-directory .leaflet-pane > svg,
.bkntc-td-tenant-directory .leaflet-pane > canvas,
.bkntc-td-tenant-directory .leaflet-zoom-box,
.bkntc-td-tenant-directory .leaflet-image-layer,
.bkntc-td-tenant-directory .leaflet-layer {
    position: absolute;
    left: 0;
    top: 0;
}

.bkntc-td-tenant-directory .leaflet-container {
    position: relative;
    overflow: hidden;
    outline: 0;
    background: transparent;
    font: 0.75rem/1.2 var(--bs-font-sans-serif, system-ui);
}

.bkntc-td-tenant-directory .leaflet-container .leaflet-overlay-pane svg {
    max-width: none !important;
    max-height: none !important;
}

.bkntc-td-tenant-directory .leaflet-container .leaflet-marker-pane img,
.bkntc-td-tenant-directory .leaflet-container .leaflet-shadow-pane img,
.bkntc-td-tenant-directory .leaflet-container .leaflet-tile-pane img,
.bkntc-td-tenant-directory .leaflet-container img.leaflet-image-layer,
.bkntc-td-tenant-directory .leaflet-container .leaflet-tile {
    max-width: none !important;
    max-height: none !important;
    width: auto;
    padding: 0;
}

.bkntc-td-tenant-directory .leaflet-marker-icon,
.bkntc-td-tenant-directory .leaflet-marker-shadow {
    display: block;
}

.bkntc-td-tenant-directory .leaflet-marker-icon.bkntc-tenant-map-marker {
    background: transparent;
    border: 0;
}

.bkntc-td-tenant-directory .bkntc-tenant-map-marker-icon {
    display: block;
    width: 100%;
    height: 100%;
    fill: var(--bk-primary);
    filter: drop-shadow(0 0.4rem 0.9rem rgba(35, 59, 77, 0.3));
}

.bkntc-td-tenant-directory .leaflet-pane {
    z-index: 400;
}

.bkntc-td-tenant-directory .leaflet-tile-pane {
    z-index: 200;
}

.bkntc-td-tenant-directory .leaflet-overlay-pane {
    z-index: 400;
}

.bkntc-td-tenant-directory .leaflet-shadow-pane {
    z-index: 500;
}

.bkntc-td-tenant-directory .leaflet-marker-pane {
    z-index: 600;
}

.bkntc-td-tenant-directory .leaflet-tooltip-pane {
    z-index: 650;
}

.bkntc-td-tenant-directory .leaflet-popup-pane {
    z-index: 700;
}

/* Controls */
.bkntc-td-tenant-directory .leaflet-control {
    position: relative;
    z-index: 800;
    pointer-events: auto;
}

.bkntc-td-tenant-directory .leaflet-top,
.bkntc-td-tenant-directory .leaflet-bottom {
    position: absolute;
    z-index: 1000;
    pointer-events: none;
}

.bkntc-td-tenant-directory .leaflet-top {
    top: 0;
}

.bkntc-td-tenant-directory .leaflet-bottom {
    bottom: 0;
}

.bkntc-td-tenant-directory .leaflet-left {
    left: 0;
}

.bkntc-td-tenant-directory .leaflet-right {
    right: 0;
}

.bkntc-td-tenant-directory .leaflet-left .leaflet-control {
    margin-left: 0.75rem;
}

.bkntc-td-tenant-directory .leaflet-right .leaflet-control {
    margin-right: 0.75rem;
}

.bkntc-td-tenant-directory .leaflet-top .leaflet-control {
    margin-top: 0.75rem;
}

.bkntc-td-tenant-directory .leaflet-bottom .leaflet-control {
    margin-bottom: 0.75rem;
}

.bkntc-td-tenant-directory .leaflet-bar {
    box-shadow: var(--bk-shadow-soft);
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid rgba(35, 59, 77, 0.12);
    overflow: hidden;
    background: var(--bk-surface);
}

.bkntc-td-tenant-directory .leaflet-bar a {
    display: block;
    width: 2rem;
    height: 2rem;
    line-height: 2rem;
    text-align: center;
    color: var(--bk-text-primary);
    text-decoration: none;
    border-bottom: var(--bk-border-width) solid rgba(35, 59, 77, 0.12);
    background: var(--bk-surface);
}

.bkntc-td-tenant-directory .leaflet-bar a:last-child {
    border-bottom: 0;
}

.bkntc-td-tenant-directory .leaflet-bar a:hover {
    background: var(--bk-base-200);
}

.bkntc-td-tenant-directory .leaflet-control-attribution {
    font-size: 0.6875rem;
    color: var(--bk-text-muted);
    padding: 0.25rem 0.5rem;
    background: rgba(255, 255, 255, 0.75);
    border-radius: var(--bk-radius-field);
    margin: 0.5rem;
}

.bkntc-td-tenant-directory .leaflet-control-attribution a {
    color: var(--bk-primary-500);
}

.bkntc-td-tenant-directory .leaflet-popup-content-wrapper {
    border-radius: var(--bk-radius-box);
    box-shadow: var(--bk-shadow-hover);
    border: var(--bk-border-width) solid rgba(35, 59, 77, 0.12);
}

.bkntc-td-tenant-directory .leaflet-popup-content {
    margin: 0.75rem;
    font-size: 0.8125rem;
}

/* Scrollbars (soft) */
.bkntc-td-tenant-directory .scroll-wrapper {
    scrollbar-width: thin;
    scrollbar-color: rgba(35, 59, 77, 0.18) transparent;
}

.bkntc-td-tenant-directory .scroll-wrapper::-webkit-scrollbar {
    width: 0.5rem;
    height: 0.5rem;
}

.bkntc-td-tenant-directory .scroll-wrapper::-webkit-scrollbar-track {
    background-color: transparent;
}

.bkntc-td-tenant-directory .scroll-wrapper::-webkit-scrollbar-thumb {
    background-color: rgba(35, 59, 77, 0.14);
    border-radius: var(--bk-radius-field);
}

.bkntc-td-tenant-directory .scroll-wrapper::-webkit-scrollbar-thumb:hover {
    background-color: rgba(35, 59, 77, 0.22);
}

/* Tenant Directory (Frontend: Search + Landing) */
.bkntc-tenant-map-view-container {
    background: linear-gradient(180deg, var(--bk-base-100) 0%, var(--bk-base-200) 100%);
    padding: 1.5rem 1.5rem 2.5rem;
    min-height: 100vh;
    width: 100%;
    max-width: none;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
}

.bkntc-tenant-map-view-container .bkntc-map-filter-container {
    max-width: none;
    width: 100%;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    position: relative;
    flex: 1;
    min-height: 0;
}

.bkntc-tenant-map-view-container .bkntc-map-filter-container::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.7);
    border-radius: var(--bk-radius-box);
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--bk-transition);
    z-index: 5;
}

.bkntc-tenant-map-view-container .bkntc-map-filter-container::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    border: 0.1875rem solid var(--bk-border);
    border-top-color: var(--bk-accent-500);
    opacity: 0;
    transform: translate(-50%, -50%) rotate(0deg);
    transition: opacity var(--bk-transition);
    animation: bkntc-td-spin 0.9s linear infinite;
    z-index: 6;
    pointer-events: none;
}

.bkntc-tenant-map-view-container .bkntc-map-filter-container.bkntc-is-loading::before,
.bkntc-tenant-map-view-container .bkntc-map-filter-container.bkntc-is-loading::after {
    opacity: 1;
    pointer-events: auto;
}

@keyframes bkntc-td-spin {
    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

.bkntc-tenant-map-view-container .bkntc-map-view-control {
    display: flex;
    justify-content: flex-end;
}

.bkntc-tenant-map-view-container .bkntc-map-filter-button {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-surface);
    color: var(--bk-text-primary);
    font-weight: 600;
    cursor: pointer;
    transition: background var(--bk-transition), border-color var(--bk-transition), box-shadow var(--bk-transition);
}

.bkntc-tenant-map-view-container .bkntc-map-filter-button img {
    width: 1rem;
    height: 1rem;
}

.bkntc-tenant-map-view-container .bkntc-map-filter-button:hover {
    background: var(--bk-base-200);
    border-color: var(--bk-border-strong);
    box-shadow: var(--bk-shadow-soft);
}

.bkntc-tenant-map-view-container .bkntc-filter-wrapper-toggle .bkntc-filter-panel {
    display: none;
}

.bkntc-tenant-map-view-container .bkntc-filter-panel {
    background: var(--bk-surface);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    box-shadow: var(--bk-shadow-soft);
    padding: 1.5rem;
    position: relative;
    z-index: 3;
    overflow: visible;
}

.bkntc-tenant-map-view-container .bkntc-filter-container {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.bkntc-tenant-map-view-container .bkntc-filter-title {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--bk-text-primary);
}

.bkntc-tenant-map-view-container .bkntc-map-filter-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.bkntc-tenant-map-view-container .bkntc-map-filter-form input,
.bkntc-tenant-map-view-container .bkntc-map-filter-form select,
.bkntc-tenant-map-view-container .bkntc-map-filter-form .ts-wrapper,
.bkntc-tenant-map-view-container .bkntc-map-filter-form .ts-wrapper .ts-control {
    width: 100%;
}

.bkntc-tenant-map-view-container .bkntc-map-filter-form input,
.bkntc-tenant-map-view-container .bkntc-map-filter-form select,
.bkntc-tenant-map-view-container .bkntc-map-filter-form .ts-wrapper .ts-control,
.bkntc-tenant-map-view-container .bkntc-map-filter-form .bkntc-button {
    min-height: 2.75rem;
    height: 2.75rem;
    border-radius: var(--bk-radius-field);
    box-sizing: border-box;
}

.bkntc-tenant-map-view-container .bkntc-map-filter-form input,
.bkntc-tenant-map-view-container .bkntc-map-filter-form select,
.bkntc-tenant-map-view-container .bkntc-map-filter-form .ts-wrapper .ts-control {
    padding: 0 0.75rem;
}

.bkntc-tenant-map-view-container .bkntc-form-control {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.bkntc-tenant-map-view-container .bkntc-form-control label {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--bk-text-secondary);
}

.bkntc-tenant-map-view-container .bkntc-availability-popover {
    position: relative;
    width: 100%;
}

.bkntc-tenant-map-view-container .bkntc-availability-trigger {
    width: 100%;
    justify-content: space-between;
    text-align: left;
    background: var(--bk-primary-500);
    border-color: var(--bk-primary-500);
    color: var(--bk-primary-content);
}

.bkntc-tenant-map-view-container .bkntc-availability-trigger:hover {
    background: var(--bk-primary-600);
    border-color: var(--bk-primary-600);
}

.bkntc-tenant-map-view-container .bkntc-availability-panel {
    position: absolute;
    top: calc(100% + 0.5rem);
    left: 0;
    min-width: 18rem;
    max-width: 26rem;
    padding: 0.75rem;
    border-radius: var(--bk-radius-box);
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-surface);
    box-shadow: var(--bk-shadow-soft);
    opacity: 0;
    transform: translateY(0.5rem);
    pointer-events: none;
    transition: opacity var(--bk-transition), transform var(--bk-transition);
    z-index: 1200;
}

.bkntc-tenant-map-view-container .bkntc-availability-panel-inner {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.bkntc-tenant-map-view-container .bkntc-availability-popover--open .bkntc-availability-panel {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.bkntc-tenant-map-view-container .bkntc-date-control-wrapper {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.bkntc-tenant-map-view-container .bkntc-date-control-wrapper input {
    flex: 1;
}

.bkntc-tenant-map-view-container .bkntc-clear-date {
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-surface);
    color: var(--bk-text-secondary);
    border-radius: var(--bk-radius-field);
    padding: 0.5rem 0.75rem;
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
    transition: background var(--bk-transition), border-color var(--bk-transition), color var(--bk-transition);
    white-space: nowrap;
}

.bkntc-tenant-map-view-container .ts-dropdown,
.bkntc-tenant-map-view-container .ts-dropdown-content {
    z-index: 30;
}

.bkntc-tenant-map-view-container .bkntc-clear-date:hover {
    background: var(--bk-base-200);
    border-color: var(--bk-border-strong);
    color: var(--bk-text-primary);
}

.bkntc-tenant-map-view-container .bkntc-clear-date--hidden {
    display: none;
}

.bkntc-tenant-map-view-container .bkntc-price-display {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.bkntc-tenant-map-view-container .bkntc-search-control,
.bkntc-tenant-shortcut-container-from-directory .bkntc-search-control {
    position: relative;
}

.bkntc-tenant-map-view-container .bkntc-search-input-control,
.bkntc-tenant-shortcut-container-from-directory .bkntc-search-input-control {
    position: relative;
}

.bkntc-tenant-map-view-container .bkntc-search-input-wrapper,
.bkntc-tenant-shortcut-container-from-directory .bkntc-search-input-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    --bkntc-search-pill-offset: 0px;
}

.bkntc-tenant-map-view-container .bkntc-search-input-icon,
.bkntc-tenant-shortcut-container-from-directory .bkntc-search-input-icon {
    position: absolute;
    left: 0.75rem;
    width: 1rem;
    height: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    opacity: 0.6;
}

.bkntc-tenant-map-view-container .bkntc-search-input-icon img,
.bkntc-tenant-shortcut-container-from-directory .bkntc-search-input-icon img {
    width: 1rem;
    height: 1rem;
}

.bkntc-tenant-map-view-container .bkntc-search-input,
.bkntc-tenant-shortcut-container-from-directory .bkntc-search-input {
    padding-left: calc(2.5rem + var(--bkntc-search-pill-offset, 0px));
}

.bkntc-tenant-map-view-container .bkntc-search-pill-container,
.bkntc-tenant-shortcut-container-from-directory .bkntc-search-pill-container {
    position: absolute;
    left: 2.25rem;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    max-width: calc(100% - 3.25rem);
    pointer-events: auto;
}

.bkntc-tenant-map-view-container .bkntc-search-pill,
.bkntc-tenant-shortcut-container-from-directory .bkntc-search-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    border: 1px solid var(--bk-border-strong);
    background: var(--bk-base-200);
    color: var(--bk-text-primary);
    font-size: 0.75rem;
    white-space: nowrap;
}

.bkntc-tenant-map-view-container .bkntc-search-pill__remove,
.bkntc-tenant-shortcut-container-from-directory .bkntc-search-pill__remove {
    border: none;
    background: transparent;
    color: inherit;
    font-size: 0.75rem;
    line-height: 1;
    padding: 0;
    cursor: pointer;
}

.bkntc-tenant-map-view-container .bkntc-location-search-control {
    position: relative;
    padding-bottom: 1.1rem;
}

.bkntc-tenant-map-view-container .bkntc-location-input {
    position: relative;
    display: flex;
    align-items: center;
}

.bkntc-tenant-map-view-container .bkntc-location-input input {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
}

.bkntc-tenant-map-view-container .bkntc-location-input-icon {
    position: absolute;
    left: 0.75rem;
    width: 1rem;
    height: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    opacity: 0.6;
}

.bkntc-tenant-map-view-container .bkntc-location-input-icon img {
    width: 1rem;
    height: 1rem;
}

.bkntc-tenant-map-view-container .bkntc-location-button {
    position: absolute;
    right: 0.35rem;
    top: 50%;
    transform: translateY(-50%);
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    border: none;
    background: var(--bk-base-200);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background var(--bk-transition), box-shadow var(--bk-transition);
}

.bkntc-tenant-map-view-container .bkntc-location-button img {
    width: 1rem;
    height: 1rem;
}

.bkntc-tenant-map-view-container .bkntc-location-button:hover {
    background: var(--bk-base-300);
    box-shadow: var(--bk-shadow-soft);
}

.bkntc-tenant-map-view-container .bkntc-location-button:disabled {
    cursor: not-allowed;
    opacity: 0.6;
}

.bkntc-tenant-map-view-container .bkntc-location-status {
    position: absolute;
    left: 0;
    bottom: 0;
    font-size: 0.75rem;
    color: var(--bk-text-secondary);
}

.bkntc-tenant-map-view-container .bkntc-location-status.is-error {
    color: var(--bk-danger-500);
}

.bkntc-tenant-map-view-container .bkntc-location-suggestions {
    position: absolute;
    top: calc(100% + 0.5rem);
    left: 0;
    right: 0;
    z-index: 1200;
    display: none;
    padding: 0.25rem;
    background: var(--bk-surface);
    border-radius: var(--bk-radius-box);
    border: var(--bk-border-width) solid var(--bk-border);
    box-shadow: var(--bk-shadow-soft);
    max-height: 16rem;
    overflow: auto;
}

.bkntc-tenant-map-view-container .bkntc-search-suggestions,
.bkntc-tenant-shortcut-container-from-directory .bkntc-search-suggestions {
    position: absolute;
    top: calc(100% + 0.5rem);
    left: 0;
    right: 0;
    z-index: 1200;
    display: none;
    padding: 0.25rem;
    background: var(--bk-surface);
    border-radius: var(--bk-radius-box);
    border: var(--bk-border-width) solid var(--bk-border);
    box-shadow: var(--bk-shadow-soft);
    max-height: 16rem;
    overflow: auto;
}

.bkntc-tenant-map-view-container .bkntc-suggestion-item,
.bkntc-tenant-shortcut-container-from-directory .bkntc-suggestion-item {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.125rem;
    padding: 0.5rem 0.75rem;
    border-radius: var(--bk-radius-field);
    border: none;
    background: transparent;
    color: var(--bk-text-primary);
    text-align: left;
    cursor: pointer;
}

.bkntc-tenant-map-view-container .bkntc-suggestion-item:hover,
.bkntc-tenant-map-view-container .bkntc-suggestion-item:focus,
.bkntc-tenant-shortcut-container-from-directory .bkntc-suggestion-item:hover,
.bkntc-tenant-shortcut-container-from-directory .bkntc-suggestion-item:focus {
    background: var(--bk-base-200);
    outline: none;
}

.bkntc-tenant-map-view-container .bkntc-suggestion-item__label,
.bkntc-tenant-shortcut-container-from-directory .bkntc-suggestion-item__label {
    font-size: 0.875rem;
    font-weight: 600;
}

.bkntc-tenant-map-view-container .bkntc-suggestion-item__subtitle,
.bkntc-tenant-shortcut-container-from-directory .bkntc-suggestion-item__subtitle {
    font-size: 0.75rem;
    color: var(--bk-text-muted);
}

.bkntc-tenant-map-view-container .bkntc-keyword-tag-wrapper {
    display: none;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.75rem;
    border-radius: var(--bk-radius-box);
    background: var(--bk-surface);
    border: var(--bk-border-width) solid var(--bk-border);
}

.bkntc-tenant-map-view-container .bkntc-keyword-tag-wrapper--visible {
    display: flex;
}

.bkntc-tenant-map-view-container .bkntc-keyword-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.bkntc-tenant-map-view-container .bkntc-keyword-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-base-200);
    color: var(--bk-text-secondary);
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
    cursor: pointer;
    transition: background var(--bk-transition), border-color var(--bk-transition), color var(--bk-transition);
}

.bkntc-tenant-map-view-container .bkntc-keyword-tag:hover {
    background: var(--bk-primary-100);
    border-color: var(--bk-primary-500);
    color: var(--bk-primary-600);
}

.bkntc-tenant-map-view-container .bkntc-keyword-tag-placeholder {
    font-size: 0.75rem;
    color: var(--bk-text-muted);
}

.bkntc-tenant-map-view-container .bkntc-keyword-clear {
    align-self: flex-start;
    background: transparent;
    border: none;
    padding: 0;
    color: var(--bk-accent-500);
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
}

.bkntc-tenant-map-view-container .bkntc-keyword-clear:hover {
    color: var(--bk-accent-600);
}

.bkntc-tenant-map-view-container .bkntc-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    min-height: 2.5rem;
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-surface);
    color: var(--bk-text-primary);
    font-weight: 600;
    cursor: pointer;
    transition: background var(--bk-transition), border-color var(--bk-transition), box-shadow var(--bk-transition);
}

.bkntc-tenant-map-view-container .bkntc-button:hover {
    background: var(--bk-base-200);
    border-color: var(--bk-border-strong);
    box-shadow: var(--bk-shadow-soft);
}

.bkntc-tenant-map-view-container .bkntc-map-reset {
    align-self: flex-start;
}

.bkntc-tenant-map-view-container .bkntc-map-reset--hidden {
    display: none;
}

.bkntc-tenant-map-view-container .bkntc-wrapper-container {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
        "filters"
        "results"
        "map";
    gap: 1.5rem;
    align-items: start;
    position: relative;
    isolation: isolate;
    flex: 1;
    min-height: 0;
}

.bkntc-tenant-map-view-container .bkntc-wrapper-container > .bkntc-filter-panel {
    grid-area: filters;
}

.bkntc-tenant-map-view-container .bkntc-map-results {
    grid-area: results;
    min-width: 0;
    min-height: 0;
}

.bkntc-tenant-map-view-container .bkntc-tenant-businnes-map-container {
    grid-area: map;
    min-height: 24rem;
    border-radius: var(--bk-radius-box);
    border: var(--bk-border-width) solid var(--bk-border);
    box-shadow: var(--bk-shadow-soft);
    background: var(--bk-base-300);
    overflow: hidden;
    position: relative;
    z-index: 1;
}

.bkntc-tenant-map-view-container .bkntc-tenant-grid-view {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-auto-rows: max-content;
    align-content: start;
    gap: 1rem;
    max-height: none;
    height: 100%;
    overflow: auto;
    padding-right: 0.25rem;
}

.bkntc-tenant-map-view-container .bkntc-tenant-grid-view::-webkit-scrollbar {
    width: 0.5rem;
}

.bkntc-tenant-map-view-container .bkntc-tenant-grid-view::-webkit-scrollbar-thumb {
    background-color: rgba(35, 59, 77, 0.18);
    border-radius: var(--bk-radius-field);
}

.bkntc-tenant-map-view-container .bkntc-tenant-service-card {
    background: var(--bk-surface);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    box-shadow: var(--bk-shadow-soft);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform var(--bk-transition), box-shadow var(--bk-transition), border-color var(--bk-transition);
}

.bkntc-tenant-map-view-container .bkntc-tenant-service-card.active {
    border-color: var(--bk-accent-500);
    box-shadow: var(--bk-shadow-hover);
    transform: translateY(-0.125rem);
}

.bkntc-tenant-map-view-container .bkntc-tenant-service-card img {
    width: 100%;
    height: 10rem;
    object-fit: cover;
    display: block;
}

.bkntc-tenant-map-view-container .bkntc-no-photo-container {
    width: 100%;
    height: 10rem;
    background: var(--bk-base-300);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    color: var(--bk-text-muted);
    font-size: 0.8125rem;
}

.bkntc-tenant-map-view-container .bkntc-no-photo-container img {
    width: 2rem;
    height: 2rem;
}

.bkntc-tenant-map-view-container .bkntc-service-card-content {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.bkntc-tenant-map-view-container .bkntc-card-title-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.bkntc-tenant-map-view-container .bkntc-service-card-content h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--bk-text-primary);
}

.bkntc-tenant-map-view-container .bkntc-service-card-content h3 a:hover {
    color: var(--bk-accent-600);
}

.bkntc-tenant-map-view-container .bkntc-card-key {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--bk-text-secondary);
}

.bkntc-tenant-map-view-container .bkntc-card-value {
    font-size: 0.8125rem;
    color: var(--bk-text-primary);
}

.bkntc-tenant-map-view-container .bkntc-service-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.5rem;
    border-radius: var(--bk-radius-field);
    background: var(--bk-primary-100);
    color: var(--bk-primary-600);
    font-size: 0.75rem;
    font-weight: 600;
}

.bkntc-tenant-map-view-container .bkntc-service-badge--empty {
    background: var(--bk-base-200);
    color: var(--bk-text-muted);
}

.bkntc-tenant-map-view-container .bkntc-keyword-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.bkntc-tenant-map-view-container .bkntc-view-service-on-map-btn {
    margin-top: 0.25rem;
    align-self: flex-start;
    padding: 0.375rem 0.75rem;
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid var(--bk-primary-500);
    background: var(--bk-primary-100);
    color: var(--bk-primary-600);
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
    transition: background var(--bk-transition), border-color var(--bk-transition), color var(--bk-transition);
}

.bkntc-tenant-map-view-container .bkntc-view-service-on-map-btn:hover {
    background: var(--bk-primary-500);
    color: var(--bk-primary-content);
}

.bkntc-tenant-map-view-container .bkntc-map-no-results {
    grid-column: 1 / -1;
    padding: 0.75rem 1rem;
    border-radius: var(--bk-radius-box);
    border: var(--bk-border-width) solid var(--bk-warning);
    background: var(--bk-warning-soft);
    color: var(--bk-warning-content);
    font-size: 0.8125rem;
}

.bkntc-tenant-map-view-container .bkntc-map-no-results--hidden {
    display: none;
}

.bkntc-tenant-map-view-container .bkntc-not-found-view {
    background: var(--bk-surface);
    border: var(--bk-border-width) dashed var(--bk-border-strong);
    border-radius: var(--bk-radius-box);
    padding: 2rem 1.5rem;
    text-align: center;
    color: var(--bk-text-secondary);
    display: grid;
    gap: 1rem;
    justify-items: center;
}

.bkntc-tenant-map-view-container .bkntc-not-found-view img {
    width: min(15rem, 70%);
    height: auto;
    display: block;
}

.bkntc-tenant-map-view-container .bkntc-not-found-text {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--bk-text-primary);
}

.bkntc-tenant-map-view-container .bkntc-not-found-reload-btn {
    background: var(--bk-accent-500);
    border-color: var(--bk-accent-500);
    color: var(--bk-accent-content);
}

.bkntc-tenant-map-view-container .bkntc-not-found-reload-btn:hover {
    background: var(--bk-accent-600);
    border-color: var(--bk-accent-600);
}

.bkntc-tenant-map-view-container .ts-wrapper,
.bkntc-tenant-map-view-container .ts-wrapper .ts-control {
    width: 100%;
}

.bkntc-tenant-map-view-container .ts-wrapper .ts-control {
    min-height: 2.75rem;
    border-radius: var(--bk-radius-field);
    align-items: center;
}

.bkntc-tenant-map-view-container .ts-wrapper .clear-button {
    display: none;
}

@media (max-width: 47.9375rem) {
    .bkntc-tenant-map-view-container .bkntc-wrapper-container > .bkntc-filter-panel {
        display: none;
    }
}

@media (min-width: 48rem) {
    .bkntc-tenant-map-view-container {
        height: 100vh;
        overflow: hidden;
    }

    .bkntc-tenant-map-view-container .bkntc-map-view-control {
        display: none;
    }

    .bkntc-tenant-map-view-container .bkntc-wrapper-container {
        grid-template-columns: minmax(18rem, 24rem) minmax(0, 1fr);
        grid-template-areas:
            "filters filters"
            "results map";
        grid-template-rows: auto minmax(0, 1fr);
        align-items: stretch;
    }

    .bkntc-tenant-map-view-container .bkntc-map-filter-container {
        gap: 1.25rem;
    }

    .bkntc-tenant-map-view-container .bkntc-wrapper-container > .bkntc-filter-panel {
        padding: 1rem 1.25rem;
    }

    .bkntc-tenant-map-view-container .bkntc-filter-wrapper-toggle {
        display: none;
    }

    .bkntc-tenant-map-view-container .bkntc-wrapper-container > .bkntc-filter-panel .bkntc-filter-title {
        display: none;
    }

    .bkntc-tenant-map-view-container .bkntc-filter-container {
        flex-direction: row;
        align-items: flex-end;
    }

    .bkntc-tenant-map-view-container .bkntc-map-filter-form {
        display: grid;
        grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(5.5rem, auto);
        align-items: end;
        gap: 1rem;
        width: 100%;
    }

    .bkntc-tenant-map-view-container .bkntc-map-results,
    .bkntc-tenant-map-view-container .bkntc-tenant-businnes-map-container {
        height: 100%;
        min-height: 0;
    }

    .bkntc-tenant-map-view-container .bkntc-map-results {
        min-height: 0;
    }

    .bkntc-tenant-map-view-container .bkntc-tenant-grid-view {
        max-height: none;
        height: 100%;
    }

    .bkntc-tenant-map-view-container .bkntc-map-filter-form > .bkntc-form-control {
        min-width: 0;
    }

    .bkntc-tenant-map-view-container .bkntc-map-filter-form > .bkntc-form-control--wide {
        grid-column: auto;
    }

    .bkntc-tenant-map-view-container .bkntc-map-reset {
        margin-left: 0;
        justify-self: end;
        align-self: end;
        min-width: 7rem;
    }

    .bkntc-tenant-map-view-container .bkntc-tenant-businnes-map-container {
        min-height: min(36rem, 100%);
    }

    .bkntc-tenant-map-view-container .bkntc-tenant-grid-view {
        max-height: none;
    }
}

@media (min-width: 75rem) {
    .bkntc-tenant-map-view-container .bkntc-map-view-control {
        display: none;
    }

    .bkntc-tenant-map-view-container .bkntc-wrapper-container {
        grid-template-columns: minmax(18rem, 24rem) minmax(0, 1fr);
        grid-template-areas:
            "filters filters"
            "results map";
    }

    .bkntc-tenant-map-view-container .bkntc-filter-wrapper-toggle {
        display: none;
    }

    .bkntc-tenant-map-view-container .bkntc-tenant-businnes-map-container {
        min-height: min(42rem, 100%);
    }
}

@media (max-width: 47.9375rem) {
    .bkntc-tenant-map-view-container .bkntc-tenant-grid-view {
        max-height: none;
    }

    .bkntc-tenant-map-view-container .bkntc-availability-panel {
        left: 0;
        right: 0;
        min-width: 0;
        max-width: none;
    }
}

body.bkntc_td_landing_page {
    background: var(--bk-base-100);
}

body.bkntc_td_landing_page .bkntc_landing-page {
    max-width: 90rem;
    margin: 0 auto;
    padding: 2rem 1rem 3rem;
    display: flex;
    flex-direction: column;
    gap: 2rem;
    color: var(--bk-text-primary);
}

body.bkntc_td_landing_page .bkntc_landing-page-warning-msg {
    max-width: 90rem;
    margin: 1.5rem auto 0;
    padding: 1rem 1.25rem;
    border-radius: var(--bk-radius-box);
    border: var(--bk-border-width) solid var(--bk-warning);
    background: var(--bk-warning-soft);
    color: var(--bk-warning-content);
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

body.bkntc_td_landing_page .bkntc_landing-page-hero {
    display: grid;
    gap: 2rem;
    align-items: stretch;
}

body.bkntc_td_landing_page .bkntc_service-gallery {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    height: 100%;
}

body.bkntc_td_landing_page .bkntc_main_img {
    border-radius: var(--bk-radius-box);
    overflow: hidden;
    background: var(--bk-base-300);
    min-height: 20rem;
    height: 100%;
    flex: 1;
}

body.bkntc_td_landing_page .bkntc_main_img--single {
    height: 100%;
    flex: 1;
}

body.bkntc_td_landing_page .bkntc-main-carousel-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

body.bkntc_td_landing_page .bkntc_gallery-scroll {
    display: flex;
    gap: 0.5rem;
    overflow-x: auto;
    padding-bottom: 0.25rem;
}

body.bkntc_td_landing_page .bkntc-gallery-carousel-item {
    flex: 0 0 auto;
    width: 4.5rem;
    height: 4.5rem;
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid var(--bk-border);
    overflow: hidden;
    cursor: pointer;
    transition: transform var(--bk-transition), border-color var(--bk-transition), box-shadow var(--bk-transition);
}

body.bkntc_td_landing_page .bkntc-gallery-carousel-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

body.bkntc_td_landing_page .bkntc-gallery-carousel-item.bkntc_active_gallery_item {
    border-color: var(--bk-accent-500);
    box-shadow: var(--bk-shadow-soft);
    transform: translateY(-0.125rem);
}

body.bkntc_td_landing_page .bkntc_service-info {
    display: grid;
    gap: 1.5rem;
    align-content: start;
    height: 100%;
}

body.bkntc_td_landing_page .bkntc_service_name {
    margin: 0;
    font-size: 2rem;
    font-weight: 700;
    color: var(--bk-text-primary);
}

body.bkntc_td_landing_page .bkntc_service-title-row {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    flex-wrap: wrap;
}

body.bkntc_td_landing_page .bkntc_service_info {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

body.bkntc_td_landing_page .bkntc_service-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.5rem;
    border-radius: var(--bk-radius-field);
    background: var(--bk-primary-100);
    color: var(--bk-primary-600);
    font-size: 0.75rem;
    font-weight: 600;
}

body.bkntc_td_landing_page .bkntc_service-info-container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: 1.5rem;
}

body.bkntc_td_landing_page .bkntc_list_info {
    background: var(--bk-surface);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    padding: 1rem;
    box-shadow: var(--bk-shadow-soft);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

body.bkntc_td_landing_page .bkntc_list_info > p {
    margin: 0;
    font-weight: 600;
    color: var(--bk-text-primary);
}

body.bkntc_td_landing_page .bkntc_list_info .bkntc-scroll-wrapper > p {
    margin: 0;
    font-weight: 600;
    color: var(--bk-text-primary);
}

body.bkntc_td_landing_page .bkntc_contact-info {
    display: grid;
    gap: 0.75rem;
}

body.bkntc_td_landing_page .bkntc_contact-info a {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem;
    border-radius: var(--bk-radius-field);
    color: var(--bk-text-secondary);
    font-weight: 400;
    transition: background var(--bk-transition), color var(--bk-transition);
}

body.bkntc_td_landing_page .bkntc_contact-info a:hover {
    background: var(--bk-base-200);
    color: var(--bk-text-primary);
}

body.bkntc_td_landing_page .bkntc_contact-info img {
    width: 1.25rem;
    height: 1.25rem;
}

body.bkntc_td_landing_page .bkntc-location-element--active {
    background: var(--bk-primary-100);
    color: var(--bk-primary-600);
}

body.bkntc_td_landing_page .bkntc_schedule-info .schedule-list {
    display: grid;
    gap: 0.5rem;
}

body.bkntc_td_landing_page .bkntc_schedule_item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0.75rem;
    border-radius: var(--bk-radius-field);
    background: var(--bk-base-200);
    color: var(--bk-text-secondary);
    font-size: 0.875rem;
    font-weight: 400;
}

body.bkntc_td_landing_page .bkntc_schedule_item--today {
    background: var(--bk-primary-100);
    color: var(--bk-primary-600);
}

body.bkntc_td_landing_page .bkntc_schedule_item--off {
    color: var(--bk-text-muted);
}

body.bkntc_td_landing_page .bkntc_schedule_key {
    font-weight: 400;
}

body.bkntc_td_landing_page .bkntc_schedule_value {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    justify-content: flex-end;
    font-weight: 400;
}

body.bkntc_td_landing_page .bkntc_schedule_badge {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.5rem;
    border-radius: var(--bk-radius-field);
    background: var(--bk-surface);
    border: var(--bk-border-width) solid var(--bk-border);
    font-size: 0.75rem;
    color: var(--bk-text-secondary);
}

body.bkntc_td_landing_page .bkntc_schedule_badge--off {
    background: var(--bk-error-soft);
    color: var(--bk-error);
    border-color: var(--bk-error);
}

body.bkntc_td_landing_page .bkntc_staff-info {
    grid-column: 1 / -1;
}

body.bkntc_td_landing_page .bkntc_staff-list {
    display: grid;
    gap: 0.75rem;
}

@media (min-width: 40rem) {
    body.bkntc_td_landing_page .bkntc_staff-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.bkntc_td_landing_page .bkntc_staff-list.bkntc_staff-list--single {
        grid-template-columns: minmax(0, 1fr);
    }
}

body.bkntc_td_landing_page .bkntc_staff-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0.75rem;
    border-radius: var(--bk-radius-field);
    background: var(--bk-base-200);
    color: var(--bk-text-primary);
}

body.bkntc_td_landing_page .bkntc_staff-avatar {
    width: 3rem;
    height: 3rem;
    border-radius: 999rem;
    overflow: hidden;
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-surface);
    flex-shrink: 0;
}

body.bkntc_td_landing_page .bkntc_staff-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

body.bkntc_td_landing_page .bkntc_staff-meta {
    display: grid;
    gap: 0.125rem;
}

body.bkntc_td_landing_page .bkntc_staff-name {
    font-size: 0.95rem;
    font-weight: 600;
}

body.bkntc_td_landing_page .bkntc_staff-role {
    font-size: 0.75rem;
    color: var(--bk-text-muted);
}

body.bkntc_td_landing_page .bkntc_book_appointment {
    background: var(--bk-surface);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    box-shadow: var(--bk-shadow-soft);
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: stretch;
}

body.bkntc_td_landing_page .bkntc_book_appointment-content {
    width: 100%;
    max-width: none;
    color: var(--bk-text-secondary);
    font-size: 1rem;
    line-height: 1.6;
    margin: 0;
    text-align: left;
}

body.bkntc_td_landing_page .bkntc_book_appointment-content p {
    margin: 0 0 1rem;
}

body.bkntc_td_landing_page .bkntc_book_appointment-content > * {
    text-align: left;
}

body.bkntc_td_landing_page .bkntc_book_appointment p:last-child {
    margin-bottom: 0;
}

body.bkntc_td_landing_page .bkntc_book_appointment-cta {
    width: 100%;
    display: flex;
    justify-content: center;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

body.bkntc_td_landing_page .bkntc_book_appointment--compact {
    margin-bottom: 0;
}

body.bkntc_td_landing_page .bkntc_book_appointment-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 3rem 7rem;
    min-width: 0;
    border-radius: var(--bk-radius-box);
    border: var(--bk-border-width) solid var(--bk-accent-500);
    background: var(--bk-accent-500);
    color: var(--bk-accent-content);
    font-weight: 600;
    font-size: 3rem;
    line-height: 1.2;
    cursor: pointer;
    transition: background var(--bk-transition), border-color var(--bk-transition);
}

body.bkntc_td_landing_page .bkntc_book_appointment-btn svg {
    width: 2.5rem;
    height: 2.5rem;
}

body.bkntc_td_landing_page .bkntc_book_appointment-btn svg path {
    stroke: currentColor;
}

body.bkntc_td_landing_page .bkntc_book_appointment-btn:hover {
    background: var(--bk-accent-600);
    border-color: var(--bk-accent-600);
}

body.bkntc_td_landing_page .bkntc_services_container {
    display: grid;
    gap: 1.5rem;
    margin-top: 2rem;
}

body.bkntc_td_landing_page .bkntc_services_container h2,
#booking.bkntc_td_inline_booking h2 {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--bk-text-primary);
}

body.bkntc_td_landing_page .bkntc_services_toolbar {
    background: var(--bk-surface);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    padding: 1rem;
}

body.bkntc_td_landing_page .bkntc_services_filters {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: 1rem;
}

body.bkntc_td_landing_page .bkntc_services_filter {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

body.bkntc_td_landing_page .bkntc_services_filter_label {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--bk-text-secondary);
    margin-bottom: 0.25rem;
}

body.bkntc_td_landing_page .bkntc_services_input,
body.bkntc_td_landing_page .bkntc_services_select {
    width: 100%;
}

body.bkntc_td_landing_page .ts-wrapper,
body.bkntc_td_landing_page .ts-wrapper .ts-control {
    width: 100%;
}

body.bkntc_td_landing_page .ts-wrapper .ts-control {
    min-height: 3rem;
    border-radius: var(--bk-radius-field);
}

body.bkntc_td_landing_page .bkntc_services_empty {
    padding: 1rem;
    border-radius: var(--bk-radius-box);
    border: var(--bk-border-width) dashed var(--bk-border-strong);
    text-align: center;
    color: var(--bk-text-secondary);
    background: var(--bk-surface);
}

body.bkntc_td_landing_page .bkntc_services_empty--hidden {
    display: none;
}

body.bkntc_td_landing_page .bkntc_services_groups {
    display: grid;
    gap: 1rem;
}

body.bkntc_td_landing_page .bkntc_service_group {
    background: var(--bk-surface);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    overflow: hidden;
    box-shadow: var(--bk-shadow-soft);
}

body.bkntc_td_landing_page .bkntc_service_group--filtered-out {
    display: none;
}

body.bkntc_td_landing_page .bkntc_service_group_toggle {
    width: 100%;
    border: none;
    background: var(--bk-surface);
    padding: 0.75rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    font-weight: 600;
    color: var(--bk-text-primary);
    cursor: pointer;
}

body.bkntc_td_landing_page .bkntc_service_group_meta {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

body.bkntc_td_landing_page .bkntc_service_group_toggle-btn {
    width: 1.5rem;
    height: 1.5rem;
    border-radius: var(--bk-radius-round);
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-surface);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background var(--bk-transition), border-color var(--bk-transition), transform var(--bk-transition);
}

body.bkntc_td_landing_page .bkntc_service_group_chevron {
    width: 0.75rem;
    height: 0.75rem;
    transition: transform var(--bk-transition);
}

body.bkntc_td_landing_page .bkntc_service_group_toggle:hover .bkntc_service_group_toggle-btn {
    background: var(--bk-base-100);
    border-color: var(--bk-border-strong);
}

body.bkntc_td_landing_page .bkntc_service_group.is-collapsed .bkntc_service_group_body {
    display: none;
}

body.bkntc_td_landing_page .bkntc_service_group.is-collapsed .bkntc_service_group_chevron {
    transform: rotate(-90deg);
}

body.bkntc_td_landing_page .bkntc_service_group_body {
    padding: 1rem;
}

body.bkntc_td_landing_page .bkntc_services_wrapper {
    display: grid;
    gap: 1rem;
}

body.bkntc_td_landing_page .bkntc_service_cart {
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-box);
    padding: 1rem;
    background: var(--bk-surface);
    display: grid;
    gap: 0.75rem;
}

body.bkntc_td_landing_page .bkntc_service_cart--initial-hidden,
body.bkntc_td_landing_page .bkntc_service_cart--filtered-out {
    display: none;
}

body.bkntc_td_landing_page .bkntc_service_cart_header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

body.bkntc_td_landing_page .bkntc_service_title {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--bk-text-primary);
}

body.bkntc_td_landing_page .bkntc_service_duration {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--bk-text-muted);
}

body.bkntc_td_landing_page .bkntc_service_desc {
    margin: 0;
    color: var(--bk-text-secondary);
    font-size: 0.875rem;
}

body.bkntc_td_landing_page .bkntc_cart_footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

body.bkntc_td_landing_page .bkntc_td_inline_booking_btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid var(--bk-accent-500);
    background: var(--bk-accent-500);
    color: var(--bk-accent-content);
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
    transition: background var(--bk-transition), border-color var(--bk-transition), color var(--bk-transition);
}

body.bkntc_td_landing_page .bkntc_td_inline_booking_btn svg {
    width: 1rem;
    height: 1rem;
}

body.bkntc_td_landing_page .bkntc_td_inline_booking_btn svg path {
    stroke: currentColor;
}

body.bkntc_td_landing_page .bkntc_td_inline_booking_btn:hover {
    background: var(--bk-accent-600);
    border-color: var(--bk-accent-600);
}

body.bkntc_td_landing_page .bkntc_book_appointment-cta .bkntc_td_inline_booking_btn {
    padding: 1.05rem 2.4rem;
    border-radius: var(--bk-radius-box);
    font-size: 1.1rem;
    line-height: 1.1;
}

body.bkntc_td_landing_page .bkntc_book_appointment-cta .bkntc_td_inline_booking_btn svg {
    width: 1.05rem;
    height: 1.05rem;
}

body.bkntc_td_landing_page .load-more-btn {
    justify-self: start;
    padding: 0.75rem 1.5rem;
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-surface);
    color: var(--bk-text-primary);
    font-weight: 600;
    cursor: pointer;
    transition: background var(--bk-transition), border-color var(--bk-transition), box-shadow var(--bk-transition);
}

body.bkntc_td_landing_page .load-more-btn:hover {
    background: var(--bk-base-200);
    border-color: var(--bk-border-strong);
    box-shadow: var(--bk-shadow-soft);
}

body.bkntc_td_landing_page .bkntc_landing-page.bkntc_td_booking-active .bkntc_book_appointment,
body.bkntc_td_landing_page .bkntc_landing-page.bkntc_td_booking-active .bkntc_book_appointment-cta {
    display: none;
}

body.bkntc_td_landing_page .bkntc_services_container--hidden {
    display: none;
}

body.bkntc_td_landing_page #booking.bkntc_td_inline_booking,
#booking.bkntc_td_inline_booking {
    max-width: none;
    margin: 1.5rem 0 0;
    padding: 1.25rem;
    border-radius: var(--bk-radius-box);
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-surface);
    box-shadow: var(--bk-shadow-soft);
    opacity: 0;
    transform: translateY(1rem);
    overflow: visible;
    transition: opacity var(--bk-transition), transform var(--bk-transition);
}

body.bkntc_td_landing_page #booking.bkntc_td_inline_booking.bkntc_td_inline_booking--active,
#booking.bkntc_td_inline_booking.bkntc_td_inline_booking--active {
    opacity: 1;
    transform: translateY(0);
}

body.bkntc_td_landing_page .bkntc_td_inline_booking_header,
#booking.bkntc_td_inline_booking .bkntc_td_inline_booking_header {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

body.bkntc_td_landing_page .bkntc_td_inline_booking_title,
#booking.bkntc_td_inline_booking .bkntc_td_inline_booking_title {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--bk-text-primary);
}

body.bkntc_td_landing_page .bkntc_td_inline_booking_back,
#booking.bkntc_td_inline_booking .bkntc_td_inline_booking_back {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.5rem 0.875rem;
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-surface);
    color: var(--bk-text-primary);
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: background var(--bk-transition), border-color var(--bk-transition), color var(--bk-transition);
}

body.bkntc_td_landing_page .bkntc_td_inline_booking_back:hover,
#booking.bkntc_td_inline_booking .bkntc_td_inline_booking_back:hover {
    background: var(--bk-base-200);
    border-color: var(--bk-border-strong);
}

body.bkntc_td_landing_page #booking.bkntc_td_inline_booking .booknetic_appointment,
#booking.bkntc_td_inline_booking .booknetic_appointment {
    min-height: 0;
    border-radius: calc(var(--bk-radius-box) - 0.25rem);
    box-shadow: none;
    background: transparent;
    overflow: visible;
}

body.bkntc_td_landing_page #booking.bkntc_td_inline_booking .booknetic_appointment_container_body,
#booking.bkntc_td_inline_booking .booknetic_appointment_container_body {
    overflow: visible;
}

body.bkntc_td_landing_page #booking.bkntc_td_inline_booking .booknetic_appointment_container_header_cart {
    display: none !important;
}

body.bkntc_td_landing_page #booking.bkntc_td_inline_booking .booknetic_powered_by,
#booking.bkntc_td_inline_booking .booknetic_powered_by {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.75rem;
    color: var(--bk-text-muted);
    text-decoration: none;
}

body.bkntc_td_landing_page #booking.bkntc_td_inline_booking .booknetic_powered_by--header,
#booking.bkntc_td_inline_booking .booknetic_powered_by--header {
    margin-top: 0;
    align-self: center;
}

@media (min-width: 64rem) {
    body.bkntc_td_landing_page .bkntc_landing-page {
        padding: 2.5rem 1.5rem 3.5rem;
    }

    body.bkntc_td_landing_page .bkntc_landing-page-hero {
        grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    }

    body.bkntc_td_landing_page .bkntc_main_img {
        min-height: 40rem;
    }

    body.bkntc_td_landing_page .bkntc_staff-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.bkntc_td_landing_page .bkntc_staff-list.bkntc_staff-list--single {
        grid-template-columns: minmax(0, 1fr);
    }

    body.bkntc_td_landing_page .bkntc_td_inline_booking_header {
        flex-direction: row;
        align-items: center;
        gap: 1rem;
    }
}

@media (max-width: 48rem) {
    body.bkntc_td_landing_page .bkntc_main_img {
        min-height: 18rem;
    }

    body.bkntc_td_landing_page .bkntc_book_appointment-btn {
        padding: 1.75rem 3rem;
        min-width: 0;
        width: 100%;
        max-width: 24rem;
        font-size: 1.6rem;
    }

    body.bkntc_td_landing_page .bkntc_book_appointment-cta .bkntc_td_inline_booking_btn {
        padding: 1.05rem 1.8rem;
        font-size: 1rem;
    }
}

/* Leaflet marker clusters (styles consolidated into booknetic-modern.css) */
.leaflet-cluster-anim .leaflet-marker-icon,
.leaflet-cluster-anim .leaflet-marker-shadow {
    transition: transform 0.3s ease-out, opacity 0.3s ease-in;
}

.leaflet-cluster-spider-leg {
    transition: stroke-dashoffset 0.3s ease-out, stroke-opacity 0.3s ease-in;
}

.leaflet-container .marker-cluster {
    background-clip: padding-box;
    border-radius: 1.25rem;
    box-shadow: var(--bk-shadow-soft);
}

.leaflet-container .marker-cluster div {
    width: 1.875rem;
    height: 1.875rem;
    margin: 0.3125rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.9375rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--bk-text-inverse);
}

.leaflet-container .marker-cluster span {
    line-height: 1;
}

.leaflet-container .marker-cluster-small {
    background-color: rgba(109, 192, 255, 0.28);
}
.leaflet-container .marker-cluster-small div {
    background-color: rgba(109, 192, 255, 0.9);
}

.leaflet-container .marker-cluster-medium {
    background-color: rgba(255, 191, 15, 0.28);
}
.leaflet-container .marker-cluster-medium div {
    background-color: rgba(255, 191, 15, 0.9);
    color: var(--bk-warning-content);
}

.leaflet-container .marker-cluster-large {
    background-color: rgba(255, 111, 0, 0.28);
}
.leaflet-container .marker-cluster-large div {
    background-color: rgba(255, 111, 0, 0.9);
}

.bkntc-rating-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.bkntc-rating-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.5rem;
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-base-200);
    color: var(--bk-text-primary);
    font-size: 0.75rem;
    font-weight: 600;
}

.bkntc-rating-pill--hero {
    font-size: 0.85rem;
    padding: 0.3rem 0.65rem;
}

.bkntc-rating-pill--compact {
    font-size: 0.7rem;
    padding: 0.2rem 0.45rem;
}

.bkntc-rating-value {
    font-weight: 700;
}

.bkntc-rating-star {
    color: var(--bk-warning, #f5b301);
    font-size: 0.7rem;
    line-height: 1;
}

.bkntc-rating-count {
    font-size: 0.7rem;
    color: var(--bk-text-muted);
}

.bkntc-rating-empty {
    font-size: 0.75rem;
    color: var(--bk-text-muted);
}

body.bkntc_td_landing_page .bkntc-rating-reviews {
    border-top: 0.0625rem solid #cfcfcf;
    padding-top: 2rem;
    display: grid;
    gap: 1.5rem;
}

body.bkntc_td_landing_page .bkntc-rating-reviews-header {
    display: grid;
    gap: 0.75rem;
    align-items: center;
}

@media (min-width: 48rem) {
    body.bkntc_td_landing_page .bkntc-rating-reviews-header {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    body.bkntc_td_landing_page .bkntc-rating-reviews-tabs {
        justify-self: center;
    }

    body.bkntc_td_landing_page .bkntc-td-reviews-score {
        justify-self: end;
    }
}

body.bkntc_td_landing_page .bkntc-rating-reviews-tabs {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
}

body.bkntc_td_landing_page .bkntc-rating-tab {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-family: "Roboto", "Open Sans", sans-serif;
    font-size: 0.75rem;
    line-height: 1.3334;
    letter-spacing: 0.009375rem;
    color: #666666;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
}

body.bkntc_td_landing_page .bkntc-rating-tab.is-active {
    color: #ff6f00;
}

body.bkntc_td_landing_page .bkntc-rating-tab:focus-visible {
    outline: 0.125rem solid #ff6f00;
    outline-offset: 0.125rem;
    border-radius: 999rem;
}

body.bkntc_td_landing_page .bkntc-rating-tab[disabled],
body.bkntc_td_landing_page .bkntc-rating-tab[aria-disabled="true"] {
    opacity: 0.5;
    cursor: not-allowed;
}

body.bkntc_td_landing_page .bkntc-rating-tab-icon {
    width: 1.25rem;
    height: 1.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

body.bkntc_td_landing_page .bkntc-rating-tab-icon svg {
    width: 1rem;
    height: 1rem;
    display: block;
}

body.bkntc_td_landing_page .bkntc-rating-reviews h2 {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 600;
    color: #0a0a0a;
    font-family: "Plus Jakarta Sans", "Open Sans", sans-serif;
}

body.bkntc_td_landing_page .bkntc-td-reviews-score {
    font-family: "Inter", "Open Sans", sans-serif;
    font-size: 1.25rem;
    line-height: 1.4;
    color: #0f0f0f;
    display: inline-flex;
    align-items: baseline;
    gap: 0.25rem;
    flex-wrap: wrap;
}

body.bkntc_td_landing_page .bkntc-rating-score {
    display: inline-flex;
    align-items: baseline;
    gap: 0.25rem;
}

body.bkntc_td_landing_page .bkntc-rating-score-value {
    font-weight: 700;
}

body.bkntc_td_landing_page .bkntc-rating-score-count {
    font-weight: 400;
}

body.bkntc_td_landing_page .bkntc-rating-display {
    display: none;
}

body.bkntc_td_landing_page .bkntc-rating-reviews[data-rating-view="store"] .bkntc-rating-display[data-rating-type="store"],
body.bkntc_td_landing_page .bkntc-rating-reviews[data-rating-view="staff"] .bkntc-rating-display[data-rating-type="staff"] {
    display: inline-flex;
}

body.bkntc_td_landing_page .bkntc-rating-summary {
    display: none;
}

body.bkntc_td_landing_page .bkntc-rating-summary-main {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

body.bkntc_td_landing_page .bkntc-rating-summary-value {
    font-size: 2.25rem;
    font-weight: 700;
    color: var(--bk-text-primary);
    line-height: 1.1;
}

body.bkntc_td_landing_page .bkntc-rating-summary-meta {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    color: var(--bk-text-secondary);
    font-size: 0.85rem;
}

body.bkntc_td_landing_page .bkntc-rating-summary-count {
    font-size: 0.8rem;
    color: var(--bk-text-muted);
}

body.bkntc_td_landing_page .bkntc-rating-summary-stars {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
}

body.bkntc_td_landing_page .bkntc-rating-summary-stars img {
    width: 0.9rem;
    height: 0.9rem;
}

body.bkntc_td_landing_page .bkntc-rating-summary-bars {
    display: grid;
    gap: 0.5rem;
}

body.bkntc_td_landing_page .bkntc-rating-summary-row {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.5rem;
}

body.bkntc_td_landing_page .bkntc-rating-summary-level {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--bk-text-secondary);
    min-width: 1rem;
    text-align: right;
}

body.bkntc_td_landing_page .bkntc-rating-summary-track {
    height: 0.35rem;
    border-radius: 999rem;
    background: var(--bk-base-200);
    overflow: hidden;
}

body.bkntc_td_landing_page .bkntc-rating-summary-row .bkntc-rating-summary-count {
    min-width: 2.25rem;
    text-align: right;
}

body.bkntc_td_landing_page .bkntc-rating-summary-fill {
    display: block;
    height: 100%;
    width: var(--bkntc-rating-fill, 0%);
    background: var(--bk-accent-500);
    border-radius: inherit;
    transition: width var(--bk-transition);
}

body.bkntc_td_landing_page .bkntc-rating-review-list {
    display: grid;
    gap: 1rem;
}

body.bkntc_td_landing_page .bkntc-rating-review-card {
    border: 0.0625rem solid #cfcfcf;
    border-radius: 1.25rem;
    background: #ffffff;
    padding: 1.25rem;
    display: grid;
    gap: 0.75rem;
}

body.bkntc_td_landing_page .bkntc-rating-review-header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas:
        "avatar meta"
        "avatar staff"
        "stars stars";
    align-items: center;
    column-gap: 0.75rem;
    row-gap: 0.5rem;
}

@media (min-width: 48rem) {
    body.bkntc_td_landing_page .bkntc-rating-review-header {
        grid-template-columns: auto minmax(0, 1fr) auto;
        grid-template-areas:
            "avatar meta stars"
            "avatar staff stars";
    }
}

body.bkntc_td_landing_page .bkntc-rating-review-avatar {
    width: 2rem;
    height: 2rem;
    border-radius: 999rem;
    overflow: hidden;
    background: #cfcfcf;
    flex: 0 0 auto;
    grid-area: avatar;
}

body.bkntc_td_landing_page .bkntc-rating-review-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

body.bkntc_td_landing_page .bkntc-rating-review-meta {
    display: grid;
    gap: 0.125rem;
    grid-area: meta;
}

body.bkntc_td_landing_page .bkntc-rating-review-name {
    font-family: "Inter", "Open Sans", sans-serif;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.4286;
    color: #0f0f0f;
}

body.bkntc_td_landing_page .bkntc-rating-review-date {
    font-family: "Open Sans", "Inter", "Plus Jakarta Sans", "Roboto", sans-serif;
    font-size: 0.75rem;
    color: #949494;
    font-weight: 400;
    letter-spacing: 0;
}

body.bkntc_td_landing_page .bkntc-rating-review-staff {
    display: none;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    grid-area: staff;
    font-family: "Open Sans", "Inter", "Plus Jakarta Sans", "Roboto", sans-serif;
    font-size: 0.75rem;
    line-height: 1.3334;
    color: #666666;
}

body.bkntc_td_landing_page .bkntc-rating-reviews[data-rating-view="staff"] .bkntc-rating-review-staff {
    display: flex;
}

body.bkntc_td_landing_page .bkntc-rating-review-staff-info {
    display: grid;
    gap: 0.125rem;
}

body.bkntc_td_landing_page .bkntc-rating-review-staff-avatar {
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 999rem;
    overflow: hidden;
    border: 0.0625rem solid #e2e2e2;
    background: #f5f5f5;
    flex-shrink: 0;
}

body.bkntc_td_landing_page .bkntc-rating-review-staff-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

body.bkntc_td_landing_page .bkntc-rating-review-staff-label {
    font-size: 0.625rem;
    text-transform: uppercase;
    letter-spacing: 0.0625rem;
    color: #949494;
    font-weight: 600;
}

body.bkntc_td_landing_page .bkntc-rating-review-staff-name {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #0f0f0f;
}

body.bkntc_td_landing_page .bkntc-rating-review-staff-role {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.5rem;
    border-radius: 999rem;
    border: 0.0625rem solid #e6e6e6;
    background: #f8f8f8;
    color: #666666;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.01rem;
}

body.bkntc_td_landing_page .bkntc-rating-review-score {
    margin-left: auto;
    display: none;
}

body.bkntc_td_landing_page .bkntc-rating-review-stars {
    align-items: center;
    gap: 0.25rem;
    margin-left: 0;
    flex-shrink: 0;
    grid-area: stars;
    justify-self: start;
}

@media (min-width: 48rem) {
    body.bkntc_td_landing_page .bkntc-rating-review-stars {
        justify-self: end;
    }
}

body.bkntc_td_landing_page .bkntc-rating-review-stars img {
    width: 1rem;
    height: 1rem;
    filter: grayscale(1) brightness(0.8);
}

body.bkntc_td_landing_page .bkntc-rating-review-text {
    margin: 0;
    font-family: "Roboto", "Open Sans", sans-serif;
    font-size: 0.875rem;
    line-height: 1.1429;
    color: #0f0f0f;
    font-weight: 400;
    letter-spacing: 0;
}

body.bkntc_td_landing_page .bkntc-rating-pagination {
    display: none;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
}

body.bkntc_td_landing_page .bkntc-rating-reviews.is-expanded .bkntc-rating-pagination {
    display: flex;
}

body.bkntc_td_landing_page .bkntc-rating-page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    padding: 0.35rem 0.7rem;
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-base-200);
    color: var(--bk-text-primary);
    font-size: 0.75rem;
    font-weight: 600;
    text-decoration: none;
    transition: background var(--bk-transition), border-color var(--bk-transition), color var(--bk-transition);
}

body.bkntc_td_landing_page .bkntc-rating-page-link:hover {
    border-color: var(--bk-primary-500);
    background: var(--bk-primary-100);
    color: var(--bk-primary-600);
}

body.bkntc_td_landing_page .bkntc-rating-page-link.is-active {
    border-color: var(--bk-primary-500);
    background: var(--bk-primary-500);
    color: var(--bk-primary-content);
}

body.bkntc_td_landing_page .bkntc-rating-page-link.is-disabled {
    opacity: 0.5;
    pointer-events: none;
}

.bkntc-td-map-marker-icon {
    background: transparent;
    border: none;
    overflow: visible;
}

.bkntc-td-map-marker {
    --bkntc-marker-bg: var(--bk-primary-500);
    --bkntc-marker-border: rgba(15, 23, 42, 0.12);
    --bkntc-marker-core: #ffffff;
    --bkntc-marker-text: #ffffff;
    width: 2.6rem;
    height: 3.35rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    border: none;
    background: transparent;
    position: relative;
}

.bkntc-td-map-marker svg {
    width: 100%;
    height: 100%;
    display: block;
    filter: drop-shadow(0 0.2rem 0.35rem rgba(15, 23, 42, 0.16));
}

.bkntc-td-map-marker .bkntc-td-map-marker-pin {
    fill: var(--bkntc-marker-bg);
    stroke: var(--bkntc-marker-border);
    stroke-width: 1.5;
}

.bkntc-td-map-marker .bkntc-td-map-marker-core {
    fill: var(--bkntc-marker-core);
}

.bkntc-td-map-marker span {
    position: absolute;
    top: 1.2rem;
    left: 50%;
    transform: translate(-50%, -50%);
    line-height: 1;
    z-index: 1;
    color: var(--bkntc-marker-text);
    width: 1.7rem;
    text-align: center;
}

.bkntc-td-map-marker .bkntc-td-map-marker-text {
    fill: var(--bkntc-marker-text);
    font-size: 1.05rem;
    font-weight: 700;
    font-family: inherit;
    paint-order: stroke;
    stroke: rgba(15, 23, 42, 0.35);
    stroke-width: 1px;
}

.bkntc-td-map-marker.is-active {
    --bkntc-marker-border: var(--bk-accent-500);
}

.bkntc-td-map-marker.is-active svg {
    filter: drop-shadow(0 0.2rem 0.35rem rgba(15, 23, 42, 0.16)) drop-shadow(0 0 0.4rem rgba(255, 111, 0, 0.35));
}

.bkntc-td-map-marker--cluster {
    font-size: 0.85rem;
    --bkntc-marker-bg: var(--bk-base-200);
    --bkntc-marker-core: var(--bk-base-100);
    --bkntc-marker-text: var(--bk-text-primary);
}

.bkntc-td-map-marker--rating-1 {
    --bkntc-marker-bg: var(--bk-primary-500);
}

.bkntc-td-map-marker--rating-2 {
    --bkntc-marker-bg: var(--bk-primary-500);
}

.bkntc-td-map-marker--rating-3 {
    --bkntc-marker-bg: var(--bk-primary-500);
}

.bkntc-td-map-marker--rating-4 {
    --bkntc-marker-bg: var(--bk-primary-500);
}

.bkntc-td-map-marker--rating-5 {
    --bkntc-marker-bg: var(--bk-primary-500);
}

/* 18. Booking Panel Refresh */
.booknetic_appointment {
    background: linear-gradient(180deg, var(--bk-base-100) 0%, var(--bk-base-200) 100%);
    border: var(--bk-border-width) solid var(--bk-border);
    --bk-accent: #ff6f00;
    --bk-accent-100: #ffe6cc;
    --bk-accent-600: #e65f00;
    --bk-accent-content: #ffffff;
}

.booknetic_appointment_steps {
    background: linear-gradient(160deg, var(--bk-primary-500) 0%, var(--bk-primary-600) 100%);
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.booknetic_appointment_steps::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 15% 10%, rgba(255, 255, 255, 0.14), transparent 45%),
        radial-gradient(circle at 85% 70%, rgba(255, 255, 255, 0.08), transparent 55%);
    pointer-events: none;
}

.booknetic_appointment_steps_body,
.booknetic_appointment_steps_footer {
    position: relative;
    z-index: 1;
}

.booknetic_appointment_steps_body {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.booknetic_appointment_step_element {
    border-radius: 0.75rem;
    padding: 0.65rem 0.75rem;
    gap: 0.75rem;
    background: rgba(255, 255, 255, 0.08);
    transition: background var(--bk-transition), transform var(--bk-transition), color var(--bk-transition);
}

.booknetic_appointment_step_element:hover {
    background: rgba(255, 255, 255, 0.14);
}

.booknetic_appointment_step_element.booknetic_active_step {
    background: rgba(255, 255, 255, 0.2);
    box-shadow: 0 0.4rem 1.2rem rgba(15, 23, 42, 0.2);
}

.booknetic_appointment_steps .booknetic_badge {
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    border-color: rgba(255, 255, 255, 0.25);
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    font-weight: 600;
}

.booknetic_appointment_step_element.booknetic_active_step .booknetic_badge {
    background: var(--bk-accent);
    border-color: var(--bk-accent);
    color: var(--bk-accent-content);
}

.booknetic_appointment_steps_footer {
    margin-top: auto;
    padding-top: 1.25rem;
    border-top: 0.0625rem solid rgba(255, 255, 255, 0.2);
}

.booknetic_appointment_steps_footer_txt1 {
    font-size: 0.7rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.75);
}

.booknetic_appointment_steps_footer_txt2 {
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: #fff;
    font-variant-numeric: tabular-nums;
}

.booknetic_appointment_container_header {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.fs-booking-header-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.fs-booking-header-actions {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
}

.booknetic_appointment_container_header_cart {
    display: flex;
    align-items: center;
}

.booknetic_appointment_container_header_text {
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--bk-text-primary);
}

.booknetic_appointment_container_body {
    min-height: 0;
    padding-bottom: 3rem;
}

.booknetic_appointment.bkntc-td-auth-active .booknetic_appointment_container_body {
    padding-bottom: 1.25rem;
}

.booknetic_appointment_container_footer {
    flex-wrap: wrap;
    gap: 0.75rem;
    flex-shrink: 0;
    align-items: center;
}

.booknetic_appointment .booknetic_btn_primary {
    background: var(--bk-accent);
    border-color: var(--bk-accent);
    color: var(--bk-accent-content);
}

.booknetic_appointment .booknetic_appointment_container_footer .booknetic_btn_primary {
    background: var(--bk-accent);
    border-color: var(--bk-accent);
    color: var(--bk-accent-content);
}

.booknetic_appointment .booknetic_appointment_container_footer .booknetic_btn_primary:hover,
.booknetic_appointment .booknetic_appointment_container_footer .booknetic_btn_primary:focus {
    background: var(--bk-accent-600);
    border-color: var(--bk-accent-600);
    color: var(--bk-accent-content);
}

.booknetic_appointment .booknetic_btn_primary:hover,
.booknetic_appointment .booknetic_btn_primary:focus {
    background: var(--bk-accent-600);
    border-color: var(--bk-accent-600);
    color: var(--bk-accent-content);
}

.booknetic_appointment .booknetic_btn_secondary {
    border-color: var(--bk-border-strong);
}

.fs-booking-selection {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    border-radius: var(--bk-radius-box);
    background: linear-gradient(90deg, var(--bk-base-100) 0%, var(--bk-base-200) 100%);
    border: var(--bk-border-width) solid transparent;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transform: translateY(-0.25rem);
    padding: 0;
    pointer-events: none;
    transition: max-height 250ms ease, opacity 200ms ease, transform 200ms ease, padding 200ms ease, border-color 200ms ease;
}

.fs-booking-selection--visible {
    max-height: 10rem;
    opacity: 1;
    transform: translateY(0);
    padding: 0.65rem 0.75rem;
    border-color: var(--bk-border);
    pointer-events: auto;
}

.fs-booking-selection-item {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.45rem 0.65rem;
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-surface);
    min-width: 10.5rem;
    flex: 1 1 auto;
}

.fs-booking-selection-item--hidden {
    display: none;
}

.fs-booking-selection-avatar {
    width: 2.4rem;
    height: 2.4rem;
    border-radius: var(--bk-radius-round);
    overflow: hidden;
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-base-200);
    flex-shrink: 0;
}

.fs-booking-selection-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fs-booking-selection-meta {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.fs-booking-selection-label {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--bk-text-muted);
}

.fs-booking-selection-value {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--bk-text-primary);
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
}

.fs-booking-selection-dot {
    color: var(--bk-text-muted);
    margin: 0 0.35rem;
    line-height: 1;
}

.fs-booking-selection-rating {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    line-height: 1;
}

.fs-booking-selection-star {
    color: var(--bk-warning);
    font-size: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    transform: translateY(0.05rem);
    margin-left: 0.1rem;
    vertical-align: middle;
}

.booknetic_appointment .booknetic_powered_by--header {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.75rem;
    color: var(--bk-text-muted);
    text-decoration: none;
}

.booknetic_card_container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: 1rem;
}

.booknetic_appointment_container_body [data-step-id="staff"] .booknetic_card {
    display: flex;
    align-items: center;
    gap: 1rem;
    text-align: left;
    padding: 1rem 1.25rem;
}

.booknetic_appointment_container_body [data-step-id="staff"] .booknetic_card_image {
    width: 3.25rem;
    height: 3.25rem;
    margin: 0;
}

.booknetic_appointment_container_body [data-step-id="staff"] .booknetic_card_title_first {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
    font-weight: 600;
    font-size: 1rem;
    color: var(--bk-text-primary);
}

.booknetic_appointment_container_body [data-step-id="staff"] .bkntc-staff-dot {
    color: var(--bk-text-muted);
}

.booknetic_appointment_container_body [data-step-id="staff"] .bkntc-staff-rating {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    font-weight: 600;
    color: var(--bk-text-primary);
    line-height: 1;
}

.booknetic_appointment_container_body [data-step-id="staff"] .bkntc-staff-star {
    color: var(--bk-warning);
    font-size: 0.8rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    transform: translateY(0.05rem);
    margin-left: 0.1rem;
    vertical-align: middle;
}

.booknetic_appointment_container_body [data-step-id="staff"] .booknetic_card_description {
    font-size: 0.85rem;
    color: var(--bk-text-muted);
}

.booknetic_appointment_container_body [data-step-id="staff"] .booknetic_staff_profession {
    font-weight: 600;
    color: var(--bk-text-secondary);
}

.booknetic_appointment_container_body [data-step-id="staff"] .booknetic_card.booknetic_card_selected {
    border-color: var(--bk-accent);
    box-shadow: var(--bk-shadow-hover);
}

.booknetic_appointment_container_body [data-step-id="information"] .form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.25rem;
    margin: 0 0 1rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .form-row > .form-group {
    margin-bottom: 0;
}

.booknetic_appointment_container_body [data-step-id="information"] .form-row > [class*="col-"] {
    width: 100%;
    max-width: 100%;
    flex: 1 1 auto;
    padding-left: 0;
    padding-right: 0;
}

.booknetic_appointment_container_body [data-step-id="information"] .form-row > .col-md-12,
.booknetic_appointment_container_body [data-step-id="information"] .form-row > .col-lg-12,
.booknetic_appointment_container_body [data-step-id="information"] .form-row > .col-sm-12 {
    grid-column: 1 / -1;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc_input_phone-container {
    width: 100%;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc_input_phone-container .iti {
    width: 100%;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc_input_phone-container .iti__selected-country {
    background: var(--bk-surface-muted);
    border-right: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-field) 0 0 var(--bk-radius-field);
    padding: 0 0.5rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc_input_phone-container .iti__selected-dial-code {
    font-weight: 600;
    color: var(--bk-text-primary);
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc_input_phone-container .iti--separate-dial-code input[type="tel"] {
    padding-left: 5.5rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-step {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-step[data-bkntc-info-mode="self"] [data-bkntc-customer-info="true"],
.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-step[data-bkntc-auth-required="1"] [data-bkntc-customer-info="true"] {
    display: none;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-step[data-bkntc-editing="1"] [data-bkntc-customer-info="true"] {
    display: none;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-step[data-bkntc-info-mode="self"] .bkntc-info-use-self {
    display: none;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-step[data-bkntc-info-mode="other"] .bkntc-info-book-other {
    display: none;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-step[data-bkntc-info-mode="other"] .bkntc-info-card__edit {
    display: none;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-step[data-bkntc-editing="1"] .bkntc-info-summary__actions {
    display: none;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-summary {
    background: var(--bk-surface);
    border: 0.0625rem solid #cfcfcf;
    border-radius: 0.75rem;
    padding: 1rem 1.25rem;
    box-shadow: none;
    font-family: "Roboto", "Open Sans", sans-serif;
    position: relative;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-card__header {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 0;
    margin: 0;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-card__title {
    font-weight: 700;
    color: var(--bk-accent);
    font-size: 1rem;
    line-height: 1rem;
    letter-spacing: 0.009375rem;
    margin: 0;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-card__edit {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    border-radius: 0.4375rem;
    border: 0.0625rem solid var(--bk-border);
    background: var(--bk-surface);
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    background-clip: padding-box;
    z-index: 2;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-card__edit-icon {
    width: 0.875rem;
    height: 0.875rem;
    display: block;
    background: none;
    object-fit: contain;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-card__edit.is-editing {
    background: var(--bk-accent);
    border-color: var(--bk-accent);
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-card__edit.is-editing .bkntc-info-card__edit-icon {
    filter: none;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-card__edit:focus-visible {
    outline: none;
    box-shadow: var(--bk-focus-ring);
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-card__details {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-step[data-bkntc-editing="1"] .bkntc-info-card__details {
    padding-right: 2.5rem;
    padding-top: 0.5rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-card__row {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
    padding: 0.75rem 0;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-card__row:first-child {
    padding-top: 0;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-card__row:last-child {
    padding-bottom: 0;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-card__row + .bkntc-info-card__row {
    border-top: 0.0625rem solid #cfcfcf;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-card__label {
    font-weight: 400;
    color: #666666;
    font-size: 0.75rem;
    line-height: 0.75rem;
    letter-spacing: 0.009375rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-card__value {
    color: #0f0f0f;
    text-align: left;
    font-size: 0.875rem;
    line-height: 0.875rem;
    letter-spacing: 0.009375rem;
    font-weight: 600;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-card__input {
    display: none;
    width: 100%;
    border-radius: 0.5rem;
    border: 0.0625rem solid var(--bk-border);
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    color: var(--bk-text-primary);
    background: #ffffff;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-card__input:focus {
    outline: none;
    border-color: var(--bk-accent);
    box-shadow: var(--bk-focus-ring);
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-step[data-bkntc-editing="1"] [data-bkntc-card-value="phone"] {
    display: none;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-step[data-bkntc-editing="1"] [data-bkntc-card-input="phone"] {
    display: block;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-summary__actions {
    margin-top: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    align-items: center;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-summary__actions .booknetic_btn_link {
    color: var(--bk-accent);
    font-family: "Open Sans", "Roboto", sans-serif;
    font-size: 0.75rem;
    line-height: 1.5rem;
    font-weight: 400;
    letter-spacing: 0;
    text-decoration: underline;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth {
    background: var(--bk-surface);
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-card);
    padding: 1rem 1.1rem;
    box-shadow: var(--bk-shadow-soft);
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 {
    padding: 1rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.4rem;
    background: var(--bk-surface-muted);
    padding: 0.35rem;
    border-radius: 1.4rem;
    margin-bottom: 1rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__tab {
    border: none;
    background: transparent;
    color: var(--bk-text-secondary);
    padding: 0.6rem 0.75rem;
    border-radius: 1.1rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    text-transform: none;
    text-decoration: none;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__tab.is-active {
    background: var(--bk-accent);
    color: var(--bk-surface);
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__tabs .bkntc-info-auth__tab {
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__form {
    gap: 0.9rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.8rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__row .bkntc-info-auth__control input {
    padding-left: 2.2rem;
    padding-right: 1rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__field {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__field label {
    font-weight: 600;
    color: var(--bk-text-primary);
    font-size: 0.85rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__control {
    position: relative;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__input,
.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__control input {
    width: 100%;
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: 1.2rem;
    padding: 0.8rem 2.6rem 0.8rem 2.6rem;
    background: var(--bk-surface);
    color: var(--bk-text-primary);
    font-size: 0.95rem;
    line-height: 1.3;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__control input[type="password"]::-ms-reveal,
.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__control input[type="password"]::-ms-clear {
    display: none;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__control input[type="password"]::-webkit-credentials-auto-fill-button,
.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__control input[type="password"]::-webkit-textfield-decoration-container {
    display: none;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__control input:focus {
    border-color: var(--bk-accent);
    outline: 0.15rem solid var(--bk-accent);
    outline-offset: 0.1rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__control input.booknetic_input_error {
    border-color: #d92d20;
    box-shadow: 0 0 0 0.15rem rgba(217, 45, 32, 0.2);
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__icon {
    position: absolute;
    left: 0.9rem;
    top: 50%;
    transform: translateY(-50%);
    width: 1.2rem;
    height: 1.2rem;
    color: var(--bk-text-secondary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__icon i {
    font-size: 1.1rem;
    line-height: 1;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__icon svg {
    width: 100%;
    height: 100%;
    display: block;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__link-row {
    display: flex;
    justify-content: flex-end;
    margin-top: -0.2rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__link {
    color: var(--bk-text-secondary);
    font-size: 0.85rem;
    text-decoration: underline;
    text-underline-offset: 0.2rem;
    border: none;
    background: transparent;
    padding: 0;
    cursor: pointer;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1.is-forgot-open [data-auth-role="signin-password"],
.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1.is-forgot-open [data-auth-role="signin-submit"] {
    display: none;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__notice {
    display: flex;
    gap: 0.65rem;
    padding: 0.75rem;
    border-radius: 1rem;
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-surface-muted);
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__notice-icon {
    width: 1.2rem;
    height: 1.2rem;
    color: var(--bk-accent);
    flex-shrink: 0;
    margin-top: 0.1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__notice-icon i {
    font-size: 1.1rem;
    line-height: 1;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__toggle {
    position: absolute;
    right: 0.7rem;
    top: 50%;
    transform: translateY(-50%);
    border: none;
    background: transparent;
    padding: 0.35rem;
    color: var(--bk-text-secondary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    min-width: 2rem;
    min-height: 2rem;
    max-width: 2rem;
    max-height: 2rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__toggle svg {
    width: 100%;
    height: 100%;
    display: block;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__toggle-icon--hide {
    display: none;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__toggle.is-visible .bkntc-info-auth__toggle-icon--show {
    display: none;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__toggle.is-visible .bkntc-info-auth__toggle-icon--hide {
    display: inline-flex;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__notice-title {
    font-weight: 600;
    color: var(--bk-text-primary);
    font-size: 0.9rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__notice-copy {
    font-size: 0.85rem;
    color: var(--bk-text-secondary);
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__helper {
    display: none;
    padding: 0.7rem;
    border-radius: 1rem;
    border: var(--bk-border-width) solid var(--bk-warning);
    background: var(--bk-warning-soft);
    color: var(--bk-warning-content);
    font-size: 0.85rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__helper.is-visible {
    display: block;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__legal {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: var(--bk-text-secondary);
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__submit {
    width: 100%;
    border-radius: 1rem;
    padding: 0.85rem 1rem;
    font-size: 1rem;
    text-transform: none;
    letter-spacing: 0;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__submit[data-auth-submit="signup"] {
    background: var(--bk-primary-500);
    border-color: var(--bk-primary-500);
    color: var(--bk-primary-content);
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__submit[data-auth-submit="signin"] {
    background: var(--bk-primary-500);
    border-color: var(--bk-primary-500);
    color: var(--bk-primary-content);
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__submit[data-auth-submit="signin"]:hover,
.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__submit[data-auth-submit="signin"]:focus {
    background: var(--bk-primary-600);
    border-color: var(--bk-primary-600);
    color: var(--bk-primary-content);
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__submit[data-auth-submit="signup"]:hover,
.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__submit[data-auth-submit="signup"]:focus {
    background: var(--bk-primary-600);
    border-color: var(--bk-primary-600);
    color: var(--bk-primary-content);
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__forgot {
    display: none;
    padding: 0.75rem;
    border-radius: 1rem;
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-surface-muted);
    color: var(--bk-text-secondary);
    font-size: 0.85rem;
    gap: 0.6rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__forgot.is-visible {
    display: grid;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__forgot-submit {
    width: 100%;
    border-radius: 0.85rem;
    font-size: 0.9rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__forgot-note {
    font-size: 0.8rem;
    color: var(--bk-text-secondary);
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__switch {
    text-align: center;
    font-size: 0.85rem;
    color: var(--bk-text-secondary);
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__switch-link {
    border: none;
    background: transparent;
    padding: 0;
    margin-left: 0.2rem;
    color: var(--bk-text-primary);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.2rem;
    cursor: pointer;
}

@media (min-width: 48rem) {
    .booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth--v1 .bkntc-info-auth__row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth__header {
    margin-bottom: 0.75rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth__title {
    font-weight: 600;
    color: var(--bk-text-primary);
    margin-bottom: 0.25rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth__subtitle {
    color: var(--bk-text-secondary);
    font-size: 0.9rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth__tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth__tab {
    border: var(--bk-border-width) solid var(--bk-border);
    background: var(--bk-surface-muted);
    color: var(--bk-text-primary);
    padding: 0.4rem 0.9rem;
    border-radius: var(--bk-radius-round);
    font-weight: 600;
    cursor: pointer;
    transition: 0.2s ease;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth__tab.is-active {
    background: var(--bk-accent);
    color: var(--bk-surface);
    border-color: var(--bk-accent);
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth__panel {
    display: none;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth[data-auth-mode="signin"] [data-auth-panel="signin"],
.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth[data-auth-mode="signup"] [data-auth-panel="signup"] {
    display: block;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth__form {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth__pending {
    display: none;
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: var(--bk-border-width) solid var(--bk-border);
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth__pending-title {
    font-weight: 600;
    color: var(--bk-text-primary);
    margin-bottom: 0.35rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth__pending-copy {
    color: var(--bk-text-secondary);
    font-size: 0.9rem;
    margin-bottom: 0.5rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-auth__pending-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-social {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

@media (max-width: 48rem) {
    .booknetic_appointment_container_body [data-step-id="information"] .form-row {
        grid-template-columns: 1fr;
    }

    .booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-summary__row {
        flex-direction: column;
        align-items: flex-start;
    }

    .booknetic_appointment_container_body [data-step-id="information"] .bkntc-info-summary__value {
        text-align: left;
    }
}

.booknetic_appointment_container_body [data-step-id="staff"] .booknetic_card_container {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 75rem) {
    .booknetic_appointment_container_body [data-step-id="staff"] .booknetic_card_container {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 48rem) {
    .booknetic_appointment_container_body [data-step-id="staff"] .booknetic_card_container {
        grid-template-columns: 1fr;
    }
}

.bkntc_service_list {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.booknetic_service_category {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--bk-text-muted);
    margin-top: 0.9rem;
}

.booknetic_service_card {
    text-align: left;
    padding: 0.95rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.booknetic_service_card_header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.booknetic_service_card_title {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--bk-text-primary);
}

.booknetic_service_duration_span {
    font-size: 0.85rem;
    color: var(--bk-text-muted);
}

.booknetic_service_card_price {
    background: var(--bk-accent-100);
    border-radius: var(--bk-radius-round);
    padding: 0.35rem 0.75rem;
    border: var(--bk-border-width) solid var(--bk-accent-100);
    color: var(--bk-accent-600);
    font-weight: 600;
    white-space: nowrap;
}

.booknetic_service_card_description {
    font-size: 0.9rem;
    color: var(--bk-text-secondary);
    line-height: 1.5;
}

.booknetic_view_more_service_notes_button,
.booknetic_view_less_service_notes_button {
    display: inline-flex;
    margin-top: 0.5rem;
    color: var(--bk-accent-600);
    font-weight: 600;
    cursor: pointer;
}

.booknetic_service_card.booknetic_service_card_selected {
    border-color: var(--bk-accent);
    box-shadow: var(--bk-shadow-hover);
}

.booknetic_service_card_price[data-from-label]::before {
    content: attr(data-from-label) " ";
    color: var(--bk-text-muted);
    font-weight: 700;
    margin-right: 0.25rem;
}

.booknetic_service_card.bkntc-custom-duration-has-selection .booknetic_service_card_price[data-from-label]::before {
    content: "";
    display: none;
}

.bkntc-custom-durations {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 1rem;
    width: 100%;
}

.bkntc-custom-durations-toggle {
    border: 0;
    background: transparent;
    display: flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0;
    cursor: pointer;
    width: 100%;
}

.bkntc-custom-durations-line {
    flex: 1 1 auto;
    height: 1px;
    background: var(--bk-border);
}

.bkntc-custom-durations-toggle-icon {
    width: 1rem;
    height: 1rem;
    border: 1px solid var(--bk-border);
    border-radius: 999px;
    position: relative;
    flex: 0 0 auto;
}

.bkntc-custom-durations-toggle-icon::after {
    content: "";
    position: absolute;
    width: 0.4rem;
    height: 0.4rem;
    border-right: 2px solid var(--bk-text-muted);
    border-bottom: 2px solid var(--bk-text-muted);
    top: 0.25rem;
    left: 0.3rem;
    transform: rotate(45deg);
}

.bkntc-custom-duration-expanded .bkntc-custom-durations-toggle-icon::after {
    transform: rotate(-135deg);
}

.bkntc-custom-durations-options {
    display: none;
    flex-direction: column;
    gap: 0.75rem;
    width: 100%;
}

.bkntc-custom-duration-expanded .bkntc-custom-durations-options {
    display: flex;
}

.bkntc-custom-duration-option {
    border: 0;
    background: transparent;
    padding: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    column-gap: 0.75rem;
    row-gap: 0.25rem;
    align-items: center;
    text-align: left;
    cursor: pointer;
    width: 100%;
}

.bkntc-custom-duration-label {
    font-size: 0.8rem;
    font-weight: 400;
    color: var(--bk-text-primary);
    grid-column: 1;
    grid-row: 1;
}

.bkntc-custom-duration-meta {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.75rem;
    color: var(--bk-text-muted);
    grid-column: 1;
    grid-row: 2;
}

.bkntc-custom-durations[data-show-labels="0"] .bkntc-custom-duration-meta {
    grid-row: 1;
}

.bkntc-custom-duration-dot {
    width: 0.125rem;
    height: 0.125rem;
    border-radius: 999px;
    background: var(--bk-text-muted);
    display: inline-block;
}

.bkntc-custom-duration-price {
    font-weight: 700;
}

.bkntc-custom-duration-check {
    width: 1.5rem;
    height: 1.5rem;
    border: 1px solid var(--bk-border);
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    grid-column: 2;
    grid-row: 1 / span 2;
    justify-self: end;
}

.bkntc-custom-duration-option.is-selected .bkntc-custom-duration-check {
    border-color: var(--bk-accent);
}

.bkntc-custom-duration-option.is-selected .bkntc-custom-duration-check::after {
    content: "";
    width: 0.35rem;
    height: 0.65rem;
    border-right: 2px solid var(--bk-accent);
    border-bottom: 2px solid var(--bk-accent);
    transform: rotate(45deg);
}

.bkntc-custom-duration-divider {
    height: 1px;
    background: var(--bk-border);
    width: 100%;
    margin: 0;
}

.booknetic_date_time_area {
    display: grid;
    gap: 1rem;
    width: 100%;
    align-content: start;
}

@media (min-width: 62em) {
    .booknetic_date_time_area {
        grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
        align-items: start;
    }
}

.booknetic_calendar_div {
    box-shadow: var(--bk-shadow-soft);
    min-width: 0;
    width: 100%;
}

.booknetic_calendar_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
    font-weight: 600;
}

.booknetic_prev_month,
.booknetic_next_month {
    width: 2.2rem;
    height: 2.2rem;
    border-radius: var(--bk-radius-round);
    background: var(--bk-base-200);
    color: var(--bk-text-secondary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background var(--bk-transition), transform var(--bk-transition);
}

.booknetic_prev_month:hover,
.booknetic_next_month:hover {
    background: var(--bk-primary-100);
    transform: translateY(-0.1rem);
}

.booknetic_calendar {
    display: grid;
    gap: 0.35rem;
}

.booknetic_calendar_rows {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.35rem;
}

.booknetic_week_names .booknetic_td {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--bk-text-muted);
    text-align: center;
    padding: 0.25rem 0;
}

.booknetic_calendar_days {
    border-radius: var(--bk-radius-field);
    border: var(--bk-border-width) solid transparent;
    transition: border-color var(--bk-transition), box-shadow var(--bk-transition), transform var(--bk-transition);
    cursor: pointer;
}

.booknetic_calendar_days:not(.booknetic_calendar_empty_day) {
    border-color: var(--bk-border);
}

.booknetic_calendar_days:not(.booknetic_calendar_empty_day):not(.booknetic_calendar_selected_day):hover {
    border-color: var(--bk-primary-500);
    box-shadow: inset 0 0 0 0.06rem var(--bk-primary-100);
    transform: none;
    position: relative;
    z-index: 1;
}

.booknetic_calendar_days > div {
    min-height: 2.5rem;
    padding: 0.25rem 0;
    border-radius: inherit;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.15rem;
    font-weight: 500;
    color: var(--bk-text-primary);
}

.booknetic_calendar_days:not(.booknetic_calendar_empty_day):not(.booknetic_calendar_selected_day):hover > div {
    background: var(--bk-primary-100);
}

.booknetic_calendar_days.booknetic_calendar_loading_day {
    border-color: var(--bk-accent);
    pointer-events: none;
    cursor: default;
}

.booknetic_calendar_days.booknetic_calendar_loading_day > div {
    gap: 0.25rem;
}

.booknetic_calendar_days.booknetic_calendar_loading_day > div::after {
    content: "";
    width: 0.65rem;
    height: 0.65rem;
    border-radius: 999rem;
    border: 0.12rem solid var(--bk-border);
    border-top-color: var(--bk-accent);
    animation: bkntc-spin 0.8s linear infinite;
}

.booknetic_calendar_days.booknetic_calendar_pending_day {
    pointer-events: none;
    cursor: default;
    opacity: 0.6;
}

.booknetic_calendar_days.booknetic_calendar_pending_day > div::after {
    content: "";
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 999rem;
    border: 0.12rem solid var(--bk-border);
    border-top-color: var(--bk-primary-500);
    animation: bkntc-spin 0.8s linear infinite;
}

.booknetic_calendar_days.booknetic_calendar_selected_day > div {
    background: var(--bk-accent);
    color: var(--bk-accent-content);
    box-shadow: var(--bk-shadow-hover);
}

.booknetic_calendar_empty_day {
    opacity: 0.35;
    pointer-events: none;
    cursor: default;
}

.booknetic_calendar_days .booknetic_date_group_num {
    font-size: 0.65rem;
    color: var(--bk-text-muted);
    margin-left: 0.25rem;
}

.booknetic_calendar_days.booknetic_calendar_selected_day .booknetic_date_group_num {
    color: var(--bk-accent-content);
}

.booknetic_time_div {
    background: var(--bk-surface);
    border-radius: var(--bk-radius-box);
    padding: 1.25rem;
    border: var(--bk-border-width) solid var(--bk-border);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-height: 100%;
    min-width: 0;
    width: 100%;
}

.booknetic_times_header {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.booknetic_times_head {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--bk-text-primary);
}

.booknetic_times_title {
    font-size: 0.9rem;
    color: var(--bk-text-muted);
}

.booknetic_times_list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(6.5rem, 1fr));
    gap: 0.5rem;
    max-height: 18rem;
    overflow-y: auto;
    padding: 0.2rem 0.25rem 0.35rem 0;
}

.bkntc-td-time-segments {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
    text-align: center;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--bk-text-primary);
    margin-bottom: 0.35rem;
}

.booknetic_times_list.bkntc-td-time-list--segmented {
    display: block;
}

.booknetic_times_list.bkntc-td-time-list--segmented.booknetic_times_loading {
    display: block;
}

.bkntc-td-time-columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
    align-items: start;
}

.bkntc-td-time-column {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-width: 0;
}

.booknetic_times_list.bkntc-td-time-list--segmented .booknetic_time_element {
    width: 100%;
    padding: 0.45rem 0.5rem;
}

.booknetic_times_list.bkntc-td-time-list--segmented .booknetic_time_element > div {
    font-size: 0.75rem;
    line-height: 1;
}

.booknetic_times_list.booknetic_times_loading {
    grid-template-columns: 1fr;
    min-height: 6rem;
    align-items: center;
}

.booknetic_times_loading {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--bk-text-muted);
    font-size: 0.85rem;
    padding: 0.5rem 0;
}

.booknetic_times_spinner {
    width: 0.95rem;
    height: 0.95rem;
    border-radius: 999rem;
    border: 0.12rem solid var(--bk-border);
    border-top-color: var(--bk-accent);
    animation: bkntc-spin 0.8s linear infinite;
}

.booknetic_time_element {
    border: var(--bk-border-width) solid var(--bk-border);
    border-radius: var(--bk-radius-field);
    padding: 0.5rem 0.65rem;
    text-align: center;
    background: var(--bk-base-100);
    cursor: pointer;
    transition: border-color var(--bk-transition), box-shadow var(--bk-transition), transform var(--bk-transition);
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    align-items: center;
}

.booknetic_time_element:hover {
    border-color: var(--bk-primary-500);
    box-shadow: var(--bk-shadow-soft);
    transform: translateY(-0.1rem);
    background: var(--bk-primary-100);
    color: var(--bk-text-primary);
}

.booknetic_appointment .booknetic_loading_layout {
    position: absolute;
    inset: 0;
    z-index: 60;
    background: rgba(255, 255, 255, 0.55);
}

.booknetic_appointment #booknetic_progress {
    position: absolute;
    top: 0;
    left: 0;
    height: 0.2rem;
    width: 0;
    background: var(--bk-accent);
    z-index: 70;
}

.booknetic_time_element.booknetic_selected_time {
    background: var(--bk-accent);
    border-color: var(--bk-accent);
    color: var(--bk-accent-content);
    box-shadow: var(--bk-shadow-hover);
}

.booknetic_time_group_num {
    font-size: 0.7rem;
    color: var(--bk-text-muted);
    margin-top: 0.25rem;
}

.booknetic_time_element.booknetic_selected_time .booknetic_time_group_num {
    color: var(--bk-accent-content);
}

body.bkntc_td_landing_page .bkntc_td_inline_booking_header,
#booking.bkntc_td_inline_booking .bkntc_td_inline_booking_header {
    padding: 0.75rem 1rem;
    border-radius: var(--bk-radius-box);
    background: linear-gradient(135deg, var(--bk-base-100) 0%, var(--bk-base-200) 100%);
    border: var(--bk-border-width) solid var(--bk-border);
}

body.bkntc_td_landing_page .bkntc_td_inline_booking_title,
#booking.bkntc_td_inline_booking .bkntc_td_inline_booking_title {
    font-size: 1.2rem;
    font-weight: 700;
}

body.bkntc_td_landing_page .bkntc_td_inline_booking_back,
#booking.bkntc_td_inline_booking .bkntc_td_inline_booking_back {
    background: var(--bk-base-100);
    border-color: var(--bk-border-strong);
}
