/************/
/* Generell */
/************/
body {
	font-family: 'Roboto', sans-serif;
	font-size: 1em;
	color: #fff;
	margin: 0;
	min-height: 100vh;
	--elvis-bg-logo-url: none;
	--elvis-bg-logo-opacity: 0;
	--elvis-bg-logo-blur: 12px;
/*
	background: #C9CCD3;
	background-image: linear-gradient(-180deg, rgba(255,255,255,0.50) 0%, rgba(0,0,0,0.50) 100%);
	background-blend-mode: lighten;
	background-repeat: no-repeat;
	background-size: cover;
*/

/*
	background-color: #ffffff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2000 1500'%3E%3Cdefs%3E%3Crect stroke='%23ffffff' stroke-width='.5' width='1' height='1' id='s'/%3E%3Cpattern id='a' width='3' height='3' patternUnits='userSpaceOnUse' patternTransform='scale(50) translate(-980 -735)'%3E%3Cuse fill='%23fcfcfc' href='%23s' y='2'/%3E%3Cuse fill='%23fcfcfc' href='%23s' x='1' y='2'/%3E%3Cuse fill='%23fafafa' href='%23s' x='2' y='2'/%3E%3Cuse fill='%23fafafa' href='%23s'/%3E%3Cuse fill='%23f7f7f7' href='%23s' x='2'/%3E%3Cuse fill='%23f7f7f7' href='%23s' x='1' y='1'/%3E%3C/pattern%3E%3Cpattern id='b' width='7' height='11' patternUnits='userSpaceOnUse' patternTransform='scale(50) translate(-980 -735)'%3E%3Cg fill='%23f5f5f5'%3E%3Cuse href='%23s'/%3E%3Cuse href='%23s' y='5' /%3E%3Cuse href='%23s' x='1' y='10'/%3E%3Cuse href='%23s' x='2' y='1'/%3E%3Cuse href='%23s' x='2' y='4'/%3E%3Cuse href='%23s' x='3' y='8'/%3E%3Cuse href='%23s' x='4' y='3'/%3E%3Cuse href='%23s' x='4' y='7'/%3E%3Cuse href='%23s' x='5' y='2'/%3E%3Cuse href='%23s' x='5' y='6'/%3E%3Cuse href='%23s' x='6' y='9'/%3E%3C/g%3E%3C/pattern%3E%3Cpattern id='h' width='5' height='13' patternUnits='userSpaceOnUse' patternTransform='scale(50) translate(-980 -735)'%3E%3Cg fill='%23f5f5f5'%3E%3Cuse href='%23s' y='5'/%3E%3Cuse href='%23s' y='8'/%3E%3Cuse href='%23s' x='1' y='1'/%3E%3Cuse href='%23s' x='1' y='9'/%3E%3Cuse href='%23s' x='1' y='12'/%3E%3Cuse href='%23s' x='2'/%3E%3Cuse href='%23s' x='2' y='4'/%3E%3Cuse href='%23s' x='3' y='2'/%3E%3Cuse href='%23s' x='3' y='6'/%3E%3Cuse href='%23s' x='3' y='11'/%3E%3Cuse href='%23s' x='4' y='3'/%3E%3Cuse href='%23s' x='4' y='7'/%3E%3Cuse href='%23s' x='4' y='10'/%3E%3C/g%3E%3C/pattern%3E%3Cpattern id='c' width='17' height='13' patternUnits='userSpaceOnUse' patternTransform='scale(50) translate(-980 -735)'%3E%3Cg fill='%23f2f2f2'%3E%3Cuse href='%23s' y='11'/%3E%3Cuse href='%23s' x='2' y='9'/%3E%3Cuse href='%23s' x='5' y='12'/%3E%3Cuse href='%23s' x='9' y='4'/%3E%3Cuse href='%23s' x='12' y='1'/%3E%3Cuse href='%23s' x='16' y='6'/%3E%3C/g%3E%3C/pattern%3E%3Cpattern id='d' width='19' height='17' patternUnits='userSpaceOnUse' patternTransform='scale(50) translate(-980 -735)'%3E%3Cg fill='%23ffffff'%3E%3Cuse href='%23s' y='9'/%3E%3Cuse href='%23s' x='16' y='5'/%3E%3Cuse href='%23s' x='14' y='2'/%3E%3Cuse href='%23s' x='11' y='11'/%3E%3Cuse href='%23s' x='6' y='14'/%3E%3C/g%3E%3Cg fill='%23efefef'%3E%3Cuse href='%23s' x='3' y='13'/%3E%3Cuse href='%23s' x='9' y='7'/%3E%3Cuse href='%23s' x='13' y='10'/%3E%3Cuse href='%23s' x='15' y='4'/%3E%3Cuse href='%23s' x='18' y='1'/%3E%3C/g%3E%3C/pattern%3E%3Cpattern id='e' width='47' height='53' patternUnits='userSpaceOnUse' patternTransform='scale(50) translate(-980 -735)'%3E%3Cg fill='%23F60'%3E%3Cuse href='%23s' x='2' y='5'/%3E%3Cuse href='%23s' x='16' y='38'/%3E%3Cuse href='%23s' x='46' y='42'/%3E%3Cuse href='%23s' x='29' y='20'/%3E%3C/g%3E%3C/pattern%3E%3Cpattern id='f' width='59' height='71' patternUnits='userSpaceOnUse' patternTransform='scale(50) translate(-980 -735)'%3E%3Cg fill='%23F60'%3E%3Cuse href='%23s' x='33' y='13'/%3E%3Cuse href='%23s' x='27' y='54'/%3E%3Cuse href='%23s' x='55' y='55'/%3E%3C/g%3E%3C/pattern%3E%3Cpattern id='g' width='139' height='97' patternUnits='userSpaceOnUse' patternTransform='scale(50) translate(-980 -735)'%3E%3Cg fill='%23F60'%3E%3Cuse href='%23s' x='11' y='8'/%3E%3Cuse href='%23s' x='51' y='13'/%3E%3Cuse href='%23s' x='17' y='73'/%3E%3Cuse href='%23s' x='99' y='57'/%3E%3C/g%3E%3C/pattern%3E%3C/defs%3E%3Crect fill='url(%23a)' width='100%25' height='100%25'/%3E%3Crect fill='url(%23b)' width='100%25' height='100%25'/%3E%3Crect fill='url(%23h)' width='100%25' height='100%25'/%3E%3Crect fill='url(%23c)' width='100%25' height='100%25'/%3E%3Crect fill='url(%23d)' width='100%25' height='100%25'/%3E%3Crect fill='url(%23e)' width='100%25' height='100%25'/%3E%3Crect fill='url(%23f)' width='100%25' height='100%25'/%3E%3Crect fill='url(%23g)' width='100%25' height='100%25'/%3E%3C/svg%3E");
	background-attachment: fixed;
	background-size: cover;
	height: 95vh; */
	background: radial-gradient(ellipse at bottom, #5091DD 0%, #030617 100%);
}

/* ===== Global Dialog (ATS style) ===== */
.elvis-dialog-open {
	overflow: hidden;
}

.elvis-dialog-overlay {
	position: fixed;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 22px;
	background:
		radial-gradient(circle at 20% 15%, rgba(37, 99, 235, 0.22), transparent 48%),
		radial-gradient(circle at 80% 75%, rgba(220, 38, 38, 0.2), transparent 52%),
		rgba(15, 23, 42, 0.62);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	z-index: 6000;
}

.elvis-dialog-overlay.is-hidden {
	display: none;
}

@keyframes elvisDialogAppear {
	from {
		opacity: 0;
		transform: translateY(12px) scale(0.98);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

.elvis-dialog-box {
	--dialog-accent: #2563eb;
	--dialog-accent-strong: #1d4ed8;
	--dialog-glow: rgba(37, 99, 235, 0.32);
	width: min(92vw, 560px);
	border-radius: 18px;
	border: 1px solid rgba(148, 163, 184, 0.5);
	padding: 24px;
	background:
		linear-gradient(170deg, rgba(255, 255, 255, 0.98), rgba(241, 245, 249, 0.98));
	box-shadow:
		0 25px 60px rgba(15, 23, 42, 0.45),
		0 0 0 1px rgba(255, 255, 255, 0.25) inset,
		0 0 35px var(--dialog-glow);
	animation: elvisDialogAppear 0.2s ease-out;
}

.elvis-dialog-tone-info {
	--dialog-accent: #2563eb;
	--dialog-accent-strong: #1d4ed8;
	--dialog-glow: rgba(37, 99, 235, 0.34);
}

.elvis-dialog-tone-warning {
	--dialog-accent: #d97706;
	--dialog-accent-strong: #b45309;
	--dialog-glow: rgba(245, 158, 11, 0.36);
}

.elvis-dialog-tone-danger {
	--dialog-accent: #dc2626;
	--dialog-accent-strong: #b91c1c;
	--dialog-glow: rgba(220, 38, 38, 0.34);
}

.elvis-dialog-tone-success {
	--dialog-accent: #16a34a;
	--dialog-accent-strong: #15803d;
	--dialog-glow: rgba(22, 163, 74, 0.32);
}

.elvis-dialog-badge {
	width: 44px;
	height: 44px;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 900;
	font-size: 1.2rem;
	color: #fff;
	background: linear-gradient(160deg, var(--dialog-accent), var(--dialog-accent-strong));
	box-shadow: 0 8px 22px var(--dialog-glow);
}

.elvis-dialog-title {
	margin: 14px 0 8px;
	font-size: 1.2rem;
	line-height: 1.2;
	color: #0f172a;
}

.elvis-dialog-message {
	margin: 0;
	white-space: pre-line;
	color: #1e293b;
	font-size: 1rem;
	line-height: 1.5;
}

.elvis-dialog-input {
	box-sizing: border-box;
	width: 100%;
	min-height: 44px;
	margin-top: 16px;
	padding: 10px 12px;
	border: 1px solid #b9c9df;
	border-radius: 10px;
	background: #ffffff;
	color: #0f172a;
	font: inherit;
}

.elvis-dialog-input:focus {
	border-color: var(--dialog-accent);
	outline: 0;
	box-shadow: 0 0 0 3px var(--dialog-glow);
}

.elvis-dialog-input.is-hidden {
	display: none;
}

.elvis-dialog-actions {
	margin-top: 18px;
	display: flex;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 10px;
}

.elvis-dialog-btn {
	border: none;
	border-radius: 11px;
	min-height: 42px;
	padding: 10px 16px;
	font-weight: 800;
	font-size: 0.95rem;
	cursor: pointer;
	transition: transform 0.14s ease, filter 0.14s ease, box-shadow 0.14s ease;
}

.elvis-dialog-btn:hover:not(:disabled) {
	transform: translateY(-1px);
	filter: brightness(1.04);
}

.elvis-dialog-btn:active:not(:disabled) {
	transform: translateY(0);
}

.elvis-dialog-btn:focus-visible {
	outline: 3px solid var(--elvis-focus, #7dd3fc);
	outline-offset: 2px;
}

.elvis-dialog-btn.is-hidden {
	display: none;
}

.elvis-dialog-btn-primary {
	color: #fff;
	background: linear-gradient(160deg, var(--dialog-accent), var(--dialog-accent-strong));
	box-shadow: 0 9px 22px var(--dialog-glow);
}

.elvis-dialog-btn-cancel {
	color: #1f2937;
	background: #e2e8f0;
}

/* ===== Direct user notifications ===== */
body.admin-notification-popup-open {
	overflow: hidden;
}

.admin-notification-popup-overlay {
	position: fixed;
	inset: 0;
	z-index: 7000;
	display: grid;
	place-items: center;
	padding: 22px;
	background: rgba(7, 16, 34, .7);
	-webkit-backdrop-filter: blur(5px);
	backdrop-filter: blur(5px);
}

.admin-notification-popup-overlay[hidden] {
	display: none;
}

.admin-notification-popup {
	width: min(680px, 100%);
	max-height: min(760px, calc(100vh - 44px));
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid rgba(191, 219, 254, .72);
	border-radius: 22px;
	background: linear-gradient(160deg, #f8fbff, #eaf2ff);
	box-shadow: 0 28px 70px rgba(2, 8, 23, .56), 0 0 42px rgba(37, 99, 235, .3);
	color: #13233e;
	animation: elvisDialogAppear .2s ease-out;
}

.admin-notification-popup-header {
	display: flex;
	align-items: center;
	gap: 13px;
	padding: 22px 24px 13px;
}

.admin-notification-popup-icon {
	width: 46px;
	height: 46px;
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	border-radius: 14px;
	color: #fff;
	background: linear-gradient(145deg, #3b82f6, #1d4ed8);
	box-shadow: 0 10px 24px rgba(37, 99, 235, .3);
}

.admin-notification-popup-header p,
.admin-notification-popup-header h2 {
	margin: 0;
}

.admin-notification-popup-header p {
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: #2563eb;
}

.admin-notification-popup-header h2 {
	margin-top: 3px;
	font-size: 1.3rem;
	color: #10213d;
}

.admin-notification-popup-intro {
	margin: 0;
	padding: 0 24px 15px;
	font-weight: 600;
	color: #475569;
}

.admin-notification-popup-list {
	display: grid;
	gap: 10px;
	overflow: auto;
	padding: 0 24px;
}

.admin-notification-popup-entry {
	padding: 14px 15px;
	border: 1px solid #d5e3f7;
	border-radius: 14px;
	background: rgba(255, 255, 255, .85);
}

.admin-notification-popup-entry-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	color: #1e3a5f;
}

.admin-notification-popup-entry-head small {
	color: #64748b;
	font-size: .8rem;
	text-align: right;
}

.admin-notification-popup-entry p {
	margin: 8px 0 0;
	white-space: pre-wrap;
	line-height: 1.5;
	color: #1e293b;
}

.admin-notification-popup-actions {
	display: flex;
	justify-content: flex-end;
	padding: 18px 24px 22px;
}

.admin-notification-popup-read,
.admin-notification-send-btn {
	border: 0;
	border-radius: 12px;
	min-height: 44px;
	padding: 11px 18px;
	font: inherit;
	font-weight: 800;
	cursor: pointer;
	color: #fff;
	background: linear-gradient(145deg, #2563eb, #1d4ed8);
	box-shadow: 0 10px 22px rgba(37, 99, 235, .28);
}

.admin-notification-popup-read:disabled {
	cursor: wait;
	filter: saturate(.5);
}

.admin-notification-page {
	width: min(1080px, calc(100% - 32px));
	margin: 14px auto 90px;
}

.admin-notification-card {
	padding: clamp(18px, 3vw, 32px);
	border: 1px solid #d9e3f0;
	border-radius: 22px;
	background: rgba(255, 255, 255, .97);
	box-shadow: 0 18px 46px rgba(2, 8, 23, .2);
	color: #1e293b;
}

.admin-notification-header,
.admin-notification-recipient-head,
.admin-notification-actions {
	display: flex;
	justify-content: space-between;
	gap: 18px;
	align-items: center;
}

.admin-notification-heading {
	display: flex;
	align-items: flex-start;
	gap: 14px;
}

.admin-notification-heading-icon {
	width: 46px;
	height: 46px;
	display: grid;
	place-items: center;
	border-radius: 14px;
	color: #1d4ed8;
	background: #dbeafe;
}

.admin-notification-heading p,
.admin-notification-heading h2,
.admin-notification-heading span,
.admin-notification-recipient-head p {
	margin: 0;
}

.admin-notification-heading p {
	font-size: .75rem;
	font-weight: 800;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: #2563eb;
}

.admin-notification-heading h2 {
	margin: 3px 0 5px;
	color: #13233e;
}

.admin-notification-heading span,
.admin-notification-recipient-head p {
	color: #64748b;
}

.admin-notification-summary,
.admin-notification-selected {
	display: grid;
	gap: 1px;
	padding: 10px 14px;
	border: 1px solid #cfe0f8;
	border-radius: 13px;
	background: #eff6ff;
	text-align: right;
	color: #475569;
	font-size: .83rem;
}

.admin-notification-summary strong,
.admin-notification-selected strong {
	color: #1d4ed8;
	font-size: 1.08rem;
}

.admin-notification-feedback,
.admin-notification-empty {
	margin: 22px 0 0;
	padding: 12px 14px;
	border-radius: 12px;
	font-weight: 650;
}

.admin-notification-feedback.is-success {
	border: 1px solid #86efac;
	background: #f0fdf4;
	color: #166534;
}

.admin-notification-feedback.is-error {
	border: 1px solid #fecaca;
	background: #fef2f2;
	color: #b91c1c;
}

.admin-notification-empty {
	background: #f8fafc;
	color: #475569;
}

.admin-notification-form {
	display: grid;
	gap: 15px;
	margin-top: 25px;
}

.admin-notification-message-field {
	display: grid;
	gap: 7px;
}

.admin-notification-message-field label,
.admin-notification-recipient-head label {
	font-weight: 800;
	color: #1e3a5f;
}

.admin-notification-message-field textarea,
.admin-notification-search {
	box-sizing: border-box;
	width: 100%;
	border: 1px solid #cbd9ea;
	border-radius: 12px;
	padding: 12px 13px;
	font: inherit;
	color: #1e293b;
	background: #fff;
}

.admin-notification-message-field textarea {
	min-height: 128px;
	resize: vertical;
}

.admin-notification-message-field textarea:focus,
.admin-notification-search:focus {
	outline: 3px solid rgba(96, 165, 250, .36);
	border-color: #3b82f6;
}

.admin-notification-message-field small {
	color: #64748b;
	text-align: right;
}

.admin-notification-recipient-head {
	margin-top: 4px;
	align-items: flex-end;
}

.admin-notification-recipient-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 9px;
	max-height: 350px;
	overflow: auto;
	padding: 3px;
}

.admin-notification-recipient {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
	padding: 11px;
	border: 1px solid #d7e1ee;
	border-radius: 13px;
	cursor: pointer;
	transition: border-color .14s ease, background .14s ease, transform .14s ease;
}

/* The component's flex display would otherwise override the browser's [hidden] rule. */
.admin-notification-recipient[hidden] {
	display: none !important;
}

.admin-notification-recipient:hover {
	border-color: #93c5fd;
	background: #f8fbff;
	transform: translateY(-1px);
}

.admin-notification-recipient input {
	position: absolute;
	opacity: 0;
}

.admin-notification-recipient-check {
	width: 22px;
	height: 22px;
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	border: 1px solid #b7c8dc;
	border-radius: 7px;
	color: transparent;
}

.admin-notification-recipient input:checked + .admin-notification-recipient-check {
	border-color: #2563eb;
	color: #fff;
	background: #2563eb;
}

.admin-notification-recipient:has(input:checked) {
	border-color: #60a5fa;
	background: #eff6ff;
}

.admin-notification-recipient:has(input:focus-visible) {
	outline: 3px solid rgba(96, 165, 250, .45);
	outline-offset: 2px;
}

.admin-notification-recipient-copy {
	display: grid;
	min-width: 0;
	gap: 2px;
}

.admin-notification-recipient-copy strong,
.admin-notification-recipient-copy small {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.admin-notification-recipient-copy small {
	color: #64748b;
}

.admin-notification-actions {
	margin-top: 8px;
	justify-content: flex-end;
}

.admin-notification-send-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
}

@media (max-width: 680px) {
	.admin-notification-popup-overlay {
	align-items: end;
	padding: 10px;
	}
	.admin-notification-popup {
	max-height: calc(100vh - 20px);
	border-radius: 18px;
	}
	.admin-notification-popup-header,
	.admin-notification-popup-intro,
	.admin-notification-popup-list,
	.admin-notification-popup-actions {
		padding-left: 17px;
		padding-right: 17px;
	}
	.admin-notification-popup-entry-head {
		align-items: flex-start;
		flex-direction: column;
		gap: 3px;
	}
	.admin-notification-popup-entry-head small {
		text-align: left;
	}
	.admin-notification-popup-read,
	.admin-notification-send-btn {
		width: 100%;
	}
	.admin-notification-page {
		width: min(100% - 20px, 1080px);
	}
	.admin-notification-header,
	.admin-notification-recipient-head {
		align-items: flex-start;
		flex-direction: column;
	}
	.admin-notification-summary,
	.admin-notification-selected {
		text-align: left;
	}
	.admin-notification-recipient-list {
		grid-template-columns: 1fr;
		max-height: 330px;
	}
	.admin-notification-actions {
		width: 100%;
	}
}

/* ===== Login Loading State ===== */
.login_par_btn input.is-loading {
	cursor: wait;
	filter: brightness(0.95);
}

.login_loading_state {
	margin-top: 12px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 700;
	font-size: 1rem;
	color: #dbeafe;
}

.login_loading_state[hidden] {
	display: none !important;
}

.login_loading_spinner {
	width: 16px;
	height: 16px;
	border-radius: 50%;
	border: 3px solid rgba(255, 255, 255, 0.35);
	border-top-color: #ffffff;
	animation: loginSpinner 0.7s linear infinite;
}

@keyframes loginSpinner {
	to {
		transform: rotate(360deg);
	}
}

body::before {
	content: '';
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	background-image: var(--elvis-bg-logo-url, none);
	background-repeat: no-repeat;
	background-position: center 58%;
	background-size: min(72vw, 1080px) auto;
	opacity: var(--elvis-bg-logo-opacity, 0);
	filter: blur(var(--elvis-bg-logo-blur, 12px)) saturate(0.92) brightness(1.05);
}

body.elvis-training-mode {
	background: radial-gradient(ellipse at bottom, #a61b1b 0%, #2a0505 100%);
}

body.elvis-training-mode::after {
	content: 'SCHULUNGSMODUS   SCHULUNGSMODUS   SCHULUNGSMODUS';
	position: fixed;
	inset: -12% -10%;
	pointer-events: none;
	z-index: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: clamp(2rem, 6vw, 7rem);
	font-weight: 900;
	letter-spacing: 0.32em;
	color: rgba(255, 255, 255, 0.08);
	transform: rotate(-24deg);
	text-transform: uppercase;
}

body > div {
	position: relative;
	z-index: 1;
}

.training_mode_banner {
	position: sticky;
	top: 0;
	z-index: 4300;
	margin: 0 auto 10px auto;
	width: min(1200px, 98%);
	box-sizing: border-box;
	padding: 10px 14px;
	border-radius: 10px;
	border: 1px solid rgba(255, 205, 205, 0.55);
	background: linear-gradient(160deg, rgba(204, 33, 33, 0.96), rgba(113, 11, 11, 0.96));
	color: #fff;
	font-size: clamp(0.95rem, 1.4vw, 1.05rem);
	font-weight: 800;
	text-align: center;
	letter-spacing: 0.04em;
}

.training_bma_test {
	width: min(1200px, 96%);
	box-sizing: border-box;
	margin: 0 auto 18px;
	padding: 16px 18px;
	border: 1px solid rgba(254, 202, 202, 0.7);
	border-radius: 14px;
	background: rgba(69, 10, 10, 0.82);
	box-shadow: 0 10px 28px rgba(69, 10, 10, 0.34);
	color: #fff;
}

.training_bma_test h2 {
	margin: 0;
	font-size: 1.12rem;
}

.training_bma_test p {
	margin: 5px 0 0;
	color: rgba(254, 242, 242, 0.9);
}

.training_bma_test_form {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	gap: 10px;
	margin-top: 14px;
}

.training_bma_test_form label {
	flex-basis: 100%;
	font-weight: 700;
}

.training_bma_test_form input {
	min-width: min(260px, 100%);
	min-height: 42px;
	padding: 0 12px;
	border: 1px solid rgba(254, 202, 202, 0.72);
	border-radius: 8px;
	background: #fff;
	color: #450a0a;
	font: inherit;
}

.training_bma_test_form .main_btn {
	min-height: 42px;
}

.training_bma_test_status:empty {
	display: none;
}

@media (max-width: 620px) {
	.training_bma_test_form {
		align-items: stretch;
		flex-direction: column;
	}

	.training_bma_test_form input,
	.training_bma_test_form .main_btn {
		width: 100%;
	}
}

@media (max-width: 1100px) {
	body::before {
		background-size: min(86vw, 760px) auto;
		background-position: center 55%;
	}
}

@media (max-width: 700px) {
	body::before {
		background-size: min(92vw, 560px) auto;
	}
}

h1 {
	font-size: 3em;
	font-weight: 700;
}

.footer, .back {
	left: 0;
	bottom: 0;
	width: 100%;
	text-align: center;
	display: grid; 
	grid-template-columns: 100%;
	justify-items: center;
	position: relative;
}

.footer_wrapper, .back_wrapper {
	
	padding-top: 20px;
	position: absolute;
}
.btn_logout, .btn_2nd_user, .btn_back {
	display: block;
    width: 200px;
    height: 25px;
    background: #B71319;
    padding: 10px;
    text-align: center;
    border-radius: 5px;
    color: white;
    font-weight: 700;
    line-height: 25px;
	text-transform: uppercase; 
}

.footer_btn, .back_btn {
	padding-bottom: 6px;
}

.footer_btn a, .back_btn a {
	text-decoration: none;
}

/* SEITE: Login */

.login_wrapper {
	display: grid; 
	grid-template-columns: 100%;
	justify-items: center;
}


.login_heading {
	text-align: center;
}

.login_heading_logo {
	display: block;
	width: clamp(130px, 20vw, 210px);
	height: auto;
	margin: 12px auto 14px;
	border-radius: 26px;
	box-shadow: 0 16px 34px rgba(2, 8, 24, 0.45);
}

.login_wrapper .login_heading h1 {
	margin: 0 0 14px 0;
}

.login_main {
	color: #fff; 
	padding:40px;
	background:#B71319;
	width:80%;
	box-shadow:rgba(0,0,0,.1) 5px 5px 5px;
	height:75%;
}

.login_form {
	display: grid;
	grid-template-columns: 100%;
	justify-items: stretch;
}

.login_par {
	padding-bottom: 20px;
	width: 100%;
	text-align: center;
}

.login_par input {
	width: 100%;
	line-height: 2em;
	font-size: 2em;
}

.login_par_btn {
	padding-top: 20px;
}

.login_aux_link {
	text-align: right;
	margin: -6px 0 6px;
}

.login_aux_link a {
	color: #fff;
	text-decoration: underline;
	font-size: 1.05em;
	font-weight: 700;
}

.login_par_btn input {
	width: 100%;
	line-height: 2em;
	font-size: 2em;
	height: 70px;
}

/* SEITE: Kennwort vergessen */
.forgot_password_page .login_par label {
	display: block;
	margin-bottom: 10px;
	font-size: clamp(1.1rem, 1.6vw, 1.45rem);
	font-weight: 700;
}

.forgot_password_page .login_par input {
	font-size: clamp(1.05rem, 1.5vw, 1.25rem);
	line-height: 1.35;
	padding: 12px 14px;
}

.forgot_password_actions {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
	padding-top: 10px;
}

.forgot_password_actions .forgot_password_action_btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 58px;
	height: 58px;
	padding: 0 16px;
	margin: 0;
	line-height: 1.2;
	font-size: clamp(1.05rem, 1.7vw, 1.42rem);
	font-weight: 700;
	font-family: inherit;
	letter-spacing: 0;
	text-transform: none;
	text-decoration: none;
	box-sizing: border-box;
}

.forgot_password_actions button.forgot_password_action_btn {
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
}

/* SEITE: MAIN_VIEW */

.main_wrapper {
	display: grid; 
	grid-template-columns: 100%;
	justify-items: center;
	padding-top: 10px;
}

.main_heading {
	text-align: center;
}

.main_heading h1 {
	margin-bottom: 2px;
}

.heading {
        text-align: center;
        position: relative;
}

.main_area {
	display: grid;
	grid-template-columns: repeat(auto-fill, 16em);
	grid-gap: 3.5em;
}

.license_state_notice {
	width: min(1160px, 96vw);
	margin: 0 auto 14px auto;
	padding: 10px 12px;
	border-radius: 10px;
	border: 1px solid rgba(255, 255, 255, 0.26);
	background: rgba(185, 28, 28, 0.22);
	display: grid;
	gap: 6px;
}

.license_state_notice_info {
	background: rgba(30, 64, 175, 0.24);
}

.license_state_notice_warn {
	background: rgba(185, 28, 28, 0.24);
}

.main_btn {
	display: block;
    width: 100%;
    height: 50px;
    background: #B71319;
    padding: 10px;
    text-align: center;
    border-radius: 5px;
    color: white;
    font-weight: 700;
    line-height: 50px;
	text-transform: uppercase; 
	padding-right: 10px;
	font-size: 1.8em;
}

.main_link a {
	text-decoration: none;
}

.main_link {
	width: 50%;
	padding-bottom: 20px;
}

.main_logged_user {
	font-size: 1.5em;
	text-align: center;
	padding-bottom: 20px;
}

.btn-square {
	position: relative;
	display: inline-block;
	padding: 20%;
	background-color: #03396c;
	background-image: linear-gradient(#03396c, #005b96);
	max-height: 210px;

	/* text styles */
	text-decoration: none;
	color: #fff;
	font-size: 1em;
	
	border-radius: 3px;
	box-shadow: 0px 1px 4px -2px #333;
	text-shadow: 0px -1px #333;
	width: 256px;
}

.btn-square:after{
	content: '' ;
	position: absolute;
	top: 2px ;
	left: 2px ;
	width: calc(100% - 4px) ;
	height: 50% ;
	background: linear-gradient(rgba(255,255,255,0.8), rgba(255,255,255,0.2));
}

.btn-square:hover{
	background: linear-gradient(#005b96, #6497b1);
}

.btn-svg img{
        width: 5em;
        filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(288deg) brightness(102%) contrast(102%);
}

.btn-svg i {
        font-size: 5em;
        color: #fff;
}

.btn-text {
	display: grid;
	text-align: center;
	font-size: 1.5em;
}

.btn-vehicle_select {
	position: relative;
	display: inline-block;
	padding: 5%;
	background-color: #03396c;
	background-image: linear-gradient(#03396c, #005b96);

	/* text styles */
	text-decoration: none;
	color: #fff;
	font-size: 5em;
	text-transform: uppercase;
	
	border-radius: 3px;
	box-shadow: 0px 1px 4px -2px #333;
	text-shadow: 0px -1px #333;

	
}

/* SEITE: Admin */


.admin_area {
	display: grid;
	/* grid-template-columns: repeat(2, 1fr); */
	grid-template-columns: repeat(1, 1fr);
	grid-gap: 10px;
	/* width: 90vw; */ 
	justify-items: center;
}

.admin_btn {
	display: block;
    width: 100%;
    height: 50px;
    background: #B71319;
    padding: 10px;
    text-align: center;
    border-radius: 5px;
    color: white;
    font-weight: 700;
    line-height: 50px;
	text-transform: uppercase; 
	padding-right: 10px;
	font-size: 1.8em;
}

.admin_area a {
        text-decoration: none;
}

.admin_nav {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 16px;
	width: 100%;
}

.admin_nav .admin_btn {
	width: auto;
	height: auto;
	line-height: 1.2;
	font-size: 1em;
	padding: 10px 16px;
	border-radius: 10px;
}

/* grid for admin main menu */
.admin_menu_area {
        width: 100%;
        max-width: none;
        padding-inline: clamp(10px, 1.4vw, 28px);
        box-sizing: border-box;
        margin-inline: auto;
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(clamp(170px, 22vw, 240px), 1fr));
        gap: clamp(12px, 1.4vw, 24px);
        justify-items: center;
        align-items: start;
}

.admin_menu_area .btn-text {
        width: 100%;
}

.admin_menu_area .btn-square {
        width: 100%;
        max-width: none;
}

.bglogo_page {
	width: min(1160px, 96vw);
	margin: 0 auto;
}

.bglogo_card {
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 14px;
	padding: 16px;
	box-sizing: border-box;
}

.bglogo_hint {
	color: #dbeafe;
	margin: 0 0 12px 0;
}

.bglogo_notice {
	padding: 10px 12px;
	border-radius: 10px;
	margin-bottom: 10px;
	font-weight: 700;
}

.bglogo_notice_ok {
	background: rgba(22, 163, 74, 0.2);
	border: 1px solid rgba(34, 197, 94, 0.5);
}

.bglogo_notice_error {
	background: rgba(185, 28, 28, 0.24);
	border: 1px solid rgba(248, 113, 113, 0.5);
}

.bglogo_form {
	display: grid;
	gap: 10px;
	margin-bottom: 14px;
}

.bglogo_form input[type=file] {
	display: block;
	width: 100%;
	max-width: 560px;
	padding: 8px;
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 10px;
	background: rgba(3, 6, 23, 0.32);
	color: #fff;
	box-sizing: border-box;
}

.bglogo_actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.bglogo_actions .admin_btn {
	width: auto;
	height: auto;
	min-height: 46px;
	padding: 10px 14px;
	font-size: 1em;
	line-height: 1.2;
}

.bglogo_remove_btn {
	background: linear-gradient(160deg, #cf2d35, #981b1f);
}

.bglogo_preview_wrap {
	margin: 10px 0 14px 0;
	display: grid;
	gap: 8px;
}

.bglogo_preview {
	height: min(34vw, 230px);
	min-height: 150px;
	border-radius: 14px;
	background:
		linear-gradient(165deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0) 46%),
		linear-gradient(180deg, #0f5c97 0%, #03396c 100%);
	border: 1px solid rgba(255, 255, 255, 0.22);
	position: relative;
	overflow: hidden;
}

.bglogo_preview::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: var(--preview-logo, none);
	background-repeat: no-repeat;
	background-position: center;
	background-size: min(80%, 520px) auto;
	opacity: var(--preview-opacity, 0.06);
}

.bglogo_opacity_form {
	display: grid;
	gap: 8px;
	max-width: 560px;
}

.bglogo_opacity_row {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 12px;
	align-items: center;
}

.bglogo_opacity_row input[type=range] {
	width: 100%;
}

.bglogo_opacity_value {
	min-width: 56px;
	text-align: right;
	font-weight: 700;
}

.tabletcfg_page {
	width: min(1160px, 96vw);
	margin: 0 auto;
}

.tabletcfg_card {
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 14px;
	padding: 16px;
	box-sizing: border-box;
}

.trainingcfg_card {
	display: grid;
	gap: 10px;
}

.trainingcfg_cleanup {
	background: rgba(15, 23, 42, 0.35);
	border: 1px solid rgba(148, 163, 184, 0.5);
	border-radius: 10px;
	padding: 10px 12px;
	line-height: 1.5;
}

.tabletcfg_hint {
	color: #dbeafe;
	margin: 0 0 14px 0;
}

.tabletcfg_form {
	display: grid;
	gap: 12px;
	margin-bottom: 12px;
}

.tabletcfg_switch_row {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 12px;
	align-items: center;
	background: rgba(2, 8, 24, 0.3);
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 12px;
	padding: 12px 14px;
}

.tabletcfg_switch_label {
	font-weight: 700;
}

.tabletcfg_switch {
	position: relative;
	display: inline-flex;
	width: 56px;
	height: 32px;
}

.tabletcfg_switch input {
	position: absolute;
	inset: 0;
	opacity: 0;
	margin: 0;
	cursor: pointer;
}

.tabletcfg_switch_slider {
	width: 100%;
	height: 100%;
	border-radius: 999px;
	background: #475569;
	transition: background-color 0.16s ease;
	position: relative;
	display: block;
}

.tabletcfg_switch_slider::after {
	content: '';
	position: absolute;
	top: 3px;
	left: 3px;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: #ffffff;
	transition: transform 0.16s ease;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.28);
}

.tabletcfg_switch input:checked + .tabletcfg_switch_slider {
	background: #10b981;
}

.tabletcfg_switch input:checked + .tabletcfg_switch_slider::after {
	transform: translateX(24px);
}

.tabletcfg_switch input:focus-visible + .tabletcfg_switch_slider {
	outline: 3px solid var(--elvis-focus);
	outline-offset: 2px;
}

.tabletcfg_state {
	background: rgba(2, 8, 24, 0.2);
	border-radius: 10px;
	padding: 10px 12px;
}

.offlinecfg_card {
	display: grid;
	gap: 12px;
}

.offlinecfg_actions {
	margin-bottom: 4px;
}

.offlinecfg_module_row {
	align-items: start;
}

.offlinecfg_module_copy {
	display: grid;
	gap: 6px;
}

.offlinecfg_module_desc {
	color: #cbd5e1;
	font-size: 0.95rem;
	line-height: 1.45;
}

.offlinecfg_state {
	display: grid;
	gap: 10px;
}

.offlinecfg_chip_list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.offlinecfg_chip {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 6px 12px;
	border-radius: 999px;
	background: rgba(14, 116, 144, 0.22);
	border: 1px solid rgba(125, 211, 252, 0.35);
	color: #e0f2fe;
	font-weight: 700;
}

.offlinecfg_empty {
	color: #cbd5e1;
}

.licensecfg_page {
	width: min(1160px, 96vw);
	margin: 0 auto;
}

.licensecfg_card {
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 14px;
	padding: 16px;
	box-sizing: border-box;
	display: grid;
	gap: 12px;
}

.licensecfg_hint {
	color: #dbeafe;
	margin: 0;
}

.licensecfg_state {
	background: rgba(2, 8, 24, 0.28);
	border: 1px solid rgba(148, 163, 184, 0.35);
	border-radius: 10px;
	padding: 12px;
	display: grid;
	gap: 6px;
}

.licensecfg_form {
	display: grid;
	gap: 10px;
}

.licensecfg_form input[type=url],
.licensecfg_form input[type=number],
.licensecfg_form input[type=text],
.licensecfg_form textarea {
	width: 100%;
	max-width: 100%;
	padding: 10px;
	border-radius: 10px;
	border: 1px solid rgba(255, 255, 255, 0.26);
	background: rgba(3, 6, 23, 0.32);
	color: #fff;
	font-size: 1em;
	box-sizing: border-box;
}

.licensecfg_form textarea {
	resize: vertical;
}

.licensecfg_secondary_actions form {
	margin: 0;
}

.licensecfg_meta {
	display: grid;
	gap: 6px;
}

.licensecfg_table_wrap {
	overflow-x: auto;
}

.licensecfg_table {
	width: 100%;
	border-collapse: collapse;
	min-width: 720px;
}

.licensecfg_table th,
.licensecfg_table td {
	padding: 8px 10px;
	text-align: left;
	border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

.licensecfg_table th {
	background: rgba(15, 23, 42, 0.34);
}

.tabletcfg_runtime {
	margin: 10px 0 12px 0;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 10px;
	padding: 10px 12px;
}

.tabletcfg_runtime_ok {
	border-color: rgba(34, 197, 94, 0.56);
	background: rgba(22, 163, 74, 0.18);
}

.tabletcfg_runtime_warn {
	border-color: rgba(248, 113, 113, 0.6);
	background: rgba(185, 28, 28, 0.22);
}

.tabletcfg_notes {
	margin: 0;
	padding-left: 20px;
	display: grid;
	gap: 8px;
}

@media (max-width: 700px) {
	.tabletcfg_switch_row {
		grid-template-columns: 1fr;
		gap: 10px;
	}

	.tabletcfg_switch {
		justify-self: start;
	}
}

.blattler_admin_card {
        width: min(1100px, 98%);
        background: rgba(255, 255, 255, 0.1);
        border: 1px solid rgba(255, 255, 255, 0.18);
        border-radius: 10px;
        padding: 16px;
        box-sizing: border-box;
}

.blattler_admin_notice {
        width: min(1100px, 98%);
        box-sizing: border-box;
        border-radius: 8px;
        padding: 10px 14px;
        font-weight: 700;
}

.blattler_admin_success {
        background: #2f9e4f;
}

.blattler_admin_error {
        background: #b71319;
}

.blattler_admin_btn_inline {
        width: auto;
        height: auto;
        line-height: 1.2;
        padding: 10px 14px;
        border-radius: 8px;
        font-size: 1em;
        display: inline-block;
        margin-right: 8px;
        margin-top: 8px;
}

.blattler_admin_form {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        align-items: center;
}

.blattler_admin_form input[type="file"] {
        display: block;
        width: min(100%, 560px);
        padding: 8px;
        border: 1px solid rgba(255, 255, 255, 0.24);
        border-radius: 8px;
        background: rgba(3, 6, 23, 0.32);
        color: #fff;
	box-sizing: border-box;
}

.blattler_navigation_admin_rows {
	display: grid;
	gap: 10px;
	margin-top: 16px;
}

.blattler_navigation_admin_row {
	display: grid;
	grid-template-columns: minmax(220px, 1fr) 150px 130px auto;
	gap: 10px;
	align-items: end;
	padding: 12px;
	border: 1px solid rgba(148, 163, 184, .28);
	border-radius: 10px;
	background: rgba(15, 23, 42, .18);
}

.blattler_navigation_admin_row label {
	display: grid;
	gap: 5px;
	font-size: .85rem;
	font-weight: 700;
}

.blattler_navigation_admin_row :is(input, select) {
	width: 100%;
	min-height: 40px;
	box-sizing: border-box;
}

.blattler_navigation_admin_remove {
	min-height: 40px;
	padding: 8px 11px;
	border: 1px solid rgba(248, 113, 113, .55);
	border-radius: 8px;
	background: rgba(127, 29, 29, .16);
	color: inherit;
	font: inherit;
	font-size: .85rem;
	font-weight: 700;
	cursor: pointer;
}

.blattler_navigation_admin_actions {
	display: flex;
	flex-wrap: wrap;
	gap: 2px;
	margin-top: 4px;
}

@media (max-width: 720px) {
	.blattler_navigation_admin_row {
		grid-template-columns: 1fr 1fr;
	}

	.blattler_navigation_admin_row label:first-child {
		grid-column: 1 / -1;
	}
}

/* SEITE: Benutzerverwaltung */

.user_form {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-gap: 20px;
	justify-items: center;
	font-size: 1.5em;
}

.user_par {
	padding-bottom: 20px;
	width: 100%;
	text-align: center;
}

.user_par img {
	width: 80px;
	height: 80px;
}

.user_par fieldset {
	border: none;
}

.user_par input, .driverlog_area input {
	width: 100%;
	line-height: 2em;
	font-size: 2em;
}

.vehicle-ats-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	cursor: pointer;
}

.vehicle-ats-toggle input[type="checkbox"] {
	width: 22px;
	height: 22px;
	margin: 0;
	accent-color: #38d07b;
}

.vehicle-ats-toggle span {
	font-size: 0.9em;
}

.user_par [type=radio] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;

}

.user_par [type=radio] + img {
  cursor: pointer;
}

.user_par [type=radio]:checked + img {
  cursor: pointer;
  outline: 2px solid #f00;
  border: 2px solid;
}

.user_par_btn {
	padding-bottom: 20px;
	padding-top: 20px;

}

.user_par_btn input {
	width: 100%;
	line-height: 2em;
	font-size: 2em;
	height: 70px;
	color: #ffffff;
	background: #B71319;
	border: none; 
	font-weight: 700;
    line-height: 50px;
	text-transform: uppercase; 
	border-radius: 5px;
}

.user_form_rights, .user_form_rights input {
	font-size: 1.5em;
}

.user_form_rights label {
	font-size: 1.2em;
}

.user_rights_container {
	display: grid;
    grid-template-columns: repeat(8, 1fr);
    padding-bottom: 10px;
    justify-items: end;
    align-items: center;
}
/* SEITE: Tablet Einstellungen */

.tabletSettings_area {
	display: grid;
	grid-template-columns: repeat(2, 0.4fr);
	grid-gap: 10px;
	width: 90vw;
	justify-content: center;
}

.tabletSettings_heading {
	font-size: 2em;
}

.tabletSettings_Dropdown {
 width: 100%;
}

.tabletSettings_Dropdown select {

    position: relative;
    display: inline-block;
    margin-bottom: 15px;
    width: 100%;
	line-height: 2em;
	font-size: 2em;

}

.tabletSettings_Input Input {
	margin-left: 0px;
    width: 100%;
	font-size: 2em;
}

/* SEITE: Fahrtenbuch */

.driverlog_heading {
	text-align: center;
}



.driverlog_btn {
	display: block;
    width: 100%;
    height: 50px;
    background: #B71319;
    padding: 10px;
    text-align: center;
    border-radius: 5px;
    color: white;
    font-weight: 700;
    line-height: 50px;
	text-transform: uppercase; 
	padding-right: 10px;
	font-size: 1.8em;
}

.driverlog_area a {
	text-decoration: none;
}

.driverlog_area .dataTables_wrapper {
	background-color: #f0f0f0;
	color: #000;
}

.driverlog_area .dataTables_wrapper td, .driverlog_area .dataTables_wrapper th {
        color: #000;
}
.driverlog_list {
        box-sizing: border-box;
}

.table-responsive {
        overflow-x: auto;
        width: 100%;
}

.admin_area .table-responsive {
	padding-bottom: 20px;
}

.admin_area .sorting {
	color: #fff !important;
}
.admin_area .dataTables_wrapper {
        background-color: #ffffff;
        color: #000;
        padding: 1em;
        border-radius: 5px;
        box-shadow: 0 1px 5px rgba(0, 0, 0, 0.2);
}

.admin_area table.dataTable {
        width: 100%;
        border-collapse: collapse;
        font-size: 1em;
}

.admin_area table.dataTable thead {
        background-color: #03396c;
        color: #fff;
}

.admin_area table.dataTable th,
.admin_area table.dataTable td {
        padding: 0.75em 1em;
        border-bottom: 1px solid #ddd;
	color: #000;
}

.admin_area table.dataTable tbody tr:nth-child(even) {
        background-color: #f9f9f9;
}

.admin_area table.dataTable tbody tr:hover {
        background-color: #e3f2fd;
}

.dgsync_panel {
	width: min(1240px, 100%);
	background: #ffffff;
	color: #000;
	border-radius: 8px;
	box-shadow: 0 1px 5px rgba(0,0,0,0.2);
	padding: 14px;
	box-sizing: border-box;
}

.dgsync_actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	margin-bottom: 14px;
}

.dgsync_actions input {
	width: 90px;
	height: 38px;
	font-size: 1em;
	padding: 0 8px;
}

.dgsync_btn {
	width: auto;
	height: auto;
	line-height: 1.2;
	padding: 10px 14px;
	font-size: 0.95em;
	border: none;
	cursor: pointer;
}

.dgsync_btn_stop {
	background: #374151;
}

.dgsync_btn_stop:hover {
	background: #1f2937;
}

.dgsync_progress_wrap {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 10px;
	align-items: center;
	margin-bottom: 10px;
}

.dgsync_progress_track {
	height: 22px;
	background: #e5e7eb;
	border-radius: 999px;
	overflow: hidden;
	border: 1px solid #cfd4dc;
}

.dgsync_progress_bar {
	height: 100%;
	background: linear-gradient(90deg, #0f766e, #10b981);
	transition: width 0.25s ease;
}

.dgsync_progress_text {
	min-width: 120px;
	text-align: right;
	font-weight: 700;
}

.dgsync_stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 10px;
	margin-bottom: 12px;
}

.dgsync_stats > div {
	background: #f3f6fa;
	padding: 10px;
	border-radius: 6px;
}

.dgsync_log_wrap {
	background: #111827;
	border-radius: 8px;
	padding: 10px;
}

.dgsync_log_title {
	font-weight: 700;
	color: #e5e7eb;
	margin-bottom: 8px;
}

.dgsync_log {
	margin: 0;
	max-height: 320px;
	overflow: auto;
	background: #030712;
	color: #d1fae5;
	border-radius: 6px;
	padding: 10px;
	font-size: 0.9em;
	line-height: 1.4;
}

.kbw-signature { 
	height: 4.5em; 
	width: 100%;
}

#overlay {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.5);
}

#overlay-content {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	font-size: 3em;
	background-color: red;
	text-align: center;
	color: #fff
}

.OverlayButton {
	font-size: 1em;
}

#TableQuery_filter input {
	font-size: 0.6em !important;
}

/* SEITE: ATS Nachweis */

.Vehicle_Select {
    width: 100%;
    font-size: 1.5em;
    padding-top: 0.75em;
    padding-bottom: 0.75em;
}

/* SEITE: Vehicle Select */

.selectvehicle_main {
	background-color: unset;
}

/* SEITE: Schadensmeldungen */

.dr-list-header {
	margin: 4px 0 18px;
	padding: clamp(16px, 2.5vw, 24px);
	border: 1px solid var(--elvis-line);
	border-radius: var(--elvis-radius-lg);
	background: linear-gradient(135deg, #ffffff, #f8fbff);
	box-shadow: var(--elvis-shadow-sm);
}

.dr-list-heading {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
}

.dr-list-kicker {
	margin: 0 0 5px;
	color: var(--elvis-brand);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.dr-list-kicker i {
	margin-right: 5px;
}

.dr-list-heading h1 {
	margin: 0;
	color: var(--elvis-ink);
	font-size: clamp(1.55rem, 2.5vw, 2.25rem);
	line-height: 1.15;
}

.dr-list-subtitle {
	margin: 7px 0 0;
	color: var(--elvis-ink-soft);
	font-size: 0.96rem;
}

.dr-new-report {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-height: 44px;
	padding: 0 17px;
	border-radius: 11px;
	background: var(--elvis-brand);
	box-shadow: 0 8px 18px rgba(185, 28, 28, 0.24);
	color: #fff;
	font-weight: 800;
	text-decoration: none;
	white-space: nowrap;
	touch-action: manipulation;
}

.dr-new-report:hover {
	background: var(--elvis-brand-strong);
	color: #fff;
}

/* SEITE: Funkgeräte Verwaltung */

table.dataTable tr.overdue td {
	color: #ff0000 !important;
}

/*****************/
/* Mobile Geräte */
/*****************/

@media only screen and (max-width:900px) {
	
	label {
		font-size: 2em;
	}
	
	h1 {
		font-size: 3em;
	}
}

.dmgreport_area {
	display: grid;
    justify-items: center;
    justify-content: space-evenly;
	width: 100%;
}

.SB {
	
	font-size: 3em; 
}

.damage_report_description{
	width: 50%;
	max-width: 50%;
	
	text-align: left;
  border-spacing: 0px;
            table-layout: fixed;
            margin-left: auto;
            margin-right: auto;
}

.damage_report_notifier {
	width: 15%;
	max-width: 15%;

	text-align: left;

}

.damage_report_timestamp {
	width: 25%;
	max-width:25%;

	text-align: left;

}

.damage_report_table_wrapper {
  margin: 0 auto;
  padding: 40px;
  max-width: 100vw;
}

.damage_report_table_table {
  margin: 0 0 40px 0;
  width: 100%;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  display: table;
}
@media screen and (max-width: 580px) {
  .damage_report_table_table {
    display: block;
  }
}

.damage_report_table_row {
  display: table-row;
  background: #f6f6f6;
  color: #000;
}
.damage_report_table_row:nth-of-type(odd) {
  background: #e9e9e9;
}
.damage_report_table_row.header {
  font-weight: 900;
  color: #ffffff;
  background: #ea6153;
}
.damage_report_table_row.green {
  background: #27ae60;
}
.damage_report_table_row.blue {
  background: #2980b9;
}
@media screen and (max-width: 580px) {
  .damage_report_table_row {
    padding: 14px 0 7px;
    display: block;
  }
  .damage_report_table_row.header {
    padding: 0;
    height: 6px;
  }
  .damage_report_table_row.header .cell {
    display: none;
  }
  .damage_report_table_row .cell {
    margin-bottom: 10px;
  }
  .damage_report_table_row .cell:before {
    margin-bottom: 3px;
    content: attr(data-title);
    min-width: 98px;
    font-size: 10px;
    line-height: 10px;
    font-weight: bold;
    text-transform: uppercase;
    color: #969696;
    display: block;
  }
}

.cell {
  padding: 6px 12px;
  display: table-cell;
}
@media screen and (max-width: 580px) {
  .cell {
    padding: 2px 16px;
    display: block;
  }
}

input[type="file"] {
    display: none;
}

.dr-new-report:focus-visible,
.damage-icon-btn:focus-visible,
.damage-upload-thumb button:focus-visible {
	outline: 3px solid var(--elvis-focus);
	outline-offset: 3px;
}

.damage-form-wrap {
	width: min(880px, 96vw);
	margin: 0 auto;
	padding: 10px 0 90px;
}

.dr-form-header {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-bottom: 14px;
	padding: 18px 20px;
	color: var(--elvis-ink);
	border: 1px solid var(--elvis-line);
	border-radius: 16px;
	background: linear-gradient(135deg, #ffffff, #f8fbff);
	box-shadow: var(--elvis-shadow-sm);
}

.dr-form-kicker {
	margin: 0;
	color: var(--elvis-brand);
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.dr-form-header h1 {
	margin: 2px 0 0;
	color: var(--elvis-ink);
	font-size: clamp(1.45rem, 2.4vw, 2.1rem);
	line-height: 1.15;
}

.dr-form-subtitle {
	margin: 7px 0 0;
	color: var(--elvis-ink-soft);
	font-size: 0.95rem;
}

.damage-form {
	display: grid;
	gap: 12px;
}

.damage-form-card {
	background: #ffffff;
	border: 1px solid var(--elvis-line);
	border-radius: 16px;
	padding: 22px;
	box-shadow: var(--elvis-shadow-sm);
	display: grid;
	gap: 16px;
}

.damage-form-head h2 {
	margin: 0;
	font-size: clamp(1.2rem, 1rem + 0.6vw, 1.5rem);
	color: var(--elvis-ink);
}

.damage-form-head p {
	margin: 6px 0 0;
	font-size: 0.95rem;
	color: var(--elvis-ink-soft);
}

.damage-form-grid {
	display: grid;
	grid-template-columns: minmax(220px, 360px);
	gap: 10px;
}

.damage-form-field label {
	display: block;
	margin-bottom: 6px;
	font-size: 0.88rem;
	font-weight: 750;
	color: #334155;
}

.damage-form-field select,
.damage-form-field textarea {
	width: 100%;
	box-sizing: border-box;
	border-radius: 10px;
	border: 1px solid #cbd5e1;
	background: #ffffff;
	color: var(--elvis-ink);
	padding: 11px 12px;
	font-size: 1rem;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.damage-form-field select:focus,
.damage-form-field textarea:focus {
	outline: 0;
	border-color: var(--elvis-brand);
	box-shadow: 0 0 0 3px rgba(185, 28, 28, 0.12);
}

.damage-form-field select:disabled {
	background: #eef2f7;
	color: #94a3b8;
	border-color: #dce3ec;
}

.damage-form-field textarea {
	min-height: 220px;
	line-height: 1.45;
	resize: vertical;
}

.damage-form-toolbar {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 10px;
}

.damage-form-toolbar .damage-form-hint {
	flex: 1 1 auto;
	min-width: 0;
}

.damage-icon-btn {
	border: 1px solid transparent;
	border-radius: 11px;
	min-height: 50px;
	padding: 0 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	font-size: 0.96rem;
	font-weight: 800;
	cursor: pointer;
	touch-action: manipulation;
	transition: transform 0.16s ease, filter 0.16s ease, box-shadow 0.16s ease;
}

.damage-icon-btn i {
	font-size: 1.1rem;
}

.damage-icon-btn:hover {
	transform: translateY(-1px);
	filter: brightness(1.05);
}

.damage-icon-btn:disabled {
	opacity: 0.55;
	cursor: not-allowed;
	transform: none;
}

.damage-icon-btn-neutral {
	border-color: #cbd5e1;
	background: #ffffff;
	color: #334155;
}

.damage-icon-btn-primary {
	background: var(--elvis-brand);
	color: #ffffff;
	box-shadow: 0 8px 18px rgba(185, 28, 28, 0.22);
}

.damage-icon-btn-primary:hover {
	background: var(--elvis-brand-strong);
}

.damage-form-hint {
	margin: 0;
	font-size: 0.9rem;
	color: var(--elvis-ink-soft);
}

.damage-existing-block {
	display: grid;
	gap: 8px;
}

.damage-existing-title {
	font-weight: 750;
	color: var(--elvis-ink);
}

.damage-upload-preview {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
	gap: 10px;
}

.damage-upload-thumb {
	position: relative;
	aspect-ratio: 1 / 1;
	border: 1px solid var(--elvis-line);
	border-radius: 10px;
	overflow: hidden;
	background: var(--elvis-surface-soft);
}

.damage-upload-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.damage-upload-thumb button {
	position: absolute;
	top: 6px;
	right: 6px;
	width: 44px;
	height: 44px;
	border: none;
	border-radius: 50%;
	cursor: pointer;
	font-size: 13px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.damage-upload-status {
	border: 1px solid var(--elvis-line);
	border-radius: 12px;
	padding: 10px 12px;
	background: var(--elvis-surface-soft);
	display: grid;
	gap: 8px;
}

.damage-upload-status[hidden] {
	display: none;
}

.damage-upload-status-head {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 0.92rem;
	color: var(--elvis-ink);
}

.damage-upload-percent {
	margin-left: auto;
	min-width: 44px;
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.damage-upload-progress {
	width: 100%;
	height: 10px;
	border-radius: 999px;
	background: #e2e8f0;
	overflow: hidden;
}

.damage-upload-progress-bar {
	display: block;
	height: 100%;
	width: 0%;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--elvis-blue), var(--elvis-blue-strong));
	transition: width 0.2s ease;
}

.damage-upload-status-error {
	border-color: #fecdd3;
	background: #fff1f2;
}

.damage-form-busy .damage-upload-thumb button {
	pointer-events: none;
}

.damage-gallery {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.damage-gallery .damage-image {
	border-radius: 6px;
	border: 1px solid var(--elvis-line);
}

@media only screen and (max-width: 980px) {
	.damage-form-wrap {
		width: min(98vw, 880px);
	}

	.damage-form-grid {
		grid-template-columns: 1fr;
	}
}

@media only screen and (max-width: 900px) {
	.damage-form-wrap label {
		font-size: 1rem;
	}

	.damage-form-field textarea {
		min-height: 200px;
		font-size: 1.06rem;
	}

	.damage-icon-btn {
		min-height: 56px;
		font-size: 1.04rem;
	}
}

@media only screen and (max-width: 640px) {
	.dr-form-header {
		padding: 14px;
	}

	.damage-form-card {
		padding: 16px;
	}

	.damage-icon-btn {
		width: 100%;
		padding: 0 12px;
	}

	.damage-form-toolbar {
		display: grid;
		grid-template-columns: 1fr 1fr;
		align-items: stretch;
	}

	.damage-form-toolbar .damage-form-hint {
		grid-column: 1 / -1;
		order: 3;
	}

	.damage-upload-preview {
		grid-template-columns: repeat(auto-fill, minmax(84px, 1fr));
	}
}

@media only screen and (max-width: 480px) {
	.dr-list-header {
		padding: 15px;
	}

	.dr-list-heading {
		gap: 14px;
	}

	.dr-new-report {
		width: 100%;
	}

	.damage-form-toolbar {
		grid-template-columns: 1fr;
	}

	.damage-form-toolbar .damage-form-hint {
		grid-column: auto;
		order: initial;
		text-align: center;
	}
}

/* SEITE: ATS Nachweis */
.ats-proof-wrap {
	width: min(1240px, 96vw);
	margin: 0 auto;
	padding: 10px 0 92px;
}

.ats-proof-menu-wrap,
.ats-proof-list-wrap,
.ats-proof-detail-wrap {
	width: min(1240px, 96vw);
	margin: 0 auto;
	padding: 10px 0 92px;
	display: grid;
	gap: 12px;
}

.ats-proof-menu-actions {
	padding-inline: 0;
	width: 100%;
}

.ats-proof-menu-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.ats-proof-menu-card {
	background: linear-gradient(165deg, rgba(5, 24, 46, 0.86), rgba(7, 39, 73, 0.75));
	border: 1px solid rgba(255, 255, 255, 0.17);
	border-radius: 16px;
	padding: 22px 20px;
	box-shadow: 0 14px 34px rgba(3, 16, 33, 0.42);
	display: grid;
	gap: 10px;
	text-decoration: none;
	color: #ffffff;
	transition: transform 0.16s ease, filter 0.16s ease, box-shadow 0.16s ease;
}

.ats-proof-menu-card:hover {
	transform: translateY(-2px);
	filter: brightness(1.04);
}

.ats-proof-menu-icon {
	width: 64px;
	height: 64px;
	border-radius: 18px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.7rem;
	background: linear-gradient(145deg, rgba(10, 126, 115, 0.95), rgba(6, 78, 59, 0.92));
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

.ats-proof-menu-title {
	font-size: 1.22rem;
	font-weight: 800;
}

.ats-proof-menu-text {
	font-size: 0.98rem;
	color: #d7ebff;
}

.ats-proof-form {
	display: grid;
	gap: 12px;
}

.ats-proof-card {
	background: linear-gradient(165deg, rgba(5, 24, 46, 0.86), rgba(7, 39, 73, 0.75));
	border: 1px solid rgba(255, 255, 255, 0.17);
	border-radius: 16px;
	padding: 18px;
	box-shadow: 0 14px 34px rgba(3, 16, 33, 0.42);
	display: grid;
	gap: 12px;
}

.ats-proof-head h2 {
	margin: 0;
	font-size: clamp(1.35rem, 1rem + 0.9vw, 1.9rem);
	color: #ffffff;
}

.ats-proof-head p {
	margin: 6px 0 0;
	font-size: 0.98rem;
	color: #d5e9ff;
}

.ats-proof-team-title {
	margin: 0;
	font-size: 1.2rem;
	color: #ffffff;
}

.ats-proof-team-hint {
	margin: 2px 0 0;
	font-size: 0.92rem;
	color: #cce4ff;
}

.ats-proof-member-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.ats-proof-member-remove {
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 12px;
	min-height: 46px;
	padding: 0 14px;
	background: rgba(137, 28, 33, 0.88);
	color: #ffffff;
	font-size: 0.95rem;
	font-weight: 700;
	cursor: pointer;
}

.ats-proof-member-remove:disabled,
.ats-proof-btn:disabled,
.ats-proof-submit:disabled {
	opacity: 0.55;
	cursor: not-allowed;
	transform: none;
	filter: none;
}

.ats-proof-member-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}

.ats-proof-member-hint {
	margin: 0;
	font-size: 0.95rem;
	color: #d1e5ff;
}

.ats-proof-grid {
	display: grid;
	gap: 10px;
}

.ats-proof-grid-main {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.ats-proof-grid-team {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.ats-proof-field {
	text-align: left;
}

.ats-proof-grid-main > .ats-proof-field {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}

.ats-proof-field label {
	display: block;
	margin-bottom: 6px;
	font-size: 0.96rem;
	font-weight: 700;
	color: #e8f3ff;
}

.ats-proof-field input,
.ats-proof-field select {
	width: 100%;
	box-sizing: border-box;
	border-radius: 12px;
	border: 1px solid rgba(85, 132, 182, 0.95);
	background: #f7fbff;
	color: #07203a;
	padding: 11px 12px;
	font-size: 1rem;
	min-height: 48px;
}

.ats-proof-field input::placeholder {
	color: #71849c;
}

.ats-proof-signature-label {
	margin: 0;
	font-size: 1rem;
	font-weight: 700;
	color: #e8f3ff;
}

.ats-proof-signature {
	min-height: 220px;
	border: 1px solid rgba(85, 132, 182, 0.95);
	border-radius: 14px;
	background: #ffffff;
	overflow: hidden;
	touch-action: none;
}

.ats-proof-signature .kbw-signature {
	width: 100%;
	min-height: 220px;
}

.ats-proof-signature canvas {
	width: 100% !important;
	height: 220px !important;
}

.ats-proof-signature-tools {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
}

.ats-proof-signature-hint {
	margin: 0;
	font-size: 0.95rem;
	color: #d1e5ff;
}

.ats-proof-btn {
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 13px;
	min-height: 52px;
	padding: 0 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #ffffff;
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
	box-shadow: 0 8px 20px rgba(3, 15, 30, 0.32), inset 0 1px 0 rgba(255, 255, 255, 0.18);
	transition: transform 0.16s ease, filter 0.16s ease;
}

.ats-proof-btn:hover {
	transform: translateY(-1px);
	filter: brightness(1.06);
}

.ats-proof-btn-secondary {
	background: linear-gradient(160deg, #2f6d9f, #0c446f);
}

.ats-proof-actions {
	display: flex;
	justify-content: flex-end;
}

.ats-proof-list-card .dataTables_wrapper,
.ats-proof-list-card .dataTables_length,
.ats-proof-list-card .dataTables_filter,
.ats-proof-list-card .dataTables_info,
.ats-proof-list-card .dataTables_paginate {
	color: #e8f3ff;
}

.ats-proof-list-card .dataTables_filter input,
.ats-proof-list-card .dataTables_length select {
	border-radius: 10px;
	border: 1px solid rgba(85, 132, 182, 0.95);
	background: #f7fbff;
	color: #07203a;
	padding: 6px 8px;
}

.ats-proof-table-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 32px;
	padding: 6px 12px;
	border: 1px solid rgba(142, 191, 235, 0.62);
	border-radius: 9px;
	background: rgba(11, 79, 133, 0.38);
	color: #e8f3ff;
	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1.1;
	text-decoration: none;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14);
	transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}

.ats-proof-table-link:hover {
	border-color: rgba(190, 219, 247, 0.9);
	background: rgba(31, 120, 189, 0.58);
	color: #ffffff;
	text-decoration: none;
}

.ats-proof-table-link:focus-visible {
	outline: 3px solid var(--elvis-focus);
	outline-offset: 2px;
}

.ats-proof-detail-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.ats-proof-detail-item {
	display: grid;
	gap: 4px;
	padding: 12px 14px;
	border-radius: 14px;
	border: 1px solid rgba(95, 142, 189, 0.65);
	background: rgba(2, 18, 34, 0.38);
}

.ats-proof-detail-label {
	font-size: 0.84rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #c6e3ff;
}

.ats-proof-detail-signature {
	border: 1px solid rgba(85, 132, 182, 0.95);
	border-radius: 14px;
	background: #ffffff;
	padding: 18px;
}

.ats-proof-detail-signature img {
	display: block;
	max-width: min(420px, 100%);
	height: auto;
}

.ats-proof-submit {
	border: none;
	border-radius: 13px;
	min-height: 56px;
	min-width: min(420px, 100%);
	padding: 0 18px;
	color: #fff;
	font-size: 1.08rem;
	font-weight: 800;
	text-transform: uppercase;
	background: linear-gradient(135deg, #b71319, #e63a40);
	box-shadow: 0 10px 30px rgba(183, 19, 25, 0.35);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	transition: filter 0.16s ease, opacity 0.16s ease;
}

.ats-proof-submit:hover {
	filter: brightness(1.08);
}

.ats-proof-submit.is-loading {
	filter: saturate(0.92);
}

.ats-proof-submit-spinner {
	display: none;
	width: 18px;
	height: 18px;
	border: 3px solid rgba(255, 255, 255, 0.42);
	border-top-color: #ffffff;
	border-radius: 50%;
	animation: ats-proof-submit-spin 0.8s linear infinite;
	flex: 0 0 auto;
}

.ats-proof-submit.is-loading .ats-proof-submit-spinner {
	display: inline-block;
}

@keyframes ats-proof-submit-spin {
	to {
		transform: rotate(360deg);
	}
}

@media only screen and (max-width: 1200px) {
	.ats-proof-grid-main {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.ats-proof-grid-team {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media only screen and (max-width: 980px) {
	.ats-proof-wrap {
		width: min(98vw, 1240px);
	}

	.ats-proof-menu-wrap,
	.ats-proof-list-wrap,
	.ats-proof-detail-wrap {
		width: min(98vw, 1240px);
	}

	.ats-proof-menu-grid,
	.ats-proof-detail-grid {
		grid-template-columns: 1fr;
	}

	.ats-proof-grid-main,
	.ats-proof-grid-team {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media only screen and (max-width: 700px) {
	.ats-proof-card {
		padding: 14px;
	}

	.ats-proof-grid-main,
	.ats-proof-grid-team {
		grid-template-columns: 1fr;
	}

	.ats-proof-grid-main > .ats-proof-field {
		display: block;
	}

	.ats-proof-menu-card {
		padding: 18px 16px;
	}

	.ats-proof-member-head {
		align-items: stretch;
		flex-direction: column;
	}

	.ats-proof-member-remove {
		width: 100%;
	}

	.ats-proof-signature {
		min-height: 190px;
	}

	.ats-proof-signature .kbw-signature {
		min-height: 190px;
	}

	.ats-proof-signature canvas {
		height: 190px !important;
	}

	.ats-proof-actions {
		justify-content: stretch;
	}

	.ats-proof-submit {
		width: 100%;
		min-width: 0;
	}
}

/* SEITE: Benutzer anlegen */
.user-create-wrap {
	width: min(1420px, 97vw);
	margin: 0 auto;
	padding: 10px 0 96px;
}

.user-create-form {
	display: grid;
	gap: 14px;
}

.user-create-card,
.user-create-wrap .group-card,
.user-create-wrap .rights-card {
	background: linear-gradient(165deg, rgba(5, 24, 46, 0.86), rgba(7, 39, 73, 0.75));
	border: 1px solid rgba(255, 255, 255, 0.17);
	border-radius: 16px;
	padding: 18px;
	box-shadow: 0 14px 34px rgba(3, 16, 33, 0.42);
	margin-top: 0;
}

.user-create-head h2 {
	margin: 0;
	font-size: clamp(1.35rem, 1rem + 0.9vw, 1.9rem);
	color: #ffffff;
}

.user-create-head p {
	margin: 6px 0 0;
	font-size: 0.98rem;
	color: #d5e9ff;
}

.user-create-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 16px;
	margin-top: 8px;
}

.user-create-field {
	text-align: left;
}

.user-create-field label {
	display: block;
	margin-bottom: 6px;
	font-size: 0.96rem;
	font-weight: 700;
	color: #e8f3ff;
}

.user-create-field input[type="text"],
.user-create-field input[type="password"],
.user-create-field input[type="email"] {
	width: 100%;
	box-sizing: border-box;
	border-radius: 12px;
	border: 1px solid rgba(85, 132, 182, 0.95);
	background: #f7fbff;
	color: #07203a;
	padding: 11px 12px;
	font-size: 1rem;
	min-height: 50px;
}

.user-create-timeout {
	display: flex;
	align-items: center;
	gap: 10px;
	border-radius: 12px;
	border: 1px solid rgba(95, 142, 189, 0.85);
	background: rgba(2, 18, 34, 0.45);
	padding: 12px 14px;
	color: #e8f3ff;
	font-weight: 600;
}

.user-create-timeout input[type="checkbox"] {
	width: 22px;
	height: 22px;
	accent-color: #38d07b;
}

.user-create-wrap .rights-head {
	margin-bottom: 14px;
}

.user-create-wrap .rights-head h3 {
	font-size: 1.08rem;
}

.user-create-wrap .group-list {
	gap: 10px 12px;
}

.user-create-wrap .group-item {
	padding: 10px 12px;
	border-radius: 12px;
	min-height: 48px;
	background: rgba(255, 255, 255, 0.1);
}

.user-create-wrap .preset-btn {
	min-height: 44px;
	padding: 8px 14px;
	font-size: 0.96rem;
}

.user-create-wrap .table-responsive {
	width: 100%;
	border-radius: 12px;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
}

.user-create-wrap .rights-table thead th {
	padding: 12px 10px;
}

.user-create-wrap .rights-table tbody td,
.user-create-wrap .rights-table tbody th {
	padding: 12px 10px;
}

.user-create-wrap .toggle {
	--w: 60px;
	--h: 34px;
}

.user-create-wrap .toggle .thumb {
	top: 3px;
	left: 3px;
	width: 28px;
	height: 28px;
}

.user-create-wrap .toggle input:checked ~ .thumb {
	transform: translateX(26px);
}

.user-create-wrap .master {
	--w: 26px;
	--h: 26px;
}

.user-create-wrap .sticky-save {
	margin-top: 18px;
}

.user-create-wrap .sticky-save input[type="submit"] {
	min-width: 320px;
	min-height: 58px;
	font-size: 1.15rem;
}

@media only screen and (max-width: 1120px) {
	.user-create-grid {
		grid-template-columns: 1fr 1fr;
	}

	.user-create-wrap .toggle .label {
		display: none;
	}
}

@media only screen and (max-width: 980px) {
	.user-create-wrap {
		width: min(98vw, 1420px);
	}

	.user-create-grid {
		grid-template-columns: 1fr;
	}

	.user-create-wrap .preset-group {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		width: 100%;
	}

	.user-create-wrap .sticky-save input[type="submit"] {
		min-width: 100%;
	}
}

@media only screen and (max-width: 680px) {
	.user-create-card,
	.user-create-wrap .group-card,
	.user-create-wrap .rights-card {
		padding: 14px;
	}

	.user-create-wrap .preset-group {
		grid-template-columns: 1fr;
	}

	.user-create-wrap .rights-table {
		min-width: 760px;
	}
}

@media (hover: none) and (pointer: coarse) {
	.ats-proof-field input,
	.ats-proof-field select,
	.user-create-field input[type="text"],
	.user-create-field input[type="password"],
	.user-create-field input[type="email"] {
		font-size: 1.06rem;
		min-height: 56px;
	}

	.ats-proof-btn {
		min-height: 56px;
	}

	.ats-proof-submit {
		min-height: 60px;
		font-size: 1.1rem;
	}

	.user-create-wrap .preset-btn {
		min-height: 50px;
	}

	.user-create-wrap .group-item {
		min-height: 52px;
	}

	.user-create-wrap .toggle {
		--w: 68px;
		--h: 38px;
	}

	.user-create-wrap .toggle .thumb {
		width: 32px;
		height: 32px;
	}

	.user-create-wrap .toggle input:checked ~ .thumb {
		transform: translateX(30px);
	}

	.user-create-wrap .master {
		--w: 30px;
		--h: 30px;
	}
}

/* SEITE: Benutzerverwaltung Liste */
.user-mgmt-wrap {
	width: min(1320px, 97vw);
	margin: 0 auto;
	padding-bottom: 92px;
}

.user-mgmt-wrap .admin_area {
	width: 100%;
}

.user-mgmt-wrap .admin_area .table-responsive {
	padding-bottom: 0;
}

.user-mgmt-table-card {
	background: linear-gradient(165deg, rgba(5, 24, 46, 0.86), rgba(7, 39, 73, 0.75));
	border: 1px solid rgba(255, 255, 255, 0.17);
	border-radius: 16px;
	padding: 14px;
	box-shadow: 0 14px 34px rgba(3, 16, 33, 0.42);
	box-sizing: border-box;
}

.user-mgmt-table-card .dataTables_wrapper {
	margin: 0;
}

.user-mgmt-actions {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin-top: 14px;
}

.user-mgmt-action-btn {
	min-height: 56px;
	border-radius: 14px;
	padding: 10px 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-size: 1rem;
	font-weight: 700;
	text-decoration: none;
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.2);
	box-shadow: 0 8px 20px rgba(3, 15, 30, 0.32), inset 0 1px 0 rgba(255, 255, 255, 0.18);
	transition: transform 0.16s ease, filter 0.16s ease;
}

.user-mgmt-action-btn i {
	font-size: 1.05rem;
}

.user-mgmt-action-btn:hover {
	transform: translateY(-1px);
	filter: brightness(1.06);
}

.user-mgmt-action-primary {
	background: linear-gradient(160deg, #1f78bd, #0b4f85);
}

.user-mgmt-action-secondary {
	background: linear-gradient(160deg, #2f6d9f, #0c446f);
}

@media only screen and (max-width: 900px) {
	.user-mgmt-wrap {
		width: min(98vw, 1320px);
	}

	.user-mgmt-actions {
		grid-template-columns: 1fr 1fr;
	}
}

@media only screen and (max-width: 620px) {
	.user-mgmt-table-card {
		padding: 10px;
	}

	.user-mgmt-actions {
		grid-template-columns: 1fr;
	}
}

/**********************/
/*** Fireprotection ***/
/**********************/

.FireProtectionWrapper {

	width: 100%;
	display: grid;
	padding-top: 20px;
}
.DivMainMenu {
	width: 15%;
}

.DivMainContent {
	width: 85%
}

.Brandschutzplan_Tabelle {
	width: 100% !important;
}

#TableQuery {
	width: 100% !important; 
}

.elfinder .elfinder-cwd table tbody.elfinder-cwd-fixheader, .elfinder-cwd-fixheader .elfinder-cwd {
	color: #000;
}

/***********************/
/********* Map *********/
/***********************/

.Einsatzkarte {
        height: 80%;
}

/* Alarm dialog */
body.alarm-dialog-open {
	overflow: hidden;
}

#alarmDialog {
	display: none;
	position: fixed;
	inset: 0;
	padding: clamp(12px, 2.2vw, 28px);
	background: linear-gradient(180deg, rgba(2, 8, 24, 0.66), rgba(2, 8, 24, 0.82));
	backdrop-filter: blur(2px);
	justify-content: center;
	align-items: center;
	z-index: 4300;
}

#alarmDialog .dialog_content {
	width: min(840px, 100%);
	max-height: min(86vh, 740px);
	overflow: auto;
	padding: clamp(16px, 2.3vw, 28px);
	border-radius: 18px;
	border: 1px solid rgba(125, 211, 252, 0.34);
	background-image: linear-gradient(155deg, rgba(26, 118, 185, 0.95), rgba(5, 61, 105, 0.96));
	box-shadow: 0 24px 46px rgba(2, 8, 24, 0.48), inset 0 1px 0 rgba(255, 255, 255, 0.22);
	color: #fff;
}

#alarmDialog .alarm_dialog_header {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
}

#alarmDialog .alarm_dialog_icon {
	width: clamp(36px, 3.5vw, 46px);
	height: clamp(36px, 3.5vw, 46px);
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.18);
	border: 1px solid rgba(255, 255, 255, 0.26);
	font-size: clamp(1rem, 1.2vw + 0.6rem, 1.4rem);
}

#alarmDialog .alarm_dialog_header h2 {
	margin: 0;
	font-size: clamp(1.05rem, 1.2vw + 0.75rem, 1.55rem);
	font-weight: 800;
	letter-spacing: 0.01em;
}

#alarmDialog #alarmDialogText {
	margin: 0;
	padding: clamp(12px, 1.6vw, 18px);
	border-radius: 12px;
	background: rgba(2, 35, 66, 0.42);
	border: 1px solid rgba(255, 255, 255, 0.16);
	font-size: clamp(1rem, 1.1vw + 0.7rem, 1.45rem);
	line-height: 1.35;
	font-weight: 700;
	letter-spacing: 0.01em;
	overflow-wrap: anywhere;
}

#alarmDialog .alarm_dialog_actions {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin-top: 14px;
}

#alarmDialog .alarm_dialog_btn {
	width: 100%;
	min-height: clamp(56px, 7.2vh, 72px);
	font-size: clamp(1rem, 1vw + 0.75rem, 1.4rem);
	font-weight: 800;
	letter-spacing: 0.015em;
	text-transform: uppercase;
}

#alarmDialog .alarm_dialog_btn[hidden] {
	display: none !important;
}

#alarmDialog .alarm_dialog_btn .alarm_btn_icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.45em;
	font-size: 1.05em;
}

#alarmDialog .alarm_dialog_btn--navigate {
	background-image:
		linear-gradient(165deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0) 52%),
		linear-gradient(160deg, #2f91d3, #0f5c97);
}

#alarmDialog .alarm_dialog_btn--fireprotection {
	background-image:
		linear-gradient(165deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0) 52%),
		linear-gradient(160deg, #d97706, #a74b08);
}

#alarmDialog .alarm_dialog_btn--close {
	background-image:
		linear-gradient(165deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0) 52%),
		linear-gradient(160deg, #2a6ea1, #0b4f85);
}

@media only screen and (max-width: 900px) {
	#alarmDialog {
		padding: 12px;
	}

	#alarmDialog .dialog_content {
		max-height: 88vh;
		padding: 16px;
	}

	#alarmDialog .alarm_dialog_actions {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	#alarmDialog .alarm_dialog_btn--close {
		grid-column: 1 / -1;
		width: calc(50% - 6px);
		justify-self: center;
	}
}

@media only screen and (max-width: 620px) {
	#alarmDialog {
		padding: 10px;
	}

	#alarmDialog .dialog_content {
		padding: 14px 12px 12px;
		border-radius: 14px;
	}

	#alarmDialog .alarm_dialog_header {
		gap: 10px;
		margin-bottom: 10px;
	}

	#alarmDialog #alarmDialogText {
		font-size: 1rem;
		padding: 12px;
	}

	#alarmDialog .alarm_dialog_btn {
		min-height: 54px;
		font-size: 1.03rem;
		border-radius: 10px;
	}

	#alarmDialog .alarm_dialog_actions {
		grid-template-columns: 1fr;
	}

	#alarmDialog .alarm_dialog_btn--close {
		grid-column: auto;
		width: 100%;
	}
}

@media (hover: none) and (pointer: coarse) {
	#alarmDialog .alarm_dialog_btn {
		min-height: 64px;
	}
}

/* Editing mode for module order */
.edit-toggle {
    position: fixed !important;
    right: 62px;
    top: calc(env(safe-area-inset-top, 0px) + 10px);
    width: 42px;
    height: 42px;
    border-radius: 999px;
    border: 1px solid rgba(125, 211, 252, 0.55);
    background: rgba(3, 57, 108, 0.86);
    color: #fff;
    font-size: 1.12em;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    z-index: 4200;
    box-shadow: 0 8px 18px rgba(2, 8, 24, 0.35);
    cursor: pointer;
}

.edit-toggle:focus {
    outline: none;
}

/* Overlay for enlarged damage images */
#imgOverlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.8);
    justify-content: center;
    align-items: center;
    z-index: 10000;
}

#imgOverlay img {
    max-width: 90%;
    max-height: 90%;
    cursor: zoom-in;
}

#imgOverlay.full img {
    max-width: none;
    max-height: none;
    cursor: zoom-out;
}

/* Dangerous Goods Module */
.dangerousgoods_wrapper {
	width: 100%;
	padding: 10px 12px 0;
	box-sizing: border-box;
}

.dangerousgoods_toolbar {
	display: grid;
	grid-template-columns: 1fr 160px 170px auto;
	gap: 10px;
	align-items: center;
	margin-bottom: 10px;
}

.dangerousgoods_input,
.dangerousgoods_select,
.dangerousgoods_button {
	height: 44px;
	border-radius: 6px;
	border: 1px solid #224b79;
	font-size: 1em;
	padding: 0 12px;
	box-sizing: border-box;
}

.dangerousgoods_input,
.dangerousgoods_select {
	background: #ffffff;
	color: #000;
}

.dangerousgoods_button {
	background: #B71319;
	color: #fff;
	font-weight: 700;
	text-transform: uppercase;
	cursor: pointer;
}

.dangerousgoods_button:hover {
	background: #8f0f14;
}

.dangerousgoods_meta {
	text-align: right;
	font-size: 0.95em;
	opacity: 0.9;
}

.dangerousgoods_content {
	display: grid;
	grid-template-columns: minmax(480px, 1.2fr) minmax(360px, 1fr);
	gap: 12px;
	min-height: calc(100vh - 285px);
}

.dangerousgoods_listpanel,
.dangerousgoods_detailpanel {
	background: #ffffff;
	color: #000;
	border-radius: 8px;
	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25);
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.dangerousgoods_status {
	padding: 10px 12px;
	background: #e9f2ff;
	border-bottom: 1px solid #c7ddfb;
	font-size: 0.95em;
}

.dangerousgoods_status_error {
	background: #ffe8e8;
	border-bottom-color: #f0c5c5;
	color: #7a0f0f;
}

.dangerousgoods_tablewrap {
	overflow: auto;
	max-height: calc(100vh - 360px);
}

.dangerousgoods_table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95em;
}

.dangerousgoods_table thead {
	position: sticky;
	top: 0;
	background: #03396c;
}

.dangerousgoods_table th {
	color: #fff;
	text-align: left;
	padding: 10px;
}

.dangerousgoods_table td {
	padding: 9px 10px;
	border-bottom: 1px solid #e5e5e5;
	color: #0f172a;
}

.dangerousgoods_symbolcell {
	width: 86px;
	text-align: center;
	padding: 6px 6px !important;
}

.dangerousgoods_symbolimg {
	width: 56px;
	height: 82px;
	object-fit: contain;
	display: block;
	margin: 0 auto;
}

.dangerousgoods_symbolfallback {
	width: 56px;
	height: 82px;
	margin: 0 auto;
	border: 2px solid #111;
	border-radius: 5px;
	background: #f59e0b;
	display: grid;
	grid-template-rows: 1fr 1fr;
	overflow: hidden;
	font-weight: 700;
}

.dangerousgoods_symbolfallback span {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.2em;
	color: #111;
	line-height: 1;
}

.dangerousgoods_symbolfallback span:first-child {
	border-bottom: 2px solid #111;
}

.dangerousgoods_table tbody tr {
	cursor: pointer;
	color: #0f172a;
}

.dangerousgoods_table tbody tr:nth-child(even) {
	background: #f8f8f8;
}

.dangerousgoods_table tbody tr:hover {
	background: #e3f2fd;
}

.dangerousgoods_table tbody tr.active {
	background: #cde5ff;
}

.dangerousgoods_table tbody tr.active td {
	color: #0b2a4a;
	font-weight: 600;
}

.dangerousgoods_detailpanel h2 {
	margin: 0;
	padding: 12px;
	background: #03396c;
	color: #fff;
	font-size: 1.15em;
}

.dangerousgoods_detailsummary {
	padding: 10px 12px;
	font-size: 0.95em;
	border-bottom: 1px solid #e6e6e6;
}

.dangerousgoods_detailbody {
	padding: 12px;
	overflow: auto;
	max-height: calc(100vh - 360px);
}

.dangerousgoods_ericards {
	border: 2px solid #0f766e;
	border-radius: 8px;
	background: #f0fdfa;
	margin-bottom: 12px;
	overflow: hidden;
}

.dangerousgoods_ericards h3 {
	margin: 0;
	padding: 10px 12px;
	background: #0f766e;
	color: #fff;
	font-size: 1.08em;
}

.dangerousgoods_ericards_meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	align-items: center;
	padding: 10px 12px;
	border-bottom: 1px solid #99f6e4;
	color: #0f172a;
}

.dangerousgoods_ericards_meta a {
	color: #0f766e;
	font-weight: 700;
}

.dangerousgoods_ericards_section h4 {
	margin: 0;
	padding: 9px 12px;
	background: #ccfbf1;
	border-top: 1px solid #99f6e4;
	color: #064e3b;
	font-size: 0.98em;
}

.dangerousgoods_ericards_section ul {
	margin: 0;
	padding: 8px 12px 10px 30px;
}

.dangerousgoods_ericards_section li {
	margin: 4px 0;
	color: #0f172a;
	line-height: 1.35;
}

.dangerousgoods_ericards_empty {
	border-color: #d9b44a;
	background: #fffaf0;
}

.dangerousgoods_ericards_empty h3 {
	background: #a36b00;
}

.dangerousgoods_ericards_empty p {
	margin: 0;
	padding: 11px 12px;
	color: #3d2b05;
}

.dangerousgoods_detailtable {
	width: 100%;
	border-collapse: collapse;
}

.dangerousgoods_detailtable th,
.dangerousgoods_detailtable td {
	padding: 8px 10px;
	border-bottom: 1px solid #ececec;
	text-align: left;
	vertical-align: top;
	color: #0f172a;
}

.dangerousgoods_detailtable th {
	width: 34%;
	min-width: 210px;
	background: #f4f8fd;
}

.dangerousgoods_hint {
	margin-top: 10px;
	font-size: 0.9em;
	opacity: 0.9;
}

.dangerousgoods_empty {
	margin: 0;
}

/* Fahrzeug-Rettungskarten */
.crashinfo_wrapper {
	width: 100%;
	padding: 10px 12px 18px;
	box-sizing: border-box;
}

.crashinfo_header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 12px;
}

.crashinfo_title {
	margin: 0;
	font-size: 1.9em;
	color: #ffffff;
}

.crashinfo_meta {
	font-size: 1em;
	color: #d7e7ff;
}

.crashinfo_panel {
	background: #dcdde1;
	border: 1px solid #c8cad1;
	border-radius: 14px;
	padding: 16px;
	box-sizing: border-box;
	font-size: 16px;
	line-height: 1.35;
	color: #111827;
}

.crashinfo_hidden {
	display: none;
}

.crashinfo_toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-bottom: 12px;
}

.crashinfo_toolbar_vehicle {
	margin-bottom: 14px;
}

.crashinfo_input,
.crashinfo_select,
.crashinfo_button {
	height: 40px;
	border-radius: 8px;
	border: 1px solid #b6bcc7;
	padding: 0 12px;
	font-size: 0.97em;
	box-sizing: border-box;
}

.crashinfo_input,
.crashinfo_select {
	background: #ffffff;
	color: #111827;
}

.crashinfo_input {
	width: min(360px, 100%);
}

.crashinfo_button {
	background: #111827;
	color: #ffffff;
	font-weight: 600;
	cursor: pointer;
}

.crashinfo_button:hover {
	background: #000000;
}

.crashinfo_button_back {
	background: #e5e7eb;
	color: #111827;
	border-color: #c4c9d2;
}

.crashinfo_button_back:hover {
	background: #d1d5db;
}

.crashinfo_status {
	padding: 8px 10px;
	margin-bottom: 12px;
	border-radius: 8px;
	background: #eef2f7;
	border: 1px solid #d5dbe6;
	color: #1f2937;
}

.crashinfo_status_error {
	background: #fbe5e5;
	border-color: #e9b7b7;
	color: #7f1d1d;
}

.crashinfo_makegrid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(148px, 148px));
	gap: 10px;
	justify-content: start;
}

.crashinfo_makecard {
	width: 148px;
	min-height: 146px;
	display: grid;
	grid-template-rows: 72px auto auto;
	align-content: start;
	gap: 6px;
	text-align: left;
	padding: 8px;
	border: 1px solid #cfd5df;
	border-radius: 10px;
	background: #ffffff;
	color: #111827;
	cursor: pointer;
	overflow: hidden;
}

.crashinfo_makecard:hover {
	background: #f3f4f6;
}

.crashinfo_make_logo_wrap {
	width: 100%;
	height: 72px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #f9fafb;
	border-radius: 8px;
	overflow: hidden;
}

.crashinfo_make_logo {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
	max-width: none;
	max-height: none;
}

.crashinfo_make_logo_fallback {
	font-size: 0.82em;
	color: #0f172a;
}

.crashinfo_make_name {
	font-weight: 700;
	font-size: 1em;
	line-height: 1.2;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.crashinfo_make_count {
	font-size: 0.9em;
	color: #374151;
}

.crashinfo_selected_make {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 160px;
	font-weight: 700;
	color: #111827;
}

.crashinfo_selected_logo {
	height: 30px;
	width: 92px;
	object-fit: contain;
	background: #ffffff;
	border-radius: 7px;
	padding: 3px 6px;
	border: 1px solid #d5d8de;
}

.crashinfo_vehiclegrid {
	display: grid;
	gap: 26px;
}

.crashinfo_series_section {
	display: grid;
	gap: 12px;
}

.crashinfo_series_title {
	margin: 0;
	font-size: 2rem;
	line-height: 1.1;
	color: #0f172a;
}

.crashinfo_variant_grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 14px;
}

.crashinfo_variant_card {
	background: #f2f3f5;
	border: 1px solid #e5e7eb;
	border-radius: 14px;
	padding: 16px 14px;
	display: grid;
	gap: 8px;
}

.crashinfo_variant_media {
	width: 100%;
	height: 118px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	border-radius: 10px;
	background: #ffffff;
}

.crashinfo_variant_image {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}

.crashinfo_variant_image_fallback {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #f3f4f6;
	color: #6b7280;
	font-size: 0.9em;
}

.crashinfo_variant_title {
	margin: 0;
	font-size: 1.25rem;
	font-weight: 700;
	text-align: center;
	color: #111827;
}

.crashinfo_variant_year {
	text-align: center;
	color: #4b5563;
	font-size: 1.05rem;
}

.crashinfo_docs_open {
	height: 34px;
	border: 1px solid #c8ced8;
	background: #ffffff;
	border-radius: 8px;
	font-weight: 600;
	cursor: pointer;
}

.crashinfo_docs_open:hover {
	background: #111827;
	border-color: #111827;
	color: #ffffff;
}

.crashinfo_docs_open:disabled {
	background: #9ca3af;
	border-color: #9ca3af;
	color: #f9fafb;
	cursor: default;
}

.crashinfo_doclist {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.crashinfo_docitem {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 6px 8px;
	border-radius: 8px;
	background: #ffffff;
	border: 1px solid #e5e7eb;
}

.crashinfo_doctext {
	font-size: 0.88em;
	color: #374151;
}

.crashinfo_doclink {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 64px;
	padding: 5px 8px;
	border-radius: 6px;
	background: #111827;
	color: #ffffff;
	text-decoration: none;
	font-size: 0.82em;
	font-weight: 600;
}

.crashinfo_doclink:hover {
	background: #000000;
}

.crashinfo_doclink_disabled {
	background: #4b5563;
	color: #d1d5db;
	cursor: default;
}

.crashinfo_variant_docs_empty,
.crashinfo_empty {
	color: #6b7280;
	font-size: 0.95em;
}

.crashinfo_hint {
	margin-top: 12px;
	color: #dbeafe;
	font-size: 0.9em;
}

body.crashinfo_modal_open {
	overflow: hidden;
}

.crashinfo_modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2.5vh 2.5vw;
	box-sizing: border-box;
	pointer-events: none;
}

.crashinfo_modal.crashinfo_hidden {
	display: none;
}

.crashinfo_modal_backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.38);
	z-index: 0;
	pointer-events: auto;
}

.crashinfo_modal_dialog {
	position: relative;
	width: min(95vw, 1600px);
	height: 95vh;
	background: #0f172a;
	border: 1px solid rgba(203, 213, 225, 0.35);
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 24px 60px rgba(2, 6, 23, 0.45);
	display: flex;
	flex-direction: column;
	z-index: 1;
	pointer-events: auto;
}

.crashinfo_modal_close {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 999px;
	background: rgba(17, 24, 39, 0.85);
	color: #ffffff;
	font-size: 1.6rem;
	line-height: 1;
	cursor: pointer;
	z-index: 4;
}

.crashinfo_modal_close:hover {
	background: #000000;
}

.crashinfo_modal_pdf {
	width: 100%;
	height: auto;
	flex: 1 1 auto;
	min-height: 0;
	border: 0;
	display: block;
	background: #ffffff;
	overflow: auto;
	padding: 10px;
	box-sizing: border-box;
	-webkit-overflow-scrolling: touch;
	touch-action: auto;
	pointer-events: auto;
}

.crashinfo_pdfjs_page {
	width: max-content;
	max-width: 100%;
	margin: 0 auto 12px;
	background: #ffffff;
	border-radius: 6px;
	overflow: hidden;
	box-shadow: 0 8px 18px rgba(15, 23, 42, 0.18);
}

.crashinfo_pdfjs_canvas {
	display: block;
}

.crashinfo_modal_pdf_empty {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	text-align: center;
	color: #f3f4f6;
	font-size: 1rem;
	z-index: 2;
	background: rgba(0, 0, 0, 0.45);
	pointer-events: none;
}

.crashinfo_modal_pdf_empty.crashinfo_hidden {
	display: none;
}

.crashinfo_modal_topbar {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 64px 10px 12px;
	background: rgba(15, 23, 42, 0.96);
	border-bottom: 1px solid rgba(148, 163, 184, 0.35);
	position: relative;
	z-index: 3;
}

.crashinfo_modal_pick_label {
	font-size: 0.92rem;
	font-weight: 700;
	color: #dbeafe;
	white-space: nowrap;
}

.crashinfo_modal_pick {
	height: 36px;
	min-width: 260px;
	max-width: min(72vw, 720px);
	border: 1px solid #94a3b8;
	border-radius: 8px;
	padding: 0 10px;
	background: #ffffff;
	color: #111827;
	font-size: 0.95rem;
}

@media (max-width: 1100px) {
	.crashinfo_variant_grid {
		grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	}
}

@media (max-width: 760px) {
	.crashinfo_header {
		flex-direction: column;
		align-items: flex-start;
	}

	.crashinfo_title {
		font-size: 1.5em;
	}

	.crashinfo_input {
		width: 100%;
	}

	.crashinfo_toolbar {
		flex-direction: column;
		align-items: stretch;
	}

	.crashinfo_selected_make {
		width: 100%;
	}

	.crashinfo_makegrid {
		grid-template-columns: repeat(auto-fill, minmax(136px, 136px));
		justify-content: center;
	}

	.crashinfo_variant_grid {
		grid-template-columns: 1fr;
	}

	.crashinfo_docitem {
		flex-direction: column;
		align-items: flex-start;
	}

	.crashinfo_modal {
		padding: 8px;
	}

	.crashinfo_modal_dialog {
		width: 96vw;
		height: 94vh;
		border-radius: 10px;
	}

	.crashinfo_modal_topbar {
		flex-direction: column;
		align-items: stretch;
		padding-right: 56px;
	}

	.crashinfo_modal_pick {
		min-width: 0;
		max-width: 100%;
	}
}

/* Direct-touch rescue-card controls: keep the global ELVIS background, but
   use a light, high-contrast work surface in the module itself. */
.crashinfo_wrapper {
	width: min(1480px, 100%);
	margin: 0 auto;
	padding: clamp(12px, 2vw, 26px);
}

.crashinfo_header {
	align-items: flex-end;
	margin-bottom: 16px;
}

.crashinfo_title {
	font-size: clamp(1.65rem, 3vw, 2.35rem);
	letter-spacing: -0.025em;
}

.crashinfo_subtitle {
	margin: 5px 0 0;
	color: #d7e7ff;
	font-size: 1rem;
}

.crashinfo_meta {
	padding: 8px 11px;
	border: 1px solid rgba(191, 219, 254, 0.35);
	border-radius: 999px;
	background: rgba(15, 35, 60, 0.28);
}

.crashinfo_category_switch {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin: 0 0 16px;
	padding: 6px;
	border: 1px solid rgba(191, 219, 254, 0.32);
	border-radius: 16px;
	background: rgba(8, 31, 56, 0.35);
}

.crashinfo_category_button {
	min-height: 58px;
	padding: 9px 16px;
	border: 1px solid transparent;
	border-radius: 11px;
	background: transparent;
	color: #e0f2fe;
	text-align: left;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	font: inherit;
	font-weight: 700;
}

.crashinfo_category_button small {
	font-weight: 600;
	color: #bfdbfe;
}

.crashinfo_category_button.is-active {
	background: #ffffff;
	border-color: #dbeafe;
	color: #0f3c68;
	box-shadow: 0 3px 12px rgba(2, 24, 48, 0.22);
}

.crashinfo_category_button.is-active small {
	color: #2563eb;
}

.crashinfo_panel {
	border: 0;
	border-radius: 18px;
	padding: clamp(14px, 2vw, 22px);
	background: #f8fafc;
	box-shadow: 0 14px 32px rgba(2, 24, 48, 0.18);
}

.crashinfo_toolbar {
	gap: 10px;
}

.crashinfo_input,
.crashinfo_select,
.crashinfo_button,
.crashinfo_docs_open {
	min-height: 44px;
	height: 44px;
	border-radius: 10px;
	font-size: 1rem;
}

.crashinfo_input:focus,
.crashinfo_select:focus,
.crashinfo_button:focus-visible,
.crashinfo_makecard:focus-visible,
.crashinfo_docs_open:focus-visible,
.crashinfo_category_button:focus-visible,
.crashinfo_modal_document:focus-visible,
.crashinfo_pdf_control:focus-visible,
.crashinfo_pdf_open:focus-visible {
	outline: 3px solid #60a5fa;
	outline-offset: 2px;
}

.crashinfo_status {
	padding: 10px 12px;
	border-radius: 10px;
}

.crashinfo_makegrid {
	grid-template-columns: repeat(auto-fill, minmax(165px, 1fr));
	gap: 12px;
}

.crashinfo_makecard {
	width: auto;
	min-height: 166px;
	grid-template-rows: 84px auto auto;
	padding: 10px;
	border-radius: 13px;
	transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}

.crashinfo_makecard:hover {
	transform: translateY(-2px);
	border-color: #93c5fd;
	box-shadow: 0 9px 18px rgba(15, 23, 42, .12);
}

.crashinfo_make_logo_wrap {
	height: 84px;
}

.crashinfo_variant_grid {
	grid-template-columns: repeat(auto-fill, minmax(255px, 1fr));
}

.crashinfo_variant_card {
	padding: 14px;
	border-radius: 15px;
	background: #ffffff;
	box-shadow: 0 3px 10px rgba(15, 23, 42, .06);
}

.crashinfo_docs_open {
	width: 100%;
	border-color: #1d4ed8;
	background: #2563eb;
	color: #ffffff;
}

.crashinfo_docs_open:hover {
	background: #1d4ed8;
	border-color: #1d4ed8;
}

.crashinfo_hint {
	margin: 14px 4px 0;
}

.crashinfo_modal {
	padding: max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));
}

.crashinfo_modal_dialog {
	width: min(98vw, 1700px);
	height: min(96vh, 1200px);
	border-radius: 16px;
}

.crashinfo_modal_topbar {
	align-items: center;
	flex-wrap: wrap;
	gap: 10px 14px;
	padding: 12px 66px 12px 16px;
}

.crashinfo_modal_heading {
	display: grid;
	gap: 2px;
	min-width: min(250px, 100%);
	color: #ffffff;
}

.crashinfo_modal_eyebrow {
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: #93c5fd;
}

.crashinfo_modal_documents {
	display: flex;
	flex: 1 1 360px;
	gap: 7px;
	overflow-x: auto;
	padding: 2px;
}

.crashinfo_modal_document {
	min-height: 42px;
	max-width: 300px;
	padding: 7px 11px;
	border: 1px solid #64748b;
	border-radius: 9px;
	background: #1e293b;
	color: #e2e8f0;
	font: inherit;
	font-size: .88rem;
	cursor: pointer;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.crashinfo_modal_document.is-active {
	border-color: #7dd3fc;
	background: #075985;
	color: #ffffff;
}

.crashinfo_pdf_controls {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-left: auto;
}

.crashinfo_pdf_control,
.crashinfo_pdf_open {
	min-width: 42px;
	min-height: 42px;
	padding: 6px 10px;
	border: 1px solid #64748b;
	border-radius: 9px;
	background: #1e293b;
	color: #ffffff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.crashinfo_pdf_control_fit,
.crashinfo_pdf_open {
	font-size: .84rem;
}

.crashinfo_pdf_open {
	border-color: #38bdf8;
	background: #0369a1;
}

.crashinfo_modal_pdf {
	padding: clamp(8px, 1.5vw, 18px);
	background: #e2e8f0;
	touch-action: pan-x pan-y pinch-zoom;
}

.crashinfo_pdfjs_page {
	max-width: none;
	margin-bottom: 18px;
}

@media (max-width: 760px) {
	.crashinfo_header {
		align-items: flex-start;
	}

	.crashinfo_category_switch {
		gap: 6px;
		padding: 4px;
	}

	.crashinfo_category_button {
		min-height: 64px;
		padding: 8px 10px;
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;
	}

	.crashinfo_makegrid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.crashinfo_modal_dialog {
		width: 100%;
		height: 100%;
		border-radius: 12px;
	}

	.crashinfo_modal_topbar {
		align-items: stretch;
		padding: 10px 58px 10px 10px;
	}

	.crashinfo_modal_heading,
	.crashinfo_modal_documents,
	.crashinfo_pdf_controls {
		flex-basis: 100%;
	}

	.crashinfo_pdf_controls {
		margin-left: 0;
	}
}

/* ===== Blattler ===== */
.blattler_wrapper {
	width: min(1400px, 98%);
	margin: 0 auto;
	padding: 20px 0;
	display: grid;
	gap: 14px;
}

.blattler_header {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
	padding: clamp(18px, 2.5vw, 28px);
	border: 1px solid rgba(125, 211, 252, .34);
	border-radius: 18px;
	background: linear-gradient(135deg, #02345b, #021b34);
	box-shadow: 0 14px 34px rgba(2, 6, 23, .24);
}

.blattler_header_identity {
	display: flex;
	min-width: 0;
	align-items: flex-start;
	gap: 15px;
}

.blattler_header_icon {
	display: grid;
	flex: 0 0 58px;
	width: 58px;
	height: 58px;
	place-items: center;
	border-radius: 16px;
	color: #075985;
	background: #e0f2fe;
	font-size: 1.5rem;
}

.blattler_heading {
	display: grid;
	min-width: 0;
	gap: 5px;
}

.blattler_kicker {
	margin: 0;
	color: #7dd3fc;
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.blattler_header h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(1.45rem, 2.6vw, 2.15rem);
	line-height: 1.15;
}

.blattler_subtitle {
	margin: 2px 0 0;
	color: rgba(226, 232, 240, .86);
	font-size: .96rem;
}

.blattler_meta {
	margin: 0;
	color: rgba(226, 232, 240, .68);
	font-size: .82rem;
	font-weight: 650;
}

.blattler_actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.blattler_download {
	width: auto;
	min-width: 220px;
	height: auto;
	line-height: 1.4;
	font-size: 1em;
	padding: 10px 18px;
	text-decoration: none;
}

.blattler_header .blattler_download_secondary {
	border: 1px solid rgba(255, 255, 255, .24);
	color: #fff;
	background: rgba(255, 255, 255, .12);
	box-shadow: none;
	text-transform: none;
}

.blattler_header .blattler_download_secondary:hover,
.blattler_header .blattler_download_secondary:focus-visible {
	color: #fff;
	background: rgba(255, 255, 255, .2);
	box-shadow: none;
}

.blattler_content {
	display: grid;
	grid-template-columns: minmax(230px, 285px) minmax(0, 1fr);
	align-items: start;
	gap: 14px;
}

.blattler_navigation {
	position: sticky;
	top: 14px;
	max-height: calc(78vh + 64px);
	overflow: auto;
	border: 1px solid rgba(148, 163, 184, 0.23);
	border-radius: 12px;
	background: rgba(15, 23, 42, 0.78);
	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.18);
}

.blattler_navigation_head {
	display: grid;
	gap: 3px;
	padding: 15px 16px 13px;
	border-bottom: 1px solid rgba(148, 163, 184, 0.2);
	color: #f8fafc;
}

.blattler_navigation_kicker {
	color: #7dd3fc;
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.blattler_navigation_list {
	display: grid;
	gap: 3px;
	padding: 7px;
}

.blattler_navigation_item {
	display: grid;
	grid-template-columns: 11px minmax(0, 1fr) auto;
	gap: 9px;
	align-items: center;
	width: 100%;
	padding: 10px 9px;
	border: 1px solid transparent;
	border-radius: 8px;
	background: transparent;
	color: #e2e8f0;
	font: inherit;
	font-size: .86rem;
	font-weight: 650;
	line-height: 1.2;
	text-align: left;
	cursor: pointer;
}

.blattler_navigation_item:hover,
.blattler_navigation_item:focus-visible,
.blattler_navigation_item.is-active {
	border-color: rgba(125, 211, 252, 0.48);
	background: rgba(14, 116, 144, 0.22);
	color: #fff;
	outline: none;
}

.blattler_navigation_item small {
	color: #94a3b8;
	font-size: .73rem;
	font-weight: 750;
	white-space: nowrap;
}

.blattler_navigation_swatch {
	display: block;
	width: 11px;
	height: 29px;
	border-radius: 4px;
	background: #f8fafc;
	box-shadow: inset 0 0 0 1px rgba(15, 23, 42, .58);
}

.blattler_navigation_item[data-color="gruen"] .blattler_navigation_swatch { background: #00a651; }
.blattler_navigation_item[data-color="gelb"] .blattler_navigation_swatch { background: #facc15; }
.blattler_navigation_item[data-color="rot"] .blattler_navigation_swatch { background: #ef233c; }
.blattler_navigation_item[data-color="blau"] .blattler_navigation_swatch { background: #0ea5e9; }
.blattler_navigation_item[data-color="braun"] .blattler_navigation_swatch { background: #a16207; }
.blattler_navigation_item[data-color="orange"] .blattler_navigation_swatch { background: #f97316; }
.blattler_navigation_item[data-color="violett"] .blattler_navigation_swatch { background: #a855f7; }

.blattler_document {
	display: grid;
	min-width: 0;
	gap: 10px;
}

.blattler_toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 14px;
	border-radius: 10px;
	background: rgba(15, 23, 42, 0.72);
	border: 1px solid rgba(148, 163, 184, 0.18);
}

.blattler_current_section {
	flex: 1 0 100%;
	margin: 0;
	padding-top: 2px;
	color: #7dd3fc;
	font-size: .84rem;
	font-weight: 750;
}

.blattler_toolbar_disabled {
	opacity: 0.72;
}

.blattler_toolbar_group {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.blattler_toolbar_group_page label {
	font-weight: 600;
}

.blattler_toolbar_button {
	border: 0;
	border-radius: 8px;
	padding: 9px 14px;
	font-weight: 700;
	background: #e5e7eb;
	color: #111827;
	cursor: pointer;
}

.blattler_toolbar_button:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.blattler_toolbar_button_secondary {
	background: #d1d5db;
}

.blattler_toolbar_group_page input {
	width: 90px;
	max-width: 100%;
	padding: 8px 10px;
	border-radius: 8px;
	border: 1px solid rgba(148, 163, 184, 0.45);
}

.blattler_page_label,
.blattler_zoom_info {
	font-weight: 700;
	color: #f8fafc;
}

.blattler_status {
	display: none;
	padding: 12px 14px;
	border-radius: 10px;
	background: rgba(15, 23, 42, 0.72);
	border: 1px solid rgba(148, 163, 184, 0.18);
	color: #e2e8f0;
	font-weight: 600;
}

.blattler_status.is-visible {
	display: block;
}

.blattler_status_error {
	background: rgba(127, 29, 29, 0.74);
	border-color: rgba(248, 113, 113, 0.38);
	color: #fee2e2;
}

.blattler_viewer {
	background: #fff;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 10px;
	overflow: auto;
	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.25);
	min-height: 72vh;
	max-height: 78vh;
	padding: 16px;
	box-sizing: border-box;
	-webkit-overflow-scrolling: touch;
}

.blattler_pdf_page {
	position: relative;
	width: max-content;
	max-width: 100%;
	margin: 0 auto 16px;
	background: #fff;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 10px 24px rgba(15, 23, 42, 0.18);
}

.blattler_pdf_page_number {
	position: absolute;
	right: 9px;
	bottom: 9px;
	z-index: 1;
	padding: 4px 7px;
	border-radius: 5px;
	background: rgba(15, 23, 42, .76);
	color: #fff;
	font-size: .72rem;
	font-weight: 750;
	pointer-events: none;
}

.blattler_pdf_canvas {
	display: block;
}

.blattler_viewer iframe {
	width: 100%;
	height: 75vh;
	min-height: 700px;
	border: 0;
	background: #fff;
}

.blattler_error {
	margin: 0;
	padding: 24px;
	text-align: center;
	color: #b71319;
	font-weight: 700;
}

@media only screen and (max-width: 1300px) {
	.dangerousgoods_toolbar {
		grid-template-columns: 1fr 130px 150px;
	}

	.dangerousgoods_meta {
		grid-column: 1 / -1;
		text-align: left;
	}
}

@media only screen and (max-width: 980px) {
	.dangerousgoods_content {
		grid-template-columns: 1fr;
	}

	.dangerousgoods_tablewrap,
	.dangerousgoods_detailbody {
		max-height: none;
	}

	.dangerousgoods_toolbar {
		grid-template-columns: 1fr;
	}

	.blattler_wrapper {
		width: 96%;
	}

	.blattler_header {
		padding: 17px;
	}

	.blattler_download {
		width: 100%;
		text-align: center;
	}

	.blattler_actions {
		width: 100%;
	}

	.blattler_toolbar {
		padding: 12px;
	}

	.blattler_toolbar_group {
		width: 100%;
	}

	.blattler_content {
		grid-template-columns: 1fr;
	}

	.blattler_navigation {
		position: static;
		max-height: none;
		overflow: visible;
	}

	.blattler_navigation_list {
		display: flex;
		overflow-x: auto;
		padding: 8px;
	}

	.blattler_navigation_item {
		grid-template-columns: 10px minmax(130px, 1fr) auto;
		flex: 0 0 230px;
	}

	.blattler_page_label {
		width: 100%;
	}

	.blattler_viewer {
		max-height: none;
		min-height: 60vh;
	}

	.blattler_viewer iframe {
		height: 68vh;
		min-height: 520px;
	}
}

/* ===== Rechte-Matrix ===== */
.rights-card {
  background: rgba(255,255,255,0.06);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  border-radius: 14px;
  padding: 16px;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  margin-top: 18px;
}

.group-card {
  background: rgba(255,255,255,0.04);
  border-radius: 14px;
  padding: 16px;
  margin-top: 18px;
  border: 1px solid rgba(255,255,255,0.1);
}

.group-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 18px;
}

.group-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 10px;
  background: rgba(255,255,255,0.08);
}

.group-item input {
  accent-color: #38d07b;
}

.group-hint {
  margin: 0;
  opacity: 0.8;
}

.rights-head {
  display:flex; gap:12px; align-items:center; justify-content:space-between; flex-wrap:wrap;
  margin-bottom:12px;
}
.rights-head h3 { margin:0; font-weight:700; letter-spacing:.5px }

.preset-group { display:flex; gap:8px; flex-wrap:wrap }
.preset-btn {
  border:1px solid rgba(255,255,255,.25);
  background: rgba(255,255,255,.08);
  color:#fff; padding:8px 12px; border-radius:10px; cursor:pointer; font-weight:600;
}
.preset-btn:hover { background: rgba(255,255,255,.16) }

/* Matrix Tabelle */
.rights-table {
  width:100%; border-collapse:separate; border-spacing:0 8px;
}
.rights-table thead th {
  font-size: .95em; font-weight:700; text-align:center;
  position: sticky; top:0; background: radial-gradient(ellipse at top, rgba(3,6,23,.9), rgba(3,6,23,.75));
  padding:10px 8px; z-index:5;
}
.rights-table tbody td, .rights-table tbody th {
  padding:10px 8px; vertical-align:middle;
}
.rights-row {
  background: rgba(255,255,255,.04);
  border-radius:12px;
  overflow:hidden;
}
.rights-row:hover { background: rgba(255,255,255,.08); }
.rights-table tbody tr td:first-child,
.rights-table tbody tr th:first-child { border-top-left-radius:12px; border-bottom-left-radius:12px; }
.rights-table tbody tr td:last-child { border-top-right-radius:12px; border-bottom-right-radius:12px; }

/* Toggle / Checkbox Style */
.toggle {
  --w: 54px; --h: 30px;
  position: relative;
  display: inline-block;
  width: var(--w);
  height: var(--h);
  vertical-align: middle;
  flex: 0 0 var(--w);
}
.toggle input {
  position:absolute; inset:0; z-index:3; opacity:0; cursor:pointer;
}
.toggle .track {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #b91c1c, #ef4444);
  border:1px solid rgba(248,113,113,.82);
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
  transition: background .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.toggle .track::before {
  content: "\00d7";
  position: absolute;
  top: 50%;
  right: 8px;
  color: #fff;
  font-size: 17px;
  font-weight: 900;
  line-height: 1;
  transform: translateY(-52%);
}
.toggle .thumb {
  position:absolute; top:3px; left:3px; width:24px; height:24px; border-radius:50%;
  background:#fff; box-shadow: 0 4px 12px rgba(0,0,0,.35);
  transition: transform .22s cubic-bezier(.2,.8,.2,1);
}
.toggle input:checked ~ .track {
  background: linear-gradient(135deg, #1bb954, #38d07b);
  border-color: rgba(56,208,123,.7);
}
.toggle input:checked ~ .track::before {
  content: "\2713";
  right: auto;
  left: 8px;
}
.toggle input:checked ~ .thumb {
  transform: translateX(24px);
}
.toggle input:focus-visible ~ .track {
  outline: 3px solid rgba(96,165,250,.95);
  outline-offset: 3px;
}
.toggle .label {
  position:absolute; left:calc(100% + 10px); top:50%; transform:translateY(-50%);
  font-size:.9em; opacity:.9; white-space:nowrap;
}

/* Master-Checkbox (Zeile/Spalte) */
.master {
  --w: 22px; --h: 22px;
  display:inline-grid; place-items:center; width:var(--w); height:var(--h);
  border-radius:6px; border:1px solid rgba(255,255,255,.35);
  background: rgba(255,255,255,.1);
 -webkit-user-select: none; 
  cursor:pointer; user-select:none; font-size:.9em;
}
.master input { display:none; }
.master.active { background: #38d07b; border-color:#38d07b; }
.master span { line-height:1; }

/* Kleiner Modulname links */
.mod-name { font-weight:600; letter-spacing:.3px; }

/* Sticky Save Bar */
.sticky-save {
  position: sticky; bottom: -1px; left:0; right:0; padding:10px 0; margin-top:14px;
  background: linear-gradient(180deg, rgba(3,6,23,0) 0%, rgba(3,6,23,.7) 22%, rgba(3,6,23,.95) 100%);
  display:flex; justify-content:center;
}
.sticky-save input[type=submit] {
  min-width: 260px; height:58px; font-size:1.2em; border-radius:14px;
  border:none; background:linear-gradient(135deg,#B71319,#e63a40); color:#fff; font-weight:800; text-transform:uppercase;
  box-shadow: 0 10px 30px rgba(183,19,25,.35);
}
.sticky-save input[type=submit]:hover { filter:brightness(1.08); }

/* Eigene Einstellungen */
.settings_wrapper {
	display: grid;
	grid-template-columns: 100%;
	justify-items: center;
	padding-top: 10px;
}

.settings_wrapper .main_link {
	width: min(560px, 90vw);
}

.settings_group {
	width: min(1200px, 94vw);
	margin-bottom: 16px;
}

.settings_group_header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 10px 0;
	padding: 0 2px 8px 2px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.settings_group_title {
	margin: 0;
	font-size: 1.36em;
	font-weight: 900;
	letter-spacing: 0.01em;
}

.settings_group_subtitle {
	margin: 0;
	font-size: 0.98em;
	opacity: 0.9;
	text-align: right;
}

.settings_hint {
	font-size: 1.5em;
	text-align: center;
	padding-bottom: 20px;
}

.settings_feedback {
	width: min(1200px, 100%);
	box-sizing: border-box;
	text-align: center;
	padding: 12px;
	font-size: 1.3em;
	font-weight: 700;
	border-radius: 5px;
	margin-bottom: 10px;
}

.settings_feedback_success {
	background: #2f9e4f;
}

.settings_feedback_error {
	background: #b71319;
}

.settings_subhint {
	font-size: 1.02em;
	text-align: center;
	margin-top: -6px;
	margin-bottom: 16px;
	opacity: 0.92;
}

.settings_card {
	width: min(1200px, 94vw);
	box-sizing: border-box;
	background: rgba(7, 17, 31, 0.56);
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 10px;
	padding: 16px;
	margin-bottom: 14px;
}

.settings_signature_pad {
	display: block;
	width: min(520px, 100%);
	min-height: 180px;
	box-sizing: border-box;
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 8px;
	background: #fff;
	overflow: hidden;
}

.settings_signature_pad canvas {
	max-width: 100%;
}

.settings_signature_actions {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin-top: 12px;
}

.settings_signature_btn {
	border: 0;
	cursor: pointer;
}

.settings_signature_unavailable {
	color: #ffd6d6;
}

.settings_group .settings_card {
	width: 100%;
}

.settings_card--highlight {
	border-color: rgba(34, 197, 94, 0.45);
	background: linear-gradient(180deg, rgba(7, 17, 31, 0.66), rgba(9, 29, 25, 0.64));
}

.settings_password_card {
	display: flex;
	justify-content: center;
}

.settings_password_card .main_link {
	width: min(560px, 100%);
}

.settings_section_title {
	font-size: 1.16em;
	font-weight: 800;
	margin-bottom: 8px;
}

.settings_upload_hint {
	font-size: 0.98em;
	opacity: 0.92;
	margin-bottom: 10px;
}

.settings_row {
	display: grid;
	gap: 8px;
	margin-bottom: 14px;
}

.settings_row label {
	font-weight: 700;
}

.settings_row input[type="range"] {
	width: 100%;
}

.settings_row select,
.settings_row input[type="file"],
.settings_row input[type="email"],
.settings_row input[type="number"] {
	width: 100%;
	max-width: 100%;
	padding: 10px 12px;
	border-radius: 8px;
	border: 1px solid rgba(255, 255, 255, 0.25);
	background: rgba(4, 18, 38, 0.82);
	color: #fff;
	box-sizing: border-box;
}

.settings_row_checkbox label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.settings_row_checkbox input[type="checkbox"] {
	width: 20px;
	height: 20px;
}

.settings_current_sound {
	font-size: 1.02em;
	margin-bottom: 12px;
}

.settings_submit input[type="submit"] {
	display: block;
	width: min(560px, 100%);
	margin: 0 auto;
	padding: 12px 14px;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 12px;
	background: linear-gradient(160deg, var(--elvis-accent-500), var(--elvis-accent-700));
	color: #fff;
	font-weight: 800;
	font-size: 1rem;
	cursor: pointer;
}

.settings_submit input[type="submit"]:hover {
	filter: brightness(1.06);
}

.alarm_sound_overview {
	overflow-x: auto;
}

.alarm_sound_table {
	width: 100%;
	border-collapse: collapse;
}

.alarm_sound_table th,
.alarm_sound_table td {
	padding: 9px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.15);
	text-align: left;
	vertical-align: middle;
}

.alarm_sound_table th {
	font-size: 0.92em;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	opacity: 0.9;
}

.alarm_sound_table audio {
	width: min(320px, 100%);
}

@media (max-width: 860px) {
	.settings_group {
		width: min(1200px, 96vw);
	}

	.settings_group_header {
		align-items: flex-start;
		flex-direction: column;
		gap: 4px;
	}

	.settings_group_subtitle {
		text-align: left;
	}

	.settings_card {
		width: min(1200px, 96vw);
		padding: 12px;
	}

	.settings_feedback {
		font-size: 1.08em;
	}

	.settings_hint {
		font-size: 1.2em;
	}

	.alarm_sound_table th,
	.alarm_sound_table td {
		font-size: 0.92em;
	}
}

.ats-float-widget {
	position: fixed;
	right: clamp(10px, 1.2vw, 18px);
	bottom: clamp(10px, 1.2vw, 18px);
	z-index: 4300;
	border: 1px solid rgba(255, 255, 255, 0.26);
	border-radius: 14px;
	background: linear-gradient(160deg, rgba(8, 48, 85, 0.96), rgba(5, 31, 57, 0.96));
	color: #ffffff;
	box-shadow: 0 14px 32px rgba(1, 10, 26, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.2);
	padding: 10px 12px;
	min-width: 150px;
	display: grid;
	gap: 2px;
	text-align: left;
	cursor: pointer;
	-webkit-backdrop-filter: blur(5px);
	backdrop-filter: blur(5px);
	transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
}

.ats-float-widget:hover {
	filter: brightness(1.05);
	transform: translateY(-1px);
	box-shadow: 0 18px 36px rgba(1, 10, 26, 0.52), inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

.ats-float-widget.is-attention {
	background: linear-gradient(160deg, rgba(153, 27, 27, 0.97), rgba(127, 29, 29, 0.98));
	box-shadow: 0 16px 34px rgba(87, 12, 12, 0.48), inset 0 1px 0 rgba(255, 255, 255, 0.18);
	animation: ats-float-attention-pulse 1.45s ease-in-out infinite;
}

.ats-float-widget:focus-visible {
	outline: 3px solid var(--elvis-focus, #7dd3fc);
	outline-offset: 2px;
}

.ats-float-widget.is-hidden {
	display: none;
}

.ats-float-title {
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	opacity: 0.9;
}

.ats-float-time {
	font-size: 1.2rem;
	font-weight: 900;
	letter-spacing: 0.03em;
	line-height: 1.2;
}

.ats-float-meta {
	font-size: 0.75rem;
	font-weight: 700;
	opacity: 0.85;
}

@keyframes ats-float-attention-pulse {
	0%, 100% {
		transform: translateY(0);
		filter: brightness(1);
	}
	50% {
		transform: translateY(-1px);
		filter: brightness(1.08);
	}
}

.password_form {
	grid-template-columns: 1fr;
	max-width: 1200px;
	margin: 0 auto;
}

.password_submit_row {
	padding-top: 0;
}

.password_submit_row input {
	max-width: 560px;
	margin: 0 auto;
	display: block;
}

/* ===== UI Refresh: Buttons + Tablet Layout (2026-02) ===== */
:root {
	--elvis-accent-700: #0b4f85;
	--elvis-accent-600: #0f629f;
	--elvis-accent-500: #1f78bd;
	--elvis-danger-700: #981b1f;
	--elvis-danger-600: #b71319;
	--elvis-danger-500: #cf2d35;
	--elvis-focus: #7dd3fc;
}

.main_btn,
.admin_btn,
.driverlog_btn,
.user_par_btn input,
.login_par_btn input,
.custom-file-upload,
.dangerousgoods_button,
.crashinfo_button,
.btn_back,
.btn_2nd_user,
.dgsync_btn {
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 12px;
	background: linear-gradient(160deg, var(--elvis-accent-500), var(--elvis-accent-700));
	color: #fff;
	box-shadow: 0 8px 18px rgba(3, 57, 108, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.22);
	transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
}

.main_btn,
.admin_btn,
.driverlog_btn,
.custom-file-upload,
.dangerousgoods_button,
.crashinfo_button,
.btn_back,
.btn_2nd_user,
.dgsync_btn {
	min-height: 50px;
	height: auto;
	line-height: 1.2;
	padding: 12px 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

.user_par_btn input,
.login_par_btn input {
	min-height: 58px;
	height: auto;
	line-height: 1.2;
	padding: 12px 16px;
}

.main_btn:hover,
.admin_btn:hover,
.driverlog_btn:hover,
.user_par_btn input:hover,
.login_par_btn input:hover,
.custom-file-upload:hover,
.dangerousgoods_button:hover,
.crashinfo_button:hover,
.btn_back:hover,
.btn_2nd_user:hover,
.dgsync_btn:hover {
	filter: brightness(1.07);
	transform: translateY(-1px);
	box-shadow: 0 12px 24px rgba(3, 57, 108, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.28);
}

.main_btn:active,
.admin_btn:active,
.driverlog_btn:active,
.custom-file-upload:active,
.dangerousgoods_button:active,
.crashinfo_button:active,
.btn_back:active,
.btn_2nd_user:active,
.dgsync_btn:active {
	transform: translateY(0);
}

.main_btn:focus-visible,
.admin_btn:focus-visible,
.driverlog_btn:focus-visible,
.user_par_btn input:focus-visible,
.login_par_btn input:focus-visible,
.custom-file-upload:focus-visible,
.dangerousgoods_button:focus-visible,
.crashinfo_button:focus-visible,
.btn_back:focus-visible,
.btn_2nd_user:focus-visible,
.dgsync_btn:focus-visible,
.btn-square:focus-visible,
.btn-vehicle_select:focus-visible {
	outline: 3px solid var(--elvis-focus);
	outline-offset: 2px;
}

.btn_logout,
.dgsync_btn_stop,
.damage-upload-thumb button {
	background: linear-gradient(160deg, var(--elvis-danger-500), var(--elvis-danger-700));
	border: 1px solid rgba(255, 255, 255, 0.14);
	box-shadow: 0 8px 20px rgba(110, 16, 20, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.btn_logout:hover,
.dgsync_btn_stop:hover,
.damage-upload-thumb button:hover {
	filter: brightness(1.06);
}

.logout_corner {
	position: fixed !important;
	top: calc(env(safe-area-inset-top, 0px) + 10px);
	right: 10px;
	z-index: 4200;
}

.btn_logout_corner {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0;
	width: 42px;
	min-width: 42px;
	min-height: 44px;
	height: 42px;
	padding: 0;
	line-height: 1;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.3);
	background: linear-gradient(160deg, rgba(183, 19, 25, 0.88), rgba(117, 13, 18, 0.88));
	box-shadow: 0 8px 18px rgba(100, 12, 16, 0.35);
	text-decoration: none;
}

.back_corner {
	position: fixed !important;
	top: clamp(10px, 1.2vw, 18px);
	left: clamp(10px, 1.2vw, 20px);
	z-index: 4200;
	display: flex;
	align-items: center;
	gap: 8px;
}

.btn_back_corner,
.btn_main_menu_corner {
	width: 44px;
	min-width: 44px;
	height: 44px;
	min-height: 44px;
	padding: 0;
	border-radius: 50%;
	gap: 0;
}

.corner_icon {
	width: 20px;
	height: 20px;
	display: block;
	fill: none;
	stroke: #ffffff;
	stroke-width: 2.4;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.login_main {
	background: linear-gradient(160deg, rgba(15, 98, 159, 0.94), rgba(11, 79, 133, 0.94));
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 16px;
	box-shadow: 0 18px 38px rgba(2, 8, 24, 0.4);
	width: min(760px, 92vw);
	height: auto;
}

.main_area {
	width: min(1280px, 100%);
	max-width: none;
	margin-inline: auto;
	padding-inline: clamp(10px, 1.4vw, 28px);
	box-sizing: border-box;
	grid-template-columns: repeat(auto-fit, minmax(clamp(170px, 22vw, 240px), 1fr));
	gap: clamp(12px, 1.4vw, 24px);
	justify-items: center;
	align-items: start;
}

/* Main menu should use full available width on larger screens */
#module_list.main_area {
	width: 100%;
	max-width: none;
	padding-inline: clamp(10px, 1.4vw, 28px);
	box-sizing: border-box;
	grid-template-columns: repeat(auto-fit, minmax(clamp(170px, 22vw, 240px), 1fr));
	gap: clamp(12px, 1.4vw, 24px);
}

#module_list.main_area .btn-square {
	width: 100%;
	max-width: none;
}

.module-category-dashboard {
	width: 100%;
	max-width: none;
	margin: 0 auto;
	padding: clamp(4px, 1vw, 14px) clamp(10px, 1.4vw, 28px) clamp(22px, 4vh, 44px);
	box-sizing: border-box;
}

.module-category-switcher {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(10px, 1.2vw, 16px);
	margin: 0 auto clamp(18px, 2.4vw, 30px);
}

.module-category-tab {
	position: relative;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(10px, 1.2vw, 16px);
	min-height: 82px;
	padding: clamp(13px, 1.5vw, 18px);
	border: 1px solid rgba(255, 255, 255, 0.42);
	border-radius: 18px;
	background: linear-gradient(145deg, rgba(235, 245, 252, 0.98), rgba(204, 224, 238, 0.98));
	box-shadow: 0 10px 24px rgba(2, 8, 24, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.72);
	color: #17324a;
	font: inherit;
	text-align: left;
	cursor: pointer;
	touch-action: manipulation;
	transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease, border-color 180ms ease;
}

.module-category-tab:hover {
	transform: translateY(-2px);
	box-shadow: 0 15px 30px rgba(2, 8, 24, 0.23), inset 0 1px 0 rgba(255, 255, 255, 0.78);
}

.module-category-tab:focus-visible {
	outline: 3px solid rgba(125, 211, 252, 0.95);
	outline-offset: 3px;
}

.module-category-tab.is-active {
	border: 2px solid rgba(255, 255, 255, 0.82);
	color: #ffffff;
	box-shadow: 0 0 0 3px rgba(125, 211, 252, 0.24), 0 16px 32px rgba(2, 8, 24, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.module-category-tab--einsatz.is-active {
	background: linear-gradient(145deg, #176aa8, #03396c);
}

.module-category-tab--organisation.is-active {
	background: linear-gradient(145deg, #16735f, #075446);
}

.module-category-tab-icon {
	display: inline-grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border-radius: 14px;
	background: rgba(3, 57, 108, 0.11);
	color: #07558d;
	font-size: 1.2rem;
}

.module-category-tab--organisation .module-category-tab-icon {
	background: rgba(5, 84, 70, 0.12);
	color: #08715d;
}

.module-category-tab.is-active .module-category-tab-icon {
	background: rgba(255, 255, 255, 0.16);
	color: #ffffff;
}

.module-category-tab-copy {
	display: grid;
	min-width: 0;
	gap: 3px;
}

.module-category-tab-copy strong,
.module-category-tab-copy small {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.module-category-tab-copy strong {
	font-size: clamp(1.05rem, 1.2vw + 0.72rem, 1.32rem);
	line-height: 1.1;
}

.module-category-tab-copy small {
	font-size: 0.9rem;
	line-height: 1.2;
	opacity: 0.8;
}

.module-category-tab-state {
	display: none;
}

.module-category-tab.is-active .module-category-tab-state {
	position: absolute;
	top: 50%;
	right: 58px;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	transform: translateY(-50%);
	padding: 6px 9px;
	border: 1px solid rgba(255, 255, 255, 0.48);
	border-radius: 999px;
	background: rgba(2, 8, 24, 0.22);
	color: #ffffff;
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.035em;
	line-height: 1;
	text-transform: uppercase;
	white-space: nowrap;
}

.module-category-tab.is-active .module-category-tab-copy {
	padding-right: 110px;
}

.module-category-tab-count {
	display: inline-grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: rgba(3, 57, 108, 0.12);
	color: #03396c;
	font-size: 0.94rem;
	font-weight: 800;
}

.module-category-tab--organisation .module-category-tab-count {
	background: rgba(5, 84, 70, 0.13);
	color: #075446;
}

.module-category-tab.is-active .module-category-tab-count {
	background: rgba(255, 255, 255, 0.2);
	color: #ffffff;
}

.module-category-panel[hidden] {
	display: none !important;
}

.module-category-grid.main_area {
	width: 100%;
	max-width: none;
	padding: 0;
	grid-template-columns: repeat(auto-fit, minmax(clamp(170px, 22vw, 240px), 1fr));
	gap: clamp(12px, 1.4vw, 24px);
	justify-items: stretch;
}

.module-category-grid .btn-text,
.module-category-grid .btn-square {
	width: 100%;
	max-width: none;
}

.module-category-panel--organisation .btn-square {
	background-image:
		linear-gradient(165deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0) 46%),
		linear-gradient(180deg, #16816a 0%, #075446 100%);
	box-shadow: 0 12px 26px rgba(5, 84, 70, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.module-category-panel--organisation .btn-square:hover {
	background-image:
		linear-gradient(165deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0) 50%),
		linear-gradient(180deg, #20937a 0%, #08705c 100%);
	box-shadow: 0 16px 30px rgba(5, 84, 70, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.26);
}

.module-category-tab:only-child {
	grid-column: 1 / -1;
}

@media (max-width: 620px) {
	.module-category-dashboard {
		padding-inline: 10px;
	}

	.module-category-switcher {
		grid-template-columns: minmax(0, 1fr);
		gap: 9px;
		margin-bottom: 18px;
	}

	.module-category-tab {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-rows: 38px auto;
		min-height: 80px;
		gap: 4px 9px;
		padding: 11px 10px;
		border-radius: 15px;
	}

	.module-category-tab-icon {
		grid-column: 1;
		grid-row: 1;
		justify-self: start;
		width: 38px;
		height: 38px;
		border-radius: 12px;
		font-size: 1rem;
	}

	.module-category-tab-copy small {
		display: none;
	}

	.module-category-tab-copy {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.module-category-tab.is-active .module-category-tab-copy {
		padding-right: 0;
	}

	.module-category-tab-copy strong {
		font-size: 1rem;
		overflow: visible;
		text-overflow: clip;
		white-space: nowrap;
	}

	.module-category-tab-count {
		grid-column: 2;
		grid-row: 1;
		width: 29px;
		height: 29px;
		font-size: 0.85rem;
	}

	.module-category-tab.is-active .module-category-tab-state {
		top: 12px;
		right: 46px;
		transform: none;
		padding: 5px 7px;
		font-size: 0.64rem;
	}

	.module-category-grid.main_area {
		grid-template-columns: repeat(2, minmax(132px, 1fr));
		gap: 14px;
	}
}

.btn-text {
	justify-items: center;
	align-items: start;
	gap: 10px;
	width: 100%;
	min-width: 0;
	font-size: clamp(1rem, 1.1vw + 0.7rem, 1.25rem);
	line-height: 1.25;
	overflow-wrap: anywhere;
	word-break: break-word;
	hyphens: auto;
}

.btn-square {
	width: 100%;
	max-width: 220px;
	aspect-ratio: 1 / 1;
	max-height: none;
	padding: 0;
	border-radius: 18px;
	border: 1px solid rgba(255, 255, 255, 0.25);
	background-image:
		linear-gradient(165deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0) 46%),
		linear-gradient(180deg, #0f5c97 0%, #03396c 100%);
	box-shadow: 0 12px 26px rgba(3, 57, 108, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.2);
	display: grid;
	place-items: center;
	transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
}

.btn-square:after {
	content: none;
}

.btn-square:hover {
	background-image:
		linear-gradient(165deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0) 50%),
		linear-gradient(180deg, #176aa8 0%, #044579 100%);
	transform: translateY(-2px);
	box-shadow: 0 16px 30px rgba(3, 57, 108, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.26);
}

/* Einsatzfachbereiche: gleiches Blau als Grundton, fachbezogen getönter Verlauf. */
.module-category-tile--technical,
.module-category-tile--hazmat,
.module-category-tile--brand {
	position: relative;
}

.module-group-badge {
	position: absolute;
	top: 11px;
	right: 11px;
	z-index: 2;
	padding: 5px 8px;
	border: 1px solid rgba(255, 255, 255, 0.34);
	border-radius: 999px;
	background: rgba(2, 8, 24, 0.28);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.13);
	color: rgba(255, 255, 255, 0.96);
	font-size: 0.66rem;
	font-weight: 800;
	letter-spacing: 0.055em;
	line-height: 1;
	text-transform: uppercase;
	pointer-events: none;
}

.module-category-grid.editing .module-group-badge {
	display: none;
}

.module-category-grid .module-category-tile--technical .btn-square,
.module-category-grid .module-category-tile--hazmat .btn-square,
.module-category-grid .module-category-tile--brand .btn-square {
	border-color: rgba(255, 255, 255, 0.3);
}

.module-category-grid .module-category-tile--technical .btn-square {
	background-image:
		linear-gradient(155deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0) 48%),
		linear-gradient(145deg, #3a9db1 0%, #168899 54%, #08717f 100%);
	box-shadow: 0 12px 26px rgba(4, 81, 92, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.module-category-grid .module-category-tile--hazmat .btn-square {
	background-image:
		linear-gradient(155deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0) 48%),
		linear-gradient(145deg, #778c76 0%, #61755e 54%, #4d604b 100%);
	box-shadow: 0 12px 26px rgba(49, 71, 55, 0.38), inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.module-category-grid .module-category-tile--brand .btn-square {
	background-image:
		linear-gradient(155deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0) 48%),
		linear-gradient(145deg, #c6535f 0%, #aa3544 54%, #842535 100%);
	box-shadow: 0 12px 26px rgba(103, 23, 37, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.module-category-grid .module-category-tile--technical .btn-square:hover {
	background-image: linear-gradient(155deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0) 50%), linear-gradient(145deg, #4aadc2 0%, #209aab 54%, #0c8190 100%);
}

.module-category-grid .module-category-tile--hazmat .btn-square:hover {
	background-image: linear-gradient(155deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0) 50%), linear-gradient(145deg, #879d85 0%, #70876d 54%, #5b7058 100%);
}

.module-category-grid .module-category-tile--brand .btn-square:hover {
	background-image: linear-gradient(155deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0) 50%), linear-gradient(145deg, #d4636e 0%, #ba4050 54%, #962a3c 100%);
}

.btn-square:active {
	transform: translateY(0);
}

.btn-svg img {
	width: clamp(2.5rem, 4.2vw, 3.8rem);
}

.btn-svg i {
	font-size: clamp(2.5rem, 4.2vw, 3.8rem);
}

.selectvehicle_wrapper {
	width: min(1200px, 100%);
	margin-inline: auto;
	padding: clamp(14px, 2.6vh, 30px) clamp(12px, 2vw, 24px) clamp(22px, 4vh, 42px);
	box-sizing: border-box;
}

.selectvehicle_wrapper .login_heading {
	margin-bottom: clamp(10px, 1.8vh, 18px);
}

.selectvehicle_wrapper .login_heading h1 {
	margin: 0;
	font-size: clamp(2rem, 3.2vw, 3.2rem);
	letter-spacing: 0.01em;
}

.selectvehicle_main {
	width: min(980px, 100%);
	margin-inline: auto;
	padding: clamp(16px, 2.4vw, 26px);
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 18px;
	background: linear-gradient(160deg, rgba(15, 98, 159, 0.28), rgba(11, 79, 133, 0.24));
	box-shadow: 0 18px 38px rgba(2, 8, 24, 0.32);
}

.selectvehicle_form {
	width: 100%;
}

.selectvehicle_grid {
	width: min(560px, 100%);
	margin-inline: auto;
	padding-top: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 12px;
	justify-items: stretch;
}

.btn-vehicle_select {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 64px;
	height: auto;
	padding: 12px 20px;
	border-radius: 14px;
	border: 1px solid rgba(255, 255, 255, 0.22);
	font-size: clamp(1.15rem, 2vw, 1.75rem);
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.2;
	text-align: center;
	text-transform: uppercase;
	text-shadow: none;
	background-image: linear-gradient(160deg, #1769a8, #03396c);
	box-shadow: 0 12px 28px rgba(3, 57, 108, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.2);
	cursor: pointer;
}

.btn-vehicle_select:hover {
	filter: brightness(1.06);
	transform: translateY(-1px);
}

.btn-vehicle_select + .btn-vehicle_select {
	margin-top: 0;
}

.selectvehicle_skip_hint {
	width: min(560px, 100%);
	margin: 18px auto 0;
	text-align: center;
	font-size: 0.98rem;
	line-height: 1.45;
	color: rgba(255, 255, 255, 0.88);
}

.selectvehicle_skip_actions {
	width: min(560px, 100%);
	margin: 14px auto 0;
}

.selectvehicle_skip_btn {
	background-image: linear-gradient(160deg, #475569, #1f2937);
	text-transform: none;
}

@media (min-width: 1200px) {
	.selectvehicle_grid {
		width: min(900px, 100%);
		grid-template-columns: repeat(2, minmax(240px, 1fr));
		gap: 14px;
	}
}

@media (max-width: 900px) {
	.selectvehicle_wrapper {
		padding-inline: 10px;
	}

	.selectvehicle_main {
		padding: 14px 12px;
		border-radius: 16px;
	}

	.selectvehicle_grid {
		width: min(520px, 100%);
	}

	.selectvehicle_skip_hint,
	.selectvehicle_skip_actions {
		width: min(520px, 100%);
	}
}

@media (max-width: 620px) {
	.selectvehicle_main {
		padding: 12px 10px;
		border-radius: 14px;
	}

	.selectvehicle_grid {
		width: 100%;
		gap: 10px;
	}

	.btn-vehicle_select {
		min-height: 56px;
		padding: 10px 14px;
		font-size: clamp(1rem, 5.2vw, 1.3rem);
	}

	.selectvehicle_skip_hint,
	.selectvehicle_skip_actions {
		width: 100%;
	}
}

@media (max-width: 1180px) {
	.main_area {
		grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	}

	.main_link {
		width: min(760px, 90vw);
	}
}

@media (max-width: 900px) {
	.main_area {
		width: 100%;
		gap: 14px;
	}

	.btn-square {
		max-width: none;
		border-radius: 16px;
	}

	.main_btn,
	.admin_btn,
	.driverlog_btn,
	.dgsync_btn,
	.dangerousgoods_button,
	.crashinfo_button,
	.btn_back,
	.btn_2nd_user {
		min-height: 52px;
		font-size: 1.05rem;
	}

	.login_par input,
	.user_par input,
	.driverlog_area input {
		font-size: 1.4rem;
		line-height: 1.5;
	}

	.login_par_btn input,
	.user_par_btn input,
	.custom-file-upload {
		font-size: 1.2rem;
	}
}

@media (max-width: 620px) {
	.main_area {
		grid-template-columns: repeat(2, minmax(132px, 1fr));
	}

	.btn-text {
		font-size: 1rem;
	}

	.btn-square {
		border-radius: 14px;
	}

	.main_btn,
	.admin_btn,
	.driverlog_btn,
	.dgsync_btn,
	.dangerousgoods_button,
	.crashinfo_button,
	.btn_back,
	.btn_2nd_user {
		min-height: 48px;
		padding: 10px 12px;
		border-radius: 10px;
	}

	.login_main {
		padding: 22px 18px;
	}

	.login_par input,
	.user_par input,
	.driverlog_area input {
		font-size: 1.15rem;
	}

	.login_par_btn input,
	.user_par_btn input {
		min-height: 52px;
	}

	.btn_logout_corner {
		min-width: 42px;
		width: 42px;
		min-height: 42px;
		height: 42px;
		border-radius: 50%;
		padding: 0;
		gap: 0;
	}

	.btn_logout_corner span {
		display: none;
	}

	.back_corner {
		top: 10px;
		left: 10px;
	}

	.edit-toggle {
		top: 10px;
		right: 58px;
	}
}

/* ===== DataTable Lists: touch + tablet + smartphone ===== */
.dataTables_wrapper {
	width: 100%;
	max-width: 100%;
}

.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
	min-height: 38px;
	border-radius: 10px;
	border: 1px solid #cbd5e1;
	padding: 6px 10px;
}

.dataTables_wrapper .dataTables_paginate .paginate_button {
	border-radius: 10px;
}

@media (max-width: 1100px) {
	.dataTables_wrapper .dataTables_length,
	.dataTables_wrapper .dataTables_filter,
	.dataTables_wrapper .dataTables_info,
	.dataTables_wrapper .dataTables_paginate {
		float: none;
		width: 100%;
		text-align: left;
		margin: 8px 0;
	}

	.dataTables_wrapper .dataTables_filter input {
		width: min(100%, 320px);
		box-sizing: border-box;
	}

	.dataTables_wrapper .dataTables_paginate {
		display: flex;
		flex-wrap: wrap;
		gap: 6px;
		align-items: center;
	}

	.dataTables_wrapper .dataTables_paginate .paginate_button {
		margin-left: 0 !important;
		min-height: 40px;
		padding: 8px 12px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}
}

@media (max-width: 1024px) {
	table.elvis-mobile-table thead,
	table.elvis-mobile-table tfoot {
		display: none;
	}

	table.elvis-mobile-table,
	table.elvis-mobile-table tbody,
	table.elvis-mobile-table tr,
	table.elvis-mobile-table td {
		display: block;
		width: 100% !important;
		box-sizing: border-box;
	}

	table.elvis-mobile-table {
		border: 0 !important;
		background: transparent !important;
	}

	table.elvis-mobile-table tbody tr {
		margin: 0 0 12px 0;
		padding: 6px 8px;
		background: #ffffff !important;
		border: 1px solid #dbe5f2;
		border-radius: 14px;
		box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08);
	}

	table.elvis-mobile-table tbody td {
		position: relative;
		padding: 10px 10px 10px calc(44% + 10px) !important;
		min-height: 44px;
		border: 0 !important;
		border-bottom: 1px solid #e6edf7 !important;
		text-align: left !important;
		white-space: normal !important;
		overflow-wrap: anywhere;
		color: #0f172a !important;
		background: transparent !important;
	}

	table.elvis-mobile-table tbody td:last-child {
		border-bottom: 0 !important;
	}

	table.elvis-mobile-table tbody td::before {
		content: attr(data-label);
		position: absolute;
		top: 10px;
		left: 10px;
		width: 40%;
		font-size: 0.78rem;
		font-weight: 700;
		line-height: 1.2;
		letter-spacing: 0.02em;
		text-transform: uppercase;
		color: #475569;
	}

	table.elvis-mobile-table tbody td:empty::after {
		content: "-";
		color: #94a3b8;
	}

	table.elvis-mobile-table tbody td .btn_back,
	table.elvis-mobile-table tbody td .admin_btn,
	table.elvis-mobile-table tbody td .main_btn {
		width: 100%;
		max-width: 100%;
		min-height: 42px;
	}

	table.elvis-mobile-table tbody td .back_btn {
		padding: 0;
	}

	table.elvis-mobile-table .damage-gallery {
		gap: 8px;
	}

table.elvis-mobile-table .damage-image {
		width: 84px;
		height: 84px;
		object-fit: cover;
	}
}

/* ===== Shared modern data lists ===== */
.elvis-data-list-wrapper {
	--elvis-list-accent: #b91c1c;
	--elvis-list-accent-soft: #fee2e2;
	--elvis-list-ink: #172033;
	--elvis-list-muted: #64748b;
	--elvis-list-line: #dce3ec;
	width: 100% !important;
	max-width: 100%;
	box-sizing: border-box;
	padding: 0 !important;
	border: 1px solid var(--elvis-list-line);
	border-radius: 16px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.09);
	color: var(--elvis-list-ink) !important;
	overflow: hidden;
}

.elvis-data-list-wrapper .dataTables_length,
.elvis-data-list-wrapper .dataTables_filter {
	box-sizing: border-box;
	margin: 0;
	padding: 15px 16px;
	color: #475569;
	font-size: 0.86rem;
	font-weight: 700;
}

.elvis-data-list-wrapper .dataTables_length select,
.elvis-data-list-wrapper .dataTables_filter input {
	height: 40px;
	box-sizing: border-box;
	border: 1px solid #cbd5e1;
	border-radius: 10px;
	background: #f8fafc;
	color: var(--elvis-list-ink);
	font: inherit;
}

.elvis-data-list-wrapper .dataTables_length select {
	min-width: 72px;
	margin: 0 5px;
	padding: 0 9px;
}

.elvis-data-list-wrapper .dataTables_filter input {
	width: min(32vw, 360px);
	margin-left: 8px;
	padding: 0 12px;
}

.elvis-data-list-wrapper .dataTables_length select:focus,
.elvis-data-list-wrapper .dataTables_filter input:focus {
	border-color: #dc6666;
	outline: 3px solid rgba(220, 38, 38, 0.11);
}

table.elvis-data-list {
	width: 100% !important;
	margin: 0 !important;
	border-collapse: separate !important;
	border-spacing: 0 !important;
	border-top: 1px solid var(--elvis-list-line);
	border-bottom: 0 !important;
	background: #ffffff;
}

table.elvis-data-list thead th,
table.elvis-data-list thead td {
	padding: 12px 13px;
	border-bottom: 1px solid #cbd5e1;
	background: #f8fafc;
	color: #475569 !important;
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.045em;
	text-align: left;
	text-transform: uppercase;
	vertical-align: middle;
	white-space: nowrap;
}

.admin_area table.elvis-data-list thead th,
.admin_area table.elvis-data-list thead td {
	color: #475569 !important;
}

table.elvis-data-list tbody td {
	padding: 13px;
	border-top: 0;
	border-bottom: 1px solid #e8edf3;
	background: #ffffff !important;
	color: var(--elvis-list-ink) !important;
	line-height: 1.4;
	vertical-align: middle;
}

table.elvis-data-list tbody tr:last-child td {
	border-bottom: 0;
}

table.elvis-data-list.display tbody tr:hover > td,
table.elvis-data-list.display tbody tr:hover > .sorting_1,
table.elvis-data-list.display tbody tr:hover > .sorting_2,
table.elvis-data-list.display tbody tr:hover > .sorting_3 {
	box-shadow: none;
	background: #f8fafc !important;
}

table.elvis-data-list tbody td.elvis-data-primary-cell {
	font-weight: 750;
}

table.elvis-data-list tbody tr.overdue td {
	background: #fff7ed !important;
	color: #b91c1c !important;
}

table.elvis-data-list tbody tr.overdue td.elvis-data-primary-cell {
	border-left-color: #ea580c !important;
}

table.elvis-data-list tbody td.elvis-data-actions-cell {
	min-width: 120px;
	white-space: normal;
}

table.elvis-data-list tbody td.elvis-data-actions-cell a,
table.elvis-data-list tbody td.elvis-data-actions-cell button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 34px;
	box-sizing: border-box;
	margin: 2px;
	padding: 6px 10px;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	background: #f8fafc;
	color: #334155;
	font: inherit;
	font-size: 0.78rem;
	font-weight: 750;
	line-height: 1.15;
	text-decoration: none;
	cursor: pointer;
}

table.elvis-data-list tbody td.elvis-data-actions-cell a:hover,
table.elvis-data-list tbody td.elvis-data-actions-cell button:hover {
	border-color: #94a3b8;
	background: #e2e8f0;
}

table.elvis-data-list tbody td.elvis-data-actions-cell a[href*="delete"],
table.elvis-data-list tbody td.elvis-data-actions-cell a[data-elvis-confirm-tone="danger"],
table.elvis-data-list tbody td.elvis-data-actions-cell button[data-elvis-confirm-tone="danger"] {
	border-color: #fecaca;
	background: #fff5f5;
	color: #b91c1c;
}

.elvis-data-list-wrapper .dataTables_info,
.elvis-data-list-wrapper .dataTables_paginate {
	box-sizing: border-box;
	margin: 0;
	padding: 14px 16px;
	color: var(--elvis-list-muted) !important;
	font-size: 0.82rem;
}

.elvis-data-list-wrapper .dataTables_paginate .paginate_button {
	min-height: 34px;
	box-sizing: border-box;
	margin-left: 4px;
	padding: 7px 11px;
	border-radius: 8px;
}

.elvis-data-list-wrapper .dataTables_paginate .paginate_button.current,
.elvis-data-list-wrapper .dataTables_paginate .paginate_button.current:hover {
	border-color: #fecaca;
	background: var(--elvis-list-accent-soft);
	color: #991b1b !important;
}

.elvis-data-list-wrapper .dataTables_paginate .paginate_button:hover {
	border-color: #cbd5e1;
	background: #e2e8f0;
	color: #0f172a !important;
}

@media (max-width: 1100px) {
	.elvis-data-list-wrapper {
		border: 0;
		border-radius: 14px;
		background: #f5f7fa;
		box-shadow: none;
		overflow: visible;
	}

	.elvis-data-list-wrapper .dataTables_length,
	.elvis-data-list-wrapper .dataTables_filter {
		width: 100%;
		margin: 0;
		padding: 12px;
		background: #ffffff;
		text-align: left;
	}

	.elvis-data-list-wrapper .dataTables_length {
		border-bottom: 1px solid #eef2f7;
		border-radius: 14px 14px 0 0;
	}

	.elvis-data-list-wrapper .dataTables_filter input {
		width: min(100%, 420px);
	}

	table.elvis-data-list thead,
	table.elvis-data-list tfoot {
		display: none;
	}

	table.elvis-data-list,
	table.elvis-data-list tbody,
	table.elvis-data-list tr,
	table.elvis-data-list td {
		display: block;
		width: 100% !important;
		box-sizing: border-box !important;
	}

	table.elvis-data-list {
		padding: 12px;
		border: 0 !important;
		background: #f5f7fa !important;
	}

	table.elvis-data-list tbody {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	table.elvis-data-list tbody tr {
		margin: 0;
		padding: 0;
		overflow: hidden;
		border: 1px solid var(--elvis-list-line);
		border-radius: 13px;
		background: #ffffff !important;
		box-shadow: 0 5px 14px rgba(15, 23, 42, 0.06);
	}

	table.elvis-data-list tbody td {
		min-width: 0 !important;
		min-height: 44px;
		padding: 11px 11px 11px calc(40% + 12px) !important;
		border: 0 !important;
		border-bottom: 1px solid #e8edf3 !important;
		background: #ffffff !important;
		white-space: normal !important;
		overflow-wrap: anywhere;
	}

	table.elvis-data-list tbody td:last-child {
		border-bottom: 0 !important;
	}

	table.elvis-data-list tbody td::before {
		top: 12px;
		left: 11px;
		width: 35%;
		color: #64748b;
		font-size: 0.7rem;
		font-weight: 800;
		letter-spacing: 0.035em;
	}

	table.elvis-data-list tbody td.elvis-data-primary-cell {
		border-left: 4px solid var(--elvis-list-accent) !important;
		background: #fffafa !important;
	}

	table.elvis-data-list tbody td.elvis-data-actions-cell a,
	table.elvis-data-list tbody td.elvis-data-actions-cell button {
		min-height: 38px;
	}

	table.elvis-data-list tbody td.dataTables_empty {
		padding: 30px 14px !important;
		text-align: center !important;
	}

	table.elvis-data-list tbody td.dataTables_empty::before {
		display: none;
	}

	.elvis-data-list-wrapper .dataTables_info,
	.elvis-data-list-wrapper .dataTables_paginate {
		float: none;
		width: 100%;
		margin: 0;
		padding: 12px;
		background: #ffffff;
		text-align: left;
	}
}

@media (max-width: 760px) {
	table.elvis-data-list tbody {
		grid-template-columns: minmax(0, 1fr);
	}

	.elvis-data-list-wrapper .dataTables_filter label {
		display: grid;
		gap: 6px;
	}

	.elvis-data-list-wrapper .dataTables_filter input {
		width: 100%;
		margin-left: 0;
	}
}

@media (max-width: 480px) {
	table.elvis-data-list {
		padding: 8px;
	}

	table.elvis-data-list tbody td {
		padding: 31px 10px 10px !important;
	}

	table.elvis-data-list tbody td::before {
		top: 9px;
		left: 10px;
		width: calc(100% - 20px);
	}

	table.elvis-data-list tbody td.elvis-data-actions-cell a,
	table.elvis-data-list tbody td.elvis-data-actions-cell button {
		width: 100%;
		margin: 3px 0;
	}

	.elvis-data-list-wrapper .dataTables_paginate {
		justify-content: center;
		text-align: center;
	}
}

/* ===== Offline Sync Badge ===== */
.elvis-sync-badge {
	border: 0;
	border-radius: 999px;
	padding: 10px 16px;
	font-size: 0.92rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	background: #0f766e;
	color: #fff;
	cursor: pointer;
}

.elvis-sync-badge--floating {
	position: fixed;
	right: 16px;
	bottom: calc(16px + env(safe-area-inset-bottom));
	z-index: 3900;
	box-shadow: 0 12px 28px rgba(15, 23, 42, 0.24);
}

.elvis-sync-badge[data-tone='ok'] {
	background: #0f766e;
}

.elvis-sync-badge[data-tone='info'] {
	background: #1d4ed8;
}

.elvis-sync-badge[data-tone='warn'] {
	background: #b45309;
}

.elvis-sync-badge[data-tone='busy'] {
	background: #475569;
	animation: elvis-sync-badge-pulse 1.8s ease-in-out infinite;
}

@keyframes elvis-sync-badge-pulse {
	0%,
	100% {
		box-shadow: 0 12px 28px rgba(15, 23, 42, 0.24);
	}
	50% {
		box-shadow: 0 16px 34px rgba(15, 23, 42, 0.34);
	}
}

@media (max-width: 700px) {
	.elvis-sync-badge--floating {
		left: 12px;
		right: 12px;
		bottom: calc(12px + env(safe-area-inset-bottom));
		text-align: center;
	}
}

/* ========================================================================== */
/* ELVIS unified interface (2026)                                             */
/* Shared visual language for legacy modules and the current report screens.  */
/* ========================================================================== */

:root {
	--elvis-bg-950: #050d18;
	--elvis-bg-900: #08182b;
	--elvis-bg-800: #0d2946;
	--elvis-surface: #ffffff;
	--elvis-surface-soft: #f6f8fb;
	--elvis-surface-muted: #eef2f7;
	--elvis-ink: #172033;
	--elvis-ink-soft: #475569;
	--elvis-line: #dce3ec;
	--elvis-brand: #b91c1c;
	--elvis-brand-strong: #991b1b;
	--elvis-blue: #176aa8;
	--elvis-blue-strong: #0b4f85;
	--elvis-success: #0f766e;
	--elvis-warning: #b45309;
	--elvis-radius-sm: 10px;
	--elvis-radius: 14px;
	--elvis-radius-lg: 20px;
	--elvis-shadow-sm: 0 7px 20px rgba(5, 13, 24, 0.12);
	--elvis-shadow: 0 18px 44px rgba(2, 8, 24, 0.22);
	--elvis-content-width: 1680px;
	--elvis-touch-target: 46px;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	min-width: 320px;
	background: var(--elvis-bg-950);
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body.elvis-modern-ui {
	min-width: 320px;
	min-height: 100dvh;
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: #f8fafc;
	background:
		radial-gradient(circle at 8% 4%, rgba(31, 120, 189, 0.25), transparent 32rem),
		radial-gradient(circle at 92% 92%, rgba(185, 28, 28, 0.14), transparent 35rem),
		linear-gradient(145deg, var(--elvis-bg-950) 0%, var(--elvis-bg-900) 48%, var(--elvis-bg-800) 100%);
	background-attachment: fixed;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

/* The training state must remain unmistakable after the modern body theme. */
body.elvis-modern-ui.elvis-training-mode {
	background:
		radial-gradient(circle at 8% 4%, rgba(248, 113, 113, 0.3), transparent 30rem),
		radial-gradient(circle at 92% 92%, rgba(153, 27, 27, 0.46), transparent 36rem),
		linear-gradient(145deg, #450a0a 0%, #7f1d1d 48%, #2a0505 100%);
	background-attachment: fixed;
}

body.elvis-modern-ui::before {
	background-position: center 56%;
	background-size: min(66vw, 960px) auto;
	opacity: var(--elvis-bg-logo-opacity, 0);
	filter: blur(var(--elvis-bg-logo-blur, 12px)) saturate(0.62) brightness(0.82);
	transform: scale(1.035);
}

body.elvis-modern-ui button,
body.elvis-modern-ui input,
body.elvis-modern-ui select,
body.elvis-modern-ui textarea {
	font: inherit;
}

body.elvis-modern-ui a,
body.elvis-modern-ui button,
body.elvis-modern-ui input,
body.elvis-modern-ui select,
body.elvis-modern-ui textarea,
body.elvis-modern-ui summary {
	-webkit-tap-highlight-color: transparent;
}

body.elvis-modern-ui :focus-visible {
	outline: 3px solid var(--elvis-focus, #7dd3fc);
	outline-offset: 2px;
}

.elvis-app-shell label {
	font-size: inherit;
}

.elvis-app-shell {
	position: relative;
	z-index: 1;
	width: 100%;
	min-height: 100dvh;
	padding: max(10px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) max(76px, env(safe-area-inset-bottom));
}

.elvis-app-header {
	/* Matches the two horizontal grid insets of #module_list.main_area. */
	width: calc(100% - clamp(20px, 2.8vw, 56px));
	max-width: none;
	min-height: 94px;
	margin: 0 auto clamp(18px, 2.2vw, 30px);
	padding: 16px 18px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 22px;
	text-align: left;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: var(--elvis-radius-lg);
	background: linear-gradient(150deg, rgba(15, 41, 70, 0.88), rgba(5, 20, 37, 0.78));
	box-shadow: 0 16px 40px rgba(2, 8, 24, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.1);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
}

.bma_alarm_overview_button {
	position: relative;
	width: 60px;
	height: 60px;
	flex: 0 0 60px;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1px;
	border: 1px solid rgba(255, 237, 213, 0.78);
	border-radius: 50%;
	background: radial-gradient(circle at 32% 24%, #fed7aa, #f97316 45%, #c2410c 100%);
	box-shadow: 0 0 0 4px rgba(249, 115, 22, 0.12), 0 0 20px rgba(249, 115, 22, 0.72), inset 0 1px 4px rgba(255, 255, 255, 0.58);
	color: #fff;
	font-size: 0.7rem;
	font-weight: 900;
	letter-spacing: 0.04em;
	line-height: 1;
	text-shadow: 0 1px 2px rgba(67, 20, 7, 0.55);
	cursor: pointer;
	animation: bma-alarm-glow 1.5s ease-in-out infinite;
}

.bma_alarm_overview_button[hidden] {
	display: none !important;
}

.ek_header_tasks_button{position:relative;box-sizing:border-box;width:60px;min-width:60px;max-width:60px;height:60px;min-height:60px;max-height:60px;aspect-ratio:1/1;flex:0 0 60px;padding:5px 3px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px solid rgba(254,205,211,.82);border-radius:50%;background:radial-gradient(circle at 32% 24%,#fda4af,#e11d48 45%,#9f1239 100%);box-shadow:0 0 0 4px rgba(225,29,72,.12),0 0 20px rgba(225,29,72,.68),inset 0 1px 4px rgba(255,255,255,.58);color:#fff;font-size:.56rem;font-weight:900;letter-spacing:0;line-height:1;text-shadow:0 1px 2px rgba(76,5,25,.55);cursor:pointer;animation:ek-header-tasks-glow 1.5s ease-in-out infinite}
.ek_header_tasks_button[hidden]{display:none!important}.ek_header_tasks_button>i{font-size:1rem}.ek_header_tasks_button>span:not(.ek_header_tasks_count){max-width:100%;white-space:nowrap}.ek_header_tasks_button:hover{transform:translateY(-1px) scale(1.04);filter:brightness(1.08)}
.ek_header_tasks_count{position:absolute;top:-5px;right:-6px;min-width:21px;height:21px;padding:0 5px;display:grid;place-items:center;border:2px solid #0b2038;border-radius:999px;background:#fff;color:#be123c;font-size:.68rem;font-weight:900;text-shadow:none}
@keyframes ek-header-tasks-glow{0%,100%{box-shadow:0 0 0 4px rgba(225,29,72,.14),0 0 16px rgba(225,29,72,.62),inset 0 1px 4px rgba(255,255,255,.58)}50%{box-shadow:0 0 0 8px rgba(244,63,94,.08),0 0 31px rgba(244,63,94,.9),inset 0 1px 5px rgba(255,255,255,.68)}}
body.ek-header-tasks-open{overflow:hidden}.ek_header_tasks_dialog{position:fixed;inset:0;z-index:4400;padding:clamp(12px,3vw,36px);display:grid;place-items:center;background:rgba(2,8,24,.76);backdrop-filter:blur(7px)}.ek_header_tasks_dialog[hidden]{display:none}
.ek_header_tasks_panel{width:min(720px,100%);max-height:min(82vh,720px);overflow:auto;padding:clamp(18px,3vw,30px);border:1px solid rgba(253,164,175,.48);border-radius:22px;background:linear-gradient(145deg,#4c1024,#210813 72%);box-shadow:0 28px 70px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,255,255,.12);color:#f8fafc}.ek_header_tasks_header,.ek_header_tasks_heading,.ek_header_tasks_item{display:flex;align-items:center}.ek_header_tasks_header{justify-content:space-between;gap:16px}.ek_header_tasks_heading{gap:12px}.ek_header_tasks_heading_icon{width:46px;height:46px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(145deg,#f43f5e,#9f1239);box-shadow:0 8px 18px rgba(159,18,57,.32)}.ek_header_tasks_heading p,.ek_header_tasks_heading h2,.ek_header_tasks_intro{margin:0}.ek_header_tasks_heading p{color:#fda4af;font-size:.73rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.ek_header_tasks_heading h2{font-size:clamp(1.25rem,2vw,1.65rem)}
.ek_header_tasks_close{width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:rgba(255,255,255,.09);color:#fff;cursor:pointer}.ek_header_tasks_close:hover,.ek_header_tasks_close:focus-visible{background:rgba(255,255,255,.18)}.ek_header_tasks_intro{margin-top:18px;color:#cbd5e1;line-height:1.5}.ek_header_tasks_list{margin-top:18px;display:grid;gap:10px}.ek_header_tasks_item{justify-content:space-between;gap:16px;padding:14px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(255,255,255,.07)}.ek_header_tasks_item_details{min-width:0;display:grid;gap:3px}.ek_header_tasks_item_details strong{color:#fecdd3;font-size:1rem}.ek_header_tasks_item_details span{font-weight:700;overflow-wrap:anywhere}.ek_header_tasks_item_details small{color:#fda4af;font-size:.82rem}.ek_header_tasks_open{min-height:42px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(254,205,211,.45);border-radius:11px;background:linear-gradient(145deg,#e11d48,#9f1239);color:#fff;font-weight:800;cursor:pointer}.ek_header_tasks_open:hover{filter:brightness(1.1)}.ek_header_tasks_empty{margin:0;padding:24px 16px;border:1px dashed rgba(255,255,255,.2);border-radius:14px;color:#cbd5e1;text-align:center}.ek_header_tasks_empty.is-error{border-color:rgba(252,165,165,.48);color:#fecaca}

@media (max-width: 620px){.ek_header_tasks_button{width:42px;min-width:42px;max-width:42px;height:42px;min-height:42px;max-height:42px;flex:0 0 42px;padding:0;font-size:0}.ek_header_tasks_button>i{font-size:.95rem}.ek_header_tasks_button>span:not(.ek_header_tasks_count){display:none}.ek_header_tasks_panel{padding:16px 14px;border-radius:17px}.ek_header_tasks_item{align-items:stretch;flex-direction:column;gap:12px}.ek_header_tasks_open{width:100%}}
@media (prefers-reduced-motion: reduce){.ek_header_tasks_button{animation:none}}

.ek_feedback_button{position:relative;box-sizing:border-box;width:60px;min-width:60px;max-width:60px;height:60px;min-height:60px;max-height:60px;aspect-ratio:1/1;flex:0 0 60px;padding:5px 3px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px solid rgba(254,243,199,.86);border-radius:50%;background:radial-gradient(circle at 32% 24%,#fde68a,#d97706 48%,#92400e 100%);box-shadow:0 0 0 4px rgba(217,119,6,.12),0 0 20px rgba(217,119,6,.65),inset 0 1px 4px rgba(255,255,255,.58);color:#fff;font-size:.59rem;font-weight:900;letter-spacing:0;line-height:1;text-shadow:0 1px 2px rgba(69,26,3,.55);cursor:pointer;animation:ek-feedback-glow 1.5s ease-in-out infinite}.ek_feedback_button[hidden]{display:none!important}.ek_feedback_button>i{font-size:1rem}.ek_feedback_button:hover{transform:translateY(-1px) scale(1.04);filter:brightness(1.08)}.ek_feedback_count{position:absolute;top:-5px;right:-6px;min-width:21px;height:21px;padding:0 5px;display:grid;place-items:center;border:2px solid #0b2038;border-radius:999px;background:#fff;color:#b45309;font-size:.68rem;font-weight:900;text-shadow:none}@keyframes ek-feedback-glow{0%,100%{box-shadow:0 0 0 4px rgba(217,119,6,.12),0 0 16px rgba(217,119,6,.58),inset 0 1px 4px rgba(255,255,255,.58)}50%{box-shadow:0 0 0 8px rgba(245,158,11,.1),0 0 31px rgba(217,119,6,.85),inset 0 1px 5px rgba(255,255,255,.68)}}
body.ek-feedback-open{overflow:hidden}.ek_feedback_dialog{position:fixed;inset:0;z-index:4400;padding:clamp(12px,3vw,36px);display:grid;place-items:center;background:rgba(2,8,24,.76);backdrop-filter:blur(7px)}.ek_feedback_dialog[hidden]{display:none}.ek_feedback_panel{width:min(720px,100%);max-height:min(82vh,720px);overflow:auto;padding:clamp(18px,3vw,30px);border:1px solid rgba(253,230,138,.5);border-radius:22px;background:linear-gradient(145deg,#4a2b08,#211303 72%);box-shadow:0 28px 70px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,255,255,.12);color:#f8fafc}.ek_feedback_header,.ek_feedback_heading{display:flex;align-items:center}.ek_feedback_header{justify-content:space-between;gap:16px}.ek_feedback_heading{gap:12px}.ek_feedback_heading_icon{width:46px;height:46px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(145deg,#f59e0b,#b45309);box-shadow:0 8px 18px rgba(146,64,14,.32)}.ek_feedback_heading p,.ek_feedback_heading h2,.ek_feedback_intro{margin:0}.ek_feedback_heading p{color:#fde68a;font-size:.73rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.ek_feedback_heading h2{font-size:clamp(1.25rem,2vw,1.65rem)}.ek_feedback_close{width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:rgba(255,255,255,.09);color:#fff;cursor:pointer}.ek_feedback_close:hover,.ek_feedback_close:focus-visible{background:rgba(255,255,255,.18)}.ek_feedback_intro{margin-top:18px;color:#e2e8f0;line-height:1.5}.ek_feedback_list{display:grid;gap:10px;margin-top:18px}.ek_feedback_item{padding:14px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(255,255,255,.07)}.ek_feedback_item_details{display:grid;gap:4px}.ek_feedback_item strong{color:#fde68a;font-size:1rem}.ek_feedback_item span{font-weight:700;overflow-wrap:anywhere}.ek_feedback_item p{margin:4px 0 0;white-space:pre-wrap;line-height:1.45}.ek_feedback_item time{color:#cbd5e1;font-size:.82rem}.ek_feedback_empty{margin:0;padding:24px 16px;border:1px dashed rgba(255,255,255,.2);border-radius:14px;color:#cbd5e1;text-align:center}.ek_feedback_empty.is-error{border-color:rgba(252,165,165,.48);color:#fecaca}.ek_feedback_open{width:100%;min-height:44px;margin-top:16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(254,243,199,.45);border-radius:11px;background:linear-gradient(145deg,#d97706,#92400e);color:#fff;font-weight:800;text-decoration:none}.ek_feedback_open:hover{filter:brightness(1.1)}
@media(max-width:620px){.ek_feedback_button{width:42px;min-width:42px;max-width:42px;height:42px;min-height:42px;max-height:42px;flex:0 0 42px;padding:0;font-size:0}.ek_feedback_button>i{font-size:.95rem}.ek_feedback_button>span:not(.ek_feedback_count){display:none}.ek_feedback_panel{padding:16px 14px;border-radius:17px}}@media(prefers-reduced-motion:reduce){.ek_feedback_button{animation:none}}

.bma_alarm_overview_button > i {
	font-size: 1rem;
}

.bma_alarm_overview_button:hover {
	transform: translateY(-1px) scale(1.04);
	filter: brightness(1.08);
}

.bma_alarm_overview_count {
	position: absolute;
	top: -5px;
	right: -6px;
	min-width: 21px;
	height: 21px;
	padding: 0 5px;
	display: grid;
	place-items: center;
	border: 2px solid #0b2038;
	border-radius: 999px;
	background: #fff;
	color: #c2410c;
	font-size: 0.68rem;
	font-weight: 900;
	text-shadow: none;
}

.bma_alarm_overview_button:not(.has-active-bma-alarms) {
	animation-duration: 2.6s;
	box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.1), 0 0 12px rgba(249, 115, 22, 0.46), inset 0 1px 4px rgba(255, 255, 255, 0.52);
}

@keyframes bma-alarm-glow {
	0%, 100% { box-shadow: 0 0 0 4px rgba(249, 115, 22, 0.14), 0 0 16px rgba(249, 115, 22, 0.62), inset 0 1px 4px rgba(255, 255, 255, 0.58); }
	50% { box-shadow: 0 0 0 8px rgba(251, 146, 60, 0.08), 0 0 31px rgba(251, 146, 60, 0.96), inset 0 1px 5px rgba(255, 255, 255, 0.68); }
}

body.bma-alarm-overview-open {
	overflow: hidden;
}

.bma_alarm_overview_dialog {
	position: fixed;
	inset: 0;
	z-index: 4400;
	padding: clamp(12px, 3vw, 36px);
	display: grid;
	place-items: center;
	background: rgba(2, 8, 24, 0.76);
	backdrop-filter: blur(7px);
}

.bma_alarm_overview_dialog[hidden] {
	display: none;
}

.bma_alarm_overview_panel {
	width: min(720px, 100%);
	max-height: min(82vh, 720px);
	overflow: auto;
	padding: clamp(18px, 3vw, 30px);
	border: 1px solid rgba(253, 186, 116, 0.48);
	border-radius: 22px;
	background: linear-gradient(145deg, #173a5d, #071b31 72%);
	box-shadow: 0 28px 70px rgba(0, 0, 0, 0.48), inset 0 1px 0 rgba(255, 255, 255, 0.12);
	color: #f8fafc;
}

.bma_alarm_overview_header,
.bma_alarm_overview_heading,
.bma_alarm_overview_item {
	display: flex;
	align-items: center;
}

.bma_alarm_overview_header {
	justify-content: space-between;
	gap: 16px;
}

.bma_alarm_overview_heading {
	gap: 12px;
}

.bma_alarm_overview_heading_icon {
	width: 46px;
	height: 46px;
	display: grid;
	place-items: center;
	border-radius: 15px;
	background: linear-gradient(145deg, #fb923c, #c2410c);
	box-shadow: 0 8px 18px rgba(194, 65, 12, 0.32);
}

.bma_alarm_overview_heading p,
.bma_alarm_overview_heading h2,
.bma_alarm_overview_intro {
	margin: 0;
}

.bma_alarm_overview_heading p {
	color: #fdba74;
	font-size: 0.73rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.bma_alarm_overview_heading h2 {
	font-size: clamp(1.25rem, 2vw, 1.65rem);
}

.bma_alarm_overview_close {
	width: 40px;
	height: 40px;
	display: grid;
	place-items: center;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.09);
	color: #fff;
	cursor: pointer;
}

.bma_alarm_overview_close:hover,
.bma_alarm_overview_close:focus-visible {
	background: rgba(255, 255, 255, 0.18);
}

.bma_alarm_overview_intro {
	margin-top: 18px;
	color: #cbd5e1;
	line-height: 1.5;
}

.bma_alarm_overview_list {
	margin-top: 18px;
	display: grid;
	gap: 10px;
}

.bma_alarm_overview_item {
	justify-content: space-between;
	gap: 16px;
	padding: 14px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.07);
}

.bma_alarm_overview_item_details {
	min-width: 0;
	display: grid;
	gap: 3px;
}

.bma_alarm_overview_item_details strong {
	color: #fdba74;
	font-size: 1rem;
}

.bma_alarm_overview_item_details span {
	font-weight: 700;
	overflow-wrap: anywhere;
}

.bma_alarm_overview_item_details time {
	color: #94a3b8;
	font-size: 0.82rem;
}

.bma_alarm_overview_open {
	min-height: 42px;
	padding: 0 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border: 1px solid rgba(255, 237, 213, 0.45);
	border-radius: 11px;
	background: linear-gradient(145deg, #f97316, #c2410c);
	color: #fff;
	font-weight: 800;
	cursor: pointer;
}

.bma_alarm_overview_open:hover {
	filter: brightness(1.1);
}

.bma_alarm_overview_empty {
	margin: 0;
	padding: 24px 16px;
	border: 1px dashed rgba(255, 255, 255, 0.2);
	border-radius: 14px;
	color: #cbd5e1;
	text-align: center;
}

.bma_alarm_overview_empty.is-error {
	border-color: rgba(252, 165, 165, 0.48);
	color: #fecaca;
}

@media (max-width: 620px) {
	.bma_alarm_overview_button {
		width: 52px;
		height: 52px;
		flex-basis: 52px;
		font-size: 0.62rem;
	}

	.bma_alarm_overview_panel {
		padding: 16px 14px;
		border-radius: 17px;
	}

	.bma_alarm_overview_item {
		align-items: stretch;
		flex-direction: column;
		gap: 12px;
	}

	.bma_alarm_overview_open {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.bma_alarm_overview_button {
		animation: none;
	}
}

.elvis-app-brand {
	min-width: 0;
	display: flex;
	align-items: center;
	gap: 14px;
}

.elvis-app-mark {
	width: 58px;
	height: 58px;
	flex: 0 0 58px;
	display: grid;
	place-items: center;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 17px;
	background: rgba(255, 255, 255, 0.08);
	box-shadow: 0 9px 24px rgba(2, 8, 24, 0.25);
}

.elvis-app-mark img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.elvis-app-title-group {
	min-width: 0;
}

.elvis-app-kicker {
	margin: 0 0 2px;
	color: #fca5a5;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.09em;
	line-height: 1.25;
	text-transform: uppercase;
}

.elvis-app-header h1 {
	margin: 0;
	color: #ffffff;
	font-size: clamp(1.35rem, 1rem + 1.2vw, 2.15rem);
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.15;
	overflow-wrap: anywhere;
}

.main_logged_user {
	max-width: min(45%, 620px);
	margin: 0;
	padding: 0;
	display: flex;
	align-items: stretch;
	justify-content: flex-end;
	gap: 8px;
	font-size: 1rem;
	text-align: left;
}

.elvis-header-controls,
.elvis-header-actions,
.elvis-header-back-slot {
	display: flex;
	align-items: center;
}

.elvis-header-back-slot:empty {
	display: none;
}

.elvis-header-controls {
	min-width: 0;
	margin-left: auto !important;
	margin-right: 0;
	justify-content: flex-end;
	gap: 12px;
}

.elvis-header-actions {
	flex: 0 0 auto;
	gap: 8px;
}

.elvis-app-header .elvis-sync-badge--header {
	position: static;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 32px;
	margin: 0;
	padding: 0 10px;
	border: 1px solid rgba(148, 163, 184, 0.32);
	background: rgba(15, 41, 70, 0.72);
	box-shadow: none;
	color: rgba(226, 232, 240, 0.94);
	font-size: 0.71rem;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
}

.elvis-app-header .elvis-sync-badge--header::before {
	content: '';
	width: 7px;
	height: 7px;
	flex: 0 0 7px;
	border-radius: 50%;
	background: #34d399;
	box-shadow: 0 0 0 3px rgba(52, 211, 153, 0.12);
}

.elvis-app-header .elvis-sync-badge--header[data-tone='info']::before {
	background: #60a5fa;
	box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.12);
}

.elvis-app-header .elvis-sync-badge--header[data-tone='warn']::before {
	background: #fbbf24;
	box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.12);
}

.elvis-app-header .elvis-sync-badge--header[data-tone='busy']::before {
	background: #cbd5e1;
	box-shadow: 0 0 0 3px rgba(203, 213, 225, 0.12);
}

.elvis-app-header .logout_corner,
.elvis-app-header .back_corner,
.elvis-app-header .edit-toggle,
.elvis-app-header .admin-header-link,
.elvis-app-header .noticeboard-header-link {
	position: static !important;
	top: auto !important;
	right: auto !important;
	bottom: auto !important;
	left: auto !important;
	margin: 0;
}

.elvis-app-header .btn_logout_corner,
.elvis-app-header .edit-toggle,
.elvis-app-header .admin-header-link,
.elvis-app-header .noticeboard-header-link {
	width: 52px;
	min-width: 52px;
	height: 52px;
	min-height: 52px;
	border-radius: 14px !important;
	font-size: 1.05rem;
	transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.elvis-app-header .edit-toggle {
	border-color: rgba(125, 211, 252, 0.55);
	background: linear-gradient(155deg, rgba(15, 92, 151, 0.96), rgba(3, 57, 108, 0.96));
	box-shadow: 0 8px 18px rgba(2, 8, 24, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.18);
	color: #fff;
}

.elvis-app-header .admin-header-link,
.elvis-app-header .noticeboard-header-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 1px solid rgba(125, 211, 252, 0.55);
	background: linear-gradient(155deg, rgba(15, 92, 151, 0.96), rgba(3, 57, 108, 0.96));
	box-shadow: 0 8px 18px rgba(2, 8, 24, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.18);
	color: #fff;
	font-size: 0.92rem;
	font-weight: 800;
	line-height: 1;
	text-decoration: none;
}

.elvis-app-header .noticeboard-header-link {
	position: relative !important;
	width: auto;
	min-width: 52px;
	padding: 0 14px;
	gap: 8px;
	white-space: nowrap;
}

.noticeboard-header-label {
	font-size: 0.78rem;
	font-weight: 800;
}

.noticeboard-header-link[hidden] {
	display: none !important;
}

.noticeboard-header-link.has-unread-notices {
	animation: noticeboard-header-pulse 2.2s ease-in-out infinite;
}

@keyframes noticeboard-header-pulse {
	0%, 100% {
		box-shadow: 0 8px 18px rgba(2, 8, 24, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.18);
	}
	50% {
		box-shadow: 0 0 0 5px rgba(56, 189, 248, 0.16), 0 0 22px rgba(56, 189, 248, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.24);
	}
}

@media (prefers-reduced-motion: reduce) {
	.noticeboard-header-link.has-unread-notices {
		animation: none;
	}
}

.noticeboard-header-count {
	position: absolute;
	top: -7px;
	right: -7px;
	min-width: 20px;
	height: 20px;
	padding: 0 4px;
	display: grid;
	place-items: center;
	border: 2px solid #0b2038;
	border-radius: 999px;
	background: #f43f5e;
	color: #fff;
	font-size: 0.66rem;
	font-weight: 900;
	line-height: 1;
	box-shadow: 0 2px 8px rgba(2, 8, 24, 0.42);
}

.noticeboard-header-count[hidden] {
	display: none !important;
}

.elvis-app-header .btn_back_corner,
.elvis-app-header .btn_main_menu_corner {
	width: 58px;
	min-width: 58px;
	height: 58px;
	min-height: 58px;
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 17px !important;
	background: rgba(15, 41, 70, 0.88);
	box-shadow: 0 9px 24px rgba(2, 8, 24, 0.25);
	color: #fff;
}

.elvis-app-header .btn_logout_corner {
	border-color: rgba(255, 255, 255, 0.3);
	background: linear-gradient(150deg, rgba(185, 28, 28, 0.94), rgba(127, 29, 29, 0.94));
	box-shadow: 0 8px 18px rgba(100, 12, 16, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.2);
	color: #fff;
}

.elvis-app-header .btn_logout_corner:hover,
.elvis-app-header .btn_back_corner:hover,
.elvis-app-header .btn_main_menu_corner:hover,
.elvis-app-header .edit-toggle:hover,
.elvis-app-header .admin-header-link:hover,
.elvis-app-header .noticeboard-header-link:hover {
	transform: translateY(-1px);
	filter: brightness(1.08);
}

.elvis-app-header .btn_back_corner:hover,
.elvis-app-header .btn_back_corner:focus-visible,
.elvis-app-header .btn_main_menu_corner:hover,
.elvis-app-header .btn_main_menu_corner:focus-visible {
	border-color: rgba(125, 211, 252, 0.78);
	background: linear-gradient(155deg, #176aa8, #0b4f85);
	box-shadow: 0 0 0 4px rgba(56, 189, 248, 0.15), 0 12px 26px rgba(2, 8, 24, 0.32);
	filter: none;
}

.elvis-app-header .edit-toggle.is-active {
	border-color: rgba(125, 211, 252, 0.58);
	background: linear-gradient(155deg, #1780c2, #075185);
	box-shadow: 0 0 0 4px rgba(56, 189, 248, 0.18), 0 12px 28px rgba(2, 8, 24, 0.34);
}

.elvis-app-header .edit-toggle.is-saved {
	border-color: rgba(134, 239, 172, 0.52);
	background: linear-gradient(155deg, #20a65a, #15803d);
	box-shadow: 0 8px 18px rgba(2, 8, 24, 0.35);
}

.elvis-app-header .edit-toggle.has-save-error {
	border-color: rgba(252, 165, 165, 0.56);
	background: linear-gradient(155deg, #dc2626, #991b1b);
	box-shadow: 0 8px 18px rgba(100, 12, 16, 0.35);
}

.elvis-context-item {
	min-width: 138px;
	max-width: 260px;
	min-height: 52px;
	padding: 8px 12px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	border: 1px solid rgba(148, 163, 184, 0.25);
	border-radius: 12px;
	background: rgba(2, 8, 24, 0.28);
}

.elvis-context-item small {
	color: #94a3b8;
	font-size: 0.67rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	line-height: 1.2;
	text-transform: uppercase;
}

.elvis-context-item strong {
	display: block;
	overflow: hidden;
	color: #f8fafc;
	font-size: 0.9rem;
	font-weight: 750;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.elvis-context-vehicle {
	border-color: rgba(125, 211, 252, 0.28);
	background: rgba(14, 116, 144, 0.2);
}

/* Legacy forms become the same light, calm cards used by newer modules. */
.driverlog_wrapper,
.user_wrapper,
.damage_report_wrapper {
	width: min(calc(100% - 20px), 1280px);
	margin: 0 auto 28px;
}

.admin_wrapper {
	width: min(calc(100% - 32px), 1680px);
	margin: 0 auto 28px;
}

.driverlog_area:not(.main_area),
.user_area {
	width: 100%;
	padding: clamp(16px, 2.5vw, 28px);
	border: 1px solid var(--elvis-line);
	border-radius: var(--elvis-radius-lg);
	background: var(--elvis-surface);
	box-shadow: var(--elvis-shadow);
	color: var(--elvis-ink);
}

.user_area form,
.driverlog_area:not(.main_area) form,
form > .driverlog_wrapper {
	width: 100%;
}

.user_form {
	width: 100%;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	align-items: start;
	justify-items: stretch;
	font-size: 1rem;
}

.user_par,
.driverlog_area:not(.main_area) > label,
.driverlog_area:not(.main_area) form > label {
	width: 100%;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 7px;
	color: var(--elvis-ink-soft);
	font-size: 0.92rem;
	font-weight: 750;
	text-align: left;
}

.user_par > label,
.driverlog_area:not(.main_area) > label,
.driverlog_area:not(.main_area) form > label {
	font-size: 0.92rem;
}

.user_par small {
	color: #64748b;
	font-size: 0.78rem;
	font-weight: 500;
}

.user_par :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
.driverlog_area:not(.main_area) :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
	width: 100%;
	min-height: var(--elvis-touch-target);
	margin: 0;
	padding: 10px 12px;
	border: 1px solid #cbd5e1;
	border-radius: 11px;
	outline: none;
	background: #ffffff;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
	color: var(--elvis-ink);
	font-size: 1rem;
	line-height: 1.35;
	transition: border-color 140ms ease, box-shadow 140ms ease;
}

.user_par :where(input, select, textarea):focus,
.driverlog_area:not(.main_area) :where(input, select, textarea):focus {
	border-color: #4b92c7;
	box-shadow: 0 0 0 4px rgba(23, 106, 168, 0.12);
}

.user_par textarea,
.driverlog_area:not(.main_area) textarea {
	min-height: 120px;
	resize: vertical;
}

.user_par input[type="checkbox"],
.driverlog_area:not(.main_area) input[type="checkbox"] {
	width: 24px;
	height: 24px;
	min-height: 24px;
	accent-color: var(--elvis-blue);
}

.user_par_btn {
	width: 100%;
	padding: 20px 0 0;
}

.user_par_btn input[type="submit"],
.user_par_btn button[type="submit"] {
	width: 100%;
	min-height: 52px;
	height: auto;
	padding: 12px 18px;
	border: 0;
	border-radius: 12px;
	background: linear-gradient(150deg, var(--elvis-brand), var(--elvis-brand-strong));
	box-shadow: 0 9px 22px rgba(153, 27, 27, 0.26);
	color: #ffffff;
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.25;
	text-transform: none;
	cursor: pointer;
	touch-action: manipulation;
}

/* Shared actions and table shells. */
.main_btn,
.admin_btn,
.driverlog_btn,
.btn_back,
.btn_2nd_user,
.dgsync_btn,
.dangerousgoods_button,
.crashinfo_button,
.custom-file-upload {
	min-height: var(--elvis-touch-target);
	border-radius: 11px;
	font-size: 0.95rem;
	font-weight: 750;
	letter-spacing: 0;
	line-height: 1.25;
	text-transform: none;
	touch-action: manipulation;
}

.admin_wrapper > .fvs-inline-back,
.driverlog_wrapper > .fvs-inline-back {
	display: flex;
	justify-content: flex-end;
	margin-top: 14px;
}

.admin_wrapper > .fvs-inline-back .admin_btn {
	width: auto;
	min-width: 180px;
	text-decoration: none;
}

.table-responsive {
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	-webkit-overflow-scrolling: touch;
	scrollbar-color: #94a3b8 transparent;
}

.elvis-data-list-shell,
.driverlog_list,
.damage_report_wrapper {
	border-radius: var(--elvis-radius-lg);
}

.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
	min-height: 42px;
	border-color: #cbd5e1;
	background: #ffffff;
	color: var(--elvis-ink);
}

.dataTables_wrapper .dataTables_paginate .paginate_button {
	min-height: 42px;
	min-width: 42px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.damage-report-filter {
	display: flex;
	align-items: center;
	margin-top: 12px;
}

.damage-report-filter label {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	min-height: 44px;
	padding: 8px 12px;
	border: 1px solid #cbd5e1;
	border-radius: 12px;
	background: #ffffff;
	color: var(--elvis-ink);
	font-weight: 700;
	cursor: pointer;
}

.damage-report-filter input {
	width: 20px;
	height: 20px;
	accent-color: #176aa8;
}

.damage-report-status {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 9px;
	border-radius: 999px;
	font-size: 0.82rem;
	font-weight: 800;
	white-space: nowrap;
}

.damage-report-status--open {
	background: #e0f2fe;
	color: #075985;
}

.damage-report-status--completed {
	background: #dcfce7;
	color: #166534;
}

tr.damage-report-row--completed td {
	background: #f5fbf7;
}

.logout_corner,
.back_corner {
	top: max(14px, env(safe-area-inset-top)) !important;
}

.back_corner {
	left: max(14px, env(safe-area-inset-left)) !important;
}

.logout_corner {
	right: max(14px, env(safe-area-inset-right)) !important;
}

.btn_back_corner,
.btn_logout_corner {
	width: 46px;
	min-width: 46px;
	height: 46px;
	min-height: 46px;
	border: 1px solid rgba(255, 255, 255, 0.24);
	box-shadow: 0 10px 24px rgba(2, 8, 24, 0.28);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

.btn_back_corner {
	background: rgba(15, 41, 70, 0.88);
}

.btn_logout_corner {
	background: linear-gradient(150deg, rgba(185, 28, 28, 0.94), rgba(127, 29, 29, 0.94));
}

/* Login and vehicle selection use the same spacing and surface treatment. */
.elvis-login-page .login_wrapper {
	width: min(100%, 720px);
	min-height: 100dvh;
	margin: 0 auto;
	padding: clamp(24px, 5vh, 56px) 14px;
	align-content: center;
}

.elvis-login-page .login_heading_logo {
	width: clamp(104px, 17vw, 150px);
	margin: 0 auto 18px;
	border-radius: 24px;
}

.elvis-login-page .login_main {
	width: 100%;
	padding: clamp(20px, 4vw, 34px);
	border-radius: var(--elvis-radius-lg);
	background: linear-gradient(150deg, rgba(15, 41, 70, 0.95), rgba(5, 20, 37, 0.92));
	box-shadow: 0 24px 60px rgba(2, 8, 24, 0.42);
}

.elvis-login-page .login_par {
	padding-bottom: 16px;
	text-align: left;
}

.elvis-login-page .login_par label {
	display: block;
	margin-bottom: 7px;
	color: #dbeafe;
	font-size: 0.9rem;
	font-weight: 750;
}

.elvis-login-page .login_par input {
	min-height: 52px;
	padding: 11px 13px;
	border: 1px solid rgba(148, 163, 184, 0.45);
	border-radius: 11px;
	background: rgba(2, 8, 24, 0.45);
	color: #ffffff;
	font-size: 1rem;
	line-height: 1.3;
}

.elvis-vehicle-page .selectvehicle_wrapper {
	min-height: 100dvh;
	display: grid;
	align-content: center;
}

@media (max-width: 980px) {
	body.elvis-modern-ui::before {
		background-size: min(78vw, 720px) auto;
		filter: blur(var(--elvis-bg-logo-blur, 12px)) saturate(0.6) brightness(0.8);
	}

	.elvis-app-header {
		width: calc(100% - clamp(20px, 2.8vw, 56px));
		align-items: flex-start;
		flex-direction: column;
		gap: 12px;
	}

	.main_logged_user {
		width: 100%;
		max-width: none;
		justify-content: flex-start;
	}

	.elvis-header-controls {
		width: 100%;
		align-items: flex-start;
		justify-content: flex-end;
	}

	.elvis-header-controls .main_logged_user {
		width: auto;
		flex: 0 1 auto;
	}

	.elvis-context-item {
		max-width: min(50%, 280px);
		flex: 1 1 170px;
	}

	.user_form {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 620px) {
	body.elvis-modern-ui::before {
		background-size: min(86vw, 520px) auto;
		opacity: var(--elvis-bg-logo-opacity, 0);
		filter: blur(var(--elvis-bg-logo-blur, 12px)) saturate(0.58) brightness(0.78);
	}

	.elvis-app-shell {
		padding-inline: 8px;
		padding-top: max(8px, env(safe-area-inset-top));
	}

	.logout_corner,
	.back_corner {
		position: absolute !important;
	}

	/* Die Navigationsbuttons werden im vorgesehenen Header-Slot platziert und dürfen die Marke nicht überlagern. */
	.elvis-app-header .back_corner {
		position: static !important;
	}

	.elvis-app-header .elvis-header-back-slot > .back_corner {
		display: flex;
		flex: 0 0 auto;
		align-items: center;
		justify-content: center;
	}

	.elvis-app-header {
		width: calc(100% - clamp(20px, 2.8vw, 56px));
		min-height: 0;
		margin-bottom: 10px;
		padding: 10px;
		border-radius: 16px;
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		justify-content: flex-start;
		gap: 8px 10px;
	}

	.bma_alarm_overview_button {
		width: 42px;
		height: 42px;
		flex: 0 0 42px;
		font-size: 0;
	}

	.bma_alarm_overview_button > i {
		font-size: 0.95rem;
	}

	.elvis-header-back-slot {
		flex: 0 0 auto;
	}

	.elvis-app-header .btn_back_corner,
	.elvis-app-header .btn_main_menu_corner {
		width: 46px;
		min-width: 46px;
		height: 46px;
		min-height: 46px;
		border-radius: 14px !important;
	}

	.elvis-app-brand {
		flex: 1 1 140px;
		gap: 10px;
	}

	.elvis-app-mark {
		width: 38px;
		height: 38px;
		flex-basis: 38px;
		border-radius: 12px;
	}

	.elvis-app-kicker {
		display: none;
	}

	.elvis-app-header h1 {
		font-size: clamp(1.05rem, 5vw, 1.25rem);
	}

	.main_logged_user {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 6px;
	}

	.elvis-header-controls {
		flex: 1 0 100%;
		margin-left: 0 !important;
		flex-wrap: wrap;
	}

	.elvis-header-controls .main_logged_user {
		flex-basis: 100%;
		order: 2;
	}

	.elvis-header-actions {
		margin-left: auto;
	}

	.elvis-app-header .elvis-sync-badge--header {
		min-height: 30px;
		padding: 0 8px;
		font-size: 0.66rem;
	}

	.elvis-app-header .noticeboard-header-link {
		width: auto;
		min-width: 0;
		height: 40px;
		min-height: 40px;
		padding: 0 11px;
		border-radius: 12px !important;
		font-size: 0.84rem;
	}

	.elvis-app-header .noticeboard-header-count {
		display: none !important;
	}

	.elvis-app-header .noticeboard-header-label {
		font-size: 0.72rem;
	}

	.main_logged_user .elvis-context-item:only-child {
		grid-column: 1 / -1;
	}

	.elvis-context-item {
		min-width: 0;
		max-width: none;
		min-height: 40px;
		padding: 5px 8px;
	}

	.elvis-context-item small {
		font-size: 0.61rem;
	}

	.elvis-context-item strong {
		font-size: 0.75rem;
	}

	.driverlog_wrapper,
	.user_wrapper,
	.admin_wrapper,
	.damage_report_wrapper {
		width: 100%;
	}

	.driverlog_area:not(.main_area),
	.user_area {
		padding: 14px;
		border-radius: 15px;
	}

	.admin_wrapper > .fvs-inline-back .admin_btn {
		width: 100%;
	}

	.elvis-dialog-overlay {
		padding: 12px;
	}

	.elvis-dialog-box {
		padding: 18px;
		border-radius: 16px;
	}
}

@media (any-pointer: coarse) {
	body.elvis-modern-ui {
		--elvis-touch-target: 50px;
	}

	body.elvis-modern-ui button,
	body.elvis-modern-ui [role="button"],
	body.elvis-modern-ui input[type="button"],
	body.elvis-modern-ui input[type="submit"],
	body.elvis-modern-ui select,
	body.elvis-modern-ui summary {
		touch-action: manipulation;
	}

	.dataTables_wrapper .dataTables_paginate .paginate_button {
		min-width: 46px;
		min-height: 46px;
	}
}

/* ===== Modern background-logo administration ===== */
.admin_wrapper.bglogo_page {
	width: min(1100px, calc(100% - 32px));
	margin: 12px auto 90px;
}

.bglogo_card {
	display: grid;
	gap: 18px;
	padding: clamp(18px, 3vw, 32px);
	border: 1px solid #dce3ec;
	border-radius: 20px;
	background: #ffffff;
	box-shadow: 0 18px 44px rgba(2, 8, 24, 0.2);
	color: #172033;
}

.bglogo_header {
	padding-bottom: 16px;
	border-bottom: 1px solid #e2e8f0;
}

.bglogo_kicker {
	display: block;
	margin-bottom: 5px;
	color: #b91c1c;
	font-size: 0.76rem;
	font-weight: 850;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.bglogo_header h1,
.bglogo_panel h2,
.bglogo_preview_heading h2 {
	margin: 0;
	color: #172033;
}

.bglogo_header h1 {
	font-size: clamp(1.55rem, 3vw, 2.2rem);
}

.bglogo_header p,
.bglogo_panel_heading p,
.bglogo_hint {
	margin: 6px 0 0;
	color: #64748b;
}

.bglogo_notice {
	padding: 12px 14px;
	border-radius: 12px;
	font-weight: 750;
}

.bglogo_notice_ok {
	border: 1px solid #86efac;
	background: #f0fdf4;
	color: #166534;
}

.bglogo_notice_error {
	border: 1px solid #fecaca;
	background: #fff5f5;
	color: #991b1b;
}

.bglogo_settings_grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.bglogo_panel,
.bglogo_preview_wrap {
	min-width: 0;
	padding: 18px;
	border: 1px solid #dce3ec;
	border-radius: 16px;
	background: #f8fafc;
}

.bglogo_panel,
.bglogo_form,
.bglogo_appearance_form,
.bglogo_preview_wrap {
	display: grid;
	gap: 14px;
}

.bglogo_panel_heading,
.bglogo_preview_heading,
.bglogo_range_heading,
.bglogo_actions {
	display: flex;
	align-items: center;
	gap: 12px;
}

.bglogo_preview_heading,
.bglogo_range_heading {
	justify-content: space-between;
}

.bglogo_panel_icon {
	width: 42px;
	height: 42px;
	flex: 0 0 42px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 12px;
	background: #e0f2fe;
	color: #075985;
}

.bglogo_form input[type="file"] {
	width: 100%;
	max-width: none;
	min-height: 50px;
	padding: 5px;
	border: 1px solid #cbd5e1;
	border-radius: 11px;
	background: #ffffff;
	color: #475569;
}

.bglogo_form input[type="file"]::file-selector-button {
	min-height: 38px;
	margin-right: 10px;
	padding: 7px 12px;
	border: 0;
	border-radius: 8px;
	background: #e2e8f0;
	font: inherit;
	font-weight: 750;
}

.bglogo_actions {
	flex-wrap: wrap;
	gap: 9px;
}

.bglogo_button {
	min-height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	padding: 10px 15px;
	border: 1px solid transparent;
	border-radius: 11px;
	font-weight: 800;
	cursor: pointer;
}

.bglogo_button_primary {
	background: linear-gradient(150deg, #176aa8, #0b4f85);
	color: #ffffff;
}

.bglogo_button_danger {
	border-color: #fecaca;
	background: #fff5f5;
	color: #b91c1c;
}

.bglogo_button_save {
	width: 100%;
	background: linear-gradient(150deg, #b91c1c, #991b1b);
	color: #ffffff;
}

.bglogo_range_field {
	display: grid;
	gap: 7px;
	padding: 12px;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	background: #ffffff;
}

.bglogo_range_heading output {
	min-width: 62px;
	padding: 4px 8px;
	border-radius: 999px;
	background: #e0f2fe;
	color: #075985;
	font-size: 0.78rem;
	font-weight: 850;
	text-align: center;
}

.bglogo_range_help,
.bglogo_preview_status {
	color: #64748b;
	font-size: 0.78rem;
}

.bglogo_range_field input[type="range"] {
	width: 100%;
	min-height: 32px;
	accent-color: #176aa8;
}

.bglogo_preview {
	position: relative;
	min-height: 260px;
	overflow: hidden;
	border: 1px solid #1e3a5f;
	border-radius: 15px;
	background: linear-gradient(145deg, #050d18, #08182b 52%, #0d2946);
}

.bglogo_preview::before {
	content: '';
	position: absolute;
	inset: -24px;
	background: var(--preview-logo, none) center / min(66%, 560px) auto no-repeat;
	opacity: var(--preview-opacity, 0.06);
	filter: blur(var(--preview-blur, 12px)) saturate(0.62) brightness(0.82);
	transform: scale(1.035);
}

.bglogo_preview_sample {
	position: absolute;
	inset: auto 18px 18px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
}

.bglogo_preview_sample span {
	min-height: 58px;
	border: 1px solid rgba(255, 255, 255, 0.17);
	border-radius: 12px;
	background: rgba(5, 24, 46, 0.7);
}

/* ===== ATS and user administration aligned with modern light surfaces ===== */
.ats-proof-wrap,
.ats-proof-list-wrap,
.ats-proof-detail-wrap,
.admin_wrapper.user-mgmt-wrap {
	width: min(calc(100% - 32px), 1680px);
	box-sizing: border-box;
}

.ats-proof-wrap .ats-proof-card,
.ats-proof-list-wrap .ats-proof-card,
.ats-proof-detail-wrap .ats-proof-card {
	border: 1px solid #dce3ec;
	border-radius: 18px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.09);
	color: #172033;
}

.ats-proof-wrap :is(.ats-proof-head h2, .ats-proof-team-title, .ats-proof-signature-label),
.ats-proof-list-wrap .ats-proof-head h2,
.ats-proof-detail-wrap :is(.ats-proof-head h2, .ats-proof-team-title) {
	color: #172033;
}

.ats-proof-wrap :is(.ats-proof-head p, .ats-proof-team-hint, .ats-proof-member-hint, .ats-proof-signature-hint),
.ats-proof-list-wrap .ats-proof-head p,
.ats-proof-detail-wrap .ats-proof-head p {
	color: #64748b;
}

.ats-proof-wrap .ats-proof-member-card {
	border-left: 4px solid #b91c1c;
	background: linear-gradient(180deg, #ffffff, #f8fafc);
}

.ats-proof-field label {
	color: #334155;
}

.ats-proof-field :is(input, select) {
	border-color: #cbd5e1;
	background: #f8fafc;
	color: #172033;
}

.ats-proof-field :is(input, select):focus {
	border-color: #4b92c7;
	outline: none;
	box-shadow: 0 0 0 4px rgba(23, 106, 168, 0.12);
}

.ats-proof-member-remove {
	border-color: #fecaca;
	background: #fff5f5;
	color: #b91c1c;
}

.ats-proof-list-wrap > .ats-proof-card:first-child,
.ats-proof-detail-wrap > .ats-proof-card:first-child {
	border-top: 4px solid #b91c1c;
}

.ats-proof-list-wrap .ats-proof-list-card {
	display: block;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.ats-proof-list-wrap .ats-proof-list-card .table-responsive,
.user-mgmt-list-card {
	overflow: visible;
}

.ats-proof-detail-item {
	border-color: #dce3ec;
	background: #f8fafc;
	color: #172033;
}

.ats-proof-detail-label {
	color: #64748b;
}

.user-mgmt-fdisk-card {
	width: 100%;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	padding: clamp(18px, 2vw, 26px);
	border: 1px solid #dce3ec;
	border-top: 4px solid #b91c1c;
	border-radius: 18px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.09);
	color: #172033;
}

.user-mgmt-fdisk-card :is(h2, h3, p) {
	margin: 0;
}

.user-mgmt-fdisk-card h3 {
	margin-top: 14px;
}

.user-mgmt-fdisk-card p,
.user-mgmt-identity small,
.user-mgmt-cell-note,
.user-mgmt-audit,
.user-mgmt-empty {
	color: #64748b;
}

.user-mgmt-kicker {
	color: #b91c1c;
	font-size: 0.76rem;
	font-weight: 850;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.user-mgmt-identity,
.user-mgmt-audit {
	display: grid;
	gap: 3px;
}

.user-mgmt-fdisk-badge,
.user-mgmt-status {
	display: inline-flex;
	padding: 5px 9px;
	border-radius: 999px;
	font-size: 0.76rem;
	font-weight: 800;
}

.user-mgmt-fdisk-badge { background: #e0f2fe; color: #075985; }
.user-mgmt-status.is-active { background: #dcfce7; color: #166534; }
.user-mgmt-status.has-warning { background: #fef3c7; color: #92400e; }
.user-mgmt-status.is-locked { background: #fee2e2; color: #991b1b; }

.user-mgmt-row-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.user-create-card,
:is(.user_area, .user-create-wrap) :is(.rights-card, .group-card) {
	border: 1px solid #dce3ec;
	background: #f8fafc;
	box-shadow: none;
	color: #172033;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

.user-create-card {
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.09);
}

.user-create-head h2,
.user-create-field label {
	color: #334155;
}

.user-create-head p {
	color: #64748b;
}

.user-create-timeout {
	border-color: #dce3ec;
	background: #ffffff;
	color: #334155;
}

:is(.user_area, .user-create-wrap) .group-item,
:is(.user_area, .user-create-wrap) .rights-row {
	border-color: #e2e8f0;
	background: #ffffff;
}

:is(.user_area, .user-create-wrap) .rights-table thead th {
	border-bottom: 1px solid #dce3ec;
	background: #eef2f7;
	color: #334155;
}

:is(.user_area, .user-create-wrap) .preset-btn {
	border-color: #cbd5e1;
	background: #ffffff;
	color: #334155;
}

:is(.user_area, .user-create-wrap) .toggle .track {
	border-color: #dc2626;
	background: linear-gradient(135deg, #b91c1c, #ef4444);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16);
}

:is(.user_area, .user-create-wrap) .toggle input:checked ~ .track {
	border-color: #16a34a;
	background: linear-gradient(135deg, #15803d, #22c55e);
}

:is(.user_area, .user-create-wrap) .sticky-save {
	bottom: 0;
	margin-top: 18px;
	padding: 16px 0 0;
	border-top: 1px solid #dce3ec;
	background: #f8fafc;
	box-shadow: none;
}

/* ===== Gefahrgut: mobile master/detail view without horizontal scrolling ===== */
.dangerousgoods_mobile_views {
	display: none;
}

@media only screen and (max-width: 760px) {
	.dangerousgoods_wrapper {
		padding: 0 0 24px;
		overflow-x: hidden;
	}

	.dangerousgoods_toolbar {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 8px;
	}

	.dangerousgoods_input,
	.dangerousgoods_meta {
		grid-column: 1 / -1;
	}

	.dangerousgoods_input,
	.dangerousgoods_select {
		width: 100%;
		min-width: 0;
	}

	.dangerousgoods_select {
		min-width: 0;
	}

	.dangerousgoods_mobile_views {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 6px;
		margin-bottom: 10px;
		padding: 5px;
		border: 1px solid rgba(255, 255, 255, 0.16);
		border-radius: 14px;
		background: rgba(5, 24, 46, 0.78);
	}

	.dangerousgoods_mobile_view {
		min-height: 48px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		border: 1px solid transparent;
		border-radius: 10px;
		background: transparent;
		color: #dbeafe;
		font-weight: 800;
	}

	.dangerousgoods_mobile_view.is-active {
		border-color: rgba(125, 211, 252, 0.34);
		background: #176aa8;
		color: #ffffff;
	}

	.dangerousgoods_mobile_view:disabled {
		opacity: 0.45;
	}

	.dangerousgoods_content {
		display: block;
		min-height: 0;
	}

	.dangerousgoods_detailpanel,
	.dangerousgoods_wrapper.is-mobile-detail :is(.dangerousgoods_toolbar, .dangerousgoods_listpanel) {
		display: none;
	}

	.dangerousgoods_wrapper.is-mobile-detail .dangerousgoods_detailpanel {
		display: flex;
	}

	.dangerousgoods_listpanel,
	.dangerousgoods_detailpanel {
		border-radius: 14px;
	}

	.dangerousgoods_tablewrap {
		overflow: visible;
	}

	.dangerousgoods_table,
	.dangerousgoods_table tbody {
		display: block;
		width: 100%;
	}

	.dangerousgoods_table thead {
		display: none;
	}

	.dangerousgoods_table tbody {
		display: grid;
		gap: 8px;
		padding: 9px;
		background: #eef2f7;
	}

	.dangerousgoods_table tbody tr {
		display: grid;
		grid-template-columns: 62px minmax(0, 1fr) auto;
		grid-template-areas: "symbol name name" "symbol un class" "symbol packing tunnel";
		gap: 4px 10px;
		padding: 10px;
		border: 1px solid #dce3ec;
		border-radius: 12px;
		background: #ffffff;
	}

	.dangerousgoods_table tbody tr:nth-child(even) {
		background: #ffffff;
	}

	.dangerousgoods_table tbody tr.active {
		border-color: #60a5fa;
		background: #eff6ff;
	}

	.dangerousgoods_table td {
		min-width: 0;
		padding: 0;
		border: 0;
		background: transparent;
		font-size: 0.82rem;
		overflow-wrap: anywhere;
	}

	.dangerousgoods_symbolcell { grid-area: symbol; width: auto; align-self: center; padding: 0 !important; }
	.dangerousgoods_symbolimg,
	.dangerousgoods_symbolfallback { width: 50px; height: 72px; }
	.dangerousgoods_namecell { grid-area: name; color: #172033 !important; font-size: 0.94rem !important; font-weight: 800; }
	.dangerousgoods_uncell { grid-area: un; font-weight: 800; }
	.dangerousgoods_uncell::before { content: "UN "; color: #64748b; }
	.dangerousgoods_classcell { grid-area: class; justify-self: end; padding: 2px 7px !important; border-radius: 999px; background: #e0f2fe !important; color: #075985 !important; font-weight: 800; }
	.dangerousgoods_classcell::before { content: "Kl. "; }
	.dangerousgoods_packingcell { grid-area: packing; }
	.dangerousgoods_packingcell::before { content: "Verp.-Gr. "; color: #64748b; }
	.dangerousgoods_tunnelcell { grid-area: tunnel; justify-self: end; }
	.dangerousgoods_tunnelcell::before { content: "Tunnel "; color: #64748b; }

	.dangerousgoods_detailpanel h2 {
		font-size: 1rem;
		line-height: 1.3;
	}

	.dangerousgoods_detailsummary,
	.dangerousgoods_detailbody {
		padding: 10px;
	}

	.dangerousgoods_detailtable,
	.dangerousgoods_detailtable :is(tbody, tr, th, td) {
		display: block;
		width: 100%;
		min-width: 0;
	}

	.dangerousgoods_detailtable th {
		padding: 8px 9px 3px;
		border: 0;
		font-size: 0.76rem;
		text-transform: uppercase;
	}

	.dangerousgoods_detailtable td {
		padding: 3px 9px 9px;
		border: 0;
		overflow-wrap: anywhere;
	}
}

@media only screen and (max-width: 900px) {
	.admin_wrapper.bglogo_page,
	.ats-proof-wrap,
	.ats-proof-list-wrap,
	.ats-proof-detail-wrap,
	.admin_wrapper.user-mgmt-wrap {
		width: calc(100% - 16px);
	}

	.bglogo_settings_grid {
		grid-template-columns: 1fr;
	}

	.user-mgmt-fdisk-card {
		align-items: stretch;
		flex-direction: column;
	}
}

@media only screen and (max-width: 560px) {
	.bglogo_card,
	.bglogo_panel,
	.bglogo_preview_wrap {
		padding: 14px;
	}

	.bglogo_actions,
	.bglogo_button,
	.user-mgmt-row-actions,
	.user-mgmt-row-actions .user-mgmt-row-action {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

/* ===== Unified administration settings UI ===== */
body.elvis-admin-ui {
	--admin-surface: #ffffff;
	--admin-surface-soft: #f8fafc;
	--admin-surface-muted: #eef2f7;
	--admin-line: #dce3ec;
	--admin-ink: #172033;
	--admin-muted: #64748b;
	--admin-primary: #176aa8;
	--admin-primary-strong: #0b4f85;
	--admin-danger: #b91c1c;
}

body.elvis-admin-ui .admin_wrapper {
	width: min(calc(100% - 32px), 1440px);
	box-sizing: border-box;
}

body.elvis-admin-ui .admin_area {
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
	justify-items: stretch;
	align-items: stretch;
	gap: 16px;
	color: var(--admin-ink);
}

/*
 * Older administration modules place headings, help text and forms directly in
 * .admin_area. Give that shared root a reliable light surface so the unified
 * dark typography can never end up on the dark application background.
 * Purpose-built master/detail pages already provide their own card surfaces.
 */
body.elvis-admin-ui .admin_wrapper > .admin_area:not(.module-recipient-page):not(.contact-import) {
	padding: clamp(16px, 2.2vw, 28px);
	border: 1px solid var(--admin-line);
	border-radius: 20px;
	background: var(--admin-surface);
	box-shadow: 0 12px 34px rgba(15, 23, 42, 0.1);
}

body.elvis-admin-ui .admin_wrapper > .admin_area:not(.module-recipient-page):not(.contact-import) > :is(h1, h2, h3, h4) {
	color: var(--admin-ink);
}

body.elvis-admin-ui .admin_wrapper > .admin_area:not(.module-recipient-page):not(.contact-import) > p {
	color: var(--admin-muted);
	line-height: 1.55;
}

body.elvis-admin-ui .admin_wrapper .admin_area :is(label, legend) {
	color: #334155;
}

body.elvis-admin-ui :is(
	.ai-settings-wrap,
	.ir-settings-wrap,
	.ir-devices-wrap,
	.ir-equip-wrap,
	.ir-flag-rights-wrap,
	.fdisk-admin-wrap,
	.module-recipient-page,
	.dashboard-token-page,
	.tabletcfg_page,
	.licensecfg_page,
	.fvs_module_config_wrap,
	.contact-import,
	.mapsymbol-admin
) {
	width: min(100%, 1440px);
	max-width: none;
	box-sizing: border-box;
	color: var(--admin-ink);
}

body.elvis-admin-ui .fvs_module_config_wrap,
body.elvis-admin-ui .mapsymbol-admin {
	margin: 12px auto 32px;
}

body.elvis-admin-ui .blattler_admin_notice {
	width: 100%;
	box-sizing: border-box;
}

body.elvis-admin-ui :is(
	.admin_area > h2,
	.ai-settings-wrap > h2,
	.ir-settings-wrap > h2,
	.ir-devices-wrap > h2,
	.ir-equip-wrap > h2,
	.ir-flag-rights-wrap > h2,
	.fdisk-admin-wrap > h2,
	.module-recipient-headline,
	.tabletcfg_card > h2,
	.licensecfg_card > h2,
	.fvs_module_config_head h2
) {
	margin: 0;
	color: var(--admin-ink);
	font-size: clamp(1.35rem, 2.5vw, 1.85rem);
	line-height: 1.2;
}

body.elvis-admin-ui :is(
	.tabletcfg_hint,
	.licensecfg_hint,
	.offlinecfg_module_desc,
	.offlinecfg_empty,
	.ai-settings-note,
	.ir-settings-note,
	.ir-devices-note,
	.ir-equip-note,
	.ir-password-note,
	.fdisk-admin-note,
	.fdisk-admin-small,
	.module-recipient-intro,
	.module-recipient-empty,
	.mapsymbol-head p,
	.mapsymbol-section-title p,
	.contact-import-head p,
	.contact-import-hint,
	.fvs_module_config_head p
) {
	color: var(--admin-muted);
	opacity: 1;
}

body.elvis-admin-ui :is(
	.tabletcfg_card,
	.licensecfg_card,
	.blattler_admin_card,
	.dgsync_panel,
	.dashboard-token-card,
	.ai-settings-card,
	.ir-settings-card,
	.ir-devices-card,
	.ir-equip-card,
	.ir-flag-rights-card,
	.fdisk-admin-card,
	.module-recipient-card,
	.vehicle-fdisk-card,
	.contact-import-head,
	.contact-import-card,
	.mapsymbol-head,
	.mapsymbol-card,
	.mapsymbol-list-head,
	.fvs_module_config_card
) {
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
	border: 1px solid var(--admin-line);
	border-radius: 18px;
	background: var(--admin-surface);
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.09);
	color: var(--admin-ink);
}

body.elvis-admin-ui :is(
	.tabletcfg_card,
	.licensecfg_card,
	.dashboard-token-card,
	.ai-settings-card,
	.ir-settings-card,
	.ir-devices-card,
	.ir-equip-card,
	.ir-flag-rights-card,
	.fdisk-admin-card,
	.module-recipient-card,
	.vehicle-fdisk-card,
	.contact-import-card,
	.mapsymbol-create-card,
	.mapsymbol-list-head,
	.mapsymbol-item
) {
	padding: clamp(16px, 2vw, 24px);
}

body.elvis-admin-ui :is(.contact-import-head, .mapsymbol-head) {
	padding: clamp(18px, 2.5vw, 28px);
	background: linear-gradient(145deg, #ffffff, #f8fafc);
}

body.elvis-admin-ui :is(
	.dashboard-token-card,
	.ai-settings-card,
	.ir-settings-card,
	.ir-devices-card,
	.ir-equip-card,
	.ir-flag-rights-card,
	.fdisk-admin-card,
	.module-recipient-card,
	.vehicle-fdisk-card,
	.contact-import-card
) :is(h2, h3, h4),
body.elvis-admin-ui .mapsymbol-admin :is(h2, h3, h4),
body.elvis-admin-ui .contact-import :is(h2, h3, h4) {
	color: var(--admin-ink);
}

body.elvis-admin-ui .admin_wrapper .admin_area :where(
	input[type="text"],
	input[type="search"],
	input[type="email"],
	input[type="password"],
	input[type="url"],
	input[type="number"],
	input[type="file"],
	select,
	textarea
),
body.elvis-admin-ui .admin_wrapper :is(.tabletcfg_card, .licensecfg_card, .dashboard-token-card) :where(
	input[type="text"],
	input[type="search"],
	input[type="email"],
	input[type="password"],
	input[type="url"],
	input[type="number"],
	input[type="file"],
	select,
	textarea
),
body.elvis-admin-ui .mapsymbol-admin .mapsymbol-form :where(input, select, textarea),
body.elvis-admin-ui .mapsymbol-admin .mapsymbol-filter,
body.elvis-admin-ui .contact-import :where(input[type="file"], input[type="text"], input[type="number"], select),
body.elvis-admin-ui .fvs_module_config_wrap :where(input[type="number"], input[type="text"], select) {
	width: 100%;
	max-width: 100%;
	min-height: 46px;
	box-sizing: border-box;
	padding: 9px 11px;
	border: 1px solid #cbd5e1;
	border-radius: 11px;
	outline: none;
	background: #ffffff;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
	color: var(--admin-ink);
	font: inherit;
}

body.elvis-admin-ui :is(
	.admin_area,
	.tabletcfg_card,
	.licensecfg_card,
	.dashboard-token-card,
	.mapsymbol-admin,
	.contact-import,
	.fvs_module_config_wrap
) :where(input, select, textarea):focus {
	border-color: #4b92c7;
	box-shadow: 0 0 0 4px rgba(23, 106, 168, 0.12);
}

body.elvis-admin-ui :is(.admin_area, .tabletcfg_card, .licensecfg_card, .fvs_module_config_wrap) input[type="checkbox"],
body.elvis-admin-ui .contact-import input[type="checkbox"],
body.elvis-admin-ui .mapsymbol-admin input[type="checkbox"] {
	width: 22px;
	height: 22px;
	min-height: 22px;
	accent-color: var(--admin-primary);
}

body.elvis-admin-ui :is(.ai-settings-note-error, .ir-devices-msg-error, .ir-equip-msg-error) {
	color: #991b1b;
}

body.elvis-admin-ui :is(.ai-settings-note-ok, .ir-devices-msg-ok, .ir-equip-msg-ok) {
	color: #166534;
}

body.elvis-admin-ui :is(
	.ai-settings-msg-ok,
	.ir-settings-msg-ok,
	.ir-devices-msg-ok,
	.ir-equip-msg-ok,
	.fdisk-admin-msg-ok,
	.vehicle-fdisk-msg-ok,
	.contact-import-notice,
	.blattler_admin_success
) {
	border: 1px solid #86efac;
	background: #f0fdf4;
	color: #166534;
}

body.elvis-admin-ui :is(
	.ai-settings-msg-error,
	.ir-settings-msg-error,
	.ir-devices-msg-error,
	.ir-equip-msg-error,
	.fdisk-admin-msg-error,
	.vehicle-fdisk-msg-error,
	.contact-import-notice.is-error,
	.blattler_admin_error
) {
	border: 1px solid #fecaca;
	background: #fff5f5;
	color: #991b1b;
}

body.elvis-admin-ui :is(.tabletcfg_switch_row, .tabletcfg_state, .licensecfg_state, .tabletcfg_runtime, .trainingcfg_cleanup) {
	border: 1px solid var(--admin-line);
	border-radius: 13px;
	background: var(--admin-surface-soft);
	color: var(--admin-ink);
}

body.elvis-admin-ui .tabletcfg_runtime_ok {
	border-color: #86efac;
	background: #f0fdf4;
	color: #166534;
}

body.elvis-admin-ui .tabletcfg_runtime_warn {
	border-color: #fecaca;
	background: #fff5f5;
	color: #991b1b;
}

body.elvis-admin-ui .tabletcfg_switch_slider {
	border: 1px solid #dc2626;
	background: linear-gradient(135deg, #b91c1c, #ef4444);
}

body.elvis-admin-ui .tabletcfg_switch input:checked + .tabletcfg_switch_slider {
	border-color: #16a34a;
	background: linear-gradient(135deg, #15803d, #22c55e);
}

body.elvis-admin-ui :is(.offlinecfg_chip, .module-recipient-chip, .ir-flag-rights-chip, .ir-devices-tag, .ir-equip-tag) {
	border: 1px solid #bfdbfe;
	background: #eff6ff;
	color: #1e3a8a;
}

body.elvis-admin-ui :is(.module-recipient-chip button, .ir-flag-rights-chip button) {
	color: #b91c1c;
}

body.elvis-admin-ui .mapsymbol-admin {
	--msa-surface: #ffffff;
	--msa-surface-soft: #f8fafc;
	--msa-border: #dce3ec;
}

body.elvis-admin-ui :is(.mapsymbol-head span, .mapsymbol-list-head > div > span) {
	color: #075985;
}

body.elvis-admin-ui .mapsymbol-list-head {
	align-items: center;
	margin-bottom: 14px;
}

body.elvis-admin-ui .mapsymbol-list-head h3 {
	color: var(--admin-ink);
}

body.elvis-admin-ui :is(.mapsymbol-form label > span, .contact-import-field > span, .contact-import-fieldset legend) {
	color: #475569;
}

body.elvis-admin-ui :is(.mapsymbol-form label > span small, .mapsymbol-filter, .contact-import-table small) {
	color: var(--admin-muted);
}

body.elvis-admin-ui .mapsymbol-filter input {
	color: var(--admin-ink);
}

body.elvis-admin-ui :is(.contact-import-check, .contact-import-phone-map, .contact-import-duplicate, .contact-import-summary div) {
	border: 1px solid #e2e8f0;
	background: var(--admin-surface-soft);
	color: var(--admin-ink);
}

body.elvis-admin-ui .contact-import-meta span {
	background: #eff6ff;
	color: #1e3a8a;
}

body.elvis-admin-ui .contact-import-summary strong {
	color: #b45309;
}

body.elvis-admin-ui :is(
	.dashboard-token-table-wrap,
	.licensecfg_table_wrap,
	.fdisk-admin-table-wrap,
	.ir-devices-table-wrap,
	.ir-equip-table-wrap,
	.contact-import-table-wrap,
	.dbtools-table-wrap
) {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--admin-line);
	border-radius: 13px;
	background: #ffffff;
	overflow: auto;
	overscroll-behavior-inline: contain;
	-webkit-overflow-scrolling: touch;
}

body.elvis-admin-ui :is(
	table.dashboard-token-table,
	.licensecfg_table,
	.fdisk-admin-table,
	.ir-devices-table,
	.ir-equip-table,
	.contact-import-table,
	.fvs_module_config_table
) {
	background: #ffffff;
	color: var(--admin-ink);
}

body.elvis-admin-ui :is(
	table.dashboard-token-table,
	.licensecfg_table,
	.fdisk-admin-table,
	.ir-devices-table,
	.ir-equip-table,
	.contact-import-table,
	.fvs_module_config_table
) thead,
body.elvis-admin-ui :is(
	table.dashboard-token-table,
	.licensecfg_table,
	.fdisk-admin-table,
	.ir-devices-table,
	.ir-equip-table,
	.contact-import-table,
	.fvs_module_config_table
) thead th {
	border-color: var(--admin-line);
	background: var(--admin-surface-muted);
	color: #334155;
}

body.elvis-admin-ui :is(
	table.dashboard-token-table,
	.licensecfg_table,
	.fdisk-admin-table,
	.ir-devices-table,
	.ir-equip-table,
	.contact-import-table,
	.fvs_module_config_table
) tbody td {
	border-color: #e5eaf0;
	background: #ffffff;
	color: var(--admin-ink);
}

body.elvis-admin-ui :is(
	table.dashboard-token-table,
	.licensecfg_table,
	.fdisk-admin-table,
	.ir-devices-table,
	.ir-equip-table,
	.contact-import-table,
	.fvs_module_config_table
) tbody tr:nth-child(even) td {
	background: #f8fafc;
}

body.elvis-admin-ui :is(
	.ai-settings-btn,
	.ir-settings-btn,
	.ir-devices-btn,
	.ir-equip-btn,
	.ir-flag-rights-add,
	.ir-password-generate,
	.fdisk-admin-btn,
	.module-recipient-add-btn,
	.module-recipient-save-btn,
	.vehicle-fdisk-btn,
	.dashboard-token-copy-btn,
	.token-deactivate-btn,
	.contact-import-button,
	.mapsymbol-button,
	.dgsync_btn,
	.blattler_admin_btn_inline,
	.fvs_module_config_actions .main_btn
) {
	min-height: 46px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	box-sizing: border-box;
	padding: 10px 15px;
	border: 1px solid transparent;
	border-radius: 11px;
	font: inherit;
	font-weight: 800;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	touch-action: manipulation;
}

body.elvis-admin-ui :is(
	.ir-devices-btn-add,
	.ir-equip-btn-add,
	.ir-equip-btn-import,
	.ir-flag-rights-add,
	.ir-password-generate,
	.module-recipient-add-btn,
	.vehicle-fdisk-btn,
	.dashboard-token-copy-btn,
	.mapsymbol-button-primary,
	.contact-import-button
) {
	background: linear-gradient(150deg, var(--admin-primary), var(--admin-primary-strong));
	color: #ffffff;
}

body.elvis-admin-ui :is(
	.ai-settings-btn-primary,
	.ir-settings-btn,
	.fdisk-admin-btn:not(.fdisk-admin-btn-secondary),
	.module-recipient-save-btn,
	.fvs_module_config_actions .main_btn
) {
	background: linear-gradient(150deg, #b91c1c, #991b1b);
	color: #ffffff;
}

body.elvis-admin-ui :is(
	.ai-settings-btn-secondary,
	.fdisk-admin-btn-secondary,
	.mapsymbol-button-secondary,
	.contact-import-button.is-secondary
) {
	border-color: #cbd5e1;
	background: #ffffff;
	color: #334155;
}

body.elvis-admin-ui :is(.token-deactivate-btn, .contact-import-button.is-danger, .dgsync_btn_stop) {
	border-color: #fecaca;
	background: #fff5f5;
	color: #b91c1c;
}

body.elvis-admin-ui :is(
	.module-recipient-search,
	.ir-devices-search,
	.ir-equip-search,
	.fdisk-admin-table input,
	.mapsymbol-filter input,
	.contact-import input
)::placeholder {
	color: #94a3b8;
	opacity: 1;
}

body.elvis-admin-ui .mapsymbol-form input[type="file"]::file-selector-button,
body.elvis-admin-ui .contact-import input[type="file"]::file-selector-button {
	border: 0;
	border-radius: 8px;
	background: #e2e8f0;
	color: #334155;
	font: inherit;
	font-weight: 750;
}

body.elvis-admin-ui .mapsymbol-delete-form button {
	border-color: #fecaca;
	background: #fff5f5;
	color: #b91c1c;
}

body.elvis-admin-ui .mapsymbol-readonly p {
	color: var(--admin-muted);
}

body.elvis-admin-ui .mapsymbol-readonly span {
	color: #075985;
}

body.elvis-admin-ui .contact-import-table tr.has-error td {
	background: #fff5f5;
}

body.elvis-admin-ui .contact-import-status-ok { color: #15803d; }
body.elvis-admin-ui .contact-import-status-error { color: #b91c1c; }
body.elvis-admin-ui .contact-import-status-warning { color: #a16207; }

body.elvis-admin-ui .mapsymbol-notice.is-ok {
	border-color: #86efac;
	background: #f0fdf4;
	color: #166534;
}

body.elvis-admin-ui .mapsymbol-notice.is-error {
	border-color: #fecaca;
	background: #fff5f5;
	color: #991b1b;
}

body.elvis-admin-ui :is(.ai-settings-actions, .ir-settings-actions, .fdisk-admin-actions, .module-recipient-save-actions, .fvs_module_config_actions) {
	gap: 10px;
}

body.elvis-admin-ui :is(.admin_area > .table-responsive, .user-mgmt-list-card) {
	border: 1px solid var(--admin-line);
	border-radius: 16px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
}

body.elvis-admin-ui .admin_area .dataTables_wrapper {
	width: 100%;
	box-sizing: border-box;
	padding: clamp(12px, 2vw, 18px);
	border-radius: 15px;
	background: #ffffff;
	box-shadow: none;
	color: var(--admin-ink);
}

body.elvis-admin-ui .admin_area table.dataTable thead,
body.elvis-admin-ui .admin_area table.dataTable thead th {
	background: var(--admin-surface-muted);
	color: #334155 !important;
}

body.elvis-admin-ui .admin_area table.dataTable :is(th, td) {
	border-color: #e5eaf0;
	color: var(--admin-ink);
}

body.elvis-admin-ui .admin_area table.dataTable tbody tr:nth-child(even) {
	background: #f8fafc;
}

@media (max-width: 900px) {
	body.elvis-admin-ui .admin_wrapper,
	body.elvis-admin-ui .fvs_module_config_wrap,
	body.elvis-admin-ui .mapsymbol-admin {
		width: calc(100% - 16px);
	}

	body.elvis-admin-ui :is(
		.ai-settings-grid,
		.ir-devices-grid,
		.ir-equip-grid,
		.ir-flag-rights-grid,
		.ir-password-grid,
		.fdisk-admin-grid,
		.module-recipient-row,
		.contact-import-file-row,
		.contact-import-prepare-grid,
		.contact-import-mapping-grid,
		.mapsymbol-create-form
	) {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 760px) {
	body.elvis-admin-ui :is(
		.tabletcfg_card,
		.licensecfg_card,
		.dashboard-token-card,
		.ai-settings-card,
		.ir-settings-card,
		.ir-devices-card,
		.ir-equip-card,
		.ir-flag-rights-card,
		.fdisk-admin-card,
		.module-recipient-card,
		.vehicle-fdisk-card,
		.contact-import-head,
		.contact-import-card,
		.mapsymbol-head,
		.mapsymbol-card
	) {
		padding: 14px;
		border-radius: 15px;
	}

	body.elvis-admin-ui :is(
		.ai-settings-actions,
		.ir-settings-actions,
		.ir-devices-actions,
		.ir-equip-actions,
		.fdisk-admin-actions,
		.module-recipient-save-actions,
		.dgsync_actions,
		.contact-import-actions,
		.mapsymbol-form-actions
	) {
		align-items: stretch;
		flex-direction: column;
		justify-content: stretch;
	}

	body.elvis-admin-ui :is(
		.ai-settings-actions,
		.ir-settings-actions,
		.ir-devices-actions,
		.ir-equip-actions,
		.fdisk-admin-actions,
		.module-recipient-save-actions,
		.dgsync_actions,
		.contact-import-actions,
		.mapsymbol-form-actions
	) :is(button, .admin_btn, .main_btn, .contact-import-button, .mapsymbol-button),
	body.elvis-admin-ui :is(.ir-devices-btn-add, .ir-equip-btn-add, .ir-equip-btn-import, .ir-flag-rights-add, .ir-password-generate, .module-recipient-add-btn) {
		width: 100%;
	}

	body.elvis-admin-ui :is(.ir-devices-table, .ir-equip-table, table.dashboard-token-table, .licensecfg_table),
	body.elvis-admin-ui :is(.ir-devices-table, .ir-equip-table, table.dashboard-token-table, .licensecfg_table) :is(tbody, tr, td) {
		display: block;
		width: 100%;
		min-width: 0;
		box-sizing: border-box;
	}

	body.elvis-admin-ui :is(.ir-devices-table, .ir-equip-table, table.dashboard-token-table, .licensecfg_table) thead {
		display: none;
	}

	body.elvis-admin-ui :is(.ir-devices-table, .ir-equip-table, table.dashboard-token-table, .licensecfg_table) tbody tr {
		margin: 0 0 10px;
		padding: 10px;
		border: 1px solid var(--admin-line);
		border-radius: 13px;
		background: #ffffff;
	}

	body.elvis-admin-ui :is(.ir-devices-table, .ir-equip-table, table.dashboard-token-table, .licensecfg_table) tbody td,
	body.elvis-admin-ui :is(.ir-devices-table, .ir-equip-table, table.dashboard-token-table, .licensecfg_table) tbody tr:nth-child(even) td {
		padding: 7px 5px;
		border: 0;
		background: transparent;
		overflow-wrap: anywhere;
	}

	body.elvis-admin-ui :is(.ir-devices-table, .ir-equip-table) tbody td:nth-child(1)::before { content: "FDISK"; }
	body.elvis-admin-ui :is(.ir-devices-table, .ir-equip-table) tbody td:nth-child(2)::before { content: "ELVIS-Bezeichnung"; }
	body.elvis-admin-ui :is(.ir-devices-table, .ir-equip-table) tbody td:nth-child(3)::before { content: "Typ"; }
	body.elvis-admin-ui table.dashboard-token-table tbody td:nth-child(1)::before { content: "ID"; }
	body.elvis-admin-ui table.dashboard-token-table tbody td:nth-child(2)::before { content: "Beschreibung"; }
	body.elvis-admin-ui table.dashboard-token-table tbody td:nth-child(3)::before { content: "Status"; }
	body.elvis-admin-ui table.dashboard-token-table tbody td:nth-child(4)::before { content: "Erstellt am"; }
	body.elvis-admin-ui table.dashboard-token-table tbody td:nth-child(5)::before { content: "Zuletzt verwendet"; }
	body.elvis-admin-ui table.dashboard-token-table tbody td:nth-child(6)::before { content: "Erstellt von"; }
	body.elvis-admin-ui table.dashboard-token-table tbody td:nth-child(7)::before { content: "Aktion"; }
	body.elvis-admin-ui .licensecfg_table tbody td:nth-child(1)::before { content: "Modul"; }
	body.elvis-admin-ui .licensecfg_table tbody td:nth-child(2)::before { content: "Key"; }
	body.elvis-admin-ui .licensecfg_table tbody td:nth-child(3)::before { content: "Status"; }
	body.elvis-admin-ui .licensecfg_table tbody td:nth-child(4)::before { content: "Gültig bis"; }
	body.elvis-admin-ui .licensecfg_table tbody td:nth-child(5)::before { content: "Info"; }

	body.elvis-admin-ui :is(.ir-devices-table, .ir-equip-table, table.dashboard-token-table, .licensecfg_table) tbody td::before {
		display: block;
		margin-bottom: 4px;
		color: var(--admin-muted);
		font-size: 0.72rem;
		font-weight: 850;
		letter-spacing: 0.05em;
		text-transform: uppercase;
	}

	body.elvis-admin-ui :is(.ir-devices-table-wrap, .ir-equip-table-wrap, .dashboard-token-table-wrap, .licensecfg_table_wrap) {
		border: 0;
		background: transparent;
		overflow: visible;
	}
}

/* ===== Module recipient workspace ===== */
body.elvis-admin-ui .module-recipient-page {
	width: min(100%, 1320px);
	margin: 0 auto 84px;
	gap: 16px;
	color: var(--admin-ink);
}

body.elvis-admin-ui .module-recipient-header {
	width: 100%;
	box-sizing: border-box;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	padding: clamp(20px, 3vw, 32px);
	border: 1px solid var(--admin-line);
	border-radius: 20px;
	background: linear-gradient(145deg, #ffffff, #f8fafc);
	box-shadow: 0 12px 34px rgba(15, 23, 42, 0.1);
	color: var(--admin-ink);
}

body.elvis-admin-ui .module-recipient-kicker,
body.elvis-admin-ui .module-recipient-panel-kicker,
body.elvis-admin-ui .module-recipient-nav-title {
	margin: 0 0 5px;
	color: #075985;
	font-size: 0.73rem;
	font-weight: 850;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
}

body.elvis-admin-ui .module-recipient-headline {
	margin: 0;
	color: #172033;
	font-size: clamp(1.45rem, 3vw, 2rem);
	font-weight: 850;
	line-height: 1.2;
}

body.elvis-admin-ui .module-recipient-intro {
	max-width: 74ch;
	margin: 10px 0 0;
	color: #526176;
	font-size: 0.98rem;
	line-height: 1.55;
	opacity: 1;
}

body.elvis-admin-ui .module-recipient-summary {
	flex: 0 0 auto;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 8px;
}

body.elvis-admin-ui .module-recipient-summary span {
	display: inline-flex;
	align-items: baseline;
	gap: 5px;
	padding: 8px 11px;
	border: 1px solid #bfdbfe;
	border-radius: 999px;
	background: #eff6ff;
	color: #1e3a8a;
	font-size: 0.82rem;
	font-weight: 700;
	white-space: nowrap;
}

body.elvis-admin-ui .module-recipient-summary strong {
	font-size: 1rem;
}

body.elvis-admin-ui .module-recipient-notice {
	width: 100%;
	box-sizing: border-box;
	margin: 0;
	padding: 13px 15px;
	border: 1px solid #cbd5e1;
	border-radius: 13px;
	background: #ffffff;
	color: #475569;
}

body.elvis-admin-ui .module-recipient-notice.is-warning {
	border-color: #fde68a;
	background: #fffbeb;
	color: #92400e;
}

body.elvis-admin-ui #moduleRecipientForm {
	width: 100%;
}

body.elvis-admin-ui .module-recipient-workspace {
	display: grid;
	grid-template-columns: minmax(230px, 270px) minmax(0, 1fr);
	align-items: stretch;
	gap: 18px;
	width: 100%;
}

body.elvis-admin-ui .module-recipient-module-nav {
	position: sticky;
	top: 16px;
	display: grid;
	gap: 8px;
	padding: 14px;
	border: 1px solid var(--admin-line);
	border-radius: 18px;
	background: #ffffff;
	box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}

body.elvis-admin-ui .module-recipient-nav-title {
	padding: 2px 4px 7px;
}

body.elvis-admin-ui .module-recipient-module-tab {
	width: 100%;
	min-height: 64px;
	box-sizing: border-box;
	display: grid;
	grid-template-columns: 38px minmax(0, 1fr) auto;
	align-items: center;
	gap: 10px;
	padding: 9px 10px;
	border: 1px solid transparent;
	border-radius: 13px;
	background: transparent;
	color: #334155;
	font: inherit;
	text-align: left;
	cursor: pointer;
	touch-action: manipulation;
	transition: border-color 160ms ease, background 160ms ease, color 160ms ease, transform 160ms ease;
}

body.elvis-admin-ui .module-recipient-module-tab:hover {
	border-color: #dbe7f1;
	background: #f8fafc;
	transform: translateX(2px);
}

body.elvis-admin-ui .module-recipient-module-tab.is-active {
	border-color: #93c5fd;
	background: linear-gradient(145deg, #eff6ff, #dbeafe);
	color: #0b4f85;
}

body.elvis-admin-ui .module-recipient-tab-icon {
	width: 38px;
	height: 38px;
	display: grid;
	place-items: center;
	border-radius: 11px;
	background: #eef2f7;
	color: #526176;
}

body.elvis-admin-ui .module-recipient-module-tab.is-active .module-recipient-tab-icon {
	background: var(--admin-primary);
	color: #ffffff;
}

body.elvis-admin-ui .module-recipient-tab-copy {
	min-width: 0;
	display: grid;
	gap: 3px;
}

body.elvis-admin-ui .module-recipient-tab-copy strong {
	overflow-wrap: anywhere;
	font-size: 0.92rem;
	line-height: 1.2;
}

body.elvis-admin-ui .module-recipient-tab-copy small {
	color: var(--admin-muted);
	font-size: 0.74rem;
}

body.elvis-admin-ui .module-recipient-tab-arrow {
	color: #94a3b8;
	font-size: 0.75rem;
}

body.elvis-admin-ui .module-recipient-panels {
	min-width: 0;
	display: grid;
}

body.elvis-admin-ui .module-recipient-panel[hidden] {
	display: none !important;
}

body.elvis-admin-ui .module-recipient-card.module-recipient-panel {
	width: 100%;
	min-width: 0;
	height: 100%;
	box-sizing: border-box;
	margin: 0;
	padding: clamp(18px, 2.5vw, 28px);
	border: 1px solid var(--admin-line);
	border-radius: 20px;
	background: #ffffff;
	box-shadow: 0 12px 34px rgba(15, 23, 42, 0.09);
	color: var(--admin-ink);
}

body.elvis-admin-ui .module-recipient-panel-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
	padding-bottom: 17px;
	border-bottom: 1px solid #e5eaf0;
}

body.elvis-admin-ui .module-recipient-title {
	margin: 0;
	color: #172033;
	font-size: clamp(1.2rem, 2.3vw, 1.6rem);
	font-weight: 850;
	line-height: 1.2;
}

body.elvis-admin-ui .module-recipient-count-badge {
	display: inline-flex;
	align-items: baseline;
	gap: 5px;
	padding: 7px 10px;
	border: 1px solid #bfdbfe;
	border-radius: 999px;
	background: #eff6ff;
	color: #1e3a8a;
	font-size: 0.78rem;
	font-weight: 750;
	white-space: nowrap;
}

body.elvis-admin-ui .module-recipient-count-badge strong {
	font-size: 0.95rem;
}

body.elvis-admin-ui .module-recipient-panel-note {
	margin: 16px 0 0;
	color: #475569;
	font-size: 0.86rem;
	line-height: 1.5;
}

body.elvis-admin-ui .module-recipient-target-group {
	margin-top: 20px;
}

body.elvis-admin-ui .module-recipient-target-title {
	margin: 0 0 4px;
	color: #172033;
	font-size: 0.95rem;
	font-weight: 800;
}

body.elvis-admin-ui .module-recipient-target-field {
	max-width: 420px;
	margin-top: 16px;
}

body.elvis-admin-ui .module-recipient-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	gap: 12px;
	margin-top: 20px;
}

body.elvis-admin-ui .module-recipient-controls {
	min-width: 0;
	display: grid;
	grid-template-columns: minmax(180px, 0.8fr) minmax(260px, 1.2fr);
	gap: 12px;
}

body.elvis-admin-ui .module-recipient-field {
	min-width: 0;
	display: grid;
	align-content: start;
	gap: 7px;
}

body.elvis-admin-ui .module-recipient-label,
body.elvis-admin-ui .module-recipient-selection-title {
	margin: 0;
	color: #475569;
	font-size: 0.78rem;
	font-weight: 850;
	letter-spacing: 0.035em;
	line-height: 1.2;
	text-transform: uppercase;
}

body.elvis-admin-ui :is(.module-recipient-search, .module-recipient-select) {
	width: 100%;
	min-width: 0;
	max-width: 100%;
	min-height: 48px;
	box-sizing: border-box;
	padding: 10px 12px;
	border: 1px solid #cbd5e1;
	border-radius: 11px;
	background: #ffffff;
	color: var(--admin-ink);
	font: inherit;
}

body.elvis-admin-ui .module-recipient-search::placeholder {
	color: #94a3b8;
	opacity: 1;
}

body.elvis-admin-ui .module-recipient-select :is(optgroup, option) {
	background: #ffffff;
	color: #172033;
}

body.elvis-admin-ui .module-recipient-add-btn {
	min-width: 150px;
	min-height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px 15px;
	border: 1px solid transparent;
	border-radius: 11px;
	background: linear-gradient(150deg, var(--admin-primary), var(--admin-primary-strong));
	box-shadow: 0 7px 18px rgba(11, 79, 133, 0.2);
	color: #ffffff;
	font: inherit;
	font-weight: 800;
	cursor: pointer;
	touch-action: manipulation;
}

body.elvis-admin-ui .module-recipient-add-btn:hover {
	filter: brightness(1.06);
	transform: translateY(-1px);
}

body.elvis-admin-ui .module-recipient-row-picker {
	margin-top: 20px;
}

body.elvis-admin-ui .module-recipient-picker {
	position: relative;
}

body.elvis-admin-ui .module-recipient-picker-control {
	position: relative;
	display: block;
}

body.elvis-admin-ui .module-recipient-picker-control > i {
	position: absolute;
	z-index: 1;
	left: 15px;
	top: 50%;
	transform: translateY(-50%);
	color: #94a3b8;
	pointer-events: none;
}

body.elvis-admin-ui .module-recipient-picker-control .module-recipient-picker-search {
	padding: 10px 12px 10px 44px;
}

body.elvis-admin-ui .module-recipient-picker-results {
	position: absolute;
	z-index: 20;
	left: 0;
	right: 0;
	top: calc(100% + 6px);
	max-height: min(520px, 65vh);
	overflow-y: auto;
	padding: 6px;
	background: #ffffff;
	border: 1px solid #cbd5e1;
	border-radius: 11px;
	box-shadow: 0 12px 28px rgba(15, 23, 42, 0.18);
}

body.elvis-admin-ui .module-recipient-picker-option {
	display: block;
	width: 100%;
	text-align: left;
	padding: 9px 12px;
	border: 0;
	border-radius: 8px;
	background: none;
	color: var(--admin-ink);
	font: inherit;
	cursor: pointer;
}

body.elvis-admin-ui .module-recipient-picker-option:hover,
body.elvis-admin-ui .module-recipient-picker-option:focus-visible {
	background: #eff6ff;
	outline: 0;
}

body.elvis-admin-ui .module-recipient-picker-divider {
	margin: 6px 4px;
	border-top: 1px solid #e5eaf0;
}

body.elvis-admin-ui .module-recipient-picker-heading {
	padding: 8px 12px 4px;
	color: #64748b;
	font-size: 0.72rem;
	font-weight: 850;
	letter-spacing: 0.045em;
	text-transform: uppercase;
}

body.elvis-admin-ui .module-recipient-selection-block {
	min-height: 92px;
	margin-top: 20px;
	padding: 15px;
	border: 1px solid #e2e8f0;
	border-radius: 14px;
	background: #f8fafc;
}

body.elvis-admin-ui .module-recipient-selection-title {
	margin-bottom: 10px;
}

body.elvis-admin-ui .module-recipient-selected {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
}

body.elvis-admin-ui .module-recipient-chip {
	max-width: 100%;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	box-sizing: border-box;
	padding: 7px 8px 7px 11px;
	border: 1px solid #bfdbfe;
	border-radius: 11px;
	background: #eff6ff;
	color: #1e3a8a;
	font-size: 0.86rem;
}

body.elvis-admin-ui .module-recipient-chip-label {
	min-width: 0;
	overflow-wrap: anywhere;
}

body.elvis-admin-ui .module-recipient-chip button {
	width: 30px;
	min-width: 30px;
	height: 30px;
	min-height: 30px;
	display: grid;
	place-items: center;
	padding: 0;
	border: 0;
	border-radius: 9px;
	background: #dbeafe;
	color: #b91c1c;
	font: inherit;
	font-size: 1rem;
	font-weight: 850;
	cursor: pointer;
}

body.elvis-admin-ui .module-recipient-chip button:hover {
	background: #fee2e2;
}

body.elvis-admin-ui .module-recipient-empty {
	margin: 0;
	color: var(--admin-muted);
	font-style: normal;
	opacity: 1;
}

body.elvis-admin-ui .module-recipient-save-actions {
	width: min(560px, 100%);
	margin: 18px 0 0 auto;
}

body.elvis-admin-ui .module-recipient-save-btn {
	width: 100%;
	min-height: 54px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	font-size: 1rem;
	line-height: 1.2;
	text-transform: none;
}

@media (max-width: 1000px) {
	body.elvis-admin-ui .module-recipient-workspace {
		grid-template-columns: minmax(205px, 230px) minmax(0, 1fr);
	}

	body.elvis-admin-ui .module-recipient-controls {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 820px) {
	body.elvis-admin-ui .module-recipient-header {
		align-items: stretch;
		flex-direction: column;
		gap: 16px;
	}

	body.elvis-admin-ui .module-recipient-summary {
		justify-content: flex-start;
	}

	body.elvis-admin-ui .module-recipient-workspace {
		grid-template-columns: minmax(0, 1fr);
	}

	body.elvis-admin-ui .module-recipient-module-nav {
		position: static;
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	body.elvis-admin-ui .module-recipient-nav-title {
		grid-column: 1 / -1;
	}

	body.elvis-admin-ui .module-recipient-module-tab {
		grid-template-columns: 34px minmax(0, 1fr);
		min-height: 60px;
	}

	body.elvis-admin-ui .module-recipient-tab-icon {
		width: 34px;
		height: 34px;
	}

	body.elvis-admin-ui .module-recipient-tab-arrow {
		display: none;
	}
}

@media (max-width: 620px) {
	body.elvis-admin-ui .module-recipient-header,
	body.elvis-admin-ui .module-recipient-card.module-recipient-panel {
		padding: 16px;
		border-radius: 16px;
	}

	body.elvis-admin-ui .module-recipient-module-nav {
		grid-template-columns: minmax(0, 1fr);
		padding: 10px;
		border-radius: 15px;
	}

	body.elvis-admin-ui .module-recipient-nav-title {
		display: none;
	}

	body.elvis-admin-ui .module-recipient-module-tab {
		grid-template-columns: 38px minmax(0, 1fr) auto;
		min-height: 58px;
	}

	body.elvis-admin-ui .module-recipient-tab-arrow {
		display: block;
	}

	body.elvis-admin-ui .module-recipient-panel-head {
		align-items: stretch;
		flex-direction: column;
		gap: 10px;
	}

	body.elvis-admin-ui .module-recipient-count-badge {
		align-self: flex-start;
	}

	body.elvis-admin-ui .module-recipient-row {
		grid-template-columns: minmax(0, 1fr);
	}

	body.elvis-admin-ui .module-recipient-add-btn {
		width: 100%;
	}

	body.elvis-admin-ui .module-recipient-chip {
		width: 100%;
		justify-content: space-between;
	}

	body.elvis-admin-ui .module-recipient-summary span {
		white-space: normal;
	}
}

/* Incident report rights use the same compact workspace as module recipients. */
body.elvis-admin-ui .ir-rights-description {
	max-width: 68ch;
	margin: 8px 0 0;
	color: var(--admin-muted);
	font-size: 0.92rem;
	line-height: 1.5;
}

body.elvis-admin-ui .ir-rights-nav {
	align-content: start;
}

body.elvis-admin-ui .ir-flag-rights-list {
	margin: 0;
}

body.elvis-admin-ui .ir-password-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	gap: 12px;
	margin-top: 20px;
}

body.elvis-admin-ui .ir-password-grid input {
	width: 100%;
	min-height: 48px;
	box-sizing: border-box;
	padding: 10px 12px;
	border: 1px solid #cbd5e1;
	border-radius: 11px;
	background: #ffffff;
	color: var(--admin-ink);
	font: inherit;
}

body.elvis-admin-ui .ir-password-generate {
	min-height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px 15px;
	border: 1px solid transparent;
	border-radius: 11px;
	background: linear-gradient(150deg, var(--admin-primary), var(--admin-primary-strong));
	box-shadow: 0 7px 18px rgba(11, 79, 133, 0.2);
	color: #ffffff;
	font: inherit;
	font-weight: 800;
	cursor: pointer;
	touch-action: manipulation;
}

body.elvis-admin-ui .ir-password-status {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 8px 11px;
	border: 1px solid #cbd5e1;
	border-radius: 999px;
	background: #f8fafc;
	color: #475569;
	font-size: 0.8rem;
	font-weight: 800;
	white-space: nowrap;
}

body.elvis-admin-ui .ir-password-status.is-configured {
	border-color: #86efac;
	background: #f0fdf4;
	color: #166534;
}

body.elvis-admin-ui .ir-password-status.is-empty {
	border-color: #fde68a;
	background: #fffbeb;
	color: #92400e;
}

body.elvis-admin-ui .ir-flag-rights-save {
	padding: 0;
}

@media (max-width: 1000px) {
	body.elvis-admin-ui .ir-password-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	body.elvis-admin-ui .ir-password-generate {
		width: 100%;
	}
}

@media (max-width: 620px) {
	body.elvis-admin-ui .ir-password-status {
		align-self: flex-start;
		white-space: normal;
	}
}

/* ===== FDISK user import ===== */
body.elvis-admin-ui .user-fdisk-wrap {
	width: min(100%, 1440px);
	margin: 0 auto 80px;
	gap: 16px;
}

body.elvis-admin-ui .user-fdisk-wrap > h2 {
	margin: 0;
	color: var(--admin-ink);
	font-size: clamp(1.35rem, 2.5vw, 1.85rem);
	line-height: 1.2;
}

body.elvis-admin-ui .user-fdisk-card {
	width: 100%;
	margin: 0;
	padding: clamp(16px, 2vw, 24px);
	box-sizing: border-box;
	border: 1px solid var(--admin-line);
	border-radius: 18px;
	background: var(--admin-surface);
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.09);
	color: var(--admin-ink);
}

body.elvis-admin-ui .user-fdisk-card h3 {
	margin: 0 0 12px;
	color: var(--admin-ink);
	font-size: 1.15rem;
}

body.elvis-admin-ui :is(.user-fdisk-note, .user-fdisk-status) {
	color: var(--admin-muted);
	opacity: 1;
}

body.elvis-admin-ui .user-fdisk-note {
	margin: 6px 0;
	line-height: 1.55;
}

body.elvis-admin-ui .user-fdisk-status {
	margin-top: 4px;
	font-size: 0.86rem;
}

body.elvis-admin-ui .user-fdisk-msg {
	margin: 0;
	padding: 11px 13px;
	border-radius: 12px;
	font-weight: 700;
}

body.elvis-admin-ui .user-fdisk-msg-ok {
	border: 1px solid #86efac;
	background: #f0fdf4;
	color: #166534;
}

body.elvis-admin-ui .user-fdisk-msg-error {
	border: 1px solid #fecaca;
	background: #fff5f5;
	color: #991b1b;
}

body.elvis-admin-ui .user-fdisk-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 14px;
}

body.elvis-admin-ui .user-fdisk-chip {
	padding: 7px 11px;
	border: 1px solid #bfdbfe;
	border-radius: 999px;
	background: #eff6ff;
	color: #1e3a8a;
	font-size: 0.88rem;
	font-weight: 750;
}

body.elvis-admin-ui :is(.user-fdisk-actions, .user-fdisk-bulk-bar) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

body.elvis-admin-ui .user-fdisk-actions {
	margin-top: 14px;
}

body.elvis-admin-ui .user-fdisk-bulk-bar {
	justify-content: flex-end;
	margin: 0 0 14px;
}

body.elvis-admin-ui .user-fdisk-btn {
	min-height: 44px;
	padding: 9px 14px;
	border: 1px solid transparent;
	border-radius: 11px;
	background: linear-gradient(150deg, var(--admin-primary), var(--admin-primary-strong));
	box-shadow: 0 5px 14px rgba(11, 79, 133, 0.18);
	color: #ffffff;
	font: inherit;
	font-weight: 800;
	line-height: 1.2;
	cursor: pointer;
	touch-action: manipulation;
}

body.elvis-admin-ui .user-fdisk-btn:hover {
	filter: brightness(1.06);
	transform: translateY(-1px);
}

body.elvis-admin-ui .user-fdisk-btn-secondary {
	background: linear-gradient(150deg, var(--admin-primary), var(--admin-primary-strong));
	color: #ffffff;
}

body.elvis-admin-ui .user-fdisk-btn-danger {
	border-color: #fecaca;
	background: #fff5f5;
	box-shadow: none;
	color: #b91c1c;
}

body.elvis-admin-ui .user-fdisk-btn.is-loading {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	cursor: wait;
	transform: none;
	filter: none;
	opacity: 0.82;
}

body.elvis-admin-ui .user-fdisk-btn-spinner {
	display: none;
	width: 16px;
	height: 16px;
	border: 2px solid rgba(255, 255, 255, 0.4);
	border-top-color: #ffffff;
	border-radius: 50%;
	animation: user-fdisk-spin 0.75s linear infinite;
}

body.elvis-admin-ui .user-fdisk-btn.is-loading .user-fdisk-btn-spinner {
	display: inline-block;
}

@keyframes user-fdisk-spin {
	to { transform: rotate(360deg); }
}

body.elvis-admin-ui .user-fdisk-search {
	width: 100%;
	margin: 8px 0 14px;
	box-sizing: border-box;
	background: #ffffff;
	color: var(--admin-ink);
}

body.elvis-admin-ui .user-fdisk-table-wrap {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--admin-line);
	border-radius: 14px;
	background: #ffffff;
	overflow: auto;
	overscroll-behavior-inline: contain;
	-webkit-overflow-scrolling: touch;
}

body.elvis-admin-ui .user-fdisk-table {
	width: 100%;
	min-width: 940px;
	border-collapse: separate;
	border-spacing: 0;
	background: #ffffff;
	color: var(--admin-ink);
}

body.elvis-admin-ui .user-fdisk-table :is(thead, tbody, tr) {
	background: #ffffff;
}

body.elvis-admin-ui .user-fdisk-table th {
	padding: 12px 13px;
	border: 0;
	border-bottom: 1px solid var(--admin-line);
	background: var(--admin-surface-muted);
	color: #334155;
	font-size: 0.78rem;
	font-weight: 850;
	letter-spacing: 0.045em;
	text-align: left;
	text-transform: uppercase;
	vertical-align: middle;
}

body.elvis-admin-ui .user-fdisk-table td {
	padding: 12px 13px;
	border: 0;
	border-bottom: 1px solid #e5eaf0;
	background: #ffffff;
	color: var(--admin-ink);
	vertical-align: middle;
}

body.elvis-admin-ui .user-fdisk-table tbody tr:nth-child(even) td {
	background: #f8fafc;
}

body.elvis-admin-ui .user-fdisk-table tbody tr:hover td {
	background: #eff6ff;
}

body.elvis-admin-ui .user-fdisk-table tbody tr:last-child td {
	border-bottom: 0;
}

body.elvis-admin-ui .user-fdisk-link-form {
	display: grid;
	grid-template-columns: minmax(240px, 1fr) auto auto;
	align-items: center;
	gap: 8px;
}

body.elvis-admin-ui .user-fdisk-link-form select {
	width: 100%;
	min-width: 0;
	max-width: none;
	background: #ffffff;
	color: var(--admin-ink);
}

@media (max-width: 900px) {
	body.elvis-admin-ui .user-fdisk-card {
		padding: 14px;
		border-radius: 15px;
	}

	body.elvis-admin-ui :is(.user-fdisk-actions, .user-fdisk-bulk-bar) {
		align-items: stretch;
		flex-direction: column;
	}

	body.elvis-admin-ui .user-fdisk-btn {
		width: 100%;
		min-height: 48px;
	}

	body.elvis-admin-ui .user-fdisk-table-wrap {
		border: 0;
		background: transparent;
		overflow: visible;
	}

	body.elvis-admin-ui .user-fdisk-table,
	body.elvis-admin-ui .user-fdisk-table tbody,
	body.elvis-admin-ui .user-fdisk-table tr,
	body.elvis-admin-ui .user-fdisk-table td {
		display: block;
		width: 100%;
		min-width: 0;
		box-sizing: border-box;
	}

	body.elvis-admin-ui .user-fdisk-table thead {
		display: none;
	}

	body.elvis-admin-ui .user-fdisk-table tbody {
		background: transparent;
	}

	body.elvis-admin-ui .user-fdisk-table tbody tr {
		margin: 0 0 12px;
		padding: 7px 10px;
		border: 1px solid var(--admin-line);
		border-radius: 14px;
		background: #ffffff;
		box-shadow: 0 6px 18px rgba(15, 23, 42, 0.07);
	}

	body.elvis-admin-ui .user-fdisk-table tbody td,
	body.elvis-admin-ui .user-fdisk-table tbody tr:nth-child(even) td,
	body.elvis-admin-ui .user-fdisk-table tbody tr:hover td {
		display: grid;
		grid-template-columns: minmax(108px, 0.75fr) minmax(0, 1.25fr);
		gap: 10px;
		align-items: start;
		padding: 9px 3px;
		border-bottom: 1px solid #edf1f5;
		background: #ffffff;
		overflow-wrap: anywhere;
	}

	body.elvis-admin-ui .user-fdisk-table tbody td:last-child {
		display: block;
		border-bottom: 0;
	}

	body.elvis-admin-ui .user-fdisk-table tbody td::before {
		color: var(--admin-muted);
		font-size: 0.7rem;
		font-weight: 850;
		letter-spacing: 0.045em;
		text-transform: uppercase;
	}

	body.elvis-admin-ui .user-fdisk-table tbody td:nth-child(1)::before { content: "FDISK-Mitglied"; }
	body.elvis-admin-ui .user-fdisk-table tbody td:nth-child(2)::before { content: "Standesbuchnr."; }
	body.elvis-admin-ui .user-fdisk-table tbody td:nth-child(3)::before { content: "Dienstgrad"; }
	body.elvis-admin-ui .user-fdisk-table tbody td:nth-child(4)::before { content: "Qualifikationen"; }
	body.elvis-admin-ui .user-fdisk-table tbody td:nth-child(5)::before { content: "Status"; }
	body.elvis-admin-ui .user-fdisk-table tbody td:nth-child(6)::before {
		content: "ELVIS-Benutzer";
		display: block;
		margin-bottom: 8px;
	}

	body.elvis-admin-ui .user-fdisk-link-form {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ===== Persistent mobile navigation and module ordering ===== */
.elvis-mobile-nav,
.elvis-mobile-nav-actions {
	display: contents;
}

.elvis-mobile-nav-toggle {
	display: none;
}

.edit-toggle {
	top: max(14px, env(safe-area-inset-top)) !important;
	right: max(74px, calc(env(safe-area-inset-right) + 74px)) !important;
	width: 46px;
	min-width: 46px;
	height: 46px;
	min-height: 46px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.24);
	background: linear-gradient(155deg, rgba(15, 92, 151, 0.96), rgba(3, 57, 108, 0.96));
	box-shadow: 0 10px 24px rgba(2, 8, 24, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.18);
	transition: transform 180ms ease, background 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.edit-toggle:hover {
	transform: translateY(-1px);
	box-shadow: 0 13px 28px rgba(2, 8, 24, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.edit-toggle.is-active {
	border-color: rgba(125, 211, 252, 0.86);
	background: linear-gradient(155deg, #1780c2, #075185);
	box-shadow: 0 0 0 4px rgba(56, 189, 248, 0.18), 0 12px 28px rgba(2, 8, 24, 0.34);
}

.edit-toggle.is-saved {
	border-color: rgba(134, 239, 172, 0.8);
	background: linear-gradient(155deg, #20a65a, #15803d);
}

.edit-toggle.has-save-error {
	border-color: rgba(254, 202, 202, 0.85);
	background: linear-gradient(155deg, #dc2626, #991b1b);
}

@keyframes elvis-sort-save-spin {
	to { transform: rotate(360deg); }
}

.edit-toggle.is-saving i {
	animation: elvis-sort-save-spin 700ms linear infinite;
}

/* Keep the responsive grid unchanged while ordering. */
.module-category-grid.editing {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(clamp(170px, 22vw, 240px), 1fr));
	gap: clamp(12px, 1.4vw, 24px);
}

.module-category-grid.editing > div {
	width: 100%;
}

@keyframes elvis-module-sort-ready {
	0%, 100% { transform: translateY(0) rotate(-0.25deg); }
	50% { transform: translateY(-2px) rotate(0.25deg); }
}

.module-category-grid.editing > .btn-text[data-layout-key] {
	position: relative;
	cursor: grab;
	touch-action: none;
	-webkit-user-select: none;
	user-select: none;
}

.module-category-grid.editing > .btn-text[data-layout-key]:active {
	cursor: grabbing;
}

.module-category-grid.editing > .btn-text .btn-square {
	pointer-events: none;
}

.module-category-grid.editing > .btn-text[data-layout-key] .btn-square {
	animation: elvis-module-sort-ready 1.55s ease-in-out infinite;
	border-color: rgba(125, 211, 252, 0.68);
	box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.13), 0 15px 30px rgba(3, 57, 108, 0.38), inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.module-category-grid.editing > .btn-text[data-layout-key]:nth-child(even) .btn-square {
	animation-delay: -0.78s;
}

.module-category-grid.editing > .btn-text[data-layout-key]::before {
	content: "";
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 2;
	width: 30px;
	height: 30px;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 10px;
	background-color: rgba(2, 8, 24, 0.62);
	background-image: radial-gradient(circle, #ffffff 1.5px, transparent 1.7px);
	background-size: 7px 7px;
	background-position: 4px 4px;
	box-shadow: 0 6px 16px rgba(2, 8, 24, 0.3);
	pointer-events: none;
}

#module_list .btn-text.is-being-sorted {
	z-index: 4300;
	opacity: 0.96;
}

#module_list .btn-text.is-being-sorted .btn-square {
	animation: none !important;
	transform: scale(1.025) !important;
	box-shadow: 0 22px 46px rgba(2, 8, 24, 0.46), 0 0 0 4px rgba(56, 189, 248, 0.22);
}

#module_list .module-sort-placeholder {
	visibility: visible !important;
	min-height: 150px;
	border: 2px dashed rgba(125, 211, 252, 0.76);
	border-radius: 18px;
	background: rgba(56, 189, 248, 0.09);
	box-shadow: inset 0 0 0 4px rgba(56, 189, 248, 0.05);
}

@media (prefers-reduced-motion: reduce) {
	.module-category-grid.editing > .btn-text[data-layout-key] .btn-square,
	.edit-toggle.is-saving i {
		animation: none;
	}
}

@media (max-width: 620px) {
	body.has-elvis-mobile-nav .elvis-app-shell {
		padding-bottom: max(88px, calc(env(safe-area-inset-bottom) + 78px));
	}

	body.has-elvis-mobile-nav .elvis-app-header {
		width: calc(100% - clamp(20px, 2.8vw, 56px));
	}

	.elvis-mobile-nav {
		position: fixed;
		right: max(10px, env(safe-area-inset-right));
		bottom: max(10px, env(safe-area-inset-bottom));
		z-index: 5200;
		display: flex;
		align-items: center;
		justify-content: flex-end;
		gap: 7px;
		padding: 5px;
		border: 1px solid transparent;
		border-radius: 999px;
		background: transparent;
		box-shadow: none;
		-webkit-backdrop-filter: blur(14px);
		backdrop-filter: blur(14px);
		transition: background 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
	}

	.elvis-mobile-nav.is-open {
		border-color: rgba(255, 255, 255, 0.2);
		background: rgba(7, 25, 45, 0.82);
		box-shadow: 0 14px 34px rgba(2, 8, 24, 0.38), inset 0 1px 0 rgba(255, 255, 255, 0.08);
	}

	.elvis-mobile-nav-actions {
		display: flex;
		align-items: center;
		gap: 7px;
		max-width: 0;
		overflow: hidden;
		opacity: 0;
		transform: translateX(14px) scale(0.94);
		transform-origin: right center;
		pointer-events: none;
		transition: max-width 280ms cubic-bezier(0.22, 1, 0.36, 1), opacity 180ms ease, transform 280ms cubic-bezier(0.22, 1, 0.36, 1);
	}

	.elvis-mobile-nav.is-open .elvis-mobile-nav-actions {
		max-width: 230px;
		opacity: 1;
		transform: translateX(0) scale(1);
		pointer-events: auto;
	}

	.elvis-mobile-nav-toggle {
		display: inline-grid;
		place-items: center;
		flex: 0 0 46px;
		width: 46px;
		height: 46px;
		min-width: 46px;
		min-height: 46px;
		padding: 0;
		border: 1px solid rgba(255, 255, 255, 0.24);
		border-radius: 50%;
		background: linear-gradient(155deg, rgba(37, 99, 145, 0.94), rgba(8, 39, 69, 0.94));
		color: #ffffff;
		box-shadow: 0 10px 25px rgba(2, 8, 24, 0.38), inset 0 1px 0 rgba(255, 255, 255, 0.18);
		cursor: pointer;
		touch-action: manipulation;
		transition: transform 220ms ease, background 220ms ease;
	}

	.elvis-mobile-nav.is-open .elvis-mobile-nav-toggle {
		transform: none;
		background: rgba(30, 64, 96, 0.96);
	}

	.elvis-mobile-nav-toggle svg {
		width: 24px;
		height: 24px;
		fill: currentColor;
	}

	.elvis-mobile-nav .back_corner,
	.elvis-mobile-nav .logout_corner,
	.elvis-mobile-nav .edit-toggle,
	.elvis-mobile-nav .admin-header-link,
	.elvis-mobile-nav .noticeboard-header-link {
		position: static !important;
		top: auto !important;
		right: auto !important;
		bottom: auto !important;
		left: auto !important;
		margin: 0;
		flex: 0 0 46px;
	}

	.elvis-mobile-nav .btn_back_corner,
	.elvis-mobile-nav .btn_logout_corner,
	.elvis-mobile-nav .edit-toggle,
	.elvis-mobile-nav .admin-header-link,
	.elvis-mobile-nav .noticeboard-header-link {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 46px;
		min-width: 46px;
		height: 46px;
		min-height: 46px;
		padding: 0;
	}

	.elvis-mobile-nav .admin-header-link,
	.elvis-mobile-nav .noticeboard-header-link {
		border: 1px solid rgba(125, 211, 252, 0.55);
		border-radius: 50%;
		background: linear-gradient(155deg, rgba(15, 92, 151, 0.96), rgba(3, 57, 108, 0.96));
		box-shadow: 0 8px 18px rgba(2, 8, 24, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.18);
		color: #fff;
		font-size: 1.05rem;
		line-height: 1;
		text-decoration: none;
	}

	.module-category-grid.editing {
		grid-template-columns: repeat(2, minmax(132px, 1fr));
		gap: 14px;
	}

	.module-category-grid.editing > .btn-text[data-modul-id]::before {
		top: 7px;
		right: 7px;
		width: 28px;
		height: 28px;
	}
}

/* Header context actions and vehicle selection dialog. */
.elvis-context-value {
	min-width: 0;
	display: flex;
	align-items: center;
	gap: 7px;
}

.elvis-context-value strong {
	min-width: 0;
	flex: 1 1 auto;
}

.elvis-user-settings {
	width: 28px;
	height: 28px;
	flex: 0 0 28px;
	display: grid;
	place-items: center;
	border-radius: 8px;
	color: #cbd5e1;
	text-decoration: none;
	transition: background 160ms ease, color 160ms ease, transform 160ms ease;
}

.elvis-user-settings:hover,
.elvis-user-settings:focus-visible {
	color: #fff;
	background: rgba(125, 211, 252, 0.2);
	transform: rotate(18deg);
}

.elvis-context-vehicle-button {
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.elvis-context-vehicle-button:hover,
.elvis-context-vehicle-button:focus-visible {
	border-color: rgba(125, 211, 252, 0.66);
	background: rgba(14, 116, 144, 0.34);
}

.elvis-context-action {
	flex: 0 0 auto;
	color: #7dd3fc;
	font-size: 0.72rem;
	transition: transform 160ms ease;
}

.elvis-context-vehicle-button[aria-expanded="true"] .elvis-context-action {
	transform: rotate(180deg);
}

body.vehicle-selector-open {
	overflow: hidden;
}

.vehicle_selector_dialog {
	position: fixed;
	inset: 0;
	z-index: 4400;
	padding: clamp(12px, 3vw, 36px);
	display: grid;
	place-items: center;
	background: rgba(2, 8, 24, 0.76);
	backdrop-filter: blur(7px);
}

.vehicle_selector_dialog[hidden] {
	display: none;
}

.vehicle_selector_panel {
	width: min(720px, 100%);
	max-height: min(82vh, 720px);
	overflow: auto;
	padding: clamp(18px, 3vw, 30px);
	border: 1px solid rgba(125, 211, 252, 0.45);
	border-radius: 22px;
	background: linear-gradient(145deg, #173a5d, #071b31 72%);
	box-shadow: 0 28px 70px rgba(0, 0, 0, 0.48), inset 0 1px 0 rgba(255, 255, 255, 0.12);
	color: #f8fafc;
}

.vehicle_selector_header,
.vehicle_selector_heading,
.vehicle_selector_option,
.vehicle_selector_skip {
	display: flex;
	align-items: center;
}

.vehicle_selector_header {
	justify-content: space-between;
	gap: 16px;
}

.vehicle_selector_heading {
	gap: 12px;
}

.vehicle_selector_heading_icon,
.vehicle_selector_option_icon {
	display: grid;
	place-items: center;
	color: #e0f2fe;
	background: linear-gradient(145deg, #0ea5e9, #0369a1);
}

.vehicle_selector_heading_icon {
	width: 46px;
	height: 46px;
	border-radius: 15px;
	box-shadow: 0 8px 18px rgba(3, 105, 161, 0.32);
}

.vehicle_selector_heading p,
.vehicle_selector_heading h2,
.vehicle_selector_intro {
	margin: 0;
}

.vehicle_selector_heading p {
	color: #7dd3fc;
	font-size: 0.73rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.vehicle_selector_heading h2 {
	font-size: clamp(1.25rem, 2vw, 1.65rem);
}

.vehicle_selector_close {
	width: 40px;
	height: 40px;
	display: grid;
	place-items: center;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.09);
	color: #fff;
	cursor: pointer;
}

.vehicle_selector_close:hover,
.vehicle_selector_close:focus-visible {
	background: rgba(255, 255, 255, 0.18);
}

.vehicle_selector_intro {
	margin-top: 18px;
	color: #cbd5e1;
	line-height: 1.5;
}

.vehicle_selector_form,
.vehicle_selector_list {
	display: grid;
	gap: 10px;
}

.vehicle_selector_form {
	margin-top: 18px;
}

.vehicle_selector_option {
	width: 100%;
	min-height: 58px;
	gap: 12px;
	padding: 10px 13px;
	border: 1px solid rgba(255, 255, 255, 0.13);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.07);
	color: #f8fafc;
	font: inherit;
	font-weight: 750;
	text-align: left;
	cursor: pointer;
}

.vehicle_selector_option:hover,
.vehicle_selector_option:focus-visible,
.vehicle_selector_option.is-current {
	border-color: rgba(125, 211, 252, 0.62);
	background: rgba(14, 116, 144, 0.32);
}

.vehicle_selector_option_icon {
	width: 34px;
	height: 34px;
	flex: 0 0 34px;
	border-radius: 10px;
	font-size: 0.84rem;
}

.vehicle_selector_option > span:nth-child(2) {
	min-width: 0;
	flex: 1 1 auto;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.vehicle_selector_option small {
	padding: 4px 7px;
	border-radius: 999px;
	background: rgba(125, 211, 252, 0.18);
	color: #bae6fd;
	font-size: 0.72rem;
	font-weight: 800;
}

.vehicle_selector_skip {
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	border: 1px dashed rgba(203, 213, 225, 0.45);
	border-radius: 11px;
	background: transparent;
	color: #cbd5e1;
	font: inherit;
	font-weight: 750;
	cursor: pointer;
}

.vehicle_selector_skip:hover,
.vehicle_selector_skip:focus-visible {
	border-color: rgba(125, 211, 252, 0.72);
	color: #fff;
	background: rgba(125, 211, 252, 0.1);
}

.vehicle_selector_empty {
	margin: 0;
	padding: 24px 16px;
	border: 1px dashed rgba(255, 255, 255, 0.2);
	border-radius: 14px;
	color: #cbd5e1;
	text-align: center;
}

/* Eigene Einstellungen: same calm, light workspace as the report pages. */
.settings_wrapper {
	width: min(calc(100% - 32px), 1280px);
	margin: 22px auto 28px;
	padding: 0;
	color: #172033;
}

.settings_page_header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 18px;
	padding: clamp(18px, 2.5vw, 28px);
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 18px;
	background: linear-gradient(135deg, rgba(2, 52, 91, 0.94), rgba(2, 27, 52, 0.9));
	box-shadow: 0 14px 34px rgba(2, 6, 23, 0.3);
	color: #fff;
}

.settings_page_kicker {
	margin: 0 0 6px;
	color: #7dd3fc;
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.settings_page_header h1 {
	margin: 0;
	font-size: clamp(1.55rem, 2.5vw, 2.25rem);
	line-height: 1.15;
}

.settings_page_header > div > p:last-child {
	max-width: 740px;
	margin: 8px 0 0;
	color: rgba(226, 232, 240, 0.86);
	line-height: 1.5;
}

.settings_page_user {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	min-width: 210px;
	padding: 10px 12px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 12px;
	background: rgba(2, 17, 44, 0.38);
	color: #e2e8f0;
	font-size: 0.88rem;
}

.settings_page_user > i {
	color: #7dd3fc;
}

.settings_page_user strong {
	display: block;
	margin-top: 2px;
	color: #fff;
}

.settings_group {
	width: 100%;
	margin-bottom: 22px;
}

.settings_group_header {
	align-items: flex-start;
	margin: 0 0 10px;
	padding: 0;
	border: 0;
	color: #fff;
}

.settings_group_title {
	font-size: 1.3rem;
}

.settings_group_subtitle {
	max-width: 520px;
	color: rgba(226, 232, 240, 0.82);
	font-size: 0.92rem;
}

.settings_group .settings_card {
	width: 100%;
	margin-bottom: 12px;
	padding: clamp(16px, 2vw, 22px);
	border: 1px solid #dce3ec;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 8px 22px rgba(15, 23, 42, 0.11);
	color: #172033;
}

.settings_card--highlight {
	border-color: #bfdbfe !important;
	background: linear-gradient(135deg, #fff, #f0f9ff) !important;
}

.settings_section_title {
	color: #1e293b;
	font-size: 1.04rem;
}

.settings_upload_hint,
.settings_current_sound {
	color: #64748b;
	opacity: 1;
}

.settings_row label {
	color: #334155;
}

.settings_row select,
.settings_row input[type="file"],
.settings_row input[type="email"],
.settings_row input[type="number"] {
	border-color: #cbd5e1;
	background: #fff;
	color: #1e293b;
}

.settings_row select:focus,
.settings_row input[type="file"]:focus,
.settings_row input[type="email"]:focus,
.settings_row input[type="number"]:focus {
	border-color: #38bdf8;
	outline: 3px solid rgba(56, 189, 248, 0.18);
}

.settings_signature_pad {
	border-color: #cbd5e1;
	border-radius: 10px;
}

.settings_signature_unavailable {
	color: #b91c1c;
}

.settings_submit input[type="submit"],
.settings_signature_actions input[type="submit"] {
	min-height: 44px;
	padding: 0 16px;
	border: 0;
	border-radius: 10px;
	background: #b91c1c;
	color: #fff;
	font: inherit;
	font-weight: 800;
	cursor: pointer;
}

.settings_submit input[type="submit"] {
	width: min(560px, 100%);
}

.settings_signature_btn {
	width: auto;
	height: 44px;
	padding: 0 16px;
	border: 1px solid #cbd5e1;
	border-radius: 10px;
	background: #fff;
	color: #334155;
	font-size: 0.95rem;
	line-height: 1;
	text-transform: none;
}

.settings_signature_btn:hover,
.settings_submit input[type="submit"]:hover,
.settings_signature_actions input[type="submit"]:hover {
	filter: brightness(0.94);
}

.settings_password_card .main_link {
	margin: 0;
	padding: 0;
}

.settings_password_card .main_btn {
	min-height: 44px;
	height: auto;
	padding: 0 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	background: #b91c1c;
	color: #fff;
	font-size: 1rem;
	line-height: 1;
	text-transform: none;
}

.alarm_sound_table th,
.alarm_sound_table td {
	border-bottom-color: #e2e8f0;
}

.alarm_sound_table th {
	color: #475569;
	opacity: 1;
}

.settings_feedback {
	width: 100%;
	margin-bottom: 14px;
	border: 1px solid transparent;
	border-radius: 12px;
	font-size: 1rem;
}

.settings_feedback_success {
	border-color: #86efac;
	background: #f0fdf4;
	color: #166534;
}

.settings_feedback_error {
	border-color: #fecaca;
	background: #fef2f2;
	color: #b91c1c;
}

@media (max-width: 860px) {
	.settings_wrapper {
		width: min(calc(100% - 16px), 720px);
		margin-top: 12px;
	}

	.settings_page_header,
	.settings_group_header {
		flex-direction: column;
	}

	.settings_page_user {
		min-width: 0;
	}

	.settings_group_subtitle {
		text-align: left;
	}
}

@media (max-width: 620px) {
	.vehicle_selector_panel {
		padding: 16px 14px;
		border-radius: 17px;
	}

	.vehicle_selector_option {
		min-height: 54px;
	}
}

/* Personal settings follow the same master/detail language as the admin workspaces. */
.settings_wrapper {
	--settings-ink: #172033;
	--settings-muted: #64748b;
	--settings-line: #dce3ec;
	--settings-surface: #ffffff;
	--settings-soft: #f8fafc;
	--settings-primary: #176aa8;
	--settings-primary-strong: #0b4f85;
	width: min(calc(100% - 32px), 1320px);
	margin: 0 auto 84px;
	padding: 0;
	display: block;
	color: var(--settings-ink);
}

.settings_page_header {
	width: 100%;
	box-sizing: border-box;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	margin: 0 0 16px;
	padding: clamp(20px, 3vw, 32px);
	border: 1px solid var(--settings-line);
	border-radius: 20px;
	background: linear-gradient(145deg, #ffffff, #f8fafc);
	box-shadow: 0 12px 34px rgba(15, 23, 42, 0.1);
	color: var(--settings-ink);
}

.settings_page_kicker,
.settings_panel_kicker,
.settings_navigation_title {
	margin: 0 0 5px;
	color: #075985;
	font-size: 0.73rem;
	font-weight: 850;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
}

.settings_page_header h1 {
	margin: 0;
	color: var(--settings-ink);
	font-size: clamp(1.45rem, 3vw, 2rem);
	font-weight: 850;
	line-height: 1.2;
}

.settings_page_header > div > p:last-child {
	max-width: 74ch;
	margin: 10px 0 0;
	color: #526176;
	font-size: 0.98rem;
	line-height: 1.55;
}

.settings_page_user {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 8px 11px;
	border: 1px solid #bfdbfe;
	border-radius: 999px;
	background: #eff6ff;
	color: #1e3a8a;
	font-size: 0.82rem;
	font-weight: 700;
	white-space: nowrap;
}

.settings_page_user > i {
	color: var(--settings-primary);
}

.settings_page_user strong {
	margin-left: 3px;
	color: #1e3a8a;
	font-size: 0.9rem;
}

.settings_feedback {
	width: 100%;
	box-sizing: border-box;
	margin: 0 0 16px;
	padding: 13px 15px;
	border-radius: 13px;
	font-size: 0.95rem;
	font-weight: 700;
	text-align: left;
}

.settings_workspace {
	width: 100%;
	display: grid;
	grid-template-columns: minmax(230px, 270px) minmax(0, 1fr);
	align-items: stretch;
	gap: 18px;
}

.settings_navigation {
	align-self: stretch;
	box-sizing: border-box;
	display: grid;
	gap: 8px;
	padding: 14px;
	border: 1px solid var(--settings-line);
	border-radius: 18px;
	background: var(--settings-surface);
	box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}

.settings_navigation_title {
	padding: 2px 4px 7px;
}

.settings_navigation_tab {
	width: 100%;
	min-height: 64px;
	box-sizing: border-box;
	display: grid;
	grid-template-columns: 38px minmax(0, 1fr) auto;
	align-items: center;
	gap: 10px;
	padding: 9px 10px;
	border: 1px solid transparent;
	border-radius: 13px;
	background: transparent;
	color: #334155;
	font: inherit;
	text-align: left;
	cursor: pointer;
	touch-action: manipulation;
	transition: border-color 160ms ease, background 160ms ease, color 160ms ease, transform 160ms ease;
}

.settings_navigation_tab:hover,
.settings_navigation_tab:focus-visible {
	border-color: #dbe7f1;
	background: var(--settings-soft);
	transform: translateX(2px);
	outline: none;
}

.settings_navigation_tab:focus-visible {
	box-shadow: 0 0 0 4px rgba(23, 106, 168, 0.14);
}

.settings_navigation_tab.is-active {
	border-color: #93c5fd;
	background: linear-gradient(145deg, #eff6ff, #dbeafe);
	color: var(--settings-primary-strong);
}

.settings_navigation_icon {
	width: 38px;
	height: 38px;
	display: grid;
	place-items: center;
	border-radius: 11px;
	background: #eef2f7;
	color: #526176;
}

.settings_navigation_tab.is-active .settings_navigation_icon {
	background: var(--settings-primary);
	color: #ffffff;
}

.settings_navigation_copy {
	min-width: 0;
	display: grid;
	gap: 3px;
}

.settings_navigation_copy strong {
	overflow-wrap: anywhere;
	font-size: 0.92rem;
	line-height: 1.2;
}

.settings_navigation_copy small {
	color: var(--settings-muted);
	font-size: 0.74rem;
}

.settings_navigation_arrow {
	color: #94a3b8;
	font-size: 0.75rem;
}

.settings_panels {
	min-width: 0;
}

.settings_panel[hidden] {
	display: none !important;
}

.settings_group.settings_panel {
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
	margin: 0;
	padding: clamp(18px, 2.5vw, 28px);
	border: 1px solid var(--settings-line);
	border-radius: 20px;
	background: var(--settings-surface);
	box-shadow: 0 12px 34px rgba(15, 23, 42, 0.09);
	color: var(--settings-ink);
}

.settings_group_header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
	margin: 0 0 20px;
	padding: 0 0 17px;
	border: 0;
	border-bottom: 1px solid #e5eaf0;
}

.settings_group_title {
	margin: 0;
	color: var(--settings-ink);
	font-size: clamp(1.2rem, 2.3vw, 1.6rem);
	font-weight: 850;
	line-height: 1.2;
}

.settings_group_subtitle {
	max-width: 34ch;
	margin: 0;
	color: var(--settings-muted);
	font-size: 0.9rem;
	line-height: 1.45;
	text-align: right;
}

.settings_group .settings_card {
	width: 100%;
	box-sizing: border-box;
	margin: 0 0 14px;
	padding: clamp(16px, 2vw, 22px);
	border: 1px solid #e2e8f0;
	border-radius: 14px;
	background: var(--settings-soft);
	box-shadow: none;
	color: var(--settings-ink);
}

.settings_group .settings_card:last-child {
	margin-bottom: 0;
}

.settings_card--highlight {
	border-color: #bfdbfe !important;
	background: linear-gradient(135deg, #ffffff, #f0f9ff) !important;
}

.settings_section_title {
	margin-bottom: 8px;
	color: #1e293b;
	font-size: 1.04rem;
	font-weight: 800;
}

.settings_upload_hint,
.settings_current_sound {
	color: var(--settings-muted);
	font-size: 0.94rem;
	line-height: 1.45;
	opacity: 1;
}

.settings_row {
	display: grid;
	gap: 7px;
	margin-bottom: 14px;
}

.settings_row label {
	color: #475569;
	font-size: 0.78rem;
	font-weight: 850;
	letter-spacing: 0.035em;
	line-height: 1.2;
	text-transform: uppercase;
}

.settings_row :is(select, input[type="file"], input[type="email"], input[type="number"]) {
	width: 100%;
	min-height: 48px;
	box-sizing: border-box;
	padding: 10px 12px;
	border: 1px solid #cbd5e1;
	border-radius: 11px;
	outline: none;
	background: #ffffff;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
	color: var(--settings-ink);
	font: inherit;
}

.settings_row :is(select, input[type="file"], input[type="email"], input[type="number"]):focus {
	border-color: #4b92c7;
	box-shadow: 0 0 0 4px rgba(23, 106, 168, 0.12);
}

.settings_row_checkbox label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 0.92rem;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
}

.settings_row_checkbox input[type="checkbox"] {
	width: 22px;
	height: 22px;
	min-height: 22px;
	accent-color: var(--settings-primary);
}

.settings_signature_pad {
	border-color: #cbd5e1;
	border-radius: 11px;
}

.settings_signature_unavailable {
	color: #b91c1c;
}

.settings_signature_actions,
.settings_submit {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	margin-top: 16px;
}

.settings_submit input[type="submit"],
.settings_signature_actions input[type="submit"],
.settings_password_card .main_btn {
	min-height: 46px;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 15px;
	border: 1px solid transparent;
	border-radius: 11px;
	background: linear-gradient(150deg, #b91c1c, #991b1b);
	color: #ffffff;
	font: inherit;
	font-weight: 800;
	line-height: 1.2;
	text-transform: none;
	cursor: pointer;
}

.settings_submit input[type="submit"] {
	width: min(560px, 100%);
	margin: 0;
}

.settings_signature_btn {
	min-height: 46px;
	box-sizing: border-box;
	padding: 10px 15px;
	border: 1px solid #cbd5e1;
	border-radius: 11px;
	background: #ffffff;
	color: #334155;
	font: inherit;
	font-weight: 800;
	line-height: 1.2;
	text-transform: none;
}

.settings_signature_btn:hover,
.settings_submit input[type="submit"]:hover,
.settings_signature_actions input[type="submit"]:hover,
.settings_password_card .main_btn:hover {
	filter: brightness(1.05);
}

.settings_password_card {
	display: block;
}

.settings_password_card .main_link {
	width: auto;
	margin: 0;
	padding: 0;
	text-align: right;
}

.alarm_sound_overview {
	border: 1px solid var(--settings-line);
	border-radius: 11px;
	background: #ffffff;
}

.alarm_sound_table th,
.alarm_sound_table td {
	border-bottom-color: #e5eaf0;
	color: var(--settings-ink);
}

.alarm_sound_table th {
	background: #eef2f7;
	color: #475569;
	opacity: 1;
}

.settings_feedback_success {
	border: 1px solid #86efac;
	background: #f0fdf4;
	color: #166534;
}

.settings_feedback_error {
	border: 1px solid #fecaca;
	background: #fef2f2;
	color: #b91c1c;
}

@media (max-width: 820px) {
	.settings_page_header {
		align-items: stretch;
		flex-direction: column;
		gap: 16px;
	}

	.settings_page_user {
		align-self: flex-start;
	}

	.settings_workspace {
		grid-template-columns: minmax(0, 1fr);
	}

	.settings_navigation {
		position: static;
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.settings_navigation_title {
		grid-column: 1 / -1;
	}

	.settings_navigation_tab {
		grid-template-columns: 34px minmax(0, 1fr);
		min-height: 60px;
	}

	.settings_navigation_icon {
		width: 34px;
		height: 34px;
	}

	.settings_navigation_arrow {
		display: none;
	}
}

@media (max-width: 620px) {
	.settings_wrapper {
		width: calc(100% - 16px);
		margin-bottom: 32px;
	}

	.settings_page_header,
	.settings_group.settings_panel {
		padding: 16px;
		border-radius: 16px;
	}

	.settings_navigation {
		grid-template-columns: minmax(0, 1fr);
		padding: 10px;
		border-radius: 15px;
	}

	.settings_navigation_title {
		display: none;
	}

	.settings_navigation_tab {
		grid-template-columns: 38px minmax(0, 1fr) auto;
		min-height: 58px;
	}

	.settings_navigation_icon {
		width: 38px;
		height: 38px;
	}

	.settings_navigation_arrow {
		display: block;
	}

	.settings_group_header {
		align-items: stretch;
		flex-direction: column;
		gap: 10px;
	}

	.settings_group_subtitle {
		max-width: none;
		text-align: left;
	}

	.settings_group .settings_card {
		padding: 16px;
	}

	.settings_signature_actions,
	.settings_submit {
		align-items: stretch;
		flex-direction: column;
	}

	.settings_signature_actions > *,
	.settings_submit input[type="submit"],
	.settings_password_card .main_link,
	.settings_password_card .main_btn {
		width: 100%;
	}

	.settings_password_card .main_link {
		text-align: left;
	}
}
