:root {
	--weiss:        #FFFFFF;
	--schwarz: 	    #4A4A4A;
	--dunkelgrau:   #888888;
	--grau:         #F0ECE2;
	--dunkelblau:	#69779B;
	--hellblau:		#ACDBDF;
	--blassblau:    #d7e3e4;
	--gruen:        #84BA27;
	--dunkelgruen:  #597c1c;
	--hellgruen:    #dde4d0;
	--rot:          #FF4E32;
	--gelb:         #F7AC09;
}

html { 
	height: 100%; 
}

body {
  	background-color: var(--weiss);
	color: var(--schwarz);
  	display: grid;
	min-height: 100%;
	margin: 0;
	padding: 0;
	font-family: 'Source Sans Pro', sans-serif;
	font-size: 18px;
	line-height: 110%;
	grid-template-rows: auto auto 1fr auto;
	grid-template-areas: 
	"header" 
	"navi"
	"main"
	"footer";
}

header {
	grid-area: header;
}

nav {
	grid-area: navi;
}

#main {
	grid-area: main;
}

footer {
	grid-area: footer;
}

#operating {
	z-index: 3000;
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0;
	left: 0;
	background-color: rgba(0,0,0,0.5);
	display: block;
}

#operating img {
	margin-left: calc(50vw - 100px);
	margin-top: calc(50vh - 100px);
	width: 200px;
	height: 200px;
}

header {
	display: block;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	height: auto;
	position: relative;
	padding: 10px 20px 0 20px;
	margin: 0 auto;
}

.stoppuhr {
	width: 80px;
	float: left;
	margin: 10px 20px 0px 20px;
	cursor: pointer;
}

header h1 {
	font-weight: bold;
	margin-top: 10px;
	margin-bottom: 5px;
}

header h2 {
	display: none;
	margin-top: 0;
	margin-bottom: 0;
}

#totop {
	display: none;
}

form {
	position: relative;
}

input[type='text'],
input[type='password'],
input[type='email'] {
	width: 300px;
	max-width: 100%;
	box-sizing: border-box;
}

input[type='text'].short {
	width: 150px;
}

input[type='text'].medium {
	width: 300px;
}

input[type='text'].long {
	width: 100%;
}

input[type='text'].bold {
	font-weight: bold;
	font-size: 110%;
}

input[type='button'],
input[type='submit'] {
	padding: 5px 10px;
	min-width: 170px;
	background-color: var(--dunkelblau);
	cursor: pointer;
	transition: all 0.5s ease-in-out;
	color: #FFF;
	text-align: left;
}

input[type='button']:hover,
input[type='submit']:hover {
	background-color: var(--hellblau);
	color: #000;
}

iput[type='checkbox'] {
	zoom: 1.5;
}

span[class^='spacer'] {
	display: inline-block;
	overflow: hidden;
	max-height: 25px;
	box-sizing: border-box;
	padding-left: 5px;
}

span.spacer10 {
	width: 10px;
}

span.spacer20 {
	width: 20px;
}

span.spacer30 {
	width: 30px;
}

span.spacer40 {
	width: 40px;
}

span.spacer50 {
	width: 50px;
}

span.spacer60 {
	width: 60px;
}

span.spacer70 {
	width: 70px;
}

span.spacer80 {
	width: 80px;
}

span.spacer90 {
	width: 90px;
}

span.spacer100 {
	width: 100px;
}

span.spacer110 {
	width: 110px;
}

span.spacer120 {
	width: 120px;
}

span.spacer130 {
	width: 130px;
}

span.spacer140 {
	width: 140px;
}

span.spacer150 {
	width: 150px;
}

span.spacer160 {
	width: 160px;
}

span.spacer170 {
	width: 170px;
}

span.spacer180 {
	width: 180px;
}

span.spacer190 {
	width: 190px;
}

span.spacer200 {
	width: 200px;
}

.hide {
	display: none;
}

.fehler {
	color: var(--rot);
}

.right {
	text-align: right;
}

div {
	position: relative;
}

nav {
	position: relative;
	width: 50%;
	height: auto;
	text-align: left;
	padding: 0 0 0 20px;
	z-index: 1000;
}

nav ul {
	position: relative;
	margin: 0;
	padding: 0;
}

nav ul li {
	width: 150px;
	margin: 0;
	padding: 5px;
	background-color: var(--dunkelblau);
	color: var(--weiss);
	cursor: pointer;
}

nav ul li.menue {
	border-top: 2px solid #FFF;
	display: none;
}

nav ul li#menue span {
	display: inline-block;
	padding-left: 70px;
}

.warning {
	color: var(--rot);
}

@media only screen and (min-width: 700px) {

	#startTimer,
	#stopTimer {
		margin: 10px 50px 0px 20px;
	}

	nav {
		width: calc(100% - 200px);
	}

	nav ul li {
		background: none;
		color: var(--schwarz);
		float: left;
		padding: 5px 10px 5px 0;
	}

	nav ul li.menue {
		display: block;
		border-top: none;
	}

	nav ul li {
		width: auto;
		float: left;
		padding-left: 0px;
		list-style: none;
		margin-left: 2px;
	}

	nav #menue {
		display: none;
	}

	nav ul li:first-child {
		margin-left: 0;
	}

	nav li:hover {
		color: var(--dunkelblau);
		text-decoration: underline;
	}

}

h1, h2, h3, h4, p {
	width: 100%;
	height: auto;
}

table {
	border: none;
	border-collapse: collapse;
}

table thead {
	background-color: var(--dunkelblau);
	color: var(--weiss);
}

table th, table td {
	padding: 3px 5px;
	font-size: 90%;
}

table th {
	text-align: left;
}

table tbody tr:nth-child(even) {
	background-color: var(--hellblau);
}

table td p {
	margin: 0;
	padding: 0;
	line-height: 110%;
}

table tfoot {
	background-color: var(--dunkelblau);
	color: var(--weiss);
}

small {
	font-size: 70%;
}

.btn {
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	width: 25px;
	height: 25px;
	cursor: pointer;
}

th {
	text-align: left;
}

label {
	display: block;
	width: 100%;
	position: relative;
}

label.ticketstatus {
	margin-top: -40px;
	margin-left: 0;
}

textarea {
	font-family: 'Source Sans Pro', sans-serif;
	font-size: 16px;
	line-height: 160%;	
	color: var(--schwarz);
}

#HyphenatorToggleBox {
	display: none;
}

#cookiezustimmung {
	position: fixed;
	box-sizing: border-box;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	padding: 30px;
	margin: 0;
	background-color: rgba(0, 0, 0, 0.8);
	text-align: center;
	color: #FFF;
	z-index: 4000;
	transition: all 0.5s ease-in-out;
}

#cookiezustimmung.show {
	bottom: 0;
	right: 0;
}

#cookiezustimmung p {
	color: #FFF;
}

#allowcookies {
	border: none;
	border-radius: 10px;
	color: #000;
	background-color: var(--hellblau);
	padding: 10px 40px;
	transition: all 0.3s ease-in-out;
}

#allowcookies:hover {
	cursor: pointer;
	background-color: var(--gruen);
	background-image: url("/img/checked.png");
	background-size: auto 80%;
	background-position: 95% center;
	background-repeat: no-repeat;
}

.clearfix {
	clear:both;
	width: 100%;
	height: 0;
	overflow: hidden;
	position: relative;
	padding: 0;
	margin: 0;
}

.close {
	width: 30px;
	height: 30px;
	display: block;
	position: absolute;
	right: 5px;
	margin-top: -40px;
	cursor: pointer;
	background-image: url("/img/close.png");
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
}

div.wrapper {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

div.flexbox.row {
	display: flex;
	flex-direction: row;
	column-gap: 10px;
}

#projectlist {
	flex: 1;
}

#ticketlist {
	flex: 3;
}

input[type='button'].btn_new,
input[type='button']#btn_newcommit {
	position: absolute;
	right: 10px;
	top: 10px;
}

input[type='button']#btn_newcommit {
	top: auto;
	right: 10px;
}

p {
	color: var(--schwarz);
	margin: 0 0 5px 0;
	padding: 0;
}

.clear {clear: both;}

.delimage {
	position: absolute;
	display: none;
	width: 30px;
	height: 30px;
	margin-left: 10px;
	margin-top: 10px;
	background-image: url("/img/del.png");
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	background-color: var(--rot);
	cursor: pointer;
}

.imagecontainer:hover .delimage {
	display: block;
}

a {
	color:var(--dunkelblau);
	font-weight: bold;
	text-decoration: none;
}

a:hover {
	color:var(--schwarz);
	text-decoration: underline;
}

h1 {
	font-size: 180%;
	color: var(--dunkelblau);
	margin: 10px 0 20px 0;
	line-height: 100%; 
	font-weight: 400;
}

h2 {
	font-size: 140%;
	color: var(--schwarz);
	margin: 20px 0;
	padding: 0;
	font-weight: 300;
}

h3 {
	font-size: 120%;
	margin: 10px 0;
	font-weight: 300;
	line-height: 130%;
}

#totop {
	width: 40px;
	height: 30px;
	position: fixed;
	bottom: 30px;
	right: 20px;
	font-size: 40px;
	cursor: pointer;
	transition: all 0.3s ease-in-out;
	display: none;
	background-color: var(--dunkelblau);
	border-radius: 5px;
	z-index: 1000;
	display: none;
	padding: 10px;
	color: #FFF;
	border: 2px solid #fff;
}

#totop.show {
	display: block;
}

#totop:hover {
	color: var(--hellblau);
}

#main {
	box-sizing: border-box;
	width: 100%;
	position: relative;
	display: block;
	margin: 0 auto;
	padding: 0 20px 20px 20px;
	background-color: var(--weiss);
	border-top: 4px solid var(--dunkelblau);
}

#main article {
	box-sizing: border-box;
}

.status,
.sort_up,
.sort_down,
.edit,
.del {
	width: 30px;
	height: 30px;
	background-size: 28px;
	background-repeat: no-repeat;
	background-position: center;
	cursor: pointer;
	transition: filter 0.3s ease-in-out;
	padding: 0;
}

.status:hover,
.sort_up:hover,
.sort_down:hover,
.edit:hover,
.del:hover {
	background-color: var(--grau);
}

.status {
	background-image: url("/img/passive.png");
}

.status.active {
	background-image: url("/img/active.png");
}

.sort_up {
	background-image: url("/img/sort_up.png");
}

.sort_down {
	background-image: url("/img/sort_down.png");
}

.edit {
	background-image: url("/img/edit.png");
}

.del {
	background-image: url("/img/del.png");
}

tbody.ticket:hover {
	cursor: pointer;
	border: solid 2px #000;
}

#statustext {
	display: block;
	margin-bottom: 40px;
}

#erledigteTickets {
	margin-bottom: 30px;
	padding: 8px 5px;
	cursor: pointer;
}

table#ticketliste {
	width: 100%;
	max-width: 800px;
}

table#ticketliste tbody {
	min-width: 100%;
	max-width: 800px;
}

.ticketstatus_0 {
	color: var(--gruen);
	font-weight: bold;
}

.ticketstatus_1 {
	color: var(--dunkelblau);
	font-weight: bold;
}

.ticketstatus_2 tr td{
	display: none;
	color: var(--dunkelgrau);
	font-size: 90%;
}

.ticketstatus_2.show tr td{
	display: table-cell;
}

.ticketstatus_2 a {
	font-size: 60%;
}

label.statuslabel {
	width: 100px;
	text-align: center;
	color: var(--weiss);
	padding: 10px;
	margin-top: -40px;
	margin-bottom: 40px;
	border-radius: 8px;
	z-index: 100;
	cursor: pointer;
}

label.statuslabel.checked {
	border: solid 4px var(--rot);
}

label.statuslabel.checked::before {
	content: " ";
	position: absolute;
	box-sizing: border-box;
	width: 10px;
	height: 0px;
	left: auto;
	right: -30px;
	margin-top: -4px;
	border-right: 10px solid var(--rot);
	border-top: 15px solid transparent;
	border-bottom: 15px solid transparent;
	border-left: none;
}

label.statuslabel.status0 {
	background-color: var(--gruen);
}

label.statuslabel.status1 {
	background-color: var(--dunkelblau);
}

label.statuslabel.status2 {
	background-color: var(--schwarz);
}

@media only screen and (min-width: 1200px) {

	#statustext {
		display: inline-block;
		padding-right: 40px;
		margin-bottom: 0;
	}

	label.statuslabel {
		margin-top: 0;
		margin-left: -40px;
		margin-right: 40px;
	}

	label.statuslabel.checked::before {
		width: 128px;
		height: 10px;
		left: -4px;
		margin-top: 30px;
		border-bottom: 10px solid var(--rot);
		border-left: 64px solid transparent;
		border-right: 64px solid transparent;
	}

}

footer {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	background-color: var(--schwarz);
	margin: 0;
	padding: 20px;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	z-index: 1001;
}

footer div {
	flex: 1;
	min-width: 300px;
}

footer h2 {
	color: var(--weiss);
	margin-top: 0;
}

footer p {
	color: #FFF;
	margin: 5px 0 0 0;
	line-height: 110%;
}

footer a,
footer a:visited {
	color: var(--hellblau);
	font-size: 90%;
}

footer a:hover {
	color: var(--hellblau);
	text-decoration: underline;
}

footer article {
	box-sizing: border-box;
	padding: 0;
	margin-left: 20px;
}

footer article p {
	text-align: left;
}

footer span {
	display: inline-block;
	width: 30px;
}

#abdunkeln {
	display: block;
	width: 100vw;
	height: 100vh;
	position: fixed;
	background-color: rgba(0,0,0,0.7);
	z-index: 5000;
}

#zeitanzeige {
	position: fixed;
	top: 5px;
	left: calc(50% - 100px);
	width: 100px;
	height: 30px;
	z-index: 5000;
	background-color: var(--rot);
	color: var(--weiss);
	text-align: center;
}

#loginbox {
	position: absolute;
	box-sizing: border-box;
	width: 150px;
	height: auto;
	top: 5px;
	right: 10px;
	text-align: center;
	z-index: 100;
}

#loginbox input[type='button'] {
	width: 80px;
	max-width: 80px;
	height: 40px;
	padding: 5px;
	font-size: 100%;
	border: solid 2px transparent;
	border-radius: 5px;
}

#loginbox input[type='button']:hover {
	border-color: var(--schwarz);
}

#loginbox p {
	text-align: center;
	padding: 0;
	margin: 0;
	font-size: 80%;
}

#btn_logout,
#btn_user,
#btn_company {
	display: inline-block;
	width: 40px;
	height: 40px;
	margin-right: 10px;
	cursor: pointer;
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
}

#btn_logout {
	background-image: url('/img/logout.png');
}

#btn_user {
	background-image: url('/img/user.png');
}

#btn_company {
	background-image: url('/img/company.png');
}

#loginbox #btn_login {
	background-color: var(--gruen);
}

#loginbox #btn_signon {
	background-color: var(--gelb);
	margin-top: 5px;
}

#compnavi {
	margin: 0;
	padding: 0;
	list-style: none;
	width: 150px;
	display: block;
	text-align: left;
	transition: all 0.3s ease-in-out;
	overflow: visible;
}

#compnavi li {
	display: none;
	font-size: 100%;
	cursor: pointer;
	width: 100%;
	background-color: var(--grau);
	padding-left: 5px;
}

#compnavi li.active {
	display: inline-block;
	font-size: 90%;
	padding-left: 0;
}

#compnavi.show li {
	display: inline-block !important;
	box-sizing: border-box;
	cursor: pointer;
	border-top: solid 2px var(--weiss);
}

div[id^='editor_'] {
	position: relative;
	margin: 10px 0;
}

.editor {
	width: 100%;
	height: 250px;
	box-sizing: border-box;
	border: solid 2px var(--schwarz) !important;
}

.imagecontainer img {
	max-width: 100%;
}

.activateeditor,
.activateCommitEditor {
	width: 30px;
	height: 30px;
	position: absolute;
	top: 0px;
	right: 5px;
	background-image: url("/img/edit.png");
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	cursor: pointer;
}

.activateCommitEditor {
	top: -30px;
	display: none;
}

.activateeditor:hover,
.activateCommitEditor:hover {
	background-color: var(--grau);
}

.delticket,
.delcommit {
	position: absolute;
	right: 5px;
	top: 35px;
}

.delcommit {
	top: 0px;
	display: none;
}

.commit:hover .activateCommitEditor,
.commit:hover .delcommit {
	display: block;
}

.commit_save {
	position: absolute;
	right: 0;
	top: 0;
	width: 30px;
	height: 30px;
	background-image: url('/img/save.png');
	background-size: cover;
	cursor: pointer;
}

input[type='submit'].save,
input[type='button'].save {
	position: absolute;
	right: 0;
	top: 0;
}

.ticketscreenshot {
	max-width: 100%;
}

div.commit {
	background-color: var(--hellblau);
	width: 95%;
	margin-bottom: 10px;
	padding: 10px;
}

div.commit .commit {
	width: 90%;
}

div.commit.self {
	background-color: var(--hellgruen);
	margin-left: 5%;
}

#timerstop {
	width: 200px;
	padding: 10px;
	background-color: var(--rot);
	background-image: url("/img/logo-timomat.gif");
	background-size: contain;
	background-position: right;
	background-repeat: no-repeat;
}

#zeitverwerfen {
	position: absolute;
	width: 60px;
	height: 50px;
	left: 400px;
	background-image: url('/img/zeitverwerfen.png');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	cursor: pointer;
}

#mitarbeitereinladen {
	position: relative;
}

#zeitfilter {
	width: 250px;
	padding: 0;
}

#zeitfilter li {
	margin: 0;
	padding: 0;
	list-style: none;
}

#filtermenue {
	cursor: pointer;
	background-color: var(--dunkelblau);
	color: var(--weiss);
}

#zeitfilter input[type='button'],
#zeitfilter input[type='submit'] {
	width: 100%;
	margin-top: 10px;
}

#filterdel {
	display: block;
	position: absolute;
	left: 270px;
	margin-top: -90px;
	width: 40px;
	height: 40px;
	background-image: url("/img/filterdel.png");
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	cursor: pointer;
}

#btn_letztermonat {
	background-color: var(--gelb);
	color: var(--schwarz);
}

table tr.nichtabrechnen {
	background-color: var(--gelb) !important;
}

span.filterclear {
	display: inline-block;
	height: 25px;
	width: 25px;
	margin-left: 10px;
	margin-bottom: -5px;
	background-image: url('/img/del.png');
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	cursor: pointer;
}

#frm_zeiterfassung_print input[type='submit'] {
	position: absolute;
	right: -20px;
	top: -30px;
}

#alsabgerechnetmarkieren {
	position: absolute;
	right: 0;
	margin-top: -40px;
}

#dashboard {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	column-gap: 15px;
}

#dashboard article {
	flex: 1;
	border: solid 2px var(--dunkelblau);
	box-sizing: border-box;
	padding: 5px 10px 10px 10px;
	min-width: 250px;
	margin-bottom: 15px;
	background-color: var(--blassblau);
}

#dashboard article h2 {
	margin: 0 0 10px 0;
}

#index ul {
	background-color: var(--blassblau);
	border: solid 2px var(--dunkelblau);
	width: auto;
	max-width: 500px;
	padding-right: 10px;
}

#index li {
	list-style: none;
	background-color: var(--weiss);
	border-radius: 10px;
	color: var(--dunkelblau);
	font-size: 110%;
	margin-top: 10px;
	margin-bottom: 10px;
	padding-left: 10px;
}

#index li::before  {
	content: "";
	position: absolute;
	width: 25px;
	height: 25px;
	border-radius: 100%;
	background-color: var(--dunkelblau); 
	margin-top: 0;
	margin-left: -45px;
	
}

#zeitistgeld {
	width: 80%;
	max-width: 400px;
	display: block;
	margin: 40px 0 40px 0;
}

.anmeldebox {
	box-sizing: border-box;
	padding: 20px;
	background-color: var(--hellblau);
	border: solid 2px var(--dunkelblau);
}

@media only screen and (min-width: 1200px) {

	#zeitistgeld {
		width: 30%;
		max-width: 400px;
		position: absolute;
		left: 600px;
	}

	label {
		display: inline-block;
		width: 150px;
	}

	#totop {
		display: block;
		opacity: 0;
		position: fixed;
		bottom: 30px;
		right: 10px;
		width: 0px;
		height: 40px;
		border-bottom: solid 40px var(--dunkelblau);
		border-left: solid 30px transparent;
		border-right: solid 30px transparent;
		cursor: pointer;
		z-index: 2000;
		transition: all 0.3s ease-in-out;
	}
	
	#totop.show {
		opacity: 1;
	}

	#loginbox {
		right: calc(50% - 600px);
	}

	header {
		padding-left: calc(50% - 600px);
		padding-right: calc(50% - 600px);
	}

	header h2 {
		display: block;
	}

	nav {
		padding-left: calc(50% - 600px);
		width: 1000px;
	}

	#main {
		max-width: 1200px;
		margin-left: calc(50% - 600px);
		margin-right: calc(50% - 600px);
	}

	input[type='button'].btn_new {
		right: 0;
	}

	.close {
		right: calc(50% - 600px);
	}

	#alsabgerechnetmarkieren {
		right: calc(50% - 600px);
	}

	input[type='button']#btn_newcommit {
		right: calc(50% - 540px);
	}

	footer {
		padding-left: calc(50% - 600px);
		padding-right: calc(50% - 600px);
	}

}