/* ==========================================================================
   Editorial area ("Redaktion") & sponsor portal styles

   Styles the front-end CMS at /redaktion/ (top bar, forms, uploads, editor,
   imports, sortable lists, image cropping) and the sponsor portal
   ("Sponsorenbereich": bookings, configurator, match days, calendar).
   Enqueued as "tsvt-editorial" in tsvt_assets() (functions.php) only when
   tsvt_is_editorial() or tsvt_is_portal() is true; depends on theme.css.
   Touch/phone overrides live in mobile.css.
   ========================================================================== */

.is-redaktion {
	background: var(--bg);
}
.is-redaktion .site-main > * {
	animation: none;
}

/* === Top bar === */
.rd-bar {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--dark);
	color: #ffffff;
	view-transition-name: site-header;
}
.admin-bar .rd-bar {
	top: 32px;
}
@media (max-width: 782px) {
	.admin-bar .rd-bar {
		top: 46px;
	}
}
@media (max-width: 600px) {
	.admin-bar .rd-bar {
		top: 0;
	}
}
/* Bar and section navigation are exactly as wide as the content below (.rd-main, max. 1180 px
   incl. the .wrap padding), so their left and right edges line up with it (since 1.12.6). */
.rd-bar__in,
.rd-nav__in {
	max-width: 1180px;
}
.rd-bar__in {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-top: 12px;
	padding-bottom: 12px;
}
.rd-brand {
	display: flex;
	align-items: center;
	gap: 14px;
	color: #ffffff;
}
@media (hover: hover) {
	.rd-brand:hover {
		color: #ffffff;
	}
}
.rd-brand img {
	height: 42px;
	width: auto;
}
.rd-brand span {
	display: flex;
	flex-direction: column;
	line-height: 1.15;
}
.rd-brand b {
	font-size: 15px;
}
.rd-brand small {
	font-size: 12px;
	color: #a5a5ad;
}
.rd-bar__tools {
	display: flex;
	align-items: center;
	gap: 8px;
}
.rd-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 12px;
	border-radius: 10px;
	color: #cfcfd5;
	font-size: 14px;
	font-weight: 600;
	transition:
		background-color 0.25s ease,
		color 0.25s ease;
}
@media (hover: hover) {
	.rd-link:hover {
		color: #ffffff;
		background: rgba(255, 255, 255, 0.08);
	}
}
.rd-sep {
	width: 1px;
	height: 28px;
	background: #3a3a40;
	margin: 0 4px;
}
.rd-avatar {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--accent);
	color: var(--on-accent);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	font-weight: 800;
	overflow: hidden;
	transition:
		box-shadow 0.25s ease,
		transform 0.25s ease;
}
.rd-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
@media (hover: hover) {
	.rd-avatar:hover {
		color: var(--on-accent);
		transform: translateY(-1px);
		box-shadow: 0 0 0 3px rgba(48, 191, 48, 0.35);
	}
}
.rd-avatar.is-active {
	box-shadow: 0 0 0 3px rgba(48, 191, 48, 0.5);
}
.rd-nav {
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	background: #1e1e21;
}
.rd-nav__in {
	display: flex;
	gap: 2px;
	overflow-x: auto;
	scrollbar-width: none;
	padding-top: 6px;
	padding-bottom: 6px;
}
.rd-nav__in::-webkit-scrollbar {
	display: none;
}
.rd-nav a {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	flex-shrink: 0;
	min-height: 40px;
	padding: 0 11px;
	border-radius: 10px;
	color: #bdbdc4;
	font-size: 14px;
	font-weight: 600;
	transition:
		background-color 0.25s ease,
		color 0.25s ease;
}
@media (hover: hover) {
	.rd-nav a:hover {
		color: #ffffff;
		background: rgba(255, 255, 255, 0.07);
	}
}
.rd-nav a[aria-current="page"] {
	color: var(--on-accent);
	background: var(--accent);
}
/* Collapsed on the overview, whose tiles show the same sections (since 1.13.11). The row of the
   grid shrinks to 0, the links keep their layout (editorial.js measures them for the tile grid)
   but are hidden. Moving into or out of the overview animates the row (html.rd-nav-opening /
   html.rd-nav-closing, set by the inline script in template-parts/editorial/appbar.php before the
   navigation is parsed); keyframes instead of transitions, because html.no-tr switches
   transitions off while the page loads. */
.rd-nav {
	display: grid;
	/* minmax(0, 1fr): the column must not grow to the width of the links (narrow windows scroll
	   the bar sideways inside .rd-nav__in, the page itself must not get wider). */
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: 1fr;
}
.rd-nav__clip {
	min-height: 0;
}
.rd-nav.is-collapsed {
	grid-template-rows: 0fr;
	border-top-color: transparent;
	background-color: transparent;
}
.rd-nav.is-collapsed .rd-nav__clip,
.rd-nav-opening .rd-nav__clip,
.rd-nav-closing .rd-nav__clip {
	overflow: hidden;
}
.rd-nav.is-collapsed .rd-nav__clip {
	visibility: hidden;
}
.rd-nav-closing .rd-nav.is-collapsed .rd-nav__clip {
	visibility: visible;
}
.rd-nav-opening .rd-nav {
	animation: rd-nav-open 0.45s cubic-bezier(0.4, 0, 0.2, 1) both;
}
.rd-nav-closing .rd-nav {
	animation: rd-nav-close 0.4s cubic-bezier(0.4, 0, 0.2, 1) both;
}
/* Held at the start until the page has loaded (at the latest 0.5 s after DOMContentLoaded), so the
   animation does not compete with loading and the links are already laid out. */
.rd-nav-waiting .rd-nav {
	animation-play-state: paused;
}
@keyframes rd-nav-open {
	from {
		grid-template-rows: 0fr;
		border-top-color: transparent;
		background-color: transparent;
	}
	to {
		grid-template-rows: 1fr;
		border-top-color: rgba(255, 255, 255, 0.08);
		background-color: #1e1e21;
	}
}
@keyframes rd-nav-close {
	from {
		grid-template-rows: 1fr;
		border-top-color: rgba(255, 255, 255, 0.08);
		background-color: #1e1e21;
	}
	to {
		grid-template-rows: 0fr;
		border-top-color: transparent;
		background-color: transparent;
	}
}

/* === Content area === */
.rd-main {
	max-width: 1180px;
	padding-top: 44px;
	padding-bottom: 80px;
	display: flex;
	flex-direction: column;
	gap: 28px;
}
.rd-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
}
.rd-title {
	font-size: clamp(30px, 4vw, 46px);
	font-weight: 800;
	font-style: italic;
	color: var(--ink);
	line-height: 1.05;
}
.rd-lead {
	font-size: 16px;
	color: var(--muted);
	max-width: 640px;
}
.rd-back {
	font-size: 14px;
	min-height: 32px;
	align-self: flex-start;
}
.rd-new {
	min-height: 56px;
	padding: 0 26px;
	font-size: 17px;
	border-radius: 14px;
	box-shadow: 0 14px 30px -14px rgba(27, 125, 27, 0.6);
}
.rd-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
	gap: 14px;
}
.rd-tile {
	display: flex;
	align-items: center;
	gap: 14px;
	min-height: 76px;
	padding: 16px 18px;
	border-radius: 16px;
	background: var(--card);
	border: 1px solid var(--line);
	color: var(--ink);
	box-shadow: var(--card-shadow);
	transition:
		transform 0.45s var(--ease),
		box-shadow 0.45s var(--ease),
		border-color 0.35s ease;
}
@media (hover: hover) {
	.rd-tile:hover {
		color: var(--ink);
		transform: translateY(-3px);
		box-shadow: var(--card-hover);
		border-color: var(--greenline);
	}
}
.rd-tile__t {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.rd-tile__t b {
	font-size: 15px;
}
.rd-tile__t small {
	font-size: 12px;
	color: var(--muted);
}

.rd-panel {
	background: var(--card);
	border-radius: 22px;
	border: 1px solid var(--line);
	overflow: hidden;
	box-shadow: 0 20px 50px -36px rgba(20, 20, 22, 0.35);
}
.rd-panel--pad {
	padding: 26px 28px;
	display: flex;
	flex-direction: column;
	gap: 20px;
	overflow: visible;
}
.rd-panel__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	padding: 18px 22px;
	border-bottom: 1px solid var(--line);
}
.rd-panel__head h2,
.rd-panel__title h2 {
	font-size: 18px;
	font-weight: 700;
	font-style: normal;
	color: var(--ink);
}
.rd-panel__title {
	display: flex;
	align-items: flex-start;
	gap: 14px;
}
.rd-panel__title > div {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.rd-row {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 14px 22px;
	border-bottom: 1px solid var(--line);
	transition: background-color 0.25s ease;
}
.rd-row:last-child {
	border-bottom: none;
}
@media (hover: hover) {
	.rd-row:hover {
		background: var(--hl-tint);
	}
}
.rd-row__t {
	flex-grow: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 3px;
}
.rd-row__t b {
	font-size: 16px;
	font-weight: 700;
	color: var(--ink);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.rd-row__t small {
	font-size: 13px;
	color: var(--muted2);
}
.rd-row__act {
	display: flex;
	align-items: center;
	gap: 6px;
	flex-shrink: 0;
}
.rd-row--log {
	display: block;
	padding: 0;
}
.rd-row--log summary {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	padding: 14px 22px;
	cursor: pointer;
	list-style: none;
}
.rd-row--log summary::-webkit-details-marker {
	display: none;
}
.rd-thumb {
	width: 76px;
	height: 56px;
	flex-shrink: 0;
	border-radius: 10px;
	overflow: hidden;
	background: repeating-linear-gradient(-66deg, var(--ph1) 0 8px, var(--ph2) 8px 16px);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--muted2);
}
.rd-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.rd-thumb--doc {
	width: 46px;
	height: 58px;
	background: var(--alt-solid);
}
.rd-thumb--logo {
	width: 70px;
	height: 48px;
	background: var(--soft);
	border: 1px solid var(--line);
}
.rd-thumb--logo img {
	object-fit: contain;
	padding: 4px;
}
.rd-empty {
	padding: 22px;
}
.rd-empty .empty {
	border: none;
}
.rd-cols {
	display: flex;
	flex-direction: column;
	gap: 22px;
}
.rd-cols .rd-row {
	padding: 12px 16px;
	gap: 12px;
}
.rd-danger {
	padding-top: 16px;
	border-top: 1px solid var(--line);
}
.inline-form {
	display: inline-flex;
	margin: 0;
}
.ibtn {
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	border-radius: 10px;
	border: 1.5px solid var(--line2);
	background: var(--card);
	color: var(--ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition:
		background-color 0.25s ease,
		color 0.25s ease,
		box-shadow 0.25s ease,
		transform 0.2s ease;
}
@media (hover: hover) {
	.ibtn:hover {
		color: var(--ink);
		box-shadow:
			inset 0 0 0 999px var(--hl-tint),
			0 0 0 3px var(--hl-ring);
		transform: translateY(-1px);
	}
}
@media (hover: hover) {
	.ibtn--danger:hover {
		color: var(--badfg);
		box-shadow: inset 0 0 0 999px var(--badbg);
	}
}
.ibtn.is-off {
	opacity: 0.3;
	pointer-events: none;
}
/* Lock hint for accounts with a club role in the sponsor and planner areas (since 1.13.9):
   not a button, but the title explains where the account is locked. */
.ibtn.ibtn--hint {
	color: var(--muted);
	cursor: help;
}
.movebtns {
	display: flex;
	flex-direction: column;
	gap: 2px;
	flex-shrink: 0;
}
.movebtns .ibtn {
	width: 30px;
	height: 24px;
	border-radius: 7px;
}
.strip--sm {
	display: grid;
	grid-template-columns: repeat(7, 26px);
	gap: 3px;
	flex-shrink: 0;
}
.strip--sm span {
	height: 24px;
	font-size: 10px;
}

/* === Forms === */
.rd-main input[type="text"],
.rd-main input[type="email"],
.rd-main input[type="tel"],
.rd-main input[type="url"],
.rd-main input[type="number"],
.rd-main input[type="date"],
.rd-main input[type="time"],
.rd-main input[type="datetime-local"],
.rd-main input[type="password"],
.rd-main select,
.rd-main textarea {
	width: 100%;
	min-height: 50px;
	border-radius: 12px;
	border: 1.5px solid var(--line2);
	padding: 0 14px;
	background: var(--card);
	color: var(--ink);
	font-size: 15px;
	transition:
		border-color 0.25s ease,
		box-shadow 0.25s ease,
		background-color 0.35s ease;
}
.rd-main textarea {
	padding: 12px 14px;
	resize: vertical;
	line-height: 1.55;
	min-height: 0;
}
@media (hover: hover) {
	.rd-main input:hover,
	.rd-main select:hover,
	.rd-main textarea:hover {
		border-color: var(--greenline);
	}
}
.rd-main input:focus,
.rd-main select:focus,
.rd-main textarea:focus {
	outline: none;
	border-color: var(--accent);
	box-shadow: 0 0 0 4px var(--hl-ring);
}
.rd-main select {
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238A8A92' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 40px;
}
.rd-main ::placeholder {
	color: var(--placeholder);
}
.rd-form {
	background: none;
	box-shadow: none;
	padding: 0;
	border-radius: 0;
}
.input-xl {
	min-height: 60px !important;
	font-size: 22px !important;
	font-weight: 700;
}
.input-goal {
	text-align: center;
	font-size: 20px !important;
	font-weight: 800;
	padding: 0 8px !important;
}
.rd-card {
	background: var(--card);
	border-radius: 20px;
	border: 1px solid var(--line);
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 18px;
	box-shadow: var(--card-shadow);
}
.rd-h2 {
	font-size: 18px;
	font-weight: 700;
	font-style: normal;
	color: var(--ink);
}
.field-label {
	font-size: 14px;
	font-weight: 600;
	color: var(--ink);
}

.catpick {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(170px, 100%), 1fr));
	gap: 10px;
}
.catpick__opt {
	position: relative;
	cursor: pointer;
}
.catpick__opt input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.catpick__opt span {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 14px 16px;
	border-radius: 14px;
	border: 1.5px solid var(--line2);
	background: var(--card);
	transition:
		border-color 0.25s ease,
		background-color 0.25s ease,
		box-shadow 0.25s ease,
		transform 0.2s ease;
}
.catpick__opt b {
	font-size: 15px;
	color: var(--ink);
}
.catpick__opt small {
	font-size: 12px;
	color: var(--muted);
}
@media (hover: hover) {
	.catpick__opt:hover span {
		box-shadow: 0 0 0 3px var(--hl-ring);
	}
}
.catpick__opt input:checked + span {
	border-color: var(--accent);
	background: var(--greenwash);
	animation: pop 0.3s ease;
}
.catpick__opt input:focus-visible + span {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.scoreform {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 84px auto 84px minmax(0, 1fr);
	align-items: end;
	gap: 12px;
}
.scoreform__colon {
	font-size: 28px;
	font-weight: 800;
	color: var(--accent);
	padding-bottom: 8px;
}
@media (max-width: 640px) {
	.scoreform {
		grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	}
	.scoreform__team {
		grid-column: 1/-1;
	}
}

/* === Upload === */
.drop {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 150px;
	padding: 20px;
	border-radius: 16px;
	border: 2px dashed var(--line2);
	background: var(--soft);
	color: var(--ink);
	text-align: center;
	cursor: pointer;
	transition:
		border-color 0.25s ease,
		background-color 0.25s ease;
}
.drop.is-over {
	border-color: var(--accent);
	background: var(--greenwash);
}
@media (hover: hover) {
	.drop:hover {
		border-color: var(--accent);
		background: var(--greenwash);
	}
}
.drop b {
	font-size: 15px;
}
.drop small {
	font-size: 13px;
	color: var(--muted);
}
.drop__ico {
	width: 48px;
	height: 48px;
	border-radius: 14px;
	background: var(--dark);
	color: var(--accent);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 4px;
}
.drop--sm {
	min-height: 96px;
	flex-direction: row;
	gap: 14px;
}
.drop--sm .drop__ico {
	margin: 0;
}
.drop.has-file {
	border-style: solid;
	border-color: var(--accent);
	background: var(--greenwash);
}
.upl__preview {
	position: relative;
	border-radius: 16px;
	overflow: hidden;
	background: var(--soft);
	border: 1px solid var(--line);
}
.upl__preview img {
	width: 100%;
	max-height: 320px;
	object-fit: contain;
}
.upl__remove {
	position: absolute;
	right: 10px;
	top: 10px;
	background: var(--card);
}
.upl__preview.is-removed {
	opacity: 0.35;
}
.mupl__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
	gap: 10px;
}
.mupl__item {
	position: relative;
	aspect-ratio: 1;
	border-radius: 12px;
	overflow: hidden;
	background: var(--ph1);
	cursor: grab;
	box-shadow: var(--card-shadow);
	transition:
		transform 0.2s ease,
		opacity 0.2s ease;
}
.mupl__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	pointer-events: none;
}
.mupl__item:first-child::after {
	content: "Vorschau";
	position: absolute;
	left: 6px;
	bottom: 6px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	background: var(--accent);
	color: var(--on-accent);
	padding: 2px 6px;
	border-radius: 6px;
}
.mupl__item.is-new {
	outline: 2px solid var(--accent);
	outline-offset: -2px;
}
.mupl__item.is-drag {
	opacity: 0.4;
}
.mupl__x {
	position: absolute;
	right: 6px;
	top: 6px;
	width: 26px;
	height: 26px;
	border-radius: 8px;
	border: none;
	background: rgba(20, 20, 22, 0.75);
	color: #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
}
@media (hover: hover) {
	.mupl__x:hover {
		background: #c53030;
	}
}
.mupl__add {
	aspect-ratio: 1;
	border-radius: 12px;
	border: 2px dashed var(--line2);
	background: var(--soft);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 600;
	color: var(--muted);
	cursor: pointer;
	text-align: center;
	padding: 8px;
	transition:
		border-color 0.25s ease,
		color 0.25s ease,
		background-color 0.25s ease;
}
.mupl.is-over .mupl__add {
	border-color: var(--accent);
	color: var(--link);
	background: var(--greenwash);
}
@media (hover: hover) {
	.mupl__add:hover {
		border-color: var(--accent);
		color: var(--link);
		background: var(--greenwash);
	}
}

/* === Editor === */
.rd-editor {
	display: flex;
	flex-wrap: wrap;
	gap: 28px;
	align-items: flex-start;
}
.rd-editor__main {
	flex: 1 1 640px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin: 0;
}
.rd-editor__side {
	flex: 0 1 340px;
	min-width: 280px;
	position: sticky;
	top: 150px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.rd-preview {
	pointer-events: none;
}
.rd-preview .ncard__media {
	height: auto;
	aspect-ratio: 16/9;
}
.scorechip--light {
	background: var(--alt-solid);
	color: var(--ink);
	padding: 6px 12px;
}
.scorechip--light b {
	font-size: 16px;
}
.rd-actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.rd-actions .btn {
	width: 100%;
}
.rd-actions .inline-form {
	display: flex;
}
.rd-actions .inline-form .btn {
	width: 100%;
}
@media (max-width: 980px) {
	.rd-editor__side {
		position: static;
		flex-basis: 100%;
	}
}

.rte {
	position: relative;
	border: 1.5px solid var(--line2);
	border-radius: 14px;
	overflow: hidden;
	background: var(--card);
	transition:
		border-color 0.25s ease,
		box-shadow 0.25s ease;
}
.rte:focus-within {
	border-color: var(--accent);
	box-shadow: 0 0 0 4px var(--hl-ring);
}
.rte__bar {
	display: flex;
	flex-wrap: wrap;
	gap: 2px;
	padding: 6px;
	border-bottom: 1px solid var(--line);
	background: var(--soft);
}
.rte__bar button {
	width: 38px;
	height: 38px;
	border: none;
	border-radius: 8px;
	background: transparent;
	color: var(--ink);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.2s ease;
}
@media (hover: hover) {
	.rte__bar button:hover {
		background: var(--hl-tint);
	}
}
.rte__bar button.is-on {
	background: var(--active);
	color: var(--link);
}
.rte__sep {
	width: 1px;
	margin: 6px 4px;
	background: var(--line2);
}
.rte__area {
	min-height: 300px;
	padding: 18px 20px;
	margin: 0;
	max-width: none;
	font-size: 17px;
	outline: none;
}
.rte__area:empty::before {
	content: attr(data-placeholder);
	color: var(--placeholder);
}

/* === Import report === */
.report {
	gap: 16px;
}
.report__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.stat {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	padding: 12px 16px;
	border-radius: 14px;
	background: var(--alt-solid);
	font-size: 14px;
	color: var(--text);
}
.stat b {
	font-size: 24px;
	font-weight: 800;
	font-style: italic;
	color: var(--ink);
}
.stat--ok {
	background: var(--okbg);
	color: var(--okfg);
}
.stat--ok b {
	color: var(--okfg);
}
.stat--warn {
	background: var(--warnbg);
	color: var(--warnfg);
}
.stat--warn b {
	color: var(--warnfg);
}
.stat--bad {
	background: var(--badbg);
	color: var(--badfg);
}
.stat--bad b {
	color: var(--badfg);
}
.report__group {
	border: 1px solid var(--line);
	border-radius: 14px;
	overflow: hidden;
}
.report__group summary {
	padding: 12px 16px;
	font-weight: 700;
	cursor: pointer;
	background: var(--soft);
}
.report__group ul,
.report__list {
	list-style: none;
	margin: 0;
	padding: 8px 16px 14px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: 14px;
}
.report__group li,
.report__list li {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 10px;
	align-items: center;
}
.report__list {
	padding: 0 22px 16px;
}

/* === Training times === */
.plist {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.plist__row,
.slots__row {
	display: flex;
	align-items: center;
	gap: 8px;
}
.plist__row input {
	flex-grow: 1;
}
.daypick {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.daypick__d {
	width: 52px;
	height: 46px;
	border-radius: 12px;
	border: 1.5px solid var(--line2);
	background: var(--card);
	color: var(--ink);
	font-weight: 700;
	transition:
		background-color 0.25s ease,
		border-color 0.25s ease,
		color 0.25s ease,
		box-shadow 0.25s ease;
}
@media (hover: hover) {
	.daypick__d:hover {
		box-shadow: 0 0 0 3px var(--hl-ring);
	}
}
.daypick__d[aria-pressed="true"] {
	background: var(--accent);
	border-color: var(--accent);
	color: var(--on-accent);
	animation: pop 0.3s ease;
}
.slots {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr));
	gap: 12px;
}
.slots__day {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 16px;
	border-radius: 16px;
	background: var(--greenwash);
	border: 1px solid var(--greenline);
	animation: up 0.4s var(--ease) both;
}
.slots__day > b {
	font-size: 15px;
	color: var(--ink);
}
.slots__list {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.slots__row input {
	flex: 1 1 0;
	min-width: 0;
}
.slots__row span {
	font-size: 13px;
	color: var(--muted);
}
.slots__day .btn {
	align-self: flex-start;
}

/* === Profile === */
.soc-row {
	display: flex;
	align-items: center;
	gap: 12px;
}
.soc-prev {
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: var(--alt-solid);
	color: var(--ink);
	display: flex;
	align-items: center;
	justify-content: center;
}

/* === Login === */
.rd-login {
	min-height: 60vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 16px;
	padding: 40px 0;
}
.rd-login__card {
	width: 100%;
	max-width: 440px;
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 24px;
	box-shadow: var(--float-shadow);
	padding: 36px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.rd-login__card img {
	height: 70px;
	width: auto;
	align-self: flex-start;
}
.rd-login__note {
	font-size: 14px;
	color: var(--muted);
}

@media (max-width: 640px) {
	.rd-brand small {
		display: none;
	}
	.rd-brand img {
		height: 36px;
	}
	.rd-main {
		padding-top: 28px;
	}
	.rd-row {
		flex-wrap: wrap;
		padding: 14px 16px;
	}
	.rd-row__t {
		flex-basis: calc(100% - 110px);
	}
	.rd-row__act {
		margin-left: auto;
	}
	.rd-panel--pad {
		padding: 20px;
	}
	.rd-card {
		padding: 18px;
	}
	.strip--sm {
		display: none;
	}
}

/* === Sortable lists === */
.rd-sortlist [data-sort-item] {
	cursor: grab;
}
.rd-sortlist [data-sort-item].is-drag {
	opacity: 0.45;
	background: var(--hl-tint);
}
.rd-sortlist [data-sort-item].is-moved {
	animation: rdMoved 0.6s ease;
}
@keyframes rdMoved {
	from {
		background: var(--hl-soft);
	}
	to {
		background: transparent;
	}
}
.drag-handle {
	display: flex;
	align-items: center;
	color: var(--muted2);
	flex-shrink: 0;
}
.movebtns .ibtn:disabled {
	opacity: 0.35;
	pointer-events: none;
}
.rd-sortbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	padding: 12px 22px;
	background: var(--greenwash);
	border-bottom: 1px solid var(--greenline);
	position: sticky;
	top: 0;
	z-index: 5;
}
.rd-sortbar[hidden] {
	display: none;
}
.rd-sortbar span {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 600;
	color: var(--ink);
}
.rd-sortlist .rd-thumb {
	width: 56px;
	height: 42px;
	color: var(--muted2);
}
.rd-more {
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 12px 16px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.rd-more summary {
	cursor: pointer;
	font-weight: 600;
}
.rd-more[open] summary {
	margin-bottom: 6px;
}
@media (max-width: 640px) {
	.drag-handle {
		display: none;
	}
	.rd-sortlist .rd-thumb {
		display: none;
	}
}

.rd-evfilters {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	justify-content: flex-end;
}
.rd-panel__head select.rd-evteam {
	width: auto;
	min-width: 210px;
	max-width: 100%;
	height: 44px;
	min-height: 44px;
	padding-top: 0;
	padding-bottom: 0;
	font-size: 14px;
	font-weight: 600;
}
@media (max-width: 640px) {
	.rd-evfilters {
		width: 100%;
		justify-content: flex-start;
	}
	.rd-panel__head select.rd-evteam {
		flex: 1 1 100%;
	}
}

/* === Home page settings: features and posts === */
.featrows {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}
@media (max-width: 640px) {
	.featrows {
		grid-template-columns: 1fr;
	}
}
.featrow {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr);
	align-items: center;
	gap: 10px;
}
.featrow .ibox {
	width: 40px;
	height: 40px;
	border-radius: 10px;
}
.feerows {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.feerow {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1.2fr) minmax(0, 0.7fr) 40px;
	gap: 8px;
	align-items: center;
}
.feerow--head {
	font-size: 13px;
	font-weight: 600;
	color: var(--muted);
}
@media (max-width: 640px) {
	.feerow {
		grid-template-columns: 1fr 1fr 40px;
		row-gap: 6px;
	}
	.feerow input[name="fee_label[]"] {
		grid-column: 1 / -1;
	}
	.feerow--head {
		display: none;
	}
}

.rd-pin {
	padding: 14px 16px;
	border: 1px solid var(--greenline);
	background: var(--greenwash);
	border-radius: 14px;
}
.rd-pin small {
	font-size: 13px;
	color: var(--muted);
	font-weight: 400;
}

/* === Image crop ("Bildausschnitt") === */
.focuspick__row {
	display: flex;
	gap: 20px;
	align-items: flex-start;
	flex-wrap: wrap;
}
.focuspick__frame {
	position: relative;
	width: 300px;
	max-width: 100%;
	aspect-ratio: 13/10;
	border-radius: 14px;
	overflow: hidden;
	background: #262629;
	cursor: grab;
	touch-action: none;
	user-select: none;
	box-shadow: 0 0 0 1px var(--line2);
}
.focuspick__frame.is-drag {
	cursor: grabbing;
}
.focuspick__frame img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	pointer-events: none;
}
.focuspick__hint {
	position: absolute;
	left: 10px;
	bottom: 10px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 9px;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.6);
	color: #ffffff;
	font-size: 12px;
	font-weight: 600;
	pointer-events: none;
}
.focuspick__ctrl {
	flex: 1 1 220px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-items: flex-start;
}
.focuspick__zoom {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	max-width: 320px;
	font-size: 14px;
	font-weight: 600;
}
.focuspick__zoom input {
	flex: 1;
	accent-color: var(--accent);
}
.focuspick.is-hidden {
	display: none;
}
.focuspick--hero .focuspick__frame {
	width: 360px;
	aspect-ratio: 6/5;
	clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%);
	border-radius: 0;
	box-shadow: none;
	background: repeating-linear-gradient(-66deg, #303036 0 14px, #2b2b30 14px 28px);
}
.focuspick--hero .focuspick__hint {
	left: auto;
	right: 10px;
}
.teamcount {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin-top: 16px;
}
.teamcount .chip {
	text-decoration: none;
}

/* === Sponsors: status === */
.rd-row.is-off .rd-thumb,
.rd-row.is-off .rd-row__t {
	opacity: 0.5;
}
.ibtn.ibtn--on {
	color: var(--okfg);
	border-color: var(--greenline);
	background: var(--greenwash);
}
.seg--status {
	display: inline-flex;
	align-self: flex-start;
	gap: 4px;
	padding: 4px;
	border-radius: 12px;
	background: var(--alt-solid);
	border: 1px solid var(--line);
}
.seg__opt {
	position: relative;
	cursor: pointer;
}
.seg__opt input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.seg__opt span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 38px;
	padding: 0 14px;
	border-radius: 9px;
	font-size: 14px;
	font-weight: 600;
	color: var(--muted);
}
.seg__opt input:checked + span {
	background: var(--card);
	color: var(--ink);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.seg__opt input[value="aktiv"]:checked + span {
	color: var(--okfg);
}
.seg__opt input[value="inaktiv"]:checked + span {
	color: var(--badfg);
}
.seg__opt input:focus-visible + span {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

/* ---------- Tabs (youth page) ---------- */
.rd-tabs {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	scrollbar-width: none;
	padding: 2px;
	margin: -4px 0 4px;
}
.rd-tabs::-webkit-scrollbar {
	display: none;
}
.rd-tab {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 16px;
	border-radius: 999px;
	border: 1.5px solid var(--line2);
	background: var(--card);
	color: var(--ink);
	font-size: 14px;
	font-weight: 600;
	transition:
		background-color 0.25s ease,
		color 0.25s ease,
		border-color 0.25s ease,
		box-shadow 0.25s ease;
}
@media (hover: hover) {
	.rd-tab:hover {
		color: var(--ink);
		box-shadow:
			inset 0 0 0 999px var(--hl-tint),
			0 0 0 3px var(--hl-ring);
	}
}
.rd-tab.is-active {
	background: var(--inv-bg);
	border-color: var(--inv-bg);
	color: var(--inv-fg);
}
.rd-tab .ico {
	opacity: 0.8;
}
.rd-h3 {
	font-size: 15px;
	font-weight: 700;
	color: var(--ink);
	margin: 4px 0 -6px;
}
.rd-panel__title--split {
	flex-wrap: wrap;
}
.rd-panel__title--split > div {
	flex: 1 1 300px;
}
.rd-savebar {
	position: sticky;
	bottom: 12px;
	z-index: 5;
	padding: 12px 14px;
	margin-top: 4px;
	border-radius: 16px;
	background: var(--header);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	border: 1px solid var(--line);
	box-shadow: 0 14px 34px -22px rgba(20, 20, 22, 0.45);
}

/* ---------- Repeatable rows ---------- */
.rep {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.rep__list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.rep__item {
	display: grid;
	grid-template-columns: 28px minmax(0, 1fr) auto;
	gap: 12px;
	align-items: start;
	padding: 14px;
	border-radius: 16px;
	border: 1px solid var(--line);
	background: var(--soft);
	transition:
		background-color 0.25s ease,
		box-shadow 0.25s ease,
		opacity 0.2s ease;
}
@media (hover: hover) {
	.rep__item:hover {
		box-shadow: 0 0 0 3px var(--hl-ring);
	}
}
.rep__item.is-drag {
	opacity: 0.45;
	background: var(--hl-tint);
}
.rep__item.is-moved {
	animation: rdMoved 0.6s ease;
}
.rep__grip {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 40px;
	color: var(--muted2);
	cursor: grab;
	touch-action: none;
	border-radius: 8px;
}
@media (hover: hover) {
	.rep__grip:hover {
		color: var(--ink);
		background: var(--hl-tint);
	}
}
.rep__body {
	min-width: 0;
}
.rep__act {
	display: flex;
	gap: 6px;
	align-items: center;
}
.rep__act .ibtn {
	width: 36px;
	height: 36px;
}
.rep__act .ibtn:disabled {
	opacity: 0.3;
	pointer-events: none;
}
.rep__add {
	align-self: flex-start;
}
.rep__empty {
	margin: 0;
	padding: 6px 2px;
}
.rep--compact .rep__item {
	padding: 8px 10px;
	align-items: center;
}
.rep--compact .rep__grip {
	height: 36px;
}
.mini {
	display: flex;
	flex-direction: column;
	gap: 5px;
	min-width: 0;
}
.mini > span {
	font-size: 12px;
	font-weight: 600;
	color: var(--muted);
	letter-spacing: 0.02em;
}
.rd-main .mini input,
.rd-main .mini select {
	min-height: 44px;
	font-size: 14px;
}
.rd-main .mini textarea {
	min-height: 84px;
	padding-top: 10px;
	padding-bottom: 10px;
	font-size: 14px;
	line-height: 1.55;
}

.catrow {
	display: grid;
	grid-template-columns: minmax(150px, 1fr) minmax(200px, 1.6fr) 130px 170px;
	gap: 10px;
}
.catrow__meta {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 10px;
	font-size: 13px;
	color: var(--muted);
}
.tierrow {
	display: grid;
	grid-template-columns: minmax(180px, 1.4fr) 200px 64px auto;
	gap: 10px 14px;
	align-items: end;
}
.tierrow__n {
	font-size: 13px;
	color: var(--muted);
	padding-bottom: 12px;
	white-space: nowrap;
}
.sizeprev {
	height: 44px;
	display: flex;
	align-items: flex-end;
	justify-content: center;
}
.sizeprev i {
	display: block;
	border-radius: 6px;
	background: var(--accent);
	opacity: 0.8;
	transition:
		width 0.3s var(--ease),
		height 0.3s var(--ease);
}
.sizeprev[data-size-prev="xl"] i {
	width: 56px;
	height: 40px;
}
.sizeprev[data-size-prev="l"] i {
	width: 46px;
	height: 33px;
}
.sizeprev[data-size-prev="m"] i {
	width: 38px;
	height: 27px;
}
.sizeprev[data-size-prev="s"] i {
	width: 30px;
	height: 20px;
}
.sizeprev[data-size-prev="xs"] i {
	width: 22px;
	height: 14px;
}
.trow {
	display: grid;
	grid-template-columns: 130px minmax(130px, 1fr) minmax(150px, 1fr) minmax(170px, 1.3fr) minmax(130px, 1fr);
	gap: 10px;
}
.qrow {
	display: grid;
	grid-template-columns: minmax(180px, 0.8fr) minmax(0, 1.6fr);
	gap: 10px;
}
.vrow {
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
	gap: 10px;
}
.vrow__text {
	grid-column: 1 / -1;
}
@media (max-width: 1100px) {
	.trow {
		grid-template-columns: 1fr 1fr;
	}
	.trow__train {
		grid-column: 1 / -1;
	}
	.catrow {
		grid-template-columns: 1fr 1fr;
	}
}
@media (max-width: 640px) {
	.rep__item {
		grid-template-columns: minmax(0, 1fr);
		gap: 10px;
		padding: 12px;
	}
	.rep__grip {
		display: none;
	}
	.rep__act {
		justify-content: flex-end;
		order: -1;
	}
	.trow,
	.catrow,
	.qrow,
	.vrow {
		grid-template-columns: 1fr;
	}
	.tierrow {
		grid-template-columns: 1fr auto;
	}
	.tierrow__name {
		grid-column: 1 / -1;
	}
	.sizeprev {
		display: none;
	}
	.rd-savebar {
		bottom: 8px;
		padding: 8px;
	}
	.rd-savebar .btn--line {
		display: none;
	}
}

/* ---------- Sponsor categories ---------- */
.rd-tiers {
	margin-bottom: 22px;
}
.rd-tiers > summary {
	cursor: pointer;
	list-style: none;
	gap: 12px;
}
.rd-tiers > summary::-webkit-details-marker {
	display: none;
}
.rd-tiers > summary h2 {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}
.rd-tiers > summary .field-help {
	flex: 1 1 auto;
}
.rd-tiers > summary > .ico {
	transition: transform 0.3s var(--ease);
}
.rd-tiers[open] > summary > .ico {
	transform: rotate(180deg);
}
.rd-tiers:not([open]) > summary {
	border-bottom: none;
}
.rd-tiers__form {
	padding: 20px 22px 22px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/* ---------- Image crop: post (16:9) and person ---------- */
.focuspick--post .focuspick__frame {
	width: 400px;
	aspect-ratio: 16/9;
}
.focuspick--person .focuspick__frame {
	width: 300px;
	aspect-ratio: 13/10;
}

/* Round profile picture: square frame, the corners outside the circle are dimmed. */
.focuspick--avatar .focuspick__frame {
	width: 240px;
	aspect-ratio: 1/1;
}
.focuspick--avatar .focuspick__frame::after {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: 50%;
	box-shadow: 0 0 0 999px rgba(0, 0, 0, 0.55);
	pointer-events: none;
}
.focuspick--avatar .focuspick__hint {
	z-index: 1;
	left: 50%;
	transform: translateX(-50%);
	white-space: nowrap;
}

/* =====================================================================
 * Sponsor portal (editorial area + sponsor area) – since 1.2.0
 * ===================================================================== */
.notice:not([class*="notice--"]) {
	background: var(--alt-solid);
	color: var(--text);
}
.notice a {
	color: inherit;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.notice--big {
	font-size: 15px;
	padding: 16px 20px;
}
.f4 {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(170px, 100%), 1fr));
	gap: 16px;
}
.rd-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 7px;
	border-radius: 999px;
	background: var(--accent);
	color: var(--on-accent);
	font-size: 12px;
	font-weight: 800;
	line-height: 1;
}
.rd-tab.is-active .rd-badge {
	background: var(--dark);
	color: var(--accent);
}
.rd-row--link {
	color: inherit;
}
@media (hover: hover) {
	.rd-row--link:hover {
		color: inherit;
	}
}
.rd-row--foot {
	flex-wrap: wrap;
	gap: 8px;
	background: var(--soft);
}
@media (hover: hover) {
	.rd-row--foot:hover {
		background: var(--soft);
	}
}
.rd-row--log2 .rd-row__t b {
	font-size: 14px;
}
.rd-row__money {
	font-weight: 800;
	color: var(--ink);
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}
/* Inactive rows (deactivated sponsor, inactive service, locked account) are dimmed. Only the
   children are dimmed, not the row itself: opacity on the row creates a stacking context that
   traps the "Gebuchte Leistungen" popover inside it – half transparent and, on phones, below the
   tab bar (same cause as the old "Kalender abonnieren" bug; Code-Review T-CSS-01, since 1.12.9).
   Logo and name keep their former strength (0.62 × 0.5). */
.rd-row.is-off > :not(.rd-row__act),
.rd-row.is-off > .rd-row__act > :not(details),
.rd-row.is-off > .rd-row__act > details > summary {
	opacity: 0.62;
}
.rd-row.is-off > .rd-thumb,
.rd-row.is-off > .rd-row__t {
	opacity: 0.31;
}
/* Locked accounts in "Benutzer & Rollen": the "Gesperrt" chip already marks the row, so name and
   e-mail stay readable (muted colour instead of 31 % opacity; Code-Review N-JS-02, since 1.13.9). */
.rd-row.usr.is-off > .rd-row__t,
.rd-row.usr.is-off > .usr__lock {
	opacity: 1;
}
.rd-row.usr.is-off > .rd-row__t b {
	color: var(--muted);
}
.rd-cols--2 {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr));
	gap: 22px;
	align-items: start;
}
.ibox--sm {
	width: 38px;
	height: 38px;
	border-radius: 10px;
}
.avatar--ghost {
	background: var(--alt-solid);
	color: var(--muted);
}
.yearbox {
	flex-shrink: 0;
	min-width: 58px;
	height: 40px;
	padding: 0 10px;
	border-radius: 10px;
	background: var(--dark);
	color: var(--accent);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 15px;
	font-variant-numeric: tabular-nums;
}
.doc-ico {
	width: 42px;
	height: 42px;
	flex-shrink: 0;
	border-radius: 10px;
	background: var(--badbg);
	color: var(--badfg);
	display: flex;
	align-items: center;
	justify-content: center;
}
.crow {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr));
	gap: 10px;
	width: 100%;
}
.brow {
	display: grid;
	grid-template-columns: minmax(0, 2.2fr) minmax(0, 1.1fr) minmax(0, 0.6fr) minmax(0, 1.3fr) minmax(0, 0.7fr) minmax(
			0,
			1fr
		);
	gap: 10px;
	width: 100%;
}
@media (max-width: 1000px) {
	.brow {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.brow__name {
		grid-column: 1/-1;
	}
}
@media (max-width: 560px) {
	.brow {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}
}
.calc {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--line);
	border-radius: 14px;
	overflow: hidden;
}
.calc > div {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 14px;
	font-size: 14px;
	border-bottom: 1px solid var(--line);
}
.calc > div:last-child {
	border-bottom: none;
}
.calc b {
	font-variant-numeric: tabular-nums;
	color: var(--ink);
}
.calc__sum {
	background: var(--greenwash);
	font-weight: 700;
}
.rd-invite {
	padding: 16px 22px;
	border-top: 1px solid var(--line);
	display: flex;
	flex-direction: column;
	gap: 8px;
	background: var(--soft);
}
.rd-invite label {
	font-size: 14px;
	font-weight: 700;
	color: var(--ink);
}
.rd-docform {
	padding: 16px 22px;
	border-top: 1px solid var(--line);
	background: var(--soft);
	display: flex;
	flex-direction: column;
	gap: 8px;
}
/* Document upload in the sponsor panel: stacked (title + type in one row, file picker below). */
.docform {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.docform .f2 {
	gap: 12px;
}
.docform > .btn {
	align-self: flex-start;
}
.docform .drop {
	justify-content: flex-start;
	text-align: left;
}
.drop__txt {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.drop__txt b {
	overflow-wrap: anywhere;
}

/* === Requests and approvals === */
.req {
	padding: 20px 22px;
	border-bottom: 1px solid var(--line);
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.req:last-child {
	border-bottom: none;
}
.req__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
}
.req__title {
	font-size: 17px;
	color: var(--ink);
}
.req__facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr));
	gap: 10px 18px;
	margin: 0;
}
.req__facts dt {
	font-size: 12px;
	font-weight: 600;
	color: var(--muted);
	letter-spacing: 0.02em;
}
.req__facts dd {
	margin: 0;
	font-size: 15px;
	color: var(--ink);
	word-break: break-word;
}
.req__msg {
	margin: 0;
	padding: 14px 16px;
	border-radius: 12px;
	background: var(--soft);
	border: 1px solid var(--line);
	font-size: 15px;
	line-height: 1.6;
	color: var(--text);
}
.req__act {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	flex-wrap: wrap;
}
.req__no {
	flex: 1 1 320px;
}
.req__no > summary {
	list-style: none;
	cursor: pointer;
	display: inline-flex;
}
.req__no > summary::-webkit-details-marker {
	display: none;
}
.req__no[open] > summary {
	margin-bottom: 12px;
}
.req__noform {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 16px;
	border-radius: 14px;
	border: 1px solid var(--line);
	background: var(--card);
}
.req__decide {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.mailprev {
	padding: 14px 16px;
	border-radius: 12px;
	background: var(--soft);
	border-left: 4px solid var(--accent);
	font-size: 14px;
	line-height: 1.6;
	color: var(--text);
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.mailprev small {
	font-size: 12px;
	font-weight: 600;
	color: var(--muted);
}
.mailprev p {
	margin: 0;
}
.diff {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}
.diff th,
.diff td {
	text-align: left;
	vertical-align: top;
	padding: 9px 12px;
	border-bottom: 1px solid var(--line);
}
.diff thead th {
	font-size: 12px;
	color: var(--muted);
	font-weight: 600;
}
.diff tbody th {
	width: 150px;
	color: var(--muted);
	font-weight: 600;
}
.diff tr.is-changed td:last-child {
	background: var(--okbg);
	color: var(--okfg);
	font-weight: 600;
}
.diff__logo img {
	max-width: 120px;
	max-height: 70px;
	width: auto;
	height: auto;
	object-fit: contain;
}
@media (max-width: 640px) {
	.diff tbody th {
		width: auto;
	}
	.diff thead {
		display: none;
	}
	.diff tr {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}
	.diff tbody th {
		grid-column: 1/-1;
		border-bottom: none;
		padding-bottom: 0;
	}
}
.newsprev > summary {
	cursor: pointer;
	font-size: 14px;
}
.newsprev__body {
	margin-top: 12px;
	padding: 18px;
	border: 1px solid var(--line);
	border-radius: 14px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.newsprev__img {
	aspect-ratio: 16/9;
	border-radius: 12px;
	overflow: hidden;
	max-width: 520px;
}
.newsprev__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* === Sponsor area ("Sponsorenbereich") === */
.rd-bar--portal .rd-brand small {
	color: var(--accent);
}
.pv-banner {
	background: var(--warnbg);
	color: var(--warnfg);
	font-size: 14px;
}
.pv-banner .wrap {
	display: flex;
	align-items: center;
	gap: 10px;
	padding-top: 10px;
	padding-bottom: 10px;
}
fieldset.pv-open,
fieldset.pv-disabled {
	border: none;
	margin: 0;
	padding: 0;
	min-width: 0;
	display: contents;
}
fieldset.pv-disabled .btn,
fieldset.pv-disabled button {
	opacity: 0.5;
	cursor: not-allowed;
}
.sp-main {
	gap: 24px;
}
.sp-cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(380px, 100%), 1fr));
	gap: 22px;
	align-items: start;
}
.sp-cols--editor {
	grid-template-columns: minmax(0, 1.7fr) minmax(280px, 1fr);
}
@media (max-width: 900px) {
	.sp-cols--editor {
		grid-template-columns: 1fr;
	}
}
.upl--keep .upl__remove {
	display: none;
}
.seg--tabs {
	display: flex;
	width: 100%;
}
.seg--tabs a {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 0 12px;
	border-radius: 9px;
	font-size: 14px;
	font-weight: 600;
	color: var(--muted);
	text-align: center;
}
.seg--tabs a[aria-selected="true"] {
	background: var(--card);
	color: var(--ink);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.kpis {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr));
	gap: 14px;
}
.kpi {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 18px 20px;
	border-radius: 18px;
	background: var(--card);
	border: 1px solid var(--line);
	box-shadow: var(--card-shadow);
}
.kpi small {
	font-size: 12px;
	font-weight: 600;
	color: var(--muted);
	letter-spacing: 0.02em;
}
.kpi b {
	font-size: 22px;
	font-weight: 800;
	color: var(--ink);
	line-height: 1.2;
}
.kpi:first-child {
	background: var(--dark);
	border-color: var(--dark);
}
.kpi:first-child small {
	color: #bdbdc4;
}
.kpi:first-child b {
	color: var(--accent);
}
.btable {
	border-bottom: 1px solid var(--line);
}
.btable:last-child {
	border-bottom: none;
}
.btable__head {
	display: flex;
	align-items: baseline;
	gap: 12px;
	flex-wrap: wrap;
	padding: 14px 22px;
	background: var(--soft);
}
.btable__head b {
	font-size: 18px;
	color: var(--ink);
}
.btable__head span {
	font-size: 13px;
	color: var(--muted);
}
.btable__row,
.btable__sum {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 10px 22px;
	font-size: 15px;
}
.btable__row {
	border-top: 1px solid var(--line);
}
.btable__row small {
	display: block;
	font-size: 12px;
	color: var(--muted);
}
.btable__money,
.btable__sum span:last-child {
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	color: var(--ink);
}
.btable__sum {
	font-size: 14px;
	color: var(--muted);
	padding-top: 6px;
	padding-bottom: 6px;
}
.btable__sum:first-of-type {
	border-top: 2px solid var(--line);
}
.btable__row + .btable__sum {
	border-top: 2px solid var(--line);
	padding-top: 10px;
}
.btable__sum--total {
	font-size: 16px;
	font-weight: 800;
	color: var(--ink);
	padding-bottom: 14px;
}

/* === Booking configurator === */
.config {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 24px;
	align-items: start;
}
@media (max-width: 900px) {
	.config {
		grid-template-columns: 1fr;
	}
}
.config__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.config__side {
	position: sticky;
	top: 130px;
}
@media (max-width: 900px) {
	.config__side {
		position: static;
	}
}
.offer {
	position: relative;
	cursor: pointer;
	display: block;
}
.offer > input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.offer__box {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 18px 20px;
	border-radius: 18px;
	border: 1.5px solid var(--line2);
	background: var(--card);
	transition:
		border-color 0.25s ease,
		background-color 0.25s ease,
		box-shadow 0.25s ease,
		transform 0.2s ease;
}
@media (hover: hover) {
	.offer:hover .offer__box {
		border-color: var(--greenline);
		transform: translateY(-1px);
	}
}
.offer > input:checked + .offer__box {
	border-color: var(--accent);
	background: var(--greenwash);
	box-shadow: 0 0 0 3px var(--hl-ring);
}
.offer > input:focus-visible + .offer__box {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}
.offer__check {
	width: 26px;
	height: 26px;
	flex-shrink: 0;
	border-radius: 8px;
	border: 2px solid var(--line2);
	display: flex;
	align-items: center;
	justify-content: center;
	color: transparent;
	margin-top: 2px;
	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease;
}
.offer > input:checked + .offer__box .offer__check {
	background: var(--accent);
	border-color: var(--accent);
	color: var(--on-accent);
	animation: pop 0.3s ease;
}
.offer__t {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.offer__t b {
	font-size: 16px;
	color: var(--ink);
}
.offer__t small {
	font-size: 14px;
	color: var(--muted);
	line-height: 1.5;
}
.offer__chips {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	margin-top: 4px;
}
.offer__chips:empty {
	display: none;
}
.offer__price {
	flex-shrink: 0;
	text-align: right;
	font-size: 18px;
	font-weight: 800;
	color: var(--ink);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.offer__price small {
	display: block;
	font-size: 12px;
	font-weight: 600;
	color: var(--muted);
}
@media (max-width: 520px) {
	.offer__box {
		flex-wrap: wrap;
	}
	.offer__price {
		width: 100%;
		text-align: left;
		padding-left: 40px;
	}
}
.summary {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 22px;
	border-radius: 20px;
	background: var(--card);
	border: 1px solid var(--line);
	box-shadow: var(--float-shadow);
}
.summary__rows {
	display: flex;
	flex-direction: column;
	border-radius: 14px;
	border: 1px solid var(--line);
	overflow: hidden;
}
.summary__rows > div {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	padding: 10px 14px;
	font-size: 14px;
	border-bottom: 1px solid var(--line);
}
.summary__rows > div:last-child {
	border-bottom: none;
}
.summary__rows b {
	font-variant-numeric: tabular-nums;
	color: var(--ink);
}
.summary__total {
	background: var(--dark);
	color: #ffffff;
}
.summary__total b {
	color: var(--accent);
	font-size: 18px;
}
.summary .btn {
	width: 100%;
	justify-content: center;
}

/* === News quota ("News-Kontingent") === */
.quota {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 18px 22px;
	border-radius: 20px;
	background: var(--card);
	border: 1px solid var(--line);
	box-shadow: var(--card-shadow);
}
.quota__num {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 86px;
	height: 86px;
	border-radius: 18px;
	background: var(--dark);
	color: #bdbdc4;
	font-size: 12px;
	font-weight: 600;
}
.quota__num b {
	font-size: 34px;
	line-height: 1;
	color: var(--accent);
	font-weight: 800;
}
.quota__t {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.quota__t > b {
	font-size: 16px;
	color: var(--ink);
}
.quota__t small {
	font-size: 13px;
	color: var(--muted);
}
.quota__bar {
	display: flex;
	gap: 4px;
	flex-wrap: wrap;
}
.quota__bar span {
	flex: 1 1 18px;
	max-width: 46px;
	height: 10px;
	border-radius: 999px;
	background: var(--okbg);
	border: 1px solid var(--greenline);
}
.quota__bar span.is-used {
	background: var(--muted2);
	border-color: var(--muted2);
}
.quota__bar span.is-pending {
	background: var(--warnbg);
	border-color: var(--warnfg);
}
.quota--side {
	padding: 14px 16px;
	box-shadow: none;
	background: var(--soft);
	gap: 10px;
}
.quota--side b {
	font-size: 26px;
	font-weight: 800;
	color: var(--link);
}
.quota--side span {
	font-size: 13px;
	color: var(--muted);
}
@media (max-width: 640px) {
	.kpis {
		grid-template-columns: 1fr 1fr;
		gap: 10px;
	}
	.kpi {
		padding: 14px 16px;
	}
	.kpi b {
		font-size: 18px;
	}
	.quota {
		padding: 14px 16px;
		gap: 14px;
	}
	.quota__num {
		min-width: 70px;
		height: 70px;
	}
	.quota__num b {
		font-size: 28px;
	}
}
@media (max-width: 480px) {
	.rd-bar--portal .tswitch {
		display: none;
	}
}

/* === 1.3.0: stock, quantity, price calculation === */
.stockrow {
	display: flex;
	align-items: flex-end;
	gap: 14px;
	flex-wrap: wrap;
}
.stockrow__qty {
	display: flex;
	flex-direction: column;
	gap: 5px;
	width: 120px;
}
.stockrow__qty > span {
	font-size: 12px;
	font-weight: 600;
	color: var(--muted);
}
.rd-main .stockrow__qty input {
	min-height: 44px;
}
.rd-main .stockrow__qty input:disabled {
	opacity: 0.45;
	cursor: not-allowed;
	background: var(--soft);
}
.offer__qty {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
	margin-top: 10px;
	font-size: 12px;
	font-weight: 600;
	color: var(--muted);
}
.rd-main .offer__qty input {
	width: 72px;
	min-height: 40px;
	padding: 0 10px;
	text-align: center;
	font-weight: 700;
}
.offer.is-out {
	cursor: not-allowed;
}
.offer.is-out .offer__box {
	background: var(--soft);
	border-style: dashed;
	transform: none;
}
.offer.is-out .offer__t > b,
.offer.is-out .offer__t > small,
.offer.is-out .offer__price,
.offer.is-out .offer__check {
	opacity: 0.5;
}
@media (hover: hover) {
	.offer.is-out:hover .offer__box {
		border-color: var(--line2);
	}
}
@media (max-width: 520px) {
	.offer__qty {
		justify-content: flex-start;
	}
}

/* === 1.3.0: visitor numbers === */
:root {
	--bar: #1b9e1b;
	--bar-hover: #14801a;
}
:root[data-theme="dark"] {
	--bar: #2db02d;
	--bar-hover: #3dc23d;
}
.stiles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(170px, 100%), 1fr));
	gap: 1px;
	background: var(--line);
	border-bottom: 1px solid var(--line);
}
.stile {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 16px 22px;
	background: var(--card);
}
.stile small {
	font-size: 12px;
	font-weight: 600;
	color: var(--muted);
	letter-spacing: 0.02em;
}
.stile b {
	font-size: 28px;
	font-weight: 800;
	color: var(--ink);
	line-height: 1.15;
	font-variant-numeric: tabular-nums;
}
.stile span {
	font-size: 12px;
	color: var(--muted2);
}
.stats__body {
	display: grid;
	grid-template-columns: minmax(0, 1.7fr) minmax(260px, 1fr);
	gap: 28px;
	padding: 20px 22px 22px;
}
@media (max-width: 900px) {
	.stats__body {
		grid-template-columns: 1fr;
	}
}
.stats__h {
	font-size: 15px;
	font-weight: 700;
	font-style: normal;
	color: var(--ink);
	margin-bottom: 12px;
}
.stats__h small {
	font-size: 12px;
	font-weight: 500;
	color: var(--muted);
	margin-left: 6px;
}
.sbars {
	margin: 0;
	position: relative;
}
.sbars__plot {
	position: relative;
	height: 190px;
	padding-left: 34px;
}
.sbars__grid {
	position: absolute;
	inset: 0 0 0 34px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	pointer-events: none;
}
.sbars__grid span {
	position: relative;
	border-top: 1px solid var(--line);
	height: 0;
}
.sbars__grid span:last-child {
	border-top-color: var(--line2);
}
.sbars__grid span::before {
	content: attr(data-v);
	position: absolute;
	right: calc(100% + 8px);
	top: -8px;
	font-size: 11px;
	color: var(--muted2);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.sbars__cols {
	position: relative;
	height: 100%;
	display: flex;
	align-items: flex-end;
	gap: 2px;
}
.sbars__col {
	flex: 1;
	height: 100%;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	cursor: default;
	outline: none;
	border-radius: 4px;
}
.sbars__col i {
	display: block;
	width: 100%;
	max-width: 22px;
	background: var(--bar);
	border-radius: 4px 4px 0 0;
	transition: background-color 0.15s ease;
}
.sbars__col:focus-visible i {
	background: var(--bar-hover);
}
@media (hover: hover) {
	.sbars__col:hover i {
		background: var(--bar-hover);
	}
}
.sbars__col:focus-visible {
	box-shadow: 0 0 0 2px var(--accent);
}
.sbars__x {
	display: flex;
	justify-content: space-between;
	padding: 8px 0 0 34px;
	font-size: 11px;
	color: var(--muted2);
}
.sbars__tip {
	position: absolute;
	z-index: 3;
	pointer-events: none;
	min-width: 130px;
	padding: 8px 12px;
	border-radius: 10px;
	background: var(--card);
	border: 1px solid var(--line2);
	box-shadow: var(--float-shadow);
	font-size: 12px;
	color: var(--muted);
	transform: translate(-50%, calc(-100% - 10px));
}
.sbars__tip b {
	display: block;
	font-size: 15px;
	color: var(--ink);
	font-variant-numeric: tabular-nums;
}
.sbars__tip em {
	font-style: normal;
	display: block;
	margin-top: 2px;
}
.sbars__table {
	margin-top: 12px;
	font-size: 13px;
}
.sbars__table summary {
	cursor: pointer;
	color: var(--link);
	font-weight: 600;
}
.sbars__table table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 8px;
}
.sbars__table th,
.sbars__table td {
	text-align: left;
	padding: 6px 8px;
	border-bottom: 1px solid var(--line);
}
.sbars__table td + td,
.sbars__table th + th {
	text-align: right;
	font-variant-numeric: tabular-nums;
}
.stop {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.stop a {
	position: relative;
	display: flex;
	justify-content: space-between;
	gap: 10px;
	padding: 7px 10px;
	border-radius: 8px;
	color: var(--ink);
	font-size: 14px;
	overflow: hidden;
}
@media (hover: hover) {
	.stop a:hover {
		color: var(--ink);
		background: var(--hl-tint);
	}
}
.stop i {
	position: absolute;
	left: 0;
	bottom: 0;
	height: 3px;
	background: var(--bar);
	border-radius: 2px;
	opacity: 0.75;
}
.stop__t {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.stop b {
	font-variant-numeric: tabular-nums;
}
.sspons {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.sspons div {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	padding: 7px 10px;
	font-size: 14px;
	border-bottom: 1px solid var(--line);
}
.sspons dt {
	color: var(--text);
}
.sspons dd {
	margin: 0;
	font-weight: 700;
	color: var(--ink);
	font-variant-numeric: tabular-nums;
}
.newsviews {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 12px;
	font-weight: 600;
	color: var(--muted);
	white-space: nowrap;
}

/* === 1.3.1: editorial nav bar wraps into a second row on large screens instead of scrolling === */
@media (min-width: 761px) {
	.rd-nav__in {
		flex-wrap: wrap;
		overflow: visible;
		row-gap: 4px;
	}
}
.rd-nav__in.is-grid {
	display: grid;
	grid-template-columns: repeat(var(--cols), minmax(0, 1fr));
	gap: 4px;
}
.rd-nav__in.is-grid a {
	justify-content: center;
}
/* Columns of the previous editorial page, applied before editorial.js has measured the bar
   (html.rd-nav-grid, inline script in template-parts/editorial/appbar.php, since 1.13.11). */
@media (min-width: 761px) {
	.rd-nav-grid .rd-bar .rd-nav__in {
		display: grid;
		grid-template-columns: repeat(var(--rd-nav-cols), minmax(0, 1fr));
		gap: 4px;
	}
	.rd-nav-grid .rd-bar .rd-nav__in a {
		justify-content: center;
	}
}
.rd-tiles.is-mirror {
	grid-template-columns: repeat(var(--cols), minmax(0, 1fr));
}
.rd-tiles.is-dense {
	gap: 10px;
}
.rd-tiles.is-dense .rd-tile {
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	text-align: center;
	gap: 10px;
	padding: 16px 10px 14px;
	min-height: 0;
}
.rd-tiles.is-dense .rd-tile .ibox {
	width: 42px;
	height: 42px;
}
.rd-tiles.is-dense .rd-tile__t {
	align-items: center;
	min-width: 0;
	width: 100%;
}
.rd-tiles.is-dense .rd-tile__t b {
	font-size: 14px;
}
.rd-tiles.is-dense .rd-tile__t small {
	font-size: 11.5px;
	line-height: 1.35;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
/* === Sponsorship service: visible to selected sponsors only === */
.onlybox {
	margin-top: 10px;
	border: 1px solid var(--line2);
	border-radius: 14px;
	background: var(--soft);
	overflow: hidden;
}
.onlybox__head {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 12px;
	border-bottom: 1px solid var(--line);
}
.rd-main .onlybox__head input {
	width: 100%;
	max-width: 260px;
	min-height: 40px;
	border-radius: 10px;
	border: 1.5px solid var(--line2);
	padding: 0 12px;
	background: var(--card);
	color: var(--ink);
	font-size: 14px;
}
.rd-main .onlybox__head input:focus {
	outline: none;
	border-color: var(--accent);
	box-shadow: 0 0 0 3px var(--hl-ring);
}
.onlybox__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr));
	gap: 2px 14px;
	max-height: 260px;
	overflow: auto;
	padding: 10px 14px;
}
.onlybox__list .check {
	padding: 6px 4px;
	font-size: 14px;
	color: var(--ink);
}
.onlybox__list .check[hidden] {
	display: none;
}
.onlybox__list small {
	color: var(--muted2);
}
.field[data-only].is-limited .onlybox {
	border-color: var(--accent);
}
.field[data-only].is-limited [data-only-count] {
	color: var(--link);
	font-weight: 600;
}
/* === Sponsorship service categories === */
.config__group {
	font-size: 13px;
	font-weight: 700;
	font-style: normal;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--link);
	margin: 14px 0 2px;
	display: flex;
	align-items: center;
	gap: 12px;
}
.config__group::after {
	content: "";
	flex: 1;
	height: 2px;
	border-radius: 2px;
	background: var(--greenline);
}
.config__group:first-child {
	margin-top: 0;
}
.lgroup {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 22px;
	background: var(--soft);
	border-bottom: 1px solid var(--line);
	border-top: 1px solid var(--line);
}
.lgroup:first-of-type {
	border-top: none;
}
.lgroup b {
	font-size: 13px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ink);
}
.lgroup small {
	font-size: 12px;
	font-weight: 700;
	color: var(--muted);
	background: var(--alt-solid);
	border-radius: 999px;
	padding: 1px 8px;
}
.lgroup .tlink {
	margin-left: auto;
	font-size: 13px;
	display: inline-flex;
	align-items: center;
	gap: 4px;
}
.lcatrow {
	display: flex;
	align-items: flex-end;
	gap: 12px;
	width: 100%;
}
.lcatrow__name {
	flex: 1;
}
.stats__seg a {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 0 12px;
	border-radius: 9px;
	font-size: 13px;
	font-weight: 600;
	color: var(--muted);
}
@media (hover: hover) {
	.stats__seg a:hover {
		color: var(--ink);
	}
}
.stats__seg a[aria-current="true"] {
	background: var(--card);
	color: var(--ink);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.stats__note {
	padding: 10px 22px 0;
	margin: 0;
}
.stats .stiles {
	margin-top: 10px;
	border-top: 1px solid var(--line);
}
.shelp {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: 13px;
	line-height: 1.5;
	color: var(--muted);
}
.shelp b {
	color: var(--ink);
	font-weight: 600;
}
@media (max-width: 640px) {
	.stats .rd-panel__head {
		flex-direction: column;
		align-items: flex-start;
	}
	.stats__seg {
		max-width: 100%;
		overflow-x: auto;
	}
}
.tabstate {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	margin-top: 8px;
	font-size: 13px;
	color: var(--muted);
	line-height: 1.45;
}
.tabstate .ico {
	flex-shrink: 0;
	margin-top: 2px;
}
.tabstate--ok {
	color: var(--okfg);
}
.tabstate--bad {
	color: var(--badfg);
}

/* ---------- Club activities ("Vereinsaktivitäten") ---------- */
.actstats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 12px;
}
.actstat {
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 14px 18px;
	display: flex;
	flex-direction: column;
	gap: 4px;
	box-shadow: var(--card-shadow);
}
.actstat small {
	font-size: 12px;
	font-weight: 600;
	color: var(--muted);
}
.actstat b {
	font-size: 26px;
	font-weight: 800;
	color: var(--ink);
	line-height: 1.1;
}
.actstat b span {
	font-size: 15px;
	font-weight: 600;
	color: var(--muted);
}
.actstat--state b {
	font-size: 18px;
	padding-top: 5px;
}
.ageout {
	display: inline-block;
	padding: 0 6px;
	border-radius: 6px;
	background: var(--warnbg);
	color: var(--warnfg);
	font-weight: 700;
}
.actrow__chips {
	flex-wrap: wrap;
	justify-content: flex-end;
	max-width: 340px;
}
@media (max-width: 760px) {
	.actrow {
		flex-wrap: wrap;
	}
	.actrow__chips {
		max-width: none;
		justify-content: flex-start;
		width: 100%;
		order: 3;
	}
}
.actstat--warn {
	border-color: var(--warnfg);
}
.actstat--warn b {
	color: var(--warnfg);
}
.actppl {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	counter-reset: ppl;
}
.actppl li {
	counter-increment: ppl;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 12px 6px 8px;
	border-radius: 10px;
	background: var(--soft);
	border: 1px solid var(--line);
	font-size: 14px;
	font-weight: 600;
	color: var(--ink);
}
.actppl li::before {
	content: counter(ppl);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	border-radius: 6px;
	background: var(--active);
	color: var(--link);
	font-size: 11px;
	font-weight: 800;
}
.actppl li em {
	font-style: normal;
	font-weight: 600;
	color: var(--warnfg);
}
.actppl li small {
	font-weight: 500;
	color: var(--muted);
}

.req__act .req__no:not([open]) {
	flex: 0 0 auto;
}

/* ---------- Sponsors: overview ---------- */
.ovhead {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}
.ovhead .seg {
	flex-wrap: wrap;
}
.ovtable-wrap {
	overflow-x: auto;
}
.ovtable {
	width: 100%;
	border-collapse: collapse;
	font-size: 14.5px;
}
.ovtable th,
.ovtable td {
	padding: 14px 22px;
	border-bottom: 1px solid var(--line);
	text-align: left;
	vertical-align: top;
}
.ovtable thead th {
	padding-top: 12px;
	padding-bottom: 12px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--muted);
	background: var(--soft);
}
.ovtable tbody th {
	font-weight: 700;
	color: var(--ink);
	min-width: 150px;
}
.ovtable tbody th a {
	color: var(--ink);
}
@media (hover: hover) {
	.ovtable tbody th a:hover {
		color: var(--link);
	}
}
.ovtable tbody th small {
	display: block;
	font-weight: 500;
	font-size: 12px;
	color: var(--muted);
}
@media (hover: hover) {
	.ovtable tbody tr:hover {
		background: var(--hl-tint);
	}
}
.ovtable tbody tr.is-empty th,
.ovtable tbody tr.is-empty td {
	color: var(--muted);
}
.ovtable tfoot th,
.ovtable tfoot td {
	border-bottom: none;
	background: var(--soft);
	color: var(--ink);
}
.ovtable__n {
	text-align: right !important;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}
.ovtable__n small {
	display: block;
	font-size: 12px;
}
.ovtable .is-open,
.ovitems .is-open small {
	color: var(--warnfg);
}
.ovitems {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.ovitems li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
}
.ovitems li a {
	color: var(--ink);
	font-weight: 600;
}
@media (hover: hover) {
	.ovitems li a:hover {
		color: var(--link);
	}
}
.ovitems li small {
	color: var(--muted);
	white-space: nowrap;
}
.ovitems li.is-open a {
	color: var(--warnfg);
}
.ovitems--inline {
	flex-direction: row;
	flex-wrap: wrap;
}
.ovitems--inline li {
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--soft);
	border: 1px solid var(--line);
	gap: 6px;
}
.ovitems--inline li.is-open {
	background: var(--warnbg);
	border-color: transparent;
}

/* === Sponsor list: booked services === */
.spbk {
	position: relative;
}
.spbk > summary {
	list-style: none;
	cursor: pointer;
	position: relative;
}
.spbk > summary::-webkit-details-marker {
	display: none;
}
.spbk.is-none > summary {
	opacity: 0.55;
}
.spbk[open] > summary {
	background: var(--inv-bg);
	color: var(--inv-fg);
	border-color: var(--inv-bg);
}
.spbk__n {
	position: absolute;
	top: -6px;
	right: -6px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--accent);
	color: var(--on-accent);
	font-size: 11px;
	font-weight: 800;
	line-height: 18px;
	text-align: center;
}
.spbk__panel {
	position: fixed;
	z-index: 60;
	width: min(360px, calc(100vw - 32px));
	padding: 16px 18px;
	border-radius: 16px;
	background: var(--card);
	border: 1px solid var(--line);
	box-shadow: var(--float-shadow);
	display: flex;
	flex-direction: column;
	gap: 10px;
	text-align: left;
	white-space: normal;
}
.spbk__head {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.spbk__head b {
	font-size: 15px;
	color: var(--ink);
}
.spbk__head span {
	font-size: 13px;
	color: var(--muted);
}
.spbk__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
}
.spbk__list li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 8px 0;
	border-bottom: 1px solid var(--line);
	font-size: 14px;
	color: var(--ink);
}
.spbk__list li b {
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}
.spbk__list li small {
	color: var(--warnfg);
	font-weight: 600;
}
.spbk__list li.is-open {
	color: var(--warnfg);
}
.spbk__sum {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font-size: 14px;
	color: var(--ink);
}
.spbk__sum b {
	font-variant-numeric: tabular-nums;
}
.spbk__sum--sub,
.spbk__sum--open {
	font-size: 13px;
	color: var(--muted);
}
.spbk__sum--open {
	color: var(--warnfg);
}
.spbk__foot {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	padding-top: 4px;
}

/* === Services: per season / per match day === */
.lmode .ico {
	opacity: 0.8;
}
.inputunit {
	display: flex;
	align-items: center;
	gap: 10px;
}
.inputunit input {
	max-width: 110px;
}
.inputunit span {
	font-size: 14px;
	font-weight: 600;
	color: var(--muted);
	white-space: nowrap;
}
.rd-row__money small {
	display: block;
	font-size: 11px;
	font-weight: 600;
	color: var(--muted);
	text-align: right;
}
[data-lmode-show][hidden] {
	display: none !important;
}

/* === Home match days (sponsor area and editorial area) === */
.gdfilter {
	margin-bottom: 6px;
}
.gdday {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 16px;
	border-radius: 20px;
	background: var(--soft);
	border: 1px solid var(--line);
}
.gdday[hidden] {
	display: none;
}
.gdday__head {
	display: flex;
	align-items: flex-start;
	gap: 16px;
}
.gdday__date {
	width: 58px;
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	line-height: 1.15;
	padding: 8px 0;
	border-radius: 12px;
	background: var(--card);
	border: 1px solid var(--line);
}
.gdday__date small {
	font-size: 11px;
	font-weight: 700;
	color: var(--muted2);
}
.gdday__date b {
	font-size: 18px;
	font-weight: 800;
	color: var(--ink);
}
.gdday__games {
	margin: 0;
	padding: 4px 0 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1;
	min-width: 0;
}
.gdday__games li {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	font-size: 14.5px;
	color: var(--ink);
}
.gdday__games li b {
	font-variant-numeric: tabular-nums;
	min-width: 40px;
}
.gdday__offers {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.offer--gd .offer__box {
	padding: 12px 16px;
	border-radius: 14px;
}
.offer--gd .offer__price {
	font-size: 16px;
}
.brow--gd {
	grid-template-columns: minmax(0, 1.3fr) minmax(0, 1.6fr) 130px 90px;
}
.gdconf {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 16px 18px;
	border-radius: 16px;
	background: var(--badbg);
	color: var(--badfg);
}
.gdconf__head {
	display: flex;
	align-items: center;
	gap: 10px;
}
.gdconf ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.gdconf li {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-size: 14px;
	color: var(--ink);
}
.gdconf li small {
	color: var(--muted);
}
.gdconf textarea {
	width: 100%;
	min-height: 200px;
	border-radius: 12px;
	border: 1.5px solid var(--line2);
	padding: 12px 14px;
	background: var(--card);
	color: var(--ink);
	font: inherit;
	font-size: 14px;
	line-height: 1.55;
}
.gdconf .field-help {
	color: var(--text2);
}

@media (max-width: 900px) {
	.brow--gd {
		grid-template-columns: 1fr 1fr;
	}
	.brow--gd .brow__name,
	.brow--gd .brow__date {
		grid-column: 1/-1;
	}
}

/* === Sponsor: summary of booked services === */
.btable__row--link {
	color: inherit;
	transition: background-color 0.2s ease;
}
@media (hover: hover) {
	.btable__row--link:hover {
		color: inherit;
		background: var(--hl-tint);
	}
}
.btable--total {
	background: var(--soft);
}
.btable--total .btable__sum:first-child {
	padding-top: 14px;
}
.btable__sum--total span {
	font-weight: 800;
	color: var(--ink);
}
.btable--open .btable__head b {
	color: var(--warnfg);
}
.btable--open .btable__row span:first-child {
	color: var(--warnfg);
}
.spbk.is-none > summary {
	opacity: 1;
	color: var(--muted2);
}
.spbk.is-none[open] > summary {
	color: var(--inv-fg);
}

/* === 1.7.3: booking page per sponsor, explained entry points === */
.spb__h {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.spb__h .field-help {
	margin: 0;
}
.spnew {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 20px 22px 22px;
	background: var(--soft);
	border-top: 1px solid var(--line);
}
.rd-panel > .spnew:first-child {
	border-top: 0;
	border-radius: inherit;
}
.spnew__intro {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.spnew__intro b {
	color: var(--ink);
	font-size: 15px;
}
.spnew__intro span {
	font-size: 13px;
	color: var(--muted);
}
.spnew__tiles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: 14px;
}
.spnew__tile {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	padding: 18px 20px;
	border: 1px solid var(--line);
	border-radius: 16px;
	background: var(--card);
	color: var(--text);
	text-decoration: none;
	transition:
		border-color 0.2s,
		background-color 0.2s;
}
@media (hover: hover) {
	.spnew__tile:hover {
		color: var(--text);
		border-color: var(--greenline);
		background: var(--greenwash);
	}
}
.spnew__ico {
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: var(--dark);
	color: var(--accent);
	display: flex;
	align-items: center;
	justify-content: center;
}
.spnew__t {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}
.spnew__t b {
	color: var(--ink);
	font-size: 15px;
}
.spnew__t small {
	font-size: 13px;
	line-height: 1.5;
	color: var(--text2);
}
.spbk__go {
	flex: 1 1 auto;
	justify-content: center;
}
/* === 1.7.4: overview "Nach Leistung" – "Gebucht von" as count + list === */
.ovwho > summary {
	list-style: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--soft);
	border: 1px solid var(--line);
	color: var(--ink);
	font-size: 14px;
	font-weight: 600;
	white-space: nowrap;
}
.ovwho > summary::-webkit-details-marker {
	display: none;
}
@media (hover: hover) {
	.ovwho > summary:hover {
		border-color: var(--greenline);
		background: var(--greenwash);
	}
}
.ovwho > summary svg {
	transition: transform 0.2s;
}
.ovwho[open] > summary svg {
	transform: rotate(180deg);
}
.ovwho .spbk__panel {
	max-height: min(420px, 70vh);
	overflow: auto;
}
.ovwho__list li {
	align-items: baseline;
}
.ovwho__list li a {
	color: var(--ink);
	font-weight: 600;
	min-width: 0;
	overflow-wrap: anywhere;
}
@media (hover: hover) {
	.ovwho__list li a:hover {
		color: var(--link);
	}
}
.ovwho__list li > span {
	display: inline-flex;
	gap: 8px;
	align-items: baseline;
	white-space: nowrap;
}
.ovwho__list li.is-open a {
	color: var(--warnfg);
}
.ovwho__list li:last-child {
	border-bottom: 0;
}
.ovwho[open] > summary {
	background: var(--inv-bg);
	color: var(--inv-fg);
	border-color: var(--inv-bg);
}
@media (hover: hover) {
	.ovwho[open] > summary:hover {
		background: var(--inv-bg);
		color: var(--inv-fg);
		border-color: var(--inv-bg);
	}
}
#ov-tabelle {
	scroll-margin-top: 190px;
}
/* === 1.8.0: remove a service from a confirmed booking === */
.rmlist {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--line);
	border-radius: 14px;
	overflow: hidden;
}
.rmitem {
	border-bottom: 1px solid var(--line);
}
.rmitem:last-child {
	border-bottom: 0;
}
.rmitem > summary {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 14px;
	cursor: pointer;
}
.rmitem > summary::-webkit-details-marker {
	display: none;
}
.rmitem > summary > span:first-child {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.rmitem > summary b {
	color: var(--ink);
	font-size: 14.5px;
}
.rmitem > summary small {
	color: var(--muted);
	font-size: 12.5px;
}
.rmitem[open] {
	background: var(--soft);
}
.rmitem[open] > summary .btn {
	visibility: hidden;
}
.rmitem__body {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 0 14px 14px;
}
.rmitem__body .btn {
	align-self: flex-start;
}
.rmlog {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.rmlog li {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 10px 14px;
	border-radius: 12px;
	background: var(--soft);
	border: 1px solid var(--line);
	font-size: 14px;
}
.rmlog li b {
	color: var(--ink);
	text-decoration: line-through;
	text-decoration-color: var(--muted2);
}
.rmlog li small {
	color: var(--muted);
	font-size: 12.5px;
}

/* === "Kontakt & E-Mails" screen (1.8.2) === */
.rd-hints {
	margin: 0;
	padding: 0 0 0 20px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	color: var(--text);
	font-size: 14px;
	line-height: 1.55;
}
.rd-hints a,
.rd-mailhint a {
	color: var(--ink);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.rd-mailhint .rd-panel__title {
	align-items: center;
}
.rd-mailhint .field-help b {
	color: var(--ink);
	font-weight: 600;
	overflow-wrap: anywhere;
}

/* === Match day picker: short list, matches below the field (1.8.4) === */
.gd-games {
	display: block;
	margin-top: 6px;
	font-size: 12px;
	line-height: 1.5;
	color: var(--text);
	font-weight: 400;
	white-space: pre-line;
}
.gd-games[hidden] {
	display: none;
}
.gd-pick {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
select[data-gd-select] {
	max-width: 100%;
	text-overflow: ellipsis;
}

/* === Calendar (sponsor area and editorial area) and date picker for news scheduling (1.9.0) === */
.bcal {
	padding: 0;
	overflow: hidden;
}
.bcal__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 18px;
	padding: 18px 22px;
	border-bottom: 1px solid var(--line);
}
.bcal__nav {
	display: flex;
	align-items: center;
	gap: 8px;
}
.bcal__month {
	min-width: 150px;
	text-align: center;
	font-size: 16px;
	color: var(--ink);
}
.bcal__filter {
	margin-left: auto;
}
.bcal__filter select {
	min-width: 220px;
}
.bcal__form {
	display: flex;
	gap: 8px;
	align-items: center;
}
.bcal__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
	padding: 12px 22px 0;
	font-size: 12.5px;
	color: var(--text);
}
.bcal__legend span {
	display: inline-flex;
	align-items: center;
	gap: 7px;
}
.bcal__legend i {
	width: 10px;
	height: 10px;
	border-radius: 3px;
	display: inline-block;
}
.is-gd {
	--ev: #2f7dd1;
}
.is-news {
	--ev: #8c6bd8;
}
.is-banner {
	--ev: var(--accent);
}
.is-taken {
	--ev: #9a9aa2;
}
.bcal__legend i {
	background: var(--ev);
}
.bcal__grid {
	padding: 14px 22px 6px;
}
.bcal__row--wd {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 6px;
	margin-bottom: 6px;
}
.bcal__row--wd span {
	font-size: 12px;
	font-weight: 700;
	color: var(--muted);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 0 6px;
}
.bcal__days {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 6px;
}
.bcal__day {
	min-height: 104px;
	padding: 6px;
	border: 1px solid var(--line);
	border-radius: 10px;
	background: var(--surface, transparent);
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}
.bcal__day.is-out {
	border: 0;
	background: none;
}
.bcal__day.is-past {
	opacity: 0.62;
}
.bcal__day.is-today {
	border-color: var(--accent);
	box-shadow: inset 0 0 0 1px var(--accent);
}
.bcal__n {
	font-size: 12.5px;
	font-weight: 700;
	color: var(--ink);
	padding: 0 2px;
}
.bcal__ev {
	display: block;
	padding: 3px 7px;
	border-radius: 6px;
	font-size: 11.5px;
	line-height: 1.35;
	font-weight: 600;
	color: var(--ink);
	background: color-mix(in srgb, var(--ev) 16%, transparent);
	border-left: 3px solid var(--ev);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	text-decoration: none;
}
.bcal__ev.is-open {
	background: repeating-linear-gradient(
		135deg,
		color-mix(in srgb, var(--ev) 14%, transparent) 0 6px,
		transparent 6px 10px
	);
}
.bcal__ev.is-taken {
	color: var(--text);
	font-weight: 500;
}
@media (hover: hover) {
	a.bcal__ev:hover {
		background: color-mix(in srgb, var(--ev) 28%, transparent);
	}
}
.bcal__more {
	font-size: 11px;
	color: var(--muted);
	padding: 0 4px;
}
.bcal__hint {
	display: none;
	padding: 0 22px 14px;
	margin: 0;
}
.bcal__listhead {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 22px 6px;
}
.bcal__lmonth {
	padding: 14px 22px 6px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted);
}
.bcal__item {
	border-left: 3px solid var(--ev);
}
.bcal__date {
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 52px;
	line-height: 1.1;
}
.bcal__date small {
	font-size: 11px;
	font-weight: 700;
	color: var(--muted);
}
.bcal__date b {
	font-size: 17px;
	color: var(--ink);
}
.bcal__kind {
	background: color-mix(in srgb, var(--ev) 16%, transparent);
	color: var(--ink);
}
@media (max-width: 760px) {
	.bcal__head {
		padding: 14px 16px;
	}
	.bcal__filter {
		margin-left: 0;
		width: 100%;
	}
	.bcal__filter select,
	.bcal__form {
		width: 100%;
	}
	.bcal__grid {
		padding: 10px 10px 4px;
	}
	.bcal__days,
	.bcal__row--wd {
		gap: 3px;
	}
	.bcal__day {
		min-height: 52px;
		padding: 4px;
		flex-direction: row;
		flex-wrap: wrap;
		align-content: flex-start;
		gap: 3px;
	}
	.bcal__n {
		flex: 0 0 100%;
		width: 100%;
		font-size: 12px;
		line-height: 1.2;
	}
	.bcal__day .bcal__ev {
		flex: 0 0 8px;
		margin-top: 2px;
	}
	.bcal__ev {
		width: 8px;
		height: 8px;
		padding: 0;
		border: 0;
		border-radius: 50%;
		background: var(--ev);
		font-size: 0;
	}
	.bcal__ev.is-open {
		background: none;
		box-shadow: inset 0 0 0 2px var(--ev);
	}
	.bcal__more {
		display: none;
	}
	.bcal__hint {
		display: block;
	}
	.bcal__legend {
		padding: 10px 16px 0;
	}
	.bcal__listhead,
	.bcal__lmonth {
		padding-left: 16px;
		padding-right: 16px;
	}
}

.dpick {
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-width: 340px;
}
.dpick__out {
	font-weight: 700;
	color: var(--ink);
	font-size: 15px;
}
.dpick__out.is-bad {
	color: var(--badfg);
}
.dpick__cal {
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 10px;
}
.dpick__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 6px;
}
.dpick__head b {
	font-size: 14px;
	color: var(--ink);
}
.dpick__head .ibtn {
	width: 34px;
	height: 34px;
	font-size: 18px;
	line-height: 1;
}
.dpick__grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 3px;
}
.dpick__wd {
	font-size: 11px;
	font-weight: 700;
	text-align: center;
	color: var(--muted);
	padding: 2px 0;
}
.dpick__d {
	height: 38px;
	border: 0;
	border-radius: 8px;
	background: none;
	color: var(--ink);
	font: inherit;
	font-size: 13.5px;
	cursor: pointer;
	position: relative;
}
@media (hover: hover) {
	.dpick__d:not(:disabled):hover {
		background: var(--hl-tint);
	}
}
.dpick__d:disabled {
	color: var(--muted);
	opacity: 0.45;
	cursor: default;
}
.dpick__d.is-taken {
	background: repeating-linear-gradient(135deg, rgba(154, 154, 162, 0.25) 0 4px, transparent 4px 8px);
}
.dpick__d.is-taken::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 4px;
	width: 4px;
	height: 4px;
	margin-left: -2px;
	border-radius: 50%;
	background: #9a9aa2;
}
.dpick__d.is-sel {
	background: var(--accent);
	color: var(--on-accent);
	font-weight: 800;
	opacity: 1;
}
.dpick__legend {
	display: flex;
	align-items: center;
	gap: 7px;
	margin: 8px 0 0;
	font-size: 12px;
	color: var(--text);
}
.dpick__legend i {
	width: 14px;
	height: 14px;
	border-radius: 4px;
	background: repeating-linear-gradient(135deg, rgba(154, 154, 162, 0.45) 0 4px, transparent 4px 8px);
	border: 1px solid var(--line);
}
.spplan {
	gap: 14px;
}
.spplan__mode {
	display: grid;
	grid-template-columns: 1fr;
}
.spplan__mode .seg__opt {
	width: 100%;
}
.spplan__date[hidden] {
	display: none;
}
.spplan__banner small {
	color: var(--text);
	line-height: 1.5;
}
.rplan {
	align-items: start;
}
.replan > summary {
	list-style: none;
	display: inline-flex;
	cursor: pointer;
}
.replan > summary::-webkit-details-marker {
	display: none;
}
.replan[open] > summary {
	margin-bottom: 14px;
}

/* === Activity planner: approval === */
.notice--info {
	background: var(--alt-solid);
	color: var(--text);
}
.actreview {
	display: flex;
	flex-direction: column;
	gap: 14px;
	border: 2px solid var(--accent);
}
.actreview__act {
	align-items: flex-start;
	gap: 10px;
}
.actreview__back {
	flex: 1;
	min-width: min(320px, 100%);
}
.actreview__back > summary {
	list-style: none;
	display: inline-flex;
	cursor: pointer;
}
.actreview__back > summary::-webkit-details-marker {
	display: none;
}
.rd-editor__side .btn + .field-help {
	margin-top: -4px;
}

/* ---------- Startseite: link preview ("Vorschau beim Teilen", since 1.12.5) ---------- */
.rd-panel__title p {
	color: var(--muted);
	font-size: 14px;
}
.sharebox__fields {
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.sharecard {
	display: flex;
	flex-direction: column;
	max-width: 420px;
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: 14px;
	background: var(--card);
}
.sharecard__img {
	display: block;
	width: 100%;
	aspect-ratio: 1200 / 630;
	object-fit: cover;
	background: var(--soft);
}
.sharecard__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 12px 14px 14px;
	font-size: 14px;
	line-height: 1.45;
	overflow-wrap: anywhere;
}
.sharecard__body b {
	font-size: 15px;
	color: var(--ink);
}
.sharecard__body span {
	color: var(--muted);
}
.sharecard__body small {
	color: var(--muted);
	font-size: 12px;
}


/* ---------- Image templates of the cover image (since 1.13.7, inc/image-templates.php) ----------
   Block under the crop tool: name of the template in use with "Aus Vorlagen löschen", or
   "Als Vorlage speichern"; below it the list of templates with preview images (built by
   editorial.js from the select "vorlage"). */
.imgtpl {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-top: 18px;
	padding-top: 18px;
	border-top: 1px solid var(--line);
}
.imgtpl__cur[hidden],
.imgtpl__save[hidden],
.imgtpl__new[hidden],
.imgtpl__del[hidden],
.imgtpl__panel[hidden],
.imgtpl__clear[hidden],
.imgtpl__opt[hidden] {
	display: none;
}
.imgtpl__cur {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	padding: 10px 14px;
	border-radius: 12px;
	border: 1px solid var(--line);
	background: var(--soft);
	font-size: 14px;
	color: var(--text);
}
.imgtpl__ico {
	display: inline-flex;
	color: var(--accent);
}
.imgtpl__txt {
	flex: 1 1 160px;
	min-width: 0;
	overflow-wrap: anywhere;
}
.imgtpl__txt b {
	color: var(--ink);
}
.imgtpl__txt small {
	color: var(--muted);
	font-size: 13px;
}
.imgtpl__del {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 32px;
	color: var(--badfg);
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}
.imgtpl__del:hover span {
	text-decoration: underline;
}
.imgtpl__del.is-busy {
	opacity: 0.5;
	pointer-events: none;
}
.imgtpl__new {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 12px 0 0 10px;
	padding-left: 16px;
	border-left: 3px solid var(--line);
}
.imgtpl__scope {
	flex-wrap: wrap;
	align-self: flex-start;
	max-width: 100%;
}
.imgtpl__dd {
	position: relative;
}
.imgtpl__btn {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	min-height: 50px;
	padding: 6px 14px 6px 6px;
	border: 1.5px solid var(--line2);
	border-radius: 12px;
	background: var(--card);
	color: var(--ink);
	font: inherit;
	font-size: 15px;
	text-align: left;
	cursor: pointer;
	transition: border-color 0.25s ease;
}
.imgtpl__btn.is-empty {
	padding-left: 14px;
}
.imgtpl__btn.is-empty .imgtpl__thumb {
	display: none;
}
.imgtpl__btn.is-empty .imgtpl__lbl {
	color: var(--muted);
}
@media (hover: hover) {
	.imgtpl__btn:not(:disabled):hover {
		border-color: var(--greenline);
	}
}
.imgtpl__btn:focus-visible {
	outline: none;
	border-color: var(--accent);
	box-shadow: 0 0 0 4px var(--hl-ring);
}
.imgtpl__btn:disabled {
	cursor: default;
	opacity: 0.65;
}
.imgtpl__lbl {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.imgtpl__chev {
	flex: none;
	color: var(--muted);
	transition: transform 0.2s ease;
}
.imgtpl__dd.is-open .imgtpl__chev {
	transform: rotate(180deg);
}
.imgtpl__thumb {
	flex: none;
	width: 64px;
	aspect-ratio: 16 / 9;
	border-radius: 8px;
	overflow: hidden;
	background: var(--alt-solid);
}
.imgtpl__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.imgtpl__panel {
	position: absolute;
	z-index: 40;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 6px;
	border: 1px solid var(--line);
	border-radius: 14px;
	background: var(--card);
	box-shadow: var(--float-shadow);
}
.imgtpl__filter {
	width: 100%;
	min-height: 42px;
	margin-bottom: 2px;
	padding: 0 12px;
	border: 1.5px solid var(--line2);
	border-radius: 10px;
	background: var(--card);
	color: var(--ink);
	font: inherit;
	font-size: 15px;
}
.imgtpl__filter:focus {
	outline: none;
	border-color: var(--accent);
}
.imgtpl__list {
	display: flex;
	flex-direction: column;
	gap: 2px;
	max-height: min(328px, 55vh);
	overflow-y: auto;
	overscroll-behavior: contain;
}
.imgtpl__opt {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	min-height: 48px;
	padding: 6px;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: var(--text);
	font: inherit;
	font-size: 15px;
	text-align: left;
	cursor: pointer;
}
.imgtpl__opt:hover,
.imgtpl__opt:focus-visible {
	outline: none;
	background: var(--soft);
}
.imgtpl__opt[aria-selected="true"] {
	background: var(--soft);
	color: var(--ink);
	font-weight: 700;
	box-shadow: inset 0 0 0 2px var(--accent);
}
.imgtpl__name {
	flex: 1 1 auto;
	min-width: 0;
	overflow-wrap: anywhere;
}
.imgtpl__opt small {
	flex: none;
	color: var(--muted);
	font-size: 12px;
	font-weight: 600;
}
.imgtpl__clear {
	align-self: flex-start;
	min-height: 36px;
	padding: 0 10px;
	border: 0;
	background: none;
	color: var(--link);
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}
.imgtpl__msg {
	margin: 0;
	font-size: 13px;
	color: var(--muted);
}
.imgtpl__msg:empty {
	display: none;
}
.imgtpl__msg.is-bad {
	color: var(--badfg);
	font-weight: 600;
}
.imgtpl__save .check b {
	color: var(--ink);
}

/* ---------- Benutzer & Rollen (since 1.13.8) ---------- */
.usrfilter {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	padding: 14px 22px;
	border-bottom: 1px solid var(--line);
	background: var(--soft);
}
.usrfilter__q {
	position: relative;
	flex: 1 1 260px;
	display: flex;
	align-items: center;
}
.usrfilter__q .ico {
	position: absolute;
	left: 14px;
	color: var(--muted);
	pointer-events: none;
}
.rd-main .usrfilter__q input {
	width: 100%;
	min-height: 46px;
	padding: 0 14px 0 42px;
	border-radius: 12px;
	border: 1.5px solid var(--line2);
	background: var(--card);
	color: var(--ink);
	font-size: 15px;
}
.rd-main .usrfilter select {
	flex: 0 1 230px;
	width: auto;
	min-height: 46px;
	font-size: 14px;
	font-weight: 600;
}
.usrgroup__h {
	margin: 0;
	padding: 16px 22px 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted);
}
.usrgroup__h small {
	margin-left: 4px;
	font-size: 12px;
	font-weight: 600;
	color: var(--muted);
}
.usrgroup + .usrgroup {
	border-top: 1px solid var(--line);
}
.usr .rd-row__t small {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.usr__me {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 7px;
	border-radius: 999px;
	background: var(--accent);
	color: var(--on-accent);
	font-size: 11px;
	font-weight: 700;
	vertical-align: 2px;
}
.usr__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 6px;
}
.usr__tag {
	padding: 2px 8px;
	border-radius: 6px;
	background: var(--alt-solid);
	color: var(--text);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.5;
}
.usr .chip .ico,
.usrside__state .ico {
	margin-left: -2px;
}
.usr__ro {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--muted);
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
}

/* Account form: role choice, switches, side column */
.rd-main .usredit input:disabled {
	background: var(--soft);
	color: var(--muted);
	cursor: not-allowed;
}
.usrroles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
	gap: 10px;
}
.usrrole {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	padding: 14px 16px;
	border: 1.5px solid var(--line2);
	border-radius: 14px;
	background: var(--card);
	cursor: pointer;
	transition:
		border-color 0.25s ease,
		box-shadow 0.25s ease;
}
@media (hover: hover) {
	.usrrole:hover {
		border-color: var(--greenline);
	}
}
.usrrole:has(input:checked) {
	border-color: var(--accent);
	box-shadow: 0 0 0 3px var(--hl-ring);
}
.usrrole input {
	width: 18px;
	height: 18px;
	margin-top: 2px;
	flex-shrink: 0;
	accent-color: var(--accent);
}
.usrrole span,
.usw__t {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}
.usrrole b,
.usw__t b {
	color: var(--ink);
	font-size: 15px;
}
.usrrole small,
.usw__t small {
	color: var(--muted);
	font-size: 13px;
	line-height: 1.45;
}
.usrswitches {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 16px 18px;
	border-radius: 14px;
	background: var(--soft);
	border: 1px solid var(--line);
}
.usrswitches[hidden] {
	display: none;
}
.usrswitches .field-label {
	margin: 0;
}
.usw {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	cursor: pointer;
}
.usw input {
	appearance: none;
	position: relative;
	flex-shrink: 0;
	width: 44px;
	height: 26px;
	margin: 0;
	border-radius: 999px;
	background: var(--line2);
	cursor: pointer;
	transition: background-color 0.2s ease;
}
.usw input::after {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #ffffff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
	transition: transform 0.2s ease;
}
.usw input:checked {
	background: var(--accent);
}
.usw input:checked::after {
	transform: translateX(18px);
}
.usw input:focus-visible {
	outline: none;
	box-shadow: 0 0 0 4px var(--hl-ring);
}
.usrside__state {
	align-self: flex-start;
}
.usrside__act {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.usrside__act .inline-form,
.usrside__act .inline-form .btn,
.usrside__act > .btn {
	width: 100%;
}
.usrside__act .btn {
	justify-content: flex-start;
}
.usrside__act .field-help {
	margin: 0 0 6px;
}
.usrdel summary {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 18px 22px;
	color: var(--badfg);
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}
.usrdel summary::-webkit-details-marker {
	display: none;
}
.usrdel summary span {
	flex-grow: 1;
}
.usrdel__chev {
	transition: transform 0.25s ease;
}
.usrdel[open] .usrdel__chev {
	transform: rotate(180deg);
}
.usrdel__form {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 0 22px 22px;
}
.usrdel__form .field-help {
	margin: 0;
}

/* Roles: who may do what */
.rolem__table th small {
	display: block;
	margin-top: 2px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
}
.rolem__table thead th:not(:first-child),
.rolem__table td {
	text-align: center;
	white-space: nowrap;
}
.rolem__table tbody th {
	min-width: 220px;
	font-weight: 600;
}
.rolem__table tbody th,
.rolem__table thead th:first-child {
	position: sticky;
	left: 0;
	z-index: 1;
	background: var(--card);
}
.rolem__table thead th:first-child {
	background: var(--soft);
}
.rolem__y {
	display: inline-flex;
	color: var(--okfg);
}
.rolem__n {
	color: var(--muted);
}
.rolem__t {
	font-size: 13px;
	font-weight: 600;
	color: var(--ink);
}
.rolem__foot {
	margin: 0;
	padding: 16px 22px 20px;
}
.rolesw {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.rolesw li {
	display: flex;
	flex-direction: column;
	gap: 3px;
}
.rolesw b {
	color: var(--ink);
}
.rolesw small {
	color: var(--muted);
	font-size: 12px;
	font-weight: 600;
}
@media (max-width: 640px) {
	.usrfilter {
		padding: 12px 16px;
	}
	.rd-main .usrfilter select {
		flex: 1 1 100%;
	}
	.usrgroup__h {
		padding: 14px 16px 6px;
	}
	/* Phones: one line per account – edit button and lock state as icons only. */
	.usr {
		flex-wrap: nowrap;
		gap: 12px;
	}
	.usr .rd-row__t {
		flex: 1 1 auto;
		min-width: 0;
	}
	/* mobile.css stretches the action column of every row to full width on touch phones; here
	   it only holds one icon button, otherwise name and e-mail shrink to nothing (Code-Review
	   N-JS-01, since 1.13.9). */
	.usr .rd-row__act {
		display: flex;
		flex: 0 0 auto;
		width: auto;
	}
	.usr__btxt,
	.usr__lock span,
	.usr__ro span {
		display: none;
	}
	.usr .rd-row__act .btn {
		width: 44px;
		min-height: 44px;
		padding: 0;
		justify-content: center;
	}
	.usr__lock {
		padding: 6px;
	}
	.rolem__table tbody th {
		min-width: 160px;
	}
}
