*{
	padding:0;
	margin:0;
	font-family:Arial;
	font-size:1em;
}

.banner{
	background-color:#40A080;
	color:#fff;
	font-size:0.8em;
	justify-content: center;
    width: 100%;
    text-align: center;
    display: flex;
    align-items: center;
}

.main{
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding:10px;
}

.calendar{
	font-size:1.3em;
	margin:10px;
	padding:10px;
	border:2px solid #000;
	border-radius:10px 10px;
}

.calendar-year-month{
	scroll-snap-align: center;
	margin:10px;
	margin-top:35px;
	padding:10px;
	border:2px solid #000;
	border-radius:10px 10px;
    display: grid;
    grid-template-columns: repeat(7, 1fr);
	min-width:calc(100vw - 20px);
	max-width:calc(100vw - 20px);	
	box-sizing:border-box;
	position:relative;
}
.calendar-year-month .title{
	left: calc(100% / 2 - 60px);
	top:-35px;
	position:absolute;
	width:120px;
	text-align:center;
	font-size:1.2em;
}

.info{
	font-size:1.2em;
}

.calendar-year-month-day{
	/*aspect-ratio: 1;*/
	min-height:40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #ccc;
    background-color: #f9f9f9;
	border-radius:10px 10px;	
	margin:4px;
}

.calendar-year-month-day.green{
	cursor:pointer;
}

.day-slot{
	display:none;
}

.timeslot{
	border:1px dotted #555;
	padding:5px;
	border-radius:10px;
	margin-bottom:10px;
	position:relative;
}
.reg-btn{
	position:absolute;
	right:5px;
	bottom:5px;
}
.reg-btn input{
	border-radius:10px;
	width:100px;
	height:32px;
}

.status,.status-busy{
	height:7px;
	background-color:#000;
	position:absolute;
	bottom:0px;
	width:100%;
	border-radius:0 0 10px 10px;
	background-color:#00b454;
}
.status-busy{
	background-color:#ff7b34;
	width:0%;
	left:0px;
	border-radius:0 0 0 10px; /*but if 100% nop*/
	border-right:1px solid #000;
}
.full{
	border-radius:0 0 10px 10px;
	border-right:0px;
}
.empty{
	border-right:0px;
}

.blank{
	visibility:hidden;
}

.weekend{
	background-color:#e0eeee;
}

.green,.red{
	/* simply means there are sessions for that day */
	background-color: #CCAAFF;
	position:relative;	
	font-weight:bold;
	font-size:1.2em;
	color:#80f;
}
.red{
	/* simply means there were sessions for that day but it's fully booked */
	background-color: #FFC9C9;
	color:#f00;
}
.unavailable{
	color:#ccc;
}

.day-info{
	margin-bottom:5px;
}

.enroll{
	width:calc(100vw  - 40px);
	height:calc(100vh - 40px);
	position:absolute;
	background: rgba(148, 187, 163, 0.77);
	border-radius: 16px;
	box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
	border: 1px solid rgba(255, 255, 255, 0.79);
	top:20px;
	left:20px;
	display:none;
	font-size:1.3em;
	color:#fff;
}
.enroll div{
	padding:20px;
	font-size:1.3em;
}
.enroll-btn, .enroll-input{
	width:100%;
}
.enroll-quit{
	position:relative;
}
.enroll-quit-btn{
	cursor:pointer;
	position:absolute;
	right:0px;
	top:0px;
}

#loginBox{
	padding:50px;
	border-radius: 16px;
	box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);	
	width:fit-content;
	margin:100px auto;
}
#loginBox p{
	padding-bottom:10px;
}
#loginBox .submit-btn{
	width:100%;
}
.welcome-banner{
	float:right;
	padding:5px;
}