/* Import Dashboard Styles */
@import url("assets/css/dashboard.css");

:root {
	/* Chart Colors from Mockup */
	--color-awareness: #6A1B9A; /* Purple */
	--color-receptiveness: #FF9800; /* Orange */
	--color-capacity: #4DB6AC; /* Teal */
	--color-readiness: #FFCC80; /* Light Orange */
	--color-benchmark: #000000; /* Black */

	/* Score Rating Colors */
	--color-high: #4CAF50; /* Green */
	--color-medium: #FFC107; /* Amber */
	--color-low: #F44336; /* Red */
}


#heartprint-form-wrapper {
	max-width: 100%;

	.page-background {
		margin-left: 0;
		margin-right: 0;
		max-width: 100%;
		width: 100%;
		background-color: #EFE9F4;
	}

	.banner {
		width: 100%;
		background-color: #FFFFFF;
		height: 60px;
		display: flex;
		align-items: center;

		img {
			height: 40px;
			margin-left: 150px;
		}
	}

	.progress-bar {
		width: 100%;
		height: 120px;
		background-color: #FFFFFF;
		box-shadow: 0 1px 7px 0 #00000040;
		margin-bottom: 40px;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.progress-bar .dot {
		width: 14px;
		height: 14px;
		border-radius: 50%;
		background: #ccc;
		margin: 0 6px;
	}

	.progress-bar .dot.big {
		width: 20px;
		height: 20px;
	}

	.progress-bar .dot.active {
		background: #717AB5; /* WordPress blue */
	}

	.form-container {
		display: flex;
		justify-content: space-between;
		flex-direction: row;
		max-width: 1200px;
		margin: 40px auto;
		padding: 20px;
		gap: 30px;
		align-items: center;
	}

	.form-container-left {
		flex: 1 1 50%;
		min-width: 300px;
		display: flex;
		flex-direction: column;
	}

	.form-container-right {
		flex: 1 1 50%;
		display: flex;
		align-items: center;
		justify-content: center;

		img {
			max-width: 100%;
			height: auto;
			display: block;
			border-radius: 12px;
		}
	}

	.form-container-right2 {
		display: flex;
		justify-content: center;
		align-items: center;
	}

	.form-container-right2 img {
		max-width: 100%;
		height: auto;
		display: block;
	}

	.form-group-step {
		margin-bottom: 3rem;

		label {
			display: block;
			line-height: 100%;
		}

		select:required:invalid {
			color: #9ca3af;
		}
	}

	.page-title {
		line-height: 100%;
		vertical-align: middle;
		color: #614077;
		margin-bottom: 1rem;

		h2 {
			text-align: left;
			color: inherit;
			font-weight: bold;
			margin-bottom: 1rem;
		}
	}

	.form-group {
		margin-bottom: 24px;
		margin-top: 15px;

		label {
			display: block;
			line-height: 100%;
		}

		select:required:invalid {
			color: #9ca3af;
		}
	}

	.required {
		color: red;
	}


	.intro-overlay {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0, 0, 0, 0.7);
		display: flex;
		align-items: center;
		justify-content: center;
		z-index: 9999;
	}

	.intro-box {
		background: #fff;
		padding: 40px;
		border-radius: 10px;
		max-width: 1000px;
		width: 90%;
		text-align: center;
		position: relative;
		box-sizing: border-box;
	}

	.intro-image-text-box {
		display: flex;
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		gap: 40px;
		padding: 20px;
	}

	.intro-text {
		flex: 1;
		text-align: left;
		font-size: 21px;
		line-height: 1.6;
		margin: 0;
		padding: 0;
		white-space: normal;
		text-justify: inter-word;
	}

	.intro-image {
		width: 300px;
		height: 300px;
		background: #eee;
		display: flex;
		align-items: center;
		justify-content: center;
		flex-shrink: 0;
	}

	.intro-button-wrapper {
		position: absolute;
		bottom: 20px;
		right: 20px;
		display: flex;
		gap: 15px;
	}

	.intro-button {
		width: 120px;
		height: 42px;
		background-color: #7A58AE;
		color: #FFFFFF;
		border: none;
		border-radius: 4px;
		font-weight: 600;
		cursor: pointer;
		transition: background-color 0.3s ease, box-shadow 0.3s ease;
		font-size: 18px;
	}

	.intro-button:hover {
		background-color: #926EBF;
		box-shadow: 0 4px 10px rgba(122, 88, 174, 0.4);
	}

	.intro-button:focus {
		box-shadow: 0 0 0 5px rgba(106, 27, 154, 0.5), /* Focus color, transparent */ 0 0 0 2px #fff; /* Inner white ring for contrast */

		border-color: #6A1B9A; /* Example focus color from your variables */
	}

	.intro-button[name="intro_back"] {
		background-color: transparent;
		color: #4A4A4A;
		border: 1px solid #CCCCCC;
		transition: background-color 0.3s ease, border-color 0.3s ease;
		font-size: 18px;
	}

	.intro-button[name="intro_back"]:hover {
		background-color: #F0F0F0;
		border-color: #A0A0A0;
	}

	@media (max-width: 800px) {
		.intro-box {
			padding: 30px;
			max-width: 95%;
		}

		.intro-image-text-box {
			gap: 20px;
			padding: 10px;
		}

		.intro-image {
			width: 200px;
			height: 200px;
		}
	}


	@media (max-width: 600px) {
		.intro-box {
			padding: 20px;
			max-height: 95vh;
			overflow-y: auto;
		}

		.intro-image-text-box {
			flex-direction: column;
			align-items: center;
			text-align: center;
			padding: 0;
		}

		.intro-text {
			text-align: center;
			margin-top: 15px;
		}

		.intro-image {
			width: 100%;
			max-width: 250px;
			height: auto;
		}

		.intro-button-wrapper {
			position: static;
			justify-content: center;
			margin-top: 30px;
			padding: 0;
			width: 100%;
			flex-direction: column;
			align-items: center;
		}

		.intro-button {
			width: 100%;
			max-width: 250px;
			margin-bottom: 10px;
		}
	}

	/*Styles for the css step radio groups */
	/* Base Styles */

	.radio-group-horizontal {
		display: flex;
		justify-content: space-between;
		align-items: stretch;
		gap: 20px;
		margin-top: 10px;
		width: 100%;
		max-width: 500px;
		margin-left: auto;
		margin-right: auto;
	}

	.radio-label {
		flex: 1;
		text-align: center;
		position: relative;
		cursor: pointer;
	}

	.radio-label input[type="radio"] {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		border: 0;
	}

	.radio-label span {
		display: inline-block;
		width: 100%;
		padding: 0.5rem 0;
		border: 2px solid #CFC4D8;
		border-radius: 6px;
		color: #614077;
		background-color: #FFFFFF;
		font-weight: 500;
		font-size: 1rem;
		transition: all 0.25s ease;
	}

	.radio-label:hover span,
	.radio-label:focus-within span {
		background-color: #F3EDF7;
		border-color: #BCA8D2;
	}

	/* Add a clear focus ring (shadow) for accessibility when navigating with the keyboard */

	.radio-label:focus-within span {
		/* Apply a focus ring separate from the hover effect */
		box-shadow: 0 0 0 3px #9D7BC4, 0 0 0 6px rgba(157, 123, 196, 0.4) !important; /* Example color based on your purple */
	}

	/* Re-apply the strong checked style, ensuring the focus shadow is visible there too */

	.radio-group-horizontal.user-overrode .radio-label input[type="radio"]:checked + span:focus-within {
		box-shadow: 0 0 5px rgba(96, 77, 109, 0.4), 0 0 0 3px #9D7BC4; /* Combine checked shadow and focus ring */
	}


	.radio-group-horizontal.user-overrode .radio-label input[type="radio"]:checked + span {
		background-color: #604D6D; /* Purple */
		color: #FFFFFF;
		border-color: #604D6D;
		box-shadow: 0 0 5px rgba(96, 77, 109, 0.4);
	}

	/* --- Prefill/AI-Suggested State (Default/Active State) --- */

	.radio-label.prefill span {
		border-color: #B7D9C2;
		background-color: #F5FBF7;
		color: #3D5746;
		position: relative;
	}

	.radio-label.prefill span::after {
		content: "KI";
		position: absolute;
		top: 4px;
		right: 6px;
		font-size: 0.65rem;
		background: #B7D9C2;
		color: #2F4F37;
		padding: 1px 4px;
		border-radius: 3px;
		font-weight: 600;
		opacity: 0.85;
	}

	/* --- Prefill + Override State (Default/Active State) --- */

	.radio-group-horizontal.user-overrode .radio-label.prefill input[type="radio"]:not(:checked) + span {
		background-color: #FFFFFF !important;
		border-color: #DDDDDD !important;
		color: #666666 !important;
		opacity: 0.8;
	}

	.radio-group-horizontal.user-overrode .radio-label.prefill input[type="radio"]:not(:checked) + span::after {
		background: #CCCCCC;
		color: #555555;
		opacity: 0.7;
	}


	.form-group label {
		display: block;
		width: 100%;
		box-sizing: border-box;
		padding-bottom: 0.25rem;
	}

	.form-group label h5 {
		white-space: normal;
		word-wrap: break-word;
		overflow-wrap: break-word;
		margin: 0 0 8px 0;
		padding: 0;
		line-height: 1.4;
	}

	.form-container-left {
		flex: 1;
		min-width: 300px;
	}

	.form-container-right {
		flex-shrink: 0;
		width: 40%;
		max-width: 450px;
		padding-top: 50px;
	}

	.form-container-right img {
		width: 100%;
		height: auto;
		display: block;
	}

	.form-group {
		margin-bottom: 20px;
		text-align: left;
	}

	.form-group input[type="text"],
	.form-group input[type="email"],
	.form-group input[type="tel"],
	.form-group select {
		width: 100%;
		padding: 0.6rem 1rem;
		border: 1px solid #ccc;
		border-radius: 4px;
		box-sizing: border-box;
		background-color: #FFFFFF;
		font-size: 14px;
	}

	.form-container-left input:focus,
	.form-container-left select:focus,
	.form-container-left button:focus {
		box-shadow: 0 0 0 3px rgba(106, 27, 154, 0.5), /* Focus color, transparent */ 0 0 0 2px #fff; /* Inner white ring for contrast */

		border-color: #6A1B9A; /* Example focus color from your variables */
	}

	.form-container-left button.next-button:focus {
		outline: none;
		box-shadow: 0 0 0 3px #6A1B9A, /* Primary Focus Ring */ 0 0 0 6px rgba(106, 27, 154, 0.4); /* Halo for visibility */
	}

	.form-group label h5 {
		margin: 0 0 8px 0;
	}

	.next-button {
		width: 100%;
		max-width: 300px;
		height: 42px;
		background-color: #604D6D;
		color: #FFFFFF;
		border: none;
		border-radius: 4px;
		font-weight: 600;
		cursor: pointer;
		padding: 12px 34px;
		font-size: 14px;
		line-height: 1;
		transition: background-color 0.3s ease, box-shadow 0.3s ease;
		margin-top: 10px;
		display: block;
	}


	.next-button:hover {
		background-color: #796883;
		box-shadow: 0 4px 10px rgba(96, 77, 109, 0.4);
		transform: none;
	}

	.back-button {
		width: 100%;
		max-width: 300px;
		height: 42px;
		background-color: transparent;
		color: #604D6D;
		border: 1.5px solid #604D6D;
		border-radius: 8px;
		font-weight: 600;
		cursor: pointer;
		padding: 12px 34px;
		font-size: 14px;
		line-height: 1;
		transition: all 0.3s ease;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		margin: 10px auto 0;
	}

	.back-button:hover {
		background-color: #F8F5FA;
		box-shadow: 0 3px 8px rgba(96, 77, 109, 0.15);
	}

	@media (max-width: 850px) {
		.form-container {
			flex-direction: column;
			gap: 20px;
			padding: 10px;
			min-height: 45px;
		}

		.form-container-left {
			width: 100%;
			order: 2;
		}

		.form-container-right {
			width: 100%;
			max-width: 100%;
			text-align: center;
			order: 1;
			padding-top: 0;
		}

		.form-container-right img {
			max-width: 300px;
			margin: 0 auto 20px auto;
		}

		.next-button {
			width: 100%;
			margin-left: auto;
			margin-right: auto;
		}

	}

	.data-review-wrapper {
		display: flex;
		align-items: center;
		justify-content: center;
		flex-wrap: wrap;
		gap: 2rem;
		padding-top: 2rem;
		padding-bottom: 4rem;
	}


	.data-review-image {
		flex: 1 1 300px;
		display: flex;
		justify-content: center;
	}

	.data-review-image img {
		max-width: 100%;
		height: auto;
		border-radius: 16px;
		object-fit: contain;
	}

	.data-review-container {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		text-align: left;
	}

	.data-review-head {
		font-weight: 700;
		color: #614077;
		font-size: 1.6rem;
		margin-bottom: 10px;
	}

	.data-review-list {
		list-style: none;
		margin: 0;
		display: flex;
		flex-direction: column;
		gap: 8px;
		background-color: white;
		border-radius: 12px;
		padding: 2rem 16rem 2rem 2rem;
	}

	.data-review-list li strong {
		color: #604D6D;
	}

	.button-wrapper {
		display: flex;
		justify-content: flex-start;
		gap: 30px;
		margin-top: 25px;
		width: 100%;
	}

	.next-button, .back-button {
		width: 100%;
		max-width: 300px;
		height: 42px;
		font-weight: 600;
		cursor: pointer;
		padding: 12px 34px;
		font-size: 14px;
		line-height: 1;
		border-radius: 4px;
		transition: all 0.3s ease;
		margin: 0;
	}

	.radio-group-horizontal {
		display: flex;
		justify-content: space-between;
		align-items: stretch;
		gap: 20px;
		margin-top: 10px;
		width: 100%;
		max-width: 500px;
		margin-left: auto;
		margin-right: auto;
		flex-wrap: nowrap;
	}

	@media (max-width: 850px) {

		.button-wrapper {
			flex-direction: column;
			gap: 15px;
			align-items: center;
			justify-content: center;
		}

		.back-button, .next-button {
			width: 100%;
			max-width: 400px;
			margin: 0;
		}

		.radio-group-horizontal {
			flex-wrap: wrap;
			max-width: none;
			justify-content: center;
		}

		.radio-label {
			flex: 1 1 calc(33.33% - 14px);
			min-width: 90px;
		}
	}

	.gif-container {
		text-align: center;
		background-color: #FFFFFF;
		padding: 4rem;
		border-radius: 12px;

	}

	.gif-circle {
		width: 300px;
		height: 300px;
		border-radius: 50%;
		overflow: hidden;
		margin: 0 auto;
		background: linear-gradient(
			140deg,
			#FFE8A3 0%,
			#FFD28A 35%,
			#FFBC92 70%,
			#FFA88E 100%
		);
	}

	#review-gif {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center;
	}

	#loading-text {
		margin-top: 10px;
		font-size: 1em;
		color: #555;
		transition: opacity 0.6s ease;
		font-style: normal;
		font-weight: 500;
		border-radius: 5px;
	}

	#success-message {
		align-items: center;
		justify-content: center;
		gap: 8px;
		margin-top: 10px;
		font-size: 1em;
		color: #2e7d32;
		opacity: 0;
		transform: scale(0.95);
		transition: all 0.5s ease;
		font-weight: 600;
		border-radius: 5px;
	}

	#success-message.visible {
		opacity: 1;
		transform: scale(1);
	}

	.checkmark {
		font-size: 1.4em;
		color: #2ecc71;
		animation: pop 0.4s ease;
	}

	@keyframes pop {
		0% {
			transform: scale(0);
			opacity: 0;
		}
		70% {
			transform: scale(1.3);
			opacity: 1;
		}
		100% {
			transform: scale(1);
		}
	}

	.next-button:disabled {
		opacity: 0.5 !important;
		cursor: not-allowed !important;
	}

	.review-header {
		font-weight: bold;
	}

	@media screen and (max-width: 768px) {
		.review-header {
			font-size: 1.4rem;
		}

		.form-container {
			margin-top: 10px;
		}

		.data-review-container {
			order: 2;
		}

		.form-container-right2 {
			order: 1;
			width: 100%;
			height: auto;
		}

		.data-review-list li {
			font-size: 0.9em;
		}

		.button-wrapper {
			flex-direction: column;
		}
	}

	.ai-hint {
		display: flex;
		align-items: center;
		gap: 6px;
		font-size: 0.9rem;
		color: #6a6a6a;
		margin: 4px 0 14px;
		opacity: 0.85;
	}

	.ai-pill {
		font-size: 0.8rem;
		background: #B7D9C2;
		color: #2F4F37;
		padding: 1px 4px;
		border-radius: 3px;
		font-weight: 600;
		opacity: 0.85;
		line-height: 1;
	}
}

/* Additional styling for the dashboard elements */
.heartprint-dashboard {
	/* Overrides the default form-container grid for the dashboard view */
	max-width: 1200px;
	margin: 0 auto;
	padding: 20px;
}

.dashboard-grid {
	/* Ensure the grid is responsive */
	grid-template-columns: 1fr 350px; /* Adjusted for better content balance */
}

.overall-chart-grid {
	/* Adjust grid for the overall tab content */
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

.overall-chart-grid .chart-container {
	grid-column: 1 / 3; /* Main chart spans both columns */
}

.overview-text {
	grid-column: 1 / 2;
}

.area-representation {
	grid-column: 2 / 3;
}

.area-representation p {
	margin-bottom: 10px;
	font-size: 0.9em;
}

.area-representation strong {
	display: block;
	margin-bottom: 2px;
}

.category-score-grid {
	grid-template-columns: 250px 1fr; /* Pie chart fixed width, score summary flexible */
	align-items: center;
}

.score-summary {
	padding-left: 20px;
}

.score-summary p {
	font-size: 1.1em;
	line-height: 1.4;
	margin-bottom: 15px;
}

.rating-badge.rating-high {
	background-color: var(--color-high);
}

.rating-badge.rating-medium {
	background-color: var(--color-medium);
}

.rating-badge.rating-low {
	background-color: var(--color-low);
}

.contact-section {
	text-align: center;
	padding: 40px 0;
	margin-top: 40px;
	background-color: #fff;
	border-radius: 8px;
}

.contact-section h2 {
	color: #614077;
	font-size: 2em;
	margin-bottom: 10px;
}

.book-appointment-button {
	background-color: #614077;
	color: white;
	padding: 12px 25px;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-size: 1em;
	margin-top: 15px;
}

/* Pie Chart Legend Styling */
.legend-container {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	margin-top: 15px;
	font-size: 0.9em;
}

.legend-item {
	display: flex;
	align-items: center;
	margin: 0 10px;
}

.legend-color {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	margin-right: 5px;
}
