		html,
		body {
			min-height: 100%;
		}

		body {
			margin: 0;
			background: #eef2f6;
		}

		.login-page {
			min-height: 100vh;
			display: flex;
			align-items: center;
			justify-content: center;
			padding: 30px 20px;
		}

		.login-container {
			width: 100%;
			max-width: 1100px;
		}

		.login-card {
			background: #fff;
			border-radius: 18px;
			box-shadow: 0 10px 40px rgba(0, 0, 0, 0.14);
			overflow: hidden;
		}

		/* Desktop-Kundenbild */
		.customer-image-column {
			background: #fff;
			display: flex;
			align-items: center;
			justify-content: center;
			padding: 20px;
		}

		.customer-image {
			position: relative;
			width: 100%;
			max-width: 650px;
			line-height: 0;
		}

		.customer-picture {
			display: block;
			width: 100%;
		}

		.customer-main-image {
			display: block;
			width: 100%;
			height: auto;
			max-height: 650px;
			object-fit: contain;
		}

		/* Überdeckt das alte blaue Rechteck */
		.old-login-cover {
			position: absolute;
			left: 0.8%;
			top: 54%;
			width: 23.5%;
			height: 44%;

			display: flex;
			align-items: center;
			justify-content: center;

			padding: 6px;

			
		}

		.cover-apps {
			width: 100%;
			height: 100%;

			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;

			gap: 5px;
		}

		.cover-app-title {
			color: #fff;
			font-size: 12px;
			font-weight: 600;
			line-height: 1;
			text-align: center;
		}

		.cover-apps a {
			display: block;
			width: 90%;
		}

		.cover-app-store {
			display: block;
			width: 100%;
			height: auto;
		}

		.cover-app-qr {
			display: block;
			width: 48px;
			height: 48px;
			object-fit: contain;
		}		/* Desktop: Apps befinden sich im blauen Rechteck */
		.app-area {
			display: none;
		}
		
		.app-area-desktop {
			display: block;
		}

		.app-area-mobile {
			display: none;
		}
		/* Handy: Apps befinden sich unter dem Login */
		@media (max-width: 767.98px) {
			.app-area {
				display: block;
				margin-top: 22px;
			}
			.app-area-desktop {
				display: none;
			}

			.app-area-mobile {
				display: block;
				margin-top: 22px;
			}
		}
		/* Klickbare Kontaktdaten im Desktopbild */
		.image-contact-links {
			position: absolute;
			right: 0.5%;
			bottom: 2%;
			width: 31%;
			height: 16%;
		}

		.image-contact-link {
			position: absolute;
			left: 0;
			width: 100%;
			display: block;
		}

		.image-mail-link {
			top: 0;
			height: 48%;
		}

		.image-web-link {
			bottom: 0;
			height: 48%;
		}

		/* Login */
		.login-form-column {
			background: #f8f9fa;
			display: flex;
			align-items: center;
			justify-content: center;
			padding: 45px 40px;
		}

		.login-form {
			width: 100%;
			max-width: 380px;
		}

		.login-title {
			margin-bottom: 4px;
			font-size: 1.8rem;
			font-weight: 600;
			color: #212529;
		}

		.login-subtitle {
			margin-bottom: 28px;
			font-size: 0.95rem;
			color: #6c757d;
		}

		.login-form .form-label {
			font-weight: 500;
			color: #343a40;
		}

		.login-form .form-control {
			min-height: 48px;
			font-size: 1rem;
			border-radius: 8px;
			border-color: #ced4da;
		}

		.login-form .form-control:focus {
			border-color: #86b7fe;
			box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.12);
		}

		.btn-login {
			min-height: 48px;
			font-size: 1rem;
			font-weight: 600;
			border-radius: 8px;
		}

		.login-additional {
			margin-top: 28px;
			padding-top: 22px;
			border-top: 1px solid #dee2e6;
		}

		.login-additional .btn {
			border-radius: 8px;
		}

		/* App-Bereich */
		.app-area {
			margin-top: 22px;
		}

		.app-title {
			margin-bottom: 10px;
			text-align: center;
			font-size: 0.8rem;
			color: #6c757d;
		}

		.app-links {
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 10px;
			flex-wrap: wrap;
		}

		.app-links a {
			display: inline-flex;
			align-items: center;
		}

		.app-store-image {
			display: block;
			height: 38px;
			width: auto;
		}

		.app-qr-image {
			display: block;
			height: 62px;
			width: auto;
			margin-left: 5px;
		}

		/* Fehlermeldung */
		#Fehler {
			position: fixed;
			left: 0;
			top: 0;
			right: 0;
			z-index: 1080;
			padding: 8px 15px;
			background: #dc3545;
			color: white;
			text-align: center;
			font-size: 0.9rem;
			font-weight: 600;
		}

		#Fehler a {
			color: white;
			text-decoration: underline;
		}

		/* ======================================================
		   HANDY
		   ====================================================== */

		@media (max-width: 767.98px) {
			body {
				background: #f8f9fa;
			}

			.login-page {
				min-height: 100vh;
				padding: 0;
				align-items: flex-start;
			}

			.login-container {
				max-width: none;
			}

			.login-card {
				border-radius: 0;
				box-shadow: none;
			}

			.customer-image-column {
				padding: 0;
				background: #fff;
			}

			/* Am Handy liefert das <picture>-Element das schmale Mobile-Bild. */
			.customer-image {
				max-width: none;
				width: 100%;
			}

			.customer-main-image {
				width: 100%;
				height: auto;
				max-height: none;
			}

			/*
				Im Handybild gibt es kein blaues Rechteck,
				daher wird die Überdeckung ausgeblendet.
			*/
			.old-login-cover {
				display: none;
			}

			/*
				Die Kontaktdaten des großen Bildes sind im
				Handylogo ebenfalls nicht vorhanden.
			*/
			.image-contact-links {
				display: none;
			}

			.login-form-column {
				padding: 25px 20px 35px;
				background: #f8f9fa;
			}

			.login-form {
				max-width: 500px;
			}

			.login-title {
				font-size: 1.5rem;
			}

			.login-subtitle {
				margin-bottom: 22px;
			}
		}

		@media (max-width: 400px) {
			.login-form-column {
				padding-left: 15px;
				padding-right: 15px;
			}

			.app-store-image {
				height: 34px;
			}

			.app-qr-image {
				height: 55px;
			}
		}
