/*
Theme Name: Düdofamily
Theme URI: https://duedo.xerocalium.de
Author: DüDo Family Orga
Description: Eigenes Block-Theme der DüDo-Community. Farben und Schriften angelehnt an duedotreffen.com (Design-Werte in 03_DESIGN.md im Projekt-Root).
Version: 0.86.2
Requires at least: 6.5
Requires PHP: 8.1
License: GPL-2.0-or-later
Text Domain: duedofamily
*/

/* Kompakte Kopfzeile: enge Abstände auf allen Seiten */
.wp-block-site-title,
.wp-block-site-tagline {
	margin: 0;
}

header .wp-block-navigation {
	margin-top: 0.25rem;
}

/* Hero (Cover-Block): helle Schrift unabhängig von Preset-Klassen erzwingen */
.wp-block-cover .wp-block-heading,
.wp-block-cover p {
	color: #faf6f0 !important;
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.45);
}

.wp-block-cover .wp-block-button__link {
	text-shadow: none;
}

/* Mitgliederbereich: Kachel-Übersicht (Shortcode duedofamily_dashboard) */
.duedo-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 1rem;
	margin-top: 1rem;
}

/* Gruppierung des Mitgliederbereichs in auf-/zuklappbare Abschnitte */
.duedo-dash-group { margin: 1.4rem 0; }
.duedo-section-title {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--wp--preset--font-family--heading, "Kaushan Script", cursive);
	font-weight: 400;
	font-size: 1.9rem;
	line-height: 1.2;
	color: var(--wp--preset--color--heading, #4a2f2c);
	margin: 0;
	padding-bottom: 0.3rem;
	border-bottom: 2px solid var(--wp--preset--color--accent-light, #b78480);
	cursor: pointer;
	list-style: none;
}
.duedo-section-title::-webkit-details-marker { display: none; }
.duedo-section-title::before {
	content: "▸";
	flex: 0 0 auto;
	font-family: sans-serif;
	font-size: 1rem;
	color: var(--wp--preset--color--accent, #a5655f);
	transition: transform 150ms ease;
}
details.duedo-dash-group[open] > .duedo-section-title::before { transform: rotate(90deg); }
.duedo-section-title .duedo-faq-admin { vertical-align: middle; }
.duedo-section-dot { width: 0.7rem; height: 0.7rem; flex: 0 0 auto; box-shadow: 0 0 0 3px rgba(226, 59, 59, 0.18); }
.duedo-dash-body > .duedo-doc-meta { margin: 0.4rem 0; }
.duedo-dash-admin .duedo-section-title { border-bottom-color: var(--wp--preset--color--accent, #a5655f); }

/* Zurück-zum-Mitgliederbereich-Button (unten auf Unterseiten) */
.duedo-back-to-dash {
	margin: 2.5rem 0 0.5rem;
	padding-top: 1.2rem;
	border-top: 1px solid #e5e2e0;
	text-align: center;
}

.duedo-card {
	display: block;
	position: relative;
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid #e5e2e0;
	border-radius: 8px;
	padding: 1.1rem 1.2rem;
	text-decoration: none;
	transition: border-color 150ms ease, box-shadow 150ms ease;
}

a.duedo-card:hover {
	border-color: var(--wp--preset--color--accent, #a5655f);
	box-shadow: 0 2px 8px rgba(36, 22, 20, 0.08);
}

.duedo-card h3 {
	margin: 0 0 0.4rem;
	font-size: 1.35rem;
	color: var(--wp--preset--color--accent, #a5655f);
}

.duedo-card p {
	margin: 0;
	font-size: 0.95rem;
	color: var(--wp--preset--color--text, #6f6f6f);
}

.duedo-card.is-planned {
	opacity: 0.65;
}

.duedo-badge {
	position: absolute;
	top: 0.7rem;
	right: 0.8rem;
	background: var(--wp--preset--color--accent-light, #b78480);
	color: #fff;
	font-size: 0.7rem;
	padding: 0.15rem 0.5rem;
	border-radius: 999px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

/* Mitgliederliste: Filterleiste + Karten */
.duedo-filterbar {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin-bottom: 0.5rem;
}

.duedo-filterbar input[type="text"],
.duedo-filterbar select,
.duedo-filterbar button {
	flex: 1 1 150px;
	box-sizing: border-box;
	height: 2.1rem;
	padding: 0.25rem 0.6rem;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: 0.88rem;
	line-height: 1.2;
	font-family: inherit;
	background: var(--wp--preset--color--surface, #fff);
}

.duedo-filterbar button {
	flex: 0 0 auto;
	min-width: 2.6rem;
	padding: 0.25rem 0.7rem;
	border: none;
	cursor: pointer;
}

.duedo-member-count {
	font-size: 0.9rem;
	margin-bottom: 0.5rem;
}

.duedo-member {
	text-align: center;
}

.duedo-member-avatar {
	border-radius: 50%;
	object-fit: cover;
	width: 96px;
	height: 96px;
	margin: 0 auto 0.6rem;
	display: block;
}

.duedo-member h3 {
	font-size: 1.25rem;
}

.duedo-wa-button {
	display: inline-block;
	background: #21bd5c;
	color: #fff !important;
	border-radius: 6px;
	padding: 0.45rem 1rem;
	font-size: 0.9rem;
	text-decoration: none;
	margin-top: 0.5rem;
}

.duedo-wa-button:hover {
	background: #1aa04e;
}

.duedo-role {
	text-align: center;
	font-size: 0.95rem;
}

/* Dokumente: Explorer-Ordner, Dokumentzeilen, Schlagwort-Chips */
.duedo-folder {
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid #e5e2e0;
	border-radius: 8px;
	margin-bottom: 0.6rem;
	overflow: hidden;
}

.duedo-folder summary {
	cursor: pointer;
	padding: 0.8rem 1rem;
	font-weight: 600;
	color: var(--wp--preset--color--heading, #444);
	list-style-position: inside;
}

.duedo-folder summary:hover {
	background: var(--wp--preset--color--base, #f4f3f3);
}

.duedo-folder[open] summary {
	border-bottom: 1px solid #eee;
}

.duedo-folder-count {
	font-weight: 400;
	color: var(--wp--preset--color--text, #6f6f6f);
	font-size: 0.9rem;
}

.duedo-doc {
	padding: 0.3rem 0.7rem;
	border-bottom: 1px solid #f0eeec;
}

.duedo-doc:last-child {
	border-bottom: none;
}

/* Zebra-Streifen für Tabellenoptik */
.duedo-folder .duedo-doc:nth-of-type(odd) {
	background: #fbfaf9;
}

/* Kompakte Tabellenzeile */
.duedo-doc-line {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}

.duedo-doc-expand {
	background: none;
	border: none;
	cursor: pointer;
	color: var(--wp--preset--color--accent, #a5655f);
	font-size: 0.95rem;
	padding: 0 0.1rem;
	flex: 0 0 auto;
	line-height: 1;
}

.duedo-doc-name {
	flex: 1;
	min-width: 0;
	display: flex;
	align-items: center;
	gap: 0.3rem;
	white-space: nowrap;
}

/* Nur der Name kürzt mit „…“ – das Download-Symbol bleibt immer sichtbar */
.duedo-doc-name > a:not(.duedo-doc-dl) {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.duedo-doc-col {
	flex: 0 0 auto;
	font-size: 0.8rem;
	color: var(--wp--preset--color--text, #6f6f6f);
	min-width: 64px;
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.duedo-doc-buttons {
	flex: 0 0 auto;
	display: flex;
	gap: 0.3rem;
	align-items: center;
}

.duedo-btn-mini {
	display: inline-block;
	border: none;
	border-radius: 5px;
	padding: 0.25rem 0.7rem;
	font-size: 0.78rem;
	line-height: 1.3;
	font-family: inherit;
	color: #fff;
	cursor: pointer;
	text-decoration: none;
}

a.duedo-btn-mini.duedo-action-edit {
	color: #fff;
}

/* Mini-Buttons in der Dokumentzeile: ältere Button-Regeln übersteuern */
.duedo-doc-buttons a.duedo-btn-mini,
.duedo-doc-buttons button.duedo-btn-mini {
	padding: 0.25rem 0.7rem;
	font-size: 0.78rem;
	line-height: 1.3;
	border-radius: 5px;
}

/* Symbol-Buttons (✏️/🗑) – überall gleich klein, schlägt ältere Button-Regeln */
a.duedo-btn-icon,
button.duedo-btn-icon,
.duedo-inline-form button.duedo-btn-icon,
.duedo-doc-buttons button.duedo-btn-icon,
.duedo-doc-buttons a.duedo-btn-icon {
	padding: 0.3rem 0.5rem;
	font-size: 0.9rem;
	line-height: 1.15;
	border-radius: 5px;
}

/* Status-Badge kompakter, passend zur Symbol-Button-Höhe */
.duedo-mypost-actions .duedo-status {
	padding: 0.32rem 0.8rem;
	font-size: 0.8rem;
}

/* Handy: Freigabe-Knöpfe kleiner, damit nichts überlappt */
@media (max-width: 600px) {
	.duedo-approval-actions button {
		padding: 0.45rem 0.9rem;
		font-size: 0.88rem;
	}

	.duedo-reject-button,
	.duedo-delete-button {
		margin-left: 0.3rem;
	}
}

/* Sichtbare Zusatzzeile: Beschreibung (gekürzt) + Schlagworte */
.duedo-doc-sub {
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
	flex-wrap: wrap;
	padding: 0.1rem 0.5rem 0.15rem 1.9rem;
	font-size: 0.85rem;
}

.duedo-doc-sub-desc {
	color: var(--wp--preset--color--text, #6f6f6f);
	flex: 1 1 auto;
	min-width: 0;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.duedo-doc-sub-chips {
	flex: 0 1 auto;
}

/* Aufklappbare Details */
.duedo-doc-details {
	padding: 0.25rem 0.5rem 0.4rem 1.9rem;
}

.duedo-doc-details .duedo-doc-meta {
	margin: 0 0 0.2rem;
	margin-left: 0;
}

/* Mobil: Größe/Datum aus der Zeile nehmen (stehen in den Details) */
@media (max-width: 600px) {
	.duedo-doc-col {
		display: none;
	}
}

.duedo-doc-title {
	margin: 0;
}

.duedo-doc-meta {
	font-size: 0.8rem;
	color: var(--wp--preset--color--text, #6f6f6f);
	margin-left: 0.4rem;
}

.duedo-doc-desc {
	margin: 0.2rem 0 0;
	font-size: 0.9rem;
}

.duedo-doc-chips {
	margin: 0.3rem 0 0;
}

.duedo-chip {
	display: inline-block;
	background: var(--wp--preset--color--base, #f4f3f3);
	border: 1px solid #e2dedc;
	color: var(--wp--preset--color--accent-dark, #86504b);
	font-size: 0.75rem;
	padding: 0.1rem 0.55rem;
	border-radius: 999px;
	margin-bottom: 0.2rem;
}

.duedo-docform select[multiple] {
	width: 100%;
	padding: 0.4rem;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-family: inherit;
	font-size: 0.95rem;
	background: var(--wp--preset--color--surface, #fff);
}

/* Treffer außerhalb von Ordnern (Suchergebnis) als Karten */
body .duedo-doc:not(.duedo-folder .duedo-doc) {
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid #e5e2e0;
	border-radius: 8px;
	margin-bottom: 0.6rem;
}

/* Mitgliederliste: kompakte Zeilen-Ansicht */
.duedo-member-rows {
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid #e5e2e0;
	border-radius: 8px;
	overflow: hidden;
}

.duedo-member-row {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	padding: 0.55rem 0.9rem;
	border-bottom: 1px solid #f0eeec;
}

.duedo-member-row:last-child {
	border-bottom: none;
}

.duedo-member-row-avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	object-fit: cover;
	flex: 0 0 auto;
}

.duedo-member-row-main {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	line-height: 1.35;
}

.duedo-wa-mini {
	padding: 0.3rem 0.7rem;
	font-size: 0.8rem;
	margin-top: 0;
	flex: 0 0 auto;
}

/* Admin-Werkzeuge in der Dokumentzeile */
.duedo-doc-admin {
	margin: 0.3rem 0 0;
	font-size: 0.8rem;
}

.duedo-doc-delete {
	background: none;
	border: none;
	color: #8a3030;
	font-size: 0.8rem;
	font-family: inherit;
	cursor: pointer;
	padding: 0;
	margin-left: 0.6rem;
	text-decoration: underline;
}

/* Freigabe-Seite für Admins */
.duedo-approval {
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid #e5e2e0;
	border-radius: 8px;
	padding: 1.3rem 1.4rem;
	margin-bottom: 1.5rem;
}

.duedo-approval h2 {
	margin-top: 0;
}

.duedo-approval-meta {
	font-size: 0.9rem;
}

.duedo-approval-content {
	border-left: 3px solid var(--wp--preset--color--accent-light, #b78480);
	padding-left: 1rem;
	margin: 1rem 0;
}

.duedo-approval-actions button,
.duedo-inline-form button,
.duedo-admin-postactions button {
	border: none;
	border-radius: 6px;
	padding: 0.6rem 1.6rem;
	font-size: 1rem;
	font-family: inherit;
	cursor: pointer;
}

/* Freigabe-Buttons: gleichmäßig ausgerichtet, mit Abstand statt zusammengeklebt */
.duedo-approval-btns {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: stretch;
	margin-top: 0.4rem;
}
.duedo-approval-btns button {
	margin: 0;
	flex: 0 1 auto;
}

.duedo-inline-form {
	display: inline-block;
	margin-left: 0.4rem;
}

.duedo-inline-form button {
	padding: 0.45rem 1rem;
	font-size: 0.9rem;
}

.duedo-admin-postactions {
	margin-top: 2.5rem;
	padding-top: 1rem;
	border-top: 1px dashed #ddd;
}

.duedo-reject-button {
	background: #f6f6f6;
	color: #8a3030;
	border: 1px solid #d9a0a0 !important;
	margin-left: 0.5rem;
}

.duedo-reject-button:hover {
	background: #fbeaea;
}

.duedo-delete-button {
	background: #8a3030;
	color: #fff;
	margin-left: 0.5rem;
}

.duedo-delete-button:hover {
	background: #6e2222;
}

.duedo-approval-actions textarea {
	width: 100%;
	padding: 0.6rem 0.8rem;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: 0.95rem;
	font-family: inherit;
	box-sizing: border-box;
}

/* Meine Beiträge: Status-Badges, Admin-Notiz, Bild-Entfernen-Liste */
.duedo-status {
	display: inline-block;
	font-size: 0.75rem;
	padding: 0.15rem 0.6rem;
	border-radius: 999px;
	color: #fff;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	vertical-align: middle;
}

.duedo-status.is-live { background: #21bd5c; }
.duedo-status.is-pending { background: var(--wp--preset--color--accent-light, #b78480); }
.duedo-status.is-rejected { background: #c2762a; }
.duedo-status.is-offen { background: #6b7280; }
.duedo-status.is-arbeit { background: #c2762a; }
.duedo-status.is-erledigt { background: #21bd5c; }
.duedo-status.is-entfaellt { background: #9aa0a6; }

/* Hilfe / FAQ */
.duedo-faq-intro { margin-bottom: 1.2rem; color: var(--wp--preset--color--text, #6f6f6f); }
.duedo-faq-cta {
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid var(--wp--preset--color--accent-light, #b78480);
	border-left: 4px solid var(--wp--preset--color--accent, #a5655f);
	border-radius: 8px;
	padding: 0.9rem 1.1rem;
	margin: 0 0 1.6rem;
}
.duedo-faq-cta p { margin: 0 0 0.6rem; }
.duedo-faq-cta-buttons { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0 !important; }
.duedo-cta-secondary {
	background: transparent !important;
	color: var(--wp--preset--color--accent, #a5655f) !important;
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--accent, #a5655f);
}
.duedo-faq-section { margin: 0 0 1.6rem; }
.duedo-faq-h {
	font-size: 1.25rem;
	margin: 0 0 0.6rem;
	padding-bottom: 0.3rem;
	border-bottom: 2px solid var(--wp--preset--color--accent-light, #b78480);
}
.duedo-faq-h .duedo-badge { font-size: 0.7rem; vertical-align: middle; }
details.duedo-faq {
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid #e5e2e0;
	border-radius: 8px;
	margin-bottom: 0.5rem;
	overflow: hidden;
}
details.duedo-faq > summary {
	display: flex; align-items: center; gap: 0.6rem;
	padding: 0.7rem 0.9rem; cursor: pointer;
	font-weight: 600; list-style: none;
}
details.duedo-faq > summary::-webkit-details-marker { display: none; }
details.duedo-faq > summary::before {
	content: "＋"; flex: 0 0 auto;
	color: var(--wp--preset--color--accent, #a5655f); font-weight: 700;
}
details.duedo-faq[open] > summary::before { content: "－"; }
details.duedo-faq[open] > summary { border-bottom: 1px solid #efeae4; }
details.duedo-faq.is-admin { border-left: 3px solid var(--wp--preset--color--accent, #a5655f); }
details.duedo-faq > summary .duedo-faq-admin { margin-left: auto; flex: 0 0 auto; }
.duedo-faq-admin {
	display: inline-block;
	font-family: var(--wp--preset--font-family--body, "Open Sans", sans-serif);
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 0.1rem 0.45rem;
	border-radius: 999px;
	background: var(--wp--preset--color--accent, #a5655f);
	color: #fff;
	vertical-align: middle;
}
.duedo-faq-a { padding: 0.7rem 0.9rem 0.9rem; }
.duedo-faq-a p { margin: 0 0 0.5rem; }
.duedo-faq-a p:last-child { margin-bottom: 0; }
.duedo-faq-dot {
	display: inline-block; width: 0.6rem; height: 0.6rem;
	border-radius: 50%; background: #e23b3b; vertical-align: middle;
}

/* Roter Punkt: neue/ungelesene Aufgabe (Kachel + Tabelle) */
.duedo-card-dot,
.duedo-task-dot {
	display: inline-block;
	width: 0.6rem;
	height: 0.6rem;
	border-radius: 50%;
	background: #e23b3b;
	box-shadow: 0 0 0 2px rgba(226, 59, 59, 0.25);
}
.duedo-card-dot { margin-left: 0.45rem; vertical-align: middle; }
.duedo-task-dot { margin-right: 0.4rem; vertical-align: middle; }

/* Meine Aufgaben – Tabelle */
.duedo-tasktable-wrap { overflow-x: auto; margin: 0 0 1.6rem; }
.duedo-tasktable {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95rem;
}
.duedo-tasktable th,
.duedo-tasktable td {
	text-align: left;
	padding: 0.55rem 0.7rem;
	border-bottom: 1px solid var(--wp--preset--color--border, #e3ddd6);
	vertical-align: middle;
}
.duedo-tasktable th {
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--wp--preset--color--muted, #6b6258);
}
.duedo-tasktable tr.is-overdue td { background: rgba(226, 59, 59, 0.06); }

@media (max-width: 600px) {
	.duedo-tasktable thead { display: none; }
	.duedo-tasktable, .duedo-tasktable tbody, .duedo-tasktable tr, .duedo-tasktable td { display: block; width: 100%; }
	.duedo-tasktable tr {
		border: 1px solid var(--wp--preset--color--border, #e3ddd6);
		border-radius: 8px;
		margin-bottom: 0.8rem;
		padding: 0.3rem 0.2rem;
	}
	.duedo-tasktable td { border: 0; padding: 0.3rem 0.7rem; }
	.duedo-tasktable td::before {
		content: attr(data-label);
		display: block;
		font-size: 0.72rem;
		text-transform: uppercase;
		letter-spacing: 0.03em;
		color: var(--wp--preset--color--muted, #6b6258);
	}
	.duedo-tasktable td[data-label=""]::before { content: none; }
}

.duedo-mypost {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
}

.duedo-mypost-thumb img {
	width: 80px;
	height: 80px;
	object-fit: cover;
	border-radius: 6px;
}

.duedo-mypost-body {
	flex: 1;
	min-width: 0;
}

.duedo-mypost-body h3 {
	margin-top: 0;
}

/* Aktionszeile: Status-Badge und Buttons gleich groß nebeneinander */
.duedo-mypost-actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 0.7rem;
}

.duedo-mypost-actions .duedo-status,
.duedo-action-btn {
	display: inline-block;
	box-sizing: border-box;
	padding: 0.45rem 1.1rem;
	font-size: 0.9rem;
	line-height: 1.2;
	border-radius: 6px;
	text-decoration: none;
}

.duedo-mypost-actions .duedo-status {
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: none;
}

.duedo-action-edit {
	background: var(--wp--preset--color--accent, #a5655f);
	color: #fff;
	transition: background 150ms ease;
}

.duedo-action-edit:hover {
	background: var(--wp--preset--color--accent-dark, #86504b);
	color: #fff;
}

.duedo-mypost-actions .duedo-inline-form {
	margin-left: 0;
}

.duedo-mypost-actions .duedo-inline-form button {
	padding: 0.45rem 1.1rem;
	font-size: 0.9rem;
	line-height: 1.2;
}

.duedo-note {
	background: #fdf3e3;
	border: 1px solid #e2c186;
	color: #7a5b1e;
	padding: 0.6rem 0.9rem;
	border-radius: 6px;
	font-size: 0.95rem;
}

.duedo-img-remove-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.8rem;
	margin-bottom: 1rem;
}

.duedo-img-remove {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.3rem;
	font-size: 0.85rem;
	cursor: pointer;
}

.duedo-img-remove img {
	border-radius: 6px;
	width: 120px;
	height: 120px;
	object-fit: cover;
}

.duedo-img-remove input[type="text"] {
	width: 130px;
	padding: 0.3rem 0.5rem;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: 0.8rem;
	font-family: inherit;
}

/* Mini-Karussell für Beitragsbilder (Einzelansicht) */
.duedo-gallery {
	position: relative;
	display: block;
	margin-bottom: 1.2rem;
}

/* Miniatur in der Blog-Liste: Bild nicht verzerren */
.wp-block-post-featured-image img {
	object-fit: cover;
}

.duedo-gallery .duedo-gallery-item {
	display: none;
	margin: 0;
}

.duedo-gallery .duedo-gallery-item.is-active {
	display: block;
}

.duedo-gallery .duedo-gallery-img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 70vh;
	object-fit: contain;       /* nichts beschneiden – Hoch- und Querformat ganz zeigen */
	background: #f1ece5;       /* dezenter Rahmen-Hintergrund bei Letterbox */
	border-radius: 6px;
	cursor: zoom-in;           /* Klick öffnet Vollbild */
}

.duedo-gallery figcaption {
	text-align: center;
	font-size: 0.9rem;
	font-style: italic;
	color: var(--wp--preset--color--text, #6f6f6f);
	padding: 0.4rem 0.5rem 0;
}

.duedo-gallery-prev,
.duedo-gallery-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(36, 22, 20, 0.55);
	color: #fff;
	border: none;
	border-radius: 50%;
	width: 2.2rem;
	height: 2.2rem;
	font-size: 1rem;
	line-height: 1;
	cursor: pointer;
	z-index: 2;
}

.duedo-gallery-prev { left: 0.5rem; }
.duedo-gallery-next { right: 0.5rem; }

.duedo-gallery-prev:hover,
.duedo-gallery-next:hover {
	background: var(--wp--preset--color--accent, #a5655f);
}

.duedo-gallery-count {
	position: absolute;
	bottom: 0.5rem;
	right: 0.6rem;
	background: rgba(36, 22, 20, 0.55);
	color: #fff;
	font-size: 0.75rem;
	padding: 0.1rem 0.5rem;
	border-radius: 999px;
	z-index: 2;
}

/* Roter Punkt am Blog-Menüpunkt (wartende Freigaben, nur Admins) */
.duedo-dot {
	display: inline-block;
	width: 9px;
	height: 9px;
	background: #e60023;
	border-radius: 50%;
	margin-left: 0.35em;
	vertical-align: super;
}

/* Verfasser-Zeile unter Blogbeiträgen */
.duedo-byline {
	font-style: italic;
	font-size: 0.9rem;
	margin-top: 2rem;
	color: var(--wp--preset--color--text, #6f6f6f);
}

/* Galerie: Übersicht als kompakte Zeilen (wie Blog-Liste) */
.duedo-gal-row {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid #e5e2e0;
	border-radius: 8px;
	padding: 0.6rem 0.8rem;
	margin-bottom: 0.7rem;
	text-decoration: none;
	transition: border-color 150ms ease;
}

.duedo-gal-row:hover {
	border-color: var(--wp--preset--color--accent, #a5655f);
}

.duedo-gal-thumb {
	width: 104px;
	height: 104px;
	object-fit: cover;
	border-radius: 6px;
	flex: 0 0 auto;
}

.duedo-gal-thumb-ph {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--wp--preset--color--base, #f4f3f3);
	font-size: 2rem;
}

.duedo-gal-row-main {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}

.duedo-gal-row-main strong {
	color: var(--wp--preset--color--accent, #a5655f);
	font-size: 1.15rem;
}

.duedo-gal-row-desc {
	font-size: 0.88rem;
	color: var(--wp--preset--color--text, #6f6f6f);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.duedo-gal-title .duedo-inline-form {
	vertical-align: middle;
}

.duedo-gal-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 0.4rem;
}

.duedo-gal-img {
	position: relative;
	display: block;
	border-radius: 6px;
	overflow: hidden;
}

.duedo-gal-img img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
	transition: transform 150ms ease;
}

.duedo-gal-img:hover img {
	transform: scale(1.04);
}

/* Video-Kacheln + Lightbox-Video */
.duedo-gal-img video {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
	pointer-events: none;
}

.duedo-gal-play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: rgba(36, 22, 20, 0.6);
	color: #fff;
	border-radius: 50%;
	width: 2.4rem;
	height: 2.4rem;
	line-height: 2.4rem;
	text-align: center;
	font-size: 1rem;
}

.duedo-gal-cover-ph {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 4 / 3;
	background: var(--wp--preset--color--base, #f4f3f3);
	font-size: 3rem;
}

.duedo-lightbox video {
	max-width: 92vw;
	max-height: 80vh;
	border-radius: 4px;
}

.duedo-video-ph {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 120px;
	height: 120px;
	background: var(--wp--preset--color--base, #f4f3f3);
	border-radius: 6px;
	font-size: 2rem;
}

.duedo-gal-lock {
	position: absolute;
	top: 4px;
	right: 4px;
	background: rgba(36, 22, 20, 0.65);
	color: #fff;
	border-radius: 4px;
	font-size: 0.75rem;
	padding: 0 4px;
}

.duedo-internal-check {
	display: block;
	font-weight: 400 !important;
	font-size: 0.85rem;
	margin-top: 0.2rem;
}

/* Wichtig: hidden-Attribut muss gegen display:flex gewinnen, sonst schließt die Lightbox nie */
.duedo-lightbox[hidden] {
	display: none;
}

.duedo-lightbox {
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: rgba(20, 12, 11, 0.94);
	display: flex;
	align-items: center;
	justify-content: center;
}

.duedo-lightbox figure {
	margin: 0;
	max-width: 92vw;
	max-height: 88vh;
	text-align: center;
}

.duedo-lightbox img {
	max-width: 92vw;
	max-height: 80vh;
	width: auto;
	height: auto;
	border-radius: 4px;
}

.duedo-lightbox figcaption {
	color: #faf6f0;
	font-size: 0.95rem;
	padding-top: 0.5rem;
}

.duedo-lb-close,
.duedo-lb-prev,
.duedo-lb-next {
	position: fixed;
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	border: none;
	border-radius: 50%;
	width: 2.6rem;
	height: 2.6rem;
	font-size: 1.1rem;
	cursor: pointer;
	z-index: 10000;
}

.duedo-lb-close { top: 1rem; right: 1rem; }
.duedo-lb-prev { left: 0.7rem; top: 50%; transform: translateY(-50%); }
.duedo-lb-next { right: 0.7rem; top: 50%; transform: translateY(-50%); }

.duedo-lb-close:hover,
.duedo-lb-prev:hover,
.duedo-lb-next:hover {
	background: var(--wp--preset--color--accent, #a5655f);
}

.duedo-lb-count {
	position: fixed;
	bottom: 1rem;
	right: 1.2rem;
	color: #faf6f0;
	font-size: 0.85rem;
	z-index: 10000;
}

/* Eigene Login-Seite (/login/, Shortcode duedofamily_login) */
.duedo-login {
	max-width: 420px;
	margin: 0 auto;
}

.duedo-login label {
	display: block;
	margin-bottom: 0.3rem;
	font-weight: 600;
	color: var(--wp--preset--color--heading, #444);
}

.duedo-login input[type="text"],
.duedo-login input[type="password"],
.duedo-login select,
.duedo-login textarea {
	width: 100%;
	padding: 0.65rem 0.85rem;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: 1rem;
	font-family: inherit;
	background: var(--wp--preset--color--surface, #fff);
	box-sizing: border-box;
}

.duedo-login input[type="text"]:focus,
.duedo-login input[type="password"]:focus,
.duedo-login select:focus,
.duedo-login textarea:focus {
	outline: 2px solid var(--wp--preset--color--accent-light, #b78480);
	border-color: var(--wp--preset--color--accent, #a5655f);
}

.duedo-login p {
	margin-bottom: 1.1rem;
}

.duedo-login input[type="submit"],
.duedo-login .duedo-login-button {
	display: inline-block;
	background: var(--wp--preset--color--accent, #a5655f);
	color: var(--wp--preset--color--surface, #fff);
	border: none;
	border-radius: 6px;
	padding: 0.7rem 1.8rem;
	font-size: 1rem;
	font-family: inherit;
	cursor: pointer;
	text-decoration: none;
	transition: background 150ms ease;
}

.duedo-login input[type="submit"]:hover,
.duedo-login .duedo-login-button:hover {
	background: var(--wp--preset--color--accent-dark, #86504b);
}

.duedo-login .login-remember label {
	font-weight: 400;
	display: inline;
}

.duedo-login-lost {
	font-size: 0.9rem;
}

/* ===========================================================
 * FINALE Regel: Symbol-Buttons (✏️/🗑) überall exakt gleich groß.
 * Steht bewusst am Dateiende und mit hoher Spezifität – nichts
 * weiter oben darf sie übersteuern.
 * =========================================================== */
.duedo-mypost-actions a.duedo-btn-icon,
.duedo-mypost-actions .duedo-inline-form button.duedo-btn-icon,
.duedo-doc-buttons a.duedo-btn-icon,
.duedo-doc-buttons button.duedo-btn-icon,
a.duedo-btn-mini.duedo-btn-icon,
.duedo-inline-form button.duedo-btn-mini.duedo-btn-icon {
	box-sizing: border-box;
	padding: 0.3rem 0.5rem;
	font-size: 0.9rem;
	line-height: 1.15;
	height: auto;
	min-width: 0;
	border-radius: 5px;
}

/* FINALE Regel: Galerie-Raster – immer gleich große Quadrate, nie verzerrt.
   (height:auto ist entscheidend: die width/height-Attribute der Bilder
   würden sonst die Höhe festnageln und das Seitenverhältnis aushebeln.) */
.duedo-gal-grid .duedo-gal-img img,
.duedo-gal-grid .duedo-gal-img video {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 1 / 1 !important;
	object-fit: cover !important;
	display: block;
}

/* ===========================================================
 * Mitgliederliste v2: Filter-Button, Read-only-Ansicht, Karte
 * =========================================================== */

/* Filter-Button sichtbar (war vorher weiß auf weiß) */
.duedo-filter-btn {
	flex: 0 0 auto;
	background: var(--wp--preset--color--accent, #a5655f) !important;
	color: #fff !important;
	border: none !important;
	border-radius: 6px;
	padding: 0.25rem 1rem;
	font-size: 0.88rem;
	font-family: inherit;
	cursor: pointer;
	text-decoration: none;
	display: inline-block;
}

.duedo-filter-btn:hover {
	background: var(--wp--preset--color--accent-dark, #86504b) !important;
	color: #fff !important;
}

.duedo-back-btn {
	height: auto;
}

/* Mitglieder-Zeile als ganzer Klickbereich */
a.duedo-member-row {
	text-decoration: none;
	color: inherit;
}

a.duedo-member-row:hover {
	background: var(--wp--preset--color--base, #f4f3f3);
}

.duedo-wa-mini {
	cursor: pointer;
}

/* Read-only Mitgliedsansicht */
.duedo-member-view-head {
	text-align: center;
	margin-bottom: 1rem;
}

.duedo-member-view-avatar {
	width: 120px;
	height: 120px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
	margin: 0 auto 0.5rem;
}

.duedo-member-view-head h2 {
	margin: 0;
}

.duedo-member-view-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1rem;
}

.duedo-member-view-table th,
.duedo-member-view-table td {
	text-align: left;
	padding: 0.4rem 0.6rem;
	border-bottom: 1px solid #f0eeec;
	vertical-align: top;
}

.duedo-member-view-table th {
	width: 38%;
	color: var(--wp--preset--color--heading, #444);
	font-weight: 600;
}

.duedo-member-view-note {
	background: var(--wp--preset--color--surface, #fff);
	border-left: 3px solid var(--wp--preset--color--accent-light, #b78480);
	padding: 0.6rem 0.9rem;
	border-radius: 4px;
}

/* OpenStreetMap-Kartenansicht */
#duedo-map,
#duedo-wsmap {
	height: 70vh;
	min-height: 360px;
	width: 100%;
	border-radius: 8px;
	border: 1px solid #e5e2e0;
	z-index: 0;
}
/* Kompakte Karte in der Werkstatt/Händler-Detailansicht */
#duedo-wsmap.duedo-ws-detailmap { height: 320px; min-height: 0; margin: 0.4rem 0 0.6rem; }

.duedo-map-popup {
	text-align: center;
}

.duedo-map-popup img {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
	margin: 0 auto 0.3rem;
}

.duedo-check label {
	font-weight: 400;
	display: inline;
}

/* ===========================================================
 * Globales Mitglieder-Menü (☰ unten rechts, auf jeder Seite)
 * =========================================================== */
.duedo-fab {
	position: fixed;
	bottom: 1rem;
	right: 1rem;
	z-index: 1000;
	background: var(--wp--preset--color--accent, #a5655f);
	color: #fff;
	border: none;
	border-radius: 999px;
	padding: 0.6rem 1.1rem;
	font-size: 0.95rem;
	font-family: inherit;
	cursor: pointer;
	box-shadow: 0 2px 10px rgba(36, 22, 20, 0.25);
}

.duedo-fab:hover {
	background: var(--wp--preset--color--accent-dark, #86504b);
}

.duedo-fabmenu {
	position: fixed;
	bottom: 4rem;
	right: 1rem;
	z-index: 1000;
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid #e5e2e0;
	border-radius: 10px;
	box-shadow: 0 4px 18px rgba(36, 22, 20, 0.18);
	min-width: 220px;
	max-width: 80vw;
	padding: 0.5rem 0;
}

.duedo-fabmenu-title {
	margin: 0;
	padding: 0.3rem 1rem 0.5rem;
	font-weight: 700;
	color: var(--wp--preset--color--heading, #444);
	border-bottom: 1px solid #f0eeec;
	font-size: 0.95rem;
}

.duedo-fabmenu ul {
	list-style: none;
	margin: 0;
	padding: 0.3rem 0;
}

.duedo-fabmenu li {
	margin: 0;
}

.duedo-fabmenu a {
	display: block;
	padding: 0.5rem 1rem;
	text-decoration: none;
	color: var(--wp--preset--color--text, #6f6f6f);
	font-size: 0.95rem;
}

.duedo-fabmenu a:hover {
	background: var(--wp--preset--color--base, #f4f3f3);
	color: var(--wp--preset--color--accent, #a5655f);
}

/* Roter Punkt im Menü (offene Mitglieds-Freigaben o. Ä.) */
.duedo-menu-dot {
	display: inline-block;
	width: 0.55rem;
	height: 0.55rem;
	margin-left: 0.4rem;
	border-radius: 50%;
	background: #e23b3b;
	vertical-align: middle;
}
.duedo-fab .duedo-menu-dot {
	position: absolute;
	top: 0.3rem;
	right: 0.3rem;
	margin: 0;
	box-shadow: 0 0 0 2px var(--wp--preset--color--accent, #a5655f);
}

.duedo-fabmenu-sep {
	border-top: 1px solid #f0eeec;
	margin-top: 0.3rem;
	padding-top: 0.1rem;
}

/* ===========================================================
 * Teilebörse: Angebotsliste, Detail-Aktionen
 * =========================================================== */
.duedo-offer-list {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.duedo-offer-row {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid #e5e2e0;
	border-radius: 8px;
	padding: 0.6rem 0.8rem;
	text-decoration: none;
	color: inherit;
	transition: border-color 150ms ease;
}

.duedo-offer-row:hover {
	border-color: var(--wp--preset--color--accent, #a5655f);
}

.duedo-offer-thumb {
	width: 80px;
	height: 80px;
	object-fit: cover;
	border-radius: 6px;
	flex: 0 0 auto;
}

.duedo-offer-thumb-ph {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--wp--preset--color--base, #f4f3f3);
	font-size: 1.8rem;
}

.duedo-offer-main {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.duedo-offer-main strong {
	color: var(--wp--preset--color--accent, #a5655f);
}

.duedo-offer-main .duedo-doc-meta {
	margin-left: 0;
	white-space: normal;
}

.duedo-offer-desc {
	margin: 1rem 0;
}

.duedo-offer-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem;
	margin: 1rem 0;
}

.duedo-offer-actions .duedo-inline-form {
	margin: 0;
}

/* ===========================================================
 * Ausfahrten: Routeneditor, Routenkarte, Stationsliste
 * =========================================================== */
.duedo-addr-editor {
	margin: 0.5rem 0 1rem;
}

.duedo-addr-label {
	font-size: 0.9rem;
	color: var(--wp--preset--color--heading, #444);
	margin-bottom: 0.4rem;
}

.duedo-addr-row {
	display: flex;
	align-items: center;
	gap: 0.3rem;
	margin-bottom: 0.4rem;
}

.duedo-addr-handle {
	color: #bbb;
	cursor: default;
	flex: 0 0 auto;
	font-size: 1.1rem;
}

.duedo-addr-row input {
	flex: 1;
	min-width: 0;
	padding: 0.4rem 0.6rem;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-family: inherit;
	font-size: 0.95rem;
}

.duedo-addr-row button {
	flex: 0 0 auto;
	width: 2rem;
	height: 2rem;
	border: 1px solid #e0dcda;
	background: var(--wp--preset--color--base, #f4f3f3);
	border-radius: 6px;
	cursor: pointer;
	font-size: 0.9rem;
	line-height: 1;
}

.duedo-addr-row button:hover {
	background: var(--wp--preset--color--accent-light, #b78480);
	color: #fff;
}

.duedo-addr-add {
	margin-top: 0.2rem;
}

#duedo-ridemap {
	height: 60vh;
	min-height: 320px;
	width: 100%;
	border-radius: 8px;
	border: 1px solid #e5e2e0;
	margin: 0.8rem 0;
	z-index: 0;
}

.duedo-route-stops {
	margin: 0.8rem 0;
	padding-left: 1.2rem;
}

.duedo-route-stops li {
	margin-bottom: 0.3rem;
}

.duedo-route-tag {
	display: inline-block;
	background: var(--wp--preset--color--accent, #a5655f);
	color: #fff;
	font-size: 0.72rem;
	padding: 0.05rem 0.5rem;
	border-radius: 999px;
	margin-right: 0.3rem;
	vertical-align: middle;
}

.duedo-ride-date {
	flex: 0 0 auto;
	min-width: 92px;
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--wp--preset--color--accent-dark, #86504b);
}

/* Ausfahrt: Datum/Uhrzeit-Felder nebeneinander, Adresse+Aufenthalt pro Zeile */
.duedo-ride-when {
	display: flex;
	flex-wrap: wrap;
	gap: 0.8rem;
}

.duedo-ride-when p {
	flex: 1 1 140px;
	margin-bottom: 0.4rem;
}

.duedo-addr-row .duedo-addr-input {
	flex: 1 1 55%;
}

.duedo-addr-row .duedo-stay-input {
	flex: 1 1 28%;
	min-width: 90px;
}

.duedo-route-stay {
	display: inline-block;
	background: var(--wp--preset--color--base, #f4f3f3);
	border: 1px solid #e2dedc;
	color: var(--wp--preset--color--accent-dark, #86504b);
	font-size: 0.78rem;
	padding: 0.02rem 0.45rem;
	border-radius: 999px;
	margin-left: 0.3rem;
}

/* iCal-Abo in „Meine Termine" */
.duedo-ical-sub {
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid #e5e2e0;
	border-radius: 8px;
	padding: 0.8rem 1rem;
}

.duedo-ical-url {
	width: 100%;
	box-sizing: border-box;
	margin-top: 0.3rem;
	padding: 0.4rem 0.6rem;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: 0.8rem;
	font-family: monospace;
	color: var(--wp--preset--color--text, #6f6f6f);
	background: var(--wp--preset--color--base, #f4f3f3);
}

/* „In Kalender"-Knopf exakt so groß wie das Status-Badge daneben */
.duedo-mypost-actions .duedo-status,
.duedo-mypost-actions .duedo-cal-btn {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	height: 1.85rem;
	padding: 0 0.8rem;
	font-size: 0.8rem;
	line-height: 1;
	border-radius: 999px;
	text-decoration: none;
}

.duedo-mypost-actions .duedo-cal-btn {
	background: var(--wp--preset--color--accent, #a5655f);
	color: #fff;
	border-radius: 6px;
}

.duedo-mypost-actions .duedo-cal-btn:hover {
	background: var(--wp--preset--color--accent-dark, #86504b);
}

/* Veranstaltungen: Aufgaben, Anhänge */
.duedo-event-files { list-style: none; padding-left: 0; }
.duedo-event-files li { margin-bottom: 0.3rem; }

.duedo-task {
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid #e5e2e0;
	border-left: 4px solid var(--wp--preset--color--accent-light, #b78480);
	border-radius: 8px;
	padding: 0.7rem 0.9rem;
	margin-bottom: 0.7rem;
}

.duedo-task.is-overdue {
	border-left-color: #c0392b;
	background: #fdf3f2;
}

.duedo-task-head { margin: 0 0 0.3rem; }
.duedo-task-desc { margin: 0 0 0.3rem; }

.duedo-task-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	margin-top: 0.5rem;
}

/* Aufgaben-Bearbeitung: gelabelte Felder, volle Breite am Handy, ✓-Button */
.duedo-task-edit {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 0.5rem;
	margin: 0;
	width: 100%;
}

.duedo-task-field {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	flex: 1 1 130px;
	min-width: 0;
}
.duedo-task-field.duedo-task-field-wide { flex: 2 1 180px; }

.duedo-task-field > span {
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--wp--preset--color--text, #6f6f6f);
}

.duedo-task-field select,
.duedo-task-field input[type="text"] {
	width: 100%;
	height: var(--duedo-btn-h, 2.4rem);
	padding: 0 0.6rem;
	border: 1px solid #ddd;
	border-radius: 8px;
	font-family: inherit;
	font-size: 0.95rem;
	background: #fff;
}

.duedo-icon-ok {
	flex: 0 0 auto;
	width: var(--duedo-btn-h, 2.4rem);
	height: var(--duedo-btn-h, 2.4rem);
	border: none;
	border-radius: 8px;
	background: #21bd5c;
	color: #fff;
	font-size: 1.2rem;
	line-height: 1;
	cursor: pointer;
}
.duedo-icon-ok:hover { background: #1aa34d; }

.duedo-task-add summary { font-weight: 600; }

@media (max-width: 600px) {
	.duedo-task-actions { flex-direction: column; align-items: stretch; }
	.duedo-task-edit { align-items: stretch; }
	.duedo-task-field,
	.duedo-task-field.duedo-task-field-wide { flex: 1 1 100%; }
	.duedo-icon-ok { width: 100%; height: 2.8rem; font-size: 1.35rem; }
	.duedo-task-delrow { align-self: flex-end; }
}

/* Anmeldeformular-Builder + Anmeldefelder */
.duedo-field-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	align-items: center;
	margin-bottom: 0.5rem;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid #f0eeec;
}
.duedo-field-row input[type="text"] { flex: 1 1 130px; padding: 0.35rem 0.5rem; border: 1px solid #ddd; border-radius: 6px; font-family: inherit; font-size: 0.85rem; }
.duedo-field-row select { padding: 0.35rem 0.4rem; border: 1px solid #ddd; border-radius: 6px; font-family: inherit; font-size: 0.85rem; }
.duedo-field-del { width: 1.9rem; height: 1.9rem; border: 1px solid #e0dcda; background: var(--wp--preset--color--base,#f4f3f3); border-radius: 6px; cursor: pointer; }
.duedo-regform label { display: block; margin-bottom: 0.2rem; font-weight: 600; }
.duedo-regform .duedo-check label { display: inline; font-weight: 400; }

/* Veranstaltungskalender */
.duedo-cal-month { margin: 1rem 0 0.4rem; color: var(--wp--preset--color--accent-dark,#86504b); }
.duedo-cal-nav { display: flex; justify-content: space-between; align-items: center; margin: 0.5rem 0; }
.duedo-cal-nav a { font-size: 1.4rem; text-decoration: none; padding: 0 0.6rem; color: var(--wp--preset--color--accent,#a5655f); }
.duedo-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.duedo-cal-wd { text-align: center; font-size: 0.72rem; font-weight: 700; color: var(--wp--preset--color--text,#6f6f6f); padding: 0.2rem 0; }
.duedo-cal-cell { min-height: 64px; background: var(--wp--preset--color--surface,#fff); border: 1px solid #eee; border-radius: 4px; padding: 2px 3px; }
.duedo-cal-cell.is-empty { background: transparent; border: none; }
.duedo-cal-cell.is-today { border-color: var(--wp--preset--color--accent,#a5655f); box-shadow: inset 0 0 0 1px var(--wp--preset--color--accent,#a5655f); }
.duedo-cal-day { font-size: 0.72rem; color: var(--wp--preset--color--text,#6f6f6f); }
.duedo-cal-ev { display: block; font-size: 0.66rem; line-height: 1.15; margin-top: 2px; padding: 1px 3px; border-radius: 3px; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.duedo-cal-event { background: #f0e3e1; color: #86504b; }
.duedo-cal-ride { background: #e3eef0; color: #2c6e7a; }
@media (max-width: 600px) {
	.duedo-cal-cell { min-height: 48px; }
	.duedo-cal-ev { font-size: 0; padding: 3px; }
	.duedo-cal-ev::before { content: "●"; font-size: 0.7rem; }
}

/* ===========================================================
 * Veranstaltungen v2: Aufgaben aufklappbar, einheitliche Formularfelder,
 * Anmelde-Builder, Vorschau, Jahreskalender
 * =========================================================== */

/* Aufgaben als aufklappbare 1-2-Zeiler */
details.duedo-task { padding: 0; }
details.duedo-task > summary {
	display: flex; align-items: center; gap: 0.6rem;
	padding: 0.6rem 0.9rem; cursor: pointer; list-style: none;
}
details.duedo-task > summary::-webkit-details-marker { display: none; }
details.duedo-task > summary::before { content: "▸"; color: var(--wp--preset--color--accent,#a5655f); flex: 0 0 auto; }
details.duedo-task[open] > summary::before { content: "▾"; }

/* Status als Symbol statt Text + schmale 2. Zeile mit Verantwortliche/r + Termin */
.duedo-task-sum { gap: 0.5rem !important; padding-top: 0.45rem !important; padding-bottom: 0.45rem !important; }
.duedo-task-icon { flex: 0 0 auto; font-size: 1.15rem; line-height: 1; }
.duedo-task-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0.1rem; }
.duedo-task-title { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.duedo-task-who { font-size: 0.8rem; color: var(--wp--preset--color--text, #6f6f6f); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.duedo-task-body { padding: 0 0.9rem 0.8rem 1.7rem; }

/* Einheitliches Feld-Raster (gleich breit/hoch, Label klein darüber, eingerückt) */
.duedo-fieldgrid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 0.7rem;
	margin-bottom: 0.8rem;
}
.duedo-fld { display: flex; flex-direction: column; gap: 0.2rem; }
.duedo-fld > span { font-size: 0.78rem; font-weight: 600; color: var(--wp--preset--color--heading,#444); }
.duedo-fld input,
.duedo-fld select,
.duedo-fld textarea {
	box-sizing: border-box;
	width: 100%;
	height: var(--duedo-btn-h);
	padding: 0.4rem 0.6rem;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-family: inherit;
	font-size: 0.95rem;
	background: var(--wp--preset--color--surface,#fff);
}
.duedo-fld textarea { height: auto; min-height: 4rem; }
.duedo-fld-wide { grid-column: 1 / -1; }

/* Anmelde-Builder: Buttons getrennt + Vorschau */
.duedo-builder-btns { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 0.6rem; }
.duedo-reg-preview {
	margin-top: 1rem; padding: 0.9rem 1rem;
	background: var(--wp--preset--color--base,#f4f3f3);
	border: 1px dashed #cfc7c4; border-radius: 8px;
}
.duedo-reg-preview label { display: block; font-weight: 600; font-size: 0.85rem; margin-bottom: 0.2rem; }
.duedo-reg-preview .duedo-check label { display: inline; font-weight: 400; }
.duedo-reg-preview input:not([type=checkbox]):not([type=radio]),
.duedo-reg-preview select,
.duedo-reg-preview textarea {
	box-sizing: border-box; width: 100%; padding: 0.4rem 0.6rem;
	border: 1px solid #ddd; border-radius: 6px; background: #fff;
	font-family: inherit; font-size: 0.9rem;
}

/* Jahreskalender */
.duedo-year-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 0.5rem; }
.duedo-year-cell {
	display: flex; flex-direction: column; gap: 0.2rem;
	padding: 0.7rem 0.8rem; text-decoration: none;
	background: var(--wp--preset--color--surface,#fff);
	border: 1px solid #e5e2e0; border-radius: 8px;
}
.duedo-year-cell.has-events { border-color: var(--wp--preset--color--accent,#a5655f); }
.duedo-year-cell:hover { box-shadow: 0 2px 8px rgba(36,22,20,0.08); }
.duedo-year-mname { font-weight: 700; color: var(--wp--preset--color--accent,#a5655f); }
.duedo-year-count { font-size: 0.82rem; color: var(--wp--preset--color--text,#6f6f6f); }

/* Mitgliederverwaltung: Rollen-Formular in der Zeile */
.duedo-roleform { display: flex; gap: 0.3rem; align-items: center; }
.duedo-roleform select { padding: 0.3rem 0.4rem; border: 1px solid #ddd; border-radius: 6px; font-family: inherit; font-size: 0.85rem; }

/* ===========================================================
 * Ausfahrt planen: einheitliche Felder/Buttons, kompakter Kopf,
 * Adresse + Aufenthalt zweizeilig (mobil nicht zu kurz)
 * =========================================================== */
.duedo-rideform label { display: block; font-size: 0.82rem; font-weight: 600; color: var(--wp--preset--color--heading,#444); margin-bottom: 0.2rem; }
.duedo-rideform input[type="text"],
.duedo-rideform input[type="date"],
.duedo-rideform input[type="time"],
.duedo-rideform input[type="number"],
.duedo-rideform select,
.duedo-rideform input[type="submit"] {
	box-sizing: border-box;
	width: 100%;
	height: 2.4rem;
	padding: 0.4rem 0.7rem;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-family: inherit;
	font-size: 0.95rem;
	background: var(--wp--preset--color--surface,#fff);
}
.duedo-rideform textarea {
	box-sizing: border-box; width: 100%;
	padding: 0.4rem 0.7rem; border: 1px solid #ddd; border-radius: 6px;
	font-family: inherit; font-size: 0.95rem;
}
.duedo-rideform input[type="submit"] {
	width: auto; cursor: pointer;
	background: var(--wp--preset--color--accent,#a5655f); color: #fff; border: none;
}
.duedo-rideform p { margin-bottom: 0.6rem; }

/* Kopf: Datum/Uhrzeit/Enddatum kompakter */
.duedo-ride-when { gap: 0.5rem; }
.duedo-ride-when p { flex: 1 1 120px; margin-bottom: 0.3rem; }

/* Adresszeile als 2-Zeilen-Raster: oben Adresse (breit), unten Aufenthalt + Tasten */
.duedo-rideform .duedo-addr-row {
	display: grid;
	grid-template-columns: auto 1fr auto auto auto;
	grid-template-areas:
		"handle address address address address"
		"stay   stay    up      down    del";
	gap: 0.3rem;
	align-items: center;
	margin-bottom: 0.7rem;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid #f0eeec;
}
.duedo-rideform .duedo-addr-handle { grid-area: handle; }
.duedo-rideform .duedo-addr-input  { grid-area: address; }
.duedo-rideform .duedo-stay-input  { grid-area: stay; }
.duedo-rideform .duedo-addr-up   { grid-area: up; }
.duedo-rideform .duedo-addr-down { grid-area: down; }
.duedo-rideform .duedo-addr-del  { grid-area: del; }
.duedo-rideform .duedo-addr-row input {
	box-sizing: border-box; width: 100%; height: var(--duedo-btn-h);
	padding: 0.4rem 0.6rem; border: 1px solid #ddd; border-radius: 6px;
	font-family: inherit; font-size: 0.9rem;
}
.duedo-rideform .duedo-addr-row button { width: 100%; height: var(--duedo-btn-h); }
.duedo-addr-add { height: var(--duedo-btn-h); }

/* ===========================================================
 * Konsistenz: max. 3 Schriften (Überschrift + Text + fett),
 * alle Bedien­elemente erben die Body-Schrift; Buttons gleich hoch
 * =========================================================== */
button, input, select, textarea,
.wp-element-button, .duedo-btn-mini, .duedo-filter-btn, .duedo-cal-btn {
	font-family: inherit;
}

/* Aktionszeile (Ausfahrt/Angebot/Veranstaltung): alle Buttons gleich hoch */
.duedo-offer-actions { align-items: stretch; }
.duedo-offer-actions > .duedo-status { display: inline-flex; align-items: center; }
.duedo-offer-actions .wp-element-button,
.duedo-offer-actions button,
.duedo-offer-actions a.duedo-btn-mini,
.duedo-offer-actions .duedo-inline-form button {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	border-radius: 6px;
}
/* Symbol-Buttons (✏️/🗑) quadratisch, gleiche Höhe */
.duedo-offer-actions a.duedo-btn-icon,
.duedo-offer-actions button.duedo-btn-icon {
	padding: 0;
	font-size: 1.05rem;
}
.duedo-offer-actions .duedo-inline-form { display: inline-flex; margin: 0; }

/* Anmeldeformular (Veranstaltung + Ausfahrt): alle Felder einheitlich */
.duedo-regform input[type="text"],
.duedo-regform input[type="email"],
.duedo-regform input[type="tel"],
.duedo-regform input[type="number"],
.duedo-regform input[type="date"],
.duedo-regform select {
	box-sizing: border-box;
	width: 100%;
	height: 2.4rem;
	padding: 0.4rem 0.7rem;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-family: inherit;
	font-size: 0.95rem;
	background: var(--wp--preset--color--surface,#fff);
}
.duedo-regform textarea {
	box-sizing: border-box; width: 100%;
	padding: 0.4rem 0.7rem; border: 1px solid #ddd; border-radius: 6px;
	font-family: inherit; font-size: 0.95rem;
}
.duedo-regform label { display: block; font-size: 0.82rem; font-weight: 600; margin-bottom: 0.2rem; }
.duedo-regform input[type="submit"] {
	height: 2.4rem; padding: 0 1.2rem; border: none; cursor: pointer;
	background: var(--wp--preset--color--accent,#a5655f); color: #fff;
	border-radius: 6px; font-family: inherit; font-size: 0.95rem;
}

/* ===========================================================
 * FINALE GLOBALE Buttonhöhe: jeder Aktions-/Formular-/Filter-Button
 * exakt gleich hoch (2.5rem). Höchste Priorität (Dateiende).
 * Ausgenommen (bewusst): Sortierpfeile ↑↓✕, Karussell/Lightbox,
 * ☰-FAB, Kalender-Pfeile, ▸-Aufklapper – das sind Mikro-Controls.
 * =========================================================== */
:root { --duedo-btn-h: 2.4rem; }

.wp-element-button,
input[type="submit"],
.duedo-filter-btn,
.duedo-btn-mini,
.duedo-cal-btn,
.duedo-wa-button,
.duedo-reject-button,
.duedo-delete-button,
.duedo-action-btn,
.duedo-action-edit {
	box-sizing: border-box;
	height: var(--duedo-btn-h);
	min-height: var(--duedo-btn-h);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 1.1rem;
	font-family: inherit;
	font-size: 0.9rem;
	line-height: 1;
	border-radius: 6px;
	vertical-align: middle;
	white-space: nowrap;
}

/* Reine Symbol-Buttons (✏️ 🗑 ✓ 🔍): quadratisch in gleicher Höhe */
a.duedo-btn-icon,
button.duedo-btn-icon,
.duedo-filter-btn {
	width: auto;
}
a.duedo-btn-icon,
button.duedo-btn-icon {
	width: var(--duedo-btn-h);
	padding: 0;
	font-size: 1.05rem;
}

/* Filterleisten: Eingabefelder + Button auf identische Höhe */
.duedo-filterbar input[type="text"],
.duedo-filterbar select,
.duedo-filterbar button {
	height: var(--duedo-btn-h);
	box-sizing: border-box;
}

/* Auswahlfelder neben Buttons in Inline-Formularen mitziehen */
.duedo-roleform select {
	height: var(--duedo-btn-h);
	box-sizing: border-box;
}

/* Status-Badges in Aktionszeilen mittig auf Buttonhöhe */
.duedo-mypost-actions .duedo-status,
.duedo-offer-actions .duedo-status {
	height: var(--duedo-btn-h);
	display: inline-flex;
	align-items: center;
}

.duedo-inline-form { display: inline-flex; align-items: center; margin: 0; }


/* Dezente Admin-Kennzeichnung (kleines Tag neben dem Namen) */
.duedo-member-name { display: inline-flex; align-items: baseline; gap: 0.35rem; flex-wrap: wrap; }
.duedo-admin-tag {
	font-size: 0.62rem;
	letter-spacing: 0.03em;
	color: var(--wp--preset--color--accent-dark,#86504b);
	opacity: 0.8;
	font-weight: 600;
	white-space: nowrap;
}

/* Mitgliederverwaltung: kompakte Zeilen, Aktion bricht auf dem Handy um */
.duedo-memadm-list {
	background: var(--wp--preset--color--surface,#fff);
	border: 1px solid #e5e2e0;
	border-radius: 8px;
	overflow: hidden;
}
.duedo-memadm-row {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.45rem 0.7rem;
	border-bottom: 1px solid #f0eeec;
}
.duedo-memadm-row:last-child { border-bottom: none; }
.duedo-memadm-head {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	flex: 1 1 220px;
	min-width: 0;
}
.duedo-memadm-head .duedo-member-row-main { min-width: 0; }
.duedo-memadm-head .duedo-doc-meta {
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.duedo-memadm-actions {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	flex: 0 0 auto;
}
.duedo-memadm-actions .duedo-roleform { display: flex; align-items: center; gap: 0.4rem; margin: 0; }

/* Handy: Aktion auf eigene (zweite) Zeile, kompakt */
@media (max-width: 600px) {
	.duedo-memadm-row { flex-wrap: wrap; row-gap: 0.4rem; }
	.duedo-memadm-head { flex: 1 1 100%; }
	.duedo-memadm-actions { flex: 1 1 100%; }
	.duedo-memadm-actions .duedo-roleform { flex: 1; }
	.duedo-memadm-actions .duedo-roleform select { flex: 1; min-width: 0; }
	.duedo-memadm-actions .duedo-filter-btn { flex: 0 0 auto; }
}

/* Mitgliederliste: 2-zeilige Einträge, Kontakt/Adresse aufklappbar */
details.duedo-member-litem {
	border-bottom: 1px solid #f0eeec;
}
details.duedo-member-litem:last-child { border-bottom: none; }
details.duedo-member-litem > summary {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	padding: 0.45rem 0.7rem;
	cursor: pointer;
	list-style: none;
}
details.duedo-member-litem > summary::-webkit-details-marker { display: none; }
details.duedo-member-litem > summary::after {
	content: "▸";
	color: var(--wp--preset--color--accent,#a5655f);
	margin-left: auto;
	flex: 0 0 auto;
}
details.duedo-member-litem[open] > summary::after { content: "▾"; }
details.duedo-member-litem .duedo-member-row-main {
	flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.3;
}
details.duedo-member-litem .duedo-doc-meta {
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.duedo-member-litem-body {
	padding: 0.2rem 0.8rem 0.7rem 3.1rem;
}
.duedo-member-detail-addr { margin: 0 0 0.5rem; }

/* Front-End-Einstellungen */
.duedo-settingsform label { display: block; font-weight: 600; font-size: 0.85rem; margin-bottom: 0.2rem; }
.duedo-settingsform textarea {
	box-sizing: border-box; width: 100%; padding: 0.5rem 0.7rem;
	border: 1px solid #ddd; border-radius: 6px; font-family: inherit; font-size: 0.95rem;
}
.duedo-settingsform .duedo-doc-meta { margin: 0.3rem 0 0.6rem; }

/* Werkstattliste */
.duedo-kind-nav { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.3rem 0 1rem; }
/* Typ-Kennzeichnung in der kompakten Liste */
.duedo-ws-typetag {
	display: inline-block; font-size: 0.66rem; font-weight: 700;
	text-transform: uppercase; letter-spacing: 0.03em;
	padding: 0.05rem 0.45rem; border-radius: 999px; vertical-align: middle;
	margin-left: 0.15rem;
}
.duedo-ws-typetag.is-werkstatt { background: #e7f2e7; color: #2c5f2d; }
.duedo-ws-typetag.is-haendler  { background: #eceff7; color: #38477a; }
.duedo-ws-row .duedo-ws-main strong { line-height: 1.3; }
/* Filter-Klappbereich */
.duedo-ws-filter { margin: 0 0 1rem; }
.duedo-ws-filter > summary { font-weight: 600; }
.duedo-ws-filterbody { padding-top: 0.5rem; }
.duedo-kind-btn.is-active {
	background: var(--wp--preset--color--accent, #a5655f);
	color: #fff;
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--accent, #a5655f);
}
.duedo-ws-kind { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 1rem; }
.duedo-ws-kind > label:first-child { font-weight: 600; width: 100%; }
.duedo-ws-form .duedo-ws-formbody { padding: 0.4rem 0.2rem 0.2rem; }

/* Eingabefelder im Werkstatt-Formular wie die übrigen Formulare: volle Breite + Standard-Optik */
.duedo-ws-formbody p { margin-bottom: 1rem; }
.duedo-ws-formbody p > label {
	display: block;
	margin-bottom: 0.3rem;
	font-weight: 600;
	color: var(--wp--preset--color--heading, #444);
}
.duedo-ws-formbody input[type="text"],
.duedo-ws-formbody input[type="url"],
.duedo-ws-formbody textarea,
.duedo-ws-formbody select {
	width: 100%;
	padding: 0.65rem 0.85rem;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: 1rem;
	font-family: inherit;
	background: var(--wp--preset--color--surface, #fff);
	box-sizing: border-box;
}
.duedo-ws-formbody input[type="text"]:focus,
.duedo-ws-formbody input[type="url"]:focus,
.duedo-ws-formbody textarea:focus,
.duedo-ws-formbody select:focus {
	outline: 2px solid var(--wp--preset--color--accent-light, #b78480);
	border-color: var(--wp--preset--color--accent, #a5655f);
}

/* Profilbild-Vorschau + Zuschneiden */
.duedo-photo-preview {
	display: block;
	width: 160px;
	height: 160px;
	border-radius: 50%;
	object-fit: cover;
	margin: 0 auto 1rem;
	border: 2px solid var(--wp--preset--color--accent-light, #b78480);
}
.duedo-photo-preview[hidden] { display: none; }

.duedo-crop-overlay {
	position: fixed;
	inset: 0;
	z-index: 2100;
	background: rgba(36, 22, 20, 0.6);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.2rem;
}
.duedo-crop-box {
	background: #fff;
	border-radius: 12px;
	padding: 1.2rem;
	max-width: 22rem;
	width: 100%;
	text-align: center;
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
}
.duedo-crop-title { font-weight: 600; margin: 0 0 0.8rem; }
.duedo-crop-stage {
	position: relative;
	width: 280px;
	height: 280px;
	max-width: 80vw;
	margin: 0 auto;
}
.duedo-crop-stage canvas {
	width: 100%;
	height: 100%;
	border-radius: 8px;
	background: #1a1110;
	touch-action: none;
	cursor: grab;
	display: block;
}
.duedo-crop-ring {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.45);
	pointer-events: none;
}
.duedo-crop-zoom { display: block; margin: 0.9rem 0 0.2rem; font-size: 0.9rem; }
.duedo-crop-zoom input[type="range"] { width: 100%; }
.duedo-crop-actions { display: flex; gap: 0.6rem; justify-content: center; margin-top: 0.6rem; }
.duedo-crop-hint { font-size: 0.8rem; color: #777; margin: 0.6rem 0 0; }
.duedo-ws-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.6rem; }
.duedo-ws-main { display: flex; flex-direction: column; gap: 0.15rem; min-width: 0; flex: 1; text-decoration: none; color: inherit; }
a.duedo-ws-main:hover strong { color: var(--wp--preset--color--accent, #a5655f); }
.duedo-ws-comment { margin-top: 0.15rem; }
.duedo-ws-actions { display: flex; gap: 0.3rem; flex: 0 0 auto; }
.duedo-ws-weblink { flex: 0 0 auto; font-size: 1.2rem; text-decoration: none; align-self: center; }
.duedo-stars { color: #e0a52a; letter-spacing: 0.06em; }
.duedo-ws-rating { font-size: 0.9rem; }
.duedo-wsrate-form select { min-width: 12rem; }

/* Kompetenzen */
.duedo-ws-skills-grid { display: flex; flex-wrap: wrap; gap: 0.3rem 0.9rem; margin-top: 0.3rem; }
.duedo-ws-skillbox { display: inline-flex; align-items: center; gap: 0.35rem; font-weight: 400; }
.duedo-ws-chips { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0.1rem 0; }
.duedo-ws-chip {
	display: inline-block;
	font-size: 0.78rem;
	padding: 0.12rem 0.55rem;
	border-radius: 999px;
	background: var(--wp--preset--color--base, #f1ece5);
	color: var(--wp--preset--color--heading, #444);
	border: 1px solid #e0d8cf;
}

/* Upload-Fortschritt (Overlay + Balken) */
.duedo-upload-overlay {
	position: fixed;
	inset: 0;
	z-index: 2000;
	background: rgba(36, 22, 20, 0.55);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
}
.duedo-upload-box {
	background: #fff;
	border-radius: 12px;
	padding: 1.4rem 1.5rem;
	max-width: 24rem;
	width: 100%;
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25);
	text-align: center;
}
.duedo-upload-text { font-weight: 600; margin: 0 0 0.8rem; }
.duedo-upload-bar {
	height: 0.9rem;
	border-radius: 999px;
	background: #efe9e2;
	overflow: hidden;
}
.duedo-upload-bar span {
	display: block;
	height: 100%;
	width: 0;
	background: #21bd5c;
	transition: width 0.2s ease;
}
.duedo-upload-hint { font-size: 0.82rem; color: #777; margin: 0.8rem 0 0; }

/* Blog-Inhalt: lange Links umbrechen, Embeds auf Blockbreite begrenzen,
 * eingefügte interne Links als sauber eingepasster Button */
.wp-block-post-content a,
.entry-content a { overflow-wrap: anywhere; word-break: break-word; }
.wp-block-post-content iframe,
.wp-block-embed,
.wp-block-embed iframe,
.entry-content iframe { max-width: 100%; }
.duedo-inline-cta { margin: 1.1rem 0; }
.duedo-inline-cta a { display: inline-flex; }

/* ===========================================================
 * Umfragen
 * =========================================================== */
.duedo-survey-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.6rem;
	flex-wrap: wrap;
}
.duedo-survey-main {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
	flex: 1 1 60%;
	min-width: 0;
	text-decoration: none;
	color: inherit;
}
.duedo-survey-main strong { line-height: 1.25; }
.duedo-survey-side {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.4rem;
	flex: 1 1 auto;
	justify-content: flex-end;
	min-width: 0;
}
.duedo-survey-side .duedo-inline-form { margin: 0; }
.duedo-survey-side form { display: inline-flex; }

/* DSGVO: Konto-Löschen-Bereich (Danger-Zone) */
.duedo-danger { border: 1px solid #e0b4b4; border-radius: 8px; margin-top: 1.4rem; }
.duedo-danger > summary { color: #8a3030; font-weight: 600; padding: 0.6rem 0.8rem; cursor: pointer; }
.duedo-danger-body { padding: 0 0.8rem 0.8rem; }
.duedo-danger-body .duedo-check { margin: 0.5rem 0; }

/* Aktionsbuttons (Excel + Bearbeiten): am Handy mit Abstand statt aneinander */
.duedo-survey-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem;
}

/* Antwortformular */
.duedo-survey-q {
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid #e5e2e0;
	border-radius: 8px;
	padding: 0.8rem 0.9rem;
	margin: 0 0 0.8rem;
}
.duedo-survey-qlabel { font-weight: 600; margin: 0 0 0.5rem; }
.duedo-survey-q .duedo-check {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.35rem 0;
	font-weight: 400;
}
.duedo-survey-q .duedo-check label { display: inline; }
.duedo-survey-q input[type="text"],
.duedo-survey-q textarea {
	box-sizing: border-box; width: 100%; padding: 0.5rem 0.7rem;
	border: 1px solid #ddd; border-radius: 6px; font-family: inherit; font-size: 0.95rem;
}

/* Ergebnis-Auszählung */
.duedo-survey-tally { list-style: none; padding: 0; margin: 0 0 1rem; }
.duedo-survey-tally li {
	display: flex; justify-content: space-between; gap: 1rem;
	padding: 0.4rem 0.6rem; border-bottom: 1px solid #eee;
}
.duedo-survey-tally li strong { color: var(--wp--preset--color--accent, #a5655f); }
.duedo-survey-tally li.duedo-survey-total { border-top: 2px solid var(--wp--preset--color--accent-light, #b78480); border-bottom: none; font-weight: 700; }
.duedo-survey-textanswers { margin: 0 0 1rem; padding-left: 1.1rem; }
.duedo-survey-textanswers li { margin-bottom: 0.3rem; }

/* Mengenabfrage (Stückzahl je Option) – Felder in fester Spalte untereinander ausgerichtet */
.duedo-menge-grid { display: flex; flex-direction: column; gap: 0.45rem; }
.duedo-menge-item {
	display: grid;
	grid-template-columns: 1fr 5.5rem;
	align-items: center;
	column-gap: 0.8rem;
	font-weight: 400;
}
.duedo-menge-label { min-width: 0; }
.duedo-menge-item input[type="number"] {
	width: 100%;
	box-sizing: border-box;
	text-align: center;
	padding: 0.45rem 0.4rem; border: 1px solid #ddd; border-radius: 6px;
	font-size: 1rem; font-family: inherit;
}
.duedo-menge-price { color: var(--wp--preset--color--text, #6f6f6f); font-weight: 400; font-size: 0.9em; }
.duedo-menge-sum {
	display: block; text-align: right; font-weight: 700;
	margin-top: 0.4rem; padding-top: 0.4rem; border-top: 1px solid #e3ddd6;
}

/* Frage-Builder erbt vom Feld-Builder (.duedo-field-row); nichts extra nötig */

/* Volltextsuche */
.duedo-searchbar input[type="search"] { flex: 1 1 14rem; min-width: 0; }
.duedo-dash-search { margin: 0 0 1.4rem; }
.duedo-search-group { margin: 0 0 1.4rem; }
.duedo-search-h {
	font-size: 1.15rem; margin: 0 0 0.5rem; padding-bottom: 0.25rem;
	border-bottom: 2px solid var(--wp--preset--color--accent-light, #b78480);
}
.duedo-search-list { display: flex; flex-direction: column; gap: 0.4rem; }
.duedo-search-hit {
	display: block;
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid #e5e2e0; border-radius: 8px;
	padding: 0.55rem 0.8rem; text-decoration: none; color: inherit;
}
.duedo-search-hit:hover { border-color: var(--wp--preset--color--accent, #a5655f); }
.duedo-search-hit strong { display: block; color: var(--wp--preset--color--accent, #a5655f); }
.duedo-search-snip {
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
	font-size: 0.9rem; color: var(--wp--preset--color--text, #6f6f6f); margin-top: 0.15rem;
}
.duedo-search-snip mark, .duedo-search-hit mark {
	background: #ffe9a8; color: inherit; padding: 0 0.1em; border-radius: 2px;
}

/* ---- Zwei-Faktor-Anmeldung (eigenes Setup) ---- */
.duedo-2fa .duedo-2fa-on{background:#e7f2e7;border:1px solid #9fc99f;color:#2c5f2d;padding:.7rem 1rem;border-radius:6px}
.duedo-2fa-steps{margin:1rem 0;padding-left:1.2rem;line-height:1.5}
.duedo-2fa-steps li{margin:.35rem 0}
.duedo-2fa-qr-wrap{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:center;justify-content:center;margin:1.2rem 0;padding:1rem;background:#fff;border:1px solid #e0ddd5;border-radius:10px}
.duedo-2fa-qr{width:200px;height:200px;display:flex;align-items:center;justify-content:center;text-align:center}
.duedo-2fa-qr svg{width:200px;height:200px;display:block}
.duedo-2fa-key{margin:0;text-align:center}
.duedo-2fa-key code{display:inline-block;margin-top:.3rem;font-size:1.15rem;letter-spacing:.08em;background:#f3f1ea;padding:.4rem .7rem;border-radius:6px;word-break:break-all}
.duedo-2fa-form input[name="duedo_2fa_code"]{font-size:1.4rem;letter-spacing:.25em;text-align:center;max-width:9rem}

/* ---- „Über uns"-Seite + Editor ---- */
.duedo-about{max-width:760px;margin:0 auto}
.duedo-about-img{display:block;width:100%;height:auto;border-radius:12px;margin:0 0 1.2rem}
.duedo-about-text{line-height:1.6}
.duedo-about-text h1,.duedo-about-text h2,.duedo-about-text h3{font-family:var(--wp--preset--font-family--heading,"Kaushan Script",cursive);color:var(--wp--preset--color--heading,#4a2f2c)}
.duedo-about-text a{color:var(--wp--preset--color--accent,#a5655f);text-decoration:underline}
.duedo-about-link{margin-top:1.4rem}
.duedo-about-edit{max-width:760px}
.duedo-about-preview{background:var(--wp--preset--color--base,#f4f3f3);border:1px solid #e7ded7;border-radius:10px;padding:1rem 1.2rem;margin-bottom:1.4rem}
.duedo-about-preview .duedo-about{margin:0}
.duedo-about-preview .duedo-about-img{max-width:320px}

/* Download-Symbol in der Dokumentenliste (Klick auf Namen = Ansicht im Browser) */
.duedo-doc-dl{flex:0 0 auto;text-decoration:none;color:var(--wp--preset--color--accent,#a5655f);font-size:1.05em;vertical-align:baseline}
.duedo-doc-dl:hover{color:var(--wp--preset--color--accent-dark,#86504b)}
