@charset "UTF-8";

/* 基本スタイル */

html, body {
	width: max-content;
	min-width: 100%;
	padding: 0;
	margin: 0;
	color: #696969;
	background-color: #5c87b2;
	font-family: "Trebuchet MS", Verdana, Helvetica, Sans-Serif;
}
@media only screen and (max-width: 480px) {
	html, body {
		font-size: 0.8em;
	}
}

header {
	box-sizing: border-box;
	padding: 10px;

	color: white;
}

/* 固定ヘッダー */
.sticky-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background-color: #eec98f;
}

/* 開発環境バッジ */
.env-badge {
	display: inline-block;
	margin-left: 10px;
	padding: 6px 12px;
	font-size: 14px;
	font-weight: bold;
	border-radius: 4px;
	text-transform: uppercase;
	letter-spacing: 1px;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
	animation: pulse 2s ease-in-out infinite;
}

.env-badge-local {
	background-color: #dc3545;
	color: white;
	border: 2px solid #ff0000;
}

.env-badge-staging {
	background-color: #ffc107;
	color: #000;
	border: 2px solid #ff9800;
}

@keyframes pulse {
	0%, 100% {
		opacity: 1;
		transform: scale(1);
	}
	50% {
		opacity: 0.9;
		transform: scale(1.05);
	}
}

header .container {
	margin-left: 200px;
}
@media only screen and (max-width: 480px) {
	header .container {
		margin-left: 0;
	}
}

header h1 {
	margin: 0;
	font-size: 24px;
}

h2 {
	font-size: 1.4rem;
}

header .welcome {
	margin: 0;
	text-align: right;
}

#content {
	clear: both;
	overflow: hidden;
	box-sizing: border-box;
	min-width: 1440px;
}
@media only screen and (max-width: 480px) {
	#content {
		min-width: auto;
	}
}

nav {
	float: left;
	min-width: 120px;
	padding-right: 0.5rem;
}
@media only screen and (max-width: 480px) {
	nav {
		float: none;
		padding-right: 0;
	}
}
nav ul {
	padding: 0;
	margin: 0;
	margin-bottom: 0.5rem;
}
nav ul li {
	list-style-type: none;
}
nav ul li a {
	display: block;
	margin-bottom: 3px;
	background-color: #e8eef4;
	text-decoration: none;
	color: blue;
	font-weight: bold;
	font-size: 13px;
	padding: 10px;
	border-radius: 5px;
}

#main-header {
	margin-bottom: 0.5rem;
	clear: both;
	overflow: hidden;
}

.sub-menu {
	float: left;
	padding: 0;
	margin: 0;
	font-size: 0;
}

.sub-menu li {
	list-style-type: none;
	display: inline-block;
	margin: 2px;
}

.sub-menu li a {
	display: block;
	font-size: 0.8rem;
	min-width: 6rem;
	padding: 0 0.4rem;
	border: solid 1px #98b7e0;
	border-radius: 5px;
	text-align: center;
	background-color: #e8eef4;
	color: blue;
}

.created-data {
	float: right;
	border-bottom: silver 1px solid;
	margin-right: 2rem;
}

ul#nav-date {
	padding: 0;
	margin: 0;

	font-size: 0;
}
ul#nav-date li {
	list-style-type: none;
	display: inline-block;
	margin: 0 0.1rem;
	border-radius: 5px;
	font-size: 0.9rem;
}
ul#nav-date li.now {
	border: 1px solid #e0e0e0;
}
ul#nav-date li.here {
	padding: 0 5px;
	background-color: antiquewhite;
}
ul#nav-date li a {
	padding: 5px;
	border-radius: 5px;
	text-decoration: none;
}
ul#nav-date li a:hover {
	background-color: #f0f0f0;
}

main {
	padding: 10px;
	min-height: 800px;
	min-width: 1300px;
	background-color: white;
	border-radius: 10px;
	overflow: hidden;
}
@media only screen and (max-width: 480px) {
	main {
		min-height: auto;
		min-width: auto;
	}
}

footer {
	text-align: center;
	color: white;
}

p {
	margin-bottom: 0.5rem;
}

main ol, main ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
main ol.disc, main ul.disc {
	list-style: disc;
	padding-left: 1rem;
}

ul.side-list {
	font-size: 0;
}
ul.side-list li {
	display: inline-block;
	font-size: 1rem;
}

dl.side-list {
	margin: 0;
	font-size: 0;
}
dl.side-list dt, dl.side-list dd {
	display: inline-block;
}
dl.side-list dt {
	margin-right: 0.1rem;
	font-size: 0.85rem
}
dl.side-list dd {
	margin: 0;
	margin-right: 0.5rem;
	font-size: 0.75rem;
}

ul.list-table > li:not(:last-child) {
	border-bottom: 1px dotted #CCC;
}
ul.list-table > li dl {
	width: 100%;
	margin: 0;
	clear: both;
	overflow: hidden;
}
ul.list-table > li dl dt {
	float: left;
	width: 30%;
	font-weight: bold;
}
ul.list-table > li dl dd {
	float: right;
	width: 70%;
}
ul.list-table > li dl dd ul:not(.side-list) li:not(:last-child){
	margin-bottom: 0.1rem;
	border-bottom: 1px dotted #CCC;
}

.table-container {
	display: table;
}
.table-header {
	clear: both;
	overflow: hidden;
}
.table-header form[name="paginator"] {
	float: left;
}

.table-header form[name="table_type"] {
	float: left;
	border-left: 1px solid silver;
	padding-left: 4px;
	vertical-align: top;
}

table {
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 5px;

	border-top: solid 1px #98b7e0;
	border-left: solid 1px #98b7e0;
}
table caption {
	padding: 0;
}
table.floatThead-table {
	border-bottom-left-radius: 0px;
	border-bottom-right-radius: 0px;
}
table tr:first-child > th:first-child, table tr:first-child > td:first-child { border-top-left-radius: 5px; }
table tr:first-child > th:last-child, table tr:first-child > td:last-child { border-top-right-radius: 5px; }
table:not(.has-rowspan) tbody > tr:last-child > th:first-child, table tbody > tr:first-child > th[rowspan]:first-child, table:not(.has-rowspan) tbody > tr:last-child > td:first-child { border-bottom-left-radius: 5px; }
table tbody > tr:last-child > th:last-child, table tbody > tr:last-child > td:last-child { border-bottom-right-radius: 5px; }
table thead + tbody > tr:first-child > th:first-child, table thead + tbody > tr:first-child > td:first-child { border-top-left-radius: 0; }
table thead + tbody > tr:first-child > th:last-child, table thead + tbody > tr:first-child > td:last-child { border-top-right-radius: 0; }
.table-radius-bl { border-bottom-left-radius: 5px; }

caption {
	caption-side: top;
}

th, td {
	border-right: solid 1px #98b7e0;
	border-bottom: solid 1px #98b7e0;
	padding: 0.25rem;
	font-size: 0.85rem;
	white-space: nowrap;
}
th.wrap, td.wrap {
	white-space: normal;
}
th {
	background-color: #edf5fe;
}
tr.pickup th, tr.pickup td {
	background-color: #fff3e6;
}

main table a i {
	transition: all 0.1s;
}
main table a:hover i {
	transform: scale(1.3);
}

main .cont {
	display: inline-block;
	vertical-align: top;
	margin: 0 0.5rem 1.5rem 0;
}
main .cont:last-child {
	margin-right: 0;
}

fieldset {
	padding: 0 0.5rem 0.5rem 0.5rem;
	border: 1px solid gray;
	border-radius: 5px;
}
legend {
	width: auto;
	max-width: none;
	padding: 0 0.5rem;
	margin-bottom: 0;
	font-size: 1.1rem;
}

label {
	margin: 0 0.2rem;
}

button, input, optgroup, select, textarea {
	line-height: normal;
}

input[type=text] {
	width: 9rem;
	border-radius: 3px;
	border: 1px solid silver;
}

input[type=checkbox],
input[type=radio] {
	margin-right: 3px;
	transform: translateY(1px);
}

select {
	min-width: 9rem;
	border-radius: 3px;
}

textarea {
	vertical-align: bottom;
}

button {
	border: 1px solid silver;
	border-radius: 5px;
	transition: all 0.1s;
}
button:not(:disabled):hover {
	border: 1px solid #0078D7;
	background-color: #E5F1FB;
}
button[name="save"] {
	min-width: 6rem;
	min-height: 2rem;
}
button.change {
	animation: button-change 0.8s ease 0s infinite alternate;
}
@keyframes button-change {
	0% {box-shadow: 0 0 10px 4px rgba(255,128,128,0.3) inset;}
	100% {box-shadow: 0 0 10px 4px rgba(255,128,128,0.9) inset;}
}

.char-count {
	margin: 0;
	text-align: right;
}

.alert-success ul {
	margin-bottom: 0;
}

/* 汎用スタイル */

.w-min { width: 2rem !important; min-width: 2rem !important; }
.w-small-xx { width: 3rem !important; min-width: 3rem !important; }
.w-small-x { width: 4rem !important; min-width: 4rem !important; }
.w-small { width: 6rem !important; min-width: 6rem !important; }
.w-middle-ss { width: 7rem !important; min-width: 7rem !important; }
.w-middle-s { width: 8rem !important; min-width: 8rem !important; }
.w-middle-l { width: 10rem !important; min-width: 10rem !important; }
.w-middle-ll { width: 11rem !important; min-width: 11rem !important; }
.w-large { width: 12rem !important; min-width: 12rem !important; }
.w-large-x { width: 16rem !important; min-width: 16rem !important; }
.w-large-xx { width: 20rem !important; min-width: 20rem !important; }
.w-max { width: 100% !important; min-width: 100% !important; }

.t-large { font-size: large; }

.required::after {
	content: "※";
	display: inline;
	color: red;
	vertical-align: bottom;
	margin-left: 0.2rem;
	font-size: 0.5rem;
}
.required:hover::before {
	content: "必須入力";
	position: absolute;
	display: block;
	padding: 0.3rem;
	margin-top: 0.2rem;
	margin-left: 0.5rem;
	border-radius: 0.5rem;
	color: white;
	background: #F008;
	font-size: 0.8rem;
}

.sub-required::after {
	content: "※";
	display: inline;
	color: blue;
	vertical-align: bottom;
	margin-left: 0.2rem;
	font-size: 0.5rem;
}
.sub-required:hover::before {
	content: "条件付き必須入力";
	position: absolute;
	display: block;
	padding: 0.3rem;
	margin-top: 0.2rem;
	margin-left: 0.5rem;
	border-radius: 0.5rem;
	color: white;
	background: #00F8;
	font-size: 0.8rem;
}

input.datepicker {
	width: 6rem;
	min-width: 6rem;
}
img.ui-datepicker-trigger {
	margin: 0 10px 2px 2px;
}
.ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year {
	min-width: 0;
}

img.icon {
	width: 32px;
	height: 32px;
	border-radius: 4px;
}
img.icon.small {
	width: 16px;
	height: 16px;
	border-radius: 2px;
}
input[type=checkbox] + img.icon {
	filter: contrast(50%);
}
input[type=checkbox]:checked + img.icon {
	filter: none;
}

table.search {
	margin-bottom: 1rem;
}
@media only screen and (max-width: 480px) {
	table.search {
		display: none;
	}
}

table.search th {
	min-width: 5rem;
	background-color: #E6E6E6;
	text-align: right;
}

table.data-list {
	border-collapse: collapse;
	font-size: 0.85rem;
}

table.data-list th {
	background-color: #edf5fe;
}

table.data-list th, table.data-list td {
	border: solid 1px #98b7e0;
}

table.search dl {
	margin: 0;
}
table.search dl dt {
	display: inline-block;
	padding: 0 0.4rem;
	margin-bottom: 0.1rem;
	border-radius: 0.5rem;
	border: 1px solid silver;
	cursor: pointer;
}
table.search dl dt:hover {
	border-color: #0078D7;
}
table.search dl dd {
	padding-left: 0.5rem;
	margin-bottom: 0.3rem;
}
table.search dl dd:last-child {
	margin-bottom: 0;
}
table.search dl dd label {
	padding: 0 0.4rem;
	border-radius: 0.5rem;
}
table.search button {
	min-width: 5rem;
}

.sort {
	font-family: "Font Awesome 5 Free";
	float: right;
	color: #007bff;
	cursor: pointer;
	margin-left: 0.5rem;
}
.sort:before {
	content: "\f0dc";
}
.sort.asc:before {
	content: "\f0dd";
}
.sort.desc:before {
	content: "\f0de";
}

#mask {
	display: none;
	position: fixed;
	z-index: 10000;
	top: 0px;
	left: 0px;
	width: 100%;
	height: 100%;

	background-color: rgba(255, 255, 255, 0.5);
}
#mask.loading {
	background-image: url('/img/loading-middle-b.png');
	background-repeat: no-repeat;
	background-position: center;
}
#mask.loading:before {
	content: '処理中……';
	position: absolute;
	top: 65%;
	left: 50%;
	font-size: 24px;
	font-weight: bold;
	transform: translateX(-50%);
}

.dialog {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 10001;

	width: -moz-fit-content;
	width: fit-content;
	height: -moz-fit-content;
	height: fit-content;

	padding: 10px;
	margin: auto;

	background-color: white;
	border: solid 1px #98b7e0;
	box-shadow:3px 3px 6px 0px rgba(0,0,0,0.5);
	border-radius: 5px;
}
.dialog .title {
	float: left;
}
.dialog .btn-close {
	float: right;
}

.btn-close {
	display: inline-block;
	width: 1.4rem;
	height: 1.4rem;
	border-radius: 3px;
	text-align: center;
	transition: background-color 0.2s;
}
.btn-close:hover {
	background-color: #f0f0f0;
}


ul.paginator-nav {
	padding: 0;
	margin: 0;
}
ul.paginator-nav li {
	display: inline-block;
	padding: 0 3px;
}
ul.paginator-nav li:not(:last-child) {
	border-right: 1px solid silver;
}

#msgbox {
	display: none;
	position: absolute;
	border-radius: 5px;
	border: 1px solid red;
	padding: 3px;
	background: white;
}
#msgbox::before {
	content: "";
	position: absolute;
	top: -20px;
	height: 0px;
	border: 9px solid transparent;
	border-bottom: 11px solid red;
}

.lump-input {
	cursor: pointer;
	transition: box-shadow 0.1s;
}
.lump-input:hover {
	box-shadow: 0 0 0 40px rgba(0,0,0,0.1) inset;
}
.lump-input::before {
	content: "all";
	float: right;
	margin-top: 0.2rem;
	margin-left: 0.2rem;
	padding: 0 2px;
	border: 1px solid silver;
	border-radius: 4px;
	font-size: 0.5rem;
}
.lump-input:hover::before {
	background-color: white;
}
.lump-input div.lump-input-tip {
	display: none;
	padding: 4px;
	border: 2px solid silver;
	border-radius: 4px;
	background-color: white;
}
.lump-input div.lump-input-tip.open {
	display: block;
	position: absolute;
	z-index: 10001;
	margin-top: -4px;
	margin-left: 3px;
}
.lump-input div.lump-input-tip.open::before {
	content: "ALL:";
	margin-right: 5px;
}
.lump-input div.lump-input-tip input, .lump-input div.lump-input-tip select, .lump-input div.lump-input-tip button {
	display: none;
}
.lump-input  div.lump-input-tip.open input, .lump-input div.lump-input-tip.open select, .lump-input div.lump-input-tip.open button {
	display: inline-block;
}
.lump-input div.lump-input-tip input + button {
	margin-left: 0.2rem;
}
.lump-input div.lump-input-tip button[name=serial] {
	line-height: 1rem;
}

a.del {
	color: #ff6060;
}
a.del:hover {
	color: #ffc0c0;
}

.blue { color: #007bff; }
.red { color: red; }
.orange { color: orange; }
.open-soon { background-color: #7030A0; color: white; }
.closed { background-color: #FF0000; color: white; }
.surplus { color: blue; }
.deficit { color: red; }

.vf-fully { background-color: #00B0F0; color: white; }
.vf-half { background-color: #92D050; color: white; }
.vf-little { background-color: #FFFF00; color: #5c5c00; }
.vf-empty { background-color: #E6B8B7; color: #860000; }

.clearfix { clear: both; }

.t-left { text-align: left; }
.t-center { text-align: center; }
.t-right { text-align: right; }

.nobr { white-space: nowrap; }

.template {
	display: none;
}

.icon-checkbox input {
	display: none;
}

.radio-box > label {
	vertical-align: top;
}
.radio-box > label > input {
	display: none;
}
.radio-box > label > div {
	min-width: 100px;
	border: 1px solid gray;
	border-radius: 8px;
	background: #CCC;
	text-align: center;
	line-height: 1.3rem;
}
.radio-box > label > input:checked + div {
	background: #edf5fe;
	border-color: #98b7e0;
}

.print-only {
	display: none;
}

@media print{
	html, body {
		background-color: transparent;
	}

	header, nav, footer {
		display: none;
	}

	#content {
		padding: 0 !important;
	}

	main {
		width: auto;
		min-width: 0 !important;
		border-radius: 0;
	}

	main .cont {
		display: block;
		margin: 0.5rem 0 !important;
	}

	main > p, #sub-menu {
		display: none;
	}

	table {
		width: 100%;
	}

	th, td {
		white-space: normal;
	}

	input, textarea, select {
		border: 0 !important;
		outline: none;
	}

	input[type="text"], textarea, select {
		min-width: 0 !important;
	}

	button {
		display: none;
	}

	.w-middle-ss { width: auto !important; min-width: 0 !important; }
	.w-middle-s { width: auto !important; min-width: 0 !important; }
	.w-middle-l { width: auto !important; min-width: 0 !important; }
	.w-middle-ll { width: auto !important; min-width: 0 !important; }
	.w-large { width: auto !important; min-width: 0 !important; }
	.w-large-x { width: auto !important; min-width: 0 !important; }
	.w-large-xx { width: auto !important; min-width: 0 !important; }

	.print-only {
		display: block;
	}
}
@page { size:auto; }