:root {
	--tmta-calendar-max-width: 900px;
	--tmta-calendar-gap: 16px;
	--tmta-calendar-radius: 4px;

	/* 外側背景：以前より少し濃く */
	--tmta-calendar-outer: #f4f4ef;

	--tmta-calendar-border: #deded8;
	--tmta-calendar-muted: #6f6f69;
	--tmta-calendar-sunday: #c64a4a;
	--tmta-calendar-saturday: #3c68a8;
	--tmta-calendar-today: #fff8d9;

	--tmta-tag-1-bg: #f8dddd;
	--tmta-tag-1-text: #8f2f2f;

	--tmta-tag-2-bg: #dfe9f7;
	--tmta-tag-2-text: #315e98;

	--tmta-tag-3-bg: #f7edc9;
	--tmta-tag-3-text: #715b16;

	--tmta-tag-4-bg: #eee4f5;
	--tmta-tag-4-text: #6b477f;

	--tmta-tag-5-bg: #e0efdf;
	--tmta-tag-5-text: #3f6d3d;

	--tmta-tag-6-bg: #e8e8e6;
	--tmta-tag-6-text: #555550;
}

/* =========================================================
   共通
========================================================= */

.tmta-club-calendar,
.tmta-club-notice {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--tmta-calendar-max-width);
	margin-inline: auto;
	font-size: 14px;
}

.tmta-club-calendar *,
.tmta-club-notice * {
	box-sizing: border-box;
}

/* =========================================================
   カレンダー全体
========================================================= */

.tmta-club-calendar {
	display: grid;

	/* カレンダー : 詳細 = 2.2 : 1 */
	grid-template-columns:
		minmax(0, 2.2fr)
		minmax(220px, 1fr);

	gap: var(--tmta-calendar-gap);
	padding: 14px;
	background: var(--tmta-calendar-outer);
}

/* =========================================================
   カレンダー・詳細パネル
========================================================= */

.tmta-club-calendar__panel,
.tmta-club-calendar__detail-panel {
	min-width: 0;
	background: #fff;
	border: 1px solid var(--tmta-calendar-border);
	border-radius: var(--tmta-calendar-radius);
}

/* =========================================================
   カレンダーヘッダー
========================================================= */

.tmta-club-calendar__toolbar {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 6px 10px;
	border-bottom: 1px solid var(--tmta-calendar-border);
}

.tmta-club-calendar__nav {
	position: absolute;
	left: 8px;
	display: flex;
	align-items: center;
	gap: 5px;
}

.tmta-club-calendar__nav-button,
.tmta-club-calendar__today-button {
	appearance: none;
	border: 1px solid var(--tmta-calendar-border);
	background: #fff;
	color: inherit;
	border-radius: 4px;
	min-height: 30px;
	cursor: pointer;
}

.tmta-club-calendar__nav-button {
	width: 30px;
	font-size: 20px;
	line-height: 1;
}

.tmta-club-calendar__today-button {
	padding: 0 8px;
	font-size: 13px;
}

.tmta-club-calendar__nav-button:disabled,
.tmta-club-calendar__today-button:disabled {
	opacity: 0.35;
	cursor: default;
}

.tmta-club-calendar__month {
	font-size: 17px;
	font-weight: 700;
}

/* =========================================================
   曜日
========================================================= */

.tmta-club-calendar__weekdays,
.tmta-club-calendar__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
}

.tmta-club-calendar__weekdays {
	border-bottom: 1px solid var(--tmta-calendar-border);
}

.tmta-club-calendar__weekdays > div {
	padding: 7px 2px;
	text-align: center;
	font-size: 13px;
	color: var(--tmta-calendar-muted);
}

.tmta-club-calendar__weekdays .is-sunday {
	color: var(--tmta-calendar-sunday);
}

.tmta-club-calendar__weekdays .is-saturday {
	color: var(--tmta-calendar-saturday);
}

/* =========================================================
   日付セル
========================================================= */

.tmta-club-calendar__day {
	position: relative;
	min-width: 0;
	min-height: 76px;
	padding: 5px 4px 4px;
	border-right: 1px solid var(--tmta-calendar-border);
	border-bottom: 1px solid var(--tmta-calendar-border);
	background: #fff;
	overflow: hidden;
}

.tmta-club-calendar__day:nth-child(7n) {
	border-right: 0;
}

.tmta-club-calendar__day.is-other-month {
	background: #fbfbf9;
}

.tmta-club-calendar__day.is-today {
	background: var(--tmta-calendar-today);
}

/* =========================================================
   日付・祝日
========================================================= */

.tmta-club-calendar__date-line {
	display: flex;
	align-items: baseline;
	gap: 3px;
	min-height: 21px;
	white-space: nowrap;
}

.tmta-club-calendar__date {
	font-size: 14px;
	font-weight: 600;
}

.tmta-club-calendar__day.is-sunday .tmta-club-calendar__date,
.tmta-club-calendar__day.is-holiday .tmta-club-calendar__date,
.tmta-club-calendar__holiday {
	color: var(--tmta-calendar-sunday);
}

.tmta-club-calendar__day.is-saturday .tmta-club-calendar__date {
	color: var(--tmta-calendar-saturday);
}

.tmta-club-calendar__holiday {
	font-size: 10px;
	font-weight: 600;
}

/* =========================================================
   カレンダー内の予定タグ
========================================================= */

.tmta-club-calendar__events {
	display: grid;
	gap: 3px;
}

.tmta-club-calendar__event {
	display: block;
	width: 100%;
	min-width: 0;
	padding: 4px 5px;
	border: 0;
	border-radius: 3px;
	text-align: left;
	font-size: 12px;
	line-height: 1.3;
	font-weight: 600;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	cursor: pointer;
}

.tmta-club-calendar__event[data-type="1"] {
	background: var(--tmta-tag-1-bg);
	color: var(--tmta-tag-1-text);
}

.tmta-club-calendar__event[data-type="2"] {
	background: var(--tmta-tag-2-bg);
	color: var(--tmta-tag-2-text);
}

.tmta-club-calendar__event[data-type="3"] {
	background: var(--tmta-tag-3-bg);
	color: var(--tmta-tag-3-text);
}

.tmta-club-calendar__event[data-type="4"] {
	background: var(--tmta-tag-4-bg);
	color: var(--tmta-tag-4-text);
}

.tmta-club-calendar__event[data-type="5"] {
	background: var(--tmta-tag-5-bg);
	color: var(--tmta-tag-5-text);
}

.tmta-club-calendar__event[data-type="6"] {
	background: var(--tmta-tag-6-bg);
	color: var(--tmta-tag-6-text);
}

.tmta-club-calendar__event.is-selected {
	outline: 2px solid currentColor;
	outline-offset: -1px;
}

/* =========================================================
   予定詳細
========================================================= */

.tmta-club-calendar__detail-panel {
	padding: 16px;
}

.tmta-club-calendar__detail-date {
	font-size: 13px;
	color: var(--tmta-calendar-muted);
	margin-bottom: 6px;
}

/* 右側詳細欄のタグ名にも左側と同じ色を付ける */
.tmta-club-calendar__detail-type {
	display: inline-block;
	width: fit-content;
	max-width: 100%;
	padding: 4px 8px;
	border-radius: 3px;
	font-size: 15px;
	line-height: 1.4;
	font-weight: 700;
	margin-bottom: 12px;
	overflow-wrap: anywhere;
}

.tmta-club-calendar__detail-type[data-type="1"] {
	background: var(--tmta-tag-1-bg);
	color: var(--tmta-tag-1-text);
}

.tmta-club-calendar__detail-type[data-type="2"] {
	background: var(--tmta-tag-2-bg);
	color: var(--tmta-tag-2-text);
}

.tmta-club-calendar__detail-type[data-type="3"] {
	background: var(--tmta-tag-3-bg);
	color: var(--tmta-tag-3-text);
}

.tmta-club-calendar__detail-type[data-type="4"] {
	background: var(--tmta-tag-4-bg);
	color: var(--tmta-tag-4-text);
}

.tmta-club-calendar__detail-type[data-type="5"] {
	background: var(--tmta-tag-5-bg);
	color: var(--tmta-tag-5-text);
}

.tmta-club-calendar__detail-type[data-type="6"] {
	background: var(--tmta-tag-6-bg);
	color: var(--tmta-tag-6-text);
}

.tmta-club-calendar__detail-memo {
	font-size: 14px;
	line-height: 1.75;
	white-space: pre-line;
	overflow-wrap: anywhere;
}

/* =========================================================
   クラブからの連絡
========================================================= */

.tmta-club-notice {
	margin-top: 8px;
	padding: 12px 14px;
	background: var(--tmta-calendar-outer);
}

.tmta-club-notice__inner {
	/* デフォルトで約3行分の高さを確保 */
	min-height: calc(1.75em * 3 + 26px);

	padding: 13px 15px;
	background: #fff;
	border: 1px dashed #cfcfc8;
	border-radius: var(--tmta-calendar-radius);

	font-size: 14px;
	line-height: 1.75;

	white-space: pre-line;
	overflow-wrap: anywhere;
}

/* =========================================================
   タブレット・スマートフォン
========================================================= */

@media (max-width: 782px) {

	.tmta-club-calendar {
		grid-template-columns: minmax(0, 1fr);
		padding: 10px;
		gap: 10px;
	}

	.tmta-club-calendar__day {
		min-height: 68px;
		padding-inline: 3px;
	}

	.tmta-club-calendar__toolbar {
		justify-content: flex-end;
	}

	.tmta-club-calendar__month {
		font-size: 16px;
	}

	.tmta-club-calendar__weekdays > div {
		font-size: 12px;
	}

	.tmta-club-calendar__date {
		font-size: 13px;
	}

	.tmta-club-calendar__event {
		padding-inline: 3px;
		font-size: 10px;
	}

	.tmta-club-calendar__detail-panel {
		padding: 14px;
	}
}

/* =========================================================
   小さいスマートフォン
========================================================= */

@media (max-width: 480px) {

	.tmta-club-calendar__today-button {
		padding-inline: 6px;
		font-size: 12px;
	}

	.tmta-club-calendar__day {
		min-height: 64px;
	}

	.tmta-club-calendar__date {
		font-size: 12px;
	}

	.tmta-club-calendar__event {
		font-size: 9px;
	}

	.tmta-club-calendar__holiday {
		font-size: 8px;
	}
}
