@charset 'UTF-8';

@font-face {
	font-family: 'NotoSansJP';
	src: url(../fonts/NotoSansJP.woff) format("woff");
}
@font-face {
	font-family: 'Lato-bold';
	src: url(../fonts/Lato-bold.woff) format("woff");
}

#reservationSystem {
	max-width: 1920px;
	margin: 0 auto;
}

header {
	display: flex;
}

header {
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 40px;
	padding: 0 20px;
}

body {
	font-family: 'Lato-bold', 'NotoSansJP', sans-serif;
	background-color: #edeff5;
	color: #333;
}

#mainView {
	padding: 20px;
	background-color: #fff;
}

.roomWrapper {
	display: block;
	width: 100%;
	height: 100%;
	padding: 20px;
}

.fixedWrapper {
	position: fixed;
	top: 0;
	left: 0;
	z-index: -100;
}

.fixedWrapper.active {
	z-index: 2;
}

.fixedWrapper, .entryWrapper {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	background-color: rgba(255, 255, 255, 0.6);
	width: 100%;
	height: 100svh;
}

.fixedWrapper p, .entryWrapper p {
	color: #fff;
}

.roomWrapper {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 20px;
}

.flexWrapper {
	display: flex;
	align-items: center;
}

.clockWrapper {
	text-align: center;
	background-color: #fff;
	margin-bottom: 40px;
	border-radius: 5px;
}

.clockWrapper > div:first-child {
	margin-top: 30px;
}

.clockWrapper > div h2 {
	font-size: 17px;
}

#clockItem {
	font-size: 50px;
	margin-bottom: 20px;
	text-align: center;
	font-weight: bold;
	background-color: #fff;
	padding: 10px 30px;
	display: inline-block;
}

.attendList {
	margin-left: auto;
	margin-right: 80px;
}

.attendListWrapper {
	background-color: #fff;
	border-radius: 5px;
	padding: 25px 40px;
}

.attendListWrapper div > h2 {
	font-size: 17px;
	margin-bottom: 20px;
}

.attendList .flexWrapper {
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 5px 20px;
	max-width: 630px;
}

.attendList .flexWrapper div {
	display: flex;
	align-items: center;
	width: calc(50% - 20px);
	margin-bottom: -1px;
	border-width: 1px 0;
}

.attendList .flexWrapper > div {
	gap: 15px;
}

.attendList .flexWrapper > div:first-child,
.attendList .flexWrapper > div:nth-child(2) {
	border-bottom: 1px solid #ccc;
	padding-bottom: 5px;
}

.attendList .flexWrapper p {
	font-size: 14px;
	font-weight: bold;
}

.attendList .flexWrapper div > p:first-child {
	font-size: 20px;
}

.attendList .flexWrapper div.roomNameWrapper {
	width: 60%;
}

.attendList .flexWrapper > p.price {
	width: 30%;
}

.attendList .flexWrapper div p.roomName {
	font-size: 16px;
}

.cleanupTime {
	background-color: #fff;
	border-radius: 5px;
	padding: 25px 40px 41px;
}
.cleanupTime div > h2 {
	font-size: 17px;
	margin-bottom: 30px;
}

.cleanupButtonWrapper {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-left: 5px;
}

.cleanupTimeText {
  color:#333333;
  font-size: 24px;
	border: none;
  width: 70px;
	background-color: #e6e6e6;
  line-height: 2.5rem;
  text-align: center;
	border-radius: 5px;
  padding: 0 3px;
	margin: 0 10px;
}

.button {
  color:#333333;
  font-size: 16px;
  cursor: pointer;
  background-color: transparent;
  border: none;
  border-radius: 0;
  outline: 0;
}

.cleanupTimeButton {
	color: #fff;
	font-weight: bold;
	background-color: #333333;
	border: none;
	border-radius: 5px;
	line-height: 2.5rem;
	padding: 0 30px;
}

.room {
	width: 280px;
}
.room h3 span {
	font-size: 13px;
	vertical-align: 2px;
}

.room .cardHeader,
.room .cardHeader .nextWrapper {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.room .cardHeader {
	margin-bottom: 8px;
}

.room .cardHeader .nextWrapper {
	width: 100px;
	background-color: #fff;
	padding: 1px 6px;
	border-radius: 3px;
}

.room .cardHeader .nextWrapper.noReservations {
	color: #ccc;
}

.room .cardHeader .nextWrapper > p {
	font-size: 14px;
}

.room .cardHeader .nextWrapper > p#nextEntry {
	font-size: 18px;
	margin-left: 8px;
}

.room.stop .cardHeader .nextWrapper {
	opacity: 0;
}

.card {
	height: 150px;
	display: flex;
	background-color: #fff;
	border: 2px solid #ddd;
	border-radius: 5px;
	cursor: pointer;
}

.card.use {
	background-color: #f7931e;
	border: 2px solid #f7931e;
	z-index: 1;
}

.card.wait {
	background-color: #667eae;
	border: 2px solid #667eae;
}

.card.stop {
	background-color: #ccc;
	border: 2px solid #ccc;
}

.card.cleanup {
	background-color: #000;
	border: 2px solid #000;
}

.card.vacancy {
	background-color: #29abe2;
	border: 2px solid #29abe2;
}

.card.mealWait {
	color: #333;
	background-color: #87bc71;
	border: 2px solid #87bc71;
}

.card.timeReservation {
	color: #333;
	background-color: #e2d664;
	border: 2px solid #e2d664;
}

.card.placeReservation {
	color: #333;
	background-color: #b3595d;
	border: 2px solid #b3595d;
}

.card h3 {
	margin: 0;
	font-size: 16px;
}

.card .flexWrapper1 {
	justify-content: space-between;
	align-items: center;
	margin-bottom: 8px;
}

/* .card .dataWrapper > div { 
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 15px;
} */

.card .roomStatusWrapper {
	display: flex;
	align-items: center;
}

.card p#roomStatus {
	color: #fff;
	font-size: 17px;
	font-weight: bold;
	line-height: 2;
	letter-spacing: 8px;
	-ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
}

.card.timeReservation p#roomStatus{
	color: #333;
}

.card .roomDetail {
	background-color: #fff;
	padding: 13px;
	flex: 1;
	border-radius: 2px;
}

.card.vacancy, .card.wait,
.card.stop .roomDetail .flexWrapper.flexWrapper1 * ,
.card.timeReservation .roomDetail .flexWrapper.flexWrapper1 * {
	color: #ccc;
}

.card .dataWrapper > div.entryTimeWrapper {
	text-align: center;
}

.card .dataWrapper > div h4 {
	font-size: 14px;
	font-weight: normal;
	margin: 0;
}

.card .dataWrapper > div p {
	font-size: 24px;
	font-weight: bold;
	line-height: 1.2;
	margin: 0;
}



/*
.card .currentTimerWrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 100px;
	border: 3px solid #b3595d;
}
*/

/*
.card .currentTimerWrapper {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 100px;
	border: 3px solid #b3595d;
}

.card .currentTimerWrapper .progressSvg {
	circle {
		stroke-width: var(--stroke-width, 8);
	}
}
.card .currentTimerWrapper .progressBar {
	stroke: var(--stroke-color, #00ccff);
	stroke-dashoffset:var(--stroke-dashoffset , 283);
	transform: rotate( var( --start-rotate, -90deg ) );
	transition: stroke-dashoffset var(--duration, 1.5s) ease-out;
}
*/

.card .currentTimerWrapper {
    position: relative;
    display: flex;
    display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
    width: 56px;
    height: 56px;
}

.progressSvg {
	position: absolute;
    transform: rotate(-90deg);
    width: 100%;
    height: 100%;
}

.progressBackground,
.progressBar {
    fill: none;
    stroke-width: 10;
    cx: 50;
    cy: 50;
    r: 45;
}

.progressBackground {
    stroke: #ccc;
}

.progressBar {
    stroke: #b3595d;
    stroke-dasharray: 283;
    stroke-dashoffset: 283;
    transition: stroke-dashoffset 0.5s ease;
}


/*
.card.vacancy .currentTimerWrapper,
.card.wait .currentTimerWrapper,
.card.timeReservation .currentTimerWrapper,
.card.stop .currentTimerWrapper {
	border: 3px solid #ccc;
}
*/

.card .currentTimerWrapper > p {
	color: #b3595d;
	line-height: 1.2;
	font-size: 12px;
}

.card .currentTimerWrapper #currentTime {
	font-size: 20px;
	font-weight: bold;
}

.card .flexWrapper2  {
	background-color: #ccc;
	padding: 5px;
}
.card .flexWrapper2 > div {
	display: flex;
	justify-content: center;
	align-items: center;
	width: calc(50% - .5px);
}

.card div.extendTimeWrapper {
	font-size: 14px;
	border-bottom: 2px dashed #ccc;
}

.card div.overTimeWrapper {
	color: #ccc;
	font-size: 14px;
}

.card div.extendTimeWrapper #extendTime,
.card div.overTimeWrapper #overTime {
	font-size: 18px;
	font-weight: bold;
	margin: 0 5px 0 12px;
}

.card div.overTimeWrapper.overTime {
	color: #b3595d;
}

.card div.overTimeWrapper.overTime {
	color: #b3595d;
}

.card .flexWrapper3 { 
	justify-content: flex-start;
	align-items: center;
	text-align: center;
	gap: 3px;
	z-index: 3;
}

.card .flexWrapper3 > div {
	font-size: 18px;
	width: 70px;
	padding: 5px;
	border-radius: 5px;
}

.card .flexWrapper3 > div > p:first-of-type {
	font-size: 14px;
}

.card .flexWrapper3 > div.wait {
	color: #fff;
	background-color: #667eae;
}

.card .flexWrapper3 > div.mealWait {
	color: #fff;
	background-color: #87bc71;
}

.card .flexWrapper3 > div.timeReservation {
	color: #fff;
	background-color: #e2d664;
}

.card .flexWrapper3 > div.placeReservation {
	color: #fff;
	background-color: #b3595d;
}

.card .flexWrapper3 > div.stop {
	color: #fff;
	background-color: #ccc;
}

#reservationForm input {
	background-color: #fff;
}

.fixedInner {
	max-width: 960px;
	margin: 30px auto;
	background-color: #333333c1;
	padding: 60px 80px;
	border-radius: 10px;
	font-weight: bold;
	position: relative;
}

#buttonWrapper .fixedInner, #changeWrapper .fixedInner {
	width: 90%;
}

.currentRoom {
	color: #fff;
	text-align: center;
	font-size: 26px;
	margin-bottom: 20px;
}

#buttonWrapper .categoryWrapper, #changeWrapper .categoryWrapper {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}

#changeWrapper .categoryWrapper {
	display: flex;
	justify-content: center;
}

#changeWrapper .categoryWrapper .btn {
	width: 185px;
}

.buttonGroup {
	display: flex;
	justify-content: space-between;
	margin-top: 20px;
}

.btn {
	padding: 20px 20px;
	border: none;
	border-radius: 5px;
	cursor: pointer;
	font-size: 16px;
	background-color: #fff;
	text-align: left;
	position: relative;
}

.btn::after {
	content: '';
	width: 12px;
	height: 12px;
	background-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 10.09'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23333;stroke-width:0px;%7D%3C/style%3E%3C/defs%3E%3Cg %3E%3Cpath class='cls-1' d='m8.5,4.18L1.5.14C.83-.25,0,.23,0,1v8.08c0,.77.83,1.25,1.5.87l7-4.04c.67-.38.67-1.35,0-1.73Z'/%3E%3C/g%3E%3C/svg%3E");
	background-repeat: no-repeat;
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
}

.btn.whiteArrow::after {
	background-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 10.09'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;stroke-width:0px;%7D%3C/style%3E%3C/defs%3E%3Cg %3E%3Cpath class='cls-1' d='m8.5,4.18L1.5.14C.83-.25,0,.23,0,1v8.08c0,.77.83,1.25,1.5.87l7-4.04c.67-.38.67-1.35,0-1.73Z'/%3E%3C/g%3E%3C/svg%3E");
}

#buttonWrapper #exit {
	display: none;
}

#buttonWrapper.use #exit, #buttonWrapper.vacancy #exit, #buttonWrapper.cleanup #exit {
	display: block;
}

#buttonWrapper #cleanupend, #buttonWrapper.cleanup #exit {
	display: none;
}

#buttonWrapper.cleanup #cleanupend {
	display: block;
}

#buttonWrapper.use #cancel, #buttonWrapper.vacancy #cancel, #buttonWrapper.cleanup #cancel {
	display: none;
}


.nextprevWrapper {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 15px;
	margin-top: 20px;
}

.btn.next, .btn.prev {
	color: #333;
}

.btn.next::after, .btn.prev::after {
	content: none;
}

.stopWrapper {
	text-align: center;
	margin: 40px 0 0;
}

.stopWrapper .btn {
	width: 320px;
	height: 60px;
	color: #fff;
	text-align: center;
	background-color: #999999;
}

.btn.stop::after {
	content: none;
}

.btn.blue { background-color: #667eae; color: #ffffff; }
.btn.green { background-color: #87bc71; color: #ffffff; }
.btn.red { background-color: #b3595d; color: #ffffff; }
.btn.yellow { background-color: #e2d664; color: #000; }

.closeBtn {
	position: absolute;
	width: 50px;
	height: 50px;
	top: 20px;
	right: 20px;
	cursor: pointer;
}

.closeBtn::before, .closeBtn::after { /* 共通設定 */
	content: "";
	position: absolute;
	width: 2px; /* 棒の幅（太さ） */
	height: 30px; /* 棒の高さ */
	background: #fff;
	top: 50%;
	left: 50%;
}

#buttonWrapper.use #entry,
#buttonWrapper.vacancy #midExtension,
#buttonWrapper.vacancy #faultExtension,
#buttonWrapper.vacancy #exit,
#buttonWrapper.vacancy #wait {
	pointer-events: none;
    cursor: not-allowed;
    opacity: 0.5;
}

.closeBtn::before {
	transform: translate(-50%,-50%) rotate(45deg);
}

.closeBtn::after {
	transform: translate(-50%,-50%) rotate(-45deg);
}

#entryWrapper .fixedInner {
	color: #fff;
	text-align: center;
}

#entryWrapper .flexWrapper {
	justify-content: center;
	gap: 15px;
}

.fixedInner p {
	line-height: 2.2;
}

select {
	margin: 0 auto;
	width: 220px;
	padding: 15px;
	height: 40px;
	border-radius: 5px;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	background-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11.9 10.57'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23999;stroke-width:0px;%7D%3C/style%3E%3C/defs%3E%3Cg %3E%3Cpath class='cls-1' d='m6.82,10.07L11.76,1.5c.38-.67-.1-1.5-.87-1.5H1C.23,0-.25.83.14,1.5l4.95,8.57c.38.67,1.35.67,1.73,0Z'/%3E%3C/g%3E%3C/svg%3E");
	background-size: 10px;;
	background-position: 200px 15px;
	background-repeat: no-repeat;
	box-sizing: content-box;
	color: #fff;
	background-color: #3b3b3b;
}

select:hover {
	background-color: #e6e6e6;
	color: #333333;
}

select option {
	background-color: white;
	color: blue;
	width: 310px;
	padding: 10px 15px;
	height: 20px;
	cursor: pointer;
}

select option:hover {
	padding-left: 25px;
	width: 270px;
	color: #EC6F66;
}

#confirmWrapper {
	text-align: center;
}

#confirm {
	display: inline-block;
}

.confirm div {
	display: flex;
	justify-content: flex-start;
	gap: 20px;
}

.confirm div p {
	color: #fff;
}

.confirmWrapper button[type="submit"] {
	padding: 20px 20px;
	border: none;
	border-radius: 5px;
	cursor: pointer;
	font-size: 16px;
	background-color: #fff;
	text-align: left;
	position: relative;
}

.submitWrapper {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 20px auto;
}

/* development */
#formWrapper {
	z-index: 100000000;
	position: fixed;
	left: 0;
}

#reservationForm, #durationForm, #leaveForm {
	display: flex;
	width: 100%;
	gap: 20px;
	align-items: center;
	flex-wrap: wrap;
	justify-content: center;
}

#durationForm input, #leaveForm input {
	background-color: #fff;
}

#timeReservationWrapper.mealCase .hidden {
	display: none;
}

#reserveListWrapper {
	display: none;
	top: auto;
	bottom: 0;
	left: 0;
	height: 180px;
	flex-wrap: wrap;
	gap: 30px;
	align-items: center;
	background: #333333c1;
}

#reserveListWrapper.active {
	display: flex;
}

#reserveListWrapper .reserveItem  {
padding: 20px 20px;
	/* border: 1px solid #333333c1; */
	border-radius: 5px;
	background-color: #fff;
	text-align: left;
	position: relative;
}

#reserveListWrapper .reserveItem p {
	color: #333;
	font-size: 16px;
}