/* ==============================
   TIMETABLE WRAPPER
============================== */
.academy-timetable {
	width: min(900px, 100%);
	margin: 0 auto;
}

/* ==============================
   LABEL
============================== */
.timetable-label {
	display: block;
	margin: 22px 0 10px 4px;
	color: var(--section-sub);
	font-size: 14px;
	font-weight: 700;
}

/* ==============================
   BUTTON
============================== */
.btn-row {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	padding-bottom: 8px;
}

.select-btn {
	flex: 1;
	min-width: 100px;
	padding: 14px 10px;
	border: 1px solid var(--border);
	border-radius: 12px;
	background: #fff;
	color: var(--section-text);
	font-size: 16px;
	font-weight: 700;
	white-space: nowrap;
	cursor: pointer;
	transition: background .2s ease, border-color .2s ease, color .2s ease;
}

.select-btn:hover {
	border-color: var(--section-main);
	background: var(--section-bg);
}

.select-btn.active {
	border-color: var(--section-main);
	background: var(--section-main);
	color: #fff;
}

/* ==============================
   TABLE
============================== */
.table-container {
	margin-top: 20px;
	padding: 24px;
	border: 1px solid var(--border);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(15, 23, 42, .08);
	opacity: 0;
	transform: translateY(12px);
	transition: opacity .35s ease, transform .35s ease;
}
.table-container.show {
	opacity: 1;
	transform: translateY(0);
}
.table-container.table-changing {
	opacity: 0;
	transform: translateY(8px);
}
.table-scroll {
	overflow-x: auto;
}
table {
	width: 100%;
	min-width: 600px;
	border-collapse: collapse;
}
th,td {
	padding: 15px 12px;
	border: 1px solid var(--border);
	text-align: center;
	vertical-align: middle;
}
thead th {
	background: var(--section-bg);
	color: var(--section-text);
	font-weight: 700;
}
.time-cell {
	width: 90px;
	background: var(--section-bg);
	color: var(--section-text);
	font-weight: 600;
}
.cell-open {
	background: #fff;
	color: var(--section-step4);
	font-weight: 650;
}
.cell-new {
	background: #f8fafc;
	color: #94a3b8;
	font-size: 15px;
	font-weight: 700;
}
.empty-cell {
	background: #fff;
	color: #cbd5e1;
}
.no-schedule {
	padding: 60px 20px !important;
	text-align: center;
}

/* ==============================
   MOBILE
============================== */
@media(max-width:768px) {
	.timetable-label {
		margin-top: 18px;
		font-size: 13px;
	}
	.table-container {
		padding: 16px;
		border-radius: 16px;
	}
	th,td {
		padding: 12px 8px;
		font-size: 13px;
	}
	.select-btn {
		flex: none;
		min-width: 92px;
		padding: 12px 9px;
		font-size: 13px;
	}
}