/*------------------------------------------------------------------------------
	共通
------------------------------------------------------------------------------*/
html, body	{
	padding: 0px;
	margin: 0px;
	height: 100%;
	color: #333;
}

html, body *	{
	min-width: 0;
}

body	{
	min-width: var(--site-min-width);
	margin: 0;
	padding: 0;
}

form {
	display: inline;
}

input[type=text], input[type=password], select, textarea {
	padding: 5px;
	border: 1px solid #707070;
}

input[type=text], input[type=password], select {
	height: 30px;
}

select {
	background: white;
}
/*------------------------------------------------------------------------------
	ボタン
------------------------------------------------------------------------------*/
.btn-or {
	min-width: 120px;
	padding: 7px 10px;
	border-radius: 4px;
	background: var(--main-button-bgcolor, #3D6B99);
	border: 1px solid var(--main-button-bgcolor, #3D6B99);
	color: white;
	font-size: 14px;
	text-align: center;
	cursor: pointer;
	display: inline-block;
	line-height: 1;
}

.btn-or.small {
	min-width: 60px;
    padding: 5px;
}

.btn-or.red {
	background: red;
	border: 1px solid red;
}

.btn-or.orange {
	background: #F9A410;
	border: 1px solid #F9A410;
}

.btn-or.red.rev {
	background: white;
	color: red;
}

.btn-or.disabled {
	background: #ccc;
    border-color: #ccc;
}

.btn-or.white.white {
	color: var(--main-button-bgcolor, #3D6B99);
	background: white;
}
/*------------------------------------------------------------------------------
	リンク
------------------------------------------------------------------------------*/
a.blue {
	color: #0000EE;
}
/*------------------------------------------------------------------------------
	必須・任意
------------------------------------------------------------------------------*/
.require {
	position: relative;
}

.require::after {
	content: '\5fc5\9808';
	right: 0;
	padding: 3px 5px;
	background: red;
	color: white;
	font-size: 12px;
	display: inline-block;
	position: absolute;
	border-radius: 3px;
	margin: -3px 0 0;
}

.any {
	position: relative;
}

.any::after {
	content: '\4efb\610f';
	right: 0;
	padding: 3px 5px;
	background: #707070;
	color: white;
	font-size: 12px;
	display: inline-block;
	position: absolute;
	border-radius: 3px;
	margin: -3px 0 0;
}
/*------------------------------------------------------------------------------
	エラーメッセージ
------------------------------------------------------------------------------*/
.error {
	color: red;
	font-size: 12px;
}
/*------------------------------------------------------------------------------
	ボタン
------------------------------------------------------------------------------*/
button:disabled {
	background: #aaa !important;
    cursor: auto !important;
}
/*------------------------------------------------------------------------------
	その他
------------------------------------------------------------------------------*/
.input-guide {
	margin-top: 5px;
	color: #707070;
	font-size: 12px;
}
/*------------------------------------------------------------------------------
	アイコン
------------------------------------------------------------------------------*/
.fill-circle.blue::before {
	color: #fff;
	font-size: 18px;
	padding: 6px;
    border-radius: 50%;
    margin: 0 5px 0 0;
	background-color: var(--main-color, blue);
}

.solid-circle.blue::before {
	color: var(--main-color, blue);
    font-size: 12px;
    border: 1px solid var(--main-color, blue);
    border-radius: 50%;
    padding: 2px 3px;
    margin: 0 3px 0 0;
}
/*------------------------------------------------------------------------------
	タブメニュー
------------------------------------------------------------------------------*/
.tab {
	display: flex;
    align-items: center;
    border-bottom: 2px solid var(--main-border-color, #D5D5D5);
}

.tab > li {
	color: #CCCCCC;
    width: 160px;
    text-align: center;
    padding: 13px 0;
    background: #F2F2F2;
    margin: 0 5px 0 0;
    border-radius: 5px 5px 0px 0px;
    cursor: pointer;
}

.tab > li.active {
	color: #fff;
	background: var(--main-color, #3D9959);
}

.tab.black > li.active {
	background: #666666;
}
/*------------------------------------------------------------------------------
	テーブル（主にマスタで使用）
------------------------------------------------------------------------------*/
.vm-guide {
    padding: 20px;
    background: white;
    border: 1px solid #707070;
    line-height: 2;
}

.vm-require {
    margin-top: 20px;
    padding-top: 10px;
    background: white;
    border: 1px solid #707070;
}

.vm-require td > span {
    width: 170px;
    padding-right: 10px;
    font-size: 14px;
    font-weight: bold;
    display: inline-block;
}

.vm-require > div:last-of-type {
    margin-top: 10px;
    padding: 20px;
    background: #F2F2F2;
    text-align: center;
}

.vm-data-wrap {
    justify-content: space-between;
    display: flex;
}

.vm-data-wrap table:not(.pager) td {
    padding: 10px 5px;
}

.vm-data-wrap select {
    /* width: 100%; */
    height: 30px;
}

.vm-data-wrap .append,
.vm-data-wrap .remove {
    width: 75%;
}

.vm-data-wrap > li {
    width: 49.5%;
    margin-top: 20px;
}

.vm-data-wrap > li:first-of-type table:not(.pager) tbody td {
    border-bottom: 1px solid #ccc !important;
}

.vm-data-main {
    margin-top: 20px;
    padding: 20px;
    border: 1px solid #707070;
    background: #fff;
}

.vm-list table:not(.pager) tbody td {
	border-bottom: 1px solid #ccc !important;
}

.vm-func {
    visibility: hidden;
}

.vm-func > a {
    width: 50px;
}

.vm-detail-icon {
    margin-right: 5px;
    padding: 3px 5px;
    border: 1px solid #707070;
}

.require::after,
.any::after {
    right: 20px;
}

.password-wrap {
    display: flex;
}

.password-wrap > div:first-of-type {
    width: 300px;
    border: 1px solid #707070;
}

.password-wrap > div:first-of-type input {
    width: 275px;
    border: none;
}

.password {
    width: 75px;
    margin-left: 10px;
    padding: 8px;
}
/*------------------------------------------------------------------------------
	メイン画面コンテンツ
------------------------------------------------------------------------------*/
.content-wrap {
	display: flex;
	flex-direction: row;
}

.content-wrap.popup {
	flex-direction: column;
}

.content-wrap.popup > .list {
	flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.content-wrap.popup > .list > div {
	flex: 1;
	overflow-y: auto;
	/*
	height: 100%;
    display: flex;
    flex-direction: column;
    */
}

/*
.content-wrap.popup > .list > div > div {
	flex: 1;
    overflow-y: auto;
}
*/

.frame,
.content-wrap > .left > div,
.content-wrap > .right > div {
	padding: 10px;
    border: 1px solid #D5D5D5;
    border-radius: 5px;
    background: white;
}

.frame-gray {
	background: #F9F9F9;
    padding: 5px 10px;
}

.content-wrap .search {
	padding: 0;
}

.content-wrap .search > div {
	padding: 10px;
}

.content-wrap > .left,
.content-wrap > .right {
	flex: 1;
	overflow-y: auto;
	-ms-overflow-style: none;
	scrollbar-width: none;
}

.content-wrap > .left::-webkit-scrollbar,
.content-wrap > .right::-webkit-scrollbar {
	display:none;
}

.content-wrap .search > .footer {
	display: flex;
    align-items: center;
    justify-content: center;
    background: var(--main-gray-bgcolor, #F2F2F2);
    padding: 7px 10px;
    border-radius: 0 0 5px 5px;
}

.content-wrap .search > .footer > .fa-magnifying-glass::before {
	font-size: 15px;
	margin: 0 5px 0 0;
}

.content-wrap .search > .footer > .fa-xmark {
	display: flex;
    align-items: center;
}

.content-wrap .search > .footer > .fa-xmark::before {
	color: var(--main-button-bgcolor, #3D6B99);
    font-size: 25px;
    margin: 0 5px 0 0;
}

.content-wrap > .left > .list {

}

.content-wrap > .left + .right {
	margin: 0 0 0 20px;
}

.content-wrap > .right > .main {

}

.content-wrap > .right > .main > .info {
	padding: 10px 5px;
	background: var(--main-gray-bgcolor, #F2F2F2);
}

.content-wrap > .right > .main > .info > span {
	display: inline;
}
.scroll-content{
    overflow-y: auto;
    -ms-overflow-style: none;
    scrollbar-width: none;
    height: calc(-140px + 100vh);
}
/*------------------------------------------------------------------------------
	背景色ボックス
------------------------------------------------------------------------------*/
.fill_box {
	padding: 10px;
    background: #efefef;
}
/*------------------------------------------------------------------------------
	フォーム付のテーブル
------------------------------------------------------------------------------*/
table.horizontal td > div {
	display: flex;
    align-items: center;
}

table.horizontal td > div > span {
    margin: 0 10px 0 0;
}

table.horizontal.sb-width-85 td > div > span {
	width: 85px;
}

table.horizontal.sb-width-95 td > div > span {
	width: 95px;
}

table.horizontal td > div > input,
table.horizontal td > div > select,
table.horizontal td > div > div {
	flex-grow: 1;
}

table.horizontal.sb-width-85 td > div > input,
table.horizontal.sb-width-85 td > div > select,
table.horizontal.sb-width-85 td > div > div {
	width: calc(100% - 85px);
}

table.horizontal.sb-width-95 td > div > input,
table.horizontal.sb-width-95 td > div > select,
table.horizontal.sb-width-95 td > div > div {
	width: calc(100% - 95px);
}

@media screen and (max-width: 960px) {
	.content-wrap {
	    flex-direction: column;
	}

	.content-wrap > .left {
		margin: 0;
	}

	.content-wrap > .right {
		margin: 20px 0 0;
	}

	.content-wrap > .right > .main > .info > span {
		display: none;
	}
}

.tr_all_bg_gray	{
	background-color: #FAFAFA;
}

.tr_all_bg_gray input,
.tr_all_bg_gray select {
	background-color: transparent;
}
/*------------------------------------------------------------------------------
	テーブルの縞模様
------------------------------------------------------------------------------*/
table.striped > tbody > tr:nth-child(even) {
	background: #F9F9F9;
}
/*------------------------------------------------------------------------------
	左側に緑のボーダーがついたサブジェクト
------------------------------------------------------------------------------*/
.left-band-subject {
	color: var(--main-font-color, #666666);
    font-weight: bold;
    border-left: 5px solid var(--main-color, #3D9959);
    padding: 5px;
    display: flex;
    align-items: center;
}

.left-band-subject .accordion-wrap {
	color: #CCCCCC;
    font-weight: normal;
    margin: 0 0 0 30px;
    cursor: pointer;
}

.left-band-subject .accordion-wrap .icon {
	color: #fff;
    background-color: var(--main-color, #707070);
    border-radius: 50%;
    padding: 3px 4px;
    margin: 0 3px 0 0;
}
/*------------------------------------------------------------------------------
	キーコード検索のスタイル
------------------------------------------------------------------------------*/
/*
.search-keycode-wrap {
	display: flex;
}

.search-keycode-wrap > div:not(:first-of-type) {
	margin: 0 0 0 5px;
}

.search-keycode-wrap > div, .search-keycode-wrap > div:first-of-type > div {
	display: flex;
    flex-direction: column;
    justify-content: space-around;
}

.search-keycode-wrap > div:first-of-type > div {
	display: flex;
	align-items: center;
}

.search-keycode-wrap > div:last-of-type > div:first-of-type > a, .search-keycode-wrap > div:last-of-type > div:last-of-type > a {
	font-size: 13px;
    min-width: 45px;
    padding: 2px;
}

.search-keycode-wrap > div:not(:first-of-type, :last-of-type) > div:last-of-type {
	width: 100%;
	height: 20px;
	font-size: 13px;
    margin: 3px 0 0;
    border: 1px solid #707070;
    display: flex;
    align-items: center;
    justify-content: center;
}
*/
.key_code_wrap {
	display: flex;
    align-items: center;
}

.key_code_wrap > .code {
	width: 40px;
    height: 30px;
    border: 1px solid #707070;
    margin: 0 5px 3px 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.key_code_wrap > .reflection {
	min-width: 45px;
    padding: 3px;
}
/*------------------------------------------------------------------------------
	特性試験の測定項目の印のスタイル
------------------------------------------------------------------------------*/
.measurement-items-wrap {
	position: relative;
	width: 250px;
}

.measurement-items-wrap > .wrap {
	border: 1px solid #D5D5D5;
    padding: 5px;
    margin: 5px 0 0;
}

.measurement-items-wrap > .wrap > .row {
	display: flex;
    align-items: center;
    margin: 0 0 5px;
}

.measurement-items-wrap > .wrap > .row:last-of-type {
	margin: 0;
}

.measurement-items-wrap > .wrap > .row > .mark {
	font-size: 16px;
	margin: 0 5px 0 0;
}
/*------------------------------------------------------------------------------
	採油量のスタイル
------------------------------------------------------------------------------*/
.oil-extraction-amount-wrap {
	flex: 1;
	max-width: 500px;
	display: flex;
    flex-direction: column;
}

.oil-extraction-amount-wrap > .wrap {
	flex-grow: 1;
	border: 1px solid #D5D5D5;
    padding: 5px;
    margin: 5px 0 0;
}

.oil-extraction-amount-wrap > .wrap > .row {
	display: flex;
    align-items: center;
    margin: 0 0 10px;
    line-height: 20px;
}

.oil-extraction-amount-wrap > .wrap > .row:last-of-type {
    margin: 0;
}

.oil-extraction-amount-wrap > .wrap > .row > .detail + .detail {
	margin: 0 0 0 50px;
}
.other-info-wrap > .header {
	display: flex;
    padding: 20px 0 0;
    margin: 20px 0 0;
    border-top: 1px solid #d5d5d5;
}

.other-info-wrap > .header > .item {
	margin-bottom: 5px;
}
/*------------------------------------------------------------------------------
	注文依頼書のスタイル
------------------------------------------------------------------------------*/
.order-request > tbody td {
	padding: 5px;
}

.order-request > tbody td input[type='text'] {
	border-color: #D5D5D5;
}

.order-request > tbody td input[type='text']:read-only:not([name='inspection_date'])  {
	border:none;
}

.order-request > tbody td select[name='class'] {
	max-width: unset;
	appearance: none;
    text-align: center;
    border-color: #D5D5D5;
}

.order-request > tbody td > .btn-circle {
	color: #3D6B99;
    font-size: 20px;
    cursor: pointer;
}
/*------------------------------------------------------------------------------
	作業予定カレンダーのスタイル
------------------------------------------------------------------------------*/
.calendar-wrap {
	border: unset !important;
    padding: 0 !important;
    margin: 20px 0 0;
}

.calendar-wrap > .header {
	display: flex;
    align-items: center;
}

.calendar-wrap > .header > div:first-of-type {
	color: #666666;
    font-size: 17px;
    font-weight: bold;
    margin: 0 10px 0 0;
}

.calendar-wrap > .header > div:last-of-type {
	display: flex;
    align-items: center;
}

.calendar-wrap > .header > div > a {
	width: 20px;
    height: 20px;
    color: #3D6B99;
    font-size: 13px;
    border: 1px solid #3D6B99;
    border-radius: 3px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.calendar-wrap > .header > div > a.current {
	color: #fff;
	width: 40px;
	background: #3D6B99;
	margin: 0 5px;
}

.calendar-wrap > .tb_calendar {

}

.calendar-wrap > .tb_calendar > thead > tr > th {
	padding: 10px 5px;
}

.calendar-wrap > .tb_calendar > thead > tr th.saturday {
	color: #3D6B99;
}

.calendar-wrap > .tb_calendar > thead > tr th.sunday {
	color: #F91010;
}

.calendar-wrap > .tb_calendar > tbody > tr > td.saturday {
	background: #EBF7FF;
}

.calendar-wrap > .tb_calendar > tbody > tr > td.sunday {
	background: #FFEBEE;
}

.calendar-wrap > .tb_calendar > tbody > tr > td.today {
	background: #FFFACD;
}

.calendar-wrap > .tb_calendar > tbody > tr > td {
	vertical-align: top;
}

.calendar-wrap > .tb_calendar > tbody > tr > td > div.content {
	min-height: 80px;
	margin: 5px 0 0;
}

.calendar-wrap > .tb_calendar > tbody > tr > td > div.content > a.analysis {
	padding: 10px 5px;
    background: #E6EFC2;
    margin: 0 0 10px;
    display: block;
    cursor: pointer;
}

.calendar-wrap > .tb_calendar > tbody > tr > td > div.content > a.analysis:last-of-type {
	margin: 0;
}

.calendar-wrap > .tb_calendar > tbody > tr > td > div.content > a.analysis:hover {
	opacity: 0.7;
}

.calendar-wrap > .tb_calendar > tbody > tr > td > div.content > a.analysis > span {
	font-size: 13px;
    display: block;
    margin: 0 0 5px;
}
/*------------------------------------------------------------------------------
	地区呼称のスタイル
------------------------------------------------------------------------------*/
.region-wrap {
	display: flex;
	align-items: center;
}
/*------------------------------------------------------------------------------
	アップロードのスタイル
------------------------------------------------------------------------------*/
.upload-content {
	counter-reset: number 0;
}

.upload-content .number::before {
	counter-increment: number 1;
	content: counter(number);
}

.btn-or.fa-upload::before {
	margin: 0 5px 0 0;
}

.btn-or.fa-upload > input[type="file"] {
	display: none;
}
/*------------------------------------------------------------------------------
	受注分類マーク
------------------------------------------------------------------------------*/
.item_type_mark{
    display: inline-block;
    height: 30px;
    width: 30px;
    line-height: 31px;
    text-align: center;
    border-radius: 50%;
    color: white;
    background-color: #8d8d8d;
}
.source_type_mark{
	display: inline-block;
	height: 40px;
	width: 40px;
	line-height: 17px;
	padding: 3px 0;
	border: 1px solid #ccc;
	text-align: center;
	border-radius: 5px;
	font-size: 1.2rem;
}
/*------------------------------------------------------------------------------
	ホバー表示
------------------------------------------------------------------------------*/
.op-tooltips {
	display: none;
	position: absolute;
	z-index: 9999;
	width: auto;
	max-width: 300px;
	min-width: 60px;
	height: auto;
	padding: 0.3em 0.5em;
	color: #FFFFFF;
	font-size: 13px;
	background: #333;
	border-radius: 0.5em;
}
.op-tooltips-tail_left:after {
	width: 25px;
	content: "";
	display: block;
	position: absolute;
	left: 0.5em;
	top: -8px;
	border-top:8px solid transparent;
	border-left:8px solid #333;
/*
	left: -4.5em;
	top: -21px;
	border-top:12px solid transparent;
	border-left:23px solid #333;
	transform: rotate(215deg);
*/
}

.op-tooltips-tail_right:after {
	width: 25px;
	content: "";
	display: block;
	position: absolute;
	right: -0.5em;
	top: -8px;
	border-top:8px solid transparent;
	border-left:8px solid #333;
/*
	left: -4.5em;
	top: -21px;
	border-top:12px solid transparent;
	border-left:23px solid #333;
	transform: rotate(215deg);
*/
}

.item_type_mark.small{
	scale: 0.9;
	font-size: 10px;
	height: 20px;
	width: 20px;
	line-height: 20px;
}
.lh_20{	
	line-height: 20px;
	min-height: 20px;
}