:root {
	--main-color-150:rgb(0, 109, 204, 1.0);
	--main-color-100:rgb(40, 155, 255, 1.0);
	--main-color-012:rgb(40, 155, 255, .12);
	--main-color-024:rgb(40, 155, 255, .24);
}

a,
.btn-link {
	color:var(--main-color-100);
	text-decoration:none !important;
}

h1 {
	font-size: calc(1.1rem + 1.5vw);
}

h4 {
	margin-bottom:.8em;
}

h5 {
    font-size: 1.1rem;
}

.btn:focus {
	border:1px solid transparent;
	box-shadow:none !important;
}

.card-list label {
	cursor:pointer;
}
.card-list .card-body {
	cursor:pointer;
	border:1px solid transparent !important;
}
.card-list .card-title {
	cursor:pointer;
}
.card-list .card-body:hover {
	border-width:1px;
	border-style:solid;
	border-color:var(--main-color-100) !important;
	box-shadow:none;
}

.card-reason-description {
	margin-top:.5em;
	font-size:.9em;
	padding-right:6em;
}

.card-reason-duration {
	margin-top:.5em;
	font-size:.9em;
}

.btn-link {
	text-decoration:none !important;
}

.btn-primary {
	background-color:var(--main-color-100);
	border-color:transparent;
}

.btn-primary:hover {
	background-color:#006dcc;
	border-color:transparent;
}

.btn-group.dropstart .dropdown-menu {
	margin-left:-90px !important;
}

.btn-icon {
	width:20px;
}

.btn-close.btn-delete {
	position:absolute;
	margin:-5px 0 0 -5px;
	background-color:#fff !important;
	opacity:1;
	border-width:1px;
	border-style:solid;
	border-color:var(--bs-secondary);
	box-shadow:2px 2px 3px #ccc;
}

.btn-xs {
	font-size: .6rem;
}

.weekday {
	display:block;
	font-weight:bold;
	font-size:15px;
	width:75px;
}

.daydate {
}

.schedule-table {
	width:100%;
	margin-top:25px;
}

.free-appointment {
	text-decoration:none;
	color:#000;
	display:block;
	background-color:#fff;
	border-radius:5px;
	border:1px solid #000;
    text-align:center;
    padding:10px;
    margin:0 8px 8px 0;
}

.schedule-week .free-appointment {
	border-radius:4px;
    padding:5px 0 5px 0;
    margin-bottom:5px;
}

.free-appointment:hover {
	border-color:var(--main-color-100);
	color:var(--main-color-100);
}

.free-appointment.legend {
}

.free-appointment:hover.legend {
}

.free-appointment-selected {
	border-color:#ccc;
	color:#ccc;
}

.weekend > span {
	color:#fff;
	display:block;
	border-radius:5px;
	text-align:center;
    padding:10px;
    margin:0 8px 8px 0;
    max-width:62px;
    overflow: hidden;
	white-space: nowrap;
    text-overflow: ellipsis;
}

td.res span {
	display:block;
	border-radius:5px;
	border:1px solid transparent;
    text-align:center;
    padding:4px 0 5px 0;
    margin:0 4px 8px 0;
}

div.schedule-content > div.card.shadow-sm {
	box-shadow: .175rem .175rem .25rem rgba(0,0,0,.075) !important;
}

table.month-selector {
	width:100%;
}

table.month-selector th,
table.month-selector td {
	width:14.25%;
	text-align:center;
	font-weight:600;
}

table.month-selector td {
	color:rgba(0,0,0,.4);
}

table.month-selector td > span,
table.month-selector td > a {
	text-decoration:none;
	width:9vw;
	height:9vw;
    font-size: 1rem;
	max-width:50px;
	max-height:50px;
	border-radius:50px;
	margin:5px;
	display:inline-flex;
	text-align:center;	
	justify-content:center;	
	vertical-align:top;
    align-items: center;
}

table.month-selector td.selected-day > a {
	/*background-color:#289BFF;*/
	background-color:var(--main-color-100);
	color:#fff;
}

table.month-selector td.month-selector-unavailable.selected-day > span {
	background-color:#ccc;
	color:#fff;
}

.month-selector-available a {
	/*background-color:#e6f3ff;*/
	background-color:var(--main-color-012);
}

.month-selector-available a:hover {
	/*background-color:#cce7ff;*/
	background-color:var(--main-color-024);
}

.month-selector-week table.month-selector td > span,
.month-selector-week table.month-selector td > a {
	width:3vw;
	height:3vw;
    font-size: 0.8rem;
	border-radius:50px;
	margin:3px;	
}

.column-left {		
	border-bottom:1px solid rgba(0,0,0,.125);
}

.column-right {
	padding-top:25px;
	padding-left:25px;
}

a.page-nav-item,
button.page-nav-item,
input.page-nav-item,
.page-nav-item input {
	background:none;
	border:none;
	color:#000;
}

.page-nav-item svg,
.btn-svg {
	display:inline !important;
	width:0.6rem;
	vertical-align:middle;
	color:#000;
}

.btn-svg-xl {
	width:1rem;
}

.page-nav-item.disabled svg {
	color:#ccc;
}

.page-nav-link svg {
	color:var(--main-color-100);
}

.nav-footer {
	margin-top:10px;
	padding-left:10px;
}
.nav-footer a {
	margin-right:15px;
}


.nav-footer .nav-item svg {
	display:inline !important;
	width:1rem;
	vertical-align:text-bottom;
}

.nav-footer .nav-item svg.svg-language {
	width:1.4rem;
}

.control-bar .svg-calendar {
	width:1rem;
}

.form-date-time .svg-calendar {
	width:1.2rem;
}

.nav-footer .nav-item,
.btn-text-link {
	display:inline-block;
	padding:3px 10px;
	border-radius:5px;
	color:#666;
	font-size:0.8rem;
	background:none;
	border:none;
}

.nav-item:hover,
.btn-text-link:hover {
	background-color:#eee;
}

.dropdown-menu > li > form {
	padding:0;
	margin:0;
	display:inline;
}

.dropdown-menu > li > form > button {
	background-color:#fff;
	border:none;
	margin:2px 0 0 5px;
	display:block !important;
	width:95%;
	text-align:left;
}

.dropdown-menu > li > form > button:hover {
	background-color:#eee;
}

.text-control {
	line-height:2.3rem;
}

.h-context {
	display:inline;
	font-size:1rem;
}

.h-context svg {
	width:1rem;
}

.canceled {
	text-decoration:line-through;
}

td.free {
	padding-right:5px;
}

td.free:last-child {
	padding-right:0;
}

.schedule-week {
  	overflow-x:auto;
    white-space:nowrap;;
}

.month-selector-week {
	border-bottom:1px solid #ccc;
}

.form-sub-headline {
	margin-top:25px;
}

.accordion-button,
.accordion-button:not(.collapsed) {
    color: #000;
    background-color: #fff;
	box-shadow:none !important;
	border-radius:.25rem !important;
	border-bottom-width: 1px;
}
.accordion-button.collapsed {
	border-bottom-width: 1px;
}

.accordion-collapse {
	border:1px solid transparent;
}

.accordion-item {
	margin-bottom:15px;
}

.more-selected-appointments span {
	display:inline-block;
	padding:3px 10px 3px 0;
}

.multiple-appointments > div {
	border-bottom:1px solid #ccc;
	margin-bottom:20px;
	padding-bottom:15px;
}

.multiple-appointments-mailform span {
	display:block;
}

.button-list form {
	display:inline-block;
}

.button-list input {
	display:block;
	width:100%;
}

.alert-info {
	background-color:var(--main-color-012);
	border-color:var(--main-color-024);
	color:var(--main-color-150);
}

.split-table-control td {
	padding:3px 5px;
}

label.grid-details {
	display:block;
	text-align:center;
	overflow: hidden;
  	text-overflow: ellipsis;
  	margin:-4px 0 8px 0;
}

.form-floating > .form-control:focus ~ label, 
.form-floating > .form-control:not(:placeholder-shown) ~ label, 
.form-floating > .form-select ~ label {    
    white-space: nowrap;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    width:100%;
}

.form-floating > .form-control:focus::placeholder {
  color: inherit;
}

.grid-right {
	clear:both;
}

.grid-right.category {
	padding-top:15px;
}

.language-menu .dropdown-menu {
	max-height: 400px;
	overflow-x:scroll;
}

@media (max-width: 576px) {	
	.column-right {
		padding-left:10px;
		padding-right:5px;
	}
	
	.p-4 {
		padding:1rem !important;
	}
}

@media (max-width: 650px) {
}

@media (min-width: 576px) {
	table.month-selector td > span,
	table.month-selector td > a {	
		width:5vw;
		height:5vw;		
		margin:3px;
		max-width:40px;
		max-height:40px;
	}
	
	.month-selector-week table.month-selector td > span,
	.month-selector-week table.month-selector td > a {
		width:2.5vw;
		height:2.5vw;
	    font-size: 0.7rem;
		border-radius:50px;
		margin:0;	
	}
	
	.column-left {
		border-right:1px solid rgba(0,0,0,.125);
		border-bottom:none;
	}
	
	.column-right {
		padding-top:0;
	}
	
	.grid-right > div {
		width:50%;
		float:left;
	}
	
	.grid-right > div:nth-child(even) {
	}
	
	.month-selector-week {
		border-bottom:1px solid #ccc;
		margin-top:10px;
		margin-left:10px;
		padding-bottom:10px;
	}
	
	.month-selector-column-0,
	.month-selector-column-1 {
		border-right:1px solid #ccc;
	}
	
	.button-list input {
		display:inline-block;
		width:auto;
	}
}

@media (min-width: 1200px) {	
	.grid-right > div {
		width:25%;
		float:left;
	}
	
	.grid-right > div {
		padding-right:10px;
	}
}