.invalid::before {
    content: "必須項目です";
    width: fit-content;
    font-size: 90%;
    font-weight: bold;
    display: block;
    border: 1px solid #c00;
    border-radius: 0.5rem;
    background-color: rgb(255, 240, 240);
    color: #c00;
    padding: 0.125rem 0.25rem;
}

body.bg-gray-50,
body.bg-gray-100 {
	background-color: #0F3959;
}

header #logo a {
	display: flex;
	align-items: center;
}
header #logo a img {
	flex-basis: 48px;
	height: 48px;
	margin-right: 8px;
}

h2 {
	vertical-align: middle;
}

span.daimon {
	display: inline-block;
	width: 24px;
	height: 24px;
	line-height: 20px;
	font-size: 17px;
	text-align: center;
	border: solid 2px #000;
	border-radius: 4px;
}

h2 span.daimon {
	margin-right: 4px;
}

/* 入力説明画面 */
h3.inst {
	font-size: 20px;
	border-bottom: solid 1px #999;
	margin: 16px 0;
}
p span.daimon {
	margin: 0 4px 8px;
}

p span.px-3,
p span.px-5 {
	margin: 8px 4px;
	display: inline-block;
}

/* 管理者画面 */
#tablecon {
	width: 100%;
	overflow-x: auto;
	border: solid #d1d5dc;
	border-width: 0 1px;
}

#tablecon tbody tr:nth-of-type(even) {
	background-color: #F5F5F5;
}