@charset "UTF-8";
@font-face {
	font-family: "Exo2";
	src: url(/css/Exo2-VariableFont_wght.ttf);
}

html {
	-webkit-text-size-adjust: 100%;
	font-family: "Exo2";
	scroll-behavior: smooth;
}

:where(h1, h2) a { color: #000; text-decoration: none; }
a { color: #4B90B3; }
a.sub { font-weight: bold; }
a:not(.sub) { cursor: pointer; }
a:not(.sub):hover { color: #FF7885; text-decoration: underline; }
hr { width: 100%; margin: 20px 0; }
.mini { font-size: 0.8em; }
.right { text-align: right; }
.center { text-align: center; }
.notice { color: #999; }
.ok { color: #5EC9FF; }
.ng { color: #FF7885; }
.plus { color: forestgreen !important; }
.minus { color: crimson !important; }
.nowrap { white-space: nowrap; }
.w2em { width: 2em; }
.w3em { width: 3em; }
.w4em { width: 4em; }
.w5em { width: 5em; }
.w6em { width: 6em; }
.w7em { width: 7em; }
.w8em { width: 8em; }
.w9em { width: 9em; }
.w10em { width: 10em; }
.graph { width: 100%; }
.graph.half { border: 1px solid #CCC; }

*::-webkit-scrollbar {
	background-color: #CCC;
	width: 5px;
	height: 5px;
}

*::-webkit-scrollbar-thumb {
	background-color: #999;
}

.box1 {
	width: 100%;
	padding: 20px;
	text-align: center;
}

:where(input, select) {
	appearance: none;
	font-family: 'Hiragino Kaku Gothic Pro', 'Segoe UI', 'Apple Gothic', Tahoma, 'Helvetica Neue', sans-serif;
	font-size: 1em;
	border: 1px solid #CCC;
	border-radius: 3px;
	padding: 5px;
}

:where(input, select):focus {
	outline: none;
}

.disabled,
.disabled :where(input, select),
:where(input, select):disabled {
	color: #CCC;
	background-color: #F9F9F9;
}

button,
input[type="submit"] {
	background-color: #F0F0F0;
	border: 1px solid #CCC;
	border-radius: 3px;
	color: #000;
}

button,
input[type="submit"].inline {
	display: inline-block;
	padding: 5px 20px;
	margin: 0;
	cursor: pointer;
}

:not(.disabled) > input[value="0"] {
	color: #999;
}

.radio1 input[type="radio"] {
	display: none;
}

.radio1 label {
	display: inline-block;
	padding: 5px 10px;
	border-radius: 3px;
	cursor: pointer;
}

.radio1 input[type="radio"]:checked + label {
	background-color: #4B90B3;
	color: white;
}

header {
	position: fixed;
	z-index: 1000;
	left: 0;
	top: 0;
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-bottom: 1px solid #CCC;
	box-shadow: 0 0 5px 5px rgba(0, 0, 0, 0.05);
	background-color: rgba(255, 255, 255, 0.9);
	transition: 200ms;
	overflow: hidden;
}

header.hide {
	height: 0;
}

header h1 { flex-grow: 1; }

footer {
	display: flex;
	justify-content: center;
	align-items: center;
}

footer p { margin-left: 10px; }

section {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

section h2,
section h3 { width: 100%; text-align: center; }

section nav {
	border: 1px solid #333;
	border-radius: 5px;
	padding: 0 10px;
	margin-bottom: 10px;
}

section nav ul {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	padding: 0;
}

section nav li a {
	display: inline-block;
	padding: 10px;
}

#dataTable { width: 100%; }
#dataTable table { margin: 0 auto; }
#dataTable em { font-size: 0.7em; color: #999; }

table {
	border-collapse: collapse;
	border-top: 1px solid #CCC;
	border-left: 1px solid #CCC;
}

:where(th, td) {
	border-right: 1px solid #CCC;
	border-bottom: 1px solid #CCC;
}

:where(th, td).ld { border-left-style: dashed; }
:where(th, td).rd { border-right-style: dashed; }
.double :where(th, td) { border-top: 3px double #CCC; }
th { background-color: #F0F0F0; }
thead th { text-align: center; background-color: #E0E0E0; }
tbody th { text-align: left; }
tbody tr:nth-child(even) th { background-color: #E0E0E0; }
tbody tr:nth-child(even) td { background-color: #F6F6F6; }
.data td { text-align: right; }
.data td.center { text-align: center; }
tfoot th { text-align: center; background-color: #E0E0E0; }
tfoot td { font-weight: bold; background-color: #F6F6F6; }
tfoot tr:first-child :where(th, td) { border-top: 3px double #CCC; }
.sort thead th { cursor: pointer; user-select: none; }
.sort thead th::after { content: ""; padding-left: 5px; font-size: 10px; }
.sort thead th.asc::after { content: "▲"; }
.sort thead th.desc::after { content: "▼"; }

table .blank {
	background-image: linear-gradient(
		to left top,
		transparent calc(50% - 0.5px),
		#DDD 50%,
		#DDD calc(50% + 0.5px),
		transparent calc(50% + 1px)
	);
}

/* grid layout table */
table.grid { display: grid; }
table.grid :where(thead, tbody, tfoot, tr) { display: contents; }
table.grid th { display: flex; align-items: center; }
table.grid thead th { justify-content: center; }

/* decoration table 1 */
table.deco1 {
	border-radius: 10px;
	border-collapse: separate;
	border-spacing: 0;
	border-color: #4B90B3;
}

table.deco1 th {
	background-color: #4B90B3;
	color: white;
	font-weight: normal;
}

table.deco1 td:last-child {
	border-right-color: #4B90B3;
}

table.deco1 tr:first-child :where(th, td):first-child {
	border-top-left-radius: 8px;
}

table.deco1 tr:first-child :where(th, td):last-child {
	border-top-right-radius: 8px;
}

table.deco1 tr:last-child :where(th, td) {
	border-bottom-color: #4B90B3;
}

table.deco1 tr:last-child :where(th, td):first-child {
	border-bottom-left-radius: 8px;
}

table.deco1 tr:last-child :where(th, td):last-child {
	border-bottom-right-radius: 8px;
}

#modalWindow,
#modalWindow2 {
	position: fixed;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background-color: rgba(0, 0, 0, .3);
    z-index: 2000;
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    color: white;
    font-size: 24px;
}

#modalWindow.active,
#modalWindow2.active { display: flex; }
#modalWindow progress { width: 80%; }

.menu {
    box-shadow: 0 0 5px 5px rgba(0, 0, 0, 0.05);
	z-index: 900;
}

.menu h2 {
	margin: 0;
	font-weight: normal;
	font-size: 1em;
	text-align: center;
}

.menu nav {
	width: 100%;
	font-size: 0.8em;
	text-align: center;
}

.menu nav ul {
	padding: 0;
	list-style: none;
}

.menu nav li a { display: block; background-repeat: no-repeat; }
.menu nav li a.current { font-weight: bold; background-color: #e9f3f7; }

.app a { text-decoration: none; }
.app a:hover { text-decoration: underline; }

.app span {
	display: inline-block;
	padding-top: 3px;
	font-size: 0.8em;
}

.app figure {
	width: 57px;
	height: 57px;
	padding: 7px;
	border-radius: 7px;
}

.app .yellow figure {
	background: linear-gradient(0deg, rgba(187,164,64,1) 0%, rgba(221,197,64,1) 100%);
}

.app .blue figure {
	background: linear-gradient(0deg, rgba(82,164,191,1) 0%, rgba(75,144,179,1) 100%);
}

.app .filemaker figure {
	padding: 0;
	background-color: #231f20;
}

.tab_box {
	width: 100%;
	border: 1px solid #CCC;
	border-radius: 5px;
	margin-top: 20px;
}

.tab_box > ul {
	display: flex;
	width: 100%;
	list-style: none;
	padding: 0;
}

.tab_box > ul li {
	border-right: 1px solid #CCC;
	border-bottom: 1px solid #CCC;
	flex-grow: 1;
	padding: 5px 0;
	text-align: center;
	background-color: #F0F0F0;
	color: #999;
	cursor: pointer;
}

.tab_box > ul li:hover {
	color: black;
}

.tab_box > ul li:first-child {
	border-radius: 5px 0 0 0;
}

.tab_box > ul li:last-child {
	border-right: none;
	border-radius: 0 5px 0 0;
}

.tab_box > ul li.active {
	background-color: white;
	border-bottom: none;
	font-weight: bold;
	color: black;
	cursor: auto;
}

.tab_box > div {
	display: none;
}

.tab_box > div.active {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	padding: 20px;
	width: 100%;
}

.tab_box .table_box {
	width: 100%;
	overflow: auto;
}

.tab_box .table_box table {
	margin: 0 auto;
}

@media screen and (max-width: 767px) {
	.pc_only { display: none; }
	.graph { height: 400px; margin-bottom: 20px; }
	body { padding-top: 50px; }
	header { padding: 0 10px; height: 50px; }
	header h1 { font-size: 20px; }
	header p { font-size: 12px; }
	footer { height: 100px; padding-bottom: 120px; }
	main { padding: 10px; }
	h2 { font-size: 18px; margin-bottom: 10px; }
	#dataTable { margin-bottom: 20px; }
	#dataTable table { width: 100%; }
	:where(th, td) { padding: 5px; }
	th { font-weight: normal; font-size: 12px; }
	
	.menu {
		position: fixed;
		left: 0;
		bottom: 0;
		z-index: 1000;
		width: 100%;
		display: flex;
		flex-wrap: wrap;
		color: white;
	}
	
	.menu h2 {
		position: absolute;
		left: 0;
		bottom: 0;
	}
	
	.menu h2 span {
		display: none;
	}
	
	.menu h2 figure {
		width: 60px;
		height: 62px;
		border-radius: 0;
	}
	
	.menu nav {
		border-top: 1px solid #CCC;
		background-color: rgba(255, 255, 255, 0.9);
		display: flex;
	}
	
	.menu nav ul {
		width: 100%;
		display: flex;
	}
	
	.menu nav > ul > li {
		flex-grow: 1;
		border-bottom: 1px solid #CCC;
	}
	
	.menu nav > ul > li:first-child {
		margin-left: 60px;
	}
	
	.menu nav > ul > li > a {
		height: 60px;
		font-size: 10px;
		background-size: 30px 30px;
		background-position: center 10px;
		text-decoration: none;
		text-align: center;
		padding-top: 42px;
	}
	
	.menu nav li { border-left: 1px solid #CCC; }

	.menu nav ul ul {
		position: absolute;
		top: -40px;
		left: 0;
		background-color: rgba(0, 0, 0, 0.7);
		flex-wrap: wrap;
	}
	
	.menu nav ul ul li {
		flex-grow: 1;
	}
	
	.menu nav ul ul a {
		padding: 0;
		height: 40px;
		font-size: 14px;
		display: flex;
		justify-content: center;
		align-items: center;
		color: white;
		text-decoration: none;
	}

	/* grid layout table */
	table.grid { grid-template-columns: repeat(4, auto); }
	table.grid th[colspan="2"] { grid-column: auto / span 2; }
	table.grid th[rowspan="2"] { grid-row: auto / span 2; }
	.sp_bb_dashed td { border-bottom: 1px dashed #CCC; }
}

@media screen and (min-width: 768px) {
	.sp_only { display: none; }
	.graph { height: 400px; margin-bottom: 40px; }
	.graph.half { width: calc(50% - 20px); margin: 0 10px 20px 10px; }
	body { padding-top: 60px; }
	header { padding: 0 20px; height: 60px; }
	header h1 { font-size: 26px; }
	header p { font-size: 14px; }
	footer { height: 60px; }
	main { min-height: calc(100% - 60px); padding: 20px; position: relative; }
	section { width: 1024px; margin: 0 auto; }
	h2 { font-size: 20px; margin-bottom: 20px; }
	#dataTable { margin-bottom: 40px; }
	:where(th, td) { padding: 10px 20px; }
	
	.menu {
		position: absolute;
		left: 0;
		top: 0;
		border-right: 1px solid #CCC;
		width: 100px;
		height: 100%;
		-webkit-backdrop-filter: blur(5px);
		backdrop-filter: blur(5px);
	}
	
	.menu h2 {
		border-bottom: 1px solid #CCC;
	}
	
	.menu h2 a {
		display: block;
		padding: 10px 0 5px 0;
	}
	
	.menu h2 figure { margin: 0 auto; }
	.menu nav li { border-bottom: 1px solid #CCC; }
	
	.menu nav li a {
		padding: 40px 10px 5px 10px;
		background-size: 25px 25px;
		background-position: center 8px;
	}

	.menu nav li li {
		border-top: 1px dashed #CCC;
		border-bottom: none;
	}
	
	.menu nav li li a {
		position: relative;
		padding: 10px;
	}

	/* grid layout table */
	table.grid { grid-template-columns: repeat(7, auto); }
}
