/**
 * Invoice Factoring Calculator — module styles.
 *
 * Inherits the shared design tokens (--bf-primary, --bf-accent, --bf-ink,
 * --bf-muted, --bf-border, --bf-bg-soft, --bf-radius, --bf-shadow) defined in
 * assets/css/frontend.css. Everything below is scoped to .bizfin-factoring so it
 * can never leak into the host theme. Mobile-first; a two-column grid unlocks at
 * ≥720px. A print block renders a clean, ink-friendly summary.
 */

.bizfin-factoring {
	--bf-adv: var(--bf-primary, #4f46e5);
	--bf-reb: var(--bf-accent, #0ea5e9);
	--bf-fee: #f43f5e;
	color: var(--bf-ink, #0f172a);
	font-size: 16px;
	line-height: 1.55;
}

.bizfin-factoring *,
.bizfin-factoring *::before,
.bizfin-factoring *::after {
	box-sizing: border-box;
}

.bizfin-factoring__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}

@media (min-width: 720px) {
	.bizfin-factoring__layout {
		grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
		align-items: start;
	}
}

/* ------------------------------------------------------------------ form */

.bizfin-factoring__form {
	margin: 0;
}

.bizfin-factoring__group {
	border: 1px solid var(--bf-border, #e5e7eb);
	border-radius: var(--bf-radius, 16px);
	background: #fff;
	padding: 22px;
	margin: 0;
	min-width: 0;
}

.bizfin-factoring__group legend {
	font-weight: 800;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--bf-muted, #64748b);
	padding: 0 8px;
	margin-left: -8px;
}

.bizfin-factoring__field {
	margin-top: 18px;
}
.bizfin-factoring__field:first-of-type {
	margin-top: 6px;
}

.bizfin-factoring__label {
	display: block;
	font-weight: 700;
	font-size: 14px;
	margin-bottom: 8px;
	color: var(--bf-ink, #0f172a);
}

/* Number inputs with a leading currency symbol or trailing unit. */
.bizfin-factoring__money,
.bizfin-factoring__suffix {
	display: flex;
	align-items: center;
	border: 1px solid var(--bf-border, #e5e7eb);
	border-radius: 12px;
	background: var(--bf-bg-soft, #f8fafc);
	overflow: hidden;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.bizfin-factoring__money:focus-within,
.bizfin-factoring__suffix:focus-within {
	border-color: var(--bf-primary, #4f46e5);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--bf-primary, #4f46e5) 18%, transparent);
	background: #fff;
}

.bizfin-factoring__sym,
.bizfin-factoring__unit {
	flex: 0 0 auto;
	padding: 0 12px;
	font-weight: 700;
	color: var(--bf-muted, #64748b);
	font-size: 15px;
}

.bizfin-factoring__money input,
.bizfin-factoring__suffix input {
	flex: 1 1 auto;
	width: 100%;
	min-width: 0;
	border: 0;
	background: transparent;
	padding: 12px 14px;
	font: inherit;
	font-weight: 700;
	font-size: 17px;
	color: var(--bf-ink, #0f172a);
	-moz-appearance: textfield;
}
.bizfin-factoring__money input:focus,
.bizfin-factoring__suffix input:focus {
	outline: none;
}
.bizfin-factoring__money input::-webkit-outer-spin-button,
.bizfin-factoring__money input::-webkit-inner-spin-button,
.bizfin-factoring__suffix input::-webkit-outer-spin-button,
.bizfin-factoring__suffix input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.bizfin-factoring__sym { border-right: 1px solid var(--bf-border, #e5e7eb); }
.bizfin-factoring__unit { border-left: 1px solid var(--bf-border, #e5e7eb); }

/* Range sliders. */
.bizfin-factoring__slider {
	-webkit-appearance: none;
	appearance: none;
	width: 100%;
	height: 6px;
	margin-top: 12px;
	border-radius: 999px;
	background: var(--bf-border, #e5e7eb);
	outline: none;
	cursor: pointer;
}
.bizfin-factoring__slider::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--bf-primary, #4f46e5);
	border: 3px solid #fff;
	box-shadow: 0 2px 6px rgba(15, 23, 42, .25);
	cursor: pointer;
}
.bizfin-factoring__slider::-moz-range-thumb {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--bf-primary, #4f46e5);
	border: 3px solid #fff;
	box-shadow: 0 2px 6px rgba(15, 23, 42, .25);
	cursor: pointer;
}
.bizfin-factoring__slider:focus-visible {
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--bf-primary, #4f46e5) 30%, transparent);
}

/* Segmented toggles (structure + days). */
.bizfin-factoring__toggle {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 4px;
	padding: 4px;
	border-radius: 12px;
	background: var(--bf-bg-soft, #f8fafc);
	border: 1px solid var(--bf-border, #e5e7eb);
}
.bizfin-factoring__toggle-btn {
	font: inherit;
	font-weight: 700;
	font-size: 14px;
	padding: 9px 16px;
	border: 0;
	border-radius: 9px;
	background: transparent;
	color: var(--bf-muted, #64748b);
	cursor: pointer;
	transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}
.bizfin-factoring__toggle-btn:hover {
	color: var(--bf-ink, #0f172a);
}
.bizfin-factoring__toggle-btn.is-active {
	background: #fff;
	color: var(--bf-primary, #4f46e5);
	box-shadow: 0 1px 3px rgba(15, 23, 42, .12);
}
.bizfin-factoring__toggle-btn:focus-visible {
	outline: 2px solid var(--bf-primary, #4f46e5);
	outline-offset: 1px;
}

.bizfin-factoring__hint {
	margin: 10px 0 0;
	font-size: 13px;
	color: var(--bf-muted, #64748b);
	transition: opacity .15s ease;
}

.bizfin-factoring__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 24px;
	padding-top: 18px;
	border-top: 1px solid var(--bf-border, #e5e7eb);
}

/* --------------------------------------------------------------- results */

.bizfin-factoring__results {
	border: 1px solid var(--bf-border, #e5e7eb);
	border-radius: var(--bf-radius, 16px);
	background: linear-gradient(180deg, color-mix(in srgb, var(--bf-primary, #4f46e5) 5%, #fff), #fff 120px);
	box-shadow: var(--bf-shadow, 0 10px 40px rgba(15, 23, 42, .08));
	padding: 26px;
	min-width: 0;
}

.bizfin-factoring__headline {
	text-align: center;
	padding-bottom: 22px;
	border-bottom: 1px dashed var(--bf-border, #e5e7eb);
}
.bizfin-factoring__headline-label {
	display: block;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--bf-muted, #64748b);
}
.bizfin-factoring__headline-value {
	display: block;
	margin: 6px 0 2px;
	font-size: clamp(34px, 7vw, 50px);
	font-weight: 800;
	line-height: 1.05;
	color: var(--bf-adv);
	letter-spacing: -.02em;
}
.bizfin-factoring__headline-note {
	display: block;
	font-size: 14px;
	color: var(--bf-muted, #64748b);
}

.bizfin-factoring__stats {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
	margin: 22px 0;
}
@media (min-width: 480px) {
	.bizfin-factoring__stats {
		grid-template-columns: repeat(3, 1fr);
	}
}
.bizfin-factoring__stat {
	background: var(--bf-bg-soft, #f8fafc);
	border: 1px solid var(--bf-border, #e5e7eb);
	border-radius: 12px;
	padding: 14px 16px;
	text-align: center;
}
.bizfin-factoring__stat-label {
	display: block;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--bf-muted, #64748b);
}
.bizfin-factoring__stat-value {
	display: block;
	margin-top: 4px;
	font-size: 22px;
	font-weight: 800;
	color: var(--bf-ink, #0f172a);
}
.bizfin-factoring__stat-value--accent {
	color: var(--bf-fee);
}
.bizfin-factoring__stat-sub {
	display: block;
	margin-top: 3px;
	font-size: 11.5px;
	color: #94a3b8;
	line-height: 1.35;
}

/* Composition bar. */
.bizfin-factoring__bar {
	display: flex;
	height: 16px;
	border-radius: 999px;
	overflow: hidden;
	background: var(--bf-border, #e5e7eb);
	margin-top: 8px;
}
.bizfin-factoring__bar-seg {
	height: 100%;
	transition: width .25s ease;
}
.bizfin-factoring__bar-seg--advance { background: var(--bf-adv); }
.bizfin-factoring__bar-seg--rebate { background: var(--bf-reb); }
.bizfin-factoring__bar-seg--fee { background: var(--bf-fee); }

.bizfin-factoring__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: center;
	margin-top: 12px;
	font-size: 13px;
	color: var(--bf-muted, #64748b);
}
.bizfin-factoring__legend span { display: inline-flex; align-items: center; gap: 6px; }
.bizfin-factoring__dot {
	width: 10px;
	height: 10px;
	border-radius: 3px;
	display: inline-block;
}
.bizfin-factoring__dot--advance { background: var(--bf-adv); }
.bizfin-factoring__dot--rebate { background: var(--bf-reb); }
.bizfin-factoring__dot--fee { background: var(--bf-fee); }

.bizfin-factoring__meta {
	margin-top: 22px;
	border-top: 1px solid var(--bf-border, #e5e7eb);
	padding-top: 8px;
}
.bizfin-factoring__meta-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid var(--bf-border, #e5e7eb);
	font-size: 14px;
	color: var(--bf-muted, #64748b);
}
.bizfin-factoring__meta-row:last-child { border-bottom: 0; }
.bizfin-factoring__meta-row strong { color: var(--bf-ink, #0f172a); font-size: 15px; }

.bizfin-factoring__warning {
	margin-top: 18px;
}

.bizfin-factoring__disclaimer {
	margin: 18px 0 0;
	font-size: 12.5px;
	line-height: 1.5;
	color: #94a3b8;
}

/* ----------------------------------------------------------------- print */

@media print {
	.bizfin-factoring__form,
	.bizfin-factoring__actions,
	.bizfin-factoring__slider {
		display: none !important;
	}
	.bizfin-factoring__layout {
		display: block;
	}
	.bizfin-factoring__results {
		border: 0;
		box-shadow: none;
		background: #fff;
		padding: 0;
	}
	.bizfin-factoring__headline-value { color: #000; }
	.bizfin-factoring__bar { border: 1px solid #999; }
	.bizfin-factoring {
		color: #000;
		font-size: 12pt;
	}
}
