.calendars-wrapper {
	max-width: 100%;
	margin: 20px auto;
	padding: 20px;
}

.bus-type-section {
	margin-bottom: 50px;
}

.bus-type-title {
	text-align: center;
	font-size: 1.8rem;
	color: #fff;
	margin: 0 0 20px 0;
	padding: 15px;
	background: linear-gradient(135deg, #1592E6 0%, #0d7ac4 100%);
	border-radius: 10px;
	box-shadow: 0 4px 15px rgba(21, 146, 230, 0.3);
}

.months-container {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 30px;
	margin-bottom: 30px;
}

.page-header {
	text-align: center;
	margin-bottom: 30px;
	padding: 20px;
	background: linear-gradient(135deg, #1592E6 0%, #0d7ac4 100%);
	color: white;
	border-radius: 12px;
	box-shadow: 0 4px 15px rgba(21, 146, 230, 0.3);
}

.page-header h1 {
	margin: 0 0 10px 0;
	font-size: 2rem;
}

.page-date {
	margin: 0;
	font-size: 1.3rem;
	font-weight: 600;
}

.month-section {
	margin-bottom: 0;
}

.month-title {
	text-align: center;
	font-size: 1.4rem;
	color: #1e293b;
	margin: 0 0 15px 0;
	padding: 10px;
	background: #f8fafc;
	border-radius: 6px;
	border-bottom: 3px solid #1592E6;
}

.calendar-container {
	margin-bottom: 0;
	padding: 15px;
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

.calendar-header {
	text-align: center;
	margin-bottom: 15px;
	padding: 10px;
	background: #f8fafc;
	border-left: 4px solid #1592E6;
	border-radius: 6px;
}

.calendar-header h2 {
	margin: 0;
	font-size: 1.1rem;
	color: #1e293b;
}

.calendar-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 5px;
	margin-bottom: 20px;
}

.weekday {
	text-align: center;
	padding: 10px;
	font-weight: bold;
	background: #f0f0f0;
	border-radius: 4px;
}

.weekday.sunday {
	color: #dc2626;
}

.weekday.saturday {
	color: #2563eb;
}

.calendar-day {
	min-height: 80px;
	padding: 8px;
	border: 1px solid #e5e7eb;
	border-radius: 4px;
	position: relative;
	background: white;
}

.calendar-day.empty {
	background: #f9fafb;
	border-color: transparent;
}

.calendar-day.past {
	background: #f1f5f9;
	opacity: 0.6;
}

.day-number {
	font-weight: bold;
	margin-bottom: 5px;
}

.day-number.sunday {
	color: #dc2626;
}

.day-number.saturday {
	color: #2563eb;
}

.availability {
	text-align: center;
	font-size: 1.5rem;
	font-weight: bold;
	margin-top: 10px;
}

.availability.available {
	color: #059669;
}

.availability.limited {
	color: #f59e0b;
}

.availability.unavailable {
	color: #dc2626;
}

.calendar-legend {
	display: flex;
	justify-content: center;
	gap: 20px;
	padding: 15px;
	background: #f8fafc;
	border-radius: 8px;
	margin: 30px 0 20px 0;
}

.legend-item {
	display: flex;
	align-items: center;
	gap: 8px;
}

.legend-symbol {
	font-size: 1.2rem;
	font-weight: bold;
}

.legend-symbol.available {
	color: #059669;
}

.legend-symbol.limited {
	color: #f59e0b;
}

.legend-symbol.unavailable {
	color: #dc2626;
}

.last-updated {
	text-align: center;
	margin-top: 15px;
	color: #64748b;
	font-size: 0.9rem;
}

@media (max-width: 768px) {
	.calendars-wrapper {
		padding: 10px;
		margin: 10px;
	}
	
	.months-container {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	
	.page-header {
		padding: 15px;
	}
	
	.page-header h1 {
		font-size: 1.5rem;
	}
	
	.page-date {
		font-size: 1.1rem;
	}
	
	.month-section {
		margin-bottom: 40px;
	}
	
	.month-title {
		font-size: 1.4rem;
		padding: 12px;
	}
	
	.calendar-container {
		padding: 10px;
		margin-bottom: 30px;
	}
	
	.calendar-header h2 {
		font-size: 1.1rem;
	}
	
	.calendar-grid {
		gap: 3px;
	}
	
	.calendar-day {
		min-height: 60px;
		padding: 5px;
	}
	
	.day-number {
		font-size: 0.9rem;
	}
	
	.availability {
		font-size: 1.2rem;
	}
	
	.calendar-legend {
		flex-wrap: wrap;
		gap: 10px;
		padding: 10px;
	}
	
	.legend-item {
		font-size: 0.85rem;
	}
	
	.legend-symbol {
		font-size: 1rem;
	}
}
