/*------------------------------------------------------------------------------
	共通
------------------------------------------------------------------------------*/
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], input[type=number], select, textarea {
	padding: 5px;
	border: 1px solid #D5D5D5;
	border-radius: 5px;
}

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

select {
	background: white;
}
/*------------------------------------------------------------------------------
	ボタン
------------------------------------------------------------------------------*/
.btn-or {
	min-width: 120px;
	padding: 9px 10px;
	height: 36px;
	border-radius: 18px;
	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.middle {
	min-width: 90px;
    padding: initial;
	line-height: 36px;
}

.btn-or.little {
	min-width: 60px;
    padding: 5px;
	height: 24px;
}

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

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

.btn-or.rev {
	background: white;
	color: var(--main-color, #3D6B99);
}

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

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

.btn-or.white.white {
	color: var(--main-button-bgcolor, #3D6B99);
	background: white;
}

.btn-or.delete {
	background: #F5F5F5;
    border-color: #939598;
    color: #939598;
}

.btn-or.password {
	color: #11B7A8;
	background: #D9F3F1;
	border: 1px solid #11B7A8;
	border-radius: 5px;
}

.btn-or.popup {
	width: 50px;
	height: 30px;
	min-width: unset;
	vertical-align: middle;
	color: #11B7A8;
	background: #D9F3F1;
	border: 1px solid #11B7A8;
	border-radius: 5px;
}

.btn-or.numbering {
	width: 80px;
	height: 30px;
	min-width: unset;
	vertical-align: middle;
	color: #11B7A8;
	background: #D9F3F1;
	border: 1px solid #11B7A8;
	border-radius: 5px;
}

.btn-action {
    min-width: unset;
    width: 100%;
    height: 30px;
    vertical-align: middle;
    color: #11B7A8;
    background: #D9F3F1;
    border: 1px solid #11B7A8;
    border-radius: 5px;
    padding: 5px 10px;
    cursor: pointer;
}
/*------------------------------------------------------------------------------
	リンク
------------------------------------------------------------------------------*/
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;
}

.require_icon::after {
	content: '\5fc5\9808';
	padding: 3px 5px;
	background: red;
	color: white;
	font-size: 12px;
	display: inline-block;
	border-radius: 3px;
	margin-left: 20px;
}

.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;
}

.any_icon::after {
	content: '\4efb\610f';
	padding: 3px 5px;
	background: #707070;
	color: white;
	font-size: 12px;
	display: inline-block;
	border-radius: 3px;
	margin-left: 20px;
}
/*------------------------------------------------------------------------------
	エラーメッセージ
------------------------------------------------------------------------------*/
.error {
	color: red;
	font-size: 12px;
}
/*------------------------------------------------------------------------------
	ボタン
------------------------------------------------------------------------------*/
button:disabled {
	background: #aaa !important;
    cursor: auto !important;
}
/*------------------------------------------------------------------------------
	その他
------------------------------------------------------------------------------*/
.input-guide {
	margin-top: 5px;
	color: #707070;
	font-size: 12px;
}

.radio {
	cursor: pointer;
}
/*------------------------------------------------------------------------------
	アイコン
------------------------------------------------------------------------------*/
.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-errmg {
    margin-top: 20px;
    padding-top: 10px;
	color: red;
    background: white;
/*    border: 1px solid #707070;*/
}

.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-data-edit {
    margin-top: 20px;
    padding: 20px;
    background: #fff;
}

.vm-data-edit h2 {
	margin-right: 10px;
    padding-left: 5px;
    border-left: 5px solid var(--main-color);
    font-weight: bold;
    display: inline-block;
    font-size: 16px;
}

.vm-data-edit div ul {
	margin: 20px 0;
}

.vm-data-edit div ul li:first-of-type {
	font-weight: bold;
	padding-bottom: 5px;
}

.vm-data-edit-func {
	background: #EAEAEA;
	padding: 10px 0;
}

.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;*/
    border: 1px solid #D5D5D5;
	border-radius: 5px;
}

.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.sb-width-120 td > div > span {
	width: 120px;
	font-weight: bold;
}

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);
}

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

@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;
}
/*------------------------------------------------------------------------------
	アップロードのスタイル
------------------------------------------------------------------------------*/
.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;
}
/*------------------------------------------------------------------------------
	検索条件
------------------------------------------------------------------------------*/
.search-condition-wrap {
	padding: 0 20px 20px 20px;
	border-radius: 5px 5px 0 0; 
	flex-wrap: wrap;
    display: flex;
}

.search-condition-wrap > li {
	margin: 15px 20px 0 0;
}

.search-condition-wrap p {
	margin-bottom: 5px;
	font-weight: bold;
}

.search-condition-wrap .bg_wrap {
	background: #F5F5F5;
	width: 200px;
	height: 30px;
	line-height: 30px;
	border-radius: 5px;
}

.search-func {
	padding: 5px 0;
	background: #F2F4F5;
	border-top: 1px solid #ccc;	
	border-radius: 0 0 5px 5px; 
	text-align: center;
}

.search-func {
	padding: 5px 0;
	background: #F2F4F5;
	border-top: 1px solid #ccc;	
	border-radius: 0 0 5px 5px; 
	text-align: center;
}

.search-func > a {
	font-size: 14px;
	cursor: pointer;
}

.search-func > a.search {
	height: 36px;
	padding: 0 20px;
	background: #0075B5;
	border: 1px solid #0075B5;
	border-radius: 5px;
	color: white;
	line-height: 36px;
	display: inline-block;	
}

.search-func > a.search::before {
	content: '\f002';
	font-family: 'FontAwesome';
	margin-right: 5px;
}

.search-func > a.clear::before {
	content: '\f057';
	font-family: 'FontAwesome';
	margin-right: 5px;
	color: #0075B5;
	font-size: 16px;
	vertical-align: middle;
}
/*------------------------------------------------------------------------------
	fontawesome
------------------------------------------------------------------------------*/
.fa-solid.fa-circle-xmark {
	color: var(--main-button-bgcolor, #3D6B99);
	vertical-align: middle;
}

.scroll-wrap {
    overflow: scroll;
    overflow-x: hidden;
    overscroll-behavior: none;
}
/*------------------------------------------------------------------------------
	タグ
------------------------------------------------------------------------------*/
ul.tags {
	background-color: white;
	padding: 10px;
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
}

ul.tags li {
	min-width: unset;
    height: 30px;
    vertical-align: middle;
    color: #11B7A8;
    border: 1px solid #11B7A8;
    border-radius: 5px;
    padding: 0px 10px;
	line-height: 30px;
}

/*------------------------------------------------------------------------------
	操作ボタン
------------------------------------------------------------------------------*/
.operations > i {
	color: var(--main-color, #3D9959);
}
/*------------------------------------------------------------------------------
	行数制限
------------------------------------------------------------------------------*/
.line-clamp-1 {
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.line-clamp-2 {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.line-clamp-3 {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}