.shadow-card {
  box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 10px 30px -12px rgba(26,133,184,0.08);
}

input:focus, select:focus, textarea:focus {
  outline: none;
}

#mobileMenu .mobile-nav-link {
  display: block;
}

#moreMenu a {
  display: flex;
}

.accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
}
.accordion-item.open .accordion-content {
  max-height: 500px;
}
.accordion-chevron {
  transition: transform 0.25s ease;
}
.accordion-item.open .accordion-chevron {
  transform: rotate(180deg);
}

.booking-step {
  display: none;
}
.booking-step.active {
  display: block;
}

.step-completed {
  background-color: #1A85B8;
  border-color: #1A85B8;
}
.step-completed i,
.step-completed svg {
  color: #ffffff;
}
.step-active {
  border-color: #1A85B8;
}
.step-active i,
.step-active svg {
  color: #1A85B8;
}
.step-inactive {
  border-color: #E5E7EB;
}
.step-inactive i,
.step-inactive svg {
  color: #6B7280;
}
.step-label-active {
  color: #1A85B8;
}
.step-label-inactive {
  color: #6B7280;
}

.calendar-day {
  user-select: none;
}
.calendar-day.selected {
  background-color: #1A85B8;
  color: #ffffff;
}
.calendar-day.past {
  cursor: not-allowed;
  background-color: #F3F4F6;
  color: #9CA3AF;
  opacity: 1;
}

.time-slot.selected {
  border-color: #1A85B8;
  background-color: rgba(26, 133, 184, 0.05);
  color: #1A85B8;
}
.time-slot.past {
  cursor: not-allowed;
  opacity: 0.4;
}

#dobDropdown {
  display: none;
}
#dobDropdown.open {
  display: block;
}
#dobTrigger.open {
  border-color: #1A85B8;
}
#dobTrigger.open svg {
  transform: rotate(180deg);
}
#dobTriggerLabel {
  color: #111827;
}
#dobTriggerLabel.has-value {
  color: #1A85B8;
}

.hero-slide {
  opacity: 0;
  transition: opacity 0.8s ease;
  position: absolute;
  inset: 0;
  z-index: 1;
}
.hero-slide.active {
  opacity: 1;
  position: absolute;
  z-index: 2;
}

.hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
}

.service-card-img {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
}

.slide-indicator {
  width: 0.5rem;
  height: 0.5rem;
}
.slide-indicator.active {
  width: 2rem;
}

/* Flash Messages */
.flash-message {
  animation: slideIn 0.4s ease-out;
}
@keyframes slideIn {
  from { transform: translateX(100%); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}
.flash-message.fade-out {
  animation: slideOut 0.3s ease-in forwards;
}
@keyframes slideOut {
  from { transform: translateX(0); opacity: 1; }
  to { transform: translateX(100%); opacity: 0; }
}

/* Portal Responsive */
@media (max-width: 1023px) {
  .portal-sidebar {
    transform: translateX(-100%);
  }
  .portal-sidebar.open {
    transform: translateX(0);
  }
  .portal-sidebar-overlay {
    display: none;
  }
  .portal-sidebar-overlay.open {
    display: block;
  }
}
@media (min-width: 1024px) {
  .portal-sidebar {
    transform: translateX(0) !important;
  }
  .portal-sidebar-overlay {
    display: none !important;
  }
}

/* Table horizontal scroll for mobile/tablet */
.table-container {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.table-container table {
  min-width: 100%;
}

/* Single column layout for mobile/tablet */
@media (max-width: 1023px) {
  .admin-page .grid,
  .doctor-page .grid,
  .patient-page .grid {
    grid-template-columns: 1fr;
  }
  .admin-page .lg\:grid-cols-2,
  .admin-page .lg\:grid-cols-3,
  .admin-page .lg\:grid-cols-4,
  .doctor-page .lg\:grid-cols-2,
  .doctor-page .lg\:grid-cols-3,
  .doctor-page .lg\:grid-cols-4,
  .patient-page .lg\:grid-cols-2,
  .patient-page .lg\:grid-cols-3,
  .patient-page .lg\:grid-cols-4 {
    grid-template-columns: 1fr;
  }
}
