:root {	
	--bs-primary: #4b8e44;
	--bs-primary-rgb: 75,142,68;
	--bs-third: #7f57c9;
	
	--bs-primary: #7f57c9;
	--bs-primary-rgb: 127,87,201;
	--bs-third: #622dc4;
	
	--bs-font-monospace: 'Roboto Mono';
	--bs-code-color: #7f57c9;
	
	--bs-btn-bg: #7f57c9;
	--bs-btn-border-color: #7f57c9;
    --bs-btn-color: #7f57c9;
    --bs-btn-border-color: #7f57c9;
    --bs-btn-hover-bg: #7f57c9;
    --bs-btn-hover-border-color: #7f57c9;
	
	--bs-accordion-active-color: #fff;
	--bs-accordion-active-bg: rgba(var(--bs-primary-bg, 0.5)) !important;

	--bs-accordion-border-radius: 0px;

}

.text-third {
	color: var(--bs-third);
}

body {
	font-family: 'Montserrat';
	font-weight: 400;
}

.font-mono {
	font-family: 'Roboto Mono';
}

header {
	height:5rem;
}

main {
	margin-top:5rem;
}

.link-liste-wrapper {
	position: relative;
}

.link-liste-wrapper:after {
	content: "|";
	padding-left:0.5rem;
	margin-right: 0.5rem;
	display: inline-block;
	opacity: 0.5;
}

.outer-calender-view-wrapper {
	position: fixed;
	top:5rem;
	bottom:0;
	width:50%;
	left:0;
}

.info-scroll-wrapper {
	width:50%;
	margin-left:50%;
	max-width: 50%;
	position: relative;
}

.private-mode .info-scroll-wrapper {
	margin-left: 25%;
}

header nav a.active {
	-webkit-text-stroke-width: 1px;
	-webkit-text-stroke-color: var(--bs-primary);
}

/* Calendar View */

.calender-row-wrapper {
	display:flex;
	justify-content:space-between;
	padding:1rem;
	align-content: center;
	align-items: center;
	border-top-left-radius: 0.5rem;	
	border-top-right-radius: 0.5rem;	
	gap:0.5rem;
}

.calendar-max-width {
	max-width: 650px;
	margin:auto;	
	border-radius: 0.5rem;
}

.calendar-max-width div:first-of-type {
	border-top-left-radius: 0.5rem;	
	border-top-right-radius: 0.5rem;	
}

.calendar-max-width div:last-of-type {
	border-bottom-left-radius: 0.5rem;	
	border-bottom-right-radius: 0.5rem;	
}

.calender-number-row-wrapper .calender-row-wrapper {
	border-bottom: 1px solid var(--bs-primary);
}

.calender-number-row-wrapper .calender-row-wrapper:last-of-type {
	border-bottom: none;
}

.calender-row-wrapper div {
	text-align: center;
	display: flex;
	flex-grow:1;
	justify-content: center;
}

.calender-row-wrapper span {
	border-radius: 0.5rem;
	width:2.5rem;
	height:2.5rem;
	display: flex;
	justify-content: center;
	align-items: center;
	border:2px solid transparent;
	position: relative;
} 

.calender-row-wrapper span.success {
	border-color:var(--bs-success);
}

.calender-row-wrapper span.danger {
	border-color:var(--bs-danger);
}

.calender-row-wrapper span.warning {
	border-color:var(--bs-warning);
}

.calender-row-wrapper span.info {
	border-color:var(--bs-info);
}

.calender-row-wrapper span.success, 
.calender-row-wrapper span.danger,
.calender-row-wrapper span.warning,
.calender-row-wrapper span.info,
span.thirty-day-reminder {
	background-color:rgba(255,255,255, 0.75);
	box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.50);
	-webkit-box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.50);
}

.calender-row-wrapper span.active {
	background-color:#fff;
}

.custom-tooltip {
  --bs-tooltip-bg: var(--bd-violet-bg);
  --bs-tooltip-color: var(--bs-white);
}

.image-wrapper {
	max-height: 300px;
	overflow: hidden;
	position: relative;
}

.image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: relative;
	object-position: center center;
	z-index: 1;
}

.image-wrapper .btn {
	position: absolute;
	left:0.5rem;
	bottom:0.5rem;
	z-index: 2;
}

.aufgabe-wrapper input:checked + label {
	color:var(--bs-primary);
}

.aufgaben-outer-wrapper .aufgabe-wrapper:last-of-type {
	border-color:transparent !important;
}

.btn-form {
	border-color:var(--bs-primary);
	background-color:rgba(var(--bs-primary-rgb), 0.1);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 1rem 0.75rem;
	padding-top: 1.625rem;
    padding-bottom: 0.625rem;
	flex-wrap: wrap;
	position: relative;
	height: calc(3.5rem + calc(var(--bs-border-width) * 2));
    min-height: calc(3.5rem + calc(var(--bs-border-width) * 2));
    line-height: 1.25;
}

.btn-form i {
	position: absolute;
	top:0.5rem;
	right: 0.5rem;
}

.btn-form .input-title {
	color: #6c757d;
	position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    max-width: 100%;
    height: 100%;
    padding: 1rem 0.75rem;
    overflow: hidden;
    text-align: start;
    text-overflow: ellipsis;
    white-space: nowrap;
	transform: scale(0.85) translateY(-0.65rem) translateX(-0.2rem);
}

.btn-form .input-value {
    overflow: hidden;
    text-align: start;
    text-overflow: ellipsis;
    white-space: nowrap;	
}

.preloader {
	left:50%;
	top:50%;
	transform: translate(-50%,-50%);
	position: absolute;
}

.preloader img {
	max-width: 35px;
	height: auto;
}

.back-link {
	position: absolute;
}

.hauptseiten-wrapper footer {
	position: fixed;
	z-index: 10;
	left:0;
	width: 50%;
	bottom:0;
	overflow-x: hidden;
	border-top: 1px solid var(--bs-border-color);
}

.hauptseiten-wrapper footer > div {
	box-shadow: 0px 0px 3px 0px rgba(127,87,201, 0.50);
    -webkit-box-shadow: 0px 0px 3px 0px rgba(127,87,201, 0.50);
}

.accordion-anlass-wrapper {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	align-content: center;
	margin-bottom: 0.5rem;
}

.accordion-anlass-datum-status-wrapper {
	display: flex;
	align-items: center;
	min-width: 260px;
	gap:1rem;
	justify-content: space-between;
}

.accordion-anlass-status {
	min-width: 130px;
}

.accordion-anlass-titel {
	min-width: 250px;
}

.accordion-anlass-datum {
	min-width: 90px;
}

.btn-modal:last-of-type,
.btn-hover:last-of-type {
	border-bottom: 1px solid var(--bs-border-color) !important;
}

.message-wrapper {
	position: absolute;
	right:0;
	width:25%;
	padding:0.75rem;
	margin-top:2.15rem;
}

.message-wrapper.form-bottom {
	width: auto;
	margin-top: 1.5rem;
}

.login-wrapper:after {
	content:"";
	background-image: url(../img/schleife.png);
	background-size: 200px 87px;
	width:200px;
	height:87px;
	position: absolute;
	top:-97px;
	left:50%;
	transform:translateX(-50%);
	opacity: 0.75;
}

.login-wrapper {
	border: 10px solid rgba(255,255,255, 0.5) !important;
}

/* Bootstrap */

.accordion-button,
.accordion-item {
	border: none !important;
	border-radius: 0px !important;
}

.accordion-item {
	border-top: 1px solid var(--bs-border-color) !important;
}

.btn.bg-opacity-10.bg-secondary:hover {
	color:var(--bs-dark);
}

@media (hover: hover) and (pointer: fine) {
	
	.calendar-max-width a,
	.btn-modal,
	.btn-hover
	.btn-hover .text-success,
	.btn-form,
	.btn-form .input-title {
		transition: all 0.2s ease;
	}

	.btn-modal,
	.btn-hover {
		transition: all 0.2s ease;
	}

	.btn-modal:hover,
	.btn-hover:hover {
		background-color:rgba(var(--bs-primary-rgb), 0.75) !important;
	}

	.btn-modal:hover,
	.btn-hover:hover,
	.btn-hover:hover .text-secondary {
		color:#fff !important;
	}
	
	.btn-hover:hover .text-success {
		display: none;
	}
	
	.calendar-max-width a:hover {
		background-color:rgba(var(--bs-primary-rgb), 0.5);
	}

	.btn-form:hover,
	.btn-form:hover .input-title {
		color:#fff !important;
	}

}

@media (max-width:1199px) {
	
	.private-mode .info-scroll-wrapper {
		width:75%;
		max-width: 75%;
	}
	
}


@media (max-width:991px) {
	
	.outer-calender-view-wrapper {
		position: relative;
		width:100%;
		top:auto;
	}
	
	.info-scroll-wrapper {
		width:100%;
		margin-left:0;
		max-width: none;
	}
	
	.outer-calender-wrapper {
		display: flex;
		flex-direction: row-reverse;
		justify-content: center;
	}
	
	.calender-row-wrapper {
		padding: 0.5rem 1rem;
	}

	.hauptseiten-wrapper footer {
		position: relative;
		width:100%;
		box-shadow: none;
		border-top:1px solid var(--bs-border-color);
	}

	.accordion-anlass-titel {
		min-width: 200px;
	}

	.accordion-anlass-datum {
		min-width: 150px;
	}
	
	.navbar-collapse {
		left: 0px;
		position: absolute;
		background-color: rgb(255, 255, 255);
		width: 100%;
		top: 4.5rem;
		padding: 1rem;
	}

}

@media (max-width:767px) {
	
	.outer-calender-wrapper {
		flex-direction: column;
	}

	.back-link {
		position: relative;
		width:100% !important;
	}

	.private-mode .info-scroll-wrapper {
		width:100%;
		margin-left: 0%;
		max-width: 100%;
	}

	.fs-5 {
		font-size: 1.15rem !important;
	}

	.accordion-header-name {
		width:100%;
	}

	.accordion-button {
		align-items: flex-start;
	}

	.accordion-anlass-wrapper {
		gap: 0;
		flex-direction: column;
		align-items: flex-start;
		justify-content: space-between;
		align-content: flex-start;
		border-bottom:1px solid var(--bs-border-color);
		padding-bottom: 0.5rem;
		margin-bottom: 0.5rem;
	}

	.accordion-body .accordion-anlass-wrapper:last-of-type {
		border-bottom: none;
		padding-bottom: 0;
		margin-bottom: 0;
	}

	.accordion-anlass-datum {
		font-size: 0.9rem;
		min-width: 100px;
	}

	.accordion-anlass-titel {
		width:100%;
		min-width: auto;
	}

	.accordion-anlass-status {
		width: 100%;
		display: flex;
		justify-content: flex-start;
	}

	.message-wrapper {
		width:auto;
		margin-top: 0.75rem;
	}
	
}

@media (max-width:575px) {

    .message-wrapper {
        margin-top: 3.75rem;
        z-index: 10;
        left: 0;
    }

	.message-wrapper.form-bottom {
		text-align: right;
	}

	header {
		height:4rem;
	}

	main {
		margin-top:4rem;
	}

	.navbar-collapse {
		top:4rem;
	}

	.nav-link {
		padding-top:0.1rem;
		padding-bottom: 0.1rem;
	}

	.link-liste-wrapper:after {
		display: none;
	}

}