html,
body {
  height: 100%;
  /* htmlとbodyの高さを100% */
  margin: 0;
  /* デフォルトのマージンをリセット */
  display: flex;
  flex-direction: column;
  /* 縦方向のフレックスに設定 */
  overflow: auto;
  font-family: 'Meiryo';
  background-color: #D9D9D9;
}

/* ヘッダーの高さ */
.header-height {
  height: 56px;
}

/* ヘッダー背景色 */
.bg-light {
  background-color: #050E4E !important;
}

/* ヘッダーコンテナ */
.header-container {
  width: 100%;
  min-width: 1900px; /* min-width　フルHDサイズ1920pxを指定すると、エッジでスクロールが表示されてしまうので、最大サイズより少し小さいサイズを指定する */
  background-color: #050E4E !important;
}

/* メインレイアウトコンテナ - サイドメニューとコンテンツの水平配置 */
.flex-container {
  display: flex;
  flex-direction: row;
  height: calc(100vh - 56px);
  min-height: calc(100vh - 56px); 
  padding-left: 0px;
}

/* サイドメニューコンテナ - 垂直メニューの基本構造 */
.submenu-width {
  width: 240px;
  background-color: #000E4E !important;
  height: 100%;  /* ヘッダーの高さを引いた値 */
}

/* サブメニュー 非表示設定*/
.submenu {
  display: none;    /* 初めはサブメニューを非表示に */
}

.nav-item {
  margin-left: 0px;
  margin-right: 0px;
}

.nav-link {
  background-color: #14248B;
  height: 40px;
}

.nav-active {
  border-left: 20px solid aqua;
  background-color: #D9D9D9;
  padding-left: 2px;
  height: 48px;
  align-items: center;
}

.nav-passive {
  border-left: 20px solid #D9D9D9;
  padding-left: 2px;
  height: 48px;
  align-items: center;
}

.nav-portal {
  border-left: 20px solid #14248B;
  padding-left: 2px;
  height: 48px;
  align-items: center;
}

side-menu-item {
  margin-top: 10px;
  margin-bottom: 10px;
  padding-right: 0px;
  background-color: #050E4E;
}

.side-menu-icon {
  width: 32px;
  height: 32px;
  margin-bottom: 10px;
}

margin-top20px {
  margin-top: 20px !important;
}

/* 所属テキスト */
.navbar-upper-text {
  text-align: left;
  margin-top: 0px;
  margin-left: 200px;
  margin-right: 0px;
  margin-bottom: 0px;
  line-height: 1.1;
}

/* 氏名テキスト */
.navbar-lower-text {
  text-align: left;
  margin-top: 4px;
  margin-left: 200px;
  margin-right: 0px;
  margin-bottom: 0px;
  line-height: 1.1;
}
/* サイドメニュー部 ここまで */

/* メインコンテンツ */
.main-content {
  flex-grow: 1;
  /* メインコンテンツの幅を100VW-サイドメニューの幅に設定 */
  width: 100%;
  /* メインコンテンツの高さをヘッダーの高さを引いた高さに設定 */
  height: calc(100vh - 56px);
  background-color: #D9D9D9 !important;
}

.login-main-content {
  padding: 15px;
  /* メインコンテンツの幅を100%に設定 */
  width: 100%;
  /* メインコンテンツの高さをヘッダーの高さを引いた高さに設定 */
  height: calc(100vh - 56px);
  background-color: #D9D9D9;
}

.main-area {
  width: 100%;
  min-width: 1900px; /* min-width　フルHDサイズ1920pxを指定すると、エッジでスクロールが表示されてしまうので、最大サイズより少し小さいサイズを指定する */
  background-color: #D9D9D9 !important;
}

.user-login-area {
  width: 944px;        /* 固定幅 */
  height: 666px;       /* 固定高さ */
  background-color: #ffffff;
  border-radius: 40px;
}

.user-area {
  width: 1590px; /* 1600pxで調整するとエッジでスクロールが表示されてしまうので、スクロールが表示されないサイズに調整 */
  height: 780px;       /* 固定高さ */
  min-width: 1590px;   /* 最小幅 */
  min-height: 780px;   /* 最小高さ */
  background-color: #ffffff;
  border-radius: 40px;
  margin: 24px;
}

.user-login-title-icon {
  width: 36px;
  height: 36px;
  margin-right: 16px;
  margin-bottom: 5px;
}

.title-icon {
  width: 24px;
  height: 24px;
  margin-right: 5px;
  margin-bottom: 5px;
}

/* タイトル下線 */
.boundary-line {
  margin: 0 auto;
  box-sizing: border-box;
  border-width: 0;
  border-style: solid;
  /* border-color: var(--pcoui-color-border-default); */
  border-color: #CCCCCC;
  border-top-width: 1px;
  /*border-color:rgba(0,0,0,0.9);*/
  width:83%;
}

/* フォントサイズ 36px */
.font-size-36 {
  font-size: 36px;
}

/* フォントサイズ 32px */
.font-size-32 {
  font-size: 32px;
}

/* フォントサイズ 24px */
.font-size-24 {
  font-size: 24px !important;
}

/* フォントサイズ 20px */
.font-size-20 {
  font-size: 20px;
}

/* フォントサイズ 20px */
.font-size-16 {
  font-size: 16px;
}

/* 文字色：グレー */
.text-gray {
  color: #7C7C7C !important;
}

/* 文字色：赤 */
.alert-text {
  color: red !important;
}

/* 文字色:白 */
text-white {
  color: #FFFFFF;
}

/* 検索条件表示エリア */
.search-conditions-area {
  background-color: #707070;
  margin-top: 0px;
  margin-bottom: 0px;
  margin-left: 20px;
  margin-right: 20px;
  width: 1590px;
  min-width: 1590px;   /* 最小幅 */
}

/* 検索条件入力フォーム全体 */
.search-conditions-form {
  padding-left: 15px;
  padding-right: 15px;
  padding-top: 0px;
  padding-bottom: 0px;
  margin-top: 5px;
  margin-bottom: 0px;
}

/* 検索条件入力フォーム 項目名 */
.search-conditions-item-name {
  width: 150px;
  margin-top: 5px;
  margin-bottom: 3px;
  padding: 0px;
}

/* 検索条件入力フォーム 入力欄 */
.search-conditions-item {
  margin-top: 5px;
  margin-bottom: 3px;
  padding: 0px;
}

.search-result-area {
  background-color: #FFFFFF;
  margin: 20px;
  width: 1590px;
  min-width: 1590px;   /* 最小幅 */
}

.search-result-record-count-area {
  margin-left: 20px;
  margin-top: 20px;
  margin-bottom: 0px;
  padding-bottom: 0px;
}

.search-result-record-count-text-area {
  margin-bottom: 0px;
}

.search-conditions-input {
  width: 782px;
  align-items: center;
  font-size: 16px;
  height: 30px !important;
}

.search-conditions-select {
  width: 150px;
  align-items: center;
  font-size: 16px;
  height: 30px !important;
}

.search-conditions-date-input {
  width: 130px;
  align-items: center;
  font-size: 16px;
}

.pass-summary-result-area {
  background-color: #FFFFFF;
  margin: 20px;
  width: 1590px;
  min-width: 1590px;   /* 最小幅 */
  height: 720px;
  min-height: 720px; /* 最小高さ */
}

.item-height {
  height: 38px;
}

.input-text {
  border: 1px solid #7C7C7C;
  color: #1A1A1A;
  border-radius: 10px;
  width: 400px;
}

.input-select {
  border: 1px solid #7C7C7C;
  color: #1A1A1A;
  border-radius: 10px;
  width: 150px;
  height: 36px;
}

.input-text-short {
  width: 160px;
  display: inline-block;
}

.input-text-long {
  width: 480px;
  display: inline-block;
}

.input-custom-file-upload {
  display: inline-block;
  padding: 6px 12px;
  cursor: pointer;
  border-radius: .25rem;
}

.input-custom-file {
  display: none; /* 実際のファイル入力を非表示にする */
}

.btn-rounded {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0;
  border-radius: 4px;
  font-size: 18px;
  font-weight: bold;
  font-style: normal;
  line-height: 1.5;
  vertical-align: top;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  outline: none;
  width: 150px;
}

.btn-cancel {
  background-color: #E4E4E4;
  color: #8A8A8A;
  border-radius: 30px; /* 丸さを調整 */
  width: 150px;
  font-size: 18px; /* フォントサイズ調整 */
  font-weight: bold;
  border: 2px solid #8A8A8A;
}

/* プライマリボタン（青色） */
.btn-rounded.btn-primary {
  background-color: #0063CC;
  color: #ffffff;
  border: 2px solid #0063CC;
}

.btn-rounded.btn-primary:hover {
  background-color: #004A99;
  border-color: #004A99;
  /* transform: translateY(-2px); */ /* ✅ 少し浮き上がる効果 */
  box-shadow: 0 4px 8px rgba(13, 110, 253, 0.3);
}

.btn-rounded.btn-primary:active {
  background-color: #003166;
  /* transform: translateY(0); */
  box-shadow: 0 2px 4px rgba(13, 110, 253, 0.3);
}

.btn-rounded.btn-primary:disabled {
  background-color: #B8CFE6;
  border-color: #B8CFE6;
  opacity: 0.5;
  cursor: not-allowed;
}

/* ターシャリーボタン */
.btn-tertiary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0;
  border-radius: 4px;
  font-size: 18px;
  font-weight: bold;
  font-style: normal;
  line-height: 1.5;
  vertical-align: top;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  outline: none;
  width: 150px;
  background-color: #FFFFFF;
  color: #1A1A1A;
  border: 2px solid #808080; /* ✅ 追加 */
  transition: all 0.3s ease; /* ✅ 追加 */
}

.btn-tertiary:hover {
  background-color: #E6E6E6;
  border-color: #808080;
  color: #1A1A1A;
  box-shadow: 0 4px 8px rgba(138, 138, 138, 0.2);
}

.btn-tertiary:active {
  background-color: #CCCCCC;
  border-color: #808080;
  color: #1A1A1A;
}

.btn-tertiary:disabled {
  background-color: #FFFFFF;
  border-color: #CCCCCC;
  color: #B3B3B3;
  opacity: 0.5;
  cursor: not-allowed;
}

.button-mergin-left-100 {
  margin-left: 100px;
}

.button-mergin-right-100 {
  margin-right: 100px;
}

.row-margin-6 {
  margin-top: 6px;
  margin-bottom: 6px;
}

.row-margin-8 {
  margin-top: 8px;
  margin-bottom: 8px;
}

.row-margin-24 {
  margin-top: 24px;
  margin-bottom: 24px;
}

.row-margin-48 {
  margin-top: 48px;
  margin-bottom: 18px;
}

.table-container {
  max-height: 562px;
  /* スクロール領域の最大高さ */
  overflow-y: auto;
  /* 縦方向のオーバーフローをスクロール可能にする */
  width: 90%;
}

table {
	border-collapse:separate;
	border-spacing:0;
  width: 100% !important;
	/*width:auto;*/
}

thead th {
  position: sticky;
  /* ヘッダーを固定 */
  top: 0;
  /* 固定位置を設定 */
  background-color: #f8f9fa;
  /* 背景色を設定（オプション） */
  z-index: 10;
  /* ヘッダーを手前に表示 */
}

/** テーブル ヘッダ 左端 */
.th-border-start {
  border-left: solid 1px #757575;
  border-top: solid 1px #757575;
  border-bottom: solid 1px #757575;
}

/** テーブル ヘッダ 中央 */
.th-border {
  border-left: solid 1px #757575;
  border-top: solid 1px #757575;
  border-bottom: solid 1px #757575;
}

/** テーブル ヘッダ 右端 */
.th-border-end {
  border-left: solid 1px #757575;
  border-top: solid 1px #757575;
  border-bottom: solid 1px #757575;
  border-right: solid 1px #757575
}

/** テーブル 左端 */
.td-border-start {
  border-left: solid 1px #757575;
  border-bottom: solid 1px #757575;
}

/** テーブル 中央 */
.td-border {
  border-left: solid 1px #757575;
  border-bottom: solid 1px #757575;
}

/** テーブル 右端 */
.td-border-end {
  border-left: solid 1px #757575;
  border-bottom: solid 1px #757575;
  border-right: solid 1px #757575
}

.td-height {
  height: 30px !important;
}

.text-user-list-header-center {
  text-align: center;
  padding: 4px !important;
  font-weight: normal;
}

.text-user-list-header-left {
  text-align: left;
  padding-left: 20px !important;
  padding-right: 4px !important;
  padding-top: 4px !important;
  padding-bottom: 4px !important;
  font-weight: normal;
}

.text-user-list-row-left {
  text-align: left;
  padding-left: 20px !important;
  padding-right: 4px !important;
  padding-top: 4px !important;
  padding-bottom: 4px !important;
}

.text-user-list-row-center {
  text-align: center;
  padding: 4px !important;
}

.text-user-list-row-right {
  text-align: right;
  padding-left: 4px !important;
  padding-right: 20px !important;
  padding-top: 4px !important;
  padding-bottom: 4px !important;
}

.text-user-list-row-color {
  background-color: #F7F7F7 !important;
}

.search-result-delete-area {
  margin-left: 25px;
  margin-top: 16px;
  margin-bottom: 16px;
}

.rounded-number {
  display: inline-block;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  text-align: center;
  vertical-align: middle;
  line-height: 24px;
  /* 様々なフォントの配置に合わせるため */
  font-size: 14px;
  text-decoration: none;
  /* フォントサイズの調整 */
  margin-left: 4px;
  margin-right: 4px;
}

.rounded-number-text {
  background-color: #D9D9D9;
  color: #7C7C7C !important;
  border: 1px solid #7C7C7C;
}

.rounded-number-active {
  background-color: #7C7C7C;
  color: #FFFFFF !important;
  border: 1px solid #7C7C7C;
}


.mx-auto {
  margin-left: auto !important;
  margin-right: auto !important;
}

.mb-4 {
  margin-bottom: 1.5rem !important;
}

.mt-auto {
  margin-top: auto !important;
}

/* bootstrap5の入力欄で自動入力（オートフィル）機能を使用すると入力欄の背景色が青色になるのを抑止する　ここから */
 /* Autofill用のスタイルをリセット */
 input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 30px white inset !important; /* 背景色を元に戻す */
  box-shadow: 0 0 0 30px white inset !important; /* 背景色を元に戻す */
  -webkit-text-fill-color: #000; /* テキストの色を設定 */
 }

 /* このスタイルを追加してオートフィルの選択状態を無効に */
 input:-internal-autofill-selected {
  background-color: white !important; /* 指定したい背景色に変更 */
  color: #000 !important;  /* 指定したいテキスト色に変更 */
 }

 /* 追加: フォーカス時のスタイル */
 input:focus {
  box-shadow: none; /* フォーカス時のシャドウを無効化 */
  border-color: #80bdff; /* フォーカス時のボーダー色を設定（必要に応じて変更） */
 }
 /* bootstrap5の入力欄で自動入力（オートフィル）機能を使用すると入力欄の背景色が青色になるのを抑止する　ここまで */


 /* 入力欄の非活性 ここから */
.transparent-mail-input {
  background-color: rgba(255, 255, 255, 0.5); /* 透過度 50% の背景色 */
  color: rgba(0, 0, 0, 0.5); 
  border: 1px solid rgba(124, 124, 124);
}

.transparent-input {
  background-color: rgba(255, 255, 255, 0.5); /* 透過度 50% の背景色 */
  color: #1A1A1A; 
  border: 1px solid rgba(124, 124, 124);
}

.transparent-input::placeholder {
  color: rgba(124, 124, 124); /* プレースホルダーの色 CACACA*/
}

.item-height-50 {
  height: 50px;
}


.btn-none {
  display: none !important
}

/* オーバーレイのスタイル */
.overlay {
  position: fixed; /* 固定位置 */
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5); /* 半透明の黒背景 */
  display: flex; /* フレックスボックス */
  justify-content: center; /* 中央揃え（横） */
  align-items: center; /* 中央揃え（縦） */
  z-index: 9999; /* 最前面に表示 */
  display: none; /* 初期状態では非表示 */
  flex-direction: column; /* 縦に並べる */
}

/* 点滅アニメーション */
.blinking {
  animation: blink 1s infinite; /* 1秒間隔で無限に点滅 */
}
@keyframes blink {
  0%, 100% {
    opacity: 1; /* 完全表示 */
  }
  50% {
    opacity: 0; /* 完全非表示 */
  }
}
