html {
  height: 100%;
  font-size: 16px;
}

body
{
  height: 100%;
  margin: 0;
  padding: 0;
  background-color: #f4f4f4;
  font-family: 'Noto Sans JP', sans-serif;
}

b {
  font-size: 18px;
  font-weight: 500;
}

h2 {
  color: #0a2452;
}

.app {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: row;
  background-color: #f4f4f4;
  overflow: hidden;
}

.test #menu, .test #menu .logo, .test .hamburger{
  background-color: #EB5F50;
}

/*============
nav
=============*/
#navArea {
  z-index: 11;
}

/*スクロールバー全体*/
#navArea ::-webkit-scrollbar {
  width: 10px;
}

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

#navArea ::-webkit-scrollbar-thumb {
  background-color: rgba(200, 200, 250, .3);
  border-radius: 10px;
  box-shadow:0 0 0 1px rgba(255, 255, 255, .3);
}

nav {

  height: 100%;
  display: inline-block;
  -webkit-overflow-scrolling: touch;

}

 /* メニュートグル用チェックボックス */
 input.toggle[type="checkbox"]
 {
   display: block;
   top: 3px;
   left: 14px;
   width: 30px;
   height: 24px;
   position: fixed;

   cursor: pointer;

   opacity: 0; /* hide this */
   z-index: 14; /* and place it over the hamburger */

   -webkit-touch-callout: none;
 }

 input.toggle:checked
 {
   top: 3px;
   left: 209px;
 }


/* ---------------------- */
/* ハンバーガーメニュー */
.hamburger
{
  display: block;
  position: fixed;
  top: 10px;
  left: 17px;
  z-index: 13;
  margin-top: 14px;
  background-color: #0a2452;

  
  width: 30px;
  /** アニメーション速度(開閉速度) */
  transition: transform 0.3s cubic-bezier(0.77,0.2,0.05,1.0),
              background 0.4s cubic-bezier(0.77,0.2,0.05,1.0),
              opacity 0.45s ease;
}

.toggle {
  margin-top: 18px;
}

/* メニューを閉じるアニメーション */
input.toggle:checked ~ .hamburger
{
  transform: translate(196px, 0px);
}

.hamburger span
{
  display: block;
  width: 24px;
  height: 3px;
  margin-bottom: 4px;
  position: relative;

  background: #eee;
  border-radius: 3px;

  z-index: 11;

  transform-origin: 4px 0px;

  /** アニメーション速度(アイコン変形速度) */
  transition: transform 0.3s cubic-bezier(0.77,0.2,0.05,1.0),
              background 0.3s cubic-bezier(0.77,0.2,0.05,1.0),
              opacity 0.35s ease;

}

/* 上部 */
.hamburger span:first-child
{
  transform-origin: 0% 0%;
}

/* 中央 */
.hamburger span:nth-last-child(2)
{
  transform-origin: 0% 100%;
}


input.toggle:checked ~ .hamburger span
{
  opacity: 1;
  background: #eee;
}

/* アニメーション */

/* close hoover */
/* 上部 */
input.toggle:hover ~ .hamburger span:first-child
{
  transform: rotate(-45deg) translate(-2px, 21px) scale(0.5, 1);
}
/* 中央 */
input.toggle:hover ~ .hamburger span:nth-last-child(2)
{
  transform: rotate(0deg);
}
/* 下部 */
input.toggle:hover ~ .hamburger span:nth-last-child(1)
{
  transform: rotate(45deg) translate(-1px, -19px) scale(0.5, 1);
}

/* open hoover */
/* 上部 */
input.toggle:checked:hover ~ .hamburger span:first-child
{
  transform: rotate(45deg) translate(7px, 4px) scale(0.5, 1);
}

/* 中央 */
input.toggle:checked:hover ~ .hamburger span:nth-last-child(2)
{
  transform: rotate(0deg);
}
/* 下部 */
input.toggle:checked:hover ~ .hamburger span:nth-last-child(1)
{
  transform: rotate(-45deg) translate(4px, -8px) scale(0.5, 1);
}


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

/* メニューコンテンツ */

#menu {
  top: 0;
/*   position: fixed; */
  background-color: #0a2452;

  margin: 0;
  padding: 0px 0 0 0px;
  height: inherit;
  transition: 0.3s cubic-bezier(0.77,0.2,0.05,1.0);
  width: 64px;
/*   left: -350px; */
  overflow-x: hidden;
  overflow-y: auto;
  box-sizing: border-box;
}

#menu ul {
  padding: 0;
  list-style:“ none;
}

#menu li div {
  display: flex;
  margin-left: 10px;
}

#menu a {
  padding-right: 1rem;
  padding: 9px 0 9px 0px;
  font-size: 16px;
  /* position: absolute; */
  display: block;
  color: white;
  text-decoration: none;

  /* 折り返し禁止 */
  word-break: keep-all;
  overflow-x: hidden;
}

#menu a span {
  padding: 6px 0;
  white-space: nowrap;
}

#menu li:hover {
  background-color: #3B5C7E;
}

#menu .now {
  background-color: #ADDCE4;
}

#menu img {
  width: 36px;
  height: 36px;
  margin-right: 17px;
  filter: invert(1);
}

#menu .logo
{
  background-color: #0a2452;
  position: sticky;
  top: 0;
  z-index: 12;
  width: inherit;
  /* margin: 38px 0 10px 30px; */
  padding: 20px 0 15px 15px;
}

#menu .logo img
{ 
  visibility: hidden;
  width: fit-content;
  height: fit-content;
}

#menu hr {
  border-top: 1px solid rgba(255,255, 255, 0.5);
  margin: 15px 12px;
}

/* https://codepen.io/sosuke/pen/Pjoqqp */
#menu .report {
	color: #9ae8f5;
  filter: invert(83%) sepia(15%) saturate(1046%) hue-rotate(160deg) brightness(105%) contrast(92%);
}

#menu .project {
	color: #fcd557;
  filter: invert(96%) sepia(84%) saturate(6495%) hue-rotate(315deg) brightness(105%) contrast(105%);
}

#menu .travel {
	color: #8ce89e;
  filter: invert(87%) sepia(8%) saturate(2038%) hue-rotate(72deg) brightness(102%) contrast(82%);
}

#menu .now img {
  filter: invert(10%) sepia(39%) saturate(4088%) hue-rotate(210deg) brightness(94%) contrast(98%);
}

.now span {
  color: #0a2452;
}

/*
* メニュー表示(open)
*/
input.toggle:checked ~ #menu
{
  width: 255px;
}

input.toggle:checked ~ #menu .logo img
{
  visibility: visible;
  filter: none;
}

/*============
main
=============*/
/* main { */
  /* padding: 50px; */
/* } */
.title {
  font-family: 'Open Sans', sans-serif;
  font-weight: 400;
  text-align: center;
}

/* ヘッダとコンテンツ */
.main {
  width: inherit;
  height: 100%;
  overflow-y: auto;
}

#header {
  height: 100px;
  width: inherit;
  background-color: white;
  z-index: 10;
  
  display: flex;
  place-items: center;
  gap: 20px;

  /* 上寄せ */
  top: 0;
  position: sticky;
}

#mobile_header {
  height: 60px;
  width: inherit;
  background-color: white;
  z-index: 10;
  
  display: flex;
  place-items: center;
  gap: 20px;

  /* 上寄せ */
  top: 0;
  position: sticky;
}

.contents {
  width: inherit;
  padding: 20px;
}

#loading {
  display: table;
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  cursor: wait;
  z-index: 1051;
  color: #eee;
}
 
#loading .loadingMsg {
  display: table-cell;
  text-align: center;
  vertical-align: middle;
  background-color: black;
  opacity: 0.6;
}

.datepicker-days th.dow:first-child,
.datepicker-days td:first-child {
    color: #f00;
}
.datepicker-days th.dow:last-child,
.datepicker-days td:last-child {
    color: #00f;
}


/* メッセージ */
#message_deco {
  position: fixed;
  z-index: 500;
  width: -webkit-fill-available;
  top: 5px;
  background-color: #444;
  margin: 0 10px;
  transition: 0.3s cubic-bezier(0.77,0.2,0.05,1.0);
  height: 0;
}

#message_deco.visible {
  padding: 10px;
  height: auto;
}


/*============
共通パーツ
=============*/

.btn-outline-primary {
  color: #325cc1;
  border-color: #325cc1;
}
.btn-outline-primary:hover {
  color: #325cc1;
  border-color: #325cc1;
  background-color: transparent;
  opacity: 0.8;
}
.btn-outline-primary:focus {
  color: #325cc1;
  border-color: #325cc1;
  background-color: transparent;
  opacity: 0.8;
}
.btn-outline-primary:active {
  color: #325cc1;
  border-color: #325cc1;
  background-color: transparent;
  opacity: 0.8;
}

.btn-success {
  background-color: #4ABF75;
}
.btn-success:hover {
  color: #fff;
  background-color: #4ABF75;
  opacity: 0.8;
}
.btn-success:focus {
  color: #fff;
  background-color: #4ABF75;
  opacity: 0.8;
}
.btn-success:active {
  color: #fff;
  background-color: #4ABF75;
  opacity: 0.8;
}

.btn-info {
  background-color: #325CC1;
  border-color: #325CC1;
}

.btn-info:hover {
  background-color: #325CC1;
  border-color: #325CC1;
  opacity: 0.8;
}

.btn-primary {
  background-color: #325CC1;
  border-color: #325CC1;
}

.btn-primary:hover {
  background-color: #325CC1;
  border-color: #325CC1;
  opacity: 0.8;
}


.btn-info:focus {
  background-color: #325CC1;
  opacity: 0.8;
}
.btn-info:active {
  background-color: #325CC1;
  opacity: 0.8;
}

.btn-danger:hover {
  color: #fff;
  background-color: #c82333;
  border-color: #bd2130;
  opacity: 0.8;
}

.btn-danger:focus {
  color: #fff;
  background-color: #c82333;
  border-color: #bd2130;
  opacity: 0.8;
}
.btn-danger:active {
  color: #fff;
  background-color: #c82333;
  border-color: #bd2130;
  opacity: 0.8;
}

.link{
  color: #325cc1;
  text-decoration: underline;
}

.link:hover{
  color: #325cc1;
  cursor: pointer;
  text-decoration: none;
}

.btn:hover {
  opacity: 0.8;
}


/* テーブル */

.table-striped tbody tr:nth-of-type(odd) {
  background-color: white;
}

.header {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 10;
  background-color: #e6e6e6;
  color: #0a2452;
  text-align: center;
}

/* .table-bordered td, .table-bordered th {
  border-right: 0px solid #dee2e6;
} */
#table_height{
  max-height: 760px;
}

.center{
  text-align: center;
}

.modal-content {
  border-radius: 10px;
}

#append div table th, #table_append div table th {
  position: sticky;
  top: 0;
  /* background-color:#e6e6e6; */
  color: #000;
  /* height: 40px; */
  border-width: 0 1px;
  border-color :#cdd6dd;
}

#append div table th::before, #table_append div table th::before{
	content : "" ;
	position : absolute ;
	top : 0 ;
	left : 0 ;
	width : 100% ;
	height : 100% ;
  pointer-events: none;
  border:1px solid #dee2e6;
}
#append div table td, #append div table td {
  /* height: 40px; */
  border:1px solid #dee2e6;
}

.table-td-name {
  text-align: left;
  padding-left: 20px;
}

#append div table, #table_append div table {
  grid-area: content;
  border-spacing: 0;
  border-collapse: separate;
}

tbody tr:nth-child(odd) {
  background: #fff;
}
tbody tr:nth-child(even) {
  background:#f2f6fa;
}

button span {
  vertical-align: middle;
}
.table {
  margin-bottom: 0;
}

/* モーダル用 クローズボタン */
.close-button {
  float: right;
  border: none;
  background: none;
  width: 40px;
  height: 40px;
}
.close-button .icon {
  width: 32px;
  height: 32px;
}