@charset "utf-8";

.calendar div.main > section {
	padding: 0;
}
table{
	margin-bottom: 1em;
	width: 100%;
	border-collapse: collapse;
	background: white;
	box-sizing: border-box;
}
table * {
	box-sizing: inherit;
}
table,
td,
th {
	border: #333 1px solid;
}
th {
	padding: 0.4em;
}

.cal thead {
	background: var(--bg-l1);
}
.cal td {
	font-size: 85%;
	text-align: left;
	vertical-align: top;
}
.cal td > div {
	/*height: 150px;*/
	min-height: 120px;
	max-height: 180px;
	overflow-y: auto;
	padding: 0 4px 0 0;
	scrollbar-width: thin;
}
.cal td div div {
	text-indent: -4px;	/*::beforeと合わせる */
	max-height: 3.3em;	/* これがないと3行目の頭が少し残る*/
	overflow-y: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	border-top: dotted silver 1px;
	margin-top: -1px;	/*先頭のdivのみborder-topを隠す。先頭がdisplay-noneになってもうまくいく*/
	padding: 3px 0 4px 5px;	/* 下のdivのmargin-topが-1なのでpadding-bottomを1px増やす*/
}
.cal td > div > div:only-child {
	/*
	max-height: none;
	overflow-y: auto;
	display: block;
	-webkit-line-clamp: unset;
	line-clamp: unset;
	*/
	max-height: 6em;
	-webkit-line-clamp: 4;
	line-clamp: 4;
}
.cal td.ncm {
	background: #ddd;
}
.cal th {
	font-weight: normal;
}
table.cal {
	margin-bottom: 0.3em;
}
.cal caption {
	margin-bottom: 0.3em;
}
.cal .tcap {
	font-size: 1.2em;
	font-weight: bold;
}
.cal caption button {
	font-size: small;
	height: 1.8em;
}
.cal a {
	color: #00009f;
	text-decoration: none;
}
.cal a:hover {
	text-decoration: underline 1px solid rgb(100 100 255 / 0.5);
}
.cal .misc {
	font-size: small;
	color: gray;
}
.cal em {
	display: block;
	/*border: 1px solid #ccc;*/
	padding: 1px;
	background: #eee;
	font-size: 87%;
	width: 2em;
	height: 1.5em;
	text-align: center;
	margin: -1px 0 0 -1px;
}
.cal .today {
	border: #faa solid 2px;
	background: #fff6ee;
}
.cal a: link,
.cal a: visited {
	color: blue;
}
.cal a.seealso: link,
.cal a.seealso: visited {
	color: green;
}
.cal a.mono: link,
.cal a.mono: visited {
	color: #023676;
}
.tm {
	color: maroon;
	margin-right: 1px;
}
.loc {
	font-size: 85%;
	color: gray;
}
button {
	display: inline;
}
th.sun, td.sun em {
	color: #c00}
th.sat, td.sat em {
	color: blue;
}
.cal col {
	width: 14%;
}
.cal div.tgid,
span.tgid {
	background: #ffeeee;
	border: 1px solid #ffaaaa;
}
.cal div.rel,
span.rel {
	background: #f3fff3;
	border: 1px solid #ccffcc;
}
.cal div.tgid,
.cal div.rel {
	margin-top: 0;
	position: relative;
	z-index: 10;
}
.monstart col.wday {
	width: 11%;
}
.monstart col.sun,
.monstart col.sat {
	background: #fef6de;
	width: 22%;
}
.monstart thead {
	background: #eda;
}
.monstart td.ncm {
	background: #dc9;
}
.utc .ztime {
	font-size: 90%;
	color: gray;
	margin-left: 2em;
}

.cal td div div::before,
#legend span::before {
	content: " ";
	display: inline-block;
	height: 1em;
	font-size: 90%;
	overflow: hidden;
}
#legend {
	font-size: 83.3%;
	margin-top: 5px;
	/*margin-top: 1em;*/
}
/*
#legend span {
	display: inline-block;
	min-width: 3em;
	text-align-last: justify;
	margin-right: 1em;
	vertical-align: middle;
	line-height: 1;
}
#legend span::before {
	width: 8px;
	margin-right: 2px;
	vertical-align: middle;
}
*/
#categ {
	font-size: 83.3%;
	margin-top: 1em;
}
#categ label {
	display: inline-block;
	min-width: 3em;
	text-align-last: justify;
 	margin-right: 1em;
}
#categ label span {
	font-size: 60%;
 	margin-right: 4px;
 	vertical-align: middle;
}
#categ input[type=button] {
	margin-left: 1em; width: 5em;
}
.cal td div div::before {
	width: 4px;
	margin-right: 1px;
}
.no-ga1 .ga1,
.no-ga2 .ga2,
.no-ga3 .ga3,
.no-ga4 .ga4,
.no-gc1 .gc1,
.no-gc2 .gc2,
.no-gc3 .gc3,
.no-gc4 .gc4,
.no-gw0 .gw0,
.no-gw1 .gw1,
.no-gw2 .gw2,
.no-gw3 .gw3,
.no-gw4 .gw4,
.no-gw5 .gw5,
.no-gw6 .gw6 {
	display: none;
}

/* 840px for tablet, 1000px for use left side */
@media (max-width: 1000px){
	.loc {
		display: none;
	}
	.cal td div div {
		word-break: break-all;
	}
}