/* Set main font for Body and background/text colors */
body {
	font-family: 'Noto Sans Thai', sans-serif;
	background-color: #f0f2f5;
	color: #333;
}
/* Styles for Hamburger Menu icon (for mobile) */
.hamburger-menu span {
	display: block;
	width: 25px;
	height: 3px;
	background-color: #333;
	margin: 5px 0;
	transition: 0.4s;
}
/* Animation for Hamburger Menu when active */
.hamburger-menu.active span:nth-child(1) {
	transform: rotate(-45deg) translate(-5px, 6px);
}
.hamburger-menu.active span:nth-child(2) {
	opacity: 0;
}
.hamburger-menu.active span:nth-child(3) {
	transform: rotate(45deg) translate(-5px, -6px);
}
/* Primary Button styles using Tailwind @apply to combine classes */
.btn-primary {
	@apply bg-blue-700 hover:bg-blue-800 text-white font-bold py-2 px-4 rounded-full shadow-lg transition duration-300 ease-in-out transform hover:scale-105 flex items-center justify-center;
}
/* Secondary Button styles using Tailwind @apply to combine classes */
.btn-secondary {
	@apply bg-gray-300 hover:bg-gray-400 text-gray-800 font-bold py-2 px-4 rounded-full shadow-md transition duration-300 ease-in-out transform hover:scale-105 flex items-center justify-center;
}
/* Spacing for icons in buttons */
.btn-primary i, .btn-secondary i {
	margin-right: 8px; /* Space between icon and text */
}
/* Styles for Calendar Grid */
.calendar-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
}
.calendar-day {
	background-color: #fff;
	border-radius: 8px;
	padding: 10px;
	min-height: 100px; /* Set minimum height */
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	cursor: pointer;
	transition: all 0.2s ease-in-out;
	box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.calendar-day:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}
.calendar-day.inactive {
	background-color: #e0e0e0;
	color: #999;
	cursor: default;
	box-shadow: none;
}
.calendar-day.inactive:hover {
	transform: none;
	box-shadow: none;
}
.calendar-day-header {
	font-weight: bold;
	font-size: 1.1em;
	margin-bottom: 5px;
	color: #333;
}
.calendar-day.has-event {
	background-color: #e6f7ff; /* Light blue for days with events */
	border: 1px solid #91d5ff;
}
.calendar-day.has-event .event-indicator {
	width: 8px;
	height: 8px;
	background-color: #1890ff; /* Dark blue for event indicator dot */
	border-radius: 50%;
	margin-top: 5px;
	align-self: flex-end; /* Position dot to bottom right */
}
.calendar-day.today {
	border: 2px solid #3B82F6; /* Blue border for today */
	background-color: #f0f8ff; /* Extra light blue for today */
}
.calendar-weekday {
	font-weight: bold;
	text-align: center;
	padding: 8px;
	background-color: #e2e8f0;
	border-radius: 8px;
	color: #4a5568;
}

/* Styles for Calendar List (for mobile) */
.calendar-list-item {
	/* Adjusted to rounded-xl, added border, and increased margin-bottom for spacing */
	@apply bg-white p-4 rounded-xl shadow-md mb-6 cursor-pointer transition-transform duration-200 transform hover:scale-105 border border-gray-200; 
	border: 2px solid #e5e7eb;
	border-radius: 10px;
	padding: 10px;
	margin: 10px 0;
}
.calendar-list-item-date {
	@apply text-lg font-bold text-gray-800 mb-2;
	margin: 5px 0;
}
.calendar-list-event {
	@apply bg-blue-50 p-3 rounded-lg mb-2 text-sm; /* Added padding and rounded corners for individual events */
}

/* Media Query for switching views */
/* Hide Grid calendar and show List on small screens (below 768px) */
@media (max-width: 767px) {
	#calendar-grid-view {
		display: none;
	}
	#calendar-list-view {
		display: block;
	}
	.calendar-grid {
		display: none; /* Hide grid on mobile */
	}
}

/* Hide List calendar and show Grid on larger screens (768px and above) */
@media (min-width: 768px) {
	#calendar-list-view {
		display: none;
	}
	.calendar-grid {
		display: grid; /* Show grid on desktop */
	}
}