/*
 * TischTris /intern UI 1.8.1
 * Loaded only on the /intern/ employee application.
 * No external font request: use the same clean UI stack as Teburio-like interfaces.
 */
html,
body,
body *:not(svg):not(path) {
	font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	font-variant-numeric: tabular-nums;
}

/* The old employee theme used very heavy typography almost everywhere.
   Bring text closer to the lighter Teburio hierarchy without changing layout. */
body {
	font-weight: 400 !important;
	letter-spacing: -0.006em;
}

body button,
body input,
body select,
body textarea {
	font-weight: 400;
	letter-spacing: -0.006em;
}

body table,
body td,
body th {
	font-weight: 400;
}

body th,
body nav a,
body [role="tab"],
body [class*="tab"] {
	font-weight: 500 !important;
}

/* Names and primary reservation values remain readable, but no longer extra-bold. */
body [class*="guest"] strong,
body [class*="name"] strong,
body [class*="time"] strong,
body td strong {
	font-weight: 600 !important;
}

/* Large headings/header branding: medium-semi-bold instead of black weight. */
body h1,
body h2,
body h3,
body [class*="brand"],
body [class*="logo"] {
	font-weight: 600 !important;
	letter-spacing: -0.018em;
}

/* Table/placement pills stay compact even when a legacy theme gives them large padding. */
body [class*="table"][class*="badge"],
body [class*="table"][class*="pill"],
body [class*="placement"],
body [data-table-label] {
	font-weight: 500 !important;
	letter-spacing: -0.01em;
}

/* Better mobile reading, matching the calmer Teburio proportions. */
@media (max-width: 900px) {
	body {
		font-size: 15px;
		line-height: 1.45;
	}
}


/* 2.5.26 – sicherer /intern-Kopf.
   Nur Typografie/Bildgröße; keine transform-, width-, flex- oder height-Overrides. */
body [class*="brand"] h1,
body [class*="app-header"] h1,
body [class*="topbar"] h1 {
	font-size: 1.08em !important;
	font-weight: 500 !important;
	line-height: inherit !important;
}

body [class*="brand"] small,
body [class*="brand"] p,
body [class*="app-header"] small,
body [class*="topbar"] small {
	font-weight: 500 !important;
}

/* Nur das tatsächliche Bild vergrößern, ohne Elterncontainer anzufassen. */
body [class*="brand"] img,
body [class*="app-header"] img,
body [class*="topbar"] img {
	max-height: 28px !important;
	width: auto !important;
}


/* 2.6.1 – Gästebewertungen: Hausfilter + deutlich sichtbarer Rückweg. */
.zr-feedback-house-active {
	box-shadow: inset 0 -4px 0 var(--zr-house-color, #b49142) !important;
	font-weight: 600 !important;
}

.zr-feedback-topbar {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	margin: 0 0 12px;
}

.zr-feedback-back-prominent {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 44px !important;
	padding: 10px 18px !important;
	border-radius: 12px !important;
	background: #202425 !important;
	color: #fff !important;
	border: 1px solid #202425 !important;
	font-weight: 600 !important;
	box-shadow: 0 3px 10px rgba(0,0,0,.12) !important;
	text-decoration: none !important;
}

.zr-feedback-back-prominent:hover {
	background: #303536 !important;
	color: #fff !important;
}


/* 2.6.2 – Feedbackfilter reagieren sofort. Der manuelle Filterbutton bleibt
   als Fallback sichtbar, wirkt aber bewusst sekundär. */
body button[data-zr-feedback-auto-filter],
.zr-feedback-filter-manual {
	opacity: .72;
}


/* 2.7.2 – Kegelbahn-Timeline Magenta */
.zr-timeline-row.is-bowling .zr-timeline-table-label {
	background:#fff0f6 !important;
	border-left:4px solid #C2185B !important;
}
.zr-timeline-row.is-bowling .zr-timeline-reservation {
	--bar-color:#C2185B !important;
	border-color:#C2185B !important;
}
.zr-timeline-bowling-time {
	font-weight:700;
	margin-right:5px;
}


/* 2.9.0 – kompakte Teburio-nahe Listenansicht */
.zr-guest-cell .zr-list-note-preview {
	display:block;
	max-width:34rem;
	margin-top:3px;
	color:#647078;
	font-size:12px;
	font-weight:400;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}
.zr-placed-cell { white-space:nowrap; }
.zr-placed-form { margin:0 !important; }
.zr-placed-button {
	border:1px solid #86a68d;
	background:#f4fbf5;
	color:#356a40;
	border-radius:999px;
	padding:7px 11px;
	font:inherit;
	font-weight:600;
	cursor:pointer;
}
.zr-placed-button:hover { background:#e8f6ea; }
.zr-placed-button.is-placed {
	background:#4d9b5d;
	color:#fff;
	border-color:#4d9b5d;
}
.zr-placed-button:disabled { opacity:.45; cursor:not-allowed; }


/* 2.9.1 – überfällige erwartete Reservierungen */
.zr-time.is-overdue {
	color: #c23b2a !important;
}


/* 2.9.2 – Gastbemerkungen in /intern sofort sichtbar */
.zr-guest-cell.has-guest-note {
	min-width: 260px;
}

.zr-guest-line {
	display:flex;
	align-items:center;
	gap:8px;
	min-width:0;
}

.zr-note-badge {
	display:inline-flex;
	align-items:center;
	gap:4px;
	flex:0 0 auto;
	padding:3px 7px;
	border:1px solid #d8c47d;
	border-radius:999px;
	background:#fff8dc;
	color:#755d13;
	font-size:10px;
	font-weight:700;
	line-height:1.2;
	white-space:nowrap;
}

.zr-guest-cell .zr-list-note-preview {
	display:block;
	max-width:38rem;
	margin-top:4px;
	padding-left:1px;
	color:#59646a;
	font-size:12px;
	font-weight:500;
	line-height:1.35;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}

.zr-reservation-row[data-has-note="1"] .zr-guest-cell {
	background-image:linear-gradient(90deg, rgba(216,196,125,.11), transparent 75%);
}


/* 2.9.3 – Rechtsklick-Spaltenmenü */
.zr-reservation-table thead {
	cursor: context-menu;
}

.zr-column-context-menu {
	position: fixed;
	z-index: 1000000;
	width: 245px;
	max-height: min(70vh, 520px);
	overflow: hidden;
	border: 1px solid #cfcac0;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 14px 42px rgba(0,0,0,.22);
	color: #202425;
	font-size: 13px;
}

.zr-column-context-title {
	padding: 11px 13px 8px;
	font-weight: 700;
	border-bottom: 1px solid #ebe7df;
	background: #f6f4ef;
}

.zr-column-context-items {
	max-height: 430px;
	overflow-y: auto;
	padding: 6px;
}

.zr-column-context-item {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 8px 9px;
	border-radius: 7px;
	cursor: pointer;
	user-select: none;
}

.zr-column-context-item:hover {
	background: #f2efe8;
}

.zr-column-context-item input {
	margin: 0;
}

.zr-column-context-item.is-required {
	opacity: .62;
	cursor: default;
}

.zr-column-context-footer {
	padding: 7px 13px 9px;
	border-top: 1px solid #ebe7df;
	color: #818586;
	font-size: 10px;
}


/* 2.9.5 – Rechtsklickmenü muss über Dialogen/Sticky-Headern liegen */
.zr-column-context-menu {
	z-index: 2147483000 !important;
}


/* 2.9.6 – kompakter mobiler Kopf */
.zr-mobile-create,
.zr-mobile-menu-toggle {
	display:none;
}

.zr-mobile-header-menu[hidden] {
	display:none !important;
}

@media (max-width: 780px) {
	.zr-mobile-header-hidden-control {
		display:none !important;
	}

	.zr-mobile-create,
	.zr-mobile-menu-toggle {
		display:inline-flex !important;
		align-items:center;
		justify-content:center;
		height:44px;
		border:1px solid rgba(255,255,255,.28);
		border-radius:11px;
		background:#202425;
		color:#fff;
		font:inherit;
		font-weight:700;
		line-height:1;
		box-sizing:border-box;
	}

	.zr-mobile-create {
		padding:0 12px;
		white-space:nowrap;
	}

	.zr-mobile-menu-toggle {
		width:44px;
		padding:0;
		font-size:21px;
	}

	.zr-mobile-header-menu {
		position:fixed;
		z-index:2147483000;
		width:min(290px, calc(100vw - 16px));
		padding:7px;
		border:1px solid #4d5152;
		border-radius:13px;
		background:#202425;
		box-shadow:0 16px 45px rgba(0,0,0,.38);
		color:#fff;
	}

	.zr-mobile-menu-title {
		padding:8px 10px 9px;
		color:#c9aa62;
		font-size:12px;
		font-weight:800;
		letter-spacing:.08em;
		text-transform:uppercase;
	}

	.zr-mobile-menu-item {
		display:flex;
		width:100%;
		min-height:43px;
		align-items:center;
		padding:9px 11px;
		border:0;
		border-radius:8px;
		background:transparent;
		color:#fff !important;
		font:inherit;
		font-size:14px;
		font-weight:600;
		text-align:left;
		text-decoration:none !important;
		cursor:pointer;
		box-sizing:border-box;
	}

	.zr-mobile-menu-item:hover,
	.zr-mobile-menu-item:focus {
		background:#34393a;
		color:#fff !important;
	}
}


/* 2.9.7 – Spaltenauswahl per Linksklick auf ... im Tabellenkopf */
.zr-reservation-table thead {
	cursor: default !important;
}

.zr-column-quick-menu-button {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:42px;
	height:34px;
	padding:0;
	border:1px solid transparent;
	border-radius:8px;
	background:transparent;
	color:#4e5659;
	font-size:18px;
	font-weight:800;
	line-height:1;
	cursor:pointer;
}

.zr-column-quick-menu-button:hover,
.zr-column-quick-menu-button:focus {
	border-color:#d2cec5;
	background:#f2efe8;
	color:#202425;
	outline:none;
}

.zr-column-heading-action {
	text-align:center;
}


/* 2.9.8 – native Spaltenauswahl unter den drei Punkten */
.zr-header-columns-menu {
	position:relative;
	display:inline-block;
}

.zr-header-columns-menu > summary {
	list-style:none;
}
.zr-header-columns-menu > summary::-webkit-details-marker {
	display:none;
}

.zr-header-columns-panel {
	position:absolute;
	top:calc(100% + 6px);
	right:0;
	z-index:2147483000;
	width:230px;
	padding:8px;
	border:1px solid #cfcac0;
	border-radius:11px;
	background:#fff;
	box-shadow:0 14px 42px rgba(0,0,0,.22);
	color:#202425;
	text-align:left;
}

.zr-header-columns-panel > strong {
	display:block;
	padding:5px 7px 8px;
	font-size:12px;
}

.zr-header-columns-panel label {
	display:flex;
	align-items:center;
	gap:8px;
	padding:7px;
	border-radius:7px;
	font-size:12px;
	font-weight:500;
	cursor:pointer;
}

.zr-header-columns-panel label:hover {
	background:#f2efe8;
}

.zr-header-columns-panel input {
	margin:0;
}

/* Alte Context-/Quick-Menü-Mechanik nicht mehr verwenden. */
.zr-column-context-menu {
	display:none !important;
}

/* 2.9.8 – mobile App-Leiste */
.zr-mobile-clean-bar {
	display:none;
}

@media (max-width:780px) {
	.zr-original-header-mobile-hidden {
		display:none !important;
	}

	.zr-mobile-clean-bar {
		display:flex !important;
		align-items:center;
		justify-content:space-between;
		gap:10px;
		min-height:58px;
		padding:8px 12px;
		background:#202425;
		color:#fff;
		border-bottom:1px solid rgba(255,255,255,.08);
		box-sizing:border-box;
	}

	.zr-mobile-clean-brand {
		display:flex;
		align-items:center;
		gap:9px;
		min-width:0;
	}

	.zr-mobile-clean-brand img {
		display:block;
		max-width:112px;
		max-height:34px;
		width:auto;
		height:auto;
		object-fit:contain;
	}

	.zr-mobile-clean-brand strong {
		font-size:19px;
		font-weight:650;
		white-space:nowrap;
		letter-spacing:-.01em;
	}

	.zr-mobile-clean-actions {
		display:flex;
		gap:8px;
		flex:0 0 auto;
	}

	.zr-mobile-clean-actions button {
		display:inline-flex;
		align-items:center;
		justify-content:center;
		width:44px;
		height:44px;
		padding:0;
		border:1px solid rgba(255,255,255,.28);
		border-radius:11px;
		background:#202425;
		color:#fff;
		font:inherit;
		font-size:24px;
		font-weight:600;
		line-height:1;
		cursor:pointer;
	}

	.zr-mobile-clean-actions button[data-zr-mobile-clean-menu] {
		font-size:20px;
	}

	.zr-mobile-clean-menu {
		position:fixed;
		z-index:2147483000;
		width:min(285px,calc(100vw - 16px));
		padding:7px;
		border:1px solid #4d5152;
		border-radius:13px;
		background:#202425;
		box-shadow:0 16px 45px rgba(0,0,0,.38);
		color:#fff;
	}

	.zr-mobile-clean-menu[hidden] {
		display:none !important;
	}

	.zr-mobile-clean-menu-title {
		padding:8px 10px 9px;
		color:#c9aa62;
		font-size:12px;
		font-weight:800;
		letter-spacing:.08em;
		text-transform:uppercase;
	}

	.zr-mobile-clean-menu-item {
		display:flex;
		align-items:center;
		width:100%;
		min-height:43px;
		padding:9px 11px;
		border:0;
		border-radius:8px;
		background:transparent;
		color:#fff !important;
		text-align:left;
		text-decoration:none !important;
		font:inherit;
		font-size:14px;
		font-weight:600;
		cursor:pointer;
		box-sizing:border-box;
	}

	.zr-mobile-clean-menu-item:hover,
	.zr-mobile-clean-menu-item:focus {
		background:#34393a;
	}

	/* Alte mobile Header-Injektion aus 2.9.6 komplett ausblenden. */
	.zr-mobile-create,
	.zr-mobile-menu-toggle,
	.zr-mobile-header-menu {
		display:none !important;
	}
}


/* 2.9.9 – überfällige Uhrzeit zuverlässig rot */
.zr-reservation-table td.zr-time-cell-overdue .zr-time,
.zr-reservation-table .zr-time.is-overdue {
	color:#c23b2a !important;
}

.zr-reservation-table td.zr-time-cell-overdue small {
	color:#a85a50 !important;
}


/* 2.9.10 – unabhängiges /intern-Spaltenmenü */
.zr-header-columns-menu,
.zr-header-columns-panel,
.zr-column-context-menu { display:none !important; }

.zr-column-quick-menu-button[data-zr-intern-columns-open] {
	display:inline-flex !important;
	align-items:center;
	justify-content:center;
	width:42px;
	height:34px;
	padding:0;
	border:1px solid transparent;
	border-radius:8px;
	background:transparent;
	color:#4e5659;
	font-size:18px;
	font-weight:800;
	cursor:pointer;
}
.zr-column-quick-menu-button[data-zr-intern-columns-open]:hover {
	background:#f2efe8;
	border-color:#d2cec5;
}

.zr-intern-columns-popover {
	position:fixed;
	z-index:2147483640;
	width:240px;
	max-height:min(70vh,520px);
	overflow:auto;
	padding:7px;
	border:1px solid #cfcac0;
	border-radius:12px;
	background:#fff;
	box-shadow:0 16px 46px rgba(0,0,0,.25);
	color:#202425;
	font-size:13px;
}
.zr-intern-columns-title {
	padding:7px 8px 9px;
	border-bottom:1px solid #ebe7df;
	font-weight:800;
}
.zr-intern-columns-item {
	display:flex;
	align-items:center;
	gap:9px;
	padding:8px;
	border-radius:7px;
	cursor:pointer;
}
.zr-intern-columns-item:hover { background:#f2efe8; }
.zr-intern-columns-item input { margin:0; }


/* 2.9.11 – direkt auf die echte standalone /intern-Tabelle */
.zr-real-columns-button {
	display:inline-flex !important;
	align-items:center;
	justify-content:center;
	width:44px;
	height:36px;
	border:0;
	border-radius:8px;
	background:transparent;
	color:inherit;
	font:inherit;
	font-size:18px;
	font-weight:800;
	cursor:pointer;
}
.zr-real-columns-button:hover,
.zr-real-columns-button:focus {
	background:rgba(0,0,0,.06);
	outline:none;
}
.zr-real-columns-menu {
	position:fixed;
	z-index:2147483640;
	width:245px;
	max-height:min(72vh,540px);
	overflow:auto;
	padding:7px;
	border:1px solid #cec9be;
	border-radius:12px;
	background:#fff;
	box-shadow:0 16px 48px rgba(0,0,0,.28);
	color:#202425;
	font-size:13px;
}
.zr-real-columns-title {
	padding:8px 9px 10px;
	border-bottom:1px solid #ece8df;
	font-weight:800;
}
.zr-real-columns-item {
	display:flex;
	align-items:center;
	gap:9px;
	padding:8px 9px;
	border-radius:7px;
	cursor:pointer;
}
.zr-real-columns-item:hover { background:#f2efe8; }
.zr-real-columns-item input { margin:0; }


/* 2.9.12 – Gastnotizen in der echten /intern-Liste */
.zr-real-note {
	display:flex;
	align-items:center;
	gap:5px;
	max-width:430px;
	margin-top:4px;
	color:#657077;
	font-size:12px;
	font-weight:500;
	line-height:1.25;
	min-width:0;
}
.zr-real-note-badge {
	flex:0 0 auto;
	font-size:12px;
}
.zr-real-note-preview {
	display:block;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
	min-width:0;
}
.zr-real-has-note > td:nth-child(2) {
	background-image:linear-gradient(90deg,rgba(202,164,93,.10),transparent 82%);
}
@media(max-width:780px){
	.zr-real-note {
		max-width:220px;
		font-size:11px;
	}
	.zr-real-note-preview {
		max-width:180px;
	}
}

/* RC4: optional floor-plan entry in /intern/ */
.zr-intern-floor-plan-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none!important;padding:8px 12px;border:1px solid rgba(0,0,0,.14);border-radius:9px;background:#fff;color:#202124;font-weight:700;line-height:1.2}
.zr-intern-floor-plan-link:hover{background:#f6f7f7;color:#111}
@media(max-width:780px){.zr-intern-floor-plan-link{font-size:0;padding:9px}.zr-intern-floor-plan-link::after{content:'🗺';font-size:20px}}
