/**
 * Fibre Systems Core — Add-to-Quote feedback: toast + floating "View Quote" button + count badge.
 */
.fsc-quote-toast {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 100001;
	background: #0f172a;
	color: #fff;
	border: 1px solid rgba( 255, 255, 255, 0.15 );
	border-radius: 10px;
	padding: 12px 18px;
	font-size: 0.9rem;
	box-shadow: 0 12px 30px rgba( 0, 0, 0, 0.4 );
	opacity: 0;
	transform: translateY( 12px );
	transition: opacity 220ms ease, transform 220ms cubic-bezier( 0.23, 1, 0.32, 1 );
	pointer-events: none;
}

.fsc-quote-toast.is-visible {
	opacity: 1;
	transform: translateY( 0 );
}

/* Floating "View Quote (N)" button — appears once the quote list has items. */
.fsc-quote-fab {
	position: fixed;
	right: 20px;
	bottom: 74px;
	z-index: 100000;
	display: none;
	align-items: center;
	gap: 8px;
	padding: 12px 18px;
	border-radius: 999px;
	background: linear-gradient( 90deg, #2161e3, #4ea3ff );
	color: #fff !important;
	font-weight: 600;
	text-decoration: none !important;
	box-shadow: 0 12px 30px rgba( 33, 97, 227, 0.5 );
	transition: transform 0.15s ease;
}

.fsc-quote-fab.is-visible {
	display: inline-flex;
}

.fsc-quote-fab:hover {
	transform: translateY( -2px );
}

.fsc-quote-fab .fsc-quote-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: 999px;
	background: rgba( 255, 255, 255, 0.25 );
	font-size: 0.8rem;
}

/* Inline count badge (e.g. if placed in a nav link). */
.fsc-quote-count.has-items {
	font-weight: 700;
}

/* Button loading state */
.fsc-quote-btn.is-loading {
	opacity: 0.6;
	pointer-events: none;
}

/* ---------- Quote list page ---------- */
/* Two columns: items on the left, sticky "Your details" panel on the right. */
.fsc-quote-grid {
	display: grid !important;
	grid-template-columns: minmax( 0, 1fr ) 360px !important;
	gap: 32px !important;
	align-items: start !important;
}

.fsc-quote-items {
	min-width: 0 !important; /* let the table shrink instead of overflowing the column */
}

.fsc-quote-side {
	position: sticky !important;
	top: 100px !important; /* clears the sticky header + category bar */
}

.fsc-quote-side .fsc-quote-fields {
	max-width: none !important;
	margin: 0 !important;
	background: rgba( 255, 255, 255, 0.04 ) !important;
	border: 1px solid rgba( 255, 255, 255, 0.14 ) !important;
	border-radius: 14px !important;
	padding: 20px !important;
}

@media ( max-width: 900px ) {
	.fsc-quote-grid {
		grid-template-columns: 1fr !important;
		gap: 20px !important;
	}

	.fsc-quote-side {
		position: static !important;
	}
}

.fsc-quote-table {
	width: 100% !important;
	border-collapse: collapse !important;
	margin: 16px 0 24px !important;
	color: #fff !important;
}

.fsc-quote-table th,
.fsc-quote-table td {
	text-align: left !important;
	padding: 12px 10px !important;
	border-bottom: 1px solid rgba( 255, 255, 255, 0.15 ) !important;
	vertical-align: middle !important;
	font-size: 0.9rem !important;
}

.fsc-quote-table thead th {
	font-weight: 700 !important;
	text-transform: uppercase !important;
	font-size: 0.75rem !important;
	letter-spacing: 0.04em !important;
	opacity: 0.7;
}

.fsc-quote-prod {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
}

.fsc-quote-prod img {
	width: 60px !important;
	height: 60px !important;
	object-fit: contain !important;
	background: #fff !important;
	border-radius: 6px !important;
	padding: 4px !important;
}

.fsc-quote-prod a {
	color: #fff !important;
	text-decoration: none !important;
}

.fsc-quote-remove {
	color: #fff !important;
	opacity: 0.6;
	font-size: 1.4rem !important;
	text-decoration: none !important;
	line-height: 1 !important;
}

.fsc-quote-remove:hover {
	opacity: 1;
	color: #ff6b6b !important;
}

.fsc-quote-fields {
	max-width: 560px !important;
	margin: 8px 0 24px !important;
}

.fsc-quote-fields h3 {
	font-size: 1.2rem !important;
	margin: 0 0 12px !important;
	color: #fff !important;
}

.fsc-quote-fields p {
	margin: 0 0 14px !important;
}

.fsc-quote-fields label {
	display: block !important;
	font-size: 0.85rem !important;
	color: #fff !important;
}

.fsc-quote-fields input,
.fsc-quote-fields textarea {
	width: 100% !important;
	margin-top: 6px !important;
	padding: 10px 12px !important;
	background: rgba( 255, 255, 255, 0.06 ) !important;
	border: 1px solid rgba( 255, 255, 255, 0.28 ) !important;
	border-radius: 8px !important;
	color: #fff !important;
	box-sizing: border-box !important;
}

.fsc-quote-empty {
	opacity: 0.7;
	padding: 24px 0 !important;
	color: #fff !important;
}

.fsc-quote-form button[type="submit"] {
	margin-top: 8px !important;
}
