.pap-pillar,
.pap-pillar::before {
	border-radius: 999px !important;
}

/* Wiederverwendbares Modul zum Suchen und Filtern. */
.pap-filtermodul {
	display: grid;
	gap: 12px;
	margin-bottom: 20px;
	border-radius: var(--pap-radius-12);
}

.pap-filtermodul__titel {
	margin: 0;
	color: var(--pap-dunkel-text);
	font-size: var(--pap-schrift-kartentitel);
	font-weight: 700;
}

.pap-filtermodul__werkzeuge {
	display: grid;
	grid-template-columns: minmax(14rem, 1fr) max-content;
	gap: 20px;
	align-items: end;
}

.pap-filtermodul__suche {
	width: 100%;
	height: 2.5rem;
	padding: 0 10px;
	border: 1px solid var(--pap-dunkel-border);
	border-radius: var(--pap-radius-12);
	background: var(--pap-dunkel-eingabe);
	color: var(--pap-dunkel-text);
}

.pap-filtermodul__suche::placeholder {
	color: var(--pap-dunkel-text-zart);
}

.pap-filtermodul__suche:focus,
.pap-filtermodul__suche:focus-visible {
	background: var(--pap-dunkel-eingabe);
}

.pap-filtermodul__auswahl {
	position: relative;
	display: block;
}

.pap-filtermodul__auswahl::after {
	position: absolute;
	top: 50%;
	right: 0.9rem;
	width: 0.45rem;
	height: 0.45rem;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	content: "";
	pointer-events: none;
	transform: translateY(-70%) rotate(45deg);
}

.pap-filtermodul__auswahl select {
	appearance: none;
	-webkit-appearance: none;
	width: auto;
	min-width: 12rem;
	height: 2.5rem;
	padding: 0 2.8rem 0 10px;
	border: 1px solid var(--pap-dunkel-border);
	border-radius: var(--pap-radius-12);
	background: var(--pap-dunkel-eingabe);
	color: var(--pap-dunkel-text);
	line-height: normal;
}

.pap-filtermodul__auswahl select[data-filter-aktiv="true"] {
	border-color: var(--pap-petrol);
	background: color-mix(in srgb, var(--pap-petrol) 20%, var(--pap-dunkel-eingabe));
}

.pap-filtermodul__auswahl select:focus {
	outline: none;
}

.pap-filtermodul__auswahl select:focus-visible {
	border-color: var(--pap-dunkel-text-zart) !important;
	outline: none !important;
	box-shadow: none !important;
	background: var(--pap-dunkel-eingabe);
}

.pap-filtermodul__pills {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.pap-filtermodul__pills .pap-button {
	gap: 0.4rem;
	min-height: 2.35rem;
	padding: 5px 10px;
	font-size: 0.85rem;
}

.pap-filtermodul__pills .pap-button[aria-pressed="true"]::before {
	font-weight: 700;
	content: "✓";
}

.pap-filtermodul__pills .pap-button[aria-pressed="true"],
.pap-filtermodul__pills .pap-button[aria-pressed="true"]:hover,
.pap-filtermodul__pills .pap-button[aria-pressed="true"]:focus,
.pap-filtermodul__pills .pap-button[aria-pressed="true"]:focus-visible {
	border-color: var(--pap-petrol);
	background: var(--pap-button-petrol);
	color: var(--pap-dunkel-text);
	font-weight: 600;
}

@media (max-width: 1020px) {
	.pap-filtermodul__werkzeuge {
		grid-template-columns: repeat(2, minmax(14rem, 1fr));
	}

	.pap-filtermodul__suche {
		grid-column: 1 / -1;
	}

	.pap-filtermodul__auswahl,
	.pap-filtermodul__auswahl select,
	.pap-filtermodul__pills {
		width: 100%;
	}
}

@media (max-width: 760px) {
	.pap-filtermodul__werkzeuge {
		width: 100%;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	.pap-filtermodul__suche {
		grid-column: 1 / -1;
	}

	.pap-filtermodul__pills {
		flex-wrap: nowrap;
		min-width: 0;
		max-width: none;
		width: calc(100% + 16px);
		margin-right: -16px;
		overflow-x: auto;
		overflow-y: hidden;
		overscroll-behavior-inline: contain;
		scrollbar-width: thin;
		padding-bottom: 10px;
		gap: 1rem;
	}

	.pap-filtermodul__pills .pap-button {
		flex: 0 0 auto;
		white-space: nowrap;
	}
}

.pap-statusbadge {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	gap: var(--pap-scale-100);
	max-width: 100%;
	padding: var(--pap-scale-100) var(--pap-scale-200);
	border-radius: var(--pap-radius-4);
	font-size: var(--pap-schrift-50);
	font-weight: 400;
	line-height: 1.25;
	white-space: nowrap;
}

.pap-statusbadge::before {
	display: inline-block;
	flex: 0 0 auto;
	font-weight: 700;
	line-height: 1;
	content: "•";
}

.pap-statusbadge--erfolg {
	background: var(--pap-erfolg-hintergrund);
	color: var(--pap-erfolg-hell);
}

.pap-statusbadge--erfolg::before {
	content: "✓";
}

.pap-statusbadge--warnung {
	background: var(--pap-warnung-hintergrund);
	color: var(--pap-warnung-hell);
}

.pap-statusbadge--warnung::before {
	content: "−";
}

.pap-statusbadge--fehler {
	background: var(--pap-fehler-hintergrund);
	color: var(--pap-fehler-hell);
}

.pap-statusbadge--fehler::before {
	content: "×";
}

.pap-statusbadge--neutral {
	background: color-mix(
		in srgb,
		var(--pap-petrol-200) 18%,
		var(--pap-anthrazit-900)
	);
	color: var(--pap-petrol-200);
}

/* Wiederverwendbarer PAP-Dialog. */
.pap-dialog[open] {
	box-sizing: border-box;
	display: grid;
	width: min(42rem, calc(100% - (2 * var(--pap-scale-500))));
	max-height: calc(100% - (2 * var(--pap-scale-500)));
	padding: var(--pap-scale-500);
	border: 1px solid var(--pap-dunkel-border);
	border-radius: var(--pap-radius-12);
	background: var(--pap-dunkel-flaeche);
	color: var(--pap-dunkel-text);
	overflow: auto;
}

.pap-dialog--gross[open] {
	width: min(var(--pap-dialog-breite-gross), calc(100% - (2 * var(--pap-scale-500))));
}

.pap-dialog::backdrop {
	background: color-mix(in srgb, var(--pap-dunkel-hintergrund) 80%, transparent);
}

/* Wiederverwendbares responsives Raster und Medienkacheln. */
.pap-medienraster {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
	gap: var(--pap-scale-400);
}

.pap-medienraster--vier-spalten {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 761px) {
	.pap-medienraster--vier-spalten {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.pap-medienkachel {
	display: grid;
	align-content: start;
	gap: var(--pap-scale-300);
}

.pap-medienkachel[hidden],
.pap-medienkachel__vorschau[hidden] {
	display: none;
}

.pap-medienkachel__vorschau {
	display: grid;
	place-items: center;
	min-height: 10rem;
	overflow: hidden;
	border-radius: var(--pap-radius-8);
	background: var(--pap-dunkel-eingabe);
}

.pap-medienkachel__vorschau img {
	display: block;
	width: 100%;
	height: 100%;
	max-height: 16rem;
	object-fit: contain;
}

.pap-medienkachel__vorschau audio {
	width: calc(100% - var(--pap-scale-400));
}

.pap-medienverwaltung,
.pap-verwaltung {
	display: grid;
	gap: var(--pap-scale-600);
	padding: var(--pap-scale-600);
	background: var(--pap-dunkel-hintergrund);
	color: var(--pap-dunkel-text);
}

.pap-verwaltungsaktion {
	margin-bottom: var(--pap-scale-600);
}

.pap-verwaltung__bereiche {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pap-scale-200);
}

.pap-verwaltung__bereich[hidden] {
	display: none;
}

.pap-medienverwaltung__werkzeuge,
.pap-medienverwaltung__upload {
	display: grid;
	gap: var(--pap-scale-300);
}

.pap-medienverwaltung__upload[hidden] {
	display: none;
}

.pap-medienupload__aktionen {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pap-scale-200);
}

.pap-medienupload__kamera-aktion {
	display: none;
}

.pap-medienupload__kamera-icon {
	width: 20px;
	height: 20px;
	margin-inline-end: var(--pap-scale-100);
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

@media (hover: none) and (pointer: coarse) {
	.pap-medienupload__kamera-aktion {
		display: inline-flex;
	}
}

.pap-medienauswahl {
	gap: var(--pap-scale-400);
}

.pap-medienauswahl__kopf {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--pap-scale-300);
}

.pap-medienauswahl__kopf h2 {
	margin: 0;
}

@media (max-width: 540px) {
	.pap-dialog[open] {
		width: calc(100% - var(--pap-scale-400));
		max-height: calc(100% - var(--pap-scale-400));
		padding: var(--pap-scale-400);
	}

	.pap-medienverwaltung,
	.pap-verwaltung {
		padding: var(--pap-scale-400);
	}

	.pap-medienupload__aktionen {
		display: grid;
	}
}
