
:root {
	--track-color-1: orange; /* #3071a9 */
	--track-color-2: orangered; /* wenn aktiv    #367ebd */

	--track-height: 2px;
	--track-border: 1px solid rgba(1, 1, 1, 0.5);
	--track-shadow: none; /*1px 1px 1px #000000, 0px 0px 1px #0d0d0d;*/


	--thumb-color: orange;
	--thumb-border-color: orangered;

	--thumb-height: 8px;
	--thumb-width: 12px;
	--thumb-margin: -3px;
	--thumb-border: 1px solid rgba(1, 1, 1, 0.5);
	--thumb-shadow: none; /*1px 1px 1px #000000, 0px 0px 1px #0d0d0d;*/

}


* {	box-sizing: border-box; }
h1, h2, h3, h4, h5, h6, h7 {
  margin: 0;
}

body {
	height: 100vh;
	padding: 0px;
	margin: 0px;
	font-family: Roboto, Verdana, Geneva, Tahoma, sans-serif;
  font-size: 1em;
	background-color: rgb(220, 220, 220);

	display: grid;
	grid-template-columns: 100%;
	grid-template-rows: min-content 1fr min-content;

	grid-template-areas:
	 "header"
	 "main"
	 "footer";
}


body > header {
	background-color: goldenrod;
	grid-area: header;
	min-height: 10px;
	z-index: 9999;
}

body > header > div {
  position: relative;
  padding: 5px;
}


body > header::after {
	content: "";
	position: absolute;
  top: 100%;
	left: 0px;
	width: 100%;
	height: 5px;
	background-image: linear-gradient(rgba(50,50,50,0.7), rgba(50,50,50,0));
}

body > header h1,
body > header h2,
body > header h3,
body > header h4,
body > header h5,
body > header h6 {
	margin: 0px;
	padding: 5px 10px;
  color: rgb(30,30,30);
	text-shadow: 1px 1px 2px rgb(50, 50, 50, 0.7);
}

body > header h1 {	font-size: 1.50em;  }
body > header h2 {	font-size: 1.40em;  }
body > header h3 {	font-size: 1.30em;  }
body > header h4 {	font-size: 1.20em;  }
body > header h5 {	font-size: 1.00em;  font-style: italic;  }
body > header h6 {	font-size: 1.00em;  font-weight: bold;  }


body > footer {
	position: relative;
	min-height: 10px;
	grid-area: footer;
	background-color: goldenrod;
	z-index: 9999;
}

body > footer::before {
	content: "";
	position: absolute;
	left: 0px;
	top: -5px;
	width: 100%;
	height: 5px;
	background-image: linear-gradient(rgba(50,50,50,0), rgba(50,50,50,0.7));
  overflow: hidden;
}

body > header, body > footer {
  position: relative;  
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

body > header, body > footer {
	background-image: linear-gradient(rgba(255,255,255,0.2), rgba(255,255,255,0.05));
}

body > footer label {
	padding-left: 2px;
	font-size: 8px;
}

body > header > nav {
  position: relative;
  /*min-height: 35px;*/
  padding-left: 5px;
  padding-right: 5px;
  /*background-color: rgba(255,0,0,0.05);*/
}

main {
	grid-area: main;
	display: grid;
	align-items: center;
	justify-items: center;
	/*overflow: auto;*/
	padding: 10px;
}

section {
	position: relative;
}

/******************************************************************************

Desing für das Menü
  
******************************************************************************/

nav.mainmenu span,
nav.mainmenu ul ul li > ul::before {
  font-size: 1.7em;
}

nav.mainmenu ul {
  display: inline-block;
  margin: 0;
  padding: 0;
  list-style: none;
  background-color: goldenrod;
  z-index: 100000;
  border: none;
  border-radius: 5px;
}

nav.mainmenu li,
nav.mainmenu li:hover li {
  display: inline-block;
  position: relative;
  padding: 3px 5px 5px 5px;
}

nav.mainmenu > ul > li:first-child {
  border-radius: 5px 0px 0px 5px;
}

nav.mainmenu > ul > li:last-child {
  border-radius: 0px 5px 5px 0px;
}

nav.mainmenu li > ul {
  position: absolute;
  left: 0;
  width: 0;
  height: 0;
  top: 98%;
  border-radius: 0px 0px 5px 5px;
  opacity: 0;
  box-shadow: 2px 2px 3px rgba( 0, 0, 0, 0.4 );
  /*transition: opacity 250ms 2ms linear;*/
}

nav.mainmenu li > ul li:last-child {
  border-radius: 0px 0px 5px 5px;
}

nav.mainmenu ul ul {
  width: calc(100% + 4em);
}

nav.mainmenu ul ul ul {
  width: calc(60% + 4em);
}

nav.mainmenu ul ul ul ul {
  width: calc(60% + 4em);
}


nav.mainmenu ul ul ul {
  left: 95%;
  top: 60%;
  border-radius: 5px 5px 5px 5px;
}

nav.mainmenu ul ul ul li:first-child {
  border-radius: 5px 5px 0px 0px;
}

nav.mainmenu li li {
  width: 0;
  height: 0;
  font-size: 0;
  padding: 0;
  border: 0;
}

nav.mainmenu li:hover > ul {
  height: auto;
  border: 1px solid black;
  opacity: 1;
  transition: opacity 250ms 100ms linear;
}

nav.mainmenu li:hover li {
  width: initial;
  height: initial;
  font-size: initial;
}

nav.mainmenu li:hover {
  background-color: orangered;
}

nav.mainmenu > ul ul > li:empty {
  height: 2px !important;
  padding: 0 !important;
  background-color: black;
}

nav.mainmenu li:hover > ul li {
  display: block;
}

/*nav.mainmenu ul ul li > ul::before,*/
nav.mainmenu ul ul ul::before {
  position: absolute;
  top: -0.85em;
  left: -0.7em;
  content: "▶";
  /*background-color: red;*/
}

/******************************************************************************

Desing für den Switch
  
******************************************************************************/

/* Body für Switch */

.mtsc {
  position: relative;
  top: 0px;
  right: 3px;
  width: 20px;
  height: 100%;
}

.mtsc.horizontal {
  display: contents;
  position: relative;
  top: 0;
  width: 100%;
  height: 100%;
}


.mtsc .mts {
  width: 100%;
  height: 100%;
  padding: 2px;
  cursor: pointer;
  /*background-color: red;*/
}

/* Switch Background */

.mtsc .mtsb {
  position: relative;
  height: 100%;
  padding: 2px;
  border-radius: 80px;
  background-color: var(--track-color-2); /*gray*/
  box-shadow: 1px 1px 1px rgba(0,0,0,0.4) inset, -1px -1px 1px rgba(255,255,255,0.7) inset;
  pointer-events: none;
}

/* Switch Thumb */

.mtsc .mtst {
  position: absolute;
  left: 2px;
  top: 2px;
  /*width: calc(100% - 5px);
  height: 100%;*/
  border-radius: 200px;
  background-color: var(--track-color-1);
  pointer-events: none;
  transition: all 300ms ease-in-out;
}

.mtsc.horizontal .mtst {
  height: calc(100% - 5px);
  width: 100%;
}


div[data-t="2"].mts .mtst {
  width: calc(100% - 5px);
  height: 80%;
}
.horizontal div[data-t="2"].mts .mtst {
  height: calc(100% - 5px);
  width: 80%;
}


div[data-t="3"].mts .mtst {
  width: calc(100% - 5px);
  height: 56%;
}
.horizontal div[data-t="3"].mts .mtst {
  height: calc(100% - 5px);
  width: 56%;
}


div[data-t="4"].mts .mtst {
  width: calc(100% - 5px);
  height: 40%;
}
.horizontal div[data-t="4"].mts .mtst {
  height: calc(100% - 5px);
  width: 40%;
}


div[data-t="2"][data-p="2"].mts .mtst {
  left: 2px;
  top: calc(100% - 80% - 2px);
}
.horizontal div[data-t="2"][data-p="2"].mts .mtst {
  top: 2px;
  left: calc(100% - 80% - 2px);
}



div[data-t="3"][data-p="2"].mts .mtst {
  left: 2px;
  top: calc(50% - 28%);
}
.horizontal div[data-t="3"][data-p="2"].mts .mtst {
  top: 2px;
  left: calc(50% - 28%);
}

div[data-t="3"][data-p="3"].mts .mtst {
  left: 2px;
  top: calc(100% - 56% - 2px);
}
.horizontal div[data-t="3"][data-p="3"].mts .mtst {
  top: 2px;
  left: calc(100% - 56% - 2px);
}



div[data-t="4"][data-p="2"].mts .mtst {
  left: 2px;
  top: calc(40% - 20%);
}
.horizontal div[data-t="4"][data-p="2"].mts .mtst {
  top: 2px;
  left: calc(40% - 20%);
}

div[data-t="4"][data-p="3"].mts .mtst {
  left: 2px;
  top: calc(60% - 20%);
}
.horizontal div[data-t="4"][data-p="3"].mts .mtst {
  top: 2px;
  left: calc(60% - 20%);
}

div[data-t="4"][data-p="4"].mts .mtst {
  left: 2px;
  top: calc(100% - 40% - 2px);
}
.horizontal div[data-t="4"][data-p="4"].mts .mtst {
  top: 2px;
  left: calc(100% - 40% - 2px);
}


/******************************************************************************

Desing für den Button
  
******************************************************************************/

.btn {
  display: inline-block;
  width: 100%;
  height: 35px;
  line-height: 35px;
  text-align: center;
  font-weight: 600;
  border-radius: 5px;
  background-color: goldenrod;
  border: 1px solid black;
  box-shadow: 2px 2px 3px rgba(0,0,0,0.6);
  cursor: pointer;
  user-select: none;
}

.btn:hover {
  background-color: orangered;
}

.btn:active {
  box-shadow: none;
}




/******************************************************************************

Desing für den Slider
  
******************************************************************************/

footer input[type=range] {
  -webkit-appearance: none; /* Hides the slider so that custom slider can be made */
  appearance: none; /* Hides the slider so that custom slider can be made */
  width: 100%; /* Specific width is required for Firefox. */
  background: transparent; /* Otherwise white in Chrome */
}

footer input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
}

footer input[type=range]:focus {
  outline: none; /* Removes the blue border. You should probably do some kind of focus styling for accessibility reasons though. */
}

footer input[type=range]::-ms-track {
  width: 100%;
  cursor: pointer;

  /* Hides the slider so custom styles can be added */
  background: transparent;
  border-color: transparent;
  color: transparent;
}


footer input[type=range] {
  -webkit-appearance: none;
  appearance: none;
  margin: 4px 0;
  width: 100%;
}

footer input[type=range]:focus {
  outline: none;
}

footer input[type=range]::-webkit-slider-runnable-track {
  width: 100%;
  height: calc(var(--track-height) * 2);
  cursor: pointer;
  box-shadow: var(--track-shadow);
  background: var(--track-color-1);
  border-radius: 1.3px;
  border: var(--track-border);
}
footer input[type=range]::-webkit-slider-thumb {
  box-shadow: var(--thumb-shadow);
  border: var(--thumb-border);
  height: var(--thumb-height);
  width: var(--thumb-width);
  border-radius: 3px;
  background: var(--thumb-color);
  cursor: pointer;
  -webkit-appearance: none;
  margin-top: var(--thumb-margin);
}
footer input[type=range]:focus::-webkit-slider-runnable-track {
  background: var(--track-color-2);
}

footer input[type=range]::-moz-range-track {
  width: 100%;
  height: var(--track-height);
  cursor: pointer;
  box-shadow: var(--track-shadow);
  background: var(--track-color-1);
  border-radius: 1.3px;
  border: var(--track-border);
	padding: 0px;
}
footer input[type=range]::-moz-range-thumb {
  box-shadow: var(--thumb-shadow);
  border: var(--thumb-border);
  height: var(--thumb-height);
  width: var(--thumb-width);
  border-radius: 3px;
  background: var(--thumb-color);
  cursor: pointer;
}
footer input[type=range]::-moz-range-progress {
	background-color: var(--track-color-2);
}


/******************************************************************************

Checkbox wie ein Switch
  
******************************************************************************/

footer [type="checkbox"].switch {
  z-index: 0;
  -webkit-appearance: none;
  appearance: none;
}

footer [type="checkbox"].switch + label {
  position: relative;
  cursor: pointer;
  padding-left: 27px;
}

/*  background  */
footer [type="checkbox"].switch + label:before {
	content: "";
	position: absolute;
	top: 1px;
	left: 0px;
  width: 20px;
  height: 6px;
  border-radius: 6px;
  border: 1px solid black;
  background-color: var(--thumb-color); /*#EEE;*/
  z-index: 5;
	transition: background-color 250ms linear;
}

/*  ball  */
footer [type="checkbox"].switch + label:after {
	content: "";
	position: absolute;
  top: 2px;
  left: 1px;
  width: 6px;
  height: 6px;
  border-radius: 6px;
  background-color: white; /*var(--thumb-border-color); /*#fff;*/
  box-shadow: 0px 0px 5px #aaa;
  z-index: 10;
	transition: all 250ms linear;
}

footer [type="checkbox"].switch:checked + label:before {
  background-color: var(--track-color-2); /* #2b8718;*/
}

footer [type="checkbox"].switch:checked + label:after {
  margin: 0 0 0 14px;
}

