@charset "utf-8";
/* CSS Document */

/*PAGE LAYOUT FIXES /////////////////////////////////////////////////////////*/
/* Ensure proper page content height and footer positioning */
.page-content {
  min-height: calc(100vh - 120px);
  padding-bottom: 2rem;
}

/* Prevent horizontal page scrolling while allowing table scrolling */
html, body {
  overflow-x: hidden !important;
}

.wrapper {
  overflow-x: hidden;
}

/*TABLE RESPONSIVE FIXES /////////////////////////////////////////////////////////*/
/* Force horizontal scrolling for tables even when body has overflow-x: hidden */
.table-responsive {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
  width: 100% !important;
}

/* Ensure table content can trigger horizontal scroll */
.table-responsive .table {
  min-width: 800px; /* Set minimum width to force scrolling on small screens */
  white-space: nowrap;
}

/* Make sure card container doesn't prevent scrolling */
.card.overflow-hidden .table-responsive {
  overflow-x: auto !important;
}

/* Fix for legacy table-centered structures throughout project */
.table-responsive.table-centered {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
  width: 100% !important;
}

.table-responsive.table-centered .table {
  min-width: 800px !important;
  white-space: nowrap !important;
}

/* Ensure all table containers can scroll regardless of structure */
div[class*="table-responsive"] {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
}

div[class*="table-responsive"] .table {
  min-width: 800px !important;
}

/*TABLE FOOTER RESPONSIVE LAYOUT /////////////////////////////////////////////////////////*/
/* Mobile responsive fixes for table pagination and buttons */
@media (max-width: 768px) {
  /* Make table footer stack vertically on mobile */
  .card-body .row.border-top,
  .border-top .row,
  .row.border-top {
    flex-direction: column !important;
    text-align: center !important;
  }
  
  /* Only add padding if element doesn't already have p-3 class */
  .card-body .row.border-top:not(.p-3),
  .border-top .row:not(.p-3),
  .row.border-top:not(.p-3) {
    padding: 1rem !important;
  }
  
  /* Center pagination on mobile */
  .card-body .row.border-top .col-sm-auto,
  .border-top .row .col-sm-auto,
  .row.border-top .col-sm-auto {
    order: 1;
    margin: 1rem 0 !important;
    text-align: center !important;
  }
  
  /* Center pagination items */
  .pagination {
    justify-content: center !important;
    margin: 0 auto !important;
  }
  
  /* Make buttons full width on mobile */
  .card-body .row.border-top .col-sm:last-child,
  .border-top .row .col-sm:last-child,
  .row.border-top .col-sm:last-child {
    order: 2;
    margin-top: 1rem !important;
    text-align: center !important;
  }
  
  .card-body .row.border-top .col-sm:last-child .btn,
  .border-top .row .col-sm:last-child .btn,
  .row.border-top .col-sm:last-child .btn {
    width: 100% !important;
    display: block !important;
  }
  
  /* Move showing text to top */
  .card-body .row.border-top .col-sm:first-child,
  .border-top .row .col-sm:first-child,
  .row.border-top .col-sm:first-child {
    order: 0;
    margin-bottom: 1rem !important;
  }
  
  /* Stack multiple buttons */
  .card-body .row.border-top .col-sm:last-child .btn + .btn,
  .border-top .row .col-sm:last-child .btn + .btn,
  .row.border-top .col-sm:last-child .btn + .btn {
    margin-top: 0.5rem !important;
    margin-left: 0 !important;
  }
  
  /* Override inline styles that prevent centering */
  .row.border-top .col-sm[style*="text-align: right"] {
    text-align: center !important;
  }
}

/* Extra small devices (phones, 576px and down) */
@media (max-width: 575.98px) {
  .pagination {
    font-size: 0.875rem;
  }
  
  .pagination .page-link {
    padding: 0.375rem 0.5rem;
  }
  
  /* Ensure buttons have proper spacing */
  .card-body .row.border-top .col-sm:last-child,
  .border-top .row .col-sm:last-child,
  .row.border-top .col-sm:last-child {
    padding: 0 0.5rem;
  }
}

/*NAV /////////////////////////////////////////////////////////*/
.logo-lg {
  height: 44px !important;
  margin: 20px;
}

/* NAVIGATION - Base styling with margin and border radius */
.main-nav .nav-link {
  margin: 0 8px !important; /* Add margin around edges */
  border-radius: 5px !important; /* 5px border radius */
}

/* NAVIGATION HOVER & ACTIVE STATES - Replace gradient with solid blue */
.main-nav .nav-link:hover,
.main-nav .nav-link:focus,
.main-nav .nav-link.active {
  background: #1c84ee !important; /* Solid blue instead of gradient */
  background-image: none !important; /* Remove any gradient */
  color: white !important; /* Ensure text is white on blue background */
}

/* Sub-navigation - Base styling with margin and border radius */
.main-nav .sub-nav-link {
  margin: 0 8px !important; /* Add margin around edges */
  border-radius: 5px !important; /* 5px border radius */
}

/* Sub-navigation items hover & active styling */
.main-nav .sub-nav-link:hover,
.main-nav .sub-nav-link:focus,
.main-nav .sub-nav-link.active {
  background: rgba(145, 155, 165, .5)!important; /* Light grey instead of blue */
  background-image: none !important; /* Remove any gradient */
  color: #495057 !important; /* Dark grey text for contrast on light grey background */
}

/* Ensure main nav icons turn white on hover/active */
.main-nav .nav-link:hover .nav-icon,
.main-nav .nav-link:focus .nav-icon,
.main-nav .nav-link.active .nav-icon {
  color: white !important;
}

/* Ensure dropdown arrow icons also turn white on hover/active */
.main-nav .nav-link.menu-arrow:hover::after,
.main-nav .nav-link.menu-arrow:focus::after,
.main-nav .nav-link.menu-arrow.active::after {
  color: white !important;
  border-color: white !important; /* In case arrows are made with borders */
}

/* Alternative targeting for dropdown arrows if they use different selectors */
.main-nav .nav-link:hover::after,
.main-nav .nav-link:focus::after,
.main-nav .nav-link.active::after {
  color: white !important;
  border-color: white !important;
}

/* Additional targeting for any arrow elements or pseudo-elements */
.main-nav .nav-link:hover .dropdown-toggle::after,
.main-nav .nav-link:focus .dropdown-toggle::after,
.main-nav .nav-link.active .dropdown-toggle::after,
.main-nav .nav-link:hover::before,
.main-nav .nav-link:focus::before,
.main-nav .nav-link.active::before {
  color: white !important;
  border-color: white !important;
}

/* Comprehensive catch-all for any dropdown arrows in main navigation */
.main-nav .nav-link:hover *,
.main-nav .nav-link:focus *,
.main-nav .nav-link.active * {
  color: white !important;
}

/* Ensure sub-nav items and text turn dark grey on hover/active */
.main-nav .sub-nav-link:hover,
.main-nav .sub-nav-link:focus,
.main-nav .sub-nav-link.active {
  color: #fff !important;
}

/*TABLES //////////////////////////////////////////////////////////*/
.search-drop-bar{
  width: 300px;
  float: left;
}

table tr td:first-child, table th td:first-child{text-align: left!important;}
table tr td:last-child, table th td:last-child{text-align: right!important;}
/*WAIVER /////////////////////////////////////////////////////////*/
.waiver-logo {
  margin: 0 auto 40px;
  display: block;
}
.signature {
  width: 100%;
  padding: 100px 10px;
  align-items: center;
  text-align: center;
  font-size: 3em;
  background-color: #eee;
  text-transform: uppercase;
  color: #aaa;
  border-radius: 20px;
}
.embed-styles {
  border-radius: 8px;
  background-color: #b1bbcb;
  color:#999;
}
.embed-styles div {
  border-radius: 8px;
  padding: 10px
}

.embed-styles span.featured-img {
    height: 90px;
    display: block!important;
   
}
.embed-styles span {
  background-color: #d3dbe6;
  min-height: 20px;
  clear: both;
  display: block;
  border-radius: 8px;
    margin-bottom: 3px;
}
.embed-styles h1 {
  text-transform: uppercase;
  color: #999;
  font-size: 1.6em;
  margin: 1em 0 .5em;
  line-height: 1;
}

.embed-styles-calendar {
  border-radius: 8px;
  color: #999;
}
.embed-styles-calendar div {
  border-radius: 8px;
  padding: 3px
}
.embed-styles-calendar span.featured-img {
    display: block;
    height: 40px;
    background-color: rgba(var(--bs-light-rgb), 1);
}
.embed-styles-calendar{
  margin: 0px auto;
  padding: 0px!important;
}
.embed-styles-calendar span{
  display:none!important;
}
.form-control-color{
 margin-right: 6px;
}
.embedcolors span {border-radius:10px; padding:10px;}
.embedcolors .embed-bg{background-color:#dfe3e9}
.embedcolors .embed-title{background-color:#dae0e7}
.embedcolors .embed-desc{background-color:#dae0e7}
p.devmessage{font-weight:bold; color:red;}

/*AUTHENTICATION PAGES /////////////////////////////////////////////////////////*/
/* Override the blue background with grey */
body.authentication-bg {
  background: url(images/bg-overlay.svg) #6c757d !important;
}

/*NUMBER INPUT SPINNERS /////////////////////////////////////////////////////////*/
/* Default: Make number input spinner buttons always visible */
.form-control[type="number"]::-webkit-outer-spin-button,
.form-control[type="number"]::-webkit-inner-spin-button {
  opacity: 1 !important;
  height: auto;
  -webkit-appearance: auto;
}

/* Ensure the input field shows spinners */
.form-control[type="number"] {
  -webkit-appearance: auto;
  -moz-appearance: auto;
}

/* Remove spinner arrows from price number inputs */
.price-field::-webkit-outer-spin-button,
.price-field::-webkit-inner-spin-button,
#giftCertPrice::-webkit-outer-spin-button,
#giftCertPrice::-webkit-inner-spin-button,
#createGiftCertPrice::-webkit-outer-spin-button,
#createGiftCertPrice::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Firefox - Remove spinners from price fields */
.price-field[type=number],
#giftCertPrice[type=number],
#createGiftCertPrice[type=number] {
  -moz-appearance: textfield;
}

/* Keep spinners for quantity fields (override the price field styles) */
.spinner-field::-webkit-outer-spin-button,
.spinner-field::-webkit-inner-spin-button {
  -webkit-appearance: auto !important;
  margin: 0;
}

.spinner-field[type=number] {
  -moz-appearance: auto !important;
}

/*DARK MODE OVERRIDES /////////////////////////////////////////////////////////*/
/* Change dark mode background from #22282e to dark neutral grey */
[data-bs-theme='dark'] body,
html[data-bs-theme='dark'] body {
  background-color: #1d2226 !important; /* Dark neutral grey instead of #22282e */
}

/* Also override any containers or page content areas that might use the same color */
[data-bs-theme='dark'] .page-content,
[data-bs-theme='dark'] .page-content .container-xxl,
[data-bs-theme='dark'] .wrapper {
  background-color: #1d2226 !important;
}

/*BUTTON STYLING /////////////////////////////////////////////////////////*/
/* Remove box-shadow from all buttons */
.btn,
button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
  box-shadow: none !important;
}

/* Also remove focus and hover shadows */
.btn:focus,
.btn:hover,
.btn:active,
button:focus,
button:hover,
button:active,
input[type="button"]:focus,
input[type="button"]:hover,
input[type="button"]:active,
input[type="submit"]:focus,
input[type="submit"]:hover,
input[type="submit"]:active,
input[type="reset"]:focus,
input[type="reset"]:hover,
input[type="reset"]:active {
  box-shadow: none !important;
}

/*DARK MODE TEXT BRIGHTNESS /////////////////////////////////////////////////////////*/
/* Brighten text in dark mode - much brighter for better visibility */
[data-bs-theme='dark'] body,
[data-bs-theme='dark'] .page-content,
[data-bs-theme='dark'] p,
[data-bs-theme='dark'] span,
[data-bs-theme='dark'] div,
[data-bs-theme='dark'] td,
[data-bs-theme='dark'] th,
[data-bs-theme='dark'] li,
[data-bs-theme='dark'] label {
  color: #e8f1fc !important; /* Much brighter text */
}

/* Brighten headings in dark mode */
[data-bs-theme='dark'] h1,
[data-bs-theme='dark'] h2,
[data-bs-theme='dark'] h3,
[data-bs-theme='dark'] h4,
[data-bs-theme='dark'] h5,
[data-bs-theme='dark'] h6 {
  color: #f5f9fd !important; /* Very bright for headings */
}

/* Brighten card text content */
[data-bs-theme='dark'] .card-body,
[data-bs-theme='dark'] .card-text,
[data-bs-theme='dark'] .card-title {
  color: #e8f1fc !important;
}

/* Fix dropdown visibility in tables */
.table-responsive {
  overflow: visible !important;
}

.choices {
  position: relative;
  z-index: 1050;
}

.choices__list--dropdown {
  position: absolute;
  z-index: 1051;
  overflow-y: auto;
  overflow-x: hidden;
}





/* Fix dropdown visibility in modals - simple approach */
.modal-body {
  overflow: visible !important;
}

.modal .modal-content {
  overflow: visible !important;
}

.modal-dialog {
  overflow: visible !important;
}

/* Make all rows positioned so z-index works - JavaScript will handle specific values */
#discounted-addons-container .discount-addon-row {
  position: relative;
}

/* Membership package modal add-on rows z-index management - each row higher than the one below */
#editMembershipModal #discounted-addons-container .discount-addon-row,
#newMembershipModal #new-discounted-addons-container .discount-addon-row {
  position: relative;
}

#editMembershipModal #discounted-addons-container .discount-addon-row:nth-child(1),
#newMembershipModal #new-discounted-addons-container .discount-addon-row:nth-child(1) { z-index: 1080; }
#editMembershipModal #discounted-addons-container .discount-addon-row:nth-child(2),
#newMembershipModal #new-discounted-addons-container .discount-addon-row:nth-child(2) { z-index: 1079; }
#editMembershipModal #discounted-addons-container .discount-addon-row:nth-child(3),
#newMembershipModal #new-discounted-addons-container .discount-addon-row:nth-child(3) { z-index: 1078; }
#editMembershipModal #discounted-addons-container .discount-addon-row:nth-child(4),
#newMembershipModal #new-discounted-addons-container .discount-addon-row:nth-child(4) { z-index: 1077; }
#editMembershipModal #discounted-addons-container .discount-addon-row:nth-child(5),
#newMembershipModal #new-discounted-addons-container .discount-addon-row:nth-child(5) { z-index: 1076; }
#editMembershipModal #discounted-addons-container .discount-addon-row:nth-child(6),
#newMembershipModal #new-discounted-addons-container .discount-addon-row:nth-child(6) { z-index: 1075; }
#editMembershipModal #discounted-addons-container .discount-addon-row:nth-child(7),
#newMembershipModal #new-discounted-addons-container .discount-addon-row:nth-child(7) { z-index: 1074; }
#editMembershipModal #discounted-addons-container .discount-addon-row:nth-child(8),
#newMembershipModal #new-discounted-addons-container .discount-addon-row:nth-child(8) { z-index: 1073; }
#editMembershipModal #discounted-addons-container .discount-addon-row:nth-child(9),
#newMembershipModal #new-discounted-addons-container .discount-addon-row:nth-child(9) { z-index: 1072; }
#editMembershipModal #discounted-addons-container .discount-addon-row:nth-child(10),
#newMembershipModal #new-discounted-addons-container .discount-addon-row:nth-child(10) { z-index: 1071; }

/* Ensure membership modal add-on dropdown choices containers inherit proper z-index */
#editMembershipModal #discounted-addons-container .discount-addon-row .choices,
#newMembershipModal #new-discounted-addons-container .discount-addon-row .choices {
  position: relative;
  z-index: inherit;
}

#editMembershipModal #discounted-addons-container .discount-addon-row .choices__list--dropdown,
#newMembershipModal #new-discounted-addons-container .discount-addon-row .choices__list--dropdown {
  position: absolute !important;
  z-index: inherit;
  max-height: 200px;
  overflow-y: auto;
  overflow-x: hidden !important;
}

/* Z-index management for discounted-addons in group modals - each row higher than the one below */
#discounted-addons-container-group1 .discount-addon-row,
#discounted-addons-container-group2 .discount-addon-row {
  position: relative;
}

#discounted-addons-container-group1 .discount-addon-row:nth-child(1) { z-index: 1080; }
#discounted-addons-container-group1 .discount-addon-row:nth-child(2) { z-index: 1079; }
#discounted-addons-container-group1 .discount-addon-row:nth-child(3) { z-index: 1078; }
#discounted-addons-container-group1 .discount-addon-row:nth-child(4) { z-index: 1077; }
#discounted-addons-container-group1 .discount-addon-row:nth-child(5) { z-index: 1076; }
#discounted-addons-container-group1 .discount-addon-row:nth-child(6) { z-index: 1075; }
#discounted-addons-container-group1 .discount-addon-row:nth-child(7) { z-index: 1074; }
#discounted-addons-container-group1 .discount-addon-row:nth-child(8) { z-index: 1073; }
#discounted-addons-container-group1 .discount-addon-row:nth-child(9) { z-index: 1072; }
#discounted-addons-container-group1 .discount-addon-row:nth-child(10) { z-index: 1071; }

#discounted-addons-container-group2 .discount-addon-row:nth-child(1) { z-index: 1080; }
#discounted-addons-container-group2 .discount-addon-row:nth-child(2) { z-index: 1079; }
#discounted-addons-container-group2 .discount-addon-row:nth-child(3) { z-index: 1078; }
#discounted-addons-container-group2 .discount-addon-row:nth-child(4) { z-index: 1077; }
#discounted-addons-container-group2 .discount-addon-row:nth-child(5) { z-index: 1076; }
#discounted-addons-container-group2 .discount-addon-row:nth-child(6) { z-index: 1075; }
#discounted-addons-container-group2 .discount-addon-row:nth-child(7) { z-index: 1074; }
#discounted-addons-container-group2 .discount-addon-row:nth-child(8) { z-index: 1073; }
#discounted-addons-container-group2 .discount-addon-row:nth-child(9) { z-index: 1072; }
#discounted-addons-container-group2 .discount-addon-row:nth-child(10) { z-index: 1071; }

/* Ensure discounted-addon dropdown choices containers inherit proper z-index */
#discounted-addons-container-group1 .discount-addon-row .choices,
#discounted-addons-container-group2 .discount-addon-row .choices {
  position: relative;
  z-index: inherit;
}

#discounted-addons-container-group1 .discount-addon-row .choices__list--dropdown,
#discounted-addons-container-group2 .discount-addon-row .choices__list--dropdown {
  position: absolute !important;
  z-index: inherit;
  max-height: 200px;
  overflow-y: auto;
  overflow-x: hidden !important;
}



/* Add-on rows z-index management - each row higher than the one below */
#available-addons-container .available-addon-row {
  position: relative;
}

#available-addons-container .available-addon-row:nth-child(1) { z-index: 1080; }
#available-addons-container .available-addon-row:nth-child(2) { z-index: 1079; }
#available-addons-container .available-addon-row:nth-child(3) { z-index: 1078; }
#available-addons-container .available-addon-row:nth-child(4) { z-index: 1077; }
#available-addons-container .available-addon-row:nth-child(5) { z-index: 1076; }
#available-addons-container .available-addon-row:nth-child(6) { z-index: 1075; }
#available-addons-container .available-addon-row:nth-child(7) { z-index: 1074; }
#available-addons-container .available-addon-row:nth-child(8) { z-index: 1073; }
#available-addons-container .available-addon-row:nth-child(9) { z-index: 1072; }
#available-addons-container .available-addon-row:nth-child(10) { z-index: 1071; }

/* Ensure add-on dropdown choices containers inherit proper z-index */
#available-addons-container .available-addon-row .choices {
  position: relative;
  z-index: inherit;
}

#available-addons-container .available-addon-row .choices__list--dropdown {
  position: absolute !important;
  z-index: inherit;
  max-height: 200px;
  overflow-y: auto;
  overflow-x: hidden !important;
}

/* Register booking modal add-on rows z-index management - each row higher than the one below */
#available-addons-container-register .available-addon-row {
  position: relative;
}

#available-addons-container-register .available-addon-row:nth-child(1) { z-index: 1080; }
#available-addons-container-register .available-addon-row:nth-child(2) { z-index: 1079; }
#available-addons-container-register .available-addon-row:nth-child(3) { z-index: 1078; }
#available-addons-container-register .available-addon-row:nth-child(4) { z-index: 1077; }
#available-addons-container-register .available-addon-row:nth-child(5) { z-index: 1076; }
#available-addons-container-register .available-addon-row:nth-child(6) { z-index: 1075; }
#available-addons-container-register .available-addon-row:nth-child(7) { z-index: 1074; }
#available-addons-container-register .available-addon-row:nth-child(8) { z-index: 1073; }
#available-addons-container-register .available-addon-row:nth-child(9) { z-index: 1072; }
#available-addons-container-register .available-addon-row:nth-child(10) { z-index: 1071; }

/* Ensure register booking modal add-on dropdown choices containers inherit proper z-index */
#available-addons-container-register .available-addon-row .choices {
  position: relative;
  z-index: inherit;
}

#available-addons-container-register .available-addon-row .choices__list--dropdown {
  position: absolute !important;
  z-index: inherit;
  max-height: 200px;
  overflow-y: auto;
  overflow-x: hidden !important;
}

/* Base styling for dropdowns in modals */
.modal .choices__list--dropdown {
  position: absolute !important;
  max-height: 200px;
  overflow-y: auto;
  overflow-x: hidden !important;
}

/* Prevent double scrollbar in all modal dropdowns */
.modal .choices__list--dropdown > .choices__list[role="listbox"],
.modal .choices__list--dropdown .choices__list:not(.choices__list--dropdown) {
  overflow: visible !important;
  overflow-y: visible !important;
  overflow-x: visible !important;
  max-height: none !important;
  height: auto !important;
}



/* Brighten date range button text and background in dark mode - targeting the specific button */
[data-bs-theme='dark'] .btn-soft-secondary {
  color: #ffffff !important; /* Pure white text for date range button */
  background-color: #495057 !important; /* Brighter background */
  border-color: #6c757d !important; /* Slightly brighter border */
}

/* Template list scrollable container */
.template-list {
  max-height: 180px;
}

/* Email Out a Waiver - Send Button Responsive Styling */
/* Make button full width on mobile and small screens */
@media (max-width: 768px) {
    .email-waiver-send-btn {
        width: 100% !important;
        margin-top: 15px;
    }
    
    /* Ensure the column takes full width on mobile */
    .email-waiver-btn-col {
        flex: 0 0 100%;
        max-width: 100%;
        margin-top: 10px;
    }
}

/*DRAG AND DROP STYLES /////////////////////////////////////////////////////////*/
/* Drag and Drop functionality for tables */
.draggable-row {
    transition: background-color 0.2s ease;
}

.draggable-row:hover {
    background-color: rgba(145, 155, 165, .5);
    
}

.dragging {
    opacity: 0.5;
    background-color: #e3f2fd !important;
}

.drag-over {
    border-top: 2px solid #ffc107;
}

.drag-handle {
    cursor: grab;
    padding: 8px;
    color: #6c757d;
    transition: color 0.2s ease;
}

.drag-handle:hover {
    color: #495057;
}

.drag-handle:active {
    cursor: grabbing;
}

/*MODAL STYLES /////////////////////////////////////////////////////////*/
/* Modal fade effect for parent modal */
.modal.modal-faded {
    opacity: 0.3 !important;
    transition: opacity 0.3s ease;
}

.modal:not(.modal-faded) {
    opacity: 1 !important;
    transition: opacity 0.3s ease;
}

/* Fix z-index issues for dropdown menus in modals */
.modal .choices__list--dropdown {
    z-index: 9999 !important;
}

/* Ensure add-on dropdown containers have proper z-index stacking */
#available-addons-container .available-addon-row {
    position: relative;
}

/* Create package modal add-on rows z-index management - each row higher than the one below */
#create-available-addons-container .available-addon-row {
    position: relative;
}

#create-available-addons-container .available-addon-row:nth-child(1) { z-index: 1080; }
#create-available-addons-container .available-addon-row:nth-child(2) { z-index: 1079; }
#create-available-addons-container .available-addon-row:nth-child(3) { z-index: 1078; }
#create-available-addons-container .available-addon-row:nth-child(4) { z-index: 1077; }
#create-available-addons-container .available-addon-row:nth-child(5) { z-index: 1076; }
#create-available-addons-container .available-addon-row:nth-child(6) { z-index: 1075; }
#create-available-addons-container .available-addon-row:nth-child(7) { z-index: 1074; }
#create-available-addons-container .available-addon-row:nth-child(8) { z-index: 1073; }
#create-available-addons-container .available-addon-row:nth-child(9) { z-index: 1072; }
#create-available-addons-container .available-addon-row:nth-child(10) { z-index: 1071; }

/* Ensure create package modal add-on dropdown choices containers inherit proper z-index */
#create-available-addons-container .available-addon-row .choices {
    position: relative;
    z-index: inherit;
}

#create-available-addons-container .available-addon-row .choices__list--dropdown {
    overflow-x: hidden !important;
    position: absolute !important;
    z-index: inherit;
    max-height: 200px;
    overflow-y: auto;
}

/* Ensure Charge By field has lower z-index so add-ons dropdown appears above it */
#createPackageModal .row.mb-3.offset-md-1 {
    position: relative;
    z-index: 1000;
}

#createPackageModal #payment-status + .choices {
    position: relative;
    z-index: 1000;
}

/* Ensure Charge By field in edit package modal has lower z-index */
#editPackageModal .row.mb-3.offset-md-1 {
    position: relative;
    z-index: 1000;
}

#editPackageModal #payment-status + .choices {
    position: relative;
    z-index: 1000;
}

/* Higher z-index for focused/active dropdowns */
.modal .choices.is-open .choices__list--dropdown {
    z-index: 10000 !important;
}

/* Exception: Exclude duplicate dropdown in event-modal from general rule */
#event-modal #duplicate + .choices.is-open .choices__list--dropdown {
    z-index: 1400 !important;
}

/* Ensure choices containers don't get cut off */
.modal .choices {
    position: relative;
    z-index: 1600;
}

/* SIMPLE FIX: Booked Package dropdown above Add-ons */
#bookingModal #booked-package + .choices {
    z-index: 1500 !important;
    position: relative;
}

#bookingModal #booked-package + .choices .choices__list--dropdown {
    z-index: 1500 !important;
}

/* Quick Booking Modal: Package dropdown above inventory and booking times */
/* Ensure package select row (1st row) has higher z-index */
#quickBookingModal form .row:nth-child(1),
#quickBookingModal .modal-body form .row:nth-child(1) {
    position: relative;
    z-index: 1700;
}

#quickBookingModal #quickBookPackage + .choices {
    z-index: 1700 !important;
    position: relative;
}

#quickBookingModal #quickBookPackage + .choices .choices__list--dropdown {
    z-index: 1700 !important;
}

#quickBookingModal #quickBookPackage + .choices.is-open .choices__list--dropdown {
    z-index: 10001 !important;
}

/* Ensure inventory row (2nd row) has lower z-index so package dropdown appears above */
#quickBookingModal form .row:nth-child(2),
#quickBookingModal .modal-body form .row:nth-child(2) {
    position: relative;
    z-index: 1000;
}

/* Ensure booking time row (3rd row) has lower z-index so package dropdown appears above */
#quickBookingModal form .row:nth-child(3),
#quickBookingModal .modal-body form .row:nth-child(3) {
    position: relative;
    z-index: 1000;
}

#quickBookingModal #quickBookStartTime + .choices,
#quickBookingModal #quickBookEndTime + .choices {
    position: relative;
    z-index: 1000;
}

#quickBookingModal #quickBookStartTime + .choices .choices__list--dropdown,
#quickBookingModal #quickBookEndTime + .choices .choices__list--dropdown {
    z-index: 1000;
}

#quickBookingModal #quickBookStartTime + .choices.is-open .choices__list--dropdown,
#quickBookingModal #quickBookEndTime + .choices.is-open .choices__list--dropdown {
    z-index: 10000 !important;
}

/* Booking modal add-on rows z-index management - each row higher than the one below */
#bookingModal #available-addons-container-booking {
    position: relative;
}

#bookingModal #available-addons-container-booking .available-addon-row {
    position: relative;
}

#bookingModal #available-addons-container-booking .available-addon-row:nth-child(1) { z-index: 1080; }
#bookingModal #available-addons-container-booking .available-addon-row:nth-child(2) { z-index: 1079; }
#bookingModal #available-addons-container-booking .available-addon-row:nth-child(3) { z-index: 1078; }
#bookingModal #available-addons-container-booking .available-addon-row:nth-child(4) { z-index: 1077; }
#bookingModal #available-addons-container-booking .available-addon-row:nth-child(5) { z-index: 1076; }
#bookingModal #available-addons-container-booking .available-addon-row:nth-child(6) { z-index: 1075; }
#bookingModal #available-addons-container-booking .available-addon-row:nth-child(7) { z-index: 1074; }
#bookingModal #available-addons-container-booking .available-addon-row:nth-child(8) { z-index: 1073; }
#bookingModal #available-addons-container-booking .available-addon-row:nth-child(9) { z-index: 1072; }
#bookingModal #available-addons-container-booking .available-addon-row:nth-child(10) { z-index: 1071; }

/* Ensure booking modal add-on dropdown choices containers inherit proper z-index */
#bookingModal #available-addons-container-booking .available-addon-row .choices {
    position: relative;
    z-index: inherit;
}

#bookingModal #available-addons-container-booking .available-addon-row .choices__list--dropdown {
    position: absolute !important;
    z-index: inherit;
    max-height: 200px;
    overflow-y: auto;
    overflow-x: hidden !important;
}

/* Fix z-index for create group modal dropdowns - row z-index managed by CSS nth-child rules */
#createGoupModal #discounted-addons-container-group1 {
    position: relative;
}

/* Fix z-index for edit group modal dropdowns - row z-index managed by CSS nth-child rules */
#editGoupModal #discounted-addons-container-group2 {
    position: relative;
}

/* Fix z-index for event modal dropdowns */
/* Duplicate settings dropdown - lower z-index to stay below Bookable Times */
#event-modal #duplicate + .choices {
    z-index: 1400 !important;
    position: relative;
}

#event-modal #duplicate + .choices .choices__list--dropdown {
    z-index: 1400 !important;
}

#event-modal #duplicate + .choices.is-open .choices__list--dropdown {
    z-index: 1400 !important;
}

/* Also target dropdown when positioned absolutely */
#event-modal .modal-body #duplicate + .choices .choices__list--dropdown,
#event-modal .modal-content #duplicate + .choices .choices__list--dropdown {
    z-index: 1400 !important;
}

#event-modal .modal-body #duplicate + .choices.is-open .choices__list--dropdown,
#event-modal .modal-content #duplicate + .choices.is-open .choices__list--dropdown {
    z-index: 1400 !important;
}

/* Bookable Times dropdown - higher z-index to appear above Duplicate settings */
#event-modal #bookable-times-select + .choices {
    z-index: 1600 !important;
    position: relative;
}

#event-modal #bookable-times-select + .choices .choices__list--dropdown {
    z-index: 10001 !important;
}

#event-modal #bookable-times-select + .choices.is-open .choices__list--dropdown {
    z-index: 10001 !important;
}

/* Also target dropdown when positioned absolutely with higher specificity */
#event-modal .modal-body #bookable-times-select + .choices .choices__list--dropdown,
#event-modal .modal-content #bookable-times-select + .choices .choices__list--dropdown {
    z-index: 10001 !important;
}

#event-modal .modal-body #bookable-times-select + .choices.is-open .choices__list--dropdown,
#event-modal .modal-content #bookable-times-select + .choices.is-open .choices__list--dropdown {
    z-index: 10001 !important;
}

/* Fix z-index for search results dropdowns in modals */
#createGoupModal .group-member-search #add-member-search-results,
#editGoupModal .group-member-search #edit-add-member-search-results {
    z-index: 2000 !important;
}

/* Fix for search dropdown scrolling in tables */
.choices__list--dropdown {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    scrollbar-width: thin;
    scrollbar-color: #cbd5e1 #f1f5f9;
}

/* GLOBAL FIX: Prevent double scrollbar issue in ALL Choices.js dropdowns */
/* Ensure inner choices__list never creates its own scrollbar */
.choices__list--dropdown > .choices__list[role="listbox"],
.choices__list--dropdown .choices__list:not(.choices__list--dropdown) {
    overflow: visible !important;
    overflow-y: visible !important;
    overflow-x: visible !important;
    max-height: none !important;
    height: auto !important;
}

/* Lower z-index for search dropdowns in main content (not in modals) */
.search-drop-bar .choices__list--dropdown {
    z-index: 1045 !important;
}

/* Ensure search dropdowns stay below modals even when active */
.search-drop-bar .choices.is-open .choices__list--dropdown {
    z-index: 1045 !important;
}

/* Custom scrollbar styling for webkit browsers */
.choices__list--dropdown::-webkit-scrollbar {
    width: 6px;
}

.choices__list--dropdown::-webkit-scrollbar-track {
    background: #f1f5f9;
    border-radius: 3px;
}

.choices__list--dropdown::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 3px;
}

.choices__list--dropdown::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

/* Ensure dropdown positioning doesn't get cut off */
.search-drop-bar .choices {
    position: relative;
    z-index: 1040;
}

.search-drop-bar .choices[data-type*="select-one"] .choices__inner {
    padding-bottom: 7.5px;
    padding-top: 7.5px;
}

/* Fix double scrollbar issue in live waiver modal - ensure only outer container scrolls */
#liveWaiverModal .choices__list--dropdown {
    max-height: 250px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    position: absolute !important;
}

/* Prevent the inner choices__list from creating its own scrollbar - this is the key fix */
#liveWaiverModal .choices__list--dropdown > .choices__list[role="listbox"] {
    overflow: visible !important;
    overflow-y: visible !important;
    overflow-x: visible !important;
    max-height: none !important;
    height: auto !important;
}

/* Also target nested choices__list without role attribute */
#liveWaiverModal .choices__list--dropdown .choices__list:not(.choices__list--dropdown) {
    overflow: visible !important;
    overflow-y: visible !important;
    overflow-x: visible !important;
    max-height: none !important;
}

/* Ensure the choices container doesn't create extra scrolling */
#liveWaiverModal .choices.is-open .choices__list--dropdown {
    position: absolute !important;
}

/* Ensure search results are visible */
.choices__list--dropdown .choices__item {
    padding: 8px 12px;
    border-bottom: 1px solid #f1f5f9;
}

.choices__list--dropdown .choices__item:last-child {
    border-bottom: none;
}

/* BOOKING FLOW STYLES - Time slots and calendar */
/* Time slot styles */
.time-slot {
    background-color: #f8f9fa;
    border: 2px solid #dee2e6;
    border-radius: 8px;
    padding: 12px 16px;
    text-align: center;
    cursor: pointer;
    transition: all 0.2s ease;
    font-weight: 500;
    width: 100%;
    display: block;
    font-size: 14px;
}

.time-slot:hover {
    background-color: #e9ecef;
    border-color: #adb5bd;
}

.time-slot.selected {
    background-color: #007bff;
    border-color: #007bff;
    color: white;
}

.time-slot.unavailable {
    background-color: #6c757d;
    border-color: #6c757d;
    color: white;
    cursor: not-allowed;
    opacity: 0.6;
}

.time-slot.unavailable:hover {
    background-color: #6c757d;
    border-color: #6c757d;
}

/* ========== LIGHT THEME CALENDAR STYLES ========== */
/* Ensure good contrast for light theme */
#calendar {
    background-color: #ffffff;
    color: #212529;
}

#calendar .fc {
    color: #212529;
    background-color: #ffffff;
}

#calendar .fc-view-harness {
    background-color: #ffffff;
}

#calendar .fc-theme-standard td,
#calendar .fc-theme-standard th {
    border-color: #dee2e6;
}

#calendar .fc-daygrid-day {
    background-color: #ffffff;
    border-color: #dee2e6 !important;
}

#calendar .fc-daygrid-day-number {
    color: #212529;
    font-weight: 500;
}

#calendar .fc-col-header-cell {
    background-color: #f8f9fa;
    border-color: #dee2e6;
}

#calendar .fc-col-header-cell-cushion {
    color: #212529;
    font-weight: 600;
}

#calendar .fc-toolbar-title {
    color: #212529;
    font-weight: 600;
}

#calendar .fc-button {
    background-color: #ffffff;
    border-color: #dee2e6;
    color: #212529;
}

#calendar .fc-button:hover {
    background-color: #f8f9fa;
    border-color: #adb5bd;
    color: #212529;
}

#calendar .fc-button:disabled {
    background-color: #f8f9fa;
    border-color: #e9ecef;
    color: #6c757d;
    opacity: 0.6;
}

#calendar .fc-button-primary:not(:disabled):active,
#calendar .fc-button-primary:not(:disabled).fc-button-active {
    background-color: #0d6efd;
    border-color: #0d6efd;
    color: #ffffff;
}

#calendar .fc-event {
    border-color: rgba(0, 0, 0, 0.2);
}

#calendar .fc-event-title {
    color: #ffffff;
}

#calendar .fc-event-time {
    color: rgba(255, 255, 255, 0.9);
}

#calendar .fc-more-link {
    color: #0d6efd;
    background-color: #e7f1ff;
}

#calendar .fc-more-link:hover {
    background-color: #cfe2ff;
}

#calendar .fc-popover {
    background-color: #ffffff;
    border-color: #dee2e6;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

#calendar .fc-popover-header {
    background-color: #f8f9fa;
    border-color: #dee2e6;
    color: #212529;
}

#calendar .fc-popover-body {
    background-color: #ffffff;
    color: #212529;
}

#calendar .fc-list-day-cushion {
    background-color: #f8f9fa;
    color: #212529;
}

#calendar .fc-list-event:hover td {
    background-color: #f8f9fa;
}

#calendar .fc-timegrid-slot {
    border-color: #e9ecef;
}

#calendar .fc-timegrid-slot-label {
    color: #6c757d;
}

#calendar .fc-timegrid-col {
    border-color: #dee2e6;
}

#calendar .fc-timegrid-axis {
    border-color: #dee2e6;
    color: #6c757d;
}

#calendar .fc-scrollgrid {
    border-color: #dee2e6;
}

#calendar .fc-scrollgrid-section-header {
    background-color: #f8f9fa;
}

#calendar .fc-scrollgrid-section-body {
    background-color: #ffffff;
}

#calendar .fc-daygrid-day.fc-day-today {
    background-color: #fff3cd;
}

#calendar .fc-daygrid-day.fc-day-today .fc-daygrid-day-number {
    color: #856404;
    font-weight: 700;
}

/* Calendar styles for booking calendars */
.fc-day.available-date,
.fc-daygrid-day.available-date {
    background-color: #8cb43d !important;
    cursor: pointer !important;
}

.fc-day.booked-out-date,
.fc-daygrid-day.booked-out-date {
    background-color: #9ba588 !important;
    cursor: not-allowed !important;
    opacity: 0.8 !important;
}

.fc-day.available-date.selected-date {
    background-color: #8cb43d !important;
    border: 3px solid #ffffff !important;
    box-sizing: border-box;
}

.fc-day.available-date.selected-date .fc-daygrid-day-number {
    font-weight: bold;
}

.fc-day.available-date:hover {
    background-color: #7ba235 !important;
}

.fc-day.booked-out-date:hover {
    background-color: #9ba588 !important;
    cursor: not-allowed;
}

.fc-day-past {
    background-color: #f8f9fa !important;
    color: #6c757d !important;
    cursor: not-allowed;
    opacity: 0.6;
}

.fc-day-past .fc-daygrid-day-number {
    color: #6c757d !important;
}

.fc-day-future:not(.available-date):not(.booked-out-date) {
    background-color: #ffffff;
    cursor: pointer;
}

.fc-day-future:not(.available-date):not(.booked-out-date):hover {
    background-color: #f8f9fa;
}

.fc-daygrid-day {
    border: 3px solid #dee2e6 !important;
    box-sizing: border-box !important;
}

.fc-toolbar {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
}

.fc-legend-button {
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    cursor: default !important;
    color: inherit !important;
}

.fc-legend-button:hover,
.fc-legend-button:focus,
.fc-legend-button:active {
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    color: inherit !important;
}

.fc-legend-button small {
    color: inherit !important;
}

/* ========== DARK THEME CALENDAR STYLES ========== */
[data-bs-theme='dark'] #calendar .fc {
    color: #e9ecef;
}

[data-bs-theme='dark'] #calendar .fc-theme-standard td,
[data-bs-theme='dark'] #calendar .fc-theme-standard th {
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] #calendar .fc-daygrid-day {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

[data-bs-theme='dark'] #calendar .fc-daygrid-day:hover {
    background-color: rgba(255, 255, 255, 0.05);
}

[data-bs-theme='dark'] #calendar .fc-daygrid-day.fc-day-today {
    background-color: rgba(59, 130, 246, 0.1);
}

[data-bs-theme='dark'] #calendar .fc-daygrid-day-number {
    color: #e9ecef;
}

[data-bs-theme='dark'] #calendar .fc-col-header-cell {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] #calendar .fc-col-header-cell-cushion {
    color: #e9ecef;
}

[data-bs-theme='dark'] #calendar .fc-toolbar {
    background-color: #1d2226 !important;
    color: #e9ecef;
}

[data-bs-theme='dark'] #calendar .fc-toolbar-chunk {
    background-color: transparent;
}

[data-bs-theme='dark'] #calendar .fc-toolbar-section {
    background-color: transparent;
}

[data-bs-theme='dark'] #calendar .fc-toolbar-title {
    color: #e9ecef;
}

[data-bs-theme='dark'] #calendar .fc-button {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.1);
    color: #e9ecef;
}

[data-bs-theme='dark'] #calendar .fc-button:hover {
    background-color: #3d4348;
    border-color: rgba(255, 255, 255, 0.2);
}

[data-bs-theme='dark'] #calendar .fc-button:disabled {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.05);
    color: #6c757d;
    opacity: 0.5;
}

[data-bs-theme='dark'] #calendar .fc-button-primary:not(:disabled):active,
[data-bs-theme='dark'] #calendar .fc-button-primary:not(:disabled).fc-button-active {
    background-color: #3b82f6;
    border-color: #3b82f6;
    color: #ffffff;
}

[data-bs-theme='dark'] #calendar .fc-day.available-date,
[data-bs-theme='dark'] #calendar .fc-daygrid-day.available-date {
    background-color: #8cb43d !important;
}

[data-bs-theme='dark'] #calendar .fc-day.booked-out-date,
[data-bs-theme='dark'] #calendar .fc-daygrid-day.booked-out-date {
    background-color: #6b7a5a !important;
}

[data-bs-theme='dark'] #calendar .fc-day.available-date.selected-date {
    background-color: #8cb43d !important;
    border: 3px solid #ffffff !important;
}

[data-bs-theme='dark'] #calendar .fc-day.available-date:hover {
    background-color: #7ba235 !important;
}

[data-bs-theme='dark'] #calendar .fc-day-past {
    background-color: #1d2226 !important;
    color: #6c757d !important;
    opacity: 0.5;
}

[data-bs-theme='dark'] #calendar .fc-day-future:not(.available-date):not(.booked-out-date) {
    background-color: #1d2226;
}

[data-bs-theme='dark'] #calendar .fc-day-future:not(.available-date):not(.booked-out-date):hover {
    background-color: rgba(255, 255, 255, 0.05);
}

[data-bs-theme='dark'] #calendar .fc-event {
    border-color: rgba(255, 255, 255, 0.2);
}

[data-bs-theme='dark'] #calendar .fc-event-title {
    color: #ffffff;
}

[data-bs-theme='dark'] #calendar .fc-event-time {
    color: rgba(255, 255, 255, 0.8);
}

[data-bs-theme='dark'] #calendar .fc-more-link {
    color: #3b82f6;
    background-color: rgba(59, 130, 246, 0.1);
}

[data-bs-theme='dark'] #calendar .fc-more-link:hover {
    background-color: rgba(59, 130, 246, 0.2);
}

[data-bs-theme='dark'] #calendar .fc-popover {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] #calendar .fc-popover-header {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.1);
    color: #e9ecef;
}

[data-bs-theme='dark'] #calendar .fc-popover-body {
    background-color: #2d3338;
    color: #e9ecef;
}

[data-bs-theme='dark'] #calendar .fc-list-day-cushion {
    background-color: #1d2226;
    color: #e9ecef;
}

[data-bs-theme='dark'] #calendar .fc-list-event:hover td {
    background-color: rgba(255, 255, 255, 0.05);
}

[data-bs-theme='dark'] #calendar .fc-timegrid-slot {
    border-color: rgba(255, 255, 255, 0.05);
}

[data-bs-theme='dark'] #calendar .fc-timegrid-slot-label {
    color: #adb5bd;
}

[data-bs-theme='dark'] #calendar .fc-timegrid-col {
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] #calendar .fc-timegrid-axis {
    border-color: rgba(255, 255, 255, 0.1);
    color: #adb5bd;
}

[data-bs-theme='dark'] #calendar .fc-scrollgrid {
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] #calendar .fc-scrollgrid-section-header {
    background-color: #1d2226;
}

[data-bs-theme='dark'] #calendar .fc-scrollgrid-section-body {
    background-color: #1d2226;
}

/* Dark theme for external events (package list) */
[data-bs-theme='dark'] #external-events {
    background-color: transparent;
}

[data-bs-theme='dark'] #external-events .text-muted {
    color: #adb5bd !important;
}

[data-bs-theme='dark'] #external-events .external-event {
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] #external-events .external-event.package-disabled {
    background-color: rgba(255, 255, 255, 0.05) !important;
    color: #6c757d !important;
    border-color: rgba(255, 255, 255, 0.05) !important;
}

[data-bs-theme='dark'] #external-events .external-event.package-disabled:hover {
    background-color: rgba(255, 255, 255, 0.08) !important;
}

/* ========== DARK THEME BOOKING FLOW MODAL STYLES ========== */
[data-bs-theme='dark'] #bookingFlowModal .modal-content {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] #bookingFlowModal .modal-header {
    background-color: #1d2226;
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] #bookingFlowModal .modal-title {
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

[data-bs-theme='dark'] #bookingFlowModal .modal-body {
    background-color: #1d2226;
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal .card {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] #bookingFlowModal .card-body {
    background-color: #2d3338;
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal h4,
[data-bs-theme='dark'] #bookingFlowModal h5 {
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal .text-muted {
    color: #adb5bd !important;
}

[data-bs-theme='dark'] #bookingFlowModal .form-label {
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal .form-control,
[data-bs-theme='dark'] #bookingFlowModal .form-select {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.2);
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal .form-control:focus,
[data-bs-theme='dark'] #bookingFlowModal .form-select:focus {
    background-color: #1d2226;
    border-color: #3b82f6;
    color: #e9ecef;
    box-shadow: 0 0 0 0.2rem rgba(59, 130, 246, 0.25);
}

[data-bs-theme='dark'] #bookingFlowModal .form-control::placeholder {
    color: #6c757d;
}

[data-bs-theme='dark'] #bookingFlowModal textarea.form-control {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.2);
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal .form-check-label {
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal .form-check-input {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.3);
}

[data-bs-theme='dark'] #bookingFlowModal .form-check-input:checked {
    background-color: #3b82f6;
    border-color: #3b82f6;
}

[data-bs-theme='dark'] #bookingFlowModal .nav-pills {
    background-color: #2d3338;
}

[data-bs-theme='dark'] #bookingFlowModal .nav-link {
    color: #adb5bd;
}

[data-bs-theme='dark'] #bookingFlowModal .nav-link:hover {
    color: #e9ecef;
    background-color: rgba(255, 255, 255, 0.05);
}

[data-bs-theme='dark'] #bookingFlowModal .nav-link.active {
    background-color: #3b82f6;
    color: #ffffff;
}

[data-bs-theme='dark'] #bookingFlowModal .bg-light {
    background-color: #2d3338 !important;
}

[data-bs-theme='dark'] #bookingFlowModal .time-slot {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.2);
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal .time-slot:hover {
    background-color: rgba(59, 130, 246, 0.2);
    border-color: #3b82f6;
    color: #ffffff;
}

[data-bs-theme='dark'] #bookingFlowModal .time-slot.selected {
    background-color: #3b82f6;
    border-color: #3b82f6;
    color: #ffffff;
}

[data-bs-theme='dark'] #bookingFlowModal .table {
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal .table thead {
    background-color: #2d3338;
}

[data-bs-theme='dark'] #bookingFlowModal .table thead th {
    color: #e9ecef;
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] #bookingFlowModal .table tbody {
    background-color: #1d2226;
}

[data-bs-theme='dark'] #bookingFlowModal .table tbody td {
    color: #e9ecef;
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] #bookingFlowModal .table tbody tr:hover {
    background-color: rgba(255, 255, 255, 0.05);
}

[data-bs-theme='dark'] #bookingFlowModal .bg-light.bg-opacity-50 {
    background-color: rgba(45, 51, 56, 0.5) !important;
}

[data-bs-theme='dark'] #bookingFlowModal .input-group-text {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.2);
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal .btn-outline-secondary {
    border-color: rgba(255, 255, 255, 0.2);
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal .btn-outline-secondary:hover {
    background-color: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.3);
    color: #ffffff;
}

[data-bs-theme='dark'] #bookingFlowModal .btn-primary {
    background-color: #3b82f6;
    border-color: #3b82f6;
    color: #ffffff;
}

[data-bs-theme='dark'] #bookingFlowModal .btn-primary:hover {
    background-color: #2563eb;
    border-color: #2563eb;
}

[data-bs-theme='dark'] #bookingFlowModal .btn-light {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.2);
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal .btn-light:hover {
    background-color: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.3);
    color: #ffffff;
}

[data-bs-theme='dark'] #bookingFlowModal .modal-footer {
    background-color: #1d2226;
    border-top-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] #bookingFlowModal .fs-13.text-muted {
    color: #adb5bd !important;
}

[data-bs-theme='dark'] #bookingFlowModal .popover {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.2);
}

[data-bs-theme='dark'] #bookingFlowModal .popover-header {
    background-color: #1d2226;
    border-bottom-color: rgba(255, 255, 255, 0.1);
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal .popover-body {
    background-color: #2d3338;
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal .choices {
    background-color: #1d2226;
}

[data-bs-theme='dark'] #bookingFlowModal .choices__inner {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.2);
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal .choices__input {
    background-color: #1d2226;
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal .choices__list--dropdown {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.2);
}

[data-bs-theme='dark'] #bookingFlowModal .choices__item {
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal .choices__item--selectable.is-highlighted {
    background-color: rgba(59, 130, 246, 0.2);
    color: #ffffff;
}

[data-bs-theme='dark'] #bookingFlowModal .choices__item--choice.is-selected {
    background-color: #3b82f6;
    color: #ffffff;
}

[data-bs-theme='dark'] #bookingFlowModal #modal-booking-calendar {
    background-color: #1d2226;
}

/* Dark theme for calendar inside bookingFlowModal */
[data-bs-theme='dark'] #bookingFlowModal #modal-booking-calendar .fc {
    color: #e9ecef;
    background-color: #1d2226;
}

[data-bs-theme='dark'] #bookingFlowModal #modal-booking-calendar .fc-daygrid-day {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

[data-bs-theme='dark'] #bookingFlowModal #modal-booking-calendar .fc-daygrid-day-number {
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal #modal-booking-calendar .fc-col-header-cell {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] #bookingFlowModal #modal-booking-calendar .fc-col-header-cell-cushion {
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal #modal-booking-calendar .fc-toolbar {
    background-color: #1d2226 !important;
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal #modal-booking-calendar .fc-toolbar-chunk {
    background-color: transparent;
}

[data-bs-theme='dark'] #bookingFlowModal #modal-booking-calendar .fc-toolbar-section {
    background-color: transparent;
}

[data-bs-theme='dark'] #bookingFlowModal #modal-booking-calendar .fc-toolbar-title {
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal #modal-booking-calendar .fc-button {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.1);
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal #modal-booking-calendar .fc-button:hover {
    background-color: #3d4348;
    border-color: rgba(255, 255, 255, 0.2);
}

[data-bs-theme='dark'] #bookingFlowModal #modal-booking-calendar .fc-day.available-date,
[data-bs-theme='dark'] #bookingFlowModal #modal-booking-calendar .fc-daygrid-day.available-date {
    background-color: #8cb43d !important;
}

[data-bs-theme='dark'] #bookingFlowModal #modal-booking-calendar .fc-day.booked-out-date,
[data-bs-theme='dark'] #bookingFlowModal #modal-booking-calendar .fc-daygrid-day.booked-out-date {
    background-color: #6b7a5a !important;
}

[data-bs-theme='dark'] #bookingFlowModal #modal-booking-calendar .fc-day-past {
    background-color: #1d2226 !important;
    color: #6c757d !important;
    opacity: 0.5;
}

[data-bs-theme='dark'] #bookingFlowModal #modal-booking-calendar .fc-day-future:not(.available-date):not(.booked-out-date) {
    background-color: #1d2226;
}

[data-bs-theme='dark'] #bookingFlowModal #modal-booking-calendar .fc-day-future:not(.available-date):not(.booked-out-date):hover {
    background-color: rgba(255, 255, 255, 0.05);
}

[data-bs-theme='dark'] #bookingFlowModal .time-slot-card {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] #bookingFlowModal .alert {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.1);
    color: #e9ecef;
}

[data-bs-theme='dark'] #bookingFlowModal .alert-info {
    background-color: rgba(13, 110, 253, 0.2);
    border-color: rgba(13, 110, 253, 0.3);
    color: #a5c9ff;
}

[data-bs-theme='dark'] #bookingFlowModal .alert-success {
    background-color: rgba(25, 135, 84, 0.2);
    border-color: rgba(25, 135, 84, 0.3);
    color: #86d9b8;
}

[data-bs-theme='dark'] #bookingFlowModal .alert-warning {
    background-color: rgba(255, 193, 7, 0.2);
    border-color: rgba(255, 193, 7, 0.3);
    color: #ffd54f;
}

[data-bs-theme='dark'] #bookingFlowModal .alert-danger {
    background-color: rgba(220, 53, 69, 0.2);
    border-color: rgba(220, 53, 69, 0.3);
    color: #f5a2a9;
}

/* ========== DARK THEME DATETIME MODAL CALENDAR PICKER ========== */
[data-bs-theme='dark'] #dateTimeModal .modal-content {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] #dateTimeModal .modal-header {
    background-color: #1d2226;
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] #dateTimeModal .modal-title {
    color: #e9ecef;
}

[data-bs-theme='dark'] #dateTimeModal .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

[data-bs-theme='dark'] #dateTimeModal .modal-body {
    background-color: #1d2226;
    color: #e9ecef;
}

[data-bs-theme='dark'] #dateTimeModal .modal-footer {
    background-color: #1d2226;
    border-top-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] #dateTimeModal .form-label {
    color: #e9ecef;
}

[data-bs-theme='dark'] #dateTimeModal .text-muted {
    color: #adb5bd !important;
}

[data-bs-theme='dark'] #dateTimeModal strong {
    color: #e9ecef;
}

[data-bs-theme='dark'] #dateTimeModal .border-bottom {
    border-bottom-color: rgba(255, 255, 255, 0.1) !important;
}

/* ========== FLATPICKR CALENDAR DARK THEME - GENERAL (ALL INSTANCES) ========== */
/* General dark theme styles for all flatpickr calendars */
[data-bs-theme='dark'] .flatpickr-calendar {
    background-color: #2d3338 !important;
    border-color: rgba(255, 255, 255, 0.1);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.3);
    color: #e9ecef;
}

[data-bs-theme='dark'] .flatpickr-months {
    background-color: #2d3338;
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] .flatpickr-month {
    color: #e9ecef;
}

[data-bs-theme='dark'] .flatpickr-current-month {
    color: #e9ecef;
}

[data-bs-theme='dark'] .flatpickr-current-month .flatpickr-monthDropdown-months {
    background-color: #2d3338;
    color: #e9ecef;
    border-color: rgba(255, 255, 255, 0.2);
}

[data-bs-theme='dark'] .flatpickr-current-month input.cur-year {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.2);
    color: #e9ecef;
}

[data-bs-theme='dark'] .flatpickr-prev-month,
[data-bs-theme='dark'] .flatpickr-next-month {
    color: #e9ecef;
    fill: #e9ecef;
}

[data-bs-theme='dark'] .flatpickr-prev-month:hover,
[data-bs-theme='dark'] .flatpickr-next-month:hover {
    background-color: rgba(255, 255, 255, 0.1);
    color: #ffffff;
    fill: #ffffff;
}

[data-bs-theme='dark'] .flatpickr-prev-month svg,
[data-bs-theme='dark'] .flatpickr-next-month svg {
    fill: #e9ecef;
}

[data-bs-theme='dark'] .flatpickr-prev-month:hover svg,
[data-bs-theme='dark'] .flatpickr-next-month:hover svg {
    fill: #ffffff;
}

[data-bs-theme='dark'] .flatpickr-weekdays {
    background-color: #2d3338;
}

[data-bs-theme='dark'] span.flatpickr-weekday {
    color: #adb5bd;
    font-weight: 600;
}

[data-bs-theme='dark'] .flatpickr-day {
    color: #e9ecef;
    border-color: transparent;
}

[data-bs-theme='dark'] .flatpickr-day:hover,
[data-bs-theme='dark'] .flatpickr-day:focus {
    background-color: rgba(59, 130, 246, 0.2);
    border-color: rgba(59, 130, 246, 0.3);
    color: #ffffff;
}

[data-bs-theme='dark'] .flatpickr-day.today {
    border-color: #3b82f6;
    color: #3b82f6;
    font-weight: 600;
}

[data-bs-theme='dark'] .flatpickr-day.today:hover,
[data-bs-theme='dark'] .flatpickr-day.today:focus {
    background-color: rgba(59, 130, 246, 0.2);
    border-color: #3b82f6;
    color: #ffffff;
}

[data-bs-theme='dark'] .flatpickr-day.selected,
[data-bs-theme='dark'] .flatpickr-day.startRange,
[data-bs-theme='dark'] .flatpickr-day.endRange {
    background-color: #3b82f6 !important;
    border-color: #3b82f6 !important;
    color: #ffffff !important;
}

[data-bs-theme='dark'] .flatpickr-day.selected:hover,
[data-bs-theme='dark'] .flatpickr-day.startRange:hover,
[data-bs-theme='dark'] .flatpickr-day.endRange:hover {
    background-color: #2563eb !important;
    border-color: #2563eb !important;
    color: #ffffff !important;
}

[data-bs-theme='dark'] .flatpickr-day.inRange {
    background-color: rgba(59, 130, 246, 0.1);
    border-color: rgba(59, 130, 246, 0.2);
    color: #e9ecef;
}

[data-bs-theme='dark'] .flatpickr-day.flatpickr-disabled,
[data-bs-theme='dark'] .flatpickr-day.prevMonthDay,
[data-bs-theme='dark'] .flatpickr-day.nextMonthDay {
    color: #6c757d;
    opacity: 0.5;
}

[data-bs-theme='dark'] .flatpickr-day.flatpickr-disabled {
    cursor: not-allowed;
}

[data-bs-theme='dark'] .flatpickr-innerContainer {
    background-color: #2d3338;
}

[data-bs-theme='dark'] .flatpickr-time {
    background-color: #2d3338;
    border-top-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] .flatpickr-time input {
    color: #e9ecef;
}

[data-bs-theme='dark'] .flatpickr-time .flatpickr-time-separator,
[data-bs-theme='dark'] .flatpickr-time .flatpickr-am-pm {
    color: #e9ecef;
}

[data-bs-theme='dark'] .flatpickr-time input:hover,
[data-bs-theme='dark'] .flatpickr-time .flatpickr-am-pm:hover,
[data-bs-theme='dark'] .flatpickr-time input:focus,
[data-bs-theme='dark'] .flatpickr-time .flatpickr-am-pm:focus {
    background-color: rgba(255, 255, 255, 0.1);
    color: #ffffff;
}

[data-bs-theme='dark'] .flatpickr-calendar-container {
    background-color: transparent;
}

[data-bs-theme='dark'] .dayContainer {
    background-color: #2d3338;
}

[data-bs-theme='dark'] .numInputWrapper {
    background-color: transparent;
}

[data-bs-theme='dark'] .numInputWrapper span {
    border-color: rgba(255, 255, 255, 0.2);
}

[data-bs-theme='dark'] .numInputWrapper span:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] .numInputWrapper span:after {
    border-color: rgba(255, 255, 255, 0.6);
}

[data-bs-theme='dark'] .flatpickr-rContainer {
    background-color: #2d3338;
}

/* ========== FLATPICKR CALENDAR DARK THEME - DATETIMEMODAL SPECIFIC ========== */
/* Flatpickr calendar picker dark theme - dateTimeModal specific overrides */
[data-bs-theme='dark'] #dateTimeModal .flatpickr-calendar {
    background-color: #2d3338 !important;
    border-color: rgba(255, 255, 255, 0.1);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.3);
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-months {
    background-color: #2d3338;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-month {
    background-color: #2d3338;
    color: #e9ecef;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-current-month {
    color: #e9ecef;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-current-month .flatpickr-monthDropdown-months {
    background-color: #2d3338;
    color: #e9ecef;
    border-color: rgba(255, 255, 255, 0.2);
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-current-month input.cur-year {
    color: #e9ecef;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-prev-month,
[data-bs-theme='dark'] #dateTimeModal .flatpickr-next-month {
    color: #e9ecef;
    fill: #e9ecef;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-prev-month:hover,
[data-bs-theme='dark'] #dateTimeModal .flatpickr-next-month:hover {
    color: #ffffff;
    fill: #ffffff;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-prev-month svg,
[data-bs-theme='dark'] #dateTimeModal .flatpickr-next-month svg {
    fill: #e9ecef;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-prev-month:hover svg,
[data-bs-theme='dark'] #dateTimeModal .flatpickr-next-month:hover svg {
    fill: #ffffff;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-weekdays {
    background-color: #2d3338;
}

[data-bs-theme='dark'] #dateTimeModal span.flatpickr-weekday {
    background-color: #2d3338;
    color: #e9ecef;
    font-weight: 600;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-day {
    color: #e9ecef;
    background-color: transparent;
    border-color: transparent;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-day:hover,
[data-bs-theme='dark'] #dateTimeModal .flatpickr-day:focus {
    background-color: rgba(59, 130, 246, 0.2);
    border-color: rgba(59, 130, 246, 0.3);
    color: #ffffff;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-day.today {
    border-color: #3b82f6;
    color: #e9ecef;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-day.today:hover,
[data-bs-theme='dark'] #dateTimeModal .flatpickr-day.today:focus {
    background-color: rgba(59, 130, 246, 0.3);
    border-color: #3b82f6;
    color: #ffffff;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-day.selected,
[data-bs-theme='dark'] #dateTimeModal .flatpickr-day.startRange,
[data-bs-theme='dark'] #dateTimeModal .flatpickr-day.endRange {
    background-color: #3b82f6 !important;
    border-color: #3b82f6 !important;
    color: #ffffff !important;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-day.selected:hover,
[data-bs-theme='dark'] #dateTimeModal .flatpickr-day.startRange:hover,
[data-bs-theme='dark'] #dateTimeModal .flatpickr-day.endRange:hover {
    background-color: #2563eb !important;
    border-color: #2563eb !important;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-day.inRange {
    background-color: rgba(59, 130, 246, 0.15);
    border-color: rgba(59, 130, 246, 0.2);
    color: #e9ecef;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-day.flatpickr-disabled,
[data-bs-theme='dark'] #dateTimeModal .flatpickr-day.prevMonthDay,
[data-bs-theme='dark'] #dateTimeModal .flatpickr-day.nextMonthDay {
    color: rgba(255, 255, 255, 0.3);
    background-color: transparent;
    border-color: transparent;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-day.flatpickr-disabled {
    color: rgba(255, 255, 255, 0.15);
    cursor: not-allowed;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-innerContainer {
    background-color: #2d3338;
}

[data-bs-theme='dark'] #dateTimeModal .dayContainer {
    background-color: #2d3338;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-time {
    background-color: #2d3338;
    border-top-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-time input {
    color: #e9ecef;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-time .flatpickr-time-separator,
[data-bs-theme='dark'] #dateTimeModal .flatpickr-time .flatpickr-am-pm {
    color: #e9ecef;
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-time input:hover,
[data-bs-theme='dark'] #dateTimeModal .flatpickr-time .flatpickr-am-pm:hover,
[data-bs-theme='dark'] #dateTimeModal .flatpickr-time input:focus,
[data-bs-theme='dark'] #dateTimeModal .flatpickr-time .flatpickr-am-pm:focus {
    background-color: rgba(59, 130, 246, 0.2);
}

[data-bs-theme='dark'] #dateTimeModal .numInputWrapper {
    background-color: transparent;
}

[data-bs-theme='dark'] #dateTimeModal .numInputWrapper span {
    border-color: rgba(255, 255, 255, 0.2);
}

[data-bs-theme='dark'] #dateTimeModal .numInputWrapper span:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] #dateTimeModal .numInputWrapper span:after {
    border-color: rgba(255, 255, 255, 0.6);
}

[data-bs-theme='dark'] #dateTimeModal .flatpickr-calendar-container {
    background-color: transparent;
}

/* Dark theme for existing bookings card in dateTimeModal */
[data-bs-theme='dark'] #dateTimeModal .card {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] #dateTimeModal .card-header {
    background-color: #1d2226 !important;
    border-bottom-color: rgba(255, 255, 255, 0.1);
    color: #e9ecef;
}

[data-bs-theme='dark'] #dateTimeModal .card-body {
    background-color: #2d3338;
    color: #e9ecef;
}

[data-bs-theme='dark'] #dateTimeModal .bg-light {
    background-color: #2d3338 !important;
}

/* Dark theme for form controls in dateTimeModal */
[data-bs-theme='dark'] #dateTimeModal .form-control {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.2);
    color: #e9ecef;
}

[data-bs-theme='dark'] #dateTimeModal .form-control:focus {
    background-color: #1d2226;
    border-color: #3b82f6;
    color: #e9ecef;
    box-shadow: 0 0 0 0.2rem rgba(59, 130, 246, 0.25);
}

[data-bs-theme='dark'] #dateTimeModal .form-control::placeholder {
    color: #6c757d;
}

/* Dark theme for alerts in dateTimeModal */
[data-bs-theme='dark'] #dateTimeModal .alert {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.1);
    color: #e9ecef;
}

[data-bs-theme='dark'] #dateTimeModal .alert-warning {
    background-color: rgba(255, 193, 7, 0.2) !important;
    border-color: rgba(255, 193, 7, 0.3) !important;
    color: #ffd54f !important;
}

[data-bs-theme='dark'] #dateTimeModal .alert-info {
    background-color: rgba(13, 110, 253, 0.2) !important;
    border-color: rgba(13, 110, 253, 0.3) !important;
    color: #a5c9ff !important;
}

[data-bs-theme='dark'] #dateTimeModal .bg-warning-subtle {
    background-color: rgba(255, 193, 7, 0.2) !important;
}

[data-bs-theme='dark'] #dateTimeModal .border-warning-subtle {
    border-color: rgba(255, 193, 7, 0.3) !important;
}

[data-bs-theme='dark'] #dateTimeModal .text-warning-emphasis {
    color: #ffd54f !important;
}

[data-bs-theme='dark'] #dateTimeModal .bg-info-subtle {
    background-color: rgba(13, 110, 253, 0.2) !important;
}

[data-bs-theme='dark'] #dateTimeModal .border-info-subtle {
    border-color: rgba(13, 110, 253, 0.3) !important;
}

[data-bs-theme='dark'] #dateTimeModal .text-info-emphasis {
    color: #a5c9ff !important;
}

/* Light theme for calendar card - ensure good contrast */
.card {
    background-color: #ffffff;
    border-color: #dee2e6;
}

.card-body {
    background-color: #ffffff;
}

.card h4 {
    color: #212529;
    font-weight: 600;
}

/* Dark theme for calendar card */
[data-bs-theme='dark'] .card {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] .card-body {
    background-color: #1d2226;
}

[data-bs-theme='dark'] .card h4 {
    color: #e9ecef;
}

/* ========== GENERAL DARK THEME COMPONENTS ========== */
/* General Tables */
[data-bs-theme='dark'] .table {
    color: #e9ecef;
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] .table thead {
    background-color: #2d3338;
}

[data-bs-theme='dark'] .table thead th {
    color: #e9ecef;
    border-color: rgba(255, 255, 255, 0.1);
    font-weight: 600;
}

[data-bs-theme='dark'] .table tbody {
    background-color: #1d2226;
}

[data-bs-theme='dark'] .table tbody td {
    color: #e9ecef;
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] .table tbody tr:hover {
    background-color: rgba(255, 255, 255, 0.05);
}

[data-bs-theme='dark'] .table tbody tr:hover td {
    color: #ffffff;
}

[data-bs-theme='dark'] .table .bg-light,
[data-bs-theme='dark'] .table .bg-light.bg-opacity-50 {
    background-color: #2d3338 !important;
}

/* General Modals */
[data-bs-theme='dark'] .modal-content {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] .modal-header {
    background-color: #1d2226;
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] .modal-title {
    color: #e9ecef;
}

[data-bs-theme='dark'] .modal-body {
    background-color: #1d2226;
    color: #e9ecef;
}

[data-bs-theme='dark'] .modal-footer {
    background-color: #1d2226;
    border-top-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] .modal .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

/* General Buttons */
[data-bs-theme='dark'] .btn-light {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.2);
    color: #e9ecef;
}

[data-bs-theme='dark'] .btn-light:hover {
    background-color: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.3);
    color: #ffffff;
}

[data-bs-theme='dark'] .btn-outline-secondary {
    border-color: rgba(255, 255, 255, 0.2);
    color: #e9ecef;
}

[data-bs-theme='dark'] .btn-outline-secondary:hover {
    background-color: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.3);
    color: #ffffff;
}

[data-bs-theme='dark'] .btn-soft-secondary {
    background-color: rgba(108, 117, 125, 0.2);
    border-color: rgba(108, 117, 125, 0.3);
    color: #adb5bd;
}

[data-bs-theme='dark'] .btn-soft-secondary:hover {
    background-color: rgba(108, 117, 125, 0.3);
    border-color: rgba(108, 117, 125, 0.4);
    color: #e9ecef;
}

/* Badges */
[data-bs-theme='dark'] .badge {
    color: #ffffff;
}

[data-bs-theme='dark'] .badge-soft-primary {
    background-color: rgba(59, 130, 246, 0.2);
    color: #93c5fd;
}

[data-bs-theme='dark'] .badge-soft-success {
    background-color: rgba(25, 135, 84, 0.2);
    color: #86d9b8;
}

[data-bs-theme='dark'] .badge-soft-warning {
    background-color: rgba(255, 193, 7, 0.2);
    color: #ffd54f;
}

[data-bs-theme='dark'] .badge-soft-danger {
    background-color: rgba(220, 53, 69, 0.2);
    color: #f5a2a9;
}

[data-bs-theme='dark'] .badge-soft-info {
    background-color: rgba(13, 110, 253, 0.2);
    color: #a5c9ff;
}

/* General Alerts */
[data-bs-theme='dark'] .alert {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.1);
    color: #e9ecef;
}

[data-bs-theme='dark'] .alert-success {
    background-color: rgba(25, 135, 84, 0.2);
    border-color: rgba(25, 135, 84, 0.3);
    color: #86d9b8;
}

[data-bs-theme='dark'] .alert-danger {
    background-color: rgba(220, 53, 69, 0.2);
    border-color: rgba(220, 53, 69, 0.3);
    color: #f5a2a9;
}

[data-bs-theme='dark'] .alert-warning {
    background-color: rgba(255, 193, 7, 0.2);
    border-color: rgba(255, 193, 7, 0.3);
    color: #ffd54f;
}

[data-bs-theme='dark'] .alert-info {
    background-color: rgba(13, 110, 253, 0.2);
    border-color: rgba(13, 110, 253, 0.3);
    color: #a5c9ff;
}

/* Dropdowns */
[data-bs-theme='dark'] .dropdown-menu {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.1);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.3);
}

[data-bs-theme='dark'] .dropdown-item {
    color: #e9ecef;
}

[data-bs-theme='dark'] .dropdown-item:hover,
[data-bs-theme='dark'] .dropdown-item:focus {
    background-color: rgba(255, 255, 255, 0.1);
    color: #ffffff;
}

[data-bs-theme='dark'] .dropdown-item.active,
[data-bs-theme='dark'] .dropdown-item:active {
    background-color: #3b82f6;
    color: #ffffff;
}

[data-bs-theme='dark'] .dropdown-header {
    color: #adb5bd;
}

[data-bs-theme='dark'] .dropdown-divider {
    border-top-color: rgba(255, 255, 255, 0.1);
}

/* Pagination */
[data-bs-theme='dark'] .pagination {
    color: #e9ecef;
}

[data-bs-theme='dark'] .page-link {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.1);
    color: #e9ecef;
}

[data-bs-theme='dark'] .page-link:hover {
    background-color: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.2);
    color: #ffffff;
}

[data-bs-theme='dark'] .page-item.active .page-link {
    background-color: #3b82f6;
    border-color: #3b82f6;
    color: #ffffff;
}

[data-bs-theme='dark'] .page-item.disabled .page-link {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.05);
    color: #6c757d;
    opacity: 0.5;
}

/* Input Groups */
[data-bs-theme='dark'] .input-group-text {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.2);
    color: #e9ecef;
}

[data-bs-theme='dark'] .input-group .form-control {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.2);
    color: #e9ecef;
}

[data-bs-theme='dark'] .input-group .form-control:focus {
    background-color: #1d2226;
    border-color: #3b82f6;
    color: #e9ecef;
}

/* List Groups */
[data-bs-theme='dark'] .list-group {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] .list-group-item {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.1);
    color: #e9ecef;
}

[data-bs-theme='dark'] .list-group-item:hover {
    background-color: rgba(255, 255, 255, 0.05);
}

[data-bs-theme='dark'] .list-group-item.active {
    background-color: #3b82f6;
    border-color: #3b82f6;
    color: #ffffff;
}

/* Form Controls (General) */
[data-bs-theme='dark'] .form-control,
[data-bs-theme='dark'] .form-select {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.2);
    color: #e9ecef;
}

[data-bs-theme='dark'] .form-control:focus,
[data-bs-theme='dark'] .form-select:focus {
    background-color: #1d2226;
    border-color: #3b82f6;
    color: #e9ecef;
    box-shadow: 0 0 0 0.2rem rgba(59, 130, 246, 0.25);
}

[data-bs-theme='dark'] .form-control::placeholder {
    color: #6c757d;
}

[data-bs-theme='dark'] .form-label {
    color: #e9ecef;
}

[data-bs-theme='dark'] .form-text {
    color: #adb5bd;
}

[data-bs-theme='dark'] .form-check-label {
    color: #e9ecef;
}

[data-bs-theme='dark'] .form-check-input {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.3);
}

[data-bs-theme='dark'] .form-check-input:checked {
    background-color: #3b82f6;
    border-color: #3b82f6;
}

/* Background Utilities */
[data-bs-theme='dark'] .bg-light {
    background-color: #2d3338 !important;
}

[data-bs-theme='dark'] .bg-light.bg-opacity-50 {
    background-color: rgba(45, 51, 56, 0.5) !important;
}

[data-bs-theme='dark'] .bg-opacity-50 {
    opacity: 0.5;
}

/* Border Utilities */
[data-bs-theme='dark'] .border-top,
[data-bs-theme='dark'] .border-bottom,
[data-bs-theme='dark'] .border-start,
[data-bs-theme='dark'] .border-end {
    border-color: rgba(255, 255, 255, 0.1) !important;
}

[data-bs-theme='dark'] .border {
    border-color: rgba(255, 255, 255, 0.1) !important;
}

/* Text Utilities */
[data-bs-theme='dark'] .text-muted {
    color: #adb5bd !important;
}

[data-bs-theme='dark'] .text-dark {
    color: #e9ecef !important;
}

/* Choices.js Dropdowns (General) */
[data-bs-theme='dark'] .choices {
    background-color: #1d2226;
}

[data-bs-theme='dark'] .choices__inner {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.2);
    color: #e9ecef;
}

[data-bs-theme='dark'] .choices__input {
    background-color: #1d2226;
    color: #e9ecef;
}

[data-bs-theme='dark'] .choices__list--dropdown {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.2);
}

[data-bs-theme='dark'] .choices__item {
    color: #e9ecef;
}

[data-bs-theme='dark'] .choices__item--selectable.is-highlighted {
    background-color: rgba(59, 130, 246, 0.2);
    color: #ffffff;
}

[data-bs-theme='dark'] .choices__item--choice.is-selected {
    background-color: #3b82f6;
    color: #ffffff;
}

[data-bs-theme='dark'] .choices__placeholder {
    color: #6c757d;
}

/* Search Drop Bar */
[data-bs-theme='dark'] .search-drop-bar {
    background-color: transparent;
}

/* Signature (Waiver) */
[data-bs-theme='dark'] .signature {
    background-color: #2d3338;
    color: #adb5bd;
    border-color: rgba(255, 255, 255, 0.1);
}

/* Embed Styles */
[data-bs-theme='dark'] .embed-styles {
    background-color: #2d3338;
    color: #adb5bd;
}

[data-bs-theme='dark'] .embed-styles div {
    background-color: #1d2226;
}

[data-bs-theme='dark'] .embed-styles span {
    background-color: #2d3338;
}

[data-bs-theme='dark'] .embed-styles h1 {
    color: #e9ecef;
}

[data-bs-theme='dark'] .embed-styles-calendar {
    color: #adb5bd;
}

[data-bs-theme='dark'] .embed-styles-calendar span.featured-img {
    background-color: #2d3338;
}

/* Card Header */
[data-bs-theme='dark'] .card-header {
    background-color: #2d3338;
    border-bottom-color: rgba(255, 255, 255, 0.1);
    color: #e9ecef;
}

[data-bs-theme='dark'] .card-header.bg-light {
    background-color: #2d3338 !important;
}

/* Card Footer */
[data-bs-theme='dark'] .card-footer {
    background-color: #2d3338;
    border-top-color: rgba(255, 255, 255, 0.1);
    color: #e9ecef;
}

/* Tooltips */
[data-bs-theme='dark'] .tooltip .tooltip-inner {
    background-color: #2d3338;
    color: #e9ecef;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] .tooltip .tooltip-arrow::before {
    border-color: #2d3338 transparent transparent transparent;
}

[data-bs-theme='dark'] .tooltip.bs-tooltip-top .tooltip-arrow::before {
    border-top-color: #2d3338;
}

[data-bs-theme='dark'] .tooltip.bs-tooltip-bottom .tooltip-arrow::before {
    border-bottom-color: #2d3338;
}

[data-bs-theme='dark'] .tooltip.bs-tooltip-start .tooltip-arrow::before {
    border-left-color: #2d3338;
}

[data-bs-theme='dark'] .tooltip.bs-tooltip-end .tooltip-arrow::before {
    border-right-color: #2d3338;
}

/* Popovers (General) */
[data-bs-theme='dark'] .popover {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.1);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.3);
}

[data-bs-theme='dark'] .popover-header {
    background-color: #1d2226;
    border-bottom-color: rgba(255, 255, 255, 0.1);
    color: #e9ecef;
}

[data-bs-theme='dark'] .popover-body {
    background-color: #2d3338;
    color: #e9ecef;
}

[data-bs-theme='dark'] .popover .popover-arrow::before {
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] .popover .popover-arrow::after {
    border-color: #2d3338;
}

/* Offcanvas */
[data-bs-theme='dark'] .offcanvas {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] .offcanvas-header {
    background-color: #1d2226;
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] .offcanvas-title {
    color: #e9ecef;
}

[data-bs-theme='dark'] .offcanvas-body {
    background-color: #1d2226;
    color: #e9ecef;
}

/* Nav Tabs & Pills (General) */
[data-bs-theme='dark'] .nav-tabs {
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] .nav-tabs .nav-link {
    color: #adb5bd;
    border-color: transparent;
}

[data-bs-theme='dark'] .nav-tabs .nav-link:hover {
    color: #e9ecef;
    border-color: rgba(255, 255, 255, 0.1);
    background-color: rgba(255, 255, 255, 0.05);
}

[data-bs-theme='dark'] .nav-tabs .nav-link.active {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.1) rgba(255, 255, 255, 0.1) #1d2226;
    color: #e9ecef;
}

[data-bs-theme='dark'] .nav-pills .nav-link {
    color: #adb5bd;
    background-color: transparent;
}

[data-bs-theme='dark'] .nav-pills .nav-link:hover {
    color: #e9ecef;
    background-color: rgba(255, 255, 255, 0.05);
}

[data-bs-theme='dark'] .nav-pills .nav-link.active {
    background-color: #3b82f6;
    color: #ffffff;
}

/* Breadcrumb */
[data-bs-theme='dark'] .breadcrumb {
    background-color: #2d3338;
}

[data-bs-theme='dark'] .breadcrumb-item a {
    color: #93c5fd;
}

[data-bs-theme='dark'] .breadcrumb-item.active {
    color: #e9ecef;
}

[data-bs-theme='dark'] .breadcrumb-item + .breadcrumb-item::before {
    color: #adb5bd;
}

/* Progress Bars */
[data-bs-theme='dark'] .progress {
    background-color: #2d3338;
}

[data-bs-theme='dark'] .progress-bar {
    background-color: #3b82f6;
    color: #ffffff;
}

/* Spinners */
[data-bs-theme='dark'] .spinner-border {
    border-color: rgba(255, 255, 255, 0.2);
    border-right-color: transparent;
}

[data-bs-theme='dark'] .spinner-grow {
    background-color: rgba(255, 255, 255, 0.2);
}

/* Toast */
[data-bs-theme='dark'] .toast {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.1);
    color: #e9ecef;
}

[data-bs-theme='dark'] .toast-header {
    background-color: #1d2226;
    border-bottom-color: rgba(255, 255, 255, 0.1);
    color: #e9ecef;
}

[data-bs-theme='dark'] .toast-body {
    background-color: #2d3338;
    color: #e9ecef;
}

[data-bs-theme='dark'] .toast .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

/* Accordion */
[data-bs-theme='dark'] .accordion {
    background-color: #1d2226;
}

[data-bs-theme='dark'] .accordion-item {
    background-color: #1d2226;
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] .accordion-button {
    background-color: #2d3338;
    color: #e9ecef;
}

[data-bs-theme='dark'] .accordion-button:not(.collapsed) {
    background-color: #2d3338;
    color: #e9ecef;
    box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.1);
}

[data-bs-theme='dark'] .accordion-button::after {
    filter: invert(1);
}

[data-bs-theme='dark'] .accordion-body {
    background-color: #1d2226;
    color: #e9ecef;
}

/* Code & Pre */
[data-bs-theme='dark'] code {
    background-color: #2d3338;
    color: #86d9b8;
}

[data-bs-theme='dark'] pre {
    background-color: #2d3338;
    border-color: rgba(255, 255, 255, 0.1);
    color: #e9ecef;
}

/* Blockquote */
[data-bs-theme='dark'] blockquote {
    border-left-color: rgba(255, 255, 255, 0.2);
    color: #adb5bd;
}

/* Horizontal Rule */
[data-bs-theme='dark'] hr {
    border-top-color: rgba(255, 255, 255, 0.1);
    opacity: 1;
}

/* ========== EVENT TABLE STATUS BADGES - DARK THEME ========== */
/* Status badge colors for event tables - maintain visibility in dark theme */
[data-bs-theme='dark'] .badge.bg-success,
[data-bs-theme='dark'] .bg-success {
    background-color: #10b981 !important;
    color: #ffffff !important;
}

[data-bs-theme='dark'] .badge.bg-warning,
[data-bs-theme='dark'] .bg-warning {
    background-color: #f59e0b !important;
    color: #ffffff !important;
}

[data-bs-theme='dark'] .badge.bg-info,
[data-bs-theme='dark'] .bg-info {
    background-color: #3b82f6 !important;
    color: #ffffff !important;
}

[data-bs-theme='dark'] .badge.bg-danger,
[data-bs-theme='dark'] .bg-danger {
    background-color: #ef4444 !important;
    color: #ffffff !important;
}

[data-bs-theme='dark'] .badge.bg-secondary,
[data-bs-theme='dark'] .bg-secondary {
    background-color: #6b7280 !important;
    color: #ffffff !important;
}

[data-bs-theme='dark'] .badge.bg-dark,
[data-bs-theme='dark'] .bg-dark {
    background-color: #4b5563 !important;
    color: #ffffff !important;
}

/* Event status badge specific styling */
[data-bs-theme='dark'] .event-status-badge {
    color: #ffffff !important;
}

[data-bs-theme='dark'] .event-status-badge.bg-success {
    background-color: #10b981 !important;
    color: #ffffff !important;
}

[data-bs-theme='dark'] .event-status-badge.bg-warning {
    background-color: #f59e0b !important;
    color: #ffffff !important;
}

[data-bs-theme='dark'] .event-status-badge.bg-info {
    background-color: #3b82f6 !important;
    color: #ffffff !important;
}

[data-bs-theme='dark'] .event-status-badge.bg-danger {
    background-color: #ef4444 !important;
    color: #ffffff !important;
}

[data-bs-theme='dark'] .event-status-badge.bg-secondary {
    background-color: #6b7280 !important;
    color: #ffffff !important;
}

[data-bs-theme='dark'] .event-status-badge.bg-dark {
    background-color: #4b5563 !important;
    color: #ffffff !important;
}

/* ========== MODAL VALIDATION STYLES ========== */
/* Enhanced visual feedback for form validation in modals - Clean UX without icons */

/* Remove all validation icons globally for cleaner look - applies to ALL forms, not just modals */
/* This overrides Bootstrap's default validation icons */
.form-control.is-valid,
.form-control.is-invalid,
.form-select.is-valid,
.form-select.is-invalid,
select.is-valid,
select.is-invalid,
textarea.is-valid,
textarea.is-invalid,
input.is-valid,
input.is-invalid,
.modal .form-control.is-valid,
.modal .form-control.is-invalid,
.modal .form-select.is-valid,
.modal .form-select.is-invalid,
.modal textarea.is-valid,
.modal textarea.is-invalid,
#bookingFlowModal .form-control.is-valid,
#bookingFlowModal .form-control.is-invalid,
#bookingFlowModal .form-select.is-valid,
#bookingFlowModal .form-select.is-invalid,
#bookingFlowModal textarea.is-valid,
#bookingFlowModal textarea.is-invalid,
#bookingFlowModal input.is-valid,
#bookingFlowModal input.is-invalid,
#bookingFlowModal select.is-valid,
#bookingFlowModal select.is-invalid,
.was-validated .form-control.is-valid,
.was-validated .form-control.is-invalid,
.was-validated .form-select.is-valid,
.was-validated .form-select.is-invalid,
.was-validated textarea.is-valid,
.was-validated textarea.is-invalid,
#bookingFlowModal.was-validated .form-control.is-valid,
#bookingFlowModal.was-validated .form-control.is-invalid {
    background-image: none !important;
    padding-right: 0.75rem !important; /* Reset to default padding */
    background-position: unset !important;
    background-repeat: no-repeat !important;
    background-size: unset !important;
    /* Force remove any pseudo-elements that might show icons */
}

/* Extra aggressive rules for bookingFlowModal to ensure NO icons */
/* Only target form controls, not all elements */
#bookingFlowModal input,
#bookingFlowModal select,
#bookingFlowModal textarea,
#bookingFlowModal .form-control,
#bookingFlowModal .form-select {
    background-image: none !important;
}

#bookingFlowModal input.is-valid,
#bookingFlowModal input.is-invalid,
#bookingFlowModal select.is-valid,
#bookingFlowModal select.is-invalid,
#bookingFlowModal textarea.is-valid,
#bookingFlowModal textarea.is-invalid {
    background-image: none !important;
    padding-right: 0.75rem !important;
    background-position: unset !important;
    background-repeat: no-repeat !important;
    background-size: unset !important;
}

/* Valid field styling - subtle green border only, no icon */
/* BUT: Never show green for empty fields - override with more specific rules */
.modal .form-control.is-valid:not([value=""]):not(:empty),
.modal .form-select.is-valid:not([value=""]),
.modal textarea.is-valid:not(:empty),
#bookingFlowModal .form-control.is-valid:not([value=""]):not(:empty),
#bookingFlowModal .form-select.is-valid:not([value=""]),
#bookingFlowModal textarea.is-valid:not(:empty) {
    border-color: #28a745;
}

/* CRITICAL: Force remove green border from empty fields in bookingFlowModal */
/* Use attribute selectors and :empty pseudo-class */
#bookingFlowModal input.is-valid[value=""],
#bookingFlowModal input.is-valid[value=" "],
#bookingFlowModal input.is-valid:not([value]),
#bookingFlowModal select.is-valid[value=""],
#bookingFlowModal select.is-valid:not([value]),
#bookingFlowModal textarea.is-valid:empty,
#bookingFlowModal .form-control.is-valid[value=""],
#bookingFlowModal .form-control.is-valid[value=" "],
#bookingFlowModal .form-control.is-valid:not([value]),
#bookingFlowModal .form-control.is-valid:empty,
/* Also target by checking if value attribute is missing or empty */
#bookingFlowModal input[type="text"].is-valid:not([value]),
#bookingFlowModal input[type="email"].is-valid:not([value]),
#bookingFlowModal input[type="tel"].is-valid:not([value]),
#bookingFlowModal input[type="number"].is-valid:not([value]) {
    border-color: #dee2e6 !important;
    background-color: inherit !important;
    background-image: none !important;
}

/* Additional rule: If field has is-valid but no value attribute or empty value, remove green */
#bookingFlowModal input.is-valid:not([value]),
#bookingFlowModal input.is-valid[value=""],
#bookingFlowModal input.is-valid[value=" "],
#bookingFlowModal input[type="text"].is-valid:not([value]),
#bookingFlowModal input[type="email"].is-valid:not([value]),
#bookingFlowModal input[type="tel"].is-valid:not([value]),
#bookingFlowModal input[type="number"].is-valid:not([value]),
#bookingFlowModal input[type="text"].is-valid[value=""],
#bookingFlowModal input[type="email"].is-valid[value=""],
#bookingFlowModal input[type="tel"].is-valid[value=""],
#bookingFlowModal input[type="number"].is-valid[value=""] {
    border-color: #dee2e6 !important;
    background-image: none !important;
    background-color: inherit !important;
}

/* Nuclear option: Remove is-valid styling from ALL fields in bookingFlowModal that don't have a value */
/* This is a catch-all to prevent any empty field from showing green */
#bookingFlowModal input.is-valid:not([value]),
#bookingFlowModal input.is-valid[value=""],
#bookingFlowModal input.is-valid[value=" "],
#bookingFlowModal input.is-valid:empty {
    border-color: #dee2e6 !important;
    background-image: none !important;
    background: none !important;
}

/* Force remove is-valid class styling for any field without a proper value */
#bookingFlowModal .form-control.is-valid:not([value]),
#bookingFlowModal .form-control.is-valid[value=""],
#bookingFlowModal .form-control.is-valid:empty {
    border-color: #dee2e6 !important;
    background-image: none !important;
}

/* ULTIMATE FIX: Completely override is-valid for empty fields in bookingFlowModal */
/* This ensures that even if is-valid class is present, empty fields won't show green */
/* Note: JavaScript handles the actual validation, CSS is just a backup */

/* Ensure empty fields never show valid state */
.modal .form-control.is-valid:empty,
.modal .form-select.is-valid:empty,
.modal textarea.is-valid:empty,
#bookingFlowModal .form-control.is-valid:empty,
#bookingFlowModal .form-select.is-valid:empty,
#bookingFlowModal textarea.is-valid:empty {
    border-color: inherit;
}

/* Remove valid state from fields with empty or whitespace-only values */
.modal .form-control.is-valid[value=""],
.modal .form-control.is-valid[value=" "],
#bookingFlowModal .form-control.is-valid[value=""],
#bookingFlowModal .form-control.is-valid[value=" "] {
    border-color: inherit !important;
}

/* Global rule: Remove valid state from ALL empty input fields (not just modals) */
.form-control.is-valid:not([value]):empty,
.form-control.is-valid[value=""],
.form-control.is-valid[value=" "],
input.is-valid:not([value]),
input.is-valid[value=""],
input.is-valid[value=" "],
select.is-valid:not([value]),
select.is-valid[value=""],
textarea.is-valid:empty {
    border-color: inherit !important;
}

/* Remove is-valid class from empty fields via JavaScript will handle this, but CSS as backup */
.form-control.is-valid:empty:not(:focus),
input.is-valid[value=""]:not(:focus),
select.is-valid[value=""]:not(:focus) {
    border-color: #dee2e6 !important;
}

.modal .form-control.is-valid:focus,
.modal .form-select.is-valid:focus,
.modal textarea.is-valid:focus,
#bookingFlowModal .form-control.is-valid:focus,
#bookingFlowModal .form-select.is-valid:focus,
#bookingFlowModal textarea.is-valid:focus {
    border-color: #28a745;
    box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}

/* Invalid field styling - red border only */
.modal .form-control.is-invalid,
.modal .form-select.is-invalid,
.modal textarea.is-invalid,
#bookingFlowModal .form-control.is-invalid,
#bookingFlowModal .form-select.is-invalid,
#bookingFlowModal textarea.is-invalid {
    border-color: #dc3545;
}

.modal .form-control.is-invalid:focus,
.modal .form-select.is-invalid:focus,
.modal textarea.is-invalid:focus,
#bookingFlowModal .form-control.is-invalid:focus,
#bookingFlowModal .form-select.is-invalid:focus,
#bookingFlowModal textarea.is-invalid:focus {
    border-color: #dc3545;
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

/* Validation feedback messages */
.modal .invalid-feedback {
    display: block;
    width: 100%;
    margin-top: 0.25rem;
    font-size: 0.875em;
    color: #dc3545;
    animation: fadeIn 0.3s ease-in;
}

/* Valid feedback hidden - we only show error messages, not success messages */

/* Smooth fade-in animation for feedback */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-5px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Enhanced focus states for better UX */
.modal .form-control:focus,
.modal .form-select:focus,
.modal textarea:focus {
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

/* Smooth transitions for validation state changes */
.modal .form-control,
.modal .form-select,
.modal textarea {
    transition: border-color 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
}

/* Input group validation styling */
.modal .input-group .form-control.is-valid,
.modal .input-group .form-control.is-invalid {
    z-index: 3;
}

.modal .input-group .form-control.is-valid + .input-group-text,
.modal .input-group .form-control.is-invalid + .input-group-text {
    border-color: inherit;
}

/* Select dropdown validation (for Choices.js) */
.modal .choices.is-valid .choices__inner {
    border-color: #28a745;
}

.modal .choices.is-invalid .choices__inner {
    border-color: #dc3545;
}

.modal .choices.is-valid .choices__inner:focus,
.modal .choices.is-valid .choices__inner:active {
    border-color: #28a745;
    box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}

.modal .choices.is-invalid .choices__inner:focus,
.modal .choices.is-invalid .choices__inner:active {
    border-color: #dc3545;
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

/* Prevent form submission when invalid */
.modal form.was-validated .form-control:invalid,
.modal form.was-validated .form-select:invalid,
.modal form.was-validated textarea:invalid {
    border-color: #dc3545;
}

/* Loading state for async validation (if needed in future) */
.modal .form-control.validating {
    position: relative;
}

.modal .form-control.validating::after {
    content: '';
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    border: 2px solid #f3f3f3;
    border-top: 2px solid #007bff;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: translateY(-50%) rotate(0deg); }
    100% { transform: translateY(-50%) rotate(360deg); }
}

/* Ensure validation feedback doesn't break layout */
.modal .form-group,
.modal .mb-3 {
    position: relative;
}

/* Better spacing for validation messages in modals */
.modal .invalid-feedback {
    margin-bottom: 0.5rem;
}

/* Hide valid-feedback elements to keep modals clean */
.modal .valid-feedback {
    display: none !important;
}

/* Responsive adjustments */
@media (max-width: 576px) {
    .modal .invalid-feedback {
        font-size: 0.8em;
    }
}


