/* =============================================================================
   BOSL Investor Profiler — Stylesheet
   Futuregram Studio Limited v1.1.0
   ============================================================================= */

:root {
	--bosl-ip-navy:    #243069;
	--bosl-ip-indigo:  #37499D;
	--bosl-ip-blue:    #5A6DC5;
	--bosl-ip-green:   #3DB54B;
	--bosl-ip-teal:    #435A5E;
	--bosl-ip-white:   #ffffff;
	--bosl-ip-bg:      #f5f7fc;
	--bosl-ip-border:  #dde2f0;
	--bosl-ip-muted:   #6b7a99;
	--bosl-ip-font:    Helvetica, Arial, sans-serif;
}

/* ── Wrap ── */
.bosl-ip-wrap {
	font-family: var(--bosl-ip-font);
	color: var(--bosl-ip-navy);
	box-sizing: border-box;
	margin: 0 auto;
}

/* ── Progress bar ── */
.bosl-ip-progress-wrap {
	margin-bottom: 32px;
}

.bosl-ip-progress-label {
	display: flex;
	justify-content: space-between;
	font-size: 15px;
	color: var(--bosl-ip-muted);
	margin-bottom: 8px;
}

.bosl-ip-progress-label strong {
	color: var(--bosl-ip-navy);
}

.bosl-ip-progress-track {
	width: 100%;
	height: 6px;
	background: var(--bosl-ip-border);
	border-radius: 3px;
	overflow: hidden;
}

.bosl-ip-progress-fill {
	height: 100%;
	background: var(--bosl-ip-indigo);
	border-radius: 3px;
	transition: width 0.4s ease;
}

/* ── Question screen ── */
.bosl-ip-question {
	display: none;
	animation: bosl-ip-fadein 0.3s ease;
}

.bosl-ip-question.is-active {
	display: block;
}

@keyframes bosl-ip-fadein {
	from { opacity: 0; transform: translateY(8px); }
	to   { opacity: 1; transform: translateY(0); }
}

.bosl-ip-q-text {
	font-size: 18px;
	font-weight: 700;
	color: var(--bosl-ip-navy);
	line-height: 1.4;
	margin-bottom: 24px;
}

/* ── Radio options ── */
.bosl-ip-options {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 28px;
}

.bosl-ip-option {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 14px 18px;
	border: 1.5px solid var(--bosl-ip-border);
	background: var(--bosl-ip-white);
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease;
	position: relative;
}

.bosl-ip-option:hover {
	border-color: var(--bosl-ip-blue);
	background: var(--bosl-ip-bg);
}

.bosl-ip-option.is-selected {
	border-color: var(--bosl-ip-indigo);
	background: #eef1f9;
}

.bosl-ip-option input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.bosl-ip-option-radio {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	border: 2px solid var(--bosl-ip-border);
	flex-shrink: 0;
	margin-top: 1px;
	transition: border-color 0.15s ease;
	position: relative;
}

.bosl-ip-option.is-selected .bosl-ip-option-radio {
	border-color: var(--bosl-ip-indigo);
}

.bosl-ip-option.is-selected .bosl-ip-option-radio::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--bosl-ip-indigo);
}

.bosl-ip-option-text {
	font-size: 15px;
	color: var(--bosl-ip-navy);
	line-height: 1.5;
}

/* ── Plan table (Q8) ── */
.bosl-ip-plan-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 28px;
}

.bosl-ip-plan-table thead th {
	background: var(--bosl-ip-indigo);
	color: var(--bosl-ip-white);
	font-size: 15px;
	font-weight: 700;
	padding: 11px 16px;
	text-align: left;
}

.bosl-ip-plan-table tbody tr {
	border-bottom: 1px solid var(--bosl-ip-border);
	cursor: pointer;
	transition: background 0.15s ease;
}

.bosl-ip-plan-table tbody tr:hover {
	background: var(--bosl-ip-bg);
}

.bosl-ip-plan-table tbody tr.is-selected {
	background: #eef1f9;
	outline: 2px solid var(--bosl-ip-indigo);
	outline-offset: -2px;
}

.bosl-ip-plan-table tbody td {
	padding: 12px 16px;
	font-size: 15px;
	color: var(--bosl-ip-navy);
}

.bosl-ip-plan-table tbody td:first-child {
	width: 48px;
}

.bosl-ip-plan-radio {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	border: 2px solid var(--bosl-ip-white);
	background: transparent;
	display: inline-block;
	position: relative;
	vertical-align: middle;
	flex-shrink: 0;
}

tr.is-selected .bosl-ip-plan-radio {
	border-color: var(--bosl-ip-white);
}

tr.is-selected .bosl-ip-plan-radio::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--bosl-ip-white);
}

.bosl-ip-plan-table .plan-label {
	font-weight: 700;
	color: var(--bosl-ip-indigo);
}

/* ── Navigation buttons ── */
.bosl-ip-nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 8px;
}

.bosl-ip-btn {
	font-family: var(--bosl-ip-font);
	font-size: 15px;
	font-weight: normal;
	padding: 12px 32px;
	border: none;
	border-radius: 0;
	cursor: pointer;
	transition: background 0.2s ease;
}

.bosl-ip-btn-prev {
	background: transparent;
	color: var(--bosl-ip-muted);
	border: 1.5px solid var(--bosl-ip-border);
}

.bosl-ip-btn-prev:hover {
	border-color: var(--bosl-ip-indigo);
	color: var(--bosl-ip-indigo);
}

.bosl-ip-btn-next {
	background: var(--bosl-ip-indigo);
	color: var(--bosl-ip-white);
}

.bosl-ip-btn-next:hover {
	background: var(--bosl-ip-navy);
}

.bosl-ip-btn-next:disabled {
	background: var(--bosl-ip-border);
	color: var(--bosl-ip-muted);
	cursor: not-allowed;
}

.bosl-ip-btn-submit {
	background: var(--bosl-ip-green);
	color: var(--bosl-ip-white);
}

.bosl-ip-btn-submit:hover {
	background: #2ea040;
}

.bosl-ip-btn-submit:disabled {
	background: var(--bosl-ip-border);
	color: var(--bosl-ip-muted);
	cursor: not-allowed;
}

/* ── Validation error ── */
.bosl-ip-error {
	font-size: 14px;
	color: #c0392b;
	margin-top: 8px;
	display: none;
}

.bosl-ip-error.is-visible {
	display: block;
}

/* ── Responsive ── */
@media ( max-width: 600px ) {
	.bosl-ip-q-text {
		font-size: 16px;
	}

	.bosl-ip-plan-table thead th,
	.bosl-ip-plan-table tbody td {
		padding: 9px 10px;
		font-size: 14px;
	}

	.bosl-ip-btn {
		padding: 11px 20px;
		font-size: 14px;
	}
}

/* =============================================================================
   Phase 3 — Results screen
   ============================================================================= */

/* ── Results wrap ── */
.bosl-ip-results {
	animation: bosl-ip-fadein 0.4s ease;
}

/* ── Score hero ── */
.bosl-ip-score-hero {
	text-align: center;
	padding: 36px 24px 28px;
	background: var(--bosl-ip-indigo);
	color: var(--bosl-ip-white);
	margin-bottom: 32px;
}

.bosl-ip-score-hero .score-label {
	font-size: 15px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.75);
	margin-bottom: 8px;
}

.bosl-ip-score-hero .score-number {
	font-size: 56px;
	font-weight: 800;
	line-height: 1;
	color: var(--bosl-ip-white);
	margin-bottom: 12px;
}

.bosl-ip-score-hero .profile-name {
	font-size: 22px;
	font-weight: 700;
	color: var(--bosl-ip-white);
	margin-bottom: 6px;
}

.bosl-ip-score-hero .fund-name {
	font-size: 15px;
	color: rgba(255,255,255,0.8);
}

/* ── Summary sentence ── */
.bosl-ip-result-summary {
	font-size: 16px;
	color: var(--bosl-ip-teal);
	line-height: 1.65;
	margin-bottom: 32px;
	padding-bottom: 28px;
	padding-left: 10%;
	padding-right: 10%;
	border-bottom: 1px solid var(--bosl-ip-border);
	text-align: center;
}

.bosl-ip-result-summary strong {
	color: var(--bosl-ip-navy);
}

.bosl-ip-result-summary a strong,
.bosl-ip-result-summary a {
	color: var(--bosl-ip-green);
	text-decoration: underline;
}

.bosl-ip-result-summary strong a:hover,
.bosl-ip-result-summary a:hover {
	color: #2ea040;
}

/* ── Chart section ── */
.bosl-ip-chart-section {
	margin-bottom: 32px;
	text-align: center;
}

.bosl-ip-chart-title {
	font-size: 16px;
	font-weight: 700;
	color: var(--bosl-ip-navy);
	margin-bottom: 24px;
	text-align: center;
}

.bosl-ip-chart-layout {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
}

.bosl-ip-chart-canvas-wrap {
	width: 300px;
	height: 300px;
	flex-shrink: 0;
}

.bosl-ip-chart-legend {
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-items: flex-start;
	min-width: 200px;
}

.bosl-ip-chart-legend-item {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 15px;
	color: var(--bosl-ip-navy);
}

.bosl-ip-chart-legend-swatch {
	width: 14px;
	height: 14px;
	border-radius: 2px;
	flex-shrink: 0;
}

.bosl-ip-chart-legend-pct {
	font-weight: 700;
	margin-left: 6px;
	color: var(--bosl-ip-indigo);
}

/* ── Indemnity section ── */
.bosl-ip-indemnity {
	background: var(--bosl-ip-bg);
	border: 1.5px solid var(--bosl-ip-border);
	padding: 20px 24px;
	margin-bottom: 28px;
}

.bosl-ip-indemnity-text {
	font-size: 15px;
	color: var(--bosl-ip-teal);
	line-height: 1.6;
	margin-bottom: 14px;
}

.bosl-ip-indemnity-check {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	cursor: pointer;
}

.bosl-ip-indemnity-check input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin-top: 2px;
	flex-shrink: 0;
	accent-color: var(--bosl-ip-indigo);
	cursor: pointer;
}

.bosl-ip-indemnity-check span {
	font-size: 15px;
	color: var(--bosl-ip-navy);
	line-height: 1.5;
}

/* ── Lead capture ── */
.bosl-ip-lead {
	border-top: 1px solid var(--bosl-ip-border);
	padding-top: 28px;
	margin-bottom: 28px;
}

.bosl-ip-lead-title {
	font-size: 16px;
	font-weight: 700;
	color: var(--bosl-ip-navy);
	margin-bottom: 16px;
}

.bosl-ip-lead-fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin-bottom: 14px;
}

.bosl-ip-lead-field {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.bosl-ip-lead-label {
	font-size: 14px;
	font-weight: 600;
	color: var(--bosl-ip-navy);
}

.bosl-ip-lead-input {
	font-family: var(--bosl-ip-font);
	font-size: 15px;
	color: var(--bosl-ip-navy);
	border: 1.5px solid var(--bosl-ip-border);
	border-radius: 0;
	padding: 8px 12px;
	outline: none;
	width: 100%;
	box-sizing: border-box;
}

.bosl-ip-lead-input:focus {
	border-color: var(--bosl-ip-blue);
}

.bosl-ip-lead-followup {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 15px;
	color: var(--bosl-ip-navy);
	margin-bottom: 16px;
	cursor: pointer;
}

.bosl-ip-lead-followup input[type="checkbox"] {
	width: 18px;
	height: 18px;
	accent-color: var(--bosl-ip-indigo);
	cursor: pointer;
	flex-shrink: 0;
}

.bosl-ip-lead-submit {
	font-family: var(--bosl-ip-font);
	font-size: 15px;
	font-weight: normal;
	color: var(--bosl-ip-white);
	background: var(--bosl-ip-indigo);
	border: none;
	border-radius: 0;
	padding: 12px 28px;
	cursor: pointer;
	transition: background 0.2s ease;
}

.bosl-ip-lead-submit:hover { background: var(--bosl-ip-navy); }

.bosl-ip-lead-msg {
	font-size: 14px;
	margin-top: 10px;
	display: none;
}

.bosl-ip-lead-msg.is-success { color: #2ea040; display: block; }
.bosl-ip-lead-msg.is-error   { color: #c0392b; display: block; }

/* ── CTA button ── */
.bosl-ip-cta-wrap {
	margin-bottom: 28px;
}

.bosl-ip-result-cta {
	display: inline-block;
	font-family: var(--bosl-ip-font);
	font-size: 15px;
	font-weight: normal;
	color: var(--bosl-ip-white) !important;
	background: var(--bosl-ip-green);
	border: none;
	border-radius: 0;
	padding: 14px 32px;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.2s ease;
}

.bosl-ip-result-cta:hover {
	background: #2ea040;
	color: var(--bosl-ip-white) !important;
	text-decoration: none;
}

/* ── Print action ── */
.bosl-ip-print-wrap {
	margin-bottom: 28px;
}

.bosl-ip-print-btn {
	font-family: var(--bosl-ip-font);
	font-size: 15px;
	font-weight: normal;
	color: var(--bosl-ip-indigo);
	background: transparent;
	border: 1.5px solid var(--bosl-ip-indigo);
	border-radius: 0;
	padding: 10px 24px;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

.bosl-ip-print-btn:hover {
	background: var(--bosl-ip-indigo);
	color: var(--bosl-ip-white);
}

/* ── Disclaimer ── */
.bosl-ip-result-disclaimer {
	border-top: 1px solid var(--bosl-ip-border);
	padding-top: 20px;
	font-size: 14px;
	color: var(--bosl-ip-muted);
	line-height: 1.65;
}

.bosl-ip-result-disclaimer strong {
	display: block;
	color: var(--bosl-ip-teal);
	margin-bottom: 6px;
	font-size: 14px;
}

/* ── Retake button ── */
.bosl-ip-retake {
	font-family: var(--bosl-ip-font);
	font-size: 14px;
	color: var(--bosl-ip-muted);
	background: transparent;
	border: none;
	padding: 0;
	cursor: pointer;
	text-decoration: underline;
	margin-top: 16px;
	display: inline-block;
}

.bosl-ip-retake:hover { color: var(--bosl-ip-navy); }

/* ── Print styles ── */
@media print {
	.bosl-ip-lead,
	.bosl-ip-cta-wrap,
	.bosl-ip-print-wrap,
	.bosl-ip-retake,
	.bosl-ip-btn { display: none !important; }

	.bosl-ip-score-hero { background: #37499D !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
	.bosl-ip-indemnity  { border: 1px solid #dde2f0 !important; }
}

/* ── Responsive ── */
@media ( max-width: 600px ) {
	.bosl-ip-chart-canvas-wrap { width: 220px; height: 220px; }
	.bosl-ip-lead-fields { grid-template-columns: 1fr; }
	.bosl-ip-score-hero .score-number { font-size: 44px; }
}
