.jpsc-field-error {
	display: none;
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--destructive);
}

.jpsc-field-error.is-visible {
	display: block;
}

.jpsc-consultation-field.is-invalid input,
.jpsc-consultation-field.is-invalid select,
.jpsc-consultation-field.is-invalid textarea {
	border-color: color-mix(in oklab, var(--destructive) 40%, transparent);
	box-shadow: 0 0 0 4px color-mix(in oklab, var(--destructive) 20%, transparent);
}

.jpsc-toast-container {
	position: fixed;
	right: 1rem;
	bottom: 1rem;
	z-index: 9999;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	max-width: min(24rem, calc(100vw - 2rem));
	pointer-events: none;
}

.jpsc-toast {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	padding: 0.875rem 1rem;
	border-radius: 0.875rem;
	border: 1px solid var(--border);
	background: var(--card);
	color: var(--foreground);
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.12);
	opacity: 0;
	transform: translateY(0.75rem);
	transition: opacity 0.2s ease, transform 0.2s ease;
	pointer-events: auto;
}

.jpsc-toast.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.jpsc-toast--success {
	border-color: color-mix(in oklab, var(--primary) 20%, transparent);
	background: color-mix(in oklab, var(--primary) 5%, var(--card));
}

.jpsc-toast--error {
	border-color: color-mix(in oklab, var(--destructive) 20%, transparent);
	background: color-mix(in oklab, var(--destructive) 5%, var(--card));
}

.jpsc-toast__message {
	flex: 1;
	font-size: 0.875rem;
	line-height: 1.5;
}

.jpsc-toast__close {
	flex-shrink: 0;
	border: 0;
	background: transparent;
	color: var(--muted-foreground);
	font-size: 1.125rem;
	line-height: 1;
	cursor: pointer;
	padding: 0;
}

.jpsc-consultation-form.is-submitting {
	opacity: 0.75;
	pointer-events: none;
}
