/* =============================================================================
   利用予定表
   ============================================================================= */

/* -----------------------------------------------------------------------------
   タブ
   ----------------------------------------------------------------------------- */

.schedule-tabs {
	display: flex;
	gap: 0.5rem;
	margin-bottom: 1.25rem;
}

.schedule-tab {
	flex: 1;
	padding: 0.6em 1em;
	border: 2px solid #83c447;
	border-radius: 3px;
	background: #fff;
	color: #5a8a2e;
	font-size: 1rem;
	font-weight: bold;
	cursor: pointer;
	transition: background 0.2s, color 0.2s;
}

.schedule-tab.is-active {
	background: #83c447;
	color: #fff;
}

.schedule-tab-content {
	display: none;
}

.schedule-tab-content.is-active {
	display: block;
}

/* -----------------------------------------------------------------------------
   カレンダー
   ----------------------------------------------------------------------------- */

.schedule-calendar-wrap {
	margin-bottom: 2rem;
}

.schedule-calendar {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9rem;
	table-layout: fixed;
}

.schedule-calendar th {
	text-align: center;
	padding: 0.4em 0;
	background: #f5f5f5;
	border: 1px solid #ddd;
	font-weight: bold;
}

.schedule-calendar th.is-sun {
	color: #e74c3c;
}

.schedule-calendar th.is-sat {
	color: #3498db;
}

.schedule-calendar td {
	text-align: center;
	padding: 0.4em 0.2em;
	border: 1px solid #ddd;
	vertical-align: middle;
	line-height: 1.3;
}

.schedule-calendar td.is-sun .schedule-calendar__day {
	color: #e74c3c;
}

.schedule-calendar td.is-sat .schedule-calendar__day {
	color: #3498db;
}

.schedule-calendar__day {
	display: block;
	font-size: 0.85rem;
}

.schedule-calendar__status {
	display: block;
	font-weight: bold;
	font-size: 0.95rem;
}

.schedule-calendar td.is-free .schedule-calendar__status {
	color: #83c447;
}

.schedule-calendar td.is-partial .schedule-calendar__status {
	color: #f39c12;
}

.schedule-calendar td.is-full .schedule-calendar__status {
	color: #e74c3c;
}

/* 凡例 */
.schedule-calendar__legend {
	display: flex;
	gap: 1rem;
	list-style: none;
	margin: 0.5rem 0 0;
	padding: 0;
	font-size: 0.85rem;
}

.schedule-calendar__legend .is-free {
	color: #83c447;
	font-weight: bold;
}

.schedule-calendar__legend .is-partial {
	color: #f39c12;
	font-weight: bold;
}

.schedule-calendar__legend .is-full {
	color: #e74c3c;
	font-weight: bold;
}

/* -----------------------------------------------------------------------------
   リスト
   ----------------------------------------------------------------------------- */

.schedule-table {
	margin: 0;
}

/* 日付ブロック */
.schedule-day {
	margin-bottom: 1.25rem;
	padding-left: 0.5rem;
}

.schedule-day__title {
	font-size: 1rem;
	font-weight: bold;
	color: #5a8a2e;
	border-bottom: 1px solid #83c447;
	padding-bottom: 0.25em;
	margin-bottom: 0.5rem;
}

/* イベント1件 */
.schedule-item {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0 0.75em;
	padding: 0.3em 0;
	border-bottom: 1px dotted #ddd;
	font-size: 0.95rem;
	line-height: 1.6;
}

.schedule-item:last-child {
	border-bottom: none;
}

.schedule-item__meta {
	white-space: nowrap;
	color: #555;
	margin: 0;
	flex-shrink: 0;
}

.schedule-item__title {
	margin: 0;
	word-break: break-all;
}

.schedule-item__remarks {
	width: 100%;
	padding-left: 1em;
	font-size: 0.875rem;
	color: #777;
	margin: 0;
}

/* 定期開放日 */
.schedule-item--open-day {
	background-color: #f0fae0;
	border-bottom-color: #c9e9a0;
	padding-left: 0.5em;
	padding-right: 0.5em;
	border-radius: 3px;
}

/* 重要なお知らせ（パターン2） */
.schedule-item--attention {
	border-bottom-color: #ffd0d0;
}

.schedule-item__attention {
	color: #e74c3c;
	font-weight: bold;
	margin: 0;
}

/* 予定なし */
.schedule-empty {
	color: #777;
	font-size: 0.95rem;
}

/* -----------------------------------------------------------------------------
   利用面バッジ
   ----------------------------------------------------------------------------- */

.schedule-area {
	display: inline-block;
	padding: 0.1em 0.6em;
	border: 1px solid;
	border-radius: 3px;
	font-size: 0.85rem;
	font-weight: bold;
	line-height: 1.6;
	white-space: nowrap;
}

/* 全面 */
.schedule-area--all {
	border-color: #ff4757;
	background: #ffe0e3;
	color: #ff4757;
}

/* A面 */
.schedule-area--a {
	border-color: #71c9ff;
	background: #d7f0ff;
	color: #3eb6ff;
}

/* B面 */
.schedule-area--b {
	border-color: #ffa502;
	background: #ffdb9b;
	color: #ce8500;
}

/* -----------------------------------------------------------------------------
   スマートフォン
   ----------------------------------------------------------------------------- */

@media (max-width: 599px) {
	.schedule-item {
		flex-direction: column;
		gap: 0;
	}

	.schedule-item__meta {
		font-size: 0.875rem;
		color: #777;
	}
}

/* -----------------------------------------------------------------------------
   今日の予定
   ----------------------------------------------------------------------------- */

.schedule-today {
	padding: 1rem;
	border: 2px solid #83c447;
	border-radius: 5px;
	margin-bottom: 1.5rem;
}

.schedule-today__title {
	font-size: 1rem;
	font-weight: bold;
	color: #5a8a2e;
	margin-bottom: 0.75rem;
	padding-bottom: 0.25em;
	border-bottom: 1px solid #83c447;
}

.schedule-today__title span {
	font-weight: normal;
	font-size: 0.9rem;
	margin-left: 0.5em;
}

.schedule-today__empty {
	color: #777;
	font-size: 0.95rem;
	margin: 0;
}

.schedule-today__group {
	margin-bottom: 0.75rem;
}

.schedule-today__group:last-child {
	margin-bottom: 0;
}

.schedule-today__group-name {
	font-size: 0.9rem;
	font-weight: bold;
	color: #fff;
	background: #83c447;
	display: inline-block;
	padding: 0.1em 0.6em;
	border-radius: 3px;
	margin-bottom: 0.25rem;
}