/* ================================ *
 *	共通スタイル(IcCardManager引用)	*
 * ================================ */
body {
	padding-top: 0rem;
	padding-bottom: 45px;

	background-color: #FFFFFF;
	
	font-family: sans-serif;
	color: #4B5563;
}

form {
	margin: 0;
}

hr {
	margin: 15px 0;
	border: 0;
	border-top: 1px solid #cccccc;
	border-bottom: 1px solid #ffffff;
}

/* ウインドウ最小幅指定 */
.fixed-minimum {
	/* 以下の幅 ＋ 右の余白20px ＋ 右の余白20px が横スクロールしない幅 */
	min-width: 560px;
}

/* contents */
.contents {
	margin-bottom: 1rem;
	margin-top: -0.5rem;
	padding: 0.5rem 1rem 2rem 1rem;
	border: 1px solid #cccccc;
	color: #4B5563;

	background-color: #fcfcfc;
	background-image: -moz-linear-gradient(top, #ffffff, #fafafa);
	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#fafafa));
	background-image: -webkit-linear-gradient(top, #ffffff, #fafafa);
	background-image: -o-linear-gradient(top, #ffffff, #fafafa);
	background-image: linear-gradient(to bottom, #ffffff, #fafafa);
	background-repeat: repeat-x;
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fffafafa',GradientType=0);

	-webkit-box-shadow: 0 .1rem .25rem rgba(0, 0, 0, 0.065);
	   -moz-box-shadow: 0 .1rem .25rem rgba(0, 0, 0, 0.065);
			box-shadow: 0 .1rem .25rem rgba(0, 0, 0, 0.065);

	-webkit-border-radius: .25rem;
	   -moz-border-radius: .25rem;
			border-radius: .25rem;
}

/* Bootstrap alert */
.alert {
	margin-bottom: .5rem;
}

/* Bootstrap accordion */
.accordion {
	margin-bottom: .5rem;
}

/* Bootstrap input-block-level */
input[type="file"].input-block-level {
	width: 100%;
}

/* 背景が透明なボックス */
.block, .search {
	min-height: 2rem;
	margin-bottom: .5rem;
	border: 1px solid #0056B3 !important;
	/* background-color: rgb(252, 252, 252); */
	background-color: #FFFFFF;
	/* background-image: -moz-linear-gradient(top, #ffffff, #fafafa);
	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(rgb(255, 255, 255)), to(rgb(250, 250, 250)));
	background-image: -webkit-linear-gradient(top, rgb(255, 255, 255), rgb(250, 250, 250));
	background-image: -o-linear-gradient(top, #ffffff, #fafafa);
	background-image: linear-gradient(to bottom, rgb(255, 255, 255), rgb(250, 250, 250));
	background-repeat: repeat-x;
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fffafafa',GradientType=0); */
	-webkit-box-shadow: 0 .1rem .25rem rgba(0, 0, 0, 0.065);
	   -moz-box-shadow: 0 .1rem .25rem rgba(0, 0, 0, 0.065);
			box-shadow: 0 .1rem .25rem rgba(0, 0, 0, 0.065);
	-webkit-border-radius: .25rem;
	   -moz-border-radius: .25rem;
			border-radius: .25rem;
}

/* 無効なデータ */
.disableData {
	color: #999;
	text-decoration: line-through;
}

/* 折り返し関連 */
.text-wrap {
	white-space: normal !important;
}

.text-nowrap {
	white-space: nowrap !important;
}

.text-line {
	white-space: pre-line !important;
}

.word-break-normal {
	word-break: normal !important;
}

.word-break-all {
	word-break: break-all !important;
}

.word-break-word {
	word-wrap: break-word !important;
	overflow-wrap: break-word !important;
}

.white-space-nowarp {
	white-space: nowrap;
}

.white-space-prewarp {
	white-space: pre-wrap !important;
}

/* 回り込みの解除 */
.clear {
	clear: both;
}

/* カレンダー最前面表示 */
.ui-datepicker {
	z-index: 9999 !important;
}

/* ページトップへのリンク */
#linkToPageTop{
	width: 3.75rem;
	height: 3.75rem;
	position: fixed;
	right: 0;
	bottom: 0;
	background: #3f98ef;
	opacity: 0.6;
	border-radius: 50%;
	z-index: 2000;
}
#linkToPageTop a{
	position: relative;
	display: block;
	width: 3.75rem;
	height: 3.75rem;
	text-decoration: none;
}
#linkToPageTop a::before{
	font-family: 'Font Awesome 5 Free';
	font-weight: 900;
	content: '\f102';
	font-size: 1.875rem;
	color: #fff;
	position: absolute;
	width: 1.875rem;
	height: 1.875rem;
	top: -0.75rem;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
	text-align: center;
}

/* スクロール時に画面を追いかけるブロック */
.affix-block {
	/* 浮いた時の位置を指定 */
	z-index: 1;
	top: 5px;
}

/* 印刷時の設定. */
@media print {
	body {
		padding-bottom: 0;
	}
}

/* -------------------------------- * /


/* ================================ *
 *	共通スタイル					*
 * ================================ */
/* 一般向の場合 */
.public {
	background-color: #002e4e !important;
}

@media (min-width: 1200px) {
	body {
		font-size: 100% !important;
	}
}

/* -------------------------------- *
 *	共通div							*
 * -------------------------------- */
/* div { */
/* 	-webkit-border-radius: .25rem; */
/* 	   -moz-border-radius: .25rem; */
/* 			border-radius: .25rem; */
/* } */


/* -------------------------------- *
 *	アイコン						*
 * -------------------------------- */
i {
	font-size: 100% !important;
}

.fa-lg {
	font-size: 1.33333em !important;
	line-height: .75em;
	vertical-align: -.0667em
}

.fa-xs {
	font-size: .75em !important;
}

.fa-sm {
	font-size: .875em !important;
}

.fa-1x {
	font-size: 1em !important;
}

.fa-2x {
	font-size: 2em !important;
}

.fa-3x {
	font-size: 3em !important;
}

.fa-4x {
	font-size: 4em !important;
}

.fa-5x {
	font-size: 5em !important;
}

.fa-6x {
	font-size: 6em !important;
}

.fa-7x {
	font-size: 7em !important;
}

.fa-8x {
	font-size: 8em !important;
}

.fa-9x {
	font-size: 9em !important;
}

.fa-10x {
	font-size: 10em !important;
}

/* -------------------------------- *
 *	位置							*
 * -------------------------------- */
.position-static {
	position: static !important;
}

.position-relative {
	position: relative !important;
}

.position-absolute {
	position: absolute !important;
}

.position-fixed {
	position: fixed !important;
}

.position-sticky {
	position: -webkit-sticky !important;
	position: sticky !important;
}

.top-0 {
	top: 0 !important;
}

.top-50 {
	top: 50% !important;
}

.top-100 {
	top: 100% !important;
}

.bottom-0 {
	bottom: 0 !important;
}

.bottom-50 {
	bottom: 50% !important;
}

.bottom-100 {
	bottom: 100% !important;
}

.start-0 {
	left: 0 !important;
}

.start-50 {
	left: 50% !important;
}

.start-100 {
	left: 100% !important;
}

.end-0 {
	right: 0 !important;
}

.end-50 {
	right: 50% !important;
}

.end-100 {
	right: 100% !important;
}

.translate-middle {
	transform: translate(-50%, -50%) !important;
}

.translate-middle-x {
	transform: translateX(-50%) !important;
}

.translate-middle-y {
	transform: translateY(-50%) !important;
}


/* -------------------------------- *
 *	タイトル						*
 * -------------------------------- */
.title {
	width: 100%;
	padding: .0rem .75rem .25rem .25rem;
	font-size: 100%;
	background: #ffffff;
}

.title h5 {
	position: relative;
	overflow: hidden;
	margin: 0 .25rem .25rem 0;
	padding: .5rem 1rem .5rem .5rem;
}

.title h5::first-letter {
	font-size: 1.75rem;
	padding: .25rem .6rem;
	color: #FFFFFF;
	background: #3E1586;

	-webkit-border-radius: 50%;
	   -moz-border-radius: 50%;
			border-radius: 50%;
}

.title h5::before, .title h5::after {
	content: "";
	position: absolute;
	bottom: 0;
}
.title h5::before {
	border-bottom: 2px solid #7886C6;
	width: 100%;
}
.title h5::after {
	border-bottom: 2px solid #ddd;
	width: 100%;
}

.sub-title {
  font-size: 1rem;
  font-weight: 300;
}

/* -------------------------------- *
 *	検索条件						*
 * -------------------------------- */
.search {
	width: 98%;
	margin-top: .5rem;
	margin-bottom: .75rem;
	padding-bottom: .5rem;
	font-size: 90%;

}

.search-row, .search-row-center {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	align-items: center;
	margin: .25rem -15px;
}

.search-row-center {
	justify-content: center;
	margin-top: .5rem;
}

.search-row > label, .search-row-center > label {
	position: relative;
	width: 100%;
	min-height: 1px;
	padding-right: .5rem;
	padding-left: .75rem;
}

.search-lbl-1, .search-lbl-2, .search-lbl-mobile {
	margin: .25rem;
}

.search-col-1, .search-col-2, .search-col-3, .search-col-mobile {
	margin: .25rem 0rem;
}

.search-row > .search-title {
	font-size: 1rem;
	font-weight: bold;
	line-height: 2.5rem;
	margin-top: -.25rem;
	padding-left: 1.25rem;
	background-color: rgba(222,225,234,0.5);
	border-bottom: .15rem solid #9cabb9;
/* 	-webkit-border-top-left-radius: .25rem; */
/* 	   -moz-border-top-left-radius: .25rem; */
/* 			border-top-left-radius: .25rem; */
/* 	-webkit-border-top-right-radius: .25rem; */
/* 	   -moz-border-top-right-radius: .25rem; */
/* 			border-top-right-radius: .25rem; */
}

@media (max-width: 575.98px) {
	.search-col-1, .search-col-2, .search-col-3 {
		-ms-flex: 0 0 90%;
		flex: 0 0 90%;
		max-width: 90%;
		margin-left: 1rem;
		margin-right: 0.25rem;
	}
	.search-lbl-1, .search-lbl-2 {
		font-weight: bold;
	}
}

@media (min-width: 576px) {
	.search-lbl-1, .search-lbl-2 {
		-ms-flex: 0 0 25%;
		flex: 0 0 25%;
		max-width: 25%;
		text-align: right;
	}

	.search-col-1, .search-col-2 {
		-ms-flex: 0 0 70%;
		flex: 0 0 70%;
		max-width: 70%;
	}

	.search-col-3 {
		-ms-flex: 1 1 auto;
		flex: 1 1 auto;
		max-width: auto;
	}
	
	.search-col-alt-1, .search-col-alt-2 {
		-ms-flex: 0 0 80%;
		flex: 0 0 80%;
		max-width: 80%;
	}
}

@media (min-width: 768px) {
	.search-lbl-1, .search-lbl-2 {
		-ms-flex: 0 0 10%;
		flex: 0 0 10%;
		max-width: 10%;
	}

	.search-col-1, .search-col-2 {
		-ms-flex: 0 0 35%;
		flex: 0 0 35%;
		max-width: 35%;
	}

	.search-col-3 {
		-ms-flex: 1 1 auto;
		flex: 1 1 auto;
		max-width: auto;
	}
	
	.search-col-aria-40per{
		display: flex;
		align-items: center; /* ツールチップと入力欄の「上下中央」を揃える */
		gap: 8px;            /* ツールチップと入力欄の間のすき間 */
		width: 40%;
		padding:8px;
	}
	
	.search-col-aria-20per{
		width: 20%;
		display: flex;
		justify-content: center;
	}
	
	.search-col-aria-20per #search {
	  width: 80%;
	}
		
	.search-col-alt-1, .search-col-alt-2 {
		-ms-flex: 0 0 90%;
		flex: 0 0 90%;
		max-width:90%;
	}
}

.search-col-mobile {
	-ms-flex: 0 0 90%;
	flex: 0 0 90%;
	max-width: 55%;
	margin-right: 0.25rem;
}
.search-lbl-mobile {
	font-weight: bold;
	max-width: 35%;
}

/* @media (min-width: 768px) { */
/* 	.search-lbl-1 { */
/* 		-ms-flex: 0 0 10%; */
/* 		flex: 0 0 10%; */
/* 		max-width: 10%; */
/* 	} */

/* 	.search-lbl-2 { */
/* 		-ms-flex: 0 0 12%; */
/* 		flex: 0 0 12%; */
/* 		max-width: 12%; */
/* 	} */

/* 	.search-col-1 { */
/* 		-ms-flex: 0 0 33%; */
/* 		flex: 0 0 33%; */
/* 		max-width: 33%; */
/* 	} */

/* 	.search-col-2 { */
/* 		-ms-flex: 0 0 38%; */
/* 		flex: 0 0 38%; */
/* 		max-width: 38%; */
/* 	} */

/* 	.search-col-3 { */
/* 		-ms-flex: 1 1 auto; */
/* 		flex: 1 1 auto; */
/* 		max-width: auto; */
/* 	} */
/* } */

/* @media (min-width: 992px) { */
/* 	.search { */
/* 		max-width: 90%; */
/* 	} */

/* 	.search-lbl-1 { */
/* 		-ms-flex: 0 0 8%; */
/* 		flex: 0 0 8%; */
/* 		max-width: 8%; */
/* 	} */

/* 	.search-lbl-2 { */
/* 		-ms-flex: 0 0 13%; */
/* 		flex: 0 0 13%; */
/* 		max-width: 13%; */
/* 	} */

/* 	.search-col-1 { */
/* 		-ms-flex: 0 0 33%; */
/* 		flex: 0 0 33%; */
/* 		max-width: 33%; */
/* 	} */

/* 	.search-col-2 { */
/* 		-ms-flex: 0 0 44%; */
/* 		flex: 0 0 44%; */
/* 		max-width: 44%; */
/* 	} */
/* } */

/* -------------------------------- *
 *	データ表示枠					*
 * -------------------------------- */
.frame {
	-ms-flex: 0 0 100%;
	flex: 0 0 100%;
	max-width: 100%;
	padding: 3rem, 1rem;
	font-size: 82%;
}

/* 一部詳細画面用-左右に余白を持たせる */
.detail-space {
  padding-inline: 3rem;
}


/* -------------------------------- *
 *	エラー表示用					*
 * -------------------------------- */
.error {
	position: relative;
	padding: .1rem .3rem;
	margin-top: .1rem;
	white-space: pre-line;
	color: red;
	background-color: rgba(255,0,0,.1);
	border: 1px solid rgba(255,0,0,.2);
	-webkit-border-radius: .25rem;
	   -moz-border-radius: .25rem;
			border-radius: .25rem;
}

.alert-error {
	color: #f90000;
	background-color: rgba(255,0,0,.1);
	border: 1px solid rgba(255,0,0,.2);
}

/* -------------------------------- *
 *	テキストボックスをラベル化		*
 * -------------------------------- */
.likeLabel {
	color: #4B5563;
	background-color: transparent;
	border: none;
	width: 100% !important;
	max-width: 100% !important;
	font: inherit;
}

/* -------------------------------- *
 *	大きいチェックボックス			*
 * -------------------------------- */
.big {
	-webkit-transform: scale(1.5);
	transform: scale(1.5);
}

/* -------------------------------- *
 *	ボタン							*
 * -------------------------------- */
.btn {
 	margin: .25rem;
 	white-space: normal;
}

.btn.disabled, .btn:disabled {
	opacity: 0.15;
}

.opacity {
	opacity: 0.15;
}

.rounded-circle {
	border-radius: 50% !important;
}

.rounded-pill {
	border-radius: 50rem !important;
}

/* -------------------------------- *
 *	フォント(レスポンシブ対応)		*
 * -------------------------------- */
h1, .h1 {
	font-size: calc(1.375rem + 1.5vw);
}
@media (min-width: 1200px) {
	h1, .h1 {
		font-size: 2.5rem;
	}
}

h2, .h2 {
	font-size: calc(1.325rem + 0.9vw);
}
@media (min-width: 1200px) {
	h2, .h2 {
		font-size: 2rem;
	}
}

h3, .h3 {
	font-size: calc(1.3rem + 0.6vw);
}
@media (min-width: 1200px) {
	h3, .h3 {
		font-size: 1.75rem;
	}
}

h4, .h4 {
	font-size: calc(1.275rem + 0.3vw);
}
@media (min-width: 1200px) {
	h4, .h4 {
		font-size: 1.5rem;
	}
}

h5, .h5 {
	font-size: 1.25rem;
}

h6, .h6 {
	font-size: 1rem;
}

/* -------------------------------------------- *
 *	リストグループ縦→横※bootstrap5から移植	*
 * -------------------------------------------- */
.list-group-horizontal {
	flex-direction: row;
}
.list-group-horizontal > .list-group-item:first-child {
	border-bottom-left-radius: 0.25rem;
	border-top-right-radius: 0;
}
.list-group-horizontal > .list-group-item:last-child {
	border-top-right-radius: 0.25rem;
	border-bottom-left-radius: 0;
}
.list-group-horizontal > .list-group-item.active {
	margin-top: 0;
}
.list-group-horizontal > .list-group-item + .list-group-item {
	border-top-width: 1px;
	border-left-width: 0;
}
.list-group-horizontal > .list-group-item + .list-group-item.active {
	margin-left: -1px;
	border-left-width: 1px;
}

@media (min-width: 576px) {
	.list-group-horizontal-sm {
		flex-direction: row;
	}
	.list-group-horizontal-sm > .list-group-item:first-child {
		border-bottom-left-radius: 0.25rem;
		border-top-right-radius: 0;
	}
	.list-group-horizontal-sm > .list-group-item:last-child {
		border-top-right-radius: 0.25rem;
		border-bottom-left-radius: 0;
	}
	.list-group-horizontal-sm > .list-group-item.active {
		margin-top: 0;
	}
	.list-group-horizontal-sm > .list-group-item + .list-group-item {
		border-top-width: 1px;
		border-left-width: 0;
	}
	.list-group-horizontal-sm > .list-group-item + .list-group-item.active {
		margin-left: -1px;
		border-left-width: 1px;
	}
}
@media (min-width: 768px) {
	.list-group-horizontal-md {
		flex-direction: row;
	}
	.list-group-horizontal-md > .list-group-item:first-child {
		border-bottom-left-radius: 0.25rem;
		border-top-right-radius: 0;
	}
	.list-group-horizontal-md > .list-group-item:last-child {
		border-top-right-radius: 0.25rem;
		border-bottom-left-radius: 0;
	}
	.list-group-horizontal-md > .list-group-item.active {
		margin-top: 0;
	}
	.list-group-horizontal-md > .list-group-item + .list-group-item {
		border-top-width: 1px;
		border-left-width: 0;
	}
	.list-group-horizontal-md > .list-group-item + .list-group-item.active {
		margin-left: -1px;
		border-left-width: 1px;
	}
}
@media (min-width: 992px) {
	.list-group-horizontal-lg {
		flex-direction: row;
	}
	.list-group-horizontal-lg > .list-group-item:first-child {
		border-bottom-left-radius: 0.25rem;
		border-top-right-radius: 0;
	}
	.list-group-horizontal-lg > .list-group-item:last-child {
		border-top-right-radius: 0.25rem;
		border-bottom-left-radius: 0;
	}
	.list-group-horizontal-lg > .list-group-item.active {
		margin-top: 0;
	}
	.list-group-horizontal-lg > .list-group-item + .list-group-item {
		border-top-width: 1px;
		border-left-width: 0;
	}
	.list-group-horizontal-lg > .list-group-item + .list-group-item.active {
		margin-left: -1px;
		border-left-width: 1px;
	}
}
@media (min-width: 1200px) {
	.list-group-horizontal-xl {
		flex-direction: row;
	}
	.list-group-horizontal-xl > .list-group-item:first-child {
		border-bottom-left-radius: 0.25rem;
		border-top-right-radius: 0;
	}
	.list-group-horizontal-xl > .list-group-item:last-child {
		border-top-right-radius: 0.25rem;
		border-bottom-left-radius: 0;
	}
	.list-group-horizontal-xl > .list-group-item.active {
		margin-top: 0;
	}
	.list-group-horizontal-xl > .list-group-item + .list-group-item {
		border-top-width: 1px;
		border-left-width: 0;
	}
	.list-group-horizontal-xl > .list-group-item + .list-group-item.active {
		margin-left: -1px;
		border-left-width: 1px;
	}
}
@media (min-width: 1400px) {
	.list-group-horizontal-xxl {
		flex-direction: row;
	}
	.list-group-horizontal-xxl > .list-group-item:first-child {
		border-bottom-left-radius: 0.25rem;
		border-top-right-radius: 0;
	}
	.list-group-horizontal-xxl > .list-group-item:last-child {
		border-top-right-radius: 0.25rem;
		border-bottom-left-radius: 0;
	}
	.list-group-horizontal-xxl > .list-group-item.active {
		margin-top: 0;
	}
	.list-group-horizontal-xxl > .list-group-item + .list-group-item {
		border-top-width: 1px;
		border-left-width: 0;
	}
	.list-group-horizontal-xxl > .list-group-item + .list-group-item.active {
		margin-left: -1px;
		border-left-width: 1px;
	}
}

/* -------------------------------- *
 *	ナビゲーションバースクロール	*
 * -------------------------------- */
.navbar-nav-scroll {
	max-height: var(--bs-scroll-height, 75vh);
	overflow-y: auto;
}

.nav-link.disabled {
  color: #6c757d;
  pointer-events: none;
  cursor: default;
}

@media (min-width: 576px) {
	.navbar-expand-sm .navbar-nav-scroll {
		overflow: visible;
	}
}

@media (min-width: 768px) {
	.navbar-expand-md .navbar-nav-scroll {
		overflow: visible;
	}
}

@media (min-width: 992px) {
	.navbar-expand-lg .navbar-nav-scroll {
		overflow: visible;
	}
}

@media (min-width: 1200px) {
	.navbar-expand-xl .navbar-nav-scroll {
		overflow: visible;
	}
}

@media (min-width: 1400px) {
	.navbar-expand-xxl .navbar-nav-scroll {
		overflow: visible;
	}
}

.navbar-expand .navbar-nav-scroll {
	overflow: visible;
}

/* -------------------------------- *
 *	スクロールdiv					*
 * -------------------------------- */
.scroll {
	overflow: auto;
	white-space: nowrap;
	z-index: 1002;
}

::-webkit-scrollbar {
	width: .5rem;
	height: .5rem;
}

/*スクロールバーの軌道*/
::-webkit-scrollbar-track {
	background: #F1F1F1;
	border-radius: .25rem;
	box-shadow: inset 0 0 3px rgba(0, 0, 0, .1);
}

/*スクロールバーの動く部分*/
::-webkit-scrollbar-thumb {
	background: #BCBCBC;
	border-radius: .25rem;
	box-shadow: 0 0 1px rgba(255, 255, 255, .5);
}

/* スクロール内のテーブルはボーダー削除 */
.scroll {
	margin: 0 !important;
	border: 0 !important;
}

/* -------------------------------- *
 *	スピナー						*
 * -------------------------------- */
@-webkit-keyframes spinner-border {
  to {
    transform: rotate(360deg) /* rtl:ignore */;
  }
}

@keyframes spinner-border {
  to {
    transform: rotate(360deg) /* rtl:ignore */;
  }
}
.spinner-border {
  display: inline-block;
  width: 2rem;
  height: 2rem;
  vertical-align: -0.125em;
  border: 0.25em solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  -webkit-animation: 0.75s linear infinite spinner-border;
  animation: 0.75s linear infinite spinner-border;
}

.spinner-border-sm {
  width: 1rem;
  height: 1rem;
  border-width: 0.2em;
}

.spinner-border-lg {
  width: 5rem;
  height: 5rem;
  border-width: 0.5em;
}

@-webkit-keyframes spinner-grow {
  0% {
    transform: scale(0);
  }
  50% {
    opacity: 1;
    transform: none;
  }
}

@keyframes spinner-grow {
  0% {
    transform: scale(0);
  }
  50% {
    opacity: 1;
    transform: none;
  }
}
.spinner-grow {
  display: inline-block;
  width: 2rem;
  height: 2rem;
  vertical-align: -0.125em;
  background-color: currentColor;
  border-radius: 50%;
  opacity: 0;
  -webkit-animation: 0.75s linear infinite spinner-grow;
  animation: 0.75s linear infinite spinner-grow;
}

.spinner-grow-sm {
  width: 1rem;
  height: 1rem;
}

.spinner-grow-lg {
  width: 5rem;
  height: 5rem;
}

@media (prefers-reduced-motion: reduce) {
  .spinner-border,
.spinner-grow {
    -webkit-animation-duration: 1.5s;
    animation-duration: 1.5s;
  }
}

/* -------------------------------- *
 *	リンク							*
 * -------------------------------- */
.link-primary {
  color: #0d6efd;
}
.link-primary:hover, .link-primary:focus {
  color: #0a58ca;
}

.link-secondary {
  color: #6c757d;
}
.link-secondary:hover, .link-secondary:focus {
  color: #565e64;
}

.link-success {
  color: #198754;
}
.link-success:hover, .link-success:focus {
  color: #146c43;
}

.link-info {
  color: #0dcaf0;
}
.link-info:hover, .link-info:focus {
  color: #3dd5f3;
}

.link-warning {
  color: #ffc107;
}
.link-warning:hover, .link-warning:focus {
  color: #ffcd39;
}

.link-danger {
  color: #dc3545;
}
.link-danger:hover, .link-danger:focus {
  color: #b02a37;
}

.link-light {
  color: #f8f9fa;
}
.link-light:hover, .link-light:focus {
  color: #f9fafb;
}

.link-dark {
  color: #212529;
}
.link-dark:hover, .link-dark:focus {
  color: #1a1e21;
}

/* -------------------------------- *
 *	モーダル						*
 * -------------------------------- */
.modal-dialog-scrollable {
  height: calc(100% - 1rem);
}
.modal-dialog-scrollable .modal-content {
  max-height: 100%;
  overflow: hidden;
}
.modal-dialog-scrollable .modal-body {
  overflow-y: auto;
}
@media (min-width: 576px) {
  .modal-dialog-scrollable {
    height: calc(100% - 3.5rem);
  }
}

.modal-dialog-fluid {
	max-width: inherit;
	width: 90%;
}

/* モーダルヘッダー */
.modal-header {
	margin-bottom: 0;
	background-color: rgba(202, 210, 217, 0.05);
	-webkit-border-bottom-left-radius: 0;
	   -moz-border-bottom-left-radius: 0;
			border-bottom-left-radius: 0;
	-webkit-border-bottom-right-radius: 0;
	   -moz-border-bottom-right-radius: 0;
			border-bottom-right-radius: 0;
}

/* モーダルボディー */
.modal-body {
	font-size: 1rem;
	padding: 1.5rem 1.25rem;
	-webkit-border-radius: 0;
	   -moz-border-radius: 0;
			border-radius: 0;
}

/* モーダルフッター */
.modal-footer {
	padding: 0.75rem 1.25rem;
	background-color: rgba(202, 210, 217, 0.05);
	-webkit-border-top-left-radius: 0;
	   -moz-border-top-left-radius: 0;
			border-top-left-radius: 0;
	-webkit-border-top-right-radius: 0;
	   -moz-border-top-right-radius: 0;
			border-top-right-radius: 0;
}


/* モーダル内のテーブル */
.modal-tbl {
	table-layout: fixed;
	font-size: 82%;	
}
.modal-tbl thead {
	text-align: center;
}
.modal-tbl thead, .modal-tbl th, .modal-tbl td {
	vertical-align: middle !important;
}

/* スクロールバーの実装 */
.table-sticky {
	display: block;
	overflow-y: scroll;
	height: calc(100vh/2);
}
.table-sticky thead th {
	position: sticky;
	top: 0;
	z-index: 1;
}

/*ポータルのお知らせテーブル用スクロールバー*/
.notice-table-container {
	overflow-y: auto;
	max-height: 400px;
}
.notice-table-sticky thead th {
	position: sticky;
	top: 0;
	z-index: 1;
}

/* -------------------------------- *
 *	共通table						*
 * -------------------------------- */
 th {
	position: relative;
}
 
/* 土曜日のセルの文字色＆背景色 */
th.saturday {
	color: #1d4293 !important;
}

td.saturday {
	background-color: #E6F0FA !important;
}

/* 日曜日のセルの文字色＆背景色 */
th.sunday, th.holiday {
	color: #c50030 !important;
}
td.sunday, td.holiday {
	background-color: #FEE2E2 !important;
}

/* 休業日のセルの文字色＆背景色 */
th.closedday {
	color: #6c757d !important;
}
td.closedday {
	background-color: rgba(108,117,125,.25) !important;
}

/* セル非表示時、隣接セルの罫線も消えてしまうため、ダミー行のセルに設定 */
tr.dummy th, tr.dummy td {
	margin: 0 !important;
	padding: 0 !important;
}
tr.dummy td {
	border-top: .05rem solid #dee2e6 !important;
}

/* テーブル関連 */
[class*="-tbl"] {
	margin: 0 auto;
	margin-bottom: .5rem;
	color: #4B5563;
	border-collapse: separate;
	border-spacing: 0;
	border: .05rem solid #c7cbcf;
	-webkit-border-radius: .25rem;
	   -moz-border-radius: .25rem;
			border-radius: .25rem;
}


[class*="-tbl"] thead {
	word-break: break-all;
}

[class*="-tbl"] tbody {
	word-wrap: break-word;
	overflow-wrap: break-word;
}

.table-striped tbody tr:nth-of-type(odd) {
	background-color: rgba(222,225,234,0.1);
}

.table-hover tbody tr:hover {
	background-color: rgba(222,225,234,0.15);
}

/* メッセージ表示時背景色 */
.table-hover tbody tr.message {
	background-color: transparent;
}

/* ヘッダー基本背景色 */
[class*="-tbl"] th {
	background-color: rgba(222,225,234,1);
}

/* ヘッダーの最終行のみ下線を表示 */
[class*="-tbl"] thead th[rowspan],
[class*="-tbl"] thead tr:last-child th {	/* ヘッダーが2行の場合の対応 */
	border-bottom: .15rem solid #9cabb9;
}

[class*="-tbl"] thead tr th:first-child {	/* ヘッダーが2行の場合の対応 */
	border-left: .05rem solid #fcfcfc;
}

/* 2列目以降のthセルの左だけ線を表示 */
[class*="-tbl"] tr th+th {
	border-left: .05rem solid #fcfcfc;
}

/* 2行目以降のthセルの上だけ線を表示 */
[class*="-tbl"] tr+tr th {
	border-top: .05rem solid #fcfcfc;
}

/* （利用実績画面用）2行目以降のthセルの上だけ線を表示 */
[class*="reserve-tbl"] tr+tr th {
	border-top: .015rem solid #9cabb9;
}

/* 2列目以降のtdセルの左だけ線を表示 */
[class*="-tbl"] tr td+td {
	border-left: .05rem solid #dee2e6;
}

/* 2行目以降のtdセルの上だけ線を表示 */
[class*="-tbl"] tr+tr td {
	border-top: .05rem solid #dee2e6;
}


/* 一覧表示画面用 */
table.list-tbl thead th {
	background-color: #0056B3 ;
	color: #FFFFFF ;          
}

/* データ表示部分の背景色を偶奇で切り替える */
table.list-tbl tbody tr:nth-child(odd) td {  /* 奇数行 */
	background-color: #FFFFFF;
}

table.list-tbl tbody tr:nth-child(even) td { /* 偶数行 */
	background-color: #F7F9FB;
}

/* テーブルを角丸に設定 */
/* [class*="-tbl"] tr:first-child > :first-child { */
/* 	-webkit-border-top-left-radius: .25rem; */
/* 	   -moz-border-top-left-radius: .25rem; */
/* 			border-top-left-radius: .25rem; */
/* } */

/* [class*="-tbl"] tr:first-child > :last-child { */
/* 	-webkit-border-top-right-radius: .25rem; */
/* 	   -moz-border-top-right-radius: .25rem; */
/* 			border-top-right-radius: .25rem; */
/* } */

/* [class*="-tbl"] tr:last-of-type > :first-child { */
/* 	-webkit-border-bottom-left-radius: .25rem; */
/* 	   -moz-border-bottom-left-radius: .25rem; */
/* 			border-bottom-left-radius: .25rem; */
/* } */

/* [class*="-tbl"] tr:last-of-type > :last-child { */
/* 	-webkit-border-bottom-right-radius: .25rem; */
/* 	   -moz-border-bottom-right-radius: .25rem; */
/* 			border-bottom-right-radius: .25rem; */
/* } */

/* 不要なradiusを削除 */
/* [class*="-tbl"] thead tr:first-child > :first-child, */
/* [class*="-tbl"] thead tr:not(:first-child) > th:first-of-type { */
/* 	-webkit-border-bottom-left-radius: 0; */
/* 	   -moz-border-bottom-left-radius: 0; */
/* 			border-bottom-left-radius: 0; */
/* } */

/* [class*="-tbl"] thead tr:first-child > :last-child, */
/* [class*="-tbl"] thead tr:not(:first-child) > th:last-of-type { */
/* 	-webkit-border-bottom-right-radius: 0; */
/* 	   -moz-border-bottom-right-radius: 0; */
/* 			border-bottom-right-radius: 0; */
/* } */

/* [class*="-tbl"] tbody tr:first-child > :first-child, */
/* [class*="fixed"] tbody tr:first-child > :first-child { */
/* 	-webkit-border-top-left-radius: 0; */
/* 	   -moz-border-top-left-radius: 0; */
/* 			border-top-left-radius: 0; */
/* } */

/* [class*="-tbl"] tbody tr:first-child > :last-child, */
/* [class*="fixed"] tbody tr:first-child > :last-child { */
/* 	-webkit-border-top-right-radius: 0; */
/* 	   -moz-border-top-right-radius: 0; */
/* 			border-top-right-radius: 0; */
/* } */

/* fixed-tbl:幅固定テーブル
/*  list-tbl:幅固定テーブル&横スクロール */
.fixed-tbl, .list-tbl {
	table-layout: fixed;
	margin-top: .5rem;
	margin-bottom: 1rem;
}

.fixed-tbl thead, .list-tbl thead {
	text-align: center;
}

.fixed-tbl thead, .fixed-tbl th, .fixed-tbl td,
 .list-tbl thead,  .list-tbl th,  .list-tbl td {
	vertical-align: middle !important;
}

@media (max-width: 991.98px) {
	.list-tbl {
		width: 95vw;
		min-width: 992px;
	}
}

/* 編集アイコン表示用 */
.tbl-col-icon {
	position: relative;
	height: 100%;
}
.blackLink {
	text-decoration: none;
	color:#4c5454;
}
.blackLink:hover {
	text-decoration: underline; /* 併記しておくほうがベター */
	color:#1d1f1f;
}
.iconLink-left {
	position: absolute;
	left: .5rem;
	bottom: .25rem;
}
.iconLink-right {
	position: absolute;
	right: .5rem;
	bottom: .25rem;
}


.tbl-col-3, .tbl-col-4, .tbl-col-5, .tbl-col-6, .tbl-col-7, .tbl-col-8, .tbl-col-9, .tbl-col-10,
.tbl-col-11, .tbl-col-12, .tbl-col-13, .tbl-col-14, .tbl-col-15, .tbl-col-16, 
.tbl-col-20, .tbl-col-25, .tbl-col-40, .tbl-col-55, .tbl-col-60, .tbl-col-btn {
	width: auto;
}

@media (max-width: 575.98px) {
	.tbl-col-3, .tbl-col-4, .tbl-col-5, .tbl-col-6, .tbl-col-7, .tbl-col-8, .tbl-col-9, .tbl-col-10,
	.tbl-col-11, .tbl-col-12, .tbl-col-13, .tbl-col-14, .tbl-col-15, .tbl-col-16, 
	.tbl-col-20, .tbl-col-25, .tbl-col-40, .tbl-col-55, .tbl-col-btn {
		width: 100%;
	}
}

@media (min-width: 576px) {
	.tbl-col-btn {
		width: 4%;
		max-width: 4%;
		min-width: 48dp;
		margin: 0;
		padding: 0;
	}

	.tbl-col-3 {
		width: 3.5%;
		max-width: 3.5%;
	}

	.tbl-col-4 {
		width: 4%;
		max-width: 4%;
	}

	.tbl-col-5 {
		width: 5%;
		max-width: 5%;
	}

	.tbl-col-6 {
		width: 6%;
		max-width: 6%;
	}

	.tbl-col-7 {
		width: 7%;
		max-width: 7%;
	}

	.tbl-col-8 {
		width: 8.5%;
		max-width: 8.5%;
	}

	.tbl-col-9 {
		width: 9%;
		max-width: 9%;
	}

	.tbl-col-10 {
		width: 10%;
		max-width: 10%;
	}

	.tbl-col-11 {
		width: 11%;
		max-width: 11%;
	}

	.tbl-col-12 {
		width: 12%;
		max-width: 12%;
	}

	.tbl-col-13 {
		width: 13.5%;
		max-width: 13.5%;
	}

	.tbl-col-14 {
		width: 14%;
		max-width: 14%;
	}

	.tbl-col-15 {
		width: 15%;
		max-width: 15%;
	}

	.tbl-col-16 {
		width: 16.5%;
		max-width: 16.5%;
	}

	.tbl-col-20 {
		width: 20%;
		max-width: 20%;
	}

	.tbl-col-25 {
		width: 25%;
		max-width: 25%;
	}

	.tbl-col-40 {
		width: 40%;
		max-width: 40%;
	}

	.tbl-col-55 {
		width: 55%;
		max-width: 55%;
	}
	
	.tbl-col-60 {
		width: 60%;
		max-width: 60%;
	}
}

/* ------------------------------------------------------------------------------------------------------------------------------------ */

/* -------------------------------- *
 *	画面オーバーレイ				*
 * -------------------------------- */
.full-overlay-transparent {
	position: fixed;
	left: 0; top: 0;
	width: 100%; height: 100%;
	z-index: 2147483647;
}

/* 背景が薄いパターンで文字列を表示させる場合 */
.full-overlay {
	position: fixed;
	left: 0; top: 0;
	width: 100%; height: 100%;
	background: rgba(100, 100, 100, .5);
	z-index: 2147483647;
}
.full-overlay .text {
	position: fixed;
	left: 50%; top: 50%;
	width: 100%;
	transform: translate(-50%, -50%);
	color: rgba(250, 250, 250, 1);
	font-size: 24px;
	text-align: center;
}


/* ================================ *
 *	トップ画面スタイル				*
 * ================================ */

/* 吹き出し本体 */
.balloon {
	width: calc(100% * 0.75);
	position: relative;
	margin: 2rem;
	padding: 2rem;
	text-align: center;
	vertical-align: center;
	color: #61C359;
	background-color: #fff;
	border: 2px solid #61C359;
	border-radius: 1rem;
	z-index: 2;
}

/* 三角アイコン */
.balloon::before, .balloon::after {
	content: '';
	position: absolute;
	display: block;
	width: 0;
	height: 0;
	right: -1rem;
	top: 3rem;
	border-left: 1rem solid #61C359;
	border-top: 1rem solid transparent;
	border-bottom: 1rem solid transparent;
}

.balloon::after {
	right: -0.825rem;
	border-left: 1rem solid #fff;
	border-top: 1rem solid transparent;
	border-bottom: 1rem solid transparent;
}

.balloon:hover {
	border-width: 2.5px;
}

.balloon:hover .h2, .balloon .h6 {
	color: #FCAA00;
}

a.btn-sso, a.btn-login {
	display: block;
	text-decoration: none;
	width: 40%;
	margin: 2rem;
	padding: 0.8rem;
	text-align: center;
	overflow: hidden;

	-webkit-border-radius: 1rem;
	   -moz-border-radius: 1rem;
			border-radius: 1rem;
}

a.btn-top {
	text-decoration: none;
	width: 100%;
}

a.btn-sso .h2, a.btn-login .h2, a.btn-top .h2 {
	display: inline-block;
	transition: .5s;
}

a.btn-sso:hover, a.btn-login:hover, a.btn-top:hover span {
	transform: scale(1.1);
}

a.btn-top:hover img {
	position: relative;
	top: calc(100% * 0.01);
	left: calc(100% * 0.04);
	transform: scale(1.2);
}

a.btn-sso i, a.btn-login i {
	font-size: 5rem;
}

a.btn-sso:hover .h2, a.btn-login:hover .h2 {
	letter-spacing: 5px;
}

a.btn-sso:hover .h6, a.btn-login:hover .h6, a.btn-top:hover .h6 {
	letter-spacing: 3px;
}

a.btn-sso {
	color: #00336D;
	background-color: #fff;
	border: 2px solid #00336D;
}

a.btn-login {
	color: #4D9BE8;
	background-color: #fff;
	border: 2px solid #4D9BE8;
}

@media (max-width: 767.98px) {
	a.btn-sso, a.btn-login, a.btn-top  {
		width: 98%;
	}

	.miyadaimoukun {
		position: absolute;
		top: -calc(100% * 0.5);
		left: calc(100% * 0.85);
		margin: 0;
		padding: 0;
	}
}

/* ================================ *
 *	ポータル画面スタイル　			*　※予約カレンダーに統合
 * ================================ */
/* ポータルメニュー項目用 */
.my-custom-navbar {
    background-color: #004494; /* 好きな背景色 */
	padding-top: 0.15rem;
	padding-bottom: 0.15rem;
}

.my-custom-navbar .nav-link {
  padding-top: 0.15rem;
  padding-bottom: 0.15rem;
}

.navbar-item-center{
	justify-content: space-around;
}

@media (min-width: 992px) {
	.nav-link {
	  display: flex; /*横並び*/
	}

	.nav-link img.image-detail {
	    margin: 0.4rem;
	    padding: 0.25rem;
	}
	
	.nav-text-jp {
	  margin: auto;
	  padding: 0;
	  font-weight: bold;
	  font-size: 18px;
	  color: #FFFFFF;
	}
}

@media (max-width: 992px) {
	.nav-link {
		display: flex;
		flex-direction: row;
		align-items: center;
		justify-content: center;
		padding: 10px;
	}
	.nav-link img.image-detail {
		width: 30px;
		height: 30px;
		margin-right: 1em;
	}
	.nav-link br {
		display: none;
	}
	.nav-text-jp {
		padding-right: 1em;
	}
}

/*ポータルのお知らせテーブル用*/
.notice-tbl{
	background-color: white;
}
.notice-tbl thead {
	text-align: center;
}
.notice-tbl thead, .notice-tbl th, .notice-tbl td {
	vertical-align: middle !important;
}
.notice-tfoot-td{
	margin-left: 
	auto; width: 1200px;
}

/* ================================ *
 *	戻るボタンフロートスタイル		*
 * ================================ */
 /* ボタンの配置 */
 .btn-float-position{
	position: fixed;
	top: 50%;
	left: 5px;
	z-index: 1040; /* 変更する時はモーダルより前に表示されないように注意 */
 }
 
/* ボタンのスタイル */
.btn-back-style {
	font-size: 1.5em;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgb(255, 255, 255);
	background-color: rgba(51, 143, 236,0.5);
	height: 130px;
	border-radius: 3px;
	width: 2em;
}

.btn-back-style:hover, .btn-back-style:focus {
	text-decoration: none;
	color: rgb(255, 255, 255);
	background-color: rgba(51, 143, 236,0.5);
}

.btn-back-style:active, .btn-back-style:focus {
	color: rgb(255, 255, 255);
	background-color: rgba(51, 143, 236,0.5);
}
  
/* ================================ *
 *	設備詳細画面スタイル			*
 * ================================ */
.equip-flex {
	position: relative;
	width: 100%;
	min-height: 1px;

	-ms-flex: 0 0 100%;
	flex: 0 0 100%;
	max-width: 100%;

	display: -webkit-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;
	-ms-flex-wrap: wrap;
	-webkit-flex-wrap: wrap;
	flex-wrap: wrap;

	font-size: 82%;
}

.equip-flex img {
	font-size: 100%;
}

.equip-left, .equip-right {
	padding-left: .25rem;
	padding-right: .25rem;
}

.equip-right {
	vertical-align: top;
}

[class*="equip-tbl"] {
	table-layout: fixed;
}

[class*="equip-tbl"] th, [class*="equip-tbl"] td {
	vertical-align: middle;
}

.equip-tbl-left tr th:first-child,
.equip-tbl-top tr th:first-child {
	border-right: .15rem solid #9cabb9;
}

.equip-tbl-price th {
	border-bottom: .15rem solid #9cabb9;
}

[class*="equip-tbl"] tbody tr:hover {
	background-color: rgba(222,225,234,0.175);
}

.equip-tbl-right th {
	width: 30%;
	max-width: 30%;
}

.equip-tbl-top th,
.equip-tbl-left th {
	width: 20%;
	max-width: 20%;
}

img.image-list {
	max-width: 100%;
	width: auto;
	height: auto;
}

img.image-detail {
	max-width: 100%;
	max-height: 200px;
	width: auto;
	height: auto;
}

@media (max-width: 767.98px) {
	.equip-left, .equip-right {
		max-width: 100%;
	}

	[class*="equip-tbl"] th, [class*="equip-tbl"] td {
		max-width: 100%;
		width: 100%;
		display: block;
	}

	[class*="equip-tbl"] td {
		background-color: #fff;
	}

	.pc-title {
		display: none;
	}

	.sp-title {
		display: block;
	}

	.data-label-list td {
		display: block;
		text-align: right;
	}

	.data-label-list td::before {
		content: attr(data-label);
		float: left;
		font-size: .7rem;
		font-weight: bold;
		color: #999;
	}

	img.image-detail {
		margin: 0rem;
	}
}

@media (min-width: 768px) {
	.equip-left {
		max-width: 60%;
	}

	.equip-right {
		vertical-align: top;
		max-width: 40%;
	}
	
	.equip-detail-left {
		flex: 0 0 30%;
	}

	.equip-detail-right {
		vertical-align: top;
		flex: 0 0 70%;
	}

	.sp-title {
		display: none;
	}
}

/* テーブル共通境界色 */
.equip-tbl-custom {
    border-color: #bcd2e8;
}

/* 管理情報テーブル用項目（TH） */
.equip-mgmt-th {
	padding: 0.5rem 1rem !important;
    vertical-align: middle;
	font-weight: normal;
    background-color: #f2f2f5;
    color: #444444;
}

/* 管理情報テーブル用データ（TD） */
.equip-mgmt-td {
	padding: 0.5rem 1rem !important;
    vertical-align: middle;
    background-color: #ffffff;
}

/* 管理情報テーブル用の英語名称 */
.equip-mgmt-sub-text {
    font-size: 0.7rem;
    font-weight: normal;
    color: #6c757d; 
}

/* 設備情報・利用情報・利用料金 大見出し (TH) */
.equip-sec-header {
    font-size: 0.9rem;
    background-color: #0056B3 !important;
    color: #ffffff !important;
    font-weight: normal;
}

/* デジタル利用簿の予約画面項目用 */
.sharedpc-reserve th{
	background-color: #0056B3 !important;
	color: #ffffff !important;
}

/* 設備情報・利用情報・利用料金 項目名 (TH) */
/* 設備マスタの小項目部分も該当 */
.equip-th-custom,
.equipdetail-th-custom {
    vertical-align: middle;
    background-color: #E6F0FA !important;
    color: #0056B3 !important;
    font-weight: normal;
}

/* 補足英語テキスト */
.equip-sub-text {
    font-size: 0.72rem;
    color: #777777 !important;
    font-weight: normal;
}

/* ボタン共通スタイル（設備詳細画面） */
.btn-modern-action {
	width: 100%;
    height: 140px;
    border-radius: 20px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12);
    transition: all 0.2s ease;
}

.btn-equip-detail {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0.5rem !important; 
	text-align: center !important;
	text-decoration: none !important;
}

.btn-modern-disabled {
    background-color: #e2e3e5;
    color: #6c757d;
    box-shadow: none;
    opacity: 0.75;
}

.equip-padding {
	padding: 0.5rem;
}

/* 項目の色（全ての詳細画面・モーダルの一覧項目が対象） */
.container-fluid.detail-space table th,
.container-fluid.detail table th,
.modal-dialog-fluid table th {
	background-color: #0056B3;
	color: #FFFFFF;
}

/* 項目の色（モバイル実績詳細画面が対象） */
.container-fluid.detail-mobile-result table th{
	background-color: #3E1485;
	color: #FFFFFF;
}

/* デジタル利用簿の利用実績モーダルの項目のみ紫 */
.table-modal-results th {
	background-color: #3E1485 !important;
	color: #FFFFFF !important;
}

/* ================================ *
 *	予約一覧画面スタイル			*
 * ================================ */
.reserve-tbl-top, .reserve-tbl-fixed {
	table-layout: auto;
	overflow: hidden;
}

.reserve-tbl-price {
	table-layout: fixed;
	text-align: right !important;
}

.reserve-tbl-top thead th {
	border-bottom: .15rem solid #9cabb9;
}

.reserve-tbl-top th {
	text-align: center;
	vertical-align: middle !important;
}

.reserve-tbl-fixed tr th {
	background-color: #3E1485;
	color: #FFFFFF;
}

.reserve-sub-item {
	background-color: #D8D0E7 !important;
	color: #3E1485 !important;
}

.reserve-tbl-price tbody tr:not(:nth-child(1)) th:first-child {
	background-color: rgba(222,225,234,0.7);
	border-right: .15rem solid #9cabb9;
}

.reserve-tbl-top td, .reserve-tbl-fixed td, .reserve-tbl-price td, .reserve-tbl-application td {
	vertical-align: middle !important;
}

.reserve-tbl-price tr:nth-child(1) th,
.reserve-tbl-application th {
	text-align: center;
	vertical-align: middle;
	background-color: rgba(222,225,234,0.75);
	border-bottom: .15rem solid #9cabb9;
}

.reserve-tbl-fixed th,
.reserve-tbl-price th,
.reserve-tbl-application th {
	vertical-align: middle;
}

.reserve-col-15 {
	width: 15%;
	max-width: 15%;
}

.reserve-col-25 {
	width: 25%;
	max-width: 25%;
}

.reserve-col-30 {
	width: 30%;
	max-width: 30%;
}

@media (max-width: 575.98px) {
}

@media (max-width: 767px) {
	.reserve-col-15, .reserve-col-25, .reserve-col-30 {
		width: 100%;
		max-width: 100%;
	}

	.reserve-tbl-fixed th, .reserve-tbl-fixed td {
		width: 100%;
		display: block
	}

	.reserve-tbl-top {
		display: block;
	}
	.reserve-tbl-top thead {
		display: none;
	}
	.reserve-tbl-top tbody, .reserve-tbl-top tr, .reserve-tbl-top th, .reserve-tbl-top td {
		display: block;
		width: 100%;
	}
	.reserve-tbl-top tr {
		margin-bottom: .5rem;
	}
	.reserve-tbl-top th {
		padding: 1rem 1rem .5rem;
		font-weight: bold;
	}
	.reserve-tbl-top td {
		position: relative;
		padding: .5rem .5rem 1rem calc(30% + .5rem);
		min-height: 2rem;
	}
	.reserve-tbl-top td:before {
		content: attr(data-label);
		font-weight: bold;
		position: absolute;
		top: 0;
		left: 0;
		box-sizing: border-box;
		width: 40%;
		padding: .5rem 1rem;
	}
	.reserve-tbl-top td.saturday:before {
		color: #1d4293;
	}
	.reserve-tbl-top td.sunday:before,
	.reserve-tbl-top td.holiday:before {
		color: #c50030;
	}
	.reserve-tbl-top td.closedday:before {
		color: #6c757d;
	}

	.reserve-tbl-price,
	.reserve-tbl-application {
		width: 100%;
	}
	.reserve-tbl-price .thead,
	.reserve-tbl-application .thead {
		display: none;
	}
	.reserve-tbl-price th,
	.reserve-tbl-application th {
		display: block;
		width: 100%;
		border: inherit;
	}
	.reserve-tbl-price td,
	.reserve-tbl-application td {
		padding: .3rem .5rem;
		display: block;
		width: 100%;
		border: inherit;
		min-height: 2rem;
		text-align: right;
	} 
	.reserve-tbl-price td:before,
	.reserve-tbl-application td:before {
		content: attr(data-label);
		font-size: .7rem;
		font-weight: bold;
		padding: 0rem 1rem;
		color: #999;
		display: block;
		text-align: left;
	}

	.reserve-tbl-application td:first-child {
		background: #dee1ea;
		color: #fff;
		font-weight: bold;
		text-align: center;
		padding: .5rem;
	}

	.reserve-tbl-application .sp-title {
		display: inline;
	}
}

/* ================================ *
 *	予約詳細画面　項目名スタイル	*
 * ================================ */
 .my-tbl thead th[rowspan],
 .my-tbl thead tr:last-child th {
	background-color: #e5f7fa;
 	border-bottom: .15rem solid #8edae5;
 }

 .reservation-tbl-top, .reservation-tbl-fixed {
 	table-layout: auto;
 	overflow: hidden;
 }

 .reservation-tbl-price {
 	table-layout: fixed;
 	text-align: right !important;
 }

 .reservation-tbl-top thead th {
 	background-color: #e5f7fa;
 	border-bottom: .15rem solid #8edae5;
 }

 .reservation-tbl-top th {
 	text-align: center;
 	vertical-align: middle !important;
 	background-color: #e5f7fa;
 }

 .reservation-tbl-fixed tr th {
 	background-color: #0055B3;
	color: #FFFFFF;
}

.reservation-sub-item {
	background-color: #E6F0FA !important;
	color: #0056B3 !important;
}

 .reservation-tbl-price tbody tr:not(:nth-child(1)) th:first-child {
 	background-color: #e5f7fa;
 	border-right: .15rem solid #8edae5;
 }

 .reservation-tbl-top td, .reservation-tbl-fixed td, .reservation-tbl-price td, .reservation-tbl-application td {
 	vertical-align: middle !important;
 }

 .reservation-tbl-price tr:nth-child(1) th,
 .reservation-tbl-application th {
 	text-align: center;
 	vertical-align: middle;
 	background-color: #e5f7fa;
 	border-bottom: .15rem solid #8edae5 !important;
 }

 .reservation-tbl-fixed th,
 .reservation-tbl-price th,
 .reservation-tbl-application th {
 	vertical-align: middle;
 }

 @media (max-width: 575.98px) {
 }

 @media (max-width: 767px) {

 	.reservation-tbl-fixed th, .reservation-tbl-fixed td {
 		width: 100%;
 		display: block
 	}

 	.reservation-tbl-top {
 		display: block;
 	}
 	.reservation-tbl-top thead {
 		display: none;
 	}
 	.reservation-tbl-top tbody, .reservation-tbl-top tr, .reservation-tbl-top th, .reservation-tbl-top td {
 		display: block;
 		width: 100%;
 	}
 	.reservation-tbl-top tr {
 		margin-bottom: .5rem;
 	}
 	.reservation-tbl-top th {
 		padding: 1rem 1rem .5rem;
 		font-weight: bold;
 	}
 	.reservation-tbl-top td {
 		position: relative;
 		padding: .5rem .5rem 1rem calc(30% + .5rem);
 		min-height: 2rem;
 	}
 	.reservation-tbl-top td:before {
 		content: attr(data-label);
 		font-weight: bold;
 		position: absolute;
 		top: 0;
 		left: 0;
 		box-sizing: border-box;
 		width: 40%;
 		padding: .5rem 1rem;
 	}
 	.reservation-tbl-top td.saturday:before {
 		color: #1d4293;
 	}
 	.reservation-tbl-top td.sunday:before,
 	.reservation-tbl-top td.holiday:before {
 		color: #c50030;
 	}
 	.reservation-tbl-top td.closedday:before {
 		color: #6c757d;
 	}

 	.reservation-tbl-price,
 	.reservation-tbl-application {
 		width: 100%;
 	}
 	.reservation-tbl-price .thead,
 	.reservation-tbl-application .thead {
 		display: none;
 	}
 	.reservation-tbl-price th,
 	.reservation-tbl-application th {
 		display: block;
 		width: 100%;
 		border: inherit;
 	}
 	.reservation-tbl-price td,
 	.reservation-tbl-application td {
 		padding: .3rem .5rem;
 		display: block;
 		width: 100%;
 		border: inherit;
 		min-height: 2rem;
 		text-align: right;
 	} 
 	.reservation-tbl-price td:before,
 	.reservation-tbl-application td:before {
 		content: attr(data-label);
 		font-size: .7rem;
 		font-weight: bold;
 		padding: 0rem 1rem;
 		color: #999;
 		display: block;
 		text-align: left;
 	}

 	.reservation-tbl-application td:first-child {
 		background: #e5f7fa;
 		color: #fff;
 		font-weight: bold;
 		text-align: center;
 		padding: .5rem;
 	}

 	.reservation-tbl-application .sp-title {
 		display: inline;
 	}
 }
 
/* ================================ *
 *	利用者情報変更画面スタイル		*
 * ================================ */
.account-tbl {
	table-layout: fixed;
	margin-top: .5rem;
	margin-bottom: .5rem;
	width: 100%;
}

.account-tbl thead, .account-tbl th, .account-tbl td {
	vertical-align: middle !important;
}

.account-tbl th {
	width: 35%;

	padding-left: 1rem;
	padding-right: .75rem;
	border-right: .15rem solid #9cabb9;
}

@media (max-width: 575.98px) {
	.account-tbl th,
	.account-tbl td {
		width: 100%;
		display: block;
	}
}

@media (min-width: 576px) {
	.account-tbl td {
		padding-left: 1rem;
		padding-right: 1rem;
	}
}

@media (min-width: 768px) {
	.account-tbl th {
		max-width: 25%;
	}

	.account-tbl td {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

/* ================================ *
 *	予算表示画面スタイル			*
 * ================================ */
.budget {
	width: 95vw;
	height: 65vh;
}

/* ================================ *
 *	mobile画面スタイル			*
 * ================================ */
.link-block {
  	position: relative;
  	font-size: 1rem;
}
 
.link-block .alert{
  	font-size: 0.9rem;
	padding: .3rem .5rem;
}
 
.link-block a {
	position: absolute;
	top: 0;
	left: 0;
	height:100%;
	width: 100%;
}

.mobile-equipment-list {
	list-style: none;
	padding-left: 0;
	display: block;
}

.vertical-tbl {
	table-layout: fixed;
	text-align: left !important;
	margin-top: .5rem;
	margin-bottom: .5rem;
	width: 100%;
}

.vertical-tbl-top, .vertical-tbl-bottom {
	table-layout: auto;
	overflow: hidden;
}

.vertical-tbl thead, .vertical-tbl th, .vertical-tbl td {
	vertical-align: middle !important;
}

.vertical-tbl th,
.vertical-tbl td {
	display: block;
	width: 100%;
}

.vertical-tbl thead th {
	text-align: center;
}

.vertical-tbl tbody th {
	text-align: left;	
}

.vertical-tbl td {
	vertical-align: middle !important;	
}

.price-tbl td {
	text-align: right !important;
}

.vertical-tbl-apply-use {
	table-layout: fixed;
	text-align: right !important;
	margin-top: .5rem;
	margin-bottom: .5rem;
	width: 100%;

}

.vertical-tbl-apply-use th {
	width: 10%;
}

.vertical-tbl-apply-use-hr {
	border-radius: 0;
	border-left: none;
	border-right: none;
	border-bottom: .12rem solid #A3A3A3;
}

.vertical-tbl-apply-use td:before,
.vertical-tbl td:before {
	content: attr(data-label);
	font-size: .8rem;
	font-weight: bold;
	padding: 0rem 0.5rem;
	color: #999;
	display: block;
	text-align: left;
}

/* 検索パネル　フロート表示 */
@media (max-width: 575.98px) {
	.mobile-search-panel {
		position: sticky;
	top: 60px;
	z-index: 100;
	}
}

@media (min-width: 576px) {
	.mobile-search-panel {
		position: sticky;
		top: 130px;
		z-index: 100;
	}
}

@media (min-width: 768px) {
	.mobile-search-panel {
		position: sticky;
		top: 90px;
		z-index: 100;
	}
}


/* ================================ *
 *	設備予約　mobile画面スタイル	*
 * ================================ */
 /* 検索項目名 */
 .reservation-mobile-search {
	min-height: 2rem;
	margin-bottom: .5rem;
 	border: 1px solid #cccccc;
 	color: #4B5563;

 	background-color: #bde9ee;
 	background-image: -moz-linear-gradient(top, #fff, #bde9ee);
 	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#bde9ee));
 	background-image: -webkit-linear-gradient(top, #fff, #bde9ee);
 	background-image: -o-linear-gradient(top, #fff, #bde9ee);
 	background-image: linear-gradient(to bottom, #fff, #bde9ee);
 	background-repeat: repeat-x;
 	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffEAEFF8',endColorstr='#ffE3EAF7',GradientType=0);

 	-webkit-box-shadow: 0 .1rem .25rem rgba(0, 0, 0, 0.065);
 	   -moz-box-shadow: 0 .1rem .25rem rgba(0, 0, 0, 0.065);
 			box-shadow: 0 .1rem .25rem rgba(0, 0, 0, 0.065);

 	-webkit-border-radius: .25rem;
 	   -moz-border-radius: .25rem;
 			border-radius: .25rem;
 }

/* 項目名 */
 .reservation-vertical-tbl {
 	table-layout: fixed;
 	text-align: left !important;
 	margin-top: .5rem;
 	margin-bottom: .5rem;
 	width: 100%;
 }

 .reservation-vertical-tbl thead, .reservation-vertical-tbl th, .reservation-vertical-tbl td {
 	vertical-align: middle !important;
 }

 .reservation-vertical-tbl th,
 .reservation-vertical-tbl td {
 	display: block;
 	width: 100%;
 }

 .reservation-vertical-tbl thead th {
 	text-align: center;
	background-color: #e5f7fa;
	border-bottom: .15rem solid #8edae5 !important;
 }

 .reservation-vertical-tbl tbody th {
 	text-align: left;
	background-color: #e5f7fa;
 }

 .reservation-vertical-tbl td {
 	vertical-align: middle !important;
 }

 .reservation-price-tbl td {
 	text-align: right !important;
 }

 .reservation-vertical-tbl-apply-use {
 	table-layout: fixed;
 	text-align: right !important;
 	margin-top: .5rem;
 	margin-bottom: .5rem;
 	width: 100%;
 }

 .reservation-vertical-tbl-apply-use th {
 	width: 10%;
	background-color: #e5f7fa;
 }

 .reservation-vertical-tbl-apply-use-hr {
 	border-radius: 0;
 	border-left: none;
 	border-right: none;
 	border-bottom: .12rem solid #A3A3A3;
 }

 .reservation-vertical-tbl-apply-use td:before,
 .reservation-vertical-tbl td:before {
 	content: attr(data-label);
 	font-size: .8rem;
 	font-weight: bold;
 	padding: 0rem 0.5rem;
 	color: #999;
 	display: block;
 	text-align: left;
 }

/* -------------------------------- * /


/* ================================ *
 *	ツールチップスタイル			*
 * ================================ */
 /* ツールチップ本体 */
.tooltip-inner {
	max-width: 600px;
	padding: 0.25rem 0.5rem;
	color: #000;
	text-align: left;
	text-align: start;
	background-color: #fff;
	background-clip: padding-box;
	border: 1px solid #000;
	border-radius: 0.3rem;
	opacity: 1;
}

/* ツールチップの背景の透過率 */
.tooltip.show {
	opacity: 1;
}

/* ツールチップの三角形部分 */
.tooltip .arrow::before, .tooltip .arrow::after {
	position: absolute;
	content: "";
	border-color: transparent;
	border-style: solid;
}

/* 上に出るツールチップ ----- start */
.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] {
	margin-bottom: 0.5rem;
}

.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow {
	bottom: 0;
}

.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before,
.bs-tooltip-top .arrow::after,
.bs-tooltip-auto[x-placement^="top"] .arrow::after {
	border-width: 0.5rem 0.5rem 0;
}

.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before {
	bottom: 0;
	border-top-color: #000;
}
.bs-tooltip-top .arrow::after, .bs-tooltip-auto[x-placement^="top"] .arrow::after {
	bottom: 1px;
	border-top-color: #fff;
}
/* 上に出るツールチップ ----- end  */

/* 右に出るツールチップ ----- start */
.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] {
	margin-left: 0.5rem;
}

.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow {
	left: calc(1px * -1);
	width: 0.5rem;
	height: 1rem;
	margin: 0.3rem 0;
}

.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before,
.bs-tooltip-right .arrow::after,
.bs-tooltip-auto[x-placement^="right"] .arrow::after {
	border-width: 0.5rem 0.5rem 0.5rem 0;
}

.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before {
	left: 0;
	border-right-color: #000;
}
.bs-tooltip-right .arrow::after, .bs-tooltip-auto[x-placement^="right"] .arrow::after {
	left: 1px;
	border-right-color: #fff;
}
/* 右に出るツールチップ ----- end  */

/* 下に出るツールチップ ----- start */
.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] {
	margin-top: 0.5rem;
}

.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow {
	top: calc(1px * -1);
}

.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before,
.bs-tooltip-bottom .arrow::after,
.bs-tooltip-auto[x-placement^="bottom"] .arrow::after {
	border-width: 0 0.5rem 0.5rem 0.5rem;
}

.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
	top: 0;
	border-bottom-color: #000;
}
.bs-tooltip-bottom .arrow::after, .bs-tooltip-auto[x-placement^="bottom"] .arrow::after {
	top: 1px;
	border-bottom-color: #fff;
}
/* 下に出るツールチップ ----- end  */

/* 左に出るツールチップ ----- start */
.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] {
	margin-right: 0.5rem;
}

.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow {
	right: calc(1px * -1);
	width: 0.5rem;
	height: 1rem;
	margin: 0.3rem 0;
}

.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before,
.bs-tooltip-left .arrow::after,
.bs-tooltip-auto[x-placement^="left"] .arrow::after {
	border-width: 0.5rem 0 0.5rem 0.5rem;
}

.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before {
	right: 0;
	border-left-color: #000;
}
.bs-tooltip-left .arrow::after, .bs-tooltip-auto[x-placement^="left"] .arrow::after {
	right: 1px;
	border-left-color: #fff;
}
/* 左に出るツールチップ ----- end  */

/* インフォメーションマーク関連のスタイル */
th .info-mark {
	position: absolute;
	right: 5px;
	bottom: 3px;
}

.info-mark i {
    color: #FFFFFF;
    background-color: #0056B3;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: solid 1px #0056B3;
}


.info-mark i:hover{
	color: #E6F0FA;
	background-color: #0056B3;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: solid 1px #0056B3;
}

/* ================================ *
 *	デジタル利用簿					*
 * ================================ */
/* 選択されたタブの色 */
.tab-color-custom.active {
  color: #fff;
  background-color: #2d96ff;
}

.emphasis-text{
	font-size: 1.25rem;
	font-weight: bold;
	
}

/* 編集モーダルのリンク */
.edit-modal-link {
  color: #0d6efd;
  text-align: center;
  cursor: pointer;
  text-decoration: none;
}

.edit-modal-link:hover,
.edit-modal-link:focus {
  color: #0a58ca;
  border-bottom: #0a58ca 1px;
  text-decoration: underline;
}

/* ================================================================= *
 * --- Select2をBootstrap 4 (form-control-sm) に統合する最終確定版 --- *
 * ================================================================= */

/* 1. 選択ボックス本体（高さ・枠線・角丸） */
.select2-container--default .select2-selection--single {
    border: 1px solid #ced4da !important;
    height: calc(1.5em + 0.5rem + 2px) !important; /* Bootstrap smサイズ: 約31px */
    border-radius: 0.2rem !important;
    background-image: none !important; /* ブラウザ特有の背景矢印を消去 */
    background-color: #fff !important;
    display: flex !important;
    align-items: center !important;
}

/* 2. 選択中の文字（位置・サイズ） */
.select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 1.5 !important;
    padding: 0.25rem 0.5rem !important;
    font-size: 0.875rem !important;
    color: #4B5563 !important;
    width: 100% !important;
}

/* 3. 右側の矢印を「∨」ひとつにし、位置を中央に固定 */
.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 100% !important;
    width: 25px !important;
    top: 0 !important;
    right: 0 !important;
}
/* 元のしつこい矢印（bタグ）を完全に非表示にする */
.select2-container--default .select2-selection--single .select2-selection__arrow b {
    display: none !important;
}
/* 擬似要素でシンプルな「∨」を描画 */
.select2-container--default .select2-selection--single .select2-selection__arrow::after {
    content: "" !important;
    display: block !important;
    width: 0 !important;
    height: 0 !important;
    border-color: #495057 transparent transparent transparent !important;
    border-style: solid !important;
    border-width: 5px 4px 0 4px !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
}

/* 4. プルダウンリスト（下の枠）：角を角ばらせる */
.select2-dropdown {
    border-radius: 0 !important; /* 既存デザインに合わせ角丸をなくす */
    border: 1px solid #ced4da !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;
    z-index: 1051 !important;
}

/* 5. プルダウン内の各選択肢の余白とサイズ */
.select2-results__option {
    padding: 4px 8px !important;
    font-size: 0.875rem !important;
    line-height: 1.5 !important;
}

/* 6. リスト内で既に「選択済み」のアイテム（薄いグレー） */
.select2-container--default .select2-results__option[aria-selected="true"] {
    background-color: #f8f9fa !important;
    color: #333333 !important;
}

/* 7. マウスホバー・選択中の色（Bootstrap標準の青色） */
/* ※6番より後に書くことで、ホバー時の青色を優先させます */
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
    background-color: #007bff !important;
    color: #ffffff !important;
}

/* 8. 無効状態 (disabled) のデザイン */
.select2-container--default.select2-container--disabled .select2-selection--single {
    background-color: #e9ecef !important;
    cursor: not-allowed;
}

/* 予約カレンダー：日付セル */
.list-tbl th.schedule-date-header, .schedule-date-header {
	background-color: #E6F0FA;
	color: #000;
}

/* 予約カレンダー：日付セル（設備予約画面用） */
.schedule-date-header {
	background-color: #E6F0FA !important;
	color: #000 !important;
}


/* 予約カレンダー：項目名セル（設備名称・コメント）のデータ出力部背景色 */
.list-tbl td.schedule-data-highlight, .schedule-data-highlight {
	background-color: #E6F0FA !important;
}

/* 予約カレンダー：確認待ち（Action Required）バー */
.action-required-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	background-color: #FFF3C7;
	margin-bottom: 1rem;
}

.action-required-label {
	color: #B45309;
}

/* 予約カレンダー：「予約承認待ち」バッジのカラー指定 */
.badge-await-approval {
	background-color: #FEF3C8; color: #B45309;
}


/* 予約カレンダー：「菅」バッジのカラー指定 */
.badge-manager {
	background-color: #0056B3;
	color: #FFFFFF;
}

/* 予約カレンダー：前（次）の1週間/鉛筆バッジのカラー指定 */
.schedule-action-color {
	color: #0056B3;
}

.action-required-body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 0.65rem 1.25rem;
}

.action-required-item {
	padding: 0.15rem 0;
}

.action-required-item a {
	color: #212529;
}

/* 9. フォーカス時の青い枠線（Bootstrap標準） */
.select2-container--default.select2-container--focus .select2-selection--single {
    border-color: #80bdff !important;
    outline: 0 !important;
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25) !important;
}

/* 1行で3点リーダーにするクラス */
.ellipsis-line-1 {
    display: block;
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
	color: #0056B3;
}

/* 2行で3点リーダーにするクラス */
.ellipsis-line-2 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2; /* 表示する行数 */
    overflow: hidden;
}

/* テーブル内のテキスト用（英語・日本語が混ざっても綺麗に改行させる） */
.table-text-cell {
    word-break: break-all;
}



/* ================================ *
 *	ログインページ画面スタイル		*
 * ================================ */
 
 /* 画面全体のベースレイアウト */

 .login-page {
     height: 100vh !important;
     margin: 0;
     padding: 0;
     background-color: #e8f1fc; 
     font-family: 'Noto Sans JP', "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
     display: flex;
     flex-direction: column;
     overflow: hidden; 
 }

 /* 上部ヘッダー */
 .site-header {
     background-color: #E6F0FA; 
     padding: 0 24px !important;
     height: 60px !important;
     display: flex;
     align-items: center;
     justify-content: space-between; 
     width: 100%;
     flex-shrink: 0; 
 }
 /* 下部ヘッダー */ 
 .site-footer {
     background-color: #E6F0FA;
     width: 100%;
     height: 60px !important;     
     flex: none !important;       
     flex-shrink: 0 !important;
 }

 .header-left img {
     height: 45px; 
     width: auto;
 }

 .header-right {
     display: flex;
     align-items: center;
     gap: 24px; 
 }

 /* 右上リンク全体の共通設定 */
 .header-link {
     display: flex !important;
     align-items: center !important;
     text-decoration: none !important;
 }

 .header-link-icon {
     display: inline-flex !important;
     align-items: center !important;
     justify-content: center !important;
     width: 36px !important;                 
     height: 36px !important;                
     background-color: #005683 !important;   
     border-radius: 50% !important;          
     flex-shrink: 0 !important;
     position: relative !important;
     margin-right: 4px !important;          
 }

 .header-text {
     font-size: 1.1rem;
     color: #3f4d63;              
 }

 /* 中央ログインエリア ＆ 最下部水色エリア（大画面対策版） */
 .main-wrapper {
    flex: 1 0 auto;
     display: flex;
     flex-direction: column; 
     width: 100%;
 }

 /* 白背景エリア */
 .login-white-section {
     background-color: #ffffff; 
     width: 100%;               
     flex: 1 !important;            
     display: flex;
     align-items: center;       
     justify-content: center;   
     box-shadow: 0 4px 20px rgba(0, 0, 0, 0.02);
 }

 .inner-content-container-top {
     width: 100%;
     max-width: 700px;         
     margin: 0 auto;
     text-align: center;
     padding: 0 20px;
 }

 /* ボード内のパーツ調整（メッセージ・線） */
 .message-container {
     display: inline-block; 
     text-align: center;    
     margin: 0 auto;
 }

 .subtitle-ja {
     font-size: 1.4rem;     
     font-weight: 500;
     margin-top: 1px !important;       
     margin-bottom: 4px;  
     white-space: nowrap;
     letter-spacing: 0.02em;
     line-height: 1.2;
     color: #2d3748;
 }

 .subtitle-en {
     font-size: 1.05rem;    
     color: #6485c2;        
     display: block;
     text-align: center;    
     letter-spacing: 0.01em;
     margin-bottom: 0;    
     white-space: nowrap;
 }

 /* ボード内のパーツ調整（ボタン） */
 .custom-share-btn {
     border-radius: 20px !important;
     border-width: 2px !important;
     border-style: solid !important;
     transition: all 0.25s ease-in-out !important;
     width: 100% !important;
 }

 .custom-share-btn:hover {
     transform: translateY(-4px);
     box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15) !important;
 }
 
 .btn-icon {
     font-size: 4.5rem !important;
 }

 .btn-sub-text {
     font-size: 1.05rem !important;
 }

 .btn-share-internal {
     background-color: #D8D0E7 !important;
     border-color: #3E1485 !important;
     color: #3E1485 !important;
 }
 
 .btn-share-internal * {
     color: #3E1485 !important;
 }
 
 .btn-share-internal:hover,
 .btn-share-internal:hover * {
     background-color: #3E1485 !important;
     border-color: #3E1485 !important;
     color: #FFFFFF !important;
 }
 
 .btn-share-internal:hover {
     transform: translateY(-3px);
     box-shadow: 0 8px 15px rgba(62, 20, 133, 0.3) !important;
 }

 .btn-share-external {
     background-color: #E6F0FA !important;
     border-color: #0056B3 !important;
     color: #0056B3 !important;
 }
 
 .btn-share-external * {
     color: #0056B3 !important;
 }
 
 .btn-share-external:hover,
 .btn-share-external:hover * {
     background-color: #0056B3 !important;
     border-color: #0056B3 !important;
     color: #FFFFFF !important;
 }
 
 .btn-share-external:hover {
     transform: translateY(-3px);
     box-shadow: 0 8px 15px rgba(0, 86, 179, 0.3) !important;
 }

 .btn-main-title {
     font-size: 1.8rem !important;
     font-weight: bold !important;
 }

 .btn-sub-container {
     display: block;
     line-height: 1.25;     
     margin-bottom: 0;      
 }

 .btn-sub-text {
     font-size: 1.1rem; 
     color: #4B5563;
     display: block;
     font-weight: normal;
     margin: 0 !important;  
 }
 
 .btn-sub-en {
     font-size: 0.85rem !important;
     opacity: 0.9;
 }
 
 /* 認証ページのレイアウト調整 */
 .card-header,.card-footer {
	background-color: #E6F0FA;
	border-color: #0056B3;
	color: #0056B3 !important;
 }
 
 /* 利用申請/予約不可の際のメッセージ */
 .alert-danger{
	background-color: #FEE2E2;
	color: #C2410C;
 }
 
 /* ---------------------------------- *
  * 学外ログインページ                 *
  * ---------------------------------- */

  /* ログインエリア部 */
  .inner-content-container {
      width: 100%;
      max-width: 640px;      
      margin: 0 auto;
      text-align: center;
      padding: 30px 45px; 
      
      background-color: #E6F0FA !important; 
      border: 2px solid #0056B3 !important;  
      border-radius: 12px !important;       
  }

  .login-page-title {
      color: #0056B3 !important;
      font-weight: bold !important;
  }

  .login-page-subtitle {
      color: #0056B3 !important;
  }

  /* ログインフォーム枠 */
  .login-form-box {
      background-color: #ffffff;
      border: 1px solid #ced4da;
      padding: 20px 24px; 
      border-radius: 4px;
      text-align: left; 
      max-width: 520px; 
      margin: 0 auto;
  }

  /* 入力欄のアイコン枠 */
  .input-group-text {
      background-color: #e9ecef !important;
      border-color: #ced4da !important;
      color: #6c757d !important;
      width: 38px;
      justify-content: center;
      padding: 0;
  }

  .custom-input {
      height: 38px !important; 
      font-size: 0.95rem !important;
      background-color: #fdfdfd !important;
  }
  .custom-input::placeholder {
      color: #a0aec0;
  }

  /* LOGIN NOW ボタン */
  .custom-login-submit-btn {
      background-color: #E6F0FA !important;
      border: 2px solid #0056B3 !important;
      color: #0056B3 !important;
      font-weight: bold !important;
      border-radius: 10px !important;
      transition: all 0.25s ease-in-out !important;
  }
  
  .custom-login-submit-btn:hover {
      background-color: #0056B3 !important;
      border-color: #0056B3 !important;
      color: #FFFFFF !important;
      transform: translateY(-2px);
      box-shadow: 0 5px 12px rgba(0, 86, 179, 0.3) !important;
  }

 /* 下部案内テキスト（スペース・ズレの完全解消） */
 .info-text-block {
     text-align: center;
     margin-bottom: 0;
     line-height: 1.5;
 }

 .info-text-ja {
     font-size: 0.95rem;
     color: #222222;
     margin-bottom: 2px; /* 英語との間の微小な隙間 */
     display: block;
 }
 .info-text-ja strong {
     font-weight: 700;
 }

 .info-text-en {
     font-size: 0.85rem;
     color: #555555;
     margin-bottom: 0;
     display: block;
 }

 /* テキスト内の青色リンク */
 .info-link-blue {
     color: #0080ff !important;
     text-decoration: none !important;
 }
 .info-link-blue:hover {
     text-decoration: underline !important;
 }

 /* 下部の区切り破線 */
 .info-divider {
     width: 100%;
     border-top: 1px dashed #ced4da;
     margin-top: 12px;
     margin-bottom: 12px;
 }
  
  /* -------------------------------- *
   *	ボタン類の修正  	          *
   * -------------------------------- */
   .btn-info {
   	font-family: sans-serif !important;
   	box-shadow: none !important;
   	-webkit-box-shadow: none !important;
   	
   	background-color: #E6F0FA !important;
   	border-color: #0056B3 !important;
   	color: #0056B3 !important;
   	transition: all 0.2s ease-in-out;
   }

   .btn-info:hover,
   .btn-info:focus,
   .btn-info:active {
   	background-color: #0056B3 !important;
   	border-color: #0056B3 !important;
   	color: #FFFFFF !important;
   	box-shadow: none !important;
   }
   
   .btn-success {
   	font-family: sans-serif !important;
   	box-shadow: none !important;
   	-webkit-box-shadow: none !important;
   	background-color: #EEF7DC !important;
   	border-color: #5E8C31 !important;
   	color: #5E8C31 !important;
   	transition: all 0.2s ease-in-out;
   }

   .btn-success:hover,
   .btn-success:focus,
   .btn-success:active {
   	background-color: #5E8C31 !important;
   	border-color: #5E8C31 !important;
   	color: #FFFFFF !important;
   	box-shadow: none !important;
   }
   
   .btn-secondary {
   	font-family: sans-serif !important;
   	box-shadow: none !important;
   	-webkit-box-shadow: none !important;
   	background-color: #F8FAFC !important;
   	border-color: #CBD5E1 !important;
   	color: #334155 !important;
   	transition: all 0.2s ease-in-out;
   }

   .btn-secondary:hover,
   .btn-secondary:focus,
   .btn-secondary:active {
   	background-color: #E5E7EB !important;
   	border-color: #94A3B8 !important;
   	color: #334155 !important;
   	box-shadow: none !important;
   }
   
   .btn-cancel {
   	font-family: sans-serif !important;
   	box-shadow: none !important;
   	-webkit-box-shadow: none !important;
   	background-color: #FEE2E2 !important;
   	border-color: #C2410C !important;
   	color: #C2410D !important;
   	transition: all 0.2s ease-in-out;
   }

   .btn-cancel:hover,
   .btn-cancel:focus,
   .btn-cancel:active {
   	background-color: #C2410C !important;
   	border-color: #C2410C !important;
   	color: #FFFFFF !important;
   	box-shadow: none !important;
   }
   
   .btn-change {
   	font-family: sans-serif !important;
   	box-shadow: none !important;
   	-webkit-box-shadow: none !important;
   	background-color: #FEF3C7 !important;
   	border-color: #B45309 !important;
   	color: #B45309 !important;
   	transition: all 0.2s ease-in-out;
   }

   .btn-change:hover,
   .btn-change:focus,
   .btn-change:active {
   	background-color: #B45309 !important;
   	border-color: #B45309 !important;
   	color: #FFFFFF !important;
   	box-shadow: none !important;
   }
   
   .btn-secondary {
   	font-family: sans-serif !important;
   	box-shadow: none !important;
   	-webkit-box-shadow: none !important;
   	background-color: #F8FAFC !important;
   	border-color: #CBD5E1 !important;
   	color: #334155 !important;
   	transition: all 0.2s ease-in-out;
   }

   .btn-secondary:hover,
   .btn-secondary:focus,
   .btn-secondary:active {
   	background-color: #E5E7EB !important;
   	border-color: #94A3B8 !important;
   	color: #334155 !important;
   	box-shadow: none !important;
   }
   
   .btn-primary {
   	font-family: sans-serif !important;
   	box-shadow: none !important;
   	-webkit-box-shadow: none !important;
   	background-color: #F8FAFC !important;
   	border-color: #334155 !important;
   	color: #334155 !important;
   	transition: all 0.2s ease-in-out;
   }

   .btn-primary:hover,
   .btn-primary:focus,
   .btn-primary:active {
   	background-color: #334155 !important;
   	border-color: #334155 !important;
   	color: #FFFFFF !important;
   	box-shadow: none !important;
   }
   
   /* 編集【学外】用ボタン（研究課題情報一覧） */
   .btn-purple {
	font-family: sans-serif !important;
	box-shadow: none !important;
	-webkit-box-shadow: none !important;
	background-color: #B5B5DB !important;
	border-color: #6B4978 !important;
	color: #6B4978 !important;
	transition: all 0.2s ease-in-out;
   }
   
   .btn-purple:hover,
   .btn-purple:focus,
   .btn-purple:active {
   	background-color: #6B4978 !important;
   	border-color: #6B4978 !important;
   	color: #FFFFFF !important;
   	box-shadow: none !important;
   }
   
   /* 代理予約専用 */
   .btn-proxy-account {
	background-color: #005683;
	color: #FFFFFF;
   }
   

    /*	お知らせ表示 */
	.alert-warning {
		background-color: #FEF3C7;
		color: #B45309 !important;
		border-color: #B45309 !important;
	}
	
	/*	お知らせボタン */
	.badge-warning {
		background-color: #B45309;
		color: #FFFFFF !important;
	}
	
	
	/*	注釈文字  */
	.text-danger {
		color: #C2410C !important;
	}
	
	/*	必須バッジ  */
	.badge-danger {
		background-color: #FEE2E2;
		border: 1px solid #C2410C;
		color: #C2410C;
		font-weight: normal;
	}
	
	/* 共通ヘッダーの利用者名/メニュー部分（bootstrapのスタイルを上書き） */
	#navbarDropdown,
	#navbarDropdown *,
	.dropdown-item,
	.dropdown-item * {
	  color: #4B5563;
	}
	
	#navbarDropdown:hover,
	#navbarDropdown:hover * {
	  color: #0D0116 !important; 
	}
	
	/* リンク文字のスタイル調整 */
	a:not([class]) {
	  color: #0056B3 !important;
	  text-decoration: none !important;
	}

	a:not([class]):hover {
	  color: #004494 !important;
	  text-decoration: underline !important;
	}
   
	.card-link {
	  color: #0056B3 !important;
	  text-decoration: none !important;
	}

	/* ボタン類以外のリンク文字で、クラスが設定されているものは↓に記述 */
	.card-link:hover,
	.ellipsis-line-1:hover,
	.schedule-action-color:hover 
	 {
	  color: #004494 !important;
	  text-decoration: underline !important;
	}
   