:root {
  --bs-primary: #0066B1;
  --bs-primary-rgb: 0, 102, 177;
  --bs-link-color: #0066B1;
  --bs-link-color-rgb: 0, 102, 177;
  --bs-link-hover-color: #005294;
  --bs-link-hover-color-rgb: 0, 82, 148;
}

body {
  background-color: #D0E1F8 !important;
}

.btn-primary {
  background-color: #0066B1 !important;
  border-color: #0066B1 !important;
  color: white;
  height: 35px;
  font-size: 13px;
  white-space: nowrap;
}

.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active,
.btn-primary:active:focus, .show > .btn-primary.dropdown-toggle {
  background-color: #005294 !important;
  border-color: #005294 !important;
}

.personnel-info-table th {
  background-color: #0066B1 !important;
  color: #fff !important;
}

.btn-outline-primary {
  color: #0066B1 !important;
  border-color: #0066B1 !important;
}

.btn-outline-primary:hover, .btn-outline-primary:active, .btn-outline-primary.active {
  background-color: #0066B1 !important;
  border-color: #0066B1 !important;
  color: #fff !important;
}

.page-item.active .page-link {
  background-color: #0066B1 !important;
  border-color: #0066B1 !important;
}

.btn-warning {
  height: 35px;
  font-size: 13px;
  white-space: nowrap;
}

.text-primary {
  color: #0066B1;
}

.text-primary h4 {
  color: #0066B1;
}

.btn-link {
  color: #0066B1;
}

.btn-tertiary {
  background: white;
  color: #333;
  width: 100%;
  border: 1px solid #ccc;
  border-radius: 6px;
}

.breadcrumb {
  align-items: baseline;
}

.breadcrumb-item+.breadcrumb-item:before {
  content: ">" !important;
}

.breadcrumb-item a {
  color: #aaa;
  font-size: 13px;
  text-decoration: none !important;
}

.breadcrumb-item.active {
  color: #555;
  font-size: 13px;
}

label {
  font-size: 12px;
}

input {
  font-size: 12px;
}

.App {
  text-align: center;
}

.App-logo {
  height: 40vmin;
  pointer-events: none;
}

.app-layout {
  display: flex;
  background: white;
}

.app-menu-user-profile-container {
  position: absolute;
  right: 40px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.app-menu-user-profile {
  border: 1px solid #ccc;
  border-radius: 8px;
  padding: 1px 4px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.user-info-container {
  margin-left: 4px;
  padding: 1px 4px;
}

.user-name {
  font-size: 12px;
}

.user-role {
  font-size: 12px;
  color: #aaa;
}

.app-side-bar-container {
  width: 250px;
  border-right: 1px solid #ccc;
  height: 100vh;
} 

.app-side-bar-collapse {
  padding: 16px;
  border-top: 1px solid #ccc;
  border-right: 1px solid #ccc;
  width: 250px;
  position: absolute;
  bottom: 0;
  left: 0;
  cursor: pointer;
  background: white;
}

.app-side-bar-list-item-container.collapsed {
  text-align: center
}

.app-side-bar-list-item {
  padding: 8px 0 4px 16px;
  margin-right: 16px;
  cursor: pointer;
}

.app-side-bar-list-item-name {
  font-size: 12px;
}

.app-side-bar-menu-container {
  height: calc(100vh - 150px);
  overflow: auto;
}

.float-icon {
  float: right;
}

.with-icon {
  margin-left: 8px;
}

.sub-nav-item {
  padding-top: 2px !important;
  padding-bottom: 2px !important;
}

.app-side-bar-list-item-active {
  background: #EAF3FF;
  border-left: 2px solid #0066B1;
}

.collapse-label {
  color: #555;
  font-size: 12px;
  margin-left: 4px;
}

.app-side-bar-logo {
  padding: 16px;
  border-bottom: 1px solid #ccc;
  width: 250px;
}

.app-layout .collapsed {
  width: 56px !important;
}

.app-side-bar-logo .logo-container {
  position: absolute;
  left: 20px;
  top: 20px;
}

.app-main-container {
  flex: 1;
  min-width: 0;
  padding: 40px;
  height: 100vh;
  overflow: auto;
  position: relative;
}

.app-side-bar-logo img {
  height: 24px;
  width: 24px;
  margin-right: 8px;
}

.app-main-content-list-container {
  border: 1px solid #ccc;
  border-radius: 8px;
  padding: 4px 24px;
}

/* List pages: container constrained to page width, table scrolls inside */
.app-main-content-list-container.list-page {
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}

.app-main-content-list-container.list-page.all-customers-list-page {
  min-height: calc(100vh - 140px);
  padding-bottom: 24px;
  overflow-x: hidden;
  overflow-y: visible;
}

.app-main-content-list-func-container {
  position: relative;
}

.app-main-content-list-func-container .nav-tabs {
  border-bottom: none !important;
}

.app-main-content-list-func-container .nav-tabs .nav-item.show .nav-link, .nav-tabs .nav-link {
  color: #777;
  padding-bottom: 16px;
  font-size: 14px;
}

.app-main-content-list-func-container .nav-tabs .nav-item.show .nav-link, .nav-tabs .nav-link:hover {
  border: none;
  border-bottom-color: #0066B1 !important;
}

.app-main-content-list-func-container .nav-tabs .nav-item.show .nav-link, .nav-tabs .nav-link.active:hover {
  border-color: transparent;
}

.app-main-content-list-func-container .nav-tabs .nav-item.show .nav-link, .nav-tabs .nav-link.active {
  border-color: transparent;
  border-bottom-color: #0066B1;
  color: #0066B1 !important;
}

/* List pages: tab-pane contains scrollable table */
.app-main-content-list-container.list-page .tab-pane {
  border-top: 1px solid #ccc;
  padding-top: 24px;
  overflow-x: auto;
  max-width: 100%;
}

/* List pages: table wrapper should scroll horizontally */
.app-main-content-list-container.list-page .col-md-12 {
  overflow-x: auto;
  max-width: 100%;
}

/* Form pages: tab-pane should not scroll either */
.app-main-content-list-container.form-page .tab-pane {
  border-top: 1px solid #ccc;
  padding-top: 24px;
  overflow: visible;
}

.app-main-content-list-func-container .list-func-panel {
  position: absolute;
  right: 0;
  top: 4px;
  display: flex;
}



@media (prefers-reduced-motion: no-preference) {
  .App-logo {
    animation: App-logo-spin infinite 20s linear;
  }
}

fieldset {
  padding: 15px !important;
  border-width: 2px !important;
  border-style: groove !important;
  border-color: rgb(192, 192, 192) !important;
  border-image: initial !important;
}

legend {
  font-size: 1em !important;
  font-weight: bold;
  margin-bottom: 24px;
}

.App-header {
  background-color: #282c34;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: calc(10px + 2vmin);
  color: white;
}

.App-link {
  color: #61dafb;
}

@keyframes App-logo-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* .container-fixed {
  margin-top: 6rem;
} */

.card-container {
  border: none;
  padding: 16px;
  margin-bottom: 16px;
  font-size: .8em;
  color: #333;
  cursor: pointer;
  border-radius: 8px;
  background: #eee;
}

.card-status {
  font-size: .6em;
}

.card-container.purple {
  background: #610dad;
  color: #fff;
}

.card-status .yellow {
  background: #ffc107;
  border-radius: 12px;
  width: 12px;
  height: 12px;
  margin-right: 5px;
}

.card-status .red {
  background: #dc3545;
  border-radius: 12px;
  width: 12px;
  height: 12px;
  margin-right: 5px;
}

.card-status .blue {
  background: #0dcaf0;
  border-radius: 12px;
  width: 12px;
  height: 12px;
  margin-right: 5px;
}

.card-status .green {
  background: #0de480;
  border-radius: 12px;
  width: 12px;
  height: 12px;
  margin-right: 5px;
}

.card-status .gray {
  background: #ccc;
  border-radius: 12px;
  width: 12px;
  height: 12px;
  margin-right: 5px;
}

/* table {
  border: 1px solid #0dcaf0;
} */

table tr {
  border: 1px solid white;
}

table {
  width: 100%;
  table-layout: auto;
}

table tr th {
  border: 1px solid white;
  padding: 8px 16px;
  font-size: 12px;
  background-color: #0066B1;
  color: white;
  width: fit-content;
  max-width: 250px;
  overflow-wrap: break-word;
}

table tr td {
  border: 1px solid white;
  padding: 8px 16px;
  font-size: 12px;
  color: #333;
  width: fit-content;
  max-width: 250px;
  overflow-wrap: break-word;
}

.clickable {
  cursor: pointer;
}

.td-checkbox, .th-checkbox {
  width: 30px !important;
  padding-left: 14px !important;
  min-width: 5px !important;
}

.td-index, .th-index {
  width: 30px !important;
  padding-left: 14px !important;
  min-width: 5px !important;
}

.float-right {
  float: right;
}

tbody tr:nth-child(even) {
  background-color: #eee;
}

table .children {
  padding-left: 40px;
}

table .group td {
  font-style: italic;
}

.list-func-panel .dropdown-menu {
  padding: 20px;
  min-width: 280px;
  width: max-content;
  right: 0 !important;
  left: auto !important;
  transform: translate(0px, 37px)!important;
}

/* Form pages: container should be 100% width and height, not scrollable */
.app-main-content-list-container.form-page {
  width: 100%;
  max-width: none;
  min-height: calc(100vh - 140px);
  overflow: visible;
}

.app-main-content-fields-section {
  display: flex;
  align-items: baseline;
  margin-top: 24px;
  margin-bottom: 40px;
  flex-wrap: wrap;
}

/* Consistent vertical spacing for all field wrappers in form pages */
.app-main-content-list-container.form-page .app-main-content-fields-section > div[class*="me-"] {
  margin-bottom: 16px;
}

/* Remove excessive section margins inside form pages for consistent row spacing */
.app-main-content-list-container.form-page .app-main-content-fields-section {
  margin-top: 0;
  margin-bottom: 0;
}

/* Section title spacing in form pages */
.app-main-content-list-container.form-page h6.text-primary {
  margin-top: 32px;
  margin-bottom: 16px;
}

.app-main-content-list-container.form-page h6.text-primary:first-child {
  margin-top: 8px;
}

.app-main-content-fields-section.flex-end {
  display: flex;
  align-items: flex-end;
  margin-top: 24px;
  margin-bottom: 40px;
  flex-wrap: wrap;
}

.app-main-content-fields-section.column {
  flex-direction: column;
}

.no-margin-v {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.margin-sm {
  margin-top: 20px !important;
  margin-bottom: 20px !important;
}

.app-main-content-fields-section li {
  list-style: decimal;
  margin-top: 4px;
  margin-bottom: 4px;
}

/* .app-main-content-fields-section.base-line {
  align-items: baseline !important;
} */

.app-main-content-fields-section .field-label {
  font-size: 13px;
  color: black;
  font-weight: 500;
  line-height: 2;
  white-space: nowrap;
}

.multi-columns-container {
  display: flex;
  /* background: #D0E1F8; */
  padding: 24px 0;
  border-radius: 10px;
}

.column-container {
  padding: 0 20px 0 0;
}

.column-card {
  background: white;
  padding:24px;
  border-radius: 10px;
  border: 1px solid #ccc;
  margin-bottom: 24px;
}

.react-time-picker__wrapper,
.react-datetime-picker__wrapper {
  border: 1px solid #ccc !important;
  border-radius: 8px;
  min-height: 45px;
  padding: 10px 12px;
  background: #fff;
}

.react-time-picker__wrapper input[type=number],
.react-datetime-picker__wrapper input[type=number] {
  border: none;
  padding-left: 2px !important;
  padding-right: 2px !important;
  height: auto !important;
}

.app-main-content-fields-section .field-value {
  font-size: 12px;
  color: #555;
  min-height: 1.2em;
}

.app-main-content-fields-section .field-value:empty::before {
  content: '\00a0';
}

.app-main-content-fields-section .field-body {
  margin-right: 100px;
}

.app-main-content-fields-section.short .field-body {
  margin-right: 20px;
  min-width: 140px;
  flex: 1;
}

.app-main-content-fields-section.short {
  margin-bottom: 0;
  margin-top: 12px;
  display: flex;
  gap: 16px;
}

.app-main-content-fields-section.with-function .react-datepicker-wrapper {
  width: 120px !important;
}

.app-main-content-fields-section input[type=text] {
  width: 350px;
  height: 45px;
  font-size: 14px;
}

.app-main-content-fields-section input[type=text]::placeholder {
  font-size: 14px;
}

.app-main-content-fields-section.dropdown-container input[type=text] {
  width: 210px;
  height: 45px;
}

.app-main-content-fields-section.dropdown-container input[type=number] {
  width: 210px;
  height: 45px;
}

.app-main-content-fields-section.dropdown-container select {
  width: 210px;
  height: 45px;
}

.manage-table-columns-wrapper {
  width: 100%;
  margin-right: 0;
}

.manage-table-columns-scroll {
  max-height: 240px;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 0;
  margin-right: 0;
}

.app-main-content-fields-section.with-function .react-datepicker-wrapper input[type=text] {
  height: 45px;
  width: 120px;
}

.app-main-content-fields-section input[type=text].shorter {
  width: 50px;
  height: 45px;
}

.app-main-content-fields-section input[type=text].short {
  width: 150px;
  height: 45px;
}

.app-main-content-fields-section input[type=text].long {
  width: 450px;
  height: 45px;
}

.app-main-content-fields-section .file-name {
  color: #aaa;
  margin-top: 4px;
  font-size: 13px;
}

.app-main-content-fields-section input[type=email] {
  width: 350px;
  height: 45px;
  font-size: 14px;
}

.app-main-content-fields-section input[type=email]::placeholder {
  font-size: 14px;
}

.app-main-content-fields-section input[type=number] {
  width: 350px;
  height: 45px;
  font-size: 14px;
}

.app-main-content-fields-section input[type=number]::placeholder {
  font-size: 14px;
}

.app-main-content-fields-section input[type=file] {
  display: none;
}

.custom-file-upload {
  background:#0066B1;
  display: inline-block;
  cursor: pointer;
  color: white;
  height: 45px;
  width: 150px;
  padding: 12px;
  font-size: 13px;
  font-weight: 500;
  border-radius: 6px;
}

.app-main-content-fields-section select {
  width: 350px;
  height: 45px;
  border-radius: 8px;
  margin-left: 0 !important;
  border-color: #ccc !important;
  font-size: 14px;
}

.app-main-content-fields-section .form-control {
  font-size: 14px;
}

.app-main-content-fields-section .form-control::placeholder {
  font-size: 14px;
}

.app-main-content-fields-section textarea {
  font-size: 14px;
}

.app-main-content-fields-section textarea::placeholder {
  font-size: 14px;
}

.app-main-content-fields-section .field-blurb {
  color: #aaa;
}

.app-main-content-fields-section .required {
  color:#0066B1;
}

select {
  margin-left: 5px;
  min-width: 200px;
  height: 45px;
  padding: 5px;
  box-sizing: border-box;
}

a {
  cursor: pointer;
  text-decoration: underline !important;
  color: #0066B1;
}

a:hover {
  color: #005294;
}

input[type="text"] {
  height: 45px;
  padding-left: 15px;
  padding-right: 15px;
  border-radius: 8px;
  border: 1px solid #ccc;
  box-sizing: border-box;
}

textarea {
  width: 100%;
  height: 80px;
  padding-left: 15px;
  padding-right: 15px;
  border-radius: 8px;
  border: 1px solid #ccc;
}

input[type="number"] {
  height: 45px;
  padding-left: 15px;
  padding-right: 15px;
  border-radius: 8px;
  border: 1px solid #ccc;
  /* box-sizing: border-box; */
}

/* Exclude react-time-picker and react-datetime-picker inputs from global input styles */
.react-time-picker .react-time-picker__inputGroup__input,
.react-datetime-picker .react-datetime-picker__inputGroup__input {
  height: auto !important;
  padding-left: 2px !important;
  padding-right: 2px !important;
  border: none !important;
  border-radius: 0 !important;
  box-sizing: content-box !important;
  min-width: 0.54em !important;
  width: auto !important;
  font-variant-numeric: tabular-nums;
  letter-spacing: normal;
  text-align: center;
  appearance: textfield;
  -moz-appearance: textfield;
}

/* Hide number input spinners inside pickers */
.react-time-picker input[type=number]::-webkit-inner-spin-button,
.react-time-picker input[type=number]::-webkit-outer-spin-button,
.react-datetime-picker input[type=number]::-webkit-inner-spin-button,
.react-datetime-picker input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Add spacing between the ":" divider and the minute input */
.react-time-picker .react-time-picker__inputGroup__divider,
.react-datetime-picker .react-datetime-picker__inputGroup__divider {
  padding: 0 3px;
}

/* Ensure the leading zero and digit inputs have no extra spacing */
.react-time-picker .react-time-picker__inputGroup__leadingZero,
.react-datetime-picker .react-datetime-picker__inputGroup__leadingZero {
  padding: 0;
  margin: 0;
  display: inline;
  font-variant-numeric: tabular-nums;
}

input[type="email"] {
  height: 45px;
  padding-left: 15px;
  padding-right: 15px;
  border-radius: 8px;
  border: 1px solid #ccc;
  /* box-sizing: border-box; */
}

input[type="password"] {
  height: 45px;
  padding-left: 15px;
  padding-right: 15px;
  border-radius: 8px;
  border: 1px solid #ccc;
  /* box-sizing: border-box; */
}

input[type="checkbox"] {
  margin-left: 8px;
}


/* Search input with magnifier icon */
.with-search-icon {
  height: 35px !important;
  padding-left: 40px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23666' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: 12px center;
  background-size: 18px 18px;
  min-width: 200px;
}

.clickable {
  cursor: pointer;
}

.rs__cell button {
  width: 120px !important;
}

.rs__cell button p {
  font-size: 13px;
  color: #333;
}

.rs__multi_day {
  padding-left: 8px;
  padding-right: 8px;
}

.sx__month-grid-day {
  min-height: 150px;
}

.sx-react-calendar-wrapper {
  --sx-color-primary: #0066B1 !important;
}

.sx__event-modal {
  box-shadow: 1px -1px 20px rgba(0, 0, 0, 0.3);
  border-radius: 8px;
}

.sx__event-modal__title {
  padding: 8px;
}

.sx__event-modal__time {
  padding: 0 8px 8px 8px;
}

.sx__event-modal__time.with-padding {
  padding-left: 8px;
}

.event-item-flex {
  display: flex;
  justify-content: space-between;
  padding: 4px 8px;
}

.event-list-item-container {
  border-radius: 8px;
  min-width: 280px;
}

/* Center Calendar small modal styling */
.calendar-event-modal {
  max-width: 380px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.calendar-event-modal .modal-content {
  width: 380px !important;
}

.calendar-event-modal .form-control,
.calendar-event-modal select.form-control,
.calendar-event-modal input.form-control {
  width: 100% !important;
  font-size: 13px;
}

.calendar-event-modal .modal-body {
  padding: 16px 20px;
}

.calendar-event-modal .field-label {
  font-size: 13px;
  margin-bottom: 4px;
}

.event-red {
  border-inline-start: 4px solid rgb(249, 28, 69) !important;
  color: rgb(89, 0, 13) !important;
  background-color: rgb(255, 210, 220) !important;
}

.event-brown {
  border-inline-start: 4px solid #d0b316 !important;
  color: #594800 !important;
  background-color: #fff5aa !important;
}

.event-green {
  border-inline-start: 4px solid #004d3d !important;
  color: #004d3d !important;
  background-color: #dafff0 !important;
}

.event-blue {
  border-inline-start: 4px solid #0066B1 !important;
  color: rgb(0, 40, 89) !important;
  background-color: rgb(210, 231, 255) !important;
}

.event-black {
  border-inline-start: 4px solid black !important;
  color: black !important;
  background-color: #aaa !important;
}

.event-purple {
  border-inline-start: 4px solid #6750a4 !important;
  color: #21005e !important;
  background-color: #eaddff !important;
}

.event-primary {
  border-inline-start: 4px solid #6750a4 !important;
  color: #21005e !important;
  background-color: #eaddff !important;
}

.event-gray {
  border-inline-start: 4px solid #777 !important;
  color: #555 !important;
  background-color: #eee !important;
}

.event-orange {
  border-inline-start: 4px solid #F76806 !important;
  color: #C35214 !important;
  background-color: #FED8B1 !important;
}

.event-pink {
  border-inline-start: 4px solid #FF6EC7 !important;
  color: #A94064 !important;
  background-color: #FFD1DC !important;
}

.event-no-click {
  pointer-events: none;
  cursor: default;
}

.event-member_related {
  border-inline-start: 4px solid #0066B1 !important;
  color: #0066B1 !important;
  background-color: #E0F2FE !important;
}

.event-vehicle_maintenance {
  border-inline-start: 4px solid #9C2A10 !important;
  color: #9C2A10 !important;
  background-color: #FEF0C7 !important;
}

/* Calendar event title styles - auto-truncate based on container width */
.sx__month-grid-event .sx__month-grid-event__title,
.sx__week-grid__event .sx__event-title,
.sx__day-grid__event .sx__event-title,
.sx__month-agenda-event .sx__month-agenda-event__title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}

/* Ensure calendar events show full name on hover */
.sx__month-grid-event,
.sx__week-grid__event,
.sx__day-grid__event,
.sx__month-agenda-event {
  cursor: pointer;
}

/* Calendar event height - adjust to content, no cropping */
.sx__month-grid-event {
  height: auto !important;
  min-height: 20px;
  overflow: visible !important;
  white-space: normal !important;
}

.sx__month-grid-event .sx__month-grid-event__title {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  line-height: 1.3;
}

.sx__month-grid-day__events {
  overflow: visible !important;
}

.btn-no-deco {
  text-decoration: none!important;
  padding-top: 6px;
}

.small-dropdown-item {
  font-size: 12px;
  color: #555;
}

.personnel-info-table .red {
  background: #dc3545;
  color: rgb(25, 23, 23);
}

.personnel-info-table .red button {
  color: white;
}

.personnel-info-table .status-tag {
  padding: 4px 8px;
  border-radius: 6px;
  text-align: center;
}

.personnel-info-table .dark-red {
  background: #7c0d0e;
  color: #fff;
}

.personnel-info-table .light-red {
  background: #864f50;
  color: #fff;
}

.personnel-info-table .dark-gray {
  background: #777;
  color: #fff;
}

.personnel-info-table .light-green {
  background: #0de480;
  color: #fff;
}

.personnel-info-table .light-green button {
  color: #fff;
}

.personnel-info-table .dark-green {
  background: #198754;
  color: #fff;
}

.personnel-info-table .dark-blue {
  background: #0066B1;
  color: #fff;
}

.personnel-info-table .light-blue {
  background: #0dcaf0;
  color: #fff;
}

.personnel-info-table .black {
  background: #000;
  color: #fff;
}

.personnel-info-table .yellow {
  background: yellow;
  color: #fff;
}

.personnel-info-table .white {
  background: #fff;
  color: #000;
}

/* Info Screen Appointments Table - Override minimum width */
.info-screen-appointments-table td {
  min-width: auto !important;
  max-width: 200px;
  word-wrap: break-word;
}

.info-screen-appointments-table th {
  min-width: auto !important;
  max-width: 200px;
  word-wrap: break-word;
}

/* Clock Styles for Info Screen */
.clock-container {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 15px;
}

.clock {
  width: 80px;
  height: 80px;
  border: 3px solid #0066B1;
  border-radius: 50%;
  position: relative;
  background: white;
}

.clock-face {
  width: 100%;
  height: 100%;
  position: relative;
}

.hand {
  position: absolute;
  bottom: 50%;
  left: 50%;
  transform-origin: bottom;
  background: #333;
  border-radius: 2px;
}

.hour-hand {
  width: 3px;
  height: 25%;
  margin-left: -1.5px;
}

.minute-hand {
  width: 2px;
  height: 35%;
  margin-left: -1px;
}

.second-hand {
  width: 1px;
  height: 40%;
  margin-left: -0.5px;
  background: #dc3545;
}

.center-dot {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 8px;
  height: 8px;
  background: #333;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.clock-sm {
  width: 50px !important;
  height: 50px !important;
  border-width: 2px !important;
}

.clock-sm .center-dot {
  width: 5px;
  height: 5px;
}

.weather-icon {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 15px;
}

.all-routes-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  margin-top: 20px;
}

.route-card-container {
  flex-basis: 19%;
  margin-right: 8px;
  box-sizing: border-box;
}

.route-stats {
  color: #777;
}

.route-card-title {
  color: black;
  font-weight: 500;
  line-height: 2;
}

.medical ul li {
  cursor: pointer;
  list-style: none;
  margin-bottom: 8px;
  font-size: 18px;
  color: #0066B1;
}

.comments-text {
  width: 200px;
  height: 150px;
}

.medical ul li:focus, .medical ul li:hover {
  cursor: pointer;
  list-style: none;
  margin-bottom: 8px;
  font-size: 18px;
  color: #0066B1;
  text-decoration: underline;
}

.report-field-value {
  background: #eee;
  padding: 4px;
}

.selected {
  background: #ffc107;
}

.customers-container {
  padding: 20px;
  width: 100%;
  position: relative;
}

.customers-dnd-item-container {
  border: none;
  padding: 0 16px;
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  font-size: 13px;
  cursor: move;
  background: #eee;
  margin-left: 65px;
}

.customers-dnd-item-container-absent {
  border: none;
  padding: 0 16px;
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  font-size: 13px;
  background: #eee;
}

.new-customers-dnd-item-container {
  border: none;
  padding: 0 16px 0 25px;
  margin-bottom: 24px;
  margin-top: 16px;
  display: flex;
  align-items: center;
  font-size: 13px;
  margin-left: 44px;
}

.column-card.adjust {
  padding-right: 60px;
}

.stop-index {
  position: absolute;
  left: 0;
  padding-right: 12px;
}

.customer-dnd-item {
  padding: 4px 0;
}

.customer-dnd-img {
  width:18px;
  height:18px;
  margin-right: 20px;
}

.customer-dnd-item-content {
  padding-left: 20px;
  font-size: 11px;
}

.option-item {
  display: flex;
  align-items: center;
  margin-bottom: 15px;
  padding: 15px;
}

.customer-delete-btn {
  margin-left: auto;
}

.react-datepicker__input-container input {
  height: 45px;
  width: 100%;
  box-sizing: border-box;
}

/* DatePicker blue theme styling */
.react-datepicker__header {
  background-color: #0066B1 !important;
  border-bottom: none !important;
}

.react-datepicker__current-month,
.react-datepicker__day-name,
.react-datepicker-time__header {
  color: white !important;
}

.react-datepicker__day--selected,
.react-datepicker__day--keyboard-selected,
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected {
  background-color: #0066B1 !important;
  color: white !important;
}

.react-datepicker__day:hover {
  background-color: #EAF3FF !important;
}

.react-datepicker__navigation-icon::before {
  border-color: white !important;
}

.react-datepicker__triangle::before,
.react-datepicker__triangle::after {
  border-bottom-color: #0066B1 !important;
}


.admin-nav a {
  text-decoration: none !important;
}

.login {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.login .logo-container {
  display: flex;
  justify-content: center;
  align-items: center;
}

.login .logo-suffix {
  font-size: 30px;
}

.login .logo-worldshine {
  font-size: 30px;
  color: #0066B1;
}

.login-container {
  background: #fff;
  padding: 50px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  max-width: 768px;
  width: 100%;
  border-radius: 16px;
}

.login-logo {
  height: 60px;
  width: 60px;
  background-color: transparent;
}

.login-items {
  width: 100%;
}

.login-container input {
  width: 100%;
}

.login-container .btn-link {
  font-size: 12px !important;
  text-decoration: none;
  width: 100%;
}

.login-disclaimer {
  font-size: 12px;
  color: #0066B1;
}

.btn-login {
  width: 100%;
  border-radius: 8px;
}

.create-route-container {
  background: #eee;
  padding: 15px;
}

.landing {
  color:#0066B1;
  display: flex;
  margin-top: 6rem;
}

.landing .logo-container {
  position: absolute;
  left: 40px;
  top: 40px;
}

.landing .logo-container img {
  height: 24px;
  width: 24px;
}

.landing-img {
  position: fixed;
  right: -80px;
  top: 0;
  background-image: url(../public/images/landing.png);
  height: 100%;
  width: 60%;
  background-position: right top;
  background-repeat: no-repeat;
  background-size: cover;
}

.landing .btn-primary {
  min-width: 200px;
}

.landing-content-title {
  height: 100vh;
  padding-top: 5%;
  width: 40%;
}

.landing-title {
  width: 100%;
}

.landing-content a {
  margin-left: 15px;
}

.landing-content h6 {
  margin-bottom: 20px;
}

.logo {
  position: absolute;
  top: 30px;
  left: 40px;
  display: flex;
  align-items: center;
}

.logo-suffix {
  font-size: 14px;
  margin-top: -3px;
  font-weight: 700;
  color: orange;
}

.btn-medical {
  padding-left: 3em !important;
  padding-right: 3em !important;
}

.btn-medical a {
  color: white;
  text-decoration: none !important;
  margin-left: 0;
}

.logo img {
  height: 50px;
}

.pagination-container {
  display: flex;
  justify-content: right;
  margin-top: 20px;
}

.page-prev-item, .page-next-item {
  font-size: 12px;
  padding: 4px 0;
  border: 1px solid #777;
  border-radius: 10px;
  margin-right: 4px;
  color: #777;
}

.page-prev-item.disabled, .page-next-item.disabled {
  color: #aaa;
  border-color: #aaa;
}

.per-page, .page-picker {
  width: 55px !important;
  height: 30px;
  border-radius: 10px;
  border-color: #777;
  color: #777;
  font-size: 12px;
  min-width: 20px;
  margin-right: 2px;
}

.per-page option {
  width: 30px;
}

.page-item {
  display:none;
}

.per-page-label {
  font-size: 12px;
}

.select-page-container {
  font-size: 12px;
  display: flex;
  align-items: baseline;
  margin-right: 4px;
  margin-left: 4px;
}

.customers-pagination {
  margin-bottom: 2rem;
  margin-right: 4px;
  display: flex;
  flex-direction: row;
  justify-content: right;
  list-style-type: none;
  padding: 0;
  flex-wrap: wrap;
}

.customers-pagination li a {
  border-radius: 7px;
  padding: 0.1rem 0.8rem;
  border: none;
  cursor: pointer;
  background: transparent;
  color: #777;
}

/* .customers-pagination li {
  border: none;
} */

.customers-pagination li a {
  border: none;
  text-decoration: none !important;
}

.customers-pagination li.previous a,
.customers-pagination li.next a,
.customers-pagination li.break a {
  border-color: transparent;
  background: transparent;
}

.customers-pagination li.active a {
  background-color: #0066B1 !important;
  border-color: transparent;
  color: white;
  min-width: 32px;
}

.customers-pagination li.disabled a {
  color: grey;
  background: transparent !important;
}

.customers-pagination li.disable,
.customers-pagination li.disabled a {
  cursor: default;
  background: transparent;
}

.modal-dialog {
  max-width: 1000px !important;
}

.modal-fullscreen-xxl-down {
  height: 100%;
  margin: 0;
  width: 100vw;
  max-width: none;
}

.table-button-container {
  min-width: 320px;
}

.sigCanvas {
  border: 1px solid #333;
}

.transfer-select {
  min-width: 50px !important;
  height: 30px;
  padding-top: 0;
  padding-bottom: 0;
  margin-right: 5px;
}

.spinner-overlay {
  width: 100%;
  height: 100%;
  opacity: 0.8;
  background: white;
  position:fixed;
  display: flex;
  justify-content: center;
  align-items: center;
  top:0;
  left:0;
}

.circular-table-container {
  position: relative;
  width: 150px;
  height: 150px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 30px auto;
}

.table-circle {
  position: relative;
  text-align: center;
  padding-left: 40px;
  padding-top: 30px;
}

.table-number {
  color: #0066B1;
  font-size: 36px;
  font-weight: bold;
  position: relative;
  z-index: 1;
}

.label-delete-item {
  display: flex;
  align-items: center;
  font-size: 13px;
  border: 1px solid #ccc;
  padding: 8px 12px;
  border-radius: 8px;
  margin-bottom: 6px;
}

.btn-custom-label {
  min-width: 225px;
} 

.seat-container {
  position: absolute;
  top: 50%;
  left: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 50px;
  overflow: visible;
  z-index: 2;
}

.seat-circle {
  width: 30px;
  height: 30px;
  background-color: #ccc;
  border-radius: 50%;
  border: 2px solid #ccc;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
  text-align: center;
}

.seat-circle.has-customer {
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s;
}

.seat-circle.has-customer:hover {
  transform: scale(1.1);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}

.guest-name {
  position: absolute;
  top: 50%;
  left: 50%;
  text-align: center;
  font-size: 10px;
  font-weight: bold;
  white-space: nowrap;
  color: #333;
  line-height: 1.1;
  z-index: 4;
  pointer-events: none;
}

.seating-chart-container {
  width: 100%;
  text-align: center;
  margin-bottom: 100px;
}

.seating-stage {
  width: 100%;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

.stage {
  color: #0066B1;
  font-size: 20px;
  font-weight: bold;
  background: #eee;
  padding: 12px;
  width: 100px;
}

.seating-row-container {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
}

.manage-seating-chart-container {
  background: #D0E1F8;
  height: 100vh;
  width: 300px;
  min-width: 300px;
  flex-shrink: 0;
  padding: 16px;
  overflow: auto;
  position: sticky;
  top: 0;
  margin-left: 24px;
}

.manage-seating-chart-title-container {
  font-size: 14px;
  color: #555;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.manage-seating-chart-tables-container {
  margin-top: 8px;
  margin-bottom: 8px;
}

.manage-seating-chart-tables-container .title {
  display: flex;
  justify-content: space-between;
  margin-bottom: 12px;
  position: relative;
}

.seating-page-container {
  position: relative;
  display: flex;
  align-items: flex-start;
}

.seating-page-container > .list.row {
  flex: 1;
  min-width: 0;
}

.table-config-container {
  margin-bottom: 4px;
}

.table-config-item-title {
  padding: 4px 8px;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  font-size: 13px;
}

.table-config-item {
  padding: 4px 8px 4px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  position: relative;
}

.table-config-item-title:focus, .table-config-item-title:hover, .table-config-item:focus, .table-config-item:hover {
  background: rgb(210, 231, 255);
  border-inline-start: 4px solid #0066B1 !important;
}

.seating-popover {
  padding:20px;
  position: absolute;
  background: white;
  top: 32px;
  left: 0;
  z-index: 1000;
  border-radius: 8px;
}

@media only screen and (min-width: 1200px) {
  /* .container {
    max-width: 1200px;
  } */
  .landing {
    max-width: 1200px;
  }
}

@media only screen and (max-width: 768px) {
  .landing {
    color:#0066B1;
  }

  .landing-img {
    display: none;
  }

  .landing-content-title {
    width: 100%;
  }

}

@media only screen and (max-width: 1240px) {
  .route-card-container {
    flex-basis: 30%;
  }

}

@media only screen and (max-width: 910px) {
  .route-card-container {
    flex-basis: 100%;
  }

}

@media only screen and (min-width: 2000px) {
  /* .container {
    max-width: 1920px;
  } */
  .landing {
    max-width: 1920px;
  }
}

@media print{
  @page {size: landscape}
}

@media print {
  .noprint{
    display: none !important;
  }
  .container {
    width: 100% !important;
  }
}

/* ===========================================
   Full Screen Mode Styles (Info Screen)
   All rounded corners: 12px, all column bottoms aligned
   
   IMPORTANT: base styles from .multi-columns-container,
   .column-container, and .column-card add padding, margin,
   and border that must be explicitly overridden here.
   =========================================== */

/* Level 0: fixed viewport shell */
.fullscreen-mode {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 9998;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  box-sizing: border-box;
}

/* Level 1: padded inner wrapper */
.fullscreen-mode .app-main-content-list-func-container {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 30px;
  min-height: 0;
  overflow: hidden;
  box-sizing: border-box;
}

/* Level 2: 3-column row — explicit height, override base padding */
.fullscreen-mode .multi-columns-container {
  height: calc(100vh - 60px) !important;
  display: flex !important;
  flex-direction: row !important;
  gap: 20px !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  overflow: hidden;
  box-sizing: border-box;
}

/* Level 3: each column — override base padding, fill container height */
.fullscreen-mode .column-container {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  height: 100% !important;
  min-height: 0 !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  box-sizing: border-box;
}

/* --- Shared card styles — override base margin-bottom, border --- */
.fullscreen-mode .column-card {
  background-color: rgba(255, 255, 255, 0.9) !important;
  backdrop-filter: blur(8px);
  border-radius: 12px !important;
  border: none !important;
  padding: 20px !important;
  margin: 0 !important;
  margin-bottom: 0 !important;
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1 !important;
  overflow: hidden;
}

.fullscreen-mode .card {
  background-color: rgba(255, 255, 255, 0.9) !important;
  backdrop-filter: blur(8px);
  border-radius: 12px !important;
  border: none !important;
  min-height: 0;
}

.fullscreen-mode .card-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

/* --- Column 2: Clock/Weather + Attendance Note + Gallery --- */
.fullscreen-mode .time-weather-row {
  flex: 0 0 auto !important;
  display: flex;
  gap: 16px;
}

.fullscreen-mode .time-weather-row .col-md-6 {
  flex: 1;
  max-width: none;
  width: auto;
}

.fullscreen-mode .time-weather-row .card-body {
  justify-content: center;
}

.fullscreen-mode .attendance-note-wrapper {
  flex: 0 0 365px !important;
  height: 365px !important;
  min-height: 365px !important;
  max-height: 365px !important;
}

.fullscreen-mode .attendance-note-wrapper > .card {
  height: 100% !important;
}

.fullscreen-mode .attendance-note-wrapper > .card > .card-body {
  height: 100%;
  overflow: hidden;
}

/* Gallery: fills remaining space in col 2 */
.fullscreen-mode .gallery-wrapper {
  flex: 1 !important;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.fullscreen-mode .gallery-wrapper > .card {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
  border-radius: 12px !important;
}

.fullscreen-mode .gallery-wrapper > .card > .card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

.fullscreen-mode .gallery-wrapper .fullscreen-carousel {
  flex: 1;
  min-height: 0;
  border-radius: 12px;
  overflow: hidden;
}

.fullscreen-mode .gallery-wrapper .carousel-inner,
.fullscreen-mode .gallery-wrapper .carousel-item {
  height: 100% !important;
}

.fullscreen-mode .gallery-wrapper .fullscreen-carousel-img {
  height: 100% !important;
  object-fit: cover;
  border-radius: 12px;
}

.fullscreen-mode .gallery-wrapper .fullscreen-placeholder {
  flex: 1;
  height: auto !important;
  border-radius: 12px;
}

/* --- Typography scaling --- */
.fullscreen-mode h4 { font-size: clamp(16px, 2vw, 28px); }
.fullscreen-mode h5 { font-size: clamp(14px, 1.8vw, 24px); }
.fullscreen-mode h6 {
  font-size: clamp(12px, 1.4vw, 20px);
  margin-bottom: 12px !important;
}
.fullscreen-mode p,
.fullscreen-mode span,
.fullscreen-mode div {
  font-size: clamp(10px, 1.1vw, 16px);
}
.fullscreen-mode .text-primary {
  font-size: clamp(16px, 2vw, 32px) !important;
}
.fullscreen-mode .fullscreen-title {
  font-weight: 600;
  margin-bottom: 12px;
}

/* --- Tables --- */
.fullscreen-mode .info-screen-appointments-table {
  width: 100%;
  background-color: rgba(255, 255, 255, 0.95);
  table-layout: fixed;
  flex: 1;
}

.fullscreen-mode .info-screen-appointments-table th,
.fullscreen-mode .info-screen-appointments-table td {
  font-size: clamp(10px, 1.1vw, 16px);
  padding: clamp(6px, 0.8vw, 14px) clamp(8px, 1vw, 16px);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fullscreen-mode .info-screen-appointments-table th {
  font-weight: 600;
  background-color: rgba(0, 102, 177, 0.1);
}

.fullscreen-mode .list.row {
  flex: 1;
  display: flex;
  flex-direction: column;
  margin-bottom: 0 !important;
}

.fullscreen-mode .list.row .col-md-12 {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.fullscreen-mode .app-main-content-fields-section {
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* --- Clock (2/3 size) --- */
.fullscreen-mode .clock-container {
  transform: scale(0.67);
  transform-origin: center;
}

.fullscreen-mode .clock {
  width: 80px;
  height: 80px;
}

/* --- Weather icon (2/3 size) --- */
.fullscreen-mode .weather-icon i {
  font-size: 32px !important;
}

/* --- Carousel (generic, non-gallery) --- */
.fullscreen-mode .carousel {
  min-height: 0;
}

.fullscreen-mode .carousel-item img {
  height: 100%;
  object-fit: cover;
}

/* --- Misc element styles --- */
.fullscreen-mode .img-fluid {
  max-height: clamp(80px, 10vh, 150px) !important;
}

.fullscreen-mode .info-logo,
.fullscreen-mode img[alt="Worldshine Logo"] {
  height: clamp(20px, 2.5vw, 40px) !important;
}

.fullscreen-mode .logo-worldshine {
  font-size: clamp(12px, 1.4vw, 20px) !important;
}

.fullscreen-hint {
  position: fixed;
  top: clamp(10px, 1.5vw, 25px);
  right: clamp(10px, 1.5vw, 25px);
  background-color: rgba(0, 0, 0, 0.75);
  color: white;
  padding: clamp(8px, 1vw, 15px) clamp(12px, 1.5vw, 20px);
  border-radius: clamp(4px, 0.5vw, 8px);
  z-index: 9999;
  font-size: clamp(11px, 1.2vw, 16px);
  animation: fadeIn 0.3s ease-in;
  backdrop-filter: blur(4px);
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Background Image Styles */
.background-image-container {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: fixed;
}

/* Scrollable tables in fullscreen */
.fullscreen-mode .personnel-info-table {
  width: 100%;
}

.fullscreen-mode .personnel-info-table tbody {
  display: block;
  max-height: calc(100% - 40px);
  overflow-y: auto;
  overflow-x: hidden;
}

.fullscreen-mode .personnel-info-table thead,
.fullscreen-mode .personnel-info-table tbody tr {
  display: table;
  width: 100%;
  table-layout: fixed;
}

.fullscreen-mode .personnel-info-table thead {
  width: calc(100% - 8px);
}

/* Fullscreen utility classes */
.fullscreen-mode .fullscreen-date-display {
  margin-bottom: 8px;
}

.fullscreen-mode .fullscreen-time {
  font-weight: 600;
}

.fullscreen-mode .fullscreen-logo {
  height: clamp(20px, 2.5vw, 35px);
  margin-right: 8px;
}

.fullscreen-mode .fullscreen-intro {
  line-height: 1.4;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 10;
  -webkit-box-orient: vertical;
}

.fullscreen-mode .fullscreen-note-img {
  width: 100%;
  object-fit: cover;
  border-radius: 12px;
}

.fullscreen-mode .fullscreen-placeholder {
  height: clamp(60px, 8vh, 120px);
  background-color: rgba(248, 249, 250, 0.8);
  border: 2px dashed #dee2e6;
  border-radius: 12px;
}

.fullscreen-mode .fullscreen-carousel {
  border-radius: 12px;
  overflow: hidden;
}

.fullscreen-mode .fullscreen-carousel-img {
  object-fit: cover;
  border-radius: 12px;
}

/* Responsive adjustments for smaller screens in fullscreen */
@media (max-width: 1400px) {
  .fullscreen-mode .multi-columns-container {
    gap: 12px;
  }
  .fullscreen-mode .column-container {
    gap: 12px;
  }
}

@media (max-width: 1200px) {
  .fullscreen-mode .time-weather-row {
    flex-direction: column;
  }
}

@media (max-height: 700px) {
  .fullscreen-mode h6 {
    margin-bottom: 6px !important;
  }
}

/* InfoScreen custom classes for moving inline styles to CSS */

.info-title {
  font-size: 14px;
  font-weight: 600;
}

.info-title-500 {
  font-size: 14px;
  font-weight: 500;
}

.info-logo {
  height: 30px;
  margin-right: 10px;
}

.info-logo-text {
  color: #0066B1;
  font-size: 16px;
}

.info-btn-icon {
  color: #666;
}

.info-card {
  border-radius: 8px;
  max-width: 450px;
}

.info-card-gallery {
  border-radius: 8px;
  max-width: 450px;
}

.info-img-preview {
  max-height: 120px;
  width: 100%;
  object-fit: cover;
}

.info-img-preview-lg {
  max-height: 150px;
}

.info-img-preview-gallery {
  height: 200px;
  object-fit: cover;
  border-radius: 4px;
}

.info-img-preview-bg {
  max-height: 200px;
  max-width: 100%;
}

.info-upload-area {
  border: 2px dashed #dee2e6;
  background-color: #f8f9fa;
  cursor: pointer;
}

.info-upload-area-120 {
  height: 120px;
  border-radius: 8px;
}

.info-upload-area-200 {
  height: 200px;
  border-radius: 4px;
}

.info-weather-icon {
  font-size: 48px;
  color: #ffc107;
}

.info-clock-title {
  font-size: 12px;
}

.info-clock-time {
  font-size: 20px;
  font-weight: 600;
}

.info-gallery-btn {
  top: 5px;
  right: 5px;
}

.info-gallery-img-thumb {
  height: 100px;
  width: 100%;
  object-fit: cover;
}

.info-gallery-img-thumb-wrap {
  position: relative;
}

/* Center Calendar - List section styling */
.calendar-list-column {
  flex: 1;
  min-width: 0;
  padding-right: 0 !important;
}

.calendar-list-column .column-card {
  box-sizing: border-box;
  width: 100%;
}

.calendar-list-column .event-list-item-container {
  width: 100%;
  min-width: 320px;
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}

.calendar-list-column .event-list-item-container .sx__month-agenda-event__title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 60%;
}

.calendar-list-column .event-list-item-container .sx__event-modal__time {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* MultiSelectDropdown */
.multi-select-dropdown {
  position: relative;
  width: 300px;
}

.multi-select-dropdown__control {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  min-height: 45px;
  padding: 6px 12px;
  border: 1px solid #ccc;
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
  transition: border-color 0.2s;
  width: 100%;
  box-sizing: border-box;
}

.multi-select-dropdown__control:hover {
  border-color: #999;
}

.multi-select-dropdown__control--open {
  border-color: #2684FF;
  box-shadow: 0 0 0 1px #2684FF;
}

.multi-select-dropdown__value-container {
  flex: 1;
  min-width: 0;
  overflow: hidden;
}

.multi-select-dropdown__placeholder {
  color: #999;
  font-size: 14px;
  line-height: 32px;
}

.multi-select-dropdown__tags {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4px;
}

.multi-select-dropdown__tag {
  display: inline-flex;
  align-items: center;
  background: #E8F0FE;
  color: #1A73E8;
  border-radius: 4px;
  padding: 2px 6px;
  font-size: 12px;
  line-height: 20px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.multi-select-dropdown__tag-remove {
  margin-left: 4px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  color: #1A73E8;
  flex-shrink: 0;
  line-height: 1;
}

.multi-select-dropdown__tag-remove:hover {
  color: #c00;
}

.multi-select-dropdown__indicator {
  display: flex;
  align-items: center;
  padding-left: 8px;
  padding-top: 8px;
  flex-shrink: 0;
}

.multi-select-dropdown__menu {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  width: 100%;
  z-index: 999;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  box-sizing: border-box;
  overflow: hidden;
}

.multi-select-dropdown__search-container {
  padding: 10px 14px;
  border-bottom: 1px solid #eee;
  box-sizing: border-box;
}

.multi-select-dropdown__search {
  display: block;
  width: 100% !important;
  height: auto !important;
  padding: 8px 10px !important;
  border: 1px solid #ddd !important;
  border-radius: 6px !important;
  font-size: 14px;
  outline: none;
  box-sizing: border-box !important;
}

.multi-select-dropdown__search:focus {
  border-color: #2684FF !important;
}

.multi-select-dropdown__select-all {
  border-bottom: 1px solid #eee;
  font-weight: 600;
}

.multi-select-dropdown__options-list {
  max-height: 220px;
  overflow-y: auto;
}

.multi-select-dropdown__option {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  cursor: pointer;
  font-size: 14px;
  transition: background 0.15s;
}

.multi-select-dropdown__option:hover {
  background: #f5f5f5;
}

.multi-select-dropdown__option--selected {
  background: #EBF5FF;
}

.multi-select-dropdown__checkbox {
  width: 18px;
  height: 18px;
  accent-color: #2684FF;
  cursor: pointer;
  flex-shrink: 0;
}

.multi-select-dropdown__no-options {
  padding: 16px;
  text-align: center;
  color: #999;
  font-size: 14px;
}