* {
	box-sizing: border-box;
}

body {
	margin: 0;
	padding: 8px;
	background: #f2f2f2;
	font-family: Verdana, Geneva, sans-serif;
	font-size: 14px;
}

TD {
	font-family: Verdana, Geneva, sans-serif;
	font-size: 13px;
	text-align: left;
	color: #000000;
	padding: 4px;
}

.calendar-table {
	width: 100%;
	table-layout: fixed;
}

.calendar-shell {
	background: #000000;
}

.title-row td,
.head-row td {
	background: #FFFFFF;
}

.month-title {
	font-size: 18px;
	text-align: center;
	padding: 12px 8px;
}

.month-nav {
	color: #000000;
	text-decoration: none;
	padding: 8px 12px;
	font-weight: bold;
	display: inline-block;
	min-width: 44px;
	text-align: center;
	cursor: pointer;
}

.month-today {
	color: #000000;
	text-decoration: none;
	padding: 6px 12px;
	border: 2px solid #666666;
	background: #FFFFFF;
	font-size: 13px;
	display: inline-block;
	cursor: pointer;
	margin: 0 4px;
}

.weekday-head {
	font-size: 14px;
	font-weight: bold;
	text-align: center;
	padding: 8px 4px;
}

.calendar-day {
	vertical-align: top;
	min-height: 140px;
	background: #FFFFFF;
	padding: 6px;
	overflow-y: auto;
}

.calendar-empty {
	background: #E6E6E6;
}

.day-title {
	font-size: 14px;
	font-weight: bold;
	margin-bottom: 4px;
	padding-bottom: 4px;
	border-bottom: 1px solid #ccc;
}

.slot {
	font-size: 12px;
	line-height: 1.4;
	margin-bottom: 2px;
	padding: 2px 4px;
}

.slot-ats, .slot-ate {
	background: #9999FF;
}

.slot-nts, .slot-nte {
	background: #66CCFF;
}

.slot-cts, .slot-cte {
	background: #FFCCCC;
}

.slot-srs, .slot-sse {
	background: #FFFFCC;
}

/* Mobile optimization for smaller screens */
@media (max-width: 480px) {
	body {
		padding: 4px;
	}

	.calendar-table {
		font-size: 12px;
	}

	.month-title {
		font-size: 16px;
		padding: 10px 4px;
	}

	TD {
		font-size: 11px;
		padding: 3px;
	}

	.weekday-head {
		font-size: 12px;
		padding: 6px 2px;
	}

	.calendar-day {
		min-height: 110px;
		padding: 4px;
	}

	.day-title {
		font-size: 12px;
		margin-bottom: 3px;
		padding-bottom: 3px;
	}

	.slot {
		font-size: 10px;
		line-height: 1.3;
		margin-bottom: 1px;
		padding: 1px 2px;
	}

	.month-nav {
		padding: 6px 10px;
		font-size: 16px;
		min-width: 40px;
	}

	.month-today {
		padding: 5px 10px;
		font-size: 11px;
	}
}

@media (min-width: 481px) and (max-width: 768px) {
	.calendar-day {
		min-height: 130px;
	}

	TD {
		font-size: 12px;
	}

	.month-title {
		font-size: 17px;
	}
}
