/**
 * CareDesk Frontend Hybrid Styles
 * - Layout + component styling powered by CSS variables
 * - Theme builders can override the following vars on .caredesk-frontend:
 *   --cd-accent, --cd-border, --cd-surface, --cd-text, --cd-text-muted, --cd-radius-control
 * - Fonts are inherited from the active theme (no font-family is forced here);
 *   font sizes scale with the theme too (relative tokens in core.css)
 */

.caredesk-frontend {
	color: var(--cd-text);
}

.caredesk-frontend .caredesk-request {
	background: var(--cd-surface);
	border: 1px solid var(--cd-border);
	border-radius: var(--cd-radius-card);
	padding: var(--cd-space-9);
	box-shadow: var(--cd-shadow-sm);
}

.caredesk-frontend fieldset {
	background: var(--cd-surface); /* Rueckfall fuer Browser ohne color-mix() */
	background: color-mix(in srgb, var(--cd-surface) 80%, transparent);
	border: 1px solid var(--cd-border);
	border-radius: var(--cd-radius-card);
}

.caredesk-frontend legend {
	font-size: var(--cd-font-size-h5);
	font-weight: var(--cd-font-weight-medium);
	line-height: var(--cd-line-height-h5);
	color: var(--cd-text);
}

.caredesk-frontend label {
	color: var(--cd-text);
	font-size: var(--cd-font-size-caption);
	line-height: var(--cd-line-height-caption);
}

.caredesk-frontend input,
.caredesk-frontend select,
.caredesk-frontend textarea {
	border: 1px solid var(--cd-border-field);
	border-radius: var(--cd-radius-control);
	background-color: var(--cd-surface);
	font-size: var(--cd-font-size-body);
	line-height: var(--cd-line-height-body);
	box-shadow: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.caredesk-frontend input:hover,
.caredesk-frontend select:hover,
.caredesk-frontend textarea:hover {
	border-color: var(--cd-color-primary-200);
	box-shadow: none;
}

.caredesk-frontend input:focus,
.caredesk-frontend select:focus,
.caredesk-frontend textarea:focus {
	border-color: var(--cd-accent);
	box-shadow: 0 0 0 3px var(--cd-focus-ring);
	outline: none;
}

.caredesk-frontend select {
	appearance: none;
	color: var(--cd-text);
	background-image: var(--cd-select-arrow);
	background-repeat: no-repeat;
	background-position: right var(--cd-space-4) center;
	padding-right: var(--cd-space-10);
}

.caredesk-frontend button[type="submit"] {
	border: none;
	border-radius: var(--cd-radius-control);
	padding: var(--cd-space-4) var(--cd-space-7);
	font-size: var(--cd-font-size-body);
	font-weight: var(--cd-font-weight-medium);
	line-height: var(--cd-line-height-body);
	background: var(--cd-accent-strong);
	color: var(--cd-text-on-accent);
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
	box-shadow: none;
}

/* Ein gesperrter Knopf reagiert nicht auf den Mauszeiger. */
.caredesk-frontend button[type="submit"]:hover:not(:disabled) {
	background: var(--cd-accent-strong-hover);
	transform: translateY(-1px);
	box-shadow: var(--cd-shadow-primary-sm);
}

.caredesk-frontend button[type="submit"]:active {
	transform: translateY(0);
	box-shadow: none;
}

.caredesk-frontend .caredesk-request__error,
.caredesk-frontend .caredesk-request__success {
	box-shadow: var(--cd-shadow-xs);
	border-radius: var(--cd-radius-control);
}

.caredesk-frontend .caredesk-request__error {
	background: var(--cd-danger-soft);
	border-left-color: var(--cd-danger);
}

.caredesk-frontend .caredesk-request__success {
	background: var(--cd-success-soft);
	border-left-color: var(--cd-success);
}

.caredesk-frontend .caredesk-egk-blocker {
	background: var(--cd-warning-soft);
	border: 1px solid rgba(255, 159, 67, 0.4); /* Rueckfall fuer Browser ohne color-mix() */
	border: 1px solid color-mix(in srgb, var(--cd-warning) 40%, transparent);
	border-left-width: 5px;
}

.caredesk-frontend .caredesk-consent-label {
	display: flex;
	align-items: flex-start;
	gap: var(--cd-space-3);
}

.caredesk-frontend .caredesk-consent-label input[type="checkbox"] {
	flex: 0 0 auto;
	margin-top: var(--cd-space-1);
}

.caredesk-frontend .caredesk-consent-label span {
	flex: 1 1 auto;
}

.caredesk-frontend .caredesk-consent-privacy,
.caredesk-frontend .caredesk-consent-note {
	color: var(--cd-text-muted);
}

.caredesk-frontend .caredesk-medication-entry,
.caredesk-frontend .caredesk-referral-entry,
.caredesk-frontend .caredesk-document-entry {
	background: var(--cd-surface); /* Rueckfall fuer Browser ohne color-mix() */
	background: color-mix(in srgb, var(--cd-surface) 85%, transparent);
	border: 1px solid var(--cd-border);
	border-radius: var(--cd-radius-card);
	box-shadow: none;
}

.caredesk-frontend .caredesk-medication-entry:hover,
.caredesk-frontend .caredesk-referral-entry:hover,
.caredesk-frontend .caredesk-document-entry:hover {
	border-color: var(--cd-color-primary-200);
	box-shadow: var(--cd-shadow-sm);
}

.caredesk-frontend .caredesk-button-secondary {
	border-radius: var(--cd-radius-control);
	border: 1px solid var(--cd-border);
	background: var(--cd-surface);
	color: var(--cd-text);
	font-weight: var(--cd-font-weight-medium);
	transition: border-color 0.2s ease, color 0.2s ease;
}

.caredesk-frontend .caredesk-button-secondary:hover {
	border-color: var(--cd-accent);
	color: var(--cd-accent);
}

.caredesk-frontend .caredesk-button-danger {
	border-radius: var(--cd-radius-control);
	border: none;
	background: var(--cd-danger);
	box-shadow: none;
}

.caredesk-frontend .caredesk-button-danger:hover {
	background: var(--cd-color-error-500);
	filter: brightness(0.88);
}

.caredesk-frontend .caredesk-success-modal {
	border-radius: var(--cd-radius-card);
	background: var(--cd-surface);
	border: 1px solid var(--cd-border);
	box-shadow: var(--cd-shadow-sm);
}

.caredesk-frontend .caredesk-reference-id {
	border-left: 4px solid var(--cd-accent);
	background: var(--cd-accent-soft);
}

.caredesk-frontend .caredesk-character-counter {
	color: var(--cd-text-muted);
	font-size: var(--cd-font-size-caption);
}

.caredesk-frontend .caredesk-character-counter--warning {
	color: var(--cd-warning-text);
}

.caredesk-frontend .caredesk-character-counter--limit {
	color: var(--cd-danger-text);
}

.caredesk-frontend .caredesk-request .has-error label {
	color: var(--cd-danger-text);
}

.caredesk-frontend .caredesk-request .error-message {
	display: flex;
	align-items: center;
	gap: var(--cd-space-2);
}

.caredesk-frontend .caredesk-public-status {
	max-width: var(--cd-container-max);
}

.caredesk-frontend .caredesk-public-status fieldset {
	background: var(--cd-surface); /* Rueckfall fuer Browser ohne color-mix() */
	background: linear-gradient(
		180deg,
		color-mix(in srgb, var(--cd-surface) 88%, transparent) 0%,
		color-mix(in srgb, var(--cd-surface) 76%, transparent) 100%
	);
}

.caredesk-frontend .caredesk-public-status__button-wrap button[type="submit"] {
	min-width: 240px;
}

.caredesk-frontend .caredesk-public-status__result {
	border-color: var(--cd-border);
	box-shadow: var(--cd-shadow-sm);
}

.caredesk-frontend .caredesk-public-status__eyebrow {
	color: var(--cd-text-muted);
	font-size: var(--cd-font-size-overline);
	line-height: var(--cd-line-height-overline);
	text-transform: uppercase;
	letter-spacing: 0.8px;
}

.caredesk-frontend .caredesk-public-status__result--success {
	background: var(--cd-surface); /* Rueckfall fuer Browser ohne color-mix() */
	background: color-mix(in srgb, var(--cd-surface) 92%, transparent);
}

.caredesk-frontend .caredesk-public-status__result--error {
	background: var(--cd-danger-soft);
}

.caredesk-frontend .caredesk-public-status__badge {
	background: var(--cd-accent-soft);
	color: var(--cd-accent);
	font-size: var(--cd-font-size-caption);
	font-weight: var(--cd-font-weight-medium);
	border-radius: var(--cd-radius-pill);
}

.caredesk-frontend .caredesk-public-status__badge--in_progress {
	background: var(--cd-accent-soft);
	color: var(--cd-accent);
}

.caredesk-frontend .caredesk-public-status__badge--processed {
	background: var(--cd-success-soft);
	color: var(--cd-success-text);
}

.caredesk-frontend .caredesk-public-status__badge--partially_processed {
	background: var(--cd-warning-soft);
	color: var(--cd-warning-text);
}

.caredesk-frontend .caredesk-public-status__badge--rejected {
	background: var(--cd-danger-soft);
	color: var(--cd-danger-text);
}

.caredesk-frontend .caredesk-public-status__hint {
	color: var(--cd-text-muted);
}

@media (max-width: 720px) {
	.caredesk-frontend .caredesk-request {
		padding: var(--cd-space-6);
	}

	.caredesk-frontend fieldset {
		padding: var(--cd-space-5);
	}

	.caredesk-frontend button[type="submit"] {
		width: 100%;
	}
}

.caredesk-frontend .caredesk-request span[aria-label*="Pflichtfeld"] {
	color: var(--cd-danger-text);
	font-weight: var(--cd-font-weight-bold);
	margin-left: 2px;
}

@media (prefers-reduced-motion: reduce) {
	.caredesk-frontend * {
		transition: none !important;
		animation: none !important;
	}

	.caredesk-frontend button[type="submit"] {
		transform: none !important;
	}
}

.caredesk-frontend .caredesk-closure-notice {
	border-left: 4px solid var(--cd-warning);
	background: var(--cd-warning-soft);
	font-size: var(--cd-font-size-caption);
}
