body {
  background-color: #f5f5f5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.room-list-scroll {
  max-height: calc(100vh - 220px);
  overflow-y: auto;
}

.table td,
.table th {
  white-space: nowrap;
}

.table td:last-child,
.table th:last-child {
  white-space: normal;
}

.quick-date-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.quick-date-btn {
  min-width: 126px;
  border-radius: 12px;
  padding: 9px 12px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  line-height: 1.2;
  text-align: left;
}

.quick-date-btn-label {
  font-size: 0.95rem;
  font-weight: 700;
}

.quick-date-btn-note {
  font-size: 0.75rem;
  opacity: 0.82;
}

.sub-slot-badge {
  --bs-badge-color: #111111;
  font-weight: 600;
  color: #111111 !important;
  background: #ffffff !important;
  border-color: #cfd4dc !important;
}

.sub-slot-free {
  background: #ffffff !important;
  border-color: #cfd4dc !important;
  color: #111111 !important;
}

.sub-slot-low,
.sub-slot-shared {
  background: #ffe083 !important;
  border-color: #d0a624 !important;
  color: #111111 !important;
}

.sub-slot-high {
  background: #ff7878 !important;
  border-color: #d42f2f !important;
  color: #111111 !important;
}

.ajax-loading {
  opacity: 0.45;
  pointer-events: none;
  transition: opacity 0.2s ease;
}

.ajax-fade-in {
  animation: ajaxFadeIn 0.24s ease;
}

@keyframes ajaxFadeIn {
  from {
    opacity: 0.55;
    transform: translateY(2px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 991.98px) {
  .room-list-scroll {
    max-height: 320px;
  }

  .quick-date-btn {
    min-width: 110px;
  }
}

@media (max-width: 575.98px) {
  .quick-date-btn {
    min-width: calc(50% - 6px);
  }
}
