:root {
	--color-component-background: #fff;
	--color-default-state: #e3e3e3;
	--color-default-state-hover: #dfe3ef;
	--color-font: #404656;
	--color-font-light: #fff;
	--color-background: #f3f3f3;
	--color-button-abort: #7a94ab;
	--color-button-abort-hover: #667b8e;
	--color-input-border: #ced4da;
	--color-primary-dark: #000;
	--color-score-green: #ADFF2F;
	--color-second-row: #f2f2f2;
	--color-selected-row: #aaaaaa;
	--color-shadow: #ccc;
	--color-table-border-dark: #404656;
	--color-table-border: #DEE2E6;
	--color-table-subheader-background: #F5F5F5;
	--color-toast-danger-background: #ffcdd2;
	--color-toast-danger: #b71c1c;
	--color-toast-info-background: #cce5ff;
	--color-toast-info: #3a87ad;
	--color-toast-success-background: #dbf1e1;
	--color-toast-success: #167916;
	--color-toast-warning-background: #fff3cd;
	--color-toast-warning: #B9A958;
	--color-toast-disabled: #404656;
	--color-toast-disabled-background: #ECECEC;
	--color-transparent: transparent;
	--color-warning: #FF9830;
	--color-notice: #ffff00;
	--color-error: #b71c1c;
	--color-info: #4cb4da;
	--color-zmi-default: #2d76b9;
	--color-zmi-default-hover: #00619d;
	--global-border-radius: 5px;
	--maskbg: rgba(0, 0, 0, 0.4);
	--lightmode-filter: invert(1);
	--font-size-text-primary: clamp(0.75rem, 0.7168rem + 0.1106vw, 0.9rem);
	--font-size-text-secondary: clamp(0.6rem, 0.5558rem + 0.1475vw, 0.8rem);
	--font-size-dialog-header: clamp(0.9rem, 0.7rem + 0.4167vw, 1.2rem);
	--color-primary: #2d76b9;
	--image-login: url(../resources/images/zmi-login-bg.jpg);
	--color-primary-hover: #1f5281;
	--color-primary-hover-contrast: #ffffff;
	--color-primary-transparent: rgba(45, 118, 185, 0.5);
	--bs-link-color: #2d76b9;
	--color-primary-contrast: #ffffff;
	--color-secondary: #00619d;
	--color-secondary-contrast: #ffffff;
	--font-headline: 'Open Sans', Helvetica Neue, Helvetica, Arial, sans-serif;
	--font-text: 'Open Sans', Helvetica Neue, Helvetica, Arial, sans-serif;
}

.darkmode {
	--color-component-background: #2a323d;
	--color-default-state: #2a323d;
	--color-default-state-hover: #373d45;
	--color-font: #ebebeb;
	--color-font-light: #000;
	--color-primary-dark: #fff;
	--color-background: #20262e;
	--color-table-border: #3f4b5b;
	--color-input-border: #3f4b5b;
	--color-second-row: #24303f;
	--color-table-subheader-background: #3f4b5b;
	--color-primary-hover: #40a8ff;
	--color-primary-hover-contrast: #000;
}

* {
	padding: 0;
	margin: 0;
}

a {
	text-decoration: none;
	font-weight: 700;
	color: var(--color-primary-hover);
}

a:hover {
	color: var(--color-primary-hover);
	text-decoration: underline;
}

html,
body,
app,
td,
a,
li,
span,
p,
div {
	font-family: var(--font-text);
}

body .ui-widget,
.menu-collapsed {
	font-size: var(--font-size-text-primary);
}

button,
input,
optgroup,
select,
textarea {
	font-family: var(--font-text) !important;
}

input[type=file] {
	max-width: 100%;
	white-space: break-spaces;
}

h1,
h1 span,
h2,
h2 span,
h3,
h4,
h5,
h6,
.headline {
	font-family: var(--font-headline);
}

h1 {
	font-weight: 700;
}

body {
	height: 100%;
	max-width: 100vw;
	overflow-x: hidden;
	background-color: var(--color-background);
	font-size: var(--font-size-text-primary);
	line-height: 1rem;
	color: var(--color-font);
}

code {
	display: block;
	background-color: var(--color-default-state);
	color: var(--color-font);
	border-radius: 3px;
	font-family: courier, monospace;
	padding: 5px;
}

.row form,
.row>label {
	padding: 0;
}

.ps-unset {
	padding-left: calc(var(--bs-gutter-x)* .5) !important;
}

.pe-unset {
	padding-right: calc(var(--bs-gutter-x)* .5) !important;
}

@media (min-width :576px) {
	.ps-sm-unset {
		padding-left: calc(var(--bs-gutter-x)* .5) !important;
	}

	.pe-sm-unset {
		padding-right: calc(var(--bs-gutter-x)* .5) !important;
	}
}

@media (min-width :768px) {
	.ps-md-unset {
		padding-left: calc(var(--bs-gutter-x)* .5) !important;
	}

	.pe-md-unset {
		padding-right: calc(var(--bs-gutter-x)* .5) !important;
	}
}

@media (min-width :992px) {
	.ps-lg-unset {
		padding-left: calc(var(--bs-gutter-x)* .5) !important;
	}

	.pe-lg-unset {
		padding-right: calc(var(--bs-gutter-x)* .5) !important;
	}
}

@media (min-width :1200px) {
	.ps-xl-unset {
		padding-left: calc(var(--bs-gutter-x)* .5) !important;
	}

	.pe-xl-unset {
		padding-right: calc(var(--bs-gutter-x)* .5) !important;
	}
}

@media print {

	.noprint,
	#navbar,
	#footer,
	.headline {
		display: none;
	}

	body {
		background: none !important;
		color-adjust: exact;
		-webkit-print-color-adjust: exact;
	}

}

.clear {
	display: table;
	width: 100%;
}

img {
	border: none;
}

.hr-separator {
	margin: 3em 0;
}

@media only screen and (max-width: 775px) {
	.hr-separator {
		margin: 1.5em 0;
	}
}

.header {
	position: absolute;
	width: 100%;
	top: 0;
	height: 115px;
	background: var(--color-component-background);
	border-bottom: 1px solid var(--color-table-border-dark);
}

.header .line {
	position: relative;
	top: 89px;
	height: 2px;
	width: 100%;
	z-index: 10;
}

.header .logo {
	position: relative;
	top: 18px;
	right: 60px;
	float: right;
	z-index: 100;
}

#navBar {
	font-size: 14px;
	font-weight: 100;
	padding: 10px 0 0 65px;
	color: var(--color-font-light);
}

#navBar li {
	padding: 5px 10px 5px 10px;
	float: left;
	list-style: none;
}

.headline-separator {
	overflow: hidden;
	width: 100%;
	padding: 0;
	word-break: break-word;
}

h3.headline-separator {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	margin-bottom: 0.75rem;
}

@media screen and (min-width: 700px) {
	.headline-separator {
		display: flex;
		justify-content: left;
		align-items: center;
		text-align: left;
		width: 100%;
	}

	.headline-separator:after {
		content: '';
		flex: 1 0 20px;
		margin: 0 0 0 20px;
		border-top: 2px solid;
	}
}

h2,
h3 {
	color: var(--color-font);
}

#header h1 a {
	color: var(--color-primary);
	text-decoration: none;
}

#header h1 a:hover {
	color: var(--color-font);
	text-decoration: none;
}

h2,
h2 a {
	color: var(--color-font);
	font-size: 1.3rem;
	font-weight: 700;
}

h3 {
	font-size: 1.1rem;
	font-weight: 700;
}

h4 {
	font-size: 1rem;
	font-weight: 700;
}

h5 {
	font-size: 0.9rem;
	font-weight: 700;
}

h6 {
	font-size: 0.8rem;
	font-weight: 700;
}

#headline {
	padding: 0;
}

.headline,
.headlineBottom {
	width: 100%;
	min-height: 30px;
	background: var(--color-component-background);
	padding: 1.5rem;
	border-bottom: 5px solid var(--color-secondary);
	-moz-box-shadow: none;
	-webkit-box-shadow: none;
	box-shadow: none;
}

.headline {
	border-top-left-radius: var(--global-border-radius);
	border-top-right-radius: var(--global-border-radius);
}

.headline h2,
.headline h3,
.headline h4,
.headline h5,
.headline h6 {
	margin: 0;
	padding: 0;
}

.headline table {
	width: 100%;
}

.headlineBottom {
	border-top: 5px solid var(--color-secondary);
	border-bottom: none !important;
	border-bottom-left-radius: var(--global-border-radius);
	border-bottom-right-radius: var(--global-border-radius);
	margin-bottom: 1.5rem;
}

.mainContent {
	background: var(--color-component-background);
	padding: 1.5rem;
	margin-bottom: 1.5rem;
	border-bottom: 5px solid var(--color-secondary);
	border-bottom-left-radius: var(--global-border-radius);
	border-bottom-right-radius: var(--global-border-radius);
}

.mainContent table {
	font-size: var(--font-size-text-primary);
	width: 100%
}

.leftSide {
	width: 580px;
	padding: 20px;
	margin: 0;
}

.rightSide {
	width: 580px;
	padding: 20px;
	margin: 0;
}

ul#twoRows,
ul#threeRows {
	list-style-type: none;
	width: 100%;
	padding-left: 0;
}

ul#twoRows li {
	width: 50%;
}

ul#threeRows li:first-child {
	width: 20% !important;
}

ul#threeRows li {
	width: 40%;
}

ul#twoRows li,
ul#threeRows li {
	display: block;
	float: left;
	margin: 0 0 75px 0;
}

table {
	margin: 0;
}

.left h2,
.left h2 a {
	color: var(--color-font);
	font-size: 22px;
	letter-spacing: -1px;
	font-weight: 100;
	padding: 15px 0 15px 0;
}

.right {
	width: 160px;
	float: left;
	margin: 60px 0 0 40px;
	padding: 0;
}

.right h2 {
	color: var(--color-font);
	line-height: 30px;
	font-size: 19px;
	font-weight: 100;
	letter-spacing: -1px;
}

#footer {
	text-align: center;
	color: var(--color-primary-contrast);
	background: var(--color-primary);
	font-size: 11px;
	padding: 5px;
	border-top: 1px solid var(--color-secondary);
	width: 100%;
	position: fixed;
	bottom: 0;
	z-index: 10;
}

#footer p {
	width: 100%;
	margin-bottom: 0;
}

#footer a {
	color: var(--color-primary-contrast);
	font-weight: 500;
	position: absolute;
	right: 30px;
}

#footer a:hover {
	text-decoration: underline;
}

#main:not(:has(.mainContent)) {
    margin-bottom: 2rem;
}

.list {
	padding: 10px;
}

.toggle {
	width: 1173px;
	background: var(--color-component-background);
	padding: 25px 0 25px 0;
	margin: 10px 0 10px 0;
	-moz-box-shadow: 0 0 20px var(--color-shadow);
	-webkit-box-shadow: 0 0 20px var(--color-shadow);
	box-shadow: 0 0 20px var(--color-shadow);
}

.date {
	text-align: center;
	min-width: 175px;
	display: inline-block;
	font-size: 14px;
	font-weight: 700;
}

.date_calendar {
	text-align: right;
	min-width: 100px;
	margin-right: 5px;
	display: inline-block;
	font-size: 14px;
	font-weight: 700;
}

.mute {
	color: var(--color-input-border);
}

.ui-state-default {
	background: var(--color-default-state);
	box-shadow: none;
	text-shadow: none;
}

.ui-calendar.ui-trigger-calendar {
	display: inline-flex;
}

.loggedIn .ui-menubutton button.ui-widget.ui-state-default {
	background: transparent;
	border: 0;
	color: var(--color-primary-contrast);
}

a.feed-icon {
	font-size: 1.1rem;
}

.card {
	background-color: var(--color-background);
}

.card h2 span {
	font-size: inherit;
	font-family: var(--font-headline);
}

.card span {
	font-size: var(--font-size-text-primary);
	line-height: 1.6;
}

.ui-widget,
.ui-widget input,
.ui-widget select,
.ui-widget textarea,
.ui-widget button {
	font-family: var(--font-text);
}

.ui-inputfield,
.ui-widget-content .ui-inputfield,
.ui-widget-header .ui-inputfield {
	background: var(--color-component-background);
	box-shadow: none;
}

.ui-widget-header,
.ui-widget-header .ui-state-default,
.ui-datepicker .ui-datepicker-header,
.ui-selectonemenu .ui-selectonemenu-trigger,
button.ui-widget.ui-state-default {
	background: var(--color-default-state);
}

body .ui-selectonemenu {
	max-width: 100%;
	min-width: auto !important;
	height: 100%;
	max-height: 36px;
}

body .ui-selectonemenu .ui-selectonemenu-label {
	height: 100%;
}

.ui-widget-header.ui-datatable-header input {
	background: var(--color-component-background);
}

.ui-datepicker .ui-datepicker-current-day .ui-state-highlight,
.ui-datepicker .ui-datepicker-current-day .ui-state-default {
	background: var(--color-primary);
}

.ui-calendar input.ui-inputfield.hasDatepicker {
	max-height: 36px;
}

.ui-paginator .ui-paginator-rpp-options {
	padding: 4px 3px;
	border-radius: var(--global-border-radius);
	background: var(--color-component-background);
	color: var(--color-font);
}

.ui-paginator .ui-paginator-page {
	background: var(--color-component-background);
}

.terminal-info #toggle-details {
	color: var(--color-font-light);
}

.ui-datatable-odd {
	background: none repeat scroll 0 0 var(--color-second-row);
}

.ui-state-highlight,
.ui-widget-content .ui-state-highlight,
.ui-widget-header .ui-state-highlight {
	border: 1px solid var(--color-component-background);
	background: var(--color-primary);
}

.ui-datatable .ui-datatable-data tr.ui-state-hover {
	border-color: var(--color-component-background);
	color: var(color-font-light);
	background: var(--color-primary);
}

.ui-selectonemenu-panel .ui-state-hover {
	box-shadow: none;
	color: var(--color-font-light);
	background: var(--color-primary);
}

.scrollup {
	position: fixed;
	width: 40px;
	height: 40px;
	bottom: 35px;
	right: 10px;
	-webkit-border-radius: var(--global-border-radius);
	-moz-border-radius: var(--global-border-radius);
	border-radius: var(--global-border-radius);
	border: 2px solid var(--color-font);
	color: var(--color-font);
	background: var(--color-component-background);
	opacity: 0.7;
	display: none;
	text-align: center;
	font-size: 1.2rem;
}

.scrollup:hover {
	color: var(--color-primary);
	border-color: var(--color-primary);
}

.scrollup i {
	position: absolute;
	top: 50%;
	right: 50%;
	display: inline-block;
	transform: translate(50%, -50%);
}

.ui-selectonemenu .ui-selectonemenu-trigger {
	width: 22px !important;
}

.ui-button-icon-only {
    min-width: 36px;
    height: 36px;
}

	.ui-button-icon-only .bi-x-lg::before {
	    padding-left: 0.06rem;
	}

.row>.ui-button {
    padding: 0;
}

.error {
	color: var(--color-error);
}

/****************************************************************************
 *                      			 ICONS   			 	                *
 ****************************************************************************/
.icons {
	font-size: 1.05rem !important;
	color: var(--color-font);
}

a .icons {
	color: var(--color-primary);
}

a:hover .icons {
	color: var(--color-primary-hover);
}

body .ui-datatable .ui-datatable-data>tr.ui-state-highlight a .icons {
	color: var(--color-primary-contrast);
}

.fa-lg {
	font-size: 1.33333333em;
	line-height: .75em;
	vertical-align: -15%
}

.fa-2x {
	font-size: 2em
}

.fa-3x {
	font-size: 3em
}

.fa-4x {
	font-size: 4em
}

.fa-5x {
	font-size: 5em
}

.fa-flip-horizontal {
	-webkit-transform: scaleX(-1);
	transform: scaleX(-1);
}

.input {
	margin: 0;
	padding: 4px;
}

@-moz-document url-prefix() {
	.input {
		font-size: 14px;
		padding: 4px 4px 6px 4px;
	}
}

.reset {
	width: 16px;
	height: 16px;
	position: absolute;
	right: 8px;
	bottom: 8px;
}

.reset::before {
	content: "\f659";
	display: inline-block;
	font-family: bootstrap-icons !important;
	font-style: normal;
	font-weight: 400 !important;
	font-variant: normal;
	text-transform: none;
	line-height: 1;
	vertical-align: -.125em;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.p-relative {
	position: relative;
}

.bi-spin {
    -webkit-animation: bi-spin 2s infinite linear;
    animation: bi-spin 2s infinite linear;
    width: 12px;
    display: inline-block;
}

@keyframes bi-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}

/****************************************************************************
 *                       Primefaces Komponenten			                   *
 ****************************************************************************/
.ui-icon.fa {
	text-indent: 0;
	background-image: none;
	top: 57%;
	font-size: 13px !important;
}

.ui-icon.fa.fa-lg {
	text-indent: 0;
	background-image: none;
	top: 55%;
	font-size: 20px !important;
}

.ui-state-loading.ui-button-text-only .ui-icon-loading {
	line-height: unset;
}

body .ui-button {
	color: var(--color-font);
	border-color: var(--color-input-border);
}

form label {
	display: block;
	margin-bottom: 5px;
}

label {
	font-size: var(--font-size-text-primary);
	font-weight: 700;
	margin-bottom: 5px;
}

form textarea {
	width: 100%;
}

form .ui-autocomplete {
	width: 100%;
}

form .ui-autocomplete-input.ui-autocomplete-dd-input {
	width: calc(100% - 2.357rem);
}

form .ui-autocomplete .ui-autocomplete-dropdown {
	height: 36px;
	border-left: 0;
}

.ui-datepicker-trigger.ui-button-icon-only .ui-button-text {
	margin-top: -2px;
}

form .ui-inputtext {
	width: 100%;
	max-height: 34px;
}

input[type=text] {
	padding: .5rem;
	font-size: var(--font-size-text-primary);
	max-height: 36px;
	height: 100%;
	width: 100%;
	border-radius: var(--global-border-radius);
	border: 1px solid var(--color-input-border);
}

input[type=text]:disabled {
	color: var(--color-font);
	background: var(--color-background);
	opacity: 0.7;
}

body .ui-autocomplete .ui-autocomplete-input.ui-autocomplete-dd-input {
	height: 100%;
	max-height: 36px;
}

.ui-button-text {
	font-size: var(--font-size-text-secondary);
	text-shadow: none;
}

body .ui-message {
	display: block;
}

.ui-message-error {
	font-size: var(--font-size-text-primary);
	line-height: 1.3;
}

.ui-datatable {
	font-size: var(--font-size-text-secondary);
}

.ui-datatable.ui-datatable-resizable table {
	width: 100% !important;
}


.ui-datatable .ui-datatable-data>tr>td.tableIcon {
    text-overflow: unset;
}

td.tableIcon {
	vertical-align: middle;
}

.tableIcon button {
	height: 100% !important;
	width: 100%;
	max-height: 30px;
	max-width: 30px;
}

.ui-datatable thead th,
.ui-datatable tbody td,
.ui-datatable tfoot td {
	text-overflow: ellipsis;
}

.ui-dt-c {
	width: 100% !important;
}

#dialog .ui-dialog {
	max-width: 100%;
}

.ui-dialog .ui-button:not(.ui-button.ui-button-icon-only) {
	width: auto;
}

.ui-dialog-content {
	width: 100%;
}

.ui-picklist .ui-picklist-list {
	width: auto !important;
}

.monatsAnsicht {
	text-align: center;
	font-size: var(--font-size-text-secondary) !important;
	padding: 0;
}

.monatsAnsicht .ui-datatable-tablewrapper {
	border-radius: 0 0 var(--global-border-radius) var(--global-border-radius);
}

.monatsAnsicht.ui-datatable .ui-datatable-data>tr>td {
	padding: 0.1rem;
}

.monatsAnsicht.ui-datatable tfoot td {
    text-align: center;
}

.monatsAnsicht tbody tr td.tableColumn:first-child {
    text-align: left;
    padding: 4px 8px;
}

.monatsAnsicht .ui-inputfield {
	-moz-box-shadow: none !important;
	-webkit-box-shadow: none !important;
	box-shadow: none !important;
	width: 40px;
}

.editierteBuchung {
	color: var(--color-primary) !important;
}

.buchungskorrektur {
	font-weight: 700;
	text-decoration: underline;
	color: var(--color-toast-success) !important;
}

.monatsAnsicht .ui-state-disabled {
	opacity: 1;
	filter: Alpha(Opacity=100);
}

/* BUG FIX - should be checked and removed with 3.0 Production */
.ui-dialog .ui-dialog-titlebar {
	height: auto !important;
}

body .ui-dialog .ui-dialog-content {
	max-height: calc(100vh - 64px);
}

.noheader table thead tr th.ui-state-default {
	display: none;
}

.norecords tbody tr {
	display: none;
}

table th .taetigkeit {
	width: 150px;
	text-align: center;
}

.tableIcon {
	padding: 4px 3px !important;
	width: clamp(1.25rem, 1.1394rem + 0.3687vw, 1.75rem) !important;
	text-align: center;
}

.seperator {
	margin: 15px 0 15px 0;
	border: 1px solid var(--color-secondary);
}

.ui-icon-pencil {
	position: relative;
	font-family: FontAwesome;
	top: 0;
	left: -5px;
	content: "\25AE";
}

.red {
	color: var(--color-font-light);
	background: var(--color-toast-danger) !important;
}

.green {
	color: var(--color-font-light);
	background: var(--color-toast-success);
	text-shadow: none !important;
}

.grey {
	color: var(--color-toast-disabled);
	background: var(--color-default-state);
	text-shadow: none !important;
}

.feiertag,
.feiertag a {
	color: var(--color-font-light) !important;
	background: var(--color-toast-success) !important;
}

.weekend {
	background: var(--color-second-row);
}

.noWeekend {
	background: var(--color-component-background);
}

.greenImg {
	background: url(../resources/images/green.png) no-repeat !important;
	padding: 7px 8px 0 0;
	margin: 0 0 8px 8px;
}

.redImg {
	background: url(../resources/images/red.png) no-repeat !important;
	padding: 7px 8px 8px 0;
	margin: 0 0 8px 8px;
}

separator-line {
	margin-top: 5px;
	margin-bottom: 5px;
	border: 1px dashed var(--color-font);
}

.datatable th div.ui-dt-c,
.datatable .ui-datatable-data td div.ui-dt-c,
.datatable .ui-datatable-data-empty td div.ui-dt-c,
.datatable tfoot td div.ui-dt-c {
	padding: 4px 0 !important;
}

.ui-datatable .ui-state-hover .tableIcon a,
.ui-datatable .ui-state-hover .ui-commandlink span,
.ui-datatable table tbody tr.ui-state-hover .ui-commandlink i {
	color: var(--color-primary-contrast);
}

.ui-datatable a.ui-commandlink:has(.bi):hover {
    text-decoration: none;
}

.datatable .cell {
	height: 100%;
	padding: 4px 0 !important;
	width: 100%;
}

.datatable th.tableIcon {
	padding: 4px 7px !important;
}

.datatable th.stammdatenActions {
	width: 60px;
}

.stammdaten-dropdown {
	min-width: 177px;
}

.stammdaten-dropdown label {
	min-width: 195px;
}

.datatable .ui-corner-top {
	-webkit-border-radius: 0;
	-moz-border-radius: 0;
	border-radius: 0;
}

.buchungsWizard .mitarbeiterZeitplan td {
	vertical-align: middle;
}

.mitarbeiterZeitplan .ui-selection-column {
	width: 1.4rem;
	text-overflow: clip;
	text-align: center;
}

.mitarbeiterZeitplan .ui-chkbox {
	margin: 0 auto !important;
	width: 1rem;
	height: 1rem;
}

body .ui-widget.zeitplan-grid tr,
body .ui-widget.zeitplan-grid td,
body .ui-widget.zeitplan-grid .ui-selectonemenu {
	font-size: var(--font-size-text-secondary);
}

body .ui-widget.zeitplan-grid td.wochentag {
	padding: 0;
}

.selectedRow {
	color: var(--color-font-light);
	background: var(--color-selected-row);
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0)) var(--color-selected-row);
}

tbody .ui-chkbox .ui-chkbox-box .ui-chkbox-icon.ui-icon-check {
	font-weight: 700;
}

/****************************************************************************
 *                       CSS für Arbeitszeit				                    *
 ****************************************************************************/
.arbeitszeit .cell {
	height: 100%;
	width: 50%;
	font-weight: 700;
	padding: 4px 0 !important;
	font-size: 13px;
	float: left;
}

/****************************************************************************
 *                       CSS für Tageswerte				                    *
 ****************************************************************************/
.tageswerte {
	text-align: center;
	font-size: 10px;
}

.tageswerte thead td {
	color: var(--color-font) !important;
	white-space: nowrap;
}

.tageswerte .cell {
	height: 100%;
	width: 50%;
	font-weight: 700;
	padding: 4px 0 !important;
	font-size: 13px;
	float: left;
}

.tageswerte tbody td {
	padding: 0 !important;
}

#form\:tageswerte .ui-datatable-header {
	text-align: right;
	padding-top: 0;
	padding-right: 0;
}

#form\:urlaubswerte td {
	padding: 0.35rem;
}

/****************************************************************************
 *                       CSS für Monatswerte				                    *
 ****************************************************************************/
.monatswerte.datatable .ui-datatable-header {
	text-align: right;
	padding-right: 0;
}

.monatswerteTable.ui-datatable .ui-datatable-header {
    padding: 0 0 1rem 0;
}

/****************************************************************************
 *                       CSS für das Modul Urlaubsplaner                    *
 ****************************************************************************/
.urlaubsplaner {
	font-size: 0.8em;
	text-align: center;
}

.urlaubsplaner .tableColumn {
	width: 30px !important;
}

.urlaubsplaner td {
	padding: 0 !important;
}

.urlaubsplaner th {
	line-height: 1.5em;
	padding: 2px 0 !important;
}

.urlaubsplaner .cell {
	font-size: 0.8em;
	line-height: 30px;
	font-weight: 700;
}

.urlaubsplaner .cell .beantragt {
	border: 1px dashed var(--color-component-background);
	padding: 5px;
	background-image: url(../resources/images/schraffur_w.png);
}

.urlaubsplaner .cell .genehmigt {
	border: 1px dashed var(--color-toast-success);
	padding: 5px;
}

.urlaubsplaner .cell .abgelehnt {
	border: 1px dashed var(--color-toast-danger-background);
	padding: 5px;
}

.urlaubsplaner .cell .loeschen {
	border: 1px dashed var(--color-toast-danger-background);
	padding: 5px;
	background-image: url(../resources/images/schraffur_rot.png);
}

.urlaubsplaner .woende {
	background: var(--color-second-row);
}

.urlaubsplaner .heute {
	background: var(--color-component-background);
	color: var(--color-primary);
}

.schraffur {
	background-image: url(../resources/images/schraffur.gif);
	border: 1px dashed var(--color-toast-danger-background);
}

#cal_input {
	font-weight: 700 !important;
}

/****************************************************************************
 *                       CSS für das Modul Terminal                         *
 ****************************************************************************/
.jqclock {
	margin-bottom: 25px;
}

.clockdate {
	float: left;
}

.clocktime {
	float: right;
}

.terminal-headline .ui-clock {
	padding: 0;
	border: 0;
	font-size: 1.3rem;
	font-weight: 500;
	line-height: normal;
	font-family: var(--font-text);
}

.terminal-button-group {
	margin: 0 auto;
	width: 700px;
}

.terminal-button-group .ui-button-text-icon-left .ui-button-text {
	padding: 0 !important;
}

.terminal-button-group .ui-widget-content {
	border: none !important;
}

.terminal-button {
	width: 100%;
	min-height: 70px;
}

.terminal-button.ui-widget.ui-state-default:hover,
.terminal-button.ui-widget.ui-state-default:focus {
	background-color: var(--color-primary);
	color: var(--color-primary-contrast);
}

.terminal-button .ui-button-text {
	font-size: 1.2rem;
}

.terminal-button .bi {
	font-size: 1.5rem;
	margin-top: -0.7rem !important;
}

.terminal-info {
	padding: 8px 0;
	border-top: 2px solid var(--color-table-border);
	border-bottom: 2px solid var(--color-table-border);
}

.board-details {
	padding: 5px 0;
}

.board-details span {
	width: 100%;
	display: block;
}

.board-details span:not(:last-of-type) {
	margin-bottom: 5px;
}

.terminal-bottom-info {
	text-align: center;
	margin-top: 20px;
}

.terminal-headline {
	padding: 0;
	margin-bottom: 1rem;
}

.terminal-headline .jqclock {
	font-size: 1.1rem;
	font-weight: 500;
}

.footnote {
	font-size: 0.75rem;
	line-height: 1;
	font-weight: 500;
	padding: 0;
}

#board\:urlaub #board\:urlaubchart {
	width: 400px !important;
	height: 400px !important;
	max-width: 100%;
	max-height: 100%;
	margin: 0 auto;
}

/****************************************************************************
 *                       CSS für Buchungsübersicht                          *
 ****************************************************************************/
.fa.service-success {
	color: var(--color-toast-success);
	font-size: 1.3rem;
	transform: translate(0, 0.25rem);
}

.fa.service-success:hover {
	text-decoration: none;
	color: var(--color-score-green)
}

a#buttons\:success {
	text-decoration: none;
}

#fehltagedefinition-bezeichnung,
#fehltagprio-bezeichnung {
	max-width: calc(100% - 30px);
	text-overflow: ellipsis;
	overflow: hidden;
	display: inline-block;
	vertical-align: text-top;
}

/****************************************************************************
 *                       CSS for Sidebar menu                               *
 ****************************************************************************/
#body-row {
	margin-left: 0;
	margin-right: 0;
	height: 100%;
	padding-top: 51px;
	padding-bottom: 27px;
}

.sidebar-wrapper {
	height: calc(100vh - 77px);
	position: fixed;
	overflow-y: auto;
	overflow-x: hidden;
	width: inherit;
	z-index: 1001;
	background-color: var(--color-background);
}

.sidebar-wrapper .list-group {
	padding-left: 1rem;
}

.accordion-collapse {
	padding-top: 5px;
}

@media screen and (max-width: 991px) {
	#body-row {
		padding-top: 49px;
		padding-bottom: 28px;
	}

	.sidebar-wrapper {
		height: calc(100vh - 48px);
	}

	.sidebar-wrapper .list-group {
		padding-left: 0;
	}

	#header.sidebar-container.sidebar-expanded {
		width: 100%;
	}

	.headline,
	.headlineBottom {
		padding: 1rem;
	}

	#body-row.expanded-overflow {
		overflow: hidden;
	}

	#body-row.collapsed-overflow {
		overflow-x: hidden;
	}

	#body-row.collapsed-overflow #header {
		display: none;
	}
}

.sidebar-container {
	height: 100%;
	padding: 0;
}

/* Sidebar sizes when expanded and expanded */
.sidebar-expanded {
	width: 270px;
}

.sidebar-collapsed {
	width: 75px;
}

.sidebar-container .list-group li:not(:last-of-type) {
	/*border-bottom: 1px solid var(--color-table-border);*/
	margin-bottom: 5px;
}

/* Menu item*/
.sidebar-container .list-group a {
	display: flex;
	align-items: center;
	color: var(--color-font);
	border: none;
}

.sidebar-container .list-group a.active,
.sidebar-container .list-group a:hover {
	color: var(--color-primary-contrast);
	background-color: var(--color-primary);
	text-decoration: none;
	border-radius: var(--global-border-radius);
}

.nav-item.dropdown.loggedIn a {
	color: var(--color-primary-contrast);
}

.nav-item.dropdown.loggedIn a:hover {
	color: var(--color-primary-contrast);
	opacity: 0.6;
	text-decoration: none;
}

.sidebar-container .list-group-item {
	background-color: var(--color-background);
}

/* Submenu item*/
.sidebar-container .list-group .sidebar-submenu a {
	height: 45px;
	padding-left: 30px;
}

.sidebar-submenu {
	font-size: clamp(0.75rem, 0.7168rem + 0.1106vw, 0.9rem);
}

/* Separators */
.sidebar-separator-title {
	background-color: var(--color-component-background);
	height: 35px;
}

.sidebar-separator {
	background-color: var(--color-component-background);
	height: 25px;
}

.logo-separator {
	background-color: var(--color-element-background);
	height: 60px;
}

#collapse-icon {
	font-size: 2rem;
	color: var(--color-primary-contrast);
}

.accordion-button.collapsed::after {
	content: "\f229";
	font-family: 'bootstrap-icons';
	font-size: clamp(0.75rem, 0.7168rem + 0.1106vw, 0.9rem);
}

.accordion-button:not(.collapsed)::after {
	content: "\f235";
	font-family: 'bootstrap-icons';
	font-size: clamp(0.75rem, 0.7168rem + 0.1106vw, 0.9rem);
}

.sidebar-container .accordion-button .menu-collapsed {
	font-size: clamp(0.75rem, 0.7168rem + 0.1106vw, 0.9rem);
	font-weight: 700;
}

.sidebar-container .list-group {
	width: 100%;
	z-index: 100;
}

.sidebar-container.sidebar-collapsed .ui-overlay-badge .ui-badge {
	transform: translate(6px, -70%);
	word-break: keep-all;
}

.accordion-item span.bi,
.list-group-item span.bi {
	font-size: clamp(0.9rem, 0.9168rem + 0.1106vw, 1.1rem);
}

.sidebar-container .ui-overlay-badge .ui-badge {
	transform: translate(17px, -50%);
	background: var(--color-warning);
	color: var(--color-font-light);
	font-size: 0.7rem;
	height: 1.2rem;
	line-height: 1.2rem;
	min-width: 1.2rem;
}

.sidebar-container .list-group {
	padding-top: 10px;
}

.sidebar-container .list-group li {
	list-style: none;
}

#collapse-icon:hover {
	cursor: pointer;
}

.sidebar-container .accordion-item .accordion-header:hover button {
	background-color: var(--color-primary);
	color: var(--color-primary-contrast);
	border-radius: var(--global-border-radius);
}

.sidebar-container .list-group a,
.sidebar-container .list-group .accordion-item button {
	padding: 0.7rem;
}

.accordion-collapse.collapse.show li {
	border-bottom: none;
}

.accordion-item .accordion-collapse.collapse.show .list-group-item {
	padding-left: 1.3rem;
	word-break: break-word;
}

.navbar-nav .warnings {
	display: flex;
	align-items: center;
	margin-right: 15px;
}

.navbar-nav .warnings a {
	font-size: 1.3rem;
}

.accordion-item .accordion-collapse.collapse.show .ui-link .bi {
	font-size: 0.95rem;
}

.accordion-item .accordion-collapse.collapse.show .ui-link {
	font-size: 0.8rem;
}

.sidebar-collapsed a.burger-menu {
	width: 100%;
}

.sidebar-expanded a.burger-menu {
	width: auto;
}

.sidebar-collapsed .navbar-brand {
	display: none;
}

.ui-menu .ui-menu-list .ui-menuitem .ui-menuitem-link {
	font-size: var(--font-size-text-primary);
	font-weight: 700;
	display: flex;
	align-items: center;
}

.navbar-nav .ui-button.ui-button-text-icon-right .ui-button-text {
	padding: 0.5rem 2rem 0.5rem 0.5rem;
	font-size: var(--font-size-text-primary);
}

#footer {
	z-index: 1001;
}

/****************************************************************************
 *                       CSS for Dashboard                                  *
 ****************************************************************************/

.grid {
	display: flex;
	flex-wrap: wrap;
	margin-right: -0.5rem;
	margin-left: -0.5rem;
	margin-top: -0.5rem;
}

.grid>.col,
.grid>[class*=col] {
	box-sizing: border-box;
}

.grid-nogutter {
	margin-right: 0;
	margin-left: 0;
	margin-top: 0;
}

.grid-nogutter>.col,
.grid-nogutter>[class*=col-] {
	padding: 0;
}

.ui-dashboard-active {
	border-color: var(--primary-color);
	border-width: var(--global-border-radius) !important;
	border-style: dashed;
}

.ui-dashboard-hover {
	border-color: var(--color-primary-hover);
	border-width: 3px !important;
	border-style: solid;
}

.dashboard-terminal-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 1rem;
}

body .ui-menu .ui-menu-list .ui-menuitem .ui-menuitem-link .ui-menuitem-text img {
	margin-left: 5px;
}

/****************************************************************************
 *                       CSS für Mitarbeiter                                *
 ****************************************************************************/
.panelColumns td {
	vertical-align: top;
}

.labelRight {
	color: var(--color-font);
	text-align: right;
}

.labelRight .legend {
	font-weight: 700;
	font-size: 1.1em;
}

#mitarbeiter-form label {
	color: var(--color-font);
}

.mitarbeiterDatum input {
	width: 160px;
}

.table-profile tr {
	border-bottom: 1px solid var(--color-table-border);
}

.table-profile tr td {
	padding: 5px 0;
}

/****************************************************************************
 *                       CSS für die Anzahl neuer Nachrichten               *
 ****************************************************************************/
.badge {
	margin-left: 0.25rem;
	background-color: var(--color-warning) !important;
}

/****************************************************************************
 *                       CSS für die Anmeldung                              *
 ****************************************************************************/
li a:hover .abmelden {
	text-decoration: underline;
}

#login {
	/* padding: 50px 0 50px 0; */
	min-height: 100%;
}

#login .logo {
	margin-bottom: 10px;
}

.loginForm {
	margin: 0 auto;
	width: 100%;
	background-color: var(--color-component-background);
}

.loginForm h1 {
	color: var(--color-primary);
	font-weight: 700;
	border-bottom: 1px solid var(--color-svar(--color-zmi-default) ary);
}

.loginForm input[type="text"],
.loginForm input[type="password"] {
	width: 100%;
    height: 36px;
    padding: 4px 8px;
    border: 1px solid var(--color-input-border);
    border-radius: var(--global-border-radius);
}

.loginForm input[type="submit"] {
	background: var(--color-zmi-default);
	color: var(--color-font-light);
	border-radius: var(--global-border-radius);
	border: none;
	height: 36px;
    padding: 4px 10px;
    margin-top: 1rem;
}

.loginForm input[type="submit"]:hover {
	background: var(--color-zmi-default-hover);
}

#responsive-bg {
	background-color: var(--color-component-background);
}

#copyright a,
.loginForm body .ui-commandlink,
body .ui-link {
	color: var(--color-zmi-default);
}

.smallFont {
	font-size: 85%;
	font-weight: 500;
}

.errorMessage {
	color: var(--color-error);
	font-size: 85%;
	font-weight: 500;
}

.infoMessage {
	color: var(--color-toast-info);
	font-size: 85%;
	font-weight: 500;
}

.ui-password {
	width: 100%;
}

.btn-submit {
	background: var(--color-default-state);
	color: var(--color-font);
	border-color: var(--color-input-border);
	border-radius: var(--global-border-radius);
	transition: background-color .2s, color .2s, border-color .2s,
		box-shadow .2s, opacity .2s;
}

.leereVertreter {
	background: var(--color-component-background) url(../resources/images/user_48.png) no-repeat center center;
	min-height: 220px;
	margin: 0 0 0 0;
	text-align: center;
	font-size: 1.2rem;
	color: var(--color-shadow);
	-moz-box-shadow: 0 0 10px var(--color-shadow);
	-webkit-box-shadow: 0 0 10px var(--color-shadow);
	box-shadow: 0 0 10px var(--color-shadow);
}

.leererAntrag {
	background: var(--color-component-background) url(../resources/images/workflow_48.png) no-repeat center center;
	min-height: 220px;
	margin: 0 0 0 0;
	text-align: center;
	font-size: 1.2rem;
	color: var(--color-shadow);
	border: 1px solid var(--color-table-border);
	border-radius: var(--global-border-radius);
	list-style: none;
}

.leereNachricht {
	background: var(--color-component-background) url(../resources/images/mail_48.png) no-repeat center center;
	min-height: 220px;
	margin: 0 0 0 0;
	text-align: center;
	font-size: 1.2rem;
	color: var(--color-shadow);
	border: 1px solid var(--color-table-border);
	border-radius: var(--global-border-radius);
}

.selectedNone {
	line-height: normal;
	font-size: 1.2rem;
	color: var(--color-shadow);
	text-align: center;
}

.selectedNone i {
	display: block;
}

.nachricht {
	min-height: 220px;
	margin: 0 0 0 0;
	background: var(--color-component-background);
	border: 1px solid var(--color-table-border);
	border-radius: var(--global-border-radius);
}

#nachrichten\:grid.ui-datatable .ui-datatable-data>tr>td {
	padding: 0.3rem;
	white-space: nowrap;
}

.ungelesen {
	background-color: var(--color-warning);
	font-weight: 700;
	color: var(--color-font-light);
}

.ui-datatable .ui-datatable-data tr.ungelesen.ui-state-hover {
	font-weight: 700;
}

.nachricht table {
	width: 100%;
	table-layout: fixed;
}

.nachricht table tr:not(:last-of-type) td {
	padding-bottom: 10px;
}

.nachricht .subtext {
	margin-left: 5px;
	font-size: 9px;
	font-weight: 700;
	color: var(--color-shadow);
	font-style: italic;
}

.nachricht td.titleCol1 {
	font-size: 0.9em;
	color: var(--color-font);
	font-weight: 700;
	text-align: right;
	width: 100px;
}

.nachricht .titleCol2 {
	padding-left: 1rem;
}

.nachricht .von {
	color: var(--color-font);
	font-weight: 700;
}

.no-report-available,
.zmi-service-unavailable {
	font-size: var(--font-size-text-primary);
	border: 1px solid;
	color: var(--color-toast-info);
	background-color: var(--color-toast-info-background);
	padding: 15px 10px 15px 10px;
}

#bg-image {
	background-image: var(--image-login);
	background-color: var(--zmi-primary-color);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

@media only screen and (max-width: 767px) {
	#bg-image {
		display: none !important;
	}

	#responsive-bg {
		background-image: --image-login;
		background-color: var(--zmi-primary-color);
		background-position: center;
		background-repeat: no-repeat;
		background-size: cover;
	}

	colStyle1 {
		vertical-align: top;
	}

	.colStyle2 {
		font-family: var(--font-headline);
		font-size: 0.9rem;
	}

	.colStyle2,
	.colStyle3,
	.colStyle4 {
		width: 100%;
		display: block;
	}
}

@media screen and (max-width: 1024px) {
	.ui-dashboard-column:nth-child(1) {
		width: 100%;
		margin-right: 0;
	}

	.ui-dashboard-column:nth-child(2) {
		width: 100%;
		margin-left: 0;
	}
}

@media (min-width : 1440px) {
	.col-xxl-4 {
		flex: 0 0 auto;
		width: 33.33333333%;
	}
}

#login-panel {
	width: 100%;
	max-width: 470px;
	max-height: 470px;
	background-color: var(--color-component-background);
	border-radius: var(--global-border-radius);
	padding: 40px 30px;
	margin-top: auto;
	margin-bottom: auto;
}

.panel-body {
    width: 100%;
}

.intro h2,
.intro p {
	font-size: 1.5em !important;
	margin: 30px 0;
	text-align: center;
}

footer {
	position: absolute;
	left: 0;
	bottom: 0;
	background-color: rgba(255, 255, 255, 0.8);
	width: 100%;
}

#copyright {
	margin: 0;
	font-size: 0.8rem;
	text-align: left;
}

.logo {
	width: 100%;
	max-width: 300px;
}

.custom-static-message {
	display: inline-block;
	padding: 4px 5px;
	border-left: 5px solid var(--color-toast-info);
	border-radius: var(--global-border-radius);
	background: var(--color-toast-info-background);
	color: var(--color-toast-info);
}

/****************************************************************************
 *                       CSS für Datatables                           *
 ****************************************************************************/
.col40 {
	width: 40%;
}

.col30 {
	width: 30%;
}

.col20 {
	width: 20%;
}

.topHeader {
	position: relative;
	background: var(--color-background);
	width: 100%;
	padding: 7px 9px;
	border: 1px solid var(--color-table-border);
	min-height: 25px;
}

.topHeader .text {
	color: var(--color-font);
	display: inline;
	font-size: 1.17em;
	font-weight: 700
}

.topHeader .ui-button {
	height: 36px;
	color: var(--color-font);
	border-color: var(--color-input-border);
}

span.ui-button-icon-left.ui-icon.ui-c.pi {
    top: calc(50% + 1px);
}

.topHeader .ui-button.ui-button-icon-only .ui-button-text {
	padding: 0;
}

.topHeader h2,
.topHeader h3 {
	font-weight: 700;
}

.topHeader tbody td {
	padding: 0.5rem;
}

.ui-datatable table thead th,
.ui-datatable table tbody td {
	word-break: break-word;
	border: 1px solid var(--color-table-border);
}

.datatable.ui-datatable .ui-datatable-header input.hasDatepicker {
	width: auto;
	max-width: unset;
}

.ui-datatable tr.ui-state-highlight .ui-chkbox-box.ui-state-active .ui-chkbox-icon {
	color: var(--color-font);
}

.ui-datatable tr.ui-state-highlight .ui-chkbox-box.ui-state-active {
	background: var(--color-component-background);
}

/****************************************************************************
 *                       CSS für Labels                           *
 ****************************************************************************/
.labels {
	font-size: var(--font-size-text-primary);
	font-weight: 700;
	margin-bottom: 15px;
}

.labels input,
.labels div {
	margin-bottom: 15px;
}

.labels form {
	display: inline !important;
}

.control-label {
	float: left;
	width: 100px;
	padding-top: 5px;
	text-align: right;
	margin-right: 25px;
}

.control-input {
	display: inline-block;
	margin-bottom: 0;
	vertical-align: middle;
}

.headline .tip {
	font-size: var(--font-size-text-primary);
	color: var(--color-toast-danger);
	font-weight: 700;
	margin-right: 15px;
}

body .ui-chkbox.ui-selectbooleancheckbox {
	width: 100%;
}

/****************************************************************************
 *                       CSS für Tooltip                                    *
 ****************************************************************************/
.tooltip .bold {
	color: var(--color-font);
	font-weight: 700;
	margin-right: 10px;
	float: right;
}

.info {
	position: relative;
	top: 2px;
	left: 5px;
	display: inline-block;
	min-width: 19px;
	text-align: center;
	cursor: help;
	font-weight: 700;
	padding: 1px 5px 0 5px;
	-webkit-border-radius: var(--global-border-radius);
	-moz-border-radius: var(--global-border-radius);
	border-radius: var(--global-border-radius);
	border: 1px solid var(--color-font);
	color: var(--color-font);
}

.jahresurlaub-hint {
	display: inline-block;
}

.infoUrlaub {
	display: flex;
	width: 22px;
	height: 22px;
	justify-content: center;
	align-items: center;
	cursor: pointer;
	font-weight: 700;
	padding: 0 5px;
	-webkit-border-radius: var(--global-border-radius);
	-moz-border-radius: var(--global-border-radius);
	border-radius: var(--global-border-radius);
	border: 1px solid var(--color-font);
	color: var(--color-font);
}

.infoUrlaub:hover {
	background-color: var(--color-zmi-default-hover);
	color: var(--color-font-light);
}

/****************************************************************************
 *                       CSS für Rollenkonfig                           *
 ****************************************************************************/

body .ui-datatable.rollen.datatable td {
	padding: 0.3rem;
}

.rolle .ui-selectonemenu-label {
	line-height: 1em !important;
}

.rolle table tbody tr {
	line-height: 25px;
}

.colStyle1 {
	width: 25px;
}

.colStyle2 {
	width: 185px;
	font-weight: 700;
}

.colStyle3 {
	width: 280px;
}

.rolle .colStyle3 {
	width: 110px;
}

.colStyle4 {
	width: auto;
	padding: 2px;
}

.colStyle4fix {
	width: 200px;
}

.colStyle4 .ui-checkbox .ui-checkbox-box {
	padding: 0;
}

body .ui-chkbox .ui-chkbox-box {
	width: auto;
	height: auto;
	min-width: 1rem;
	min-height: 1rem;
}

.ui-datatable .ui-chkbox.ui-selectbooleancheckbox {
	width: auto;
	margin: 0;
}

.colStyle5 {
	width: 300px;
	font-weight: 700;
}

.colStyleEigeneDaten {
	padding-left: 100px;
	font-weight: 700;
}

.ui-selectcheckboxmenu-panel .ui-selectcheckboxmenu-list-item {
	display: flex !important;
}

body .role-config .ui-chkbox.ui-selectbooleancheckbox {
	width: auto;
}

body .role-config table {
	border-spacing: 0 0.5rem;
	border-collapse: separate;
}

#data\:buchungsarten .ui-datatable-header,
#data\:buchungsartenBuchungsuebersicht .ui-datatable-header {
	padding: 5px 0;
}

#data\:buchungsarten .ui-selectonemenu,
#data\:buchungsartenBuchungsuebersicht .ui-selectonemenu {
	max-width: 400px;
}

.ui-selectcheckboxmenu label, .ui-selectoneradio label {
    font-weight: 500;
}


/****************************************************************************
 *                       CSS für Auftragsbuchung                           *
 ****************************************************************************/
.buchungsWizard {
	width: 100%;
}

.buchungsWizard td,
th {
	display: table-cell;
	vertical-align: top;
}

.leftElements {
	width: 60%;
	padding-right: 25px;
}

.rightElements {
	width: 40%;
}

.auftrag {
	position: relative;
	display: block;
	width: 100%;
	margin-bottom: 25px;
}

.online {
	position: relative;
	display: block;
	width: 100%;
}

.auftrag .ueberschrift {
	font-size: 0.8em;
	font-weight: 700;
	text-align: right;
	width: 30%;
}

.auftrag .text {
	text-align: left;
	width: 70%;
}

.ui-autocomplete-input {
	width: 100%;
}

.korrektur,
.monatsAnsicht td.tableColumn.korrektur {
	background-image: linear-gradient(135deg, var(--color-table-border) 
	14.29%, var(--color-component-background) 14.29%, 
	var(--color-component-background) 50%, 
	var(--color-table-border) 50%, 
	var(--color-table-border) 64.29%, 
	var(--color-component-background) 64.29%, 
	var(--color-component-background) 100%);
	background-size: 9.90px 9.90px;
}

.min-width-table,
.min-width-table-md {
	overflow-x: auto;
}

.min-width-table .topHeader,
.min-width-table .ui-datatable-tablewrapper,
.min-width-table .ui-paginator {
	min-width: 1000px;
}

.min-width-table-md .topHeader,
.min-width-table-md .ui-datatable-tablewrapper,
.min-width-table-md .ui-paginator {
	min-width: 550px;
}

/****************************************************************************
 *                       CSS für Wochenplanung                           *
 ****************************************************************************/
body .wochenplanung.ui-datatable .ui-datatable-data>tr>td.tableColumn {
	padding: 0.3rem;
}

.ui-button.cal-nav-left {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
	border-right: 0;
	height: 100%;
}

.ui-button.cal-nav-right {
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
	border-left: 0;
	height: 100%;
}

body .ui-selectonemenu.kalenderwoche {
	display: inline-block;
	min-width: 80px !important;
	max-width: calc(100% - 4.8em);
	vertical-align: top !important;
	border-radius: 0;
}

body .ui-selectonemenu.kalenderwoche .ui-selectonemenu-label {
    background: var(--color-default-state);
	border-radius: 0;
    border: 1px solid var(--color-input-border);
}

/****************************************************************************
 *                       CSS für Korrekturassistent                         *
 ****************************************************************************/
#korrekturassistent {
	color: var(--color-error);
	margin-bottom: 25px;
}

#korrekturassistent ul li {
	margin-left: 25px;
}

.rot {
	background-color: var(--color-component-background);
	background-image: url(../resources/images/schraffur_rot.png);
}

body .ui-calendar.ui-trigger-calendar input.hasDatepicker {
	max-width: 95px;
	min-height: 34px;
	height: 100%;
	max-height: 34px;
	text-align: center;
}

body .ui-calendar .ui-button.ui-button-icon-only {
	min-height: 34px;
	height: 100%;
	max-height: 34px;
}

.ui-calendar input.ui-inputfield.hasDatepicker .headline .ui-selectonemenu,
.headline .ui-inputtext,
.headline .ui-calendar.ui-trigger-calendar input.hasDatepicker {
	font-size: var(--font-size-text-primary);
}

/****************************************************************************
 *                       CSS für Schichtplaner                         *
 ****************************************************************************/
.schichtplaner th {
	border: 1px solid var(--color-selected-row);
	background: var(--color-table-border);
	/*background: #c4c4c4 url("/zmi-webclient/javax.faces.resource/images/ui-bg_highlight-hard_80_c4c4c4_1x100.png.jsf?ln=primefaces-aristo") 50% 50% repeat-x;
    background: #c4c4c4 linear-gradient(top, rgba(255,255,255,0.8), rgba(255,255,255,0));
    background: #c4c4c4 -webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,0.8)), to(rgba(255,255,255,0)));
    background: #c4c4c4 -moz-linear-gradient(top, rgba(255,255,255,0.8), rgba(255,255,255,0));*/
	font-weight: 700;
	color: var(--color-font);
}

.schichtplaner th,
.schichtplaner td,
.schichtplaner td {
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
	line-height: 1.5em;
	padding: 2px 0 !important;
	border-width: 1px;
	border-style: solid;
}

.schichtplaner td {
	border: 1px solid var(--color-selected-row);
	background: var(--color-component-background);
}

.schichtplaner a {
	color: var(--color-font) !important;
}

.schichtplaner {
	font-family: var(--font-text);
	font-size: 8px;
	border-spacing: 0;
	border-collapse: collapse;
	text-align: center;
}

.schichtplaner td {
	padding: 0 !important;
}

.schichtplaner .cell {
	line-height: 30px;
	font-weight: 700;
}

.schichtplaner .cell .beantragt {
	border: 1px dashed var(--color-component-background);
	padding: 5px;
	background-image: url(../resources/images/schraffur_w.png);
}

.schichtplaner .cell .genehmigt {
	border: 1px dashed var(--color-toast-success);
	padding: 5px;
}

.schichtplaner .cell .abgelehnt {
	border: 1px dashed var(--color-toast-danger-background);
	padding: 5px;
}

.schichtplaner .cell .loeschen {
	border: 1px dashed var(--color-toast-danger-background);
	padding: 5px;
	background-image: url(../resources/images/schraffur_rot.png);
}

.schichtplaner .woende {
	background: var(--color-default-state);
}

.schichtplaner .heute {
	background: var(--color-component-background);
	color: var(--color-primary);
}

.schichtplaner .tagesplanZuordnen {
	padding: 4px 3px !important;
	text-align: center;
}

.schichtplaner .ui-widget {
	font-size: 1em !important;
}

/****************************************************************************
 *                       CSS für Dienstplaner                         *
 ****************************************************************************/
.noDienstplaner {
	display: flex;
	color: var(--color-toast-info) !important;
	background-color: var(--color-toast-info-background);
	border-color: var(--color-toast-info-background);
	padding: 8px 35px 8px 14px;
	min-height: 400px !important;
	border-bottom: 5px solid var(--color-secondary);
	justify-content: center;
	align-items: center;
}

#jahresuebersicht-wrapper,
#schichtplaner-wrapper,
#print:has(.dienstplaner) {
	max-height: calc(100vh - var(--total-header-height) - 27px - 1rem);
	overflow: auto;
}

.dienstplaner {
	height: fit-content;
	box-sizing: border-box;
}

.dienstplaner th,
.dienstplaner .grey {
	border: 1px solid var(--color-table-border);
	background: var(--color-background);
	font-weight: 700;
	color: var(--color-font);
}

.dienstplaner th,
.dienstplaner td,
.dienstplaner td {
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
	line-height: 1.5em;
	padding: 3px;
	border-width: 1px;
	border-style: solid;
}

.dienstplaner thead th {
    box-shadow: inset 1px 1px 0 var(--color-table-border), inset 0 1px 0 var(--color-table-border);
    border: none;
}

.dienstplaner th.white {
	background: var(--color-component-background) !important;
}

.dienstplaner td {
	border: 1px solid var(--color-table-border);
	background: var(--color-component-background);
}

.dienstplaner a {
	color: inherit;
}

.dienstplaner a i {
	color: var(--color-primary)
}

.dienstplaner a:hover,
.dienstplaner a:hover i {
	color: var(--color-primary-hover)
}

.dienstplaner {
	font-family: var(--font-text);
	font-size: clamp(0.55rem, 0.1376rem + 0.5155vw, 0.8rem);
	border-spacing: 0;
	border-collapse: collapse;
	text-align: center;
}

.dienstplaner td:not(.grey) {
	padding: 0 !important;
}

.dienstplaner .cell .ui-commandlink {
	display: inline-block;
	width: 100%;
	padding: 0;
	font-weight: 500;
}

.dienstplaner .cell .beantragt {
	border: 1px dashed var(--color-component-background);
	background-image: url(../resources/images/schraffur_w.png);
}

.dienstplaner .cell .genehmigt {
	border: 1px dashed var(--color-toast-success);
}

.dienstplaner .cell .abgelehnt {
	border: 1px dashed var(--color-toast-danger-background);
}

.dienstplaner .cell .loeschen {
	border: 1px dashed var(--color-toast-danger-background);
	background-image: url(../resources/images/schraffur_rot.png);
}

.dienstplaner .woende {
	background: var(--color-second-row);
}

.dienstplaner .heute {
	background: var(--color-primary);
	color: var(--color-primary-contrast);
}

.dienstplaner .tagesplanZuordnen {
	padding: 4px 3px !important;
	text-align: center;
}

.dienstplaner .ui-widget {
	font-size: 1em !important;
}

/****************************************************************************
 *                       CSS für Jahresübersicht                         *
 ****************************************************************************/
 .jahresuebersicht {
	height: fit-content;
	box-sizing: border-box;
 }
 
.jahresuebersicht th {
	border: 1px solid var(--color-selected-row);
	background: var(--color-table-border);
	/*background: #c4c4c4 url("/zmi-webclient/javax.faces.resource/images/ui-bg_highlight-hard_80_c4c4c4_1x100.png.jsf?ln=primefaces-aristo") 50% 50% repeat-x;
    background: #c4c4c4 linear-gradient(top, rgba(255,255,255,0.8), rgba(255,255,255,0));
    background: #c4c4c4 -webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,0.8)), to(rgba(255,255,255,0)));
    background: #c4c4c4 -moz-linear-gradient(top, rgba(255,255,255,0.8), rgba(255,255,255,0));*/
	font-weight: 700;
	color: var(--color-font);
}

.jahresuebersicht th,
.jahresuebersicht td,
.jahresuebersicht td {
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
	line-height: 1.5em;
	padding: 2px 0 !important;
	border-width: 1px;
	border-style: solid;
}

.jahresuebersicht td {
	border: 1px solid var(--color-selected-row);
	background: var(--color-component-background);
}

.jahresuebersicht a {
	color: inherit;
}

.jahresuebersicht .cell .ui-commandlink {
	display: inline-block;
	width: 100%;
	padding: 0;
	max-height: 18px;
}

.jahresuebersicht {
	font-family: var(--font-text);
	font-size: clamp(0.55rem, 0.1376rem + 0.5155vw, 0.8rem);
	border-spacing: 0;
	border-collapse: collapse;
	text-align: center;
}

.jahresuebersicht td {
	padding: 0 !important;
}

.jahresuebersicht .cell {
	line-height: 17px;
	font-weight: 700;
	min-width: 34px;
	min-height: 35px;
}

.jahresuebersicht .cell .beantragt {
	border: 1px dashed var(--color-component-background);
	background-image: url(../resources/images/schraffur_w.png);
}

.jahresuebersicht .cell .genehmigt {
	border: 1px dashed var(--color-toast-success);
}

.jahresuebersicht .cell .abgelehnt {
	border: 1px dashed var(--color-toast-danger-background);
}

.jahresuebersicht .cell .loeschen {
	border: 1px dashed var(--color-toast-danger-background);
	background-image: url(../resources/images/schraffur_rot.png);
}

.jahresuebersicht .woende {
	background: var(--color-second-row);
}

.jahresuebersicht .heute {
	background: var(--color-component-background);
	color: var(--color-primary);
}

.jahresuebersicht .ui-widget {
	font-size: 1em !important;
}

.jahresuebersicht .cell .cellHeader {
	font-size: 9px;
	color: inherit;
}

.circle {
	border-radius: 50%;
	width: 20px;
	height: 20px;
	float: left;
	margin: 3px 5px 3px 0;
}

.ampel {
	background-color: var(--color-transparent);
	padding: 3px 6px 2px;
	-webkit-border-radius: 9px;
	-moz-border-radius: 9px;
	border-radius: 9px;
	white-space: nowrap;
	vertical-align: baseline;
}

.corner {
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0 14px 14px 0;
	position: absolute;
	top: 0;
	right: 0;
	border-color: transparent transparent transparent;
}

.message {
	color: var(--color-error);
	position: absolute;
	right: 30px;
	cursor: pointer;
}

/****************************************************************************
 *                       CSS für Statustableau                         *
 ****************************************************************************/
.statustableau {
	border-top-left-radius: var(--global-border-radius);
	border-top-right-radius: var(--global-border-radius);
}

.statustableau table {
	border-collapse: collapse;
}

.statustableau .hidden {
	display: none;
}

.statustableau .blockelement {
	display: flex;
	-webkit-border-radius: var(--global-border-radius);
	-moz-border-radius: var(--global-border-radius);
	border-radius: var(--global-border-radius);
	border: 1px solid var(--color-table-border);
	margin: 5px 0;
	padding: 5px;
	height: 50px;
	align-items: center;
	justify-content: center;
}

.statustableau .blockelement>span {
	text-align: center;
	font-size: var(--font-size-text-primary);
	display: inline-block
}

.statustableau .blockelement>img {
	vertical-align: top;
	height: 100%;
	border: 1px solid var(--color-selected-row);
	float: right;
}

.statustableau .legende {
	position: sticky;
    position: -webkit-sticky;
    top: calc(var(--total-header-height) + 10px);
    z-index: 1000;
	background: var(--color-table-subheader-background);
	border: 1px solid var(--color-input-border);
	margin: 6px 0;
	font-size: var(--font-size-text-secondary);
}

.statustableau .legende .legendeHeader {
	background: var(--color-table-subheader-background);
	background-size: 100%;
	border-bottom: 1px solid var(--color-input-border);
	color: var(--color-font);
	font-weight: 600;
	font-size: var(--font-size-text-secondary);
	padding: 10px;
}

.statustableau .legende ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.statustableau .legende ul li {
	padding: 5px;
	margin: 5px;
	border: 1px solid var(--color-input-border);
	-webkit-border-radius: var(--global-border-radius);
	-moz-border-radius: var(--global-border-radius);
	border-radius: var(--global-border-radius);
	text-overflow: ellipsis;
	display: block;
	overflow: hidden;
	white-space: nowrap;
}

.statustableau .legende ul li .ui-chkbox {
	margin-right: 5px;
}

.legende .ui-chkbox.ui-selectbooleancheckbox {
	width: auto;
}

.statustableau table {
	font-size: var(--font-size-text-secondary);
}

.statustableau table th {
	text-align: left !important;
	padding: 2px 5px !important;
}

.statustableau table td {
	text-align: left !important;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	word-break: break-all;
	word-wrap: break-word
}

.statustableau table .cell {
	padding: 2px 5px !important;
}

/* Tooltip Styles */

/* Add this attribute to the element that needs a tooltip */
[data-tooltip] {
	position: relative;
	z-index: 2;
	cursor: pointer;
}

/* Hide the tooltip content by default */
[data-tooltip]:before,
[data-tooltip]:after {
	visibility: hidden;
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
	filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=0);
	opacity: 0;
	pointer-events: none;
}

/* Position tooltip above the element */
[data-tooltip]:before {
	position: absolute;
	bottom: 150%;
	left: 50%;
	margin-bottom: 5px;
	margin-left: -80px;
	padding: 7px;
	width: 160px;
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	border-radius: 3px;
	background-color: var(--color-primary-dark);
	background-color: hsla(0, 0%, 20%, 0.9);
	color: #fff;
	content: attr(data-tooltip);
	text-align: center;
	font-size: 14px;
	line-height: 1.2;
}

/* Triangle hack to make tooltip look like a speech bubble */
[data-tooltip]:after {
	position: absolute;
	bottom: 150%;
	left: 50%;
	margin-left: -5px;
	width: 0;
	border-top: 5px solid var(--color-primary-dark);
	border-top: 5px solid hsla(0, 0%, 20%, 0.9);
	border-right: 5px solid var(--color-transparent);
	border-left: 5px solid var(--color-transparent);
	content: " ";
	font-size: 0;
	line-height: 0;
}

/* Show tooltip content on hover */
[data-tooltip]:hover:before,
[data-tooltip]:hover:after {
	visibility: visible;
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
	filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=100);
	opacity: 1
}

.gestern {
	color: var(--color-primary)
}

.morgen {
	color: var(--color-toast-success)
}

.m-x-5 {
	margin-left: 5px !important;
	margin-right: 5px !important;
}

.m-l-5 {
	margin-left: 5px !important;
}

.ellipsis {
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
}

.ui-state-default .ui-icon.ui-icon-calendar {
	display: inline-block;
	font-family: bootstrap-icons !important;
	font-style: normal;
	font-weight: 400 !important;
	font-variant: normal;
	text-transform: none;
	line-height: 1;
	vertical-align: -0.125em;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.ui-state-default .ui-icon.ui-icon-calendar:before {
	content: "\f214";
}

.ui-autocomplete .ui-button {
	padding-top: 2px;
}

.ui-autocomplete .ui-button-text {
	padding-top: 3px !important;
	padding-bottom: 3px !important;
}

.letzte-auftraege-button .ui-button-text {
	padding-bottom: 3px !important;
}

/****************************************************************************
 *                       CSS für Administration                             *
 ****************************************************************************/
.logo-upload td {
	vertical-align: top;
}

.clr-field {
	width: 100%;
}

.preview-image {
	display: block;
	max-width: 100%;
	width: auto;
	max-height: 200px;
	height: auto;
	padding: 10px;
	background: #e6ecf1;
	border: 3px solid var(--color-primary);
}

#data\:vertreterList .ui-datatable-header,
#data\:workflowDetailList .ui-datatable-header {
	text-align: right;
	padding-top: 0;
	padding-right: 0;
}

.chart-workload {
	width: 400px !important;
	height: 400px !important;
	max-width: 100%;
	max-height: 100%;
}

body .role-config .ui-tabs-panels table {
	width: 100%;
}

body .role-config .ui-tabs-panels .ui-selectcheckboxmenu, 
body .role-config .ui-tabs-panels .ui-selectonemenu {
    width: 100%;
    max-width: 250px;
}

body .role-config .ui-tabs-panels input {
    max-width: 250px;
}

/****************************************************************************
 *                   Responsive Sticky-Header 			 	                *
 ****************************************************************************/

.sticky-header {
	position: sticky;
	top: 81px;
	left: 0;
	z-index: 900;
}

/****************************************************************************
 *                       Adresssuche
 ****************************************************************************/
 
 .adresssuche .ui-datalist ul {
    margin-bottom: 0;
    padding-left: 1rem;
}

@media (min-width: 1140px) {
	 .adresssuche .ui-datalist ul {
	    columns: 2;
	    -webkit-columns: 2;
	    -moz-columns: 2;
	}
}

.adresssuche .ui-datalist ul li:not(:last-child) {
    margin-bottom: 8px;
}

/****************************************************************************
 *                       Dienstplaner-Print                                 
 ****************************************************************************/

 
 @media print {
    #jahresuebersicht-wrapper,
    #schichtplaner-wrapper,
    #print:has(.dienstplaner) {
        max-height: none;
        overflow: visible;
    }
    
    #print .dienstplaner {
        table-layout: fixed;
        overflow: visible;
    }
    
    #print * {
    	text-overflow: unset !important;
    }
    
    :darkmode {
		--color-component-background: #fff;
		--color-default-state: #e3e3e3;
		--color-default-state-hover: #dfe3ef;
		--color-font: #404656;
		--color-font-light: #fff;
		--color-primary-dark: #000;
		--color-background: #f3f3f3;
		--color-table-border: #DEE2E6;
		--color-input-border: #ced4da;
		--color-second-row: #f2f2f2;
		--color-table-subheader-background: #F5F5F5;
		--color-primary-hover: #1f5281;
		--color-primary-hover-contrast: #ffffff;
	}
    
}
