/**
 * CBSE Formula Finder Pro — Academic Modern Design System
 *
 * Primary  #2563EB  Education Blue — navigation, search, links, active states
 * Accent   #F97316  Formula Orange — calculators, CTAs, highlighted cards only
 * Neutrals white + light gray — calm, focused, trustworthy
 */

:root {
	/* Brand */
	--cff-primary: #2563eb;
	--cff-primary-hover: #1d4ed8;
	--cff-primary-soft: #eff6ff;
	--cff-accent: #f97316;
	--cff-accent-hover: #ea580c;
	--cff-accent-soft: #fff7ed;

	/* Neutrals */
	--cff-bg: #fafafa;
	--cff-surface: #ffffff;
	--cff-surface-2: #f4f4f5;
	--cff-border: #e4e4e7;
	--cff-border-strong: #d4d4d8;
	--cff-text: #18181b;
	--cff-text-muted: #71717a;
	--cff-text-subtle: #a1a1aa;

	/* Typography */
	--cff-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--cff-mono: ui-monospace, "Cascadia Code", "Segoe UI Mono", monospace;
	--cff-line: 1.65;
	--cff-line-tight: 1.25;

	/* Spacing & shape */
	--cff-radius: 10px;
	--cff-radius-sm: 6px;
	--cff-section-gap: 2.75rem;
	--cff-content-gap: 1.25rem;
	--cff-shadow: 0 1px 2px rgba(24, 24, 27, 0.04);
	--cff-shadow-md: 0 2px 8px rgba(24, 24, 27, 0.06);
	--cff-transition: 160ms ease;
	--cff-focus-ring: 0 0 0 3px rgba(37, 99, 235, 0.18);
}

/* ------------------------------------------------------------------ Layout */

.cff-main {
	font-family: var(--cff-font);
	font-size: 1rem;
	line-height: var(--cff-line);
	color: var(--cff-text);
	background: var(--cff-bg);
	max-width: 720px;
	margin: 0 auto;
	padding: 1.5rem 1.5rem 4rem;
	-webkit-font-smoothing: antialiased;
}

.cff-archive .cff-main,
.cff-main.cff-archive {
	max-width: 960px;
}

/* ------------------------------------------------------------------ Typography */

.cff-section {
	margin-top: var(--cff-section-gap);
	padding-top: 0.25rem;
}

.cff-section h2 {
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--cff-text-muted);
	margin: 0 0 1rem;
}

.cff-section--calculator h2 {
	color: var(--cff-accent);
}

/* Hero */

.cff-formula__hero {
	padding: 0.5rem 0 2rem;
	margin-bottom: 0.5rem;
	border-bottom: 1px solid var(--cff-border);
}

.cff-formula__title {
	font-size: clamp(1.75rem, 4vw, 2.25rem);
	font-weight: 700;
	margin: 0 0 1rem;
	letter-spacing: -0.025em;
	line-height: var(--cff-line-tight);
	color: var(--cff-text);
}

.cff-formula__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.cff-archive__header {
	padding: 1rem 0 2rem;
	border-bottom: 1px solid var(--cff-border);
	margin-bottom: 0.5rem;
}

.cff-archive__title {
	font-size: clamp(1.75rem, 4vw, 2.25rem);
	font-weight: 700;
	margin: 0 0 0.5rem;
	letter-spacing: -0.025em;
	line-height: var(--cff-line-tight);
}

.cff-archive__subtitle {
	color: var(--cff-text-muted);
	margin: 0;
	font-size: 1.0625rem;
	line-height: var(--cff-line);
}

/* ------------------------------------------------------------------ Labels (neutral only) */

.cff-badge,
.cff-tag,
.cff-chip {
	display: inline-flex;
	align-items: center;
	padding: 0.2rem 0.625rem;
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 1.4;
}

.cff-badge,
.cff-badge--muted {
	background: var(--cff-surface-2);
	color: var(--cff-text-muted);
	border: 1px solid var(--cff-border);
}

.cff-tag {
	background: var(--cff-surface);
	border: 1px solid var(--cff-border);
	color: var(--cff-text-subtle);
}

.cff-chip {
	background: var(--cff-surface);
	border: 1px solid var(--cff-border);
	color: var(--cff-text-muted);
}

.cff-chip-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

/* ------------------------------------------------------------------ Formula display */

.cff-katex-block {
	background: var(--cff-surface);
	border: 1px solid var(--cff-border);
	border-radius: var(--cff-radius);
	padding: 2rem 1.5rem;
	text-align: center;
	font-size: 1.25rem;
	overflow-x: auto;
	box-shadow: var(--cff-shadow);
}

.cff-katex-inline,
.cff-card__formula {
	font-size: 0.9375rem;
	color: var(--cff-text-muted);
	line-height: 1.5;
}

/* ------------------------------------------------------------------ Table */

.cff-table-wrap {
	overflow-x: auto;
	border: 1px solid var(--cff-border);
	border-radius: var(--cff-radius-sm);
	background: var(--cff-surface);
}

.cff-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
}

.cff-table th,
.cff-table td {
	padding: 0.875rem 1.125rem;
	text-align: left;
	border-bottom: 1px solid var(--cff-border);
}

.cff-table th {
	background: var(--cff-surface-2);
	font-weight: 600;
	font-size: 0.8125rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--cff-text-muted);
}

.cff-table tr:last-child td {
	border-bottom: none;
}

.cff-table code {
	font-family: var(--cff-mono);
	font-size: 0.9375rem;
	color: var(--cff-text);
}

/* ------------------------------------------------------------------ Diagram */

.cff-diagram {
	background: var(--cff-surface);
	border: 1px solid var(--cff-border);
	border-radius: var(--cff-radius);
	padding: 1.5rem;
	text-align: center;
	color: var(--cff-text-muted);
}

.cff-diagram svg {
	max-width: 100%;
	height: auto;
	max-height: 260px;
}

/* ------------------------------------------------------------------ Calculator (Formula Orange zone) */

.cff-section--calculator {
	background: var(--cff-surface);
	border: 1px solid var(--cff-border);
	border-left: 3px solid var(--cff-accent);
	border-radius: var(--cff-radius);
	padding: 1.75rem 1.5rem;
	margin-top: var(--cff-section-gap);
	box-shadow: var(--cff-shadow);
}

.cff-calculator {
	margin-top: 0.25rem;
}

.cff-calculator__form {
	display: grid;
	gap: 1.25rem;
}

@media (min-width: 480px) {
	.cff-calculator__form {
		grid-template-columns: 1fr 1fr;
		align-items: end;
	}

	.cff-calculator__form .cff-btn--cta {
		grid-column: 1 / -1;
		justify-self: start;
	}
}

.cff-calculator__field label {
	display: block;
	font-size: 0.75rem;
	font-weight: 600;
	margin-bottom: 0.4rem;
	color: var(--cff-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.cff-calculator__input {
	width: 100%;
	padding: 0.7rem 0.875rem;
	border: 1px solid var(--cff-border);
	border-radius: var(--cff-radius-sm);
	background: var(--cff-bg);
	color: var(--cff-text);
	font-size: 1rem;
	font-family: var(--cff-font);
	transition: border-color var(--cff-transition), box-shadow var(--cff-transition);
}

.cff-calculator__input:focus {
	outline: none;
	border-color: var(--cff-accent);
	box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.15);
}

.cff-calculator__result {
	margin-top: 1.25rem;
	padding: 1rem 1.125rem;
	background: var(--cff-accent-soft);
	border: 1px solid rgba(249, 115, 22, 0.2);
	border-radius: var(--cff-radius-sm);
	font-size: 1.0625rem;
	font-weight: 600;
	color: var(--cff-text);
}

.cff-calculator__result-value {
	color: var(--cff-accent-hover);
}

.cff-calculator__result-unit {
	margin-left: 0.25rem;
	font-weight: 500;
	color: var(--cff-text-muted);
}

/* ------------------------------------------------------------------ Worked example */

.cff-example {
	background: var(--cff-surface-2);
	border: 1px solid var(--cff-border);
	border-radius: var(--cff-radius-sm);
	padding: 1.25rem 1.375rem;
	font-family: var(--cff-mono);
	font-size: 0.875rem;
	line-height: 1.7;
	white-space: pre-wrap;
	overflow-x: auto;
	margin: 0;
	color: var(--cff-text);
}

/* ------------------------------------------------------------------ FAQ */

.cff-accordion__item {
	border: 1px solid var(--cff-border);
	border-radius: var(--cff-radius-sm);
	margin-bottom: 0.5rem;
	background: var(--cff-surface);
}

.cff-accordion__item[open] {
	border-color: var(--cff-border-strong);
}

.cff-accordion__item summary {
	padding: 1rem 1.125rem;
	cursor: pointer;
	font-weight: 500;
	font-size: 0.9375rem;
	list-style: none;
	color: var(--cff-text);
}

.cff-accordion__item summary:hover {
	background: var(--cff-surface-2);
}

.cff-accordion__item summary::-webkit-details-marker {
	display: none;
}

.cff-accordion__content {
	padding: 0 1.125rem 1.125rem;
	color: var(--cff-text-muted);
	font-size: 0.9375rem;
	line-height: var(--cff-line);
}

/* ------------------------------------------------------------------ Buttons */

.cff-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	padding: 0.625rem 1.125rem;
	border-radius: var(--cff-radius-sm);
	font-size: 0.875rem;
	font-weight: 600;
	font-family: var(--cff-font);
	border: none;
	cursor: pointer;
	text-decoration: none;
	transition: background var(--cff-transition), color var(--cff-transition), border-color var(--cff-transition);
}

.cff-btn:focus-visible {
	outline: 2px solid var(--cff-primary);
	outline-offset: 2px;
}

/* Blue — navigation / active UI */
.cff-btn--primary {
	background: var(--cff-primary);
	color: #fff;
}

.cff-btn--primary:hover {
	background: var(--cff-primary-hover);
}

/* Orange — CTAs only */
.cff-btn--cta {
	background: var(--cff-accent);
	color: #fff;
}

.cff-btn--cta:hover {
	background: var(--cff-accent-hover);
}

.cff-btn--ghost {
	background: var(--cff-surface);
	color: var(--cff-text-muted);
	border: 1px solid var(--cff-border);
}

.cff-btn--ghost:hover {
	background: var(--cff-surface-2);
	color: var(--cff-text);
	border-color: var(--cff-border-strong);
}

.cff-filter-toggle[aria-expanded="true"] {
	color: var(--cff-primary);
	border-color: var(--cff-primary);
	background: var(--cff-primary-soft);
}

/* ------------------------------------------------------------------ Cards */

.cff-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.cff-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1.125rem;
	}
}

@media (min-width: 900px) {
	.cff-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.cff-grid--compact {
		grid-template-columns: repeat(2, 1fr);
	}
}

.cff-card {
	display: flex;
	flex-direction: column;
	background: var(--cff-surface);
	border: 1px solid var(--cff-border);
	border-radius: var(--cff-radius);
	overflow: hidden;
	transition: border-color var(--cff-transition), box-shadow var(--cff-transition);
}

.cff-card:hover {
	border-color: var(--cff-border-strong);
	box-shadow: var(--cff-shadow-md);
}

/* Highlighted search match — Formula Orange accent */
.cff-card--highlight {
	border-color: rgba(249, 115, 22, 0.35);
	border-left: 3px solid var(--cff-accent);
	background: linear-gradient(to right, var(--cff-accent-soft) 0%, var(--cff-surface) 48%);
}

.cff-card--highlight:hover {
	border-color: rgba(249, 115, 22, 0.5);
}

.cff-card__body {
	padding: 1.375rem 1.375rem 1rem;
	flex: 1;
}

.cff-card__title {
	margin: 0 0 0.625rem;
	font-size: 1rem;
	font-weight: 600;
	line-height: var(--cff-line-tight);
}

.cff-card__title a {
	color: var(--cff-text);
	text-decoration: none;
}

.cff-card__title a:hover {
	color: var(--cff-primary);
}

.cff-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
	margin-top: 0.875rem;
}

.cff-card__link {
	margin: 0 1.375rem 1.25rem;
	align-self: flex-start;
	padding: 0;
	background: none;
	border: none;
	color: var(--cff-primary);
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
}

.cff-card__link:hover {
	color: var(--cff-primary-hover);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.cff-card__link::after {
	content: " →";
}

/* ------------------------------------------------------------------ Breadcrumbs (Education Blue) */

.cff-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
	align-items: center;
	list-style: none;
	padding: 0;
	margin: 0 0 1.5rem;
	font-size: 0.8125rem;
	color: var(--cff-text-subtle);
}

.cff-breadcrumbs li:not(:last-child)::after {
	content: "/";
	margin-left: 0.35rem;
	color: var(--cff-border-strong);
}

.cff-breadcrumbs a {
	color: var(--cff-primary);
	text-decoration: none;
}

.cff-breadcrumbs a:hover {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.cff-breadcrumbs li[aria-current="page"],
.cff-breadcrumbs li:last-child {
	color: var(--cff-text-muted);
}

/* ------------------------------------------------------------------ Search (Education Blue) */

.cff-finder {
	margin: 2rem 0;
}

.cff-finder__search {
	margin-bottom: 1.5rem;
}

.cff-search-box {
	position: relative;
	display: flex;
	align-items: center;
}

.cff-search-box__icon {
	position: absolute;
	left: 1rem;
	color: var(--cff-text-subtle);
	pointer-events: none;
}

.cff-search-box__input {
	width: 100%;
	padding: 0.9375rem 1rem 0.9375rem 2.75rem;
	font-size: 1rem;
	font-family: var(--cff-font);
	border: 1px solid var(--cff-border);
	border-radius: var(--cff-radius);
	background: var(--cff-surface);
	color: var(--cff-text);
	box-shadow: var(--cff-shadow);
	transition: border-color var(--cff-transition), box-shadow var(--cff-transition);
}

.cff-search-box__input::placeholder {
	color: var(--cff-text-subtle);
}

.cff-search-box__input:focus {
	outline: none;
	border-color: var(--cff-primary);
	box-shadow: var(--cff-focus-ring), var(--cff-shadow);
}

.cff-finder__examples {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin-top: 0.875rem;
	font-size: 0.8125rem;
	color: var(--cff-text-muted);
}

.cff-example-chip {
	background: var(--cff-surface);
	border: 1px solid var(--cff-border);
	border-radius: 999px;
	padding: 0.3rem 0.75rem;
	font-size: 0.8125rem;
	font-family: var(--cff-font);
	cursor: pointer;
	color: var(--cff-text-muted);
	transition: border-color var(--cff-transition), color var(--cff-transition), background var(--cff-transition);
}

.cff-example-chip:hover {
	border-color: var(--cff-primary);
	color: var(--cff-primary);
	background: var(--cff-primary-soft);
}

.cff-finder__toolbar {
	margin-top: 1rem;
}

/* Filter panel */

.cff-filter-panel[hidden] {
	display: none;
}

.cff-filter-panel:not([hidden]) {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: flex-end;
	justify-content: center;
}

.cff-filter-panel__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(24, 24, 27, 0.35);
}

.cff-filter-panel__sheet {
	position: relative;
	width: 100%;
	max-height: 85vh;
	background: var(--cff-surface);
	border-radius: var(--cff-radius) var(--cff-radius) 0 0;
	padding: 1.5rem;
	overflow-y: auto;
	box-shadow: var(--cff-shadow-md);
	animation: cff-slide-up 220ms ease;
}

@keyframes cff-slide-up {
	from { transform: translateY(100%); }
	to { transform: translateY(0); }
}

@media (min-width: 768px) {
	.cff-filter-panel:not([hidden]) {
		position: static;
		display: block;
		margin-top: 0.75rem;
	}

	.cff-filter-panel__backdrop {
		display: none;
	}

	.cff-filter-panel__sheet {
		max-height: none;
		border-radius: var(--cff-radius);
		border: 1px solid var(--cff-border);
		animation: none;
		padding: 1.25rem;
	}

	.cff-filter-panel__header,
	.cff-filter-panel__close {
		display: none;
	}
}

.cff-filter-panel__header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 1.25rem;
}

.cff-filter-panel__header h3 {
	margin: 0;
	font-size: 1rem;
	font-weight: 600;
}

.cff-filter-panel__close {
	background: none;
	border: none;
	font-size: 1.5rem;
	cursor: pointer;
	color: var(--cff-text-muted);
	line-height: 1;
}

.cff-filter-grid {
	display: grid;
	gap: 1.125rem;
}

@media (min-width: 640px) {
	.cff-filter-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.cff-filter-grid label span {
	display: block;
	font-size: 0.75rem;
	font-weight: 600;
	margin-bottom: 0.4rem;
	color: var(--cff-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.cff-filter-grid select {
	width: 100%;
	padding: 0.55rem 0.75rem;
	border: 1px solid var(--cff-border);
	border-radius: var(--cff-radius-sm);
	background: var(--cff-surface);
	color: var(--cff-text);
	font-family: var(--cff-font);
	font-size: 0.9375rem;
}

.cff-filter-grid select:focus {
	outline: none;
	border-color: var(--cff-primary);
	box-shadow: var(--cff-focus-ring);
}

.cff-filter-panel__actions {
	display: flex;
	justify-content: flex-end;
	gap: 0.625rem;
	margin-top: 1.25rem;
	padding-top: 1rem;
	border-top: 1px solid var(--cff-border);
}

/* Empty state */

.cff-empty {
	grid-column: 1 / -1;
	text-align: center;
	padding: 3rem 1.5rem;
	color: var(--cff-text-muted);
	font-size: 0.9375rem;
}

/* Accessibility */

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/* KaTeX inherits calm neutrals inside cards */
.cff-card .katex {
	font-size: 1em;
	color: var(--cff-text-muted);
}

.cff-katex-block .katex {
	font-size: 1.35em;
}

/* Subject navigation (Phase 3) */

.cff-subject-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 1rem;
}

.cff-subject-nav a {
	display: inline-flex;
	align-items: center;
	padding: 0.375rem 0.875rem;
	border-radius: 999px;
	border: 1px solid var(--cff-border);
	background: var(--cff-surface);
	color: var(--cff-text);
	text-decoration: none;
	font-size: 0.875rem;
	font-weight: 500;
}

.cff-subject-nav a[aria-current="page"] {
	border-color: var(--cff-primary);
	background: var(--cff-primary-soft);
	color: var(--cff-primary);
}

/* Phase 2 learning tools + home hub */

.cff-learning__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.625rem;
	margin-bottom: 1rem;
}

/* Flashcard — white surface + primary blue only */

.cff-flashcard {
	margin-top: 1rem;
	perspective: 1000px;
}

.cff-flashcard__inner {
	position: relative;
	min-height: 200px;
	transform-style: preserve-3d;
	transition: transform 0.45s ease;
	cursor: pointer;
}

.cff-flashcard.is-flipped .cff-flashcard__inner {
	transform: rotateY(180deg);
}

.cff-flashcard__face {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	border: 1px solid var(--cff-border);
	border-radius: var(--cff-radius);
	background: var(--cff-surface);
	backface-visibility: hidden;
	text-align: center;
}

.cff-flashcard__face--back {
	transform: rotateY(180deg);
	background: var(--cff-primary-soft);
	border-color: var(--cff-primary);
}

.cff-flashcard__label {
	display: block;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--cff-primary);
	margin-bottom: 0.75rem;
}

.cff-flashcard__title {
	font-size: 1.125rem;
	color: var(--cff-text);
	margin: 0 0 0.5rem;
}

.cff-flashcard__hint,
.cff-flashcard__definition {
	color: var(--cff-text-muted);
	font-size: 0.9375rem;
	margin: 0.75rem 0 0;
}

.cff-flashcard__formula {
	width: 100%;
	color: var(--cff-text);
}

.cff-flashcard__formula .katex {
	color: var(--cff-text);
}

.cff-quiz {
	margin-top: 1.5rem;
	padding-top: 1rem;
	border-top: 1px solid var(--cff-border);
}

.cff-quiz__question {
	font-weight: 500;
	margin-bottom: 0.875rem;
}

.cff-quiz__options {
	display: grid;
	gap: 0.5rem;
}

.cff-hub-link.is-correct,
.cff-quiz__option.is-correct,
.cff-chapter-quiz__option.is-correct {
	border-color: var(--cff-primary) !important;
	background: var(--cff-primary-soft) !important;
	color: var(--cff-primary) !important;
}

.cff-hub-link.is-wrong,
.cff-quiz__option.is-wrong,
.cff-chapter-quiz__option.is-wrong {
	opacity: 0.55;
}

.cff-quiz__feedback--ok {
	color: var(--cff-primary);
}

.cff-quiz__feedback--bad {
	color: var(--cff-text-muted);
}

/* Home hub widgets */

.cff-home-hub {
	max-width: 960px;
	margin: 0 auto;
}

.cff-hub-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 1rem;
	margin: 1.5rem 0;
}

.cff-hub-card {
	background: var(--cff-surface);
	border: 1px solid var(--cff-border);
	border-radius: var(--cff-radius);
	padding: 1.125rem 1.25rem;
}

.cff-hub-card--accent {
	background: var(--cff-primary-soft);
	border-color: var(--cff-primary);
}

.cff-hub-card__title {
	margin: 0 0 0.75rem;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--cff-text);
}

.cff-hub-card__body {
	margin: 0;
}

.cff-hub-card__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.cff-hub-card__links--compact {
	margin-top: 0.375rem;
}

.cff-hub-link {
	display: inline-flex;
	align-items: center;
	padding: 0.4375rem 0.875rem;
	border: 1px solid var(--cff-border);
	border-radius: 999px;
	background: var(--cff-surface);
	color: var(--cff-primary);
	text-decoration: none;
	font-size: 0.875rem;
	font-weight: 500;
	cursor: pointer;
	transition: background var(--cff-transition), border-color var(--cff-transition);
}

.cff-hub-link:hover,
.cff-hub-link.is-active {
	background: var(--cff-primary-soft);
	border-color: var(--cff-primary);
}

.cff-hub-link--block {
	display: block;
	border-radius: var(--cff-radius-sm);
	border: none;
	background: transparent;
	padding: 0;
}

.cff-hub-link--sm {
	font-size: 0.8125rem;
	padding: 0.3125rem 0.75rem;
}

.cff-hub-quizzes {
	margin-top: 1.5rem;
	padding-top: 1rem;
	border-top: 1px solid var(--cff-border);
}

.cff-hub-quiz-group {
	margin-bottom: 1.25rem;
}

.cff-hub-quiz-group h4 {
	margin: 0 0 0.625rem;
	font-size: 0.875rem;
	color: var(--cff-text);
}

.cff-hub-quiz-subject {
	margin-bottom: 0.75rem;
}

.cff-hub-quiz-subject strong {
	display: block;
	font-size: 0.8125rem;
	color: var(--cff-text-muted);
	margin-bottom: 0.25rem;
}

/* Chat widget styles live in assets/css/chat-widget.css */

/* Quiz links widget */

.cff-quiz-widget {
	max-width: 960px;
	margin: 0 auto;
}

.cff-quiz-widget__card {
	padding: 1.25rem 1.5rem;
}

.cff-quiz-widget__title {
	margin: 0 0 1rem;
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--cff-text);
}

.cff-quiz-widget__class {
	margin: 0 0 0.625rem;
	font-size: 1rem;
	font-weight: 600;
	color: var(--cff-text);
}

/* Chapter quiz page */

.cff-quiz-page__header {
	margin-bottom: 1.5rem;
}

.cff-quiz-page__meta {
	font-size: 0.8125rem;
	color: var(--cff-text-muted);
	margin: 0 0 0.375rem;
}

.cff-chapter-quiz__progress {
	font-size: 0.8125rem;
	color: var(--cff-text-muted);
	margin: 0 0 0.5rem;
}

.cff-chapter-quiz__question {
	font-size: 1.0625rem;
	margin: 0 0 1rem;
}

.cff-chapter-quiz__options {
	display: grid;
	gap: 0.5rem;
	margin-bottom: 1rem;
}

.cff-chapter-quiz__feedback {
	font-size: 0.9375rem;
}

.cff-chapter-quiz__results {
	text-align: center;
	padding: 1.5rem 0;
}

.cff-chapter-quiz__score {
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--cff-primary);
}

@media print {
	.cff-learning,
	.cff-finder,
	.cff-subject-nav,
	.cff-filter-panel,
	.cff-card__link,
	.cff-accordion,
	.cff-section--calculator button,
	.cff-assistant-widget,
	.cff-home-hub {
		display: none !important;
	}

	.cff-main {
		max-width: none;
		padding: 0;
		background: #fff;
	}
}
