/* Family Calendar Custom Styles & Enhancements */

/* Museo Sans Font Declarations & Fallbacks */
@font-face {
  font-family: 'Museo Sans';
  src: local('Museo Sans 500'), local('MuseoSans-500'), local('Museo Sans'), local('MuseoSans'), local('MuseoSans 500');
  font-weight: 500;
  font-style: normal;
}

@font-face {
  font-family: 'Museo Sans';
  src: local('Museo Sans 700'), local('MuseoSans-700'), local('Museo Sans Bold'), local('MuseoSans-Bold'), local('MuseoSans 700');
  font-weight: 700;
  font-style: normal;
}

@font-face {
  font-family: 'Museo Sans';
  src: local('Museo Sans 300'), local('MuseoSans-300'), local('Museo Sans Light'), local('MuseoSans-Light');
  font-weight: 300;
  font-style: normal;
}

@font-face {
  font-family: 'Museo Sans';
  src: local('Museo Sans 900'), local('MuseoSans-900'), local('Museo Sans ExtraBlack'), local('MuseoSans-ExtraBlack');
  font-weight: 900;
  font-style: normal;
}

body, button, input, select, textarea {
  font-family: 'Museo Sans', 'MuseoSans', 'Museo Sans 500', 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
}

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  20%, 60% { transform: translateX(-8px); }
  40%, 80% { transform: translateX(8px); }
}

.animate-shake {
  animation: shake 0.4s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
}

/* Custom sleek scrollbar */
.custom-scrollbar::-webkit-scrollbar {
  width: 4px;
  height: 4px;
}

.custom-scrollbar::-webkit-scrollbar-track {
  background: transparent;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
  background-color: rgba(148, 163, 184, 0.4);
  border-radius: 9999px;
}

.custom-scrollbar::-webkit-scrollbar-thumb:hover {
  background-color: rgba(100, 116, 139, 0.6);
}

/* Calendar Week and Day Cells */
.calendar-grid {
  display: flex;
  flex-direction: column;
}

.week-row:last-child {
  border-bottom: none;
}

/* Weekend highlight styling on the right side (columns 5 and 6: Sat and Sun) */
.col-weekend-right {
  background-color: rgba(248, 250, 252, 0.7);
}

/* Subtle glassmorphism */
.glass-panel {
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* Modal transitions */
.modal-container {
  transition: opacity 0.2s ease, visibility 0.2s ease;
}

/* Strike-through effect */
.line-through-animated {
  position: relative;
  transition: color 0.2s ease;
}

/* Keypad button active bounce */
.keypad-btn:active {
  transform: scale(0.93);
}

/* Repeat tag badge */
.repeat-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
