<!--

*, *:before, *:after {
	box-sizing: border-box;
}

body {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 12px;
	text-decoration: none;
	color: #101010;
	line-height: 20px;
	background-color: #fdfdfd;
	margin: 0px;
	padding: 0px;
	width: 100%;
}

table {
	font-size: 12px;
	line-height: 20px;
	box-sizing: border-box;
}

a {
	text-decoration: none;
	color: #101010;
	line-height: 20px;
}

.underline {
	border-bottom: dotted 1px #000000
}

h2 {
	font-size: 16px;
	line-height: 24px;
}

h3 {
	font-size: 24px;
	line-height: 36px;
}

.orange {
	color: #ff8947;
}


.bg_grey {
	background-color: #E0E0E0;
}

.bg_lightgrey {
	background-color: #F2F1F0;
	border: 2px solid #c8c8c8;
}

.bg_orange {
	background-color: #ff8947;
}

.bg_red {
	background-color: #E00000;
}

.bg_none {
	background-color: #fdfdfd;
}

.gesperrt {
	/* Required for IE 5, 6, 7 */
	/* ...or something to trigger hasLayout, like zoom: 1; */
	width: 100%; 
		
	/* This works in IE 8 & 9 too */
	/* ... but also 5, 6, 7 */
	filter: alpha(opacity=60);
	
	/* Older than Firefox 0.9 */
	-moz-opacity: 0.60;
	
	/* Safari 1.x (pre WebKit!) */
	-khtml-opacity: 0.60;
    
	/* Modern!
	/* Firefox 0.9+, Safari 2?, Chrome any?
	/* Opera 9+, IE 9+ */
	opacity: 0.60;
	/* Keep text readable - only background is faded */
	color: #101010;
	font-weight: normal;
}
/* ---------- Pfeile ---------- */

a.pfeile {
	font-size: 28px;
	text-decoration: none;
	color: #ED7E43;
	font-weight: bold;
	padding: 0 4px;
	transition: all 0.2s ease;
	position: relative;
	z-index: 10;
}

a.pfeile:hover {
	font-size: 28px;
	text-decoration: none;
	color: #ff8947;
	transform: scale(1.2);
}

/* ---------- Week Navigation ---------- */

.week-navigation {
	text-align: center;
	padding: 10px 0;
	position: relative;
	z-index: 10;
}

.week-dates {
	font-size: 16px;
	font-weight: bold;
	padding: 0 15px;
	display: inline-block;
	vertical-align: middle;
}

/* ---------- Footer Links ---------- */

.footer-links {
	padding: 15px 10px;
	text-align: center;
	position: relative;
	z-index: 10;
}

.footer-links a {
	padding: 5px 8px;
	display: inline-block;
}

/* ---------- Login ---------- */

#login {
	width: 380px;
	height: auto;
	min-height: 30px;
	padding: 2px;
	-moz-border-radius: 8px;
	-webkit-border-radius: 8px;
	border-radius: 8px;
	margin-bottom: 6px;
	margin-top: 2px;
	padding: 8px 8px 8px 8px;
	background-color: #F2F1F0;
	margin-left: auto;
	margin-right: 0;
}

#login a {
	position: relative;
	z-index: 10;
	touch-action: manipulation;
	cursor: pointer;
}

#login input {
	width: 120px;
	height: 20px;
	font-size: 12px;
	padding-top: 3px;
	border: solid 2px #E0E0E0;
}

#login button {
	width: 80px;
	height: 28px;
	-moz-border-radius: 8px;
	-webkit-border-radius: 8px;
	border-radius: 8px;
	font-size: 12px;
	font-weight: bold;
	background: linear-gradient(135deg, #ff8947 0%, #ED7E43 100%);
	color: #ffffff;
	border: none;
	text-align: center;
	cursor: pointer;
	box-shadow: 0 2px 4px rgba(0,0,0,0.15);
	transition: all 0.2s ease;
}

#login button:hover {
	background: linear-gradient(135deg, #ED7E43 0%, #ff8947 100%);
	box-shadow: 0 3px 6px rgba(0,0,0,0.25);
	transform: translateY(-1px);
}

/* ---------- Essen ---------- */

/* ---------- Big Link ---------- */

a.big-link {
	text-decoration: none;
	color: inherit;
	display: block;
	cursor: pointer;
	-webkit-tap-highlight-color: rgba(255, 137, 71, 0.3);
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

a.big-link:hover {
	text-decoration: none;
}

/* ---------- Essen Box ---------- */

#essen {
	min-height: 160px;
	height: 160px;
	width: 148px;
	padding: 10px;
	-moz-border-radius: 8px;
	-webkit-border-radius: 8px;
	border-radius: 8px;
	margin-bottom: 6px;
	margin-top: 2px;
	box-sizing: border-box;
	transition: all 0.3s ease;
	cursor: pointer;
	border: 1px solid #d0d0d0;
	-webkit-tap-highlight-color: rgba(255, 137, 71, 0.3);
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

* html #essen {
	height: 160px;
} 

a.big-link:hover #essen,
#essen:hover {
	border-color: #ff8947;
	box-shadow: 0 4px 8px rgba(255, 137, 71, 0.25);
	transform: translateY(-2px);
}

#essen_salat {
	min-height: 60px;
	width: 148px;
	padding: 2px;
	margin-bottom: 6px;
	margin-top: 2px;
}

* html #essen_salat {
	height: 60px;
} 

#essen_spacer {
	min-height: 160px;
	width: 148px;
	padding: 2px;
	background-color: #F2F1F0;
	-moz-border-radius: 8px;
	-webkit-border-radius: 8px;
	border-radius: 8px;
	margin-bottom: 6px;
	margin-top: 2px;
}

* html #essen_spacer {
	height: 160px;
} 


/* ---------- Main ---------- */

#main {
	z-index: 1;
	position: relative;
	top: 0px;
	left: 0px;
	width: 100%;
	margin-top: 10px;
	overflow-x: hidden;
}


/* ---------- Deckel ---------- */

#deckel {
	position: fixed;
	z-index: 9995;
	width: 100%;
	height: 100%;
	top: 0px;
	left: 0px;
	bottom: 0px;
	right: 0px;
	background-color: #000000;
	/* background: url('../img/deckel.png'); */
	display: none;
	pointer-events: none;
		
	/* This works in IE 8 & 9 too */
	/* ... but also 5, 6, 7 */
	filter: alpha(opacity=35);
	
	/* Older than Firefox 0.9 */
	-moz-opacity: 0.35;
	
	/* Safari 1.x (pre WebKit!) */
	-khtml-opacity: 0.35;
    
	/* Modern!
	/* Firefox 0.9+, Safari 2?, Chrome any?
	/* Opera 9+, IE 9+ */
	opacity: 0.35;
}

#deckel[style*="block"] {
	pointer-events: auto;
}


/* ---------- Popup ---------- */

#popup {
	position: fixed;
	z-index: 9999;
	width: 100%;
	top: 0px;
	left: 0px;
	bottom: 0px;
	right: 0px;
	text-align: center;
	padding-top: 120px;
	display: none;
	pointer-events: none;
}

#popup[style*="block"] {
	pointer-events: auto;
}

#popup_bestellung {
	width: 360px;
	-moz-border-radius: 8px;
	-webkit-border-radius: 8px;
	border-radius: 8px;
	background-color: #fdfdfd;
	padding: 20px 15px 10px 20px;
	text-align: left;
	margin: 0 auto;
}


#popup_nutzer {
	width: 560px;
	-moz-border-radius: 8px;
	-webkit-border-radius: 8px;
	border-radius: 8px;
	background-color: #fdfdfd;
	padding: 20px 15px 10px 20px;
	text-align: left;
	margin: 0 auto;
}

/* ---------- Mobile Responsiveness ---------- */

@media only screen and (max-width: 768px) {
	/* Make main container fit mobile screens */
	#main {
		margin-top: 5px;
		width: 100%;
		max-width: 100vw;
		position: relative;
		z-index: 1;
		overflow-x: hidden;
	}
	
	/* Hide logo on mobile to save space */
	.mobile-hide-logo {
		display: none !important;
	}
	
	/* Mobile header layout */
	.mobile-header {
		width: 100% !important;
		max-width: 100vw !important;
		padding: 5px 10px;
		box-sizing: border-box;
	}
	
	.mobile-header td {
		display: block;
		width: 100% !important;
		text-align: center !important;
	}
	
	/* Fix all tables to not overflow */
	table {
		max-width: 100vw !important;
		width: 100% !important;
		table-layout: fixed;
	}
	
	/* Reduce popup sizes for mobile - centered on screen */
	#popup {
		padding: 0;
		position: fixed;
		left: 50%;
		top: 50%;
		transform: translate(-50%, -50%);
		z-index: 10001;
		max-height: 90vh;
		overflow-y: auto;
		width: 100%;
		max-width: 100vw;
		display: none;
		justify-content: center;
		align-items: center;
		pointer-events: none;
	}
	
	#popup[style*="block"] {
		display: flex !important;
		pointer-events: auto;
	}
	
	#deckel {
		position: fixed;
		z-index: 10000;
		pointer-events: none;
	}
	
	#deckel[style*="block"] {
		pointer-events: auto;
	}
	
	#popup_bestellung {
		width: 90vw;
		max-width: 360px;
		padding: 20px;
		margin: 0 auto;
		box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
	}
	
	#popup_nutzer {
		width: 90vw;
		max-width: 400px;
		padding: 20px;
		max-height: 80vh;
		overflow-y: auto;
		margin: 0 auto;
		box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
		font-size: 14px;
		line-height: 22px;
	}
	
	#popup_nutzer p {
		margin: 10px 0;
	}
	
	#popup_nutzer a {
		display: inline-block;
		padding: 10px 20px;
		min-height: 44px;
		line-height: 24px;
		font-size: 16px;
	}
	
	/* Make food boxes more touch-friendly - full width for vertical stacking */
	#essen {
		min-height: auto;
		height: auto;
		width: 100% !important;
		max-width: 100%;
		padding: 15px;
		font-size: 13px;
		line-height: 20px;
		margin-bottom: 10px;
	}
	
	#essen_spacer {
		display: none;
	}
	
	/* Week navigation - horizontal alignment with proper spacing */
	.week-navigation {
		width: 100%;
		max-width: 100vw;
		text-align: center;
		padding: 8px 5px;
		position: relative;
		z-index: 10;
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 0;
	}
	
	/* Increase touch target size for arrows */
	a.pfeile {
		font-size: 26px;
		padding: 8px 15px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 44px;
		min-height: 44px;
		text-align: center;
		position: relative;
		z-index: 10;
		cursor: pointer;
		flex-shrink: 0;
	}
	
	/* Week dates display - don't break line */
	.week-dates {
		font-size: 13px;
		display: inline-block;
		vertical-align: middle;
		padding: 0 10px;
		white-space: nowrap;
		flex-shrink: 0;
	}
	
	/* Make login form mobile-friendly */
	#login {
		width: 100%;
		max-width: 100%;
		height: auto;
		min-height: 40px;
		padding: 8px;
		line-height: 24px;
		box-sizing: border-box;
		margin: 5px auto;
	}
	
	#login form {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		gap: 5px;
	}
	
	#login input {
		width: 100px;
		max-width: 30vw;
		height: 28px;
		font-size: 11px;
	}
	
	#login button {
		width: auto;
		min-width: 70px;
		height: 28px;
		padding: 4px 8px;
		font-size: 11px;
	}
	
	#login a {
		display: inline-block;
		padding: 4px 8px;
		min-height: 32px;
		line-height: 24px;
		touch-action: manipulation;
		position: relative;
		z-index: 10;
	}
	
	/* Mobile styles for Heute button */
	button.heute-btn {
		min-width: 80px;
		padding: 8px 16px;
		font-size: 14px;
		touch-action: manipulation;
	}
	
	/* Better heading sizing on mobile */
	h1 {
		font-size: 14px;
		white-space: normal;
		word-wrap: break-word;
		margin: 5px 0;
	}
	
	h2 {
		font-size: 14px;
	}
	
	/* Footer links - ensure clickable */
	.footer-links {
		padding: 10px 5px;
		text-align: center;
		font-size: 11px;
		line-height: 20px;
		position: relative;
		z-index: 10;
	}
	
	.footer-links a {
		padding: 8px 4px;
		display: inline-block;
		min-height: 44px;
		line-height: 28px;
		position: relative;
		z-index: 10;
	}
	
	/* Prevent text selection on all interactive elements */
	a, button, .bg_orange, .bg_grey, .bg_lightgrey {
		-webkit-tap-highlight-color: rgba(255, 137, 71, 0.2);
		-webkit-touch-callout: none;
		-webkit-user-select: none;
		-khtml-user-select: none;
		-moz-user-select: none;
		-ms-user-select: none;
		user-select: none;
		touch-action: manipulation;
	}
	
	/* === Mobile Meal Cards - Vertical Stacking === */
	
	/* Hide the horizontal table layout on mobile */
	.meal-table {
		display: none !important;
	}
	
	/* Show the mobile vertical layout */
	.mobile-meal-container {
		display: block !important;
		width: 100%;
		padding: 0 10px;
	}
	
	/* Day section styling */
	.mobile-day-section {
		margin-bottom: 15px;
		padding-bottom: 8px;
		border-bottom: 1px solid #d0d0d0;
	}
	
	.mobile-day-section:last-child {
		border-bottom: none;
		margin-bottom: 0;
	}
	
	/* Day header - distinct color from ordered meals (which are orange) */
	.mobile-day-header {
		background: linear-gradient(135deg, #5a6c7d 0%, #3d4f5f 100%);
		color: white;
		padding: 6px 12px;
		border-radius: 8px 8px 0 0;
		margin-bottom: 0;
		font-size: 15px;
		font-weight: bold;
		text-align: center;
		position: sticky;
		top: 0;
		z-index: 100;
	}
	
	.mobile-day-header.today {
		background: linear-gradient(135deg, #4CAF50 0%, #388E3C 100%);
		box-shadow: 0 2px 8px rgba(76, 175, 80, 0.4);
	}
	
	.mobile-day-date {
		font-size: 12px;
		font-weight: normal;
		opacity: 0.9;
		display: block;
		margin-top: 2px;
	}
	
	/* Meal cards container */
	.mobile-meals-wrapper {
		background-color: #f8f8f8;
		padding: 8px;
		border-radius: 0 0 8px 8px;
	}
	
	/* Mobile meal card */
	.mobile-meal-card {
		background-color: #fdfdfd;
		border-radius: 8px;
		padding: 12px;
		margin-bottom: 8px;
		border: 1px solid #d0d0d0;
		transition: all 0.3s ease;
	}
	
	.mobile-meal-card:last-child {
		margin-bottom: 0;
	}
	
	.mobile-meal-card.bg_orange {
		background-color: #ff8947;
		color: white;
		border-color: #ED7E43;
	}
	
	.mobile-meal-card.bg_grey {
		background-color: #E0E0E0;
	}
	
	.mobile-meal-card.bg_lightgrey {
		background-color: #F2F1F0;
		border: 2px solid #c8c8c8;
	}
	
	.mobile-meal-card.bg_red {
		background-color: #E00000;
		color: white;
	}
	
	a.big-link .mobile-meal-card:active,
	.mobile-meal-card:active {
		transform: scale(0.98);
		box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
	}
	
	/* Hide line images on mobile */
	.mobile-meal-container img[src*="linie.png"],
	.mobile-meal-container img[src*="transparent.gif"] {
		display: none;
	}
}

@media only screen and (max-width: 480px) {
	/* Extra small mobile devices */
	body {
		font-size: 12px;
		line-height: 18px;
	}
	
	#essen {
		padding: 12px;
		font-size: 12px;
	}
	
	.mobile-day-header {
		font-size: 14px;
		padding: 5px 10px;
	}
	
	.mobile-meal-card {
		padding: 10px;
	}
	
	#popup_nutzer {
		width: 95vw;
		padding: 15px;
		font-size: 13px;
	}
	
	#popup_nutzer a {
		padding: 8px 16px;
		font-size: 15px;
	}
}

/* Desktop: Hide mobile layout, show table */
@media only screen and (min-width: 769px) {
	.mobile-meal-container {
		display: none !important;
	}
	
	.meal-table {
		display: table !important;
	}
}


-->
