/************ GENERAL ************/
* {
	box-sizing: border-box;
	--dunkel-blau: #003761;
	--mittel-blau: #056E82;
	--hell-blau: #c5E7DD;
	--kwpf-gruen: #59C245;
	--dunkel-grau: #747471;
	--mittel-grau: #6c757d;
	--hell-grau: #F5F8FA;
	--schatten-grau: #E5E8EA;
	--weiss: #FFFFFF;
	--backgroundcolor: #EEE;
	--foregroundcolor: #333;
	--schwarz: #333;
	--black: #000;
  --white: #FFF;
  --lightgrey: #EEE;
  --border: #3498DB;
  --boxshadow: #AAA;
  --alert: #F06;
	--disabled: #DDD;
  --select-border: #777;
  --select-focus: blue;
  --select-arrow: var(--select-border);
}
/* Farben für Systeme mit Dark Theme */
/* Orientiert sich an der Systemeinstellung, NICHT am Browser */
@media (prefers-color-scheme: dark) {
	* {
		--backgroundcolor: #333;
		--foregroundcolor: #EEE;
	}
}

::-webkit-input-placeholder { /* Chrome/Opera/Safari */
	font-family: verdana,arial,helvetica;
	font-size: 12px;
}
::-moz-placeholder { /* Firefox 19+ */
	font-family: verdana,arial,helvetica;
	font-size: 12px;
}
:-ms-input-placeholder { /* IE 10+ */
	font-family: verdana,arial,helvetica;
	font-size: 12px;
}
:-moz-placeholder { /* Firefox 18- */
	font-family: verdana,arial,helvetica;
	font-size: 12px;
}

html, body {
	height: 100%;
  scroll-behavior: smooth;
}
body {
	height: 100%;
	padding: 0px;
	margin: 0px;
	font-family: verdana,arial,helvetica;
	font-size: 14px;
	min-width: 360px;
  background-color: var(--backgroundcolor);
  color: var(--foregroundcolor);
}
a, a:link, a:active, a:visited, a:hover {
	text-decoration: none;
	color: var(--schwarz);
}
ul {
	list-style-type: none;
	padding: 0px;
	margin: 0px;
}
table, input, select, button {
	font-size: inherit;
}

#header {
	padding: 1rem 1rem 0 1rem;
}

.headermasonry {
	display: grid;
	gap: 0.8em;
	grid-template-columns: repeat( auto-fit, minmax(12%, 15em) );
}
.adminmasonry {
	display: grid;
	gap: 0.8em;
	grid-template-columns: repeat( auto-fit, minmax(12%, 18em) );
}
.headerkachel {
	height: 3em;
	display: grid;
	align-content: center;
	border-radius: 2em;
	border: 1px solid var(--select-border);
	box-shadow: 3px 3px 10px 1px var(--boxshadow);

	justify-content: center;
	border: 1px solid var(--boxshadow);
	background-color: var(--weiss);
	color: var(--border) !important;
	background-repeat: no-repeat;
	background-position-x: 0.5em;
	background-position-y: center;
	background-size: 2em auto;
	padding-left: 0.5em;
	font-weight: bold;
}
#head_logout {
	background-image: url('/style/img/stop.svg');
}
#head_uebersicht {
	background-image: url('/style/img/home.svg');
}
#head_calendar {
	background-image: url('/style/img/calendar.svg');
}
#head_makler {
	background-image: url('/style/img/statistic-up.svg');
}
#head_maklerbetreuer {
	background-image: url('/style/img/people-multiple.svg');
	/* display: none; */
}
#head_selektionen {
	background-image: url('/style/img/settings-horizontal.svg');
}
#head_administration {
	background-image: url('/style/img/gear.svg');
}
#mandantlogo {
	height: 40px;
	width: 80px;
	border: 0px none;
	background-image: url("/style/img/celtic.svg");
	background-size: contain;
	background-repeat: no-repeat;
	position: absolute;
	left: 60px;
}

#container {
	padding: 1rem;
}

.wrapper {
	width: 90%;
	margin: auto 5%;
}

.boxrand {
	border: 1px solid var(--boxshadow);
	border-radius: 0.5em;
	box-shadow: 0.2em 0.2em 0.5em 0.1em var(--boxshadow);
	background-color: var(--white);
}

.nosel {
	-webkit-touch-callout: none; /* iOS Safari */
	-webkit-user-select: none; /* Safari */
	-khtml-user-select: none; /* Konqueror HTML */
	-moz-user-select: none; /* Firefox */
	-ms-user-select: none; /* Internet Explorer/Edge */
	user-select: none; /* Non-prefixed version, currently supported by Chrome and Opera */
}
.disabled {
	pointer-events: none;
}
input.filter, input.eingabe, select.filter {
  appearance: none;
 	outline: none;
  background-color: var(--lightgrey);
  border: none;
  padding: 0 1em 0 0;
  margin: 0;
  width: 100%;
  font-family: inherit;
  font-size: inherit;
  cursor: inherit;
  line-height: inherit;
  position: relative;
  cursor: pointer;
	overflow: hidden;
  white-space: nowrap;
}
.filterinput {
  width: 100%;
  min-width: 15ch;
  max-width: 30ch;
  border: 1px solid var(--select-border);
  border-radius: 1em;
  padding: 0.25em 0.5em;
  margin-bottom: 0.5em;
  line-height: 1.4em;
  background-color: var(--lightgrey);
}
div.maxfilter {
	max-width: none !important;
}
div.filterselect {
	display: grid;
  grid-template-areas: "select";
  align-items: center;
}
div.filterselect::after {
  content: "";
  width: 0.8em;
  height: 0.5em;
  background-color: var(--select-arrow);
  clip-path: polygon(100% 0%, 0 0%, 50% 100%);
  justify-self: end;
}
select.filter, div.filterselect:after {
  grid-area: select;
}


.button {
	white-space: nowrap;
	color: var(--white);
  background-color: var(--border);
	border: 1px solid var(--border);
	border-radius: 0.25em;
  padding: 0.3rem;
	cursor: pointer;
}
.button:hover {
	border: 1px solid darkblue;
}
/* Check/Radio Boxen */
label.design_checkbox {
	display: block;
	position: relative;
	padding-left: 35px;
	margin-bottom: 12px;
	height: 25px;
	line-height: 23px;
	cursor: pointer;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}
label.design_checkbox input {
	display:none;
}
.design_checkbox_span {
	position: absolute;
	top: 0px;
	left: 0px;
	height: 25px;
	width: 25px;
	border-radius: 15px;
	background-color: var(--hell-grau);
}
label.design_checkbox :hover input ~ .design_checkbox_span {
	background-color: #ccc;
}
label.design_checkbox input:checked ~ .design_checkbox_span {
	background-color: var(--mittel-blau);
}
label.design_checkbox :after {
	content: "";
	position: absolute;
	display: none;
}
label.design_checkbox input:checked ~ .design_checkbox_span:after {
	display: block;
}
label.design_checkbox .design_checkbox_span:after {
	left: 9px;
	top: 5px;
	width: 5px;
	height: 10px;
	border: solid white;
	border-width: 0 3px 3px 0;
	-webkit-transform: rotate(45deg);
	-ms-transform: rotate(45deg);
	transform: rotate(45deg);
}

.triangle_left {
	width: 0;
	height: 0;
	border-top: 0.7em solid transparent;
	border-right: 1.4em solid grey;
	border-bottom: 0.7em solid transparent;
  display: inline-grid;
  vertical-align: middle;
}
.triangle_right {
	width: 0;
	height: 0;
	border-top: 0.7em solid transparent;
	border-left: 1.4em solid grey;
	border-bottom: 0.7em solid transparent;
  display: inline-grid;
  vertical-align: middle;
}
/* Kalender */
#kalender {
	grid-area: kalender;
	display: grid;
	grid-gap: 2em;
  grid-template-areas: "kc ka";
	grid-template-columns: 3fr 1fr;
}
#assistent {
	color: var(--backgroundcolor);
	display: grid;
  grid-template-areas: "v i";
	grid-template-columns: max-content 4fr;
}
#assistent div {
	min-height: 2em;
	padding: 0.5em;
}
#assistent div.hourcontent {
	border-top: 1px solid #EEE;
}
#assistent div.hourcontent span {
	display: block;
	border-bottom: 1px solid lightgrey;
}
#assistent div.hourcontent span:nth-child(2n) {
	background-color: #d5f7ee;
}
#assistent div.hourcontent span:nth-child(2n+1) {
	background-color: #c5e7dd;
}
.calendar{
  padding: 20px;
}
.calendar ul{
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  text-align: center;
}
.calendar #daterow {
  color: var(--schwarz);
  margin-bottom: 1em;
	display: grid;
  grid-template-areas: "v i d";
	grid-template-columns: repeat( 3, minmax( min-content, 1fr ) );
	grid-gap: 1em;
}
.calendar #dmonth {
	text-align: center;
	font-weight: bold;
}
.calendar #jetzt {
	color: grey;
	line-height: 1.2em;
	display: inline-grid;
	vertical-align: top;
	border: 1px solid grey;
	border-radius: 0.2em;
	padding: 0.2em;
	margin: 0 0.5em;
	cursor: pointer;
}
.calendar .triangle_left, .calendar .triangle_right {
	cursor: pointer;
}
.calendar #wahl {
	text-align: right;
}
.calendar .days{
  margin-bottom: 20px;
}
.calendar li{
  color: var(--schwarz);
  width: calc(100% / 7);
}
.calendar .weeks li{
  font-weight: 500;
  cursor: default;
  margin-bottom: 1em;
}
.calendar .days li {
  z-index: 1;
  position: relative;
  min-height: 5em;
  border: 1px solid #DDD;
}
.calendar .days li.calday {
  cursor: pointer;
}
.days li.inactive{
  color: #aaa;
}
.days li.active{
  color: var(--foregroundcolor);
}
.calendar .days li .numdat {
	text-align: right;
	padding: 0.4em 0.4em 0 0;
}
.days li .jetzt {
	color: #3D3;
}
.days li.calday:hover, .days li.calactive {
	background-color: var(--lightgrey);
}
.calendar .etermin {
	font-size: 80%;
	text-align: left;
}
.calendar .etermin span {
	display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
	border-bottom: 1px solid lightgrey;
		padding: 0.2rem 0.5rem;
}
.calendar .etermin span:nth-child(odd) {
	background-color: #c5e7dd;
}
.calendar .etermin span:nth-child(even) {
	background-color: #d5f7ee;
}
/* Ende Kalender */
#loader, #overlay {
	position:absolute;
	top:0;left:0;
	width:100%;height:100%;
	background-color: rgba(230,230,230,0.6);
	z-index:9999998;
}
#loader {
	cursor: wait;
}
#overlaycontent {
		position: sticky;
		min-height: 20rem;
		left: 20%;
		top: 9em;
		width: 60%;
		padding: 1rem;
}
#overlayclose {
	cursor: pointer;
	position: -webkit-sticky;
	position: sticky;
	left: 79.5%;
	top: 8.5em;
	color: darkred;
	border: 1px solid darkred;
	border-radius: 14px;
	z-index: 999;
	height: 22px;
	width: 22px;
	font-weight: bold;
	background-color: var(--weiss);
	text-align: center;
	display: inline-block;
	padding: 0px 6px;
}
.hidden, .invisible {
	display: none !important;
}
.fett {
	font-weight: bold;
}
/* Loader */
.lds-dual-ring {
	display: inline-block;
	width: 80px;
	height: 80px;
}
.lds-dual-ring:after {
	content: " ";
	display: block;
	width: 64px;
	height: 64px;
	margin: 8px;
	border-radius: 50%;
	border: 6px solid var(--dunkel-blau);
	border-color: var(--dunkel-blau) transparent var(--dunkel-blau) transparent;
	animation: lds-dual-ring 1.2s linear infinite;
}

@keyframes lds-dual-ring {
	0% {
		transform: rotate(0deg);
	}

	100% {
		transform: rotate(360deg);
	}
}
/* Ende loader */
/*
.design_radio {
	display:block;
	box-sizing: border-box;
}
.design_radio input[type="radio"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border:none;
  border-radius: 0;
  font-size: 1em;
  width:0px;
  float:left;
  background:transparent;
  border:none;
}

.design_radio input[type='radio']:checked, .newdesign_radio input[type='radio']:not(:checked) {
  background: transparent;
  position: relative;
  visibility: hidden;
  margin:0;
  padding:0;
}

.design_radio input[type='radio']:checked + label,
.design_radio input[type='radio']:not(:checked) + label {
  content:' ';
  display:inline-block;
  width: 31%;
	margin-right: 5px;
  height: 34px;
  position: relative;
  top: 4px;
  margin: 0px;
	padding: 9px 0px 9px 0px;
	box-sizing: border-box;
	cursor: pointer;
	text-align:center;
}
.design_radio input[type='radio']:not(:checked) + label {
  background:  var(--hell-grau);
}
.design_radio input[type='radio']:checked + label {
  background:  var(--mittel-blau);
	color: var(--weiss);
}
.design_radio .left_radio {
	border-top-left-radius: 15px;
	border-bottom-left-radius: 15px;
}
.design_radio .right_radio {
	border-top-right-radius: 15px;
	border-bottom-right-radius: 15px;
}
*/

/* RESPONSIVE */
@media (max-width: 1200px) {
	#overlaycontent {
		left:10%;
		top:3em;
		width:80%;
	}
	#overlayclose{
		left: 88.5%;
		top:2.5em;
	}
	.headerkachel {
		justify-content: left;
		padding-left: 3em;
		overflow: hidden;
	}
}
@media (max-width: 800px) {
	#overlaycontent {
		left: 1%;
		top: 1em;
		width: 98%;
	}
	#overlayclose {
		left: 97.5%;
		top: 1em;
	}
	.headermasonry {
		grid-template-columns: repeat(auto-fit, minmax(12%, 2em));
	}
	.headermasonry .headerkachel {
		background-position-x: center;
		width: 3em;
		color: transparent !important;
	}

}