html {font-size: 62.5%;}

/*リセット*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td, button, input, textarea {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
	line-height: 1;

}
:root {
  --side-menu-width: 200px;
  --container-extra-margin: 3em; /* 任意の数値に調整 */
  --container-extra-width: 10em;  /* 任意の数値に調整 */
}


p{
	line-height: 1.5;
}
*{
	-webkit-appearance:none;
}
a,
i.fa,i.fas,i.fab{
	cursor: pointer;
	text-decoration: none;
}
.container {
	width: calc(100% - 165px - 10em);
	margin: 15px auto;
	background: rgba(255, 255, 255, 0.95);
	padding: 2em;
	z-index: 2;
	margin-left: calc(190px + 3em);
	min-height: calc(100vh - 86px);
	border-radius: 5px;
	box-shadow: 1px 1px 5px rgb(0 0 0 / 10%);
	overflow: hidden;
}
.container select{
	width: 100%;
}
.container.expanded {
  margin-left: calc(60px + 3em); /* サイドメニューの縮小幅に合わせる */
  width: calc(100% - 40px - 10em); /* 拡張された幅 */
}
.container.full {
	max-width: 100%;
}

body {
	font-family:"メイリオ", Meiryo, sans-serif;
	font-style: normal;
	line-height: 1.5em;
	font-size: 14px;
	font-weight: 400;
	color:#000;
	width: 100%;
	display: flex;
	box-shadow: 1px 1px 2px #50a3a2;
	background: #f6ff50;
	/* background: -webkit-linear-gradient(top left,#5058a3 0%,#53b8e3 100%);
	background: -moz-linear-gradient(top left,#5058a3 0%,#53b8e3 100%);
	background: -o-linear-gradient(top left,#5058a3 0%,#53b8e3 100%);
	background: linear-gradient(to bottom right,#5058a3 0%,#53b8e3 100%);
	background: linear-gradient(to bottom right,#7ECAF7 0%,#1D0000 100%);
	background: linear-gradient(to bottom right,#1C144E 0%,#1D0000 100%); */
	/* background-image: linear-gradient(to top, #96fbc4 0%, #f9f586 30%); */
	padding: 0;
	margin: 0;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
	/* background:linear-gradient(to bottom, #FFADF7 ,#B1FF96 ) !important; */
	/* animation: fadein 1.5s forwards; */
}
.btn-navi ul li a{
	background: #000 !important;
}
li{
	list-style: none;
}

@keyframes fadein {
	0% {opacity: 0.2}
	100% {opacity: 1}
}

button{
	font-size: 14px;
	font-weight: 400;
	margin: 0;
}
.td_btn{
	width: 150px;
	text-align: center;
}
.search {
	width: 100%;
	text-align: center;
	display: flex;
}

textarea,
select,
input[type="url"],
input[type="search"],
input[type="datetime-local"],
input[type="time"],
input[type="email"],
input[type="number"],
input[type="tel"],
input[type="date"],
input[type="month"],
input[type="text"],
input[type="password"]{
	box-sizing: border-box;
	border: 1px solid #ccc;
	text-align: left;
	/* width: 100%; */
	padding: 0.5em;
	vertical-align: middle;
	color: #666;
}
select {
	color:#5058a3;
}
input[type="search"]{
  width:100%;
}
input[type="checkbox"]{
	width:15px;
	height:15px;
	vertical-align: middle;
	border: 1px solid #666;
	-webkit-appearance:auto !important;
}

input[type="radio"]{
	width:15px;
	height:15px;
	vertical-align: top;
	border: 1px solid #666;
	-webkit-appearance:auto !important;
}
textarea.long{
	min-height: 100px;
}

select{
  width:calc(100% - 2px);
}
.gray {
	background: #ccc;
}
.btn {
	cursor: pointer;
	padding: 0.5em 1em;
	border: none;
	/* border-radius: 20px; */
	border-radius: 0.25em;
	display: inline-block;
	vertical-align: top;
	transition: all 0.5s 0s ease;
	min-width: 5em;
	text-align: center;
	/* 折り返さない */	
	white-space: nowrap;
}
.btn:hover {
	filter: invert(100%);
}
tr .btn {
	padding: 0.5em 2em;
}
.btn-default {
	border: 1px solid #000;
	background: #000;
	color:#fff !important;
}

.btn-edit {
	border: 1px solid #3a5199;
	background: #3a5199;
	color:#fff !important;
}

.btn-list {
	border: 1px solid #7d4f1e;
	background: #7d4f1e;
	color:#fff !important;
}
.btn-green {
	border: 1px solid #67baca;
	background: #67baca;
	color:#fff !important;
}

.btn-danger {
	border: 1px solid #af1c1c;
	background: #af1c1c;
	color:#fff !important;
}
.btn-small{
	font-size: 8px;
	padding: 0;
}
/*login*/
/*header*/
header{
	position: fixed;
	height: calc(100vh - 58px);
	width: calc(200px - 2em);
	background: rgba(255, 255, 255, 0.95);
	/* background: -webkit-linear-gradient(top left,#5058a3 50%,#53b8e3 100%);
	background: -moz-linear-gradient(top left,#5058a3 50%,#53b8e3 100%);
	background: -o-linear-gradient(top left,#5058a3 50%,#53b8e3 100%);
	background: linear-gradient(to bottom right,#5058a3 50%,#53b8e3 100%); */

	/* background: #50a3a2;
	background: -webkit-linear-gradient(top left,#50a3a2 0%,#53e3a6 50%);
	background: -moz-linear-gradient(top left,#50a3a2 0%,#53e3a6 50%);
	background: -o-linear-gradient(top left,#50a3a2 0%,#53e3a6 50%);
	background: linear-gradient(to bottom right,#50a3a2 0%,#53e3a6 50%); */
	color:#fff;
	padding: 1em;
	z-index: 2;
	border-radius: 5px;
	box-shadow: 1px 1px 5px rgb(0 0 0 / 10%);
	margin: 15px;

}
header .user-info{
	width : 100%;
	float: left;
}
header .user-info span{
	width:10em;
}
header a{
	color:#000;
}
header i{
	font-size: 30px;
	float: left;
	margin-right: 10px;
}
header span{
	display: block;
	font-size: clamp(10px, 10px, 12px);
	padding-top: 2px;
	float: left;
	overflow: hidden;
	width: 13em;
	height: 1em;
}
header span:last-child{
	font-size: clamp(8px, 10px, 12px);
}
.navi {
	float: left;
	margin-top: 2em;
	width:100%;
}
.navi ul {
  text-align: left;
}
.navi li i{
	/*サイズをちょうどよく */
	font-size: 20px;
	margin-left: 0.5em;
	margin-right: 0.5em;
}
/* 既存のスタイル */
.navi li {
  text-decoration: none;
  list-style: none;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.5s ease;
	padding-bottom: 0.5em;

}
.navi li a {
  padding: 1.5em 0;
  display: block;
  height: 100%;
}

/* hover時の背景色はそのまま */
.navi li:hover {
  background: #666;
}

/* hover時は、リンク内のテキスト部分のみ白く変更 */
.navi li:hover a span.menu-text {
  color: #fff;
}

/* アイコンの色は常に固定 */
.navi li a i {
  font-size: 20px;
  margin-left: 0.5em;
  margin-right: 0.5em;
  color: #333; /* 通常時の色 */
}
.navi li:hover a i {
  color: #333; /* hover時も変わらない */
}

/* 不要なら ::before のスタイルは削除またはコメントアウト */
/* .navi li:hover::before {
  color: #fff;
} */
.btn-navi i{
	display: block;
	font-size: 30px;
	color: #fff;
	margin-bottom:.2em;
}
.admin .wrapper {
  width: calc(100% - 200px - 2em);
  padding: 20px;
}

/*title*/
.title {
	text-align: left;
	font-size: 18px;
	margin-bottom: 1em;
}
.title:before {
	content:'-';
	margin: auto 0.5em;
}
.title:after {
	content:'-';
	margin: auto 0.5em;
}
/*table*/
.table-wrap {
	overflow-x: scroll;
	-ms-overflow-style: none;
	scrollbar-width: none;
}
.table-wrap::-webkit-scrollbar{
	display:none;
}
table{
	border-collapse: collapse;
	width:100%;
	margin: 0.5em auto;
}
thead td,thead th{
	border: none;
}
th,td{
	border-bottom: 1px solid #ccc;
	padding: 0.75em;
	vertical-align: middle;
	font-size: 12px;
	line-height: 1.3;
}
th{
	color:#000;
	font-weight: bold;
	text-align: left;
}
/*edit*/
form center {
	margin: 1em auto;
	text-align: left;
}
form label {
	display: block;
	margin: 2em 0 0.5em;
	font-weight: bold;
}
.half_box div.aa {
	width:calc(40% - 1em);
	display: inline-block;
}

input.input-mini {
	width:100px;
}
input.input-mini-middle {
	width:150px;
}
input.input-middle {
	width:200px;
}
input.input-long {
	width:300px;
}
.radio_area {
	text-align: left;
	border: 1px solid #ccc;
	padding: 0.5em;
}
.radio_area label{
	display: inline-block;
	margin-right: 0.5em;
	white-space: nowrap;
}
tr.danger {
	background: rgba(0,0,0,0.1);
}
tr.complete {
	background: rgba(255,0,0,0.1);
}
.half_box div{
	width:calc(40% - 1em);
	display: inline-block;
}
form {
	margin: auto;
}
.bg-bubbles {
	display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.bg-bubbles li {
	position: absolute;
	list-style: none;
	display: block;
	width: 40px;
	height: 40px;
	border-radius: 100%;
	background-color: rgba(0,0,0,0.1);
	top: -160px;
	-webkit-animation: square 25s infinite;
	animation: square 25s infinite;
	-webkit-transition-timing-function: linear;
	transition-timing-function: linear;
}
.bg-bubbles li:nth-child(1) {
  left: 10%;
}
.bg-bubbles li:nth-child(2) {
  left: 20%;
  width: 80px;
  height: 80px;
  animation-delay: 2s;
  animation-duration: 17s;
}
.bg-bubbles li:nth-child(3) {
  left: 25%;
  animation-delay: 4s;
}
.bg-bubbles li:nth-child(4) {
  left: 40%;
  width: 60px;
  height: 60px;
  animation-duration: 22s;
  background-color: rgba(255,255,255,0.25);
}
.bg-bubbles li:nth-child(5) {
  left: 70%;
}
.bg-bubbles li:nth-child(6) {
  left: 80%;
  width: 120px;
  height: 120px;
  animation-delay: 3s;
  background-color: rgba(255,255,255,0.2);
}
.bg-bubbles li:nth-child(7) {
  left: 32%;
  width: 160px;
  height: 160px;
  animation-delay: 7s;
}
.bg-bubbles li:nth-child(8) {
  left: 55%;
  width: 20px;
  height: 20px;
  animation-delay: 15s;
  animation-duration: 40s;
}
.bg-bubbles li:nth-child(9) {
  left: 25%;
  width: 10px;
  height: 10px;
  animation-delay: 2s;
  animation-duration: 40s;
  background-color: rgba(255,255,255,0.3);
}
.bg-bubbles li:nth-child(10) {
  left: 90%;
  width: 160px;
  height: 160px;
  animation-delay: 11s;
}
.tooltip {
  position: relative;
  cursor: pointer;
}
.tooltip-text {
  opacity: 0;
  visibility: hidden;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -30px;
  display: inline-block;
  padding: 5px;
  white-space: nowrap;
  font-size: 0.8rem;
  line-height: 1.3;
  background: #333;
  color: #fff;
  border-radius: 3px;
  transition: 0.3s ease-in;
}
.tooltip:hover .tooltip-text {
  opacity: 1;
  visibility: visible;
}

.flex {
	display: flex;
	justify-content: space-between;
}

.flex-start {
	display: flex;
	justify-content: flex-start;
}	
.flex-start > p,
.flex-start > div
{
	margin-right: 30px;
}

.alert-container {
	background-color: #f0f0f0;
	padding: 10px;
}
@media screen and (max-width: 768px) {
	header{
		transition: all .3s ease-in;
		opacity: 0;
		display: block !important;
		width: 100% !important;
	}
	.fullscreen{
		transition: all .3s ease-in;
		opacity: 1;
		display: block !important;
	}
	.btn {
		padding:0.5em .1em !important;
		font-size: 12px;
	}
	header{
		width: calc(100px - 2em);
		overflow: hidden;
	}
	header a i{
		position: absolute;
		left: 0;
		right: 0;
		width: 30px;
		margin: auto;
		top: 10px;
	}
	header .left a span{
		transform: scale(0.75);
		position: absolute;
		left: 0;
		right: 0;
		top: 50px;
	}
	header .left a span:last-child,
	header li a:before {
		display: none;
	}
	header .navi {
		margin-top:5em;
	}
	.navi li a{
		transform: scale(0.75);
		padding: .5em 0;
		margin-left: -1em;
		font-size: 16px;
		padding-bottom: 50px;
	}
	.navi li i{
		font-size: 30px;
		display: block;
		left: -4px;
	}
	header center{
		width: 80%;
		margin: auto;
	}
	.container {
		width: calc(100% - 2em);
		margin: 0;
		min-height: 100vh;
	}
	.container.expanded {
		width: 100%;
		margin: 0;
		min-height: 100vh;
	}
}

button a {
	color: inherit;
	/* 親要素の色を継承 */
	text-decoration: none;
	/* 下線を消す */
}

/* search_wrap */
.search-wrap {
	background: #f8f9fa;
	/* 背景色を薄いグレー */
	padding: 15px 20px;
	border-radius: 8px;
	/* 角を丸く */
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
	/* ふんわり影 */
	margin-bottom: 20px;
}

.search-wrap form {
	align-items: center;
}

.search-wrap input[type="text"],
.search-wrap select {
	padding: 8px 12px;
	border: 1px solid #ccc;
	border-radius: 5px;
	font-size: 16px;
	transition: 0.2s ease-in-out;
	outline: none;
	flex: 1; /* 要素を均等に伸ばす */
}

.search-wrap input[type="text"]:focus,
.search-wrap select:focus {
	border-color: #007bff;
	/* フォーカス時に青色 */
	box-shadow: 0 0 5px rgba(0, 123, 255, 0.2);
}

.search-wrap label {
	display: flex;
	align-items: center;
	gap: 5px;
	font-size: 14px;
	margin: 0em;
}

.search-wrap input[type="checkbox"] {
	transform: scale(1.2);
	/* チェックボックスを少し大きく */
}

.gap-10 {
	gap: 10px;
}

.mb-20{
	margin-bottom: 20px;
}

@media print {
	/* .break-before-page {
		page-break-before: always;
	} */

	.noprint {
		display: none;
	}

	body {
		background: white;

	}

	.container {
		box-shadow: none;
	}
}

@media screen and (max-width: 400px) {
	header{
		width: calc(50px - 2em);
	}
	header .left a span{
		display: none;
	}
	header .navi {
		margin-top:3em;
	}

	.navi li a{
		transform: scale(0.5);
		white-space: nowrap;
	}

	.container {
		width: calc(100% - 15px - 10em);
		margin-left: calc(40px + 3em);
	}
		.navi li a{
		transform: scale(0.75);
		padding: 0;
		margin-left: -1em;
	}

}
@-webkit-keyframes square {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(700px) rotate(600deg);
  }
}
@keyframes square {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(700px) rotate(600deg);
  }
}

/* animation */
@keyframes korokoro {
	0%   { transform: translate(0%, 0%); }
	3%   { transform: translate(10%, 0%) rotate(10deg); }
	12%  { transform: translate(20%, 0%) rotate(20deg); }
	15%  { transform: translate(-10%, 0%) rotate(-10deg); }
	17%  { transform: translate(-15%, 0%) rotate(-15deg); }
	22%  { transform: translate(10%, 0%) rotate(10deg); }
	25%  { transform: translate(15%, 0%) rotate(15deg); }
	30%  { transform: translate(-5%, 0%) rotate(-5deg); }
	32%  { transform: translate(-7%, 0%) rotate(-7deg); }
	37%  { transform: translate(0%, 0%) rotate(0deg); }
	50% { transform: translate(0%, 0%) rotate(0deg); }
	100% { transform: translate(0%, 0%) rotate(0deg); }
}
@keyframes purupuru {
	0%   { transform: scale(1.0, 1.0) translate(0%, 0%); }
	5%  { transform: scale(1.0, 1.06) translate(-5%, -4%) skew(6deg, 0deg); }
	12%  { transform: scale(1.0, 0.94) translate(5%, 4%) skew(-6deg, 0deg); }
	17%  { transform: scale(1.0, 1.03) translate(2%, -2%) skew(-3deg, 0deg); }
	20%  { transform: scale(1.0, 0.97) translate(-2%, 2%) skew(3deg, 0deg); }
	25% { transform: scale(1.0, 1.0) translate(0%, 0%); }
	100% { transform: scale(1.0, 1.0) translate(0%, 0%); }
}

@keyframes poyon {
	0%   { transform: scale(0.8, 1.4) translate(0%, -100%); }
	10%  { transform: scale(0.8, 1.4) translate(0%, -15%); }
	20%  { transform: scale(1.4, 0.6) translate(0%, 30%); }
	30%  { transform: scale(0.9, 1.1) translate(0%, -10%); }
	40%  { transform: scale(0.95, 1.2) translate(0%, -30%); }
	50%  { transform: scale(0.95, 1.2) translate(0%, -10%); }
	60%  { transform: scale(1.1, 0.9) translate(0%, 5%); }
	70%  { transform: scale(1.0, 1.0) translate(0%, 0%); }
	100% { transform: scale(1.0, 1.0) translate(0%, 0%); }
  }
  @keyframes poyooon {
	0%   { transform: scale(1.0, 1.0) translate(0%, 0%); }
	10%  { transform: scale(1.1, 0.9) translate(0%, 5%); }
	40%  { transform: scale(1.2, 0.8) translate(0%, 15%); }
	50%  { transform: scale(1.0, 1.0) translate(0%, 0%); }
	60%  { transform: scale(0.9, 1.2) translate(0%, -100%); }
	75%  { transform: scale(0.9, 1.2) translate(0%, -20%); }
	85%  { transform: scale(1.2, 0.8) translate(0%, 15%); }
	100% { transform: scale(1.0, 1.0) translate(0%, 0%); }
  }
  @keyframes purun {
	0%   { transform: scale(1.0, 1.0) translate(0%, 0%); }
	15%  { transform: scale(0.9, 0.9) translate(0%, 5%); }
	30%  { transform: scale(1.3, 0.8) translate(0%, 10%); }
	50%  { transform: scale(0.8, 1.3) translate(0%, -10%); }
	70%  { transform: scale(1.1, 0.9) translate(0%, 5%); }
	100% { transform: scale(1.0, 1.0) translate(0%, 0%); }
  }


header.fullscreen .left a{
	display: flex;
    justify-content: left;
    align-items: center;
	padding: 1.0em;
}
header.fullscreen .left a *{
	font-size: 16px !important;
	margin: 0;
	padding: 0;
	width: auto;
	position: static;
	display: inline-block !important;
}
header.fullscreen ul li a i{
	position: static;
	margin: 0 .5em 0 0;
	left:0;
	top:0;
}
header.fullscreen ul li {
	margin: 0;
}
header.fullscreen ul li a {
	padding-bottom: .5em;
	display: flex;
    justify-content: left;
    align-items: center;
}

header.fullscreen ul li a span{
	font-size: 20px;
}
.fc .fc-button-primary{
	background: #000;
}
@media screen and (max-width: 768px) {
	.title {
		font-size: 12px;
	}

	header .btn-navi{
		margin-bottom: 1em;
	}
	header .navi{
		margin: 1em auto;
	}
	.staffs .container{
		margin: auto;
		width: 100%;
		padding-left: .5em;
		padding-right: .5em;
	}
	.staffs .month-navigation span{
		font-size: 12px;
	}
	.staffs .container{
		overflow: unset;
	}
	.staffs .container form#reservationForm,
	.staffs .container form.sc{
		overflow-x: scroll;
		position: relative;
		-webkit-overflow-scrolling: touch;
	}

	.staffs .container table th{
		white-space: nowrap;
	}
}