/* Termine Frontend Editor – Frontend-Styles */

.tfe-wrapper {
	--tfe-border: #d8dce1;
	--tfe-border-strong: #b9bfc8;
	--tfe-text: #1f2933;
	--tfe-muted: #6b7280;
	--tfe-primary: #2563eb;
	--tfe-primary-hover: #1d4ed8;
	--tfe-danger: #dc2626;
	--tfe-danger-hover: #b91c1c;
	--tfe-success-bg: #ecfdf3;
	--tfe-success-text: #027a48;
	--tfe-error-bg: #fef3f2;
	--tfe-error-text: #b42318;
	--tfe-radius: 8px;

	color: var(--tfe-text);
	font-size: 15px;
	line-height: 1.5;
	max-width: 100%;
}

.tfe-admin-error {
	padding: 0.75em 1em;
	background: var(--tfe-error-bg, #fef3f2);
	color: var(--tfe-error-text, #b42318);
	border-radius: 8px;
	font-size: 14px;
}

/* Toolbar mit "Termine bearbeiten"-Button */
.tfe-toolbar {
	display: flex;
	justify-content: flex-end;
	margin-bottom: 0.8em;
}

.tfe-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	padding: 0.45em 0.95em;
	border: 1px solid var(--tfe-border-strong);
	border-radius: 999px;
	background: #fff;
	color: var(--tfe-text);
	font-size: 0.85em;
	font-weight: 600;
	line-height: 1.4;
	cursor: pointer;
	box-shadow: 0 1px 2px rgba(16, 24, 40, 0.06);
	transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.1s ease;
}

.tfe-btn:hover {
	background: #f4f6f8;
	box-shadow: 0 2px 4px rgba(16, 24, 40, 0.1);
}

.tfe-btn:active {
	transform: translateY(1px);
}

.tfe-btn svg {
	width: 1em;
	height: 1em;
	flex-shrink: 0;
}

.tfe-btn-primary,
.tfe-btn-edit {
	background: var(--tfe-primary);
	border-color: var(--tfe-primary);
	color: #fff;
}

.tfe-btn-primary:hover,
.tfe-btn-edit:hover {
	background: var(--tfe-primary-hover);
	border-color: var(--tfe-primary-hover);
}

.tfe-btn-secondary {
	background: #fff;
	color: var(--tfe-text);
}

.tfe-btn[disabled] {
	opacity: 0.6;
	cursor: default;
}

/* Anzeige-Tabelle (Lesemodus) */
.tfe-table {
	width: 100%;
	max-width: 800px;
	margin: 0 auto;
	border-collapse: collapse;
}

.tfe-edit-table {
	width: 100%;
	border-collapse: collapse;
}

.tfe-table td,
.tfe-edit-table td {
	border: 1px solid var(--tfe-border);
	padding: 0.55em 0.75em;
	vertical-align: top;
	text-align: left;
}

.tfe-table td.tfe-head {
	font-weight: 700;
	background: #f5f5f5;
}

.tfe-empty-state {
	color: var(--tfe-muted);
	font-style: italic;
	padding: 0.5em 0;
}

/* Bearbeitungsmodus */
.tfe-edit-wrap {
	max-width: 860px;
	margin: 0 auto;
	border: 1px solid var(--tfe-primary);
	border-radius: var(--tfe-radius);
	padding: 0.75em;
	background: #f8faff;
}

.tfe-edit-table {
	background: #fff;
}

.tfe-edit-table td.tfe-cell {
	background: #fff;
	cursor: text;
	outline: none;
	min-width: 4em;
}

.tfe-edit-table td.tfe-cell:focus {
	background: #fffdf0;
	box-shadow: inset 0 0 0 2px var(--tfe-primary);
}

.tfe-edit-table td.tfe-row-actions {
	border: none;
	padding: 0.25em 0.4em;
	text-align: center;
	white-space: nowrap;
	width: 1%;
}

.tfe-row-delete {
	border: 1px solid var(--tfe-border-strong);
	background: #fff;
	color: var(--tfe-danger);
	border-radius: 6px;
	width: 1.9em;
	height: 1.9em;
	line-height: 1;
	cursor: pointer;
	font-size: 0.95em;
}

.tfe-row-delete:hover {
	background: var(--tfe-danger);
	border-color: var(--tfe-danger);
	color: #fff;
}

.tfe-edit-toolbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.6em;
	margin-top: 0.75em;
}

.tfe-edit-actions {
	display: flex;
	gap: 0.5em;
}

.tfe-btn-spinner {
	display: none;
	width: 0.9em;
	height: 0.9em;
	border: 2px solid rgba(255, 255, 255, 0.6);
	border-top-color: #fff;
	border-radius: 50%;
	animation: tfe-spin 0.7s linear infinite;
}

.tfe-btn.is-loading .tfe-btn-spinner {
	display: inline-block;
}

.tfe-btn.is-loading .tfe-btn-label {
	opacity: 0.8;
}

@keyframes tfe-spin {
	to {
		transform: rotate(360deg);
	}
}

/* Statusmeldung */
.tfe-message {
	margin-top: 0.6em;
	padding: 0.6em 0.9em;
	border-radius: 6px;
	font-size: 0.92em;
}

.tfe-message.is-success {
	background: var(--tfe-success-bg);
	color: var(--tfe-success-text);
}

.tfe-message.is-error {
	background: var(--tfe-error-bg);
	color: var(--tfe-error-text);
}

.tfe-message[hidden] {
	display: none !important;
}

.tfe-view[hidden],
.tfe-edit-wrap[hidden] {
	display: none !important;
}

@media (max-width: 640px) {
	.tfe-table td,
	.tfe-edit-table td {
		padding: 0.45em 0.5em;
		font-size: 0.95em;
	}

	.tfe-edit-toolbar {
		flex-direction: column;
		align-items: stretch;
	}

	.tfe-edit-actions {
		justify-content: stretch;
	}

	.tfe-edit-actions .tfe-btn {
		flex: 1;
		justify-content: center;
	}
}
