.calendar-page-shell {
	max-width: 86rem;
}

.calendar-content {
	grid-template-columns: minmax(0, 1fr) 18rem;
}

.calendar-main {
	max-width: none;
	min-width: 0;
}

.calendar-output {
	max-width: 100%;
	margin-top: 1.5rem;
}

.calendar-output > hr {
	display: none;
}

.calendar-output .container,
.calendar-output .table-responsive-lg {
	max-width: 100%;
}

.calendar-output .table-responsive-lg {
	overflow-x: auto;
	border: 1px solid var(--theme-border);
	border-radius: 8px;
	-webkit-overflow-scrolling: touch;
}

.calendar-output table {
	width: max-content;
	min-width: 100%;
	margin: 0;
	border-collapse: collapse;
	background: var(--theme-card);
	font-size: 0.86rem;
	line-height: 1.45;
}

.calendar-output th,
.calendar-output td {
	max-width: 18rem;
	padding: 0.75rem;
	border-right: 1px solid var(--theme-border);
	border-bottom: 1px solid var(--theme-border);
	text-align: left;
	vertical-align: top;
}

.calendar-output thead th {
	background: var(--theme-soft);
	color: var(--theme-accent-dark);
}

.calendar-output p {
	margin: 0;
}

.calendar-output button {
	min-height: 44px;
	padding: 0.55rem 0.7rem;
	border: 1px solid var(--theme-border-strong);
	border-radius: 6px;
	background: #fff;
	color: var(--theme-accent-dark);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

@media screen and (max-width: 860px) {
	.calendar-content {
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width: 720px) {
	.calendar-output table {
		font-size: 0.78rem;
	}

	.calendar-output th,
	.calendar-output td {
		padding: 0.6rem;
	}
}
