/*
Theme Name: CICMWrecks 3 Staging
Theme URI: https://cicmwrecks.com/
Author: CICMWrecks
Description: CICMWrecks 3.0 staging theme with canonical SAQs, syllabus navigation and examiner-report VIVA archive. Not the final visual design.
Version: 0.3.55
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: cicmwrecks-3
*/

:root {
	--cw-bg: #f5f7f9;
	--cw-surface: #ffffff;
	--cw-text: #17212b;
	--cw-muted: #5b6977;
	--cw-border: #d8e0e7;
	--cw-brand: #1d4f73;
	--cw-brand-strong: #153a54;
	--cw-soft: #eaf2f7;
	--cw-warning: #775700;
	--cw-warning-bg: #fff7d6;
	--cw-success: #1c6a41;
	--cw-success-bg: #e9f7ef;
	--cw-danger: #8a2d2d;
	--cw-danger-bg: #fff0f0;
	--cw-radius: 12px;
	--cw-shadow: 0 2px 14px rgba(20, 35, 50, .07);
}

* { box-sizing: border-box; }
body {
	margin: 0;
	background: var(--cw-bg);
	color: var(--cw-text);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	line-height: 1.62;
}
a { color: var(--cw-brand); }
a:hover { color: var(--cw-brand-strong); }
.cw-shell { width: min(1080px, calc(100% - 32px)); margin: 0 auto; }
.cw-site-header {
	background: var(--cw-surface);
	border-bottom: 1px solid var(--cw-border);
}
.cw-site-header .cw-shell {
	display: flex; justify-content: space-between; align-items: center; min-height: 68px; gap: 24px;
}
.cw-logo { font-weight: 800; font-size: 1.25rem; text-decoration: none; color: var(--cw-text); }
.cw-logo span { color: var(--cw-brand); }
.cw-nav a { margin-left: 18px; text-decoration: none; font-weight: 600; }
main.cw-shell { padding: 36px 0 72px; }
.cw-kicker { text-transform: uppercase; letter-spacing: .08em; font-size: .75rem; color: var(--cw-muted); font-weight: 700; }
h1 { font-size: clamp(2rem, 5vw, 3.3rem); line-height: 1.08; margin: .25em 0 .4em; }
h2 { line-height: 1.2; }
.cw-lede { color: var(--cw-muted); max-width: 72ch; font-size: 1.08rem; }
.cw-question-card, .cw-panel {
	background: var(--cw-surface);
	border: 1px solid var(--cw-border);
	border-radius: var(--cw-radius);
	box-shadow: var(--cw-shadow);
	padding: 24px;
	margin: 22px 0;
}
.cw-question-head {
	display: flex; gap: 16px; align-items: flex-start;
}
.cw-question-number {
	flex: 0 0 46px; height: 46px; border-radius: 10px;
	display: grid; place-items: center; background: var(--cw-brand); color: white; font-weight: 800;
}
.cw-question-title { margin: 0 0 8px; font-size: 1.25rem; }
.cw-stem { margin: 14px 0 18px; }
.cw-meta-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.cw-badge {
	display: inline-block; border: 1px solid var(--cw-border); border-radius: 999px;
	padding: 4px 9px; font-size: .78rem; background: var(--cw-surface); color: var(--cw-muted);
}
.cw-badge--v5 { background: var(--cw-soft); color: var(--cw-brand-strong); border-color: #c7dbe7; }
.cw-badge--variant { background: var(--cw-warning-bg); color: var(--cw-warning); border-color: #ead98a; }
.cw-stats { display: flex; flex-wrap: wrap; gap: 12px; margin: 14px 0; }
.cw-stat { min-width: 118px; padding: 10px 12px; background: var(--cw-bg); border-radius: 9px; }
.cw-stat strong { display: block; font-size: 1.05rem; }
.cw-stat span { font-size: .75rem; color: var(--cw-muted); }
.cw-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 16px; }
.cw-button {
	appearance: none; border: 0; border-radius: 9px; background: var(--cw-brand);
	color: white; padding: 10px 15px; font-weight: 700; cursor: pointer; text-decoration: none;
}
.cw-button:hover { background: var(--cw-brand-strong); color: white; }
.cw-button:disabled { opacity: .65; cursor: progress; }
.cw-answer-fragment {
	border-top: 1px solid var(--cw-border); margin-top: 20px; padding-top: 20px;
}
.cw-answer-fragment[hidden] { display: none; }
.cw-answer-byline, .cw-editor-link { color: var(--cw-muted); font-size: .88rem; }
.cw-editor-link a { font-weight: 700; }
.cw-alert {
	border-left: 4px solid var(--cw-warning); background: var(--cw-warning-bg);
	padding: 12px 14px; border-radius: 7px; margin: 14px 0;
}
.cw-alert--blank { border-color: var(--cw-danger); background: var(--cw-danger-bg); color: var(--cw-danger); }
.cw-alert--resource { border-color: var(--cw-brand); background: var(--cw-soft); }
.cw-repeat-list { color: var(--cw-muted); font-size: .9rem; }
details.cw-comments { border-top: 1px dashed var(--cw-border); padding-top: 14px; margin-top: 16px; }
details.cw-comments summary { cursor: pointer; font-weight: 700; color: var(--cw-brand); }
.cw-answer-full {
	background: var(--cw-surface); border: 1px solid var(--cw-border); border-radius: var(--cw-radius);
	box-shadow: var(--cw-shadow); padding: clamp(22px, 4vw, 38px); margin: 26px 0;
}
.cw-appearances { width: 100%; border-collapse: collapse; font-size: .92rem; }
.cw-appearances th, .cw-appearances td { border-bottom: 1px solid var(--cw-border); text-align: left; vertical-align: top; padding: 10px 8px; }
.cw-resource-answer { border-left: 4px solid var(--cw-brand); padding: 12px 15px; background: var(--cw-soft); }
.cw-site-footer { border-top: 1px solid var(--cw-border); color: var(--cw-muted); padding: 30px 0; background: var(--cw-surface); }
@media (max-width: 700px) {
	.cw-question-card { padding: 18px; }
	.cw-question-head { display: block; }
	.cw-question-number { margin-bottom: 12px; width: 42px; height: 42px; }
	.cw-nav { display: none; }
	.cw-appearances { display: block; overflow-x: auto; }
}


/* Prototype 2 — content-fidelity styles for migrated core WordPress blocks */
.cw-answer-full h2,
.cw-answer-full h3,
.cw-answer-full h4,
.cw-answer-fragment h2,
.cw-answer-fragment h3,
.cw-answer-fragment h4 {
	margin-top: 1.7em;
	margin-bottom: .65em;
	line-height: 1.25;
}
.cw-answer-full h3.has-background,
.cw-answer-fragment h3.has-background,
.cw-answer-full h3,
.cw-answer-fragment h3 {
	padding: .5rem .7rem;
	border-radius: 7px;
	background: var(--cw-soft);
}
/*
 * Staging 0.3.14 — permanent semantic list hierarchy.
 *
 * Migrated Master Answers already contain real ul/ol/li markup. The earlier
 * "missing bullets" issue was presentation-layer styling, not lost answer data.
 * Keep the canonical HTML untouched and make the hierarchy explicit here.
 */
.cw-answer-full ul,
.cw-answer-fragment ul {
	display: block;
	list-style-type: disc;
	list-style-position: outside;
	padding-inline-start: 1.65rem;
	margin: .65em 0 .9em;
}
.cw-answer-full ul ul,
.cw-answer-fragment ul ul {
	list-style-type: circle;
	margin: .3em 0;
}
.cw-answer-full ul ul ul,
.cw-answer-fragment ul ul ul {
	list-style-type: square;
}
.cw-answer-full ol,
.cw-answer-fragment ol {
	display: block;
	list-style-type: decimal;
	list-style-position: outside;
	padding-inline-start: 1.8rem;
	margin: .65em 0 .9em;
}
.cw-answer-full ol ol,
.cw-answer-fragment ol ol {
	list-style-type: lower-alpha;
	margin: .3em 0;
}
.cw-answer-full ol ol ol,
.cw-answer-fragment ol ol ol {
	list-style-type: lower-roman;
}
.cw-answer-full li,
.cw-answer-fragment li {
	display: list-item;
	margin: .24em 0;
	padding-left: .08rem;
}
.cw-answer-full li::marker,
.cw-answer-fragment li::marker {
	color: currentColor;
	font-weight: 650;
}
.cw-answer-full li > ul,
.cw-answer-full li > ol,
.cw-answer-fragment li > ul,
.cw-answer-fragment li > ol {
	margin-top: .25em;
	margin-bottom: .25em;
}
.cw-answer-full table ul,
.cw-answer-full table ol,
.cw-answer-fragment table ul,
.cw-answer-fragment table ol {
	padding-inline-start: 1.3rem;
	margin: .35em 0;
}
.cw-answer-full .wp-block-image,
.cw-answer-fragment .wp-block-image {
	margin: 1.4rem auto;
}
.cw-answer-full .wp-block-image img,
.cw-answer-fragment .wp-block-image img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
	border-radius: 8px;
}
.cw-answer-full figcaption,
.cw-answer-fragment figcaption {
	color: var(--cw-muted);
	font-size: .82rem;
	line-height: 1.4;
	margin-top: .45rem;
	text-align: center;
}
.cw-answer-full .wp-block-columns,
.cw-answer-fragment .wp-block-columns {
	display: flex;
	gap: 22px;
	align-items: flex-start;
}
.cw-answer-full .wp-block-column,
.cw-answer-fragment .wp-block-column {
	flex: 1 1 0;
	min-width: 0;
}
.cw-answer-full .wp-block-table,
.cw-answer-fragment .wp-block-table {
	overflow-x: auto;
}
.cw-answer-full table,
.cw-answer-fragment table {
	width: 100%;
	border-collapse: collapse;
}
.cw-answer-full th, .cw-answer-full td,
.cw-answer-fragment th, .cw-answer-fragment td {
	border: 1px solid var(--cw-border);
	padding: 8px 10px;
	vertical-align: top;
}
a.cw-badge { text-decoration: none; }
a.cw-badge:hover { border-color: var(--cw-brand); }
.cw-objective {
	font-size: 1.08rem;
	padding: 18px 20px;
	border-left: 4px solid var(--cw-brand);
	background: var(--cw-soft);
	border-radius: 8px;
}
@media (max-width: 700px) {
	.cw-answer-full .wp-block-columns,
	.cw-answer-fragment .wp-block-columns {
		display: block;
	}
}


/* Staging 0.3 — public VIVA archive and explicit current-syllabus state */
.cw-alert--oos {
	border-color: var(--cw-muted);
	background: #f1f3f5;
	color: var(--cw-text);
}
.cw-alert--oos strong { display: block; margin-bottom: 3px; }
.cw-viva-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 14px;
	margin: 24px 0;
}
.cw-viva-sitting-card {
	display: block;
	background: var(--cw-surface);
	border: 1px solid var(--cw-border);
	border-radius: var(--cw-radius);
	box-shadow: var(--cw-shadow);
	padding: 18px 20px;
	text-decoration: none;
	color: var(--cw-text);
}
.cw-viva-sitting-card:hover { border-color: var(--cw-brand); color: var(--cw-text); }
.cw-viva-sitting-card strong { display: block; font-size: 1.15rem; }
.cw-viva-sitting-card span { color: var(--cw-muted); font-size: .88rem; }
.cw-viva-day-heading { margin-top: 34px; padding-bottom: 8px; border-bottom: 1px solid var(--cw-border); }
.cw-viva-card {
	background: var(--cw-surface);
	border: 1px solid var(--cw-border);
	border-radius: var(--cw-radius);
	box-shadow: var(--cw-shadow);
	padding: 22px 24px;
	margin: 18px 0;
}
.cw-viva-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; flex-wrap: wrap; }
.cw-viva-head h2 { margin: 0; font-size: 1.25rem; }
.cw-viva-scope { margin-top: 5px; color: var(--cw-muted); }
.cw-viva-prompt { font-size: 1.04rem; margin: 16px 0; white-space: pre-wrap; }
.cw-viva-prompts { border-top: 1px solid var(--cw-border); margin-top: 16px; padding-top: 14px; }
.cw-viva-prompts li { margin: 10px 0; }
.cw-viva-source { border-top: 1px dashed var(--cw-border); margin-top: 16px; padding-top: 10px; color: var(--cw-muted); font-size: .78rem; }
.cw-viva-mapping { display: flex; gap: 7px; flex-wrap: wrap; margin-top: 10px; }
.cw-viva-history { list-style: none; padding: 0; margin: 0; }
.cw-viva-history li { border-bottom: 1px solid var(--cw-border); padding: 12px 0; }
.cw-viva-history li:last-child { border-bottom: 0; }
.cw-viva-history .cw-viva-history-meta { color: var(--cw-muted); font-size: .82rem; }


/* Staging 0.3.1 — syllabus history rendering */
.cw-saq-history { margin: 0; }
.cw-saq-history-group {
	padding: 16px 0;
	border-bottom: 1px solid var(--cw-border);
}
.cw-saq-history-group:first-child { padding-top: 4px; }
.cw-saq-history-group:last-child { border-bottom: 0; padding-bottom: 4px; }
.cw-saq-history-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 8px;
}
.cw-saq-history-appearance { margin: 10px 0 14px; }
.cw-saq-history-code { font-weight: 800; }
.cw-saq-history-stem { margin-top: 3px; }
.cw-saq-history-canonical { font-size: .82rem; color: var(--cw-muted); }
.cw-saq-history-canonical a { font-weight: 700; }


/* Staging 0.3.2 — version-aware public syllabus navigator */
.cw-syllabus-top {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 18px;
	flex-wrap: wrap;
	margin-bottom: 22px;
}
.cw-version-tabs {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin: 12px 0 0;
}
.cw-version-tab {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border: 1px solid var(--cw-border);
	border-radius: 999px;
	background: var(--cw-surface);
	padding: 7px 11px;
	font-size: .82rem;
	font-weight: 700;
	text-decoration: none;
	color: var(--cw-muted);
}
.cw-version-tab[aria-current="page"] {
	background: var(--cw-soft);
	border-color: #c7dbe7;
	color: var(--cw-brand-strong);
}
.cw-syllabus-summary {
	display: grid;
	grid-template-columns: repeat(4, minmax(120px, 1fr));
	gap: 10px;
	margin: 22px 0;
}
.cw-summary-stat {
	background: var(--cw-surface);
	border: 1px solid var(--cw-border);
	border-radius: 10px;
	padding: 13px 15px;
}
.cw-summary-stat strong { display: block; font-size: 1.2rem; }
.cw-summary-stat span { color: var(--cw-muted); font-size: .78rem; }

.cw-syllabus-summary--saq-only { grid-template-columns: repeat(2, minmax(160px, 1fr)); }
.cw-syllabus-note {
	margin: 0 0 1rem;
	padding: .75rem .9rem;
	border: 1px solid var(--cw-border);
	border-radius: 10px;
	background: var(--cw-surface);
	color: var(--cw-muted);
	font-size: .9rem;
}
.cw-syllabus-note strong { color: var(--cw-text); }
.cw-section-jump {
	display: flex;
	gap: 7px;
	flex-wrap: wrap;
	margin: 18px 0 28px;
}
.cw-section-jump a {
	display: inline-grid;
	place-items: center;
	min-width: 34px;
	height: 34px;
	padding: 0 10px;
	border: 1px solid var(--cw-border);
	border-radius: 999px;
	background: var(--cw-surface);
	font-weight: 800;
	text-decoration: none;
	color: var(--cw-brand-strong);
}
.cw-section-jump a:hover { border-color: var(--cw-brand); }
.cw-syllabus-section {
	scroll-margin-top: 18px;
	margin: 30px 0 36px;
}
.cw-syllabus-section-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	border-bottom: 2px solid var(--cw-border);
	padding-bottom: 9px;
	margin-bottom: 12px;
}
.cw-syllabus-section-head h2 { margin: 0; }
.cw-syllabus-section-counts { color: var(--cw-muted); font-size: .82rem; white-space: nowrap; }
.cw-objective-list {
	background: var(--cw-surface);
	border: 1px solid var(--cw-border);
	border-radius: var(--cw-radius);
	box-shadow: var(--cw-shadow);
	overflow: hidden;
}
.cw-objective-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 18px;
	align-items: center;
	padding: 15px 18px;
	border-bottom: 1px solid var(--cw-border);
}
.cw-objective-row:last-child { border-bottom: 0; }
.cw-objective-row:hover { background: #fbfcfd; }
.cw-objective-link {
	display: block;
	text-decoration: none;
	color: var(--cw-text);
}
.cw-objective-link:hover { color: var(--cw-brand-strong); }
.cw-objective-code { font-weight: 850; color: var(--cw-brand-strong); margin-right: 7px; }
.cw-objective-name { font-weight: 700; }
.cw-objective-excerpt {
	color: var(--cw-muted);
	font-size: .82rem;
	margin-top: 3px;
	max-width: 82ch;
}
.cw-coverage-badges {
	display: flex;
	gap: 6px;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
}
.cw-coverage-badge {
	display: inline-block;
	border-radius: 999px;
	border: 1px solid var(--cw-border);
	background: var(--cw-bg);
	color: var(--cw-muted);
	padding: 4px 8px;
	font-size: .73rem;
	white-space: nowrap;
}
.cw-coverage-badge--active {
	background: var(--cw-soft);
	border-color: #c7dbe7;
	color: var(--cw-brand-strong);
}
.cw-coverage-badge--empty { opacity: .7; }
@media (max-width: 760px) {
	.cw-syllabus-summary { grid-template-columns: repeat(2, minmax(120px, 1fr)); }
	.cw-objective-row { grid-template-columns: 1fr; gap: 8px; }
	.cw-coverage-badges { justify-content: flex-start; }
	.cw-syllabus-section-head { align-items: flex-start; flex-direction: column; gap: 3px; }
}


/* Staging 0.3.5 — cross-version syllabus navigation */
.cw-version-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 9px;
	margin: 12px 0 4px;
}
.cw-version-links-label {
	color: var(--cw-muted);
	font-size: .82rem;
	font-weight: 700;
}
.cw-button--outline {
	background: var(--cw-surface);
	color: var(--cw-brand-strong);
	border: 1px solid #b9cedd;
	padding: 8px 12px;
	font-size: .86rem;
}
.cw-button--outline:hover {
	background: var(--cw-soft);
	color: var(--cw-brand-strong);
}


/* Staging 0.3.6 — historical syllabus de-emphasis */
.cw-current-syllabus-link,
.cw-historical-syllabi {
	margin: 14px 0 0;
}
.cw-current-syllabus-link a,
.cw-historical-syllabi a {
	font-size: .86rem;
	font-weight: 700;
	text-decoration: none;
}
.cw-historical-syllabi {
	margin-top: 28px;
	padding-top: 18px;
	border-top: 1px solid var(--cw-border);
}
.cw-historical-syllabi a { color: var(--cw-muted); }
.cw-historical-syllabi a:hover { color: var(--cw-brand-strong); }


/* Staging 0.3.7 — public Past Papers archive */
.cw-pastpapers-summary {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	margin: 22px 0 28px;
}
.cw-pastpapers-summary .cw-summary-stat { min-width: 150px; }
.cw-pastpaper-year {
	margin: 34px 0 38px;
	scroll-margin-top: 18px;
}
.cw-pastpaper-year-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	border-bottom: 2px solid var(--cw-border);
	padding-bottom: 8px;
	margin-bottom: 14px;
}
.cw-pastpaper-year-head h2 { margin: 0; }
.cw-pastpaper-year-head span { color: var(--cw-muted); font-size: .82rem; }
.cw-pastpaper-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 14px;
}
.cw-pastpaper-card {
	display: block;
	background: var(--cw-surface);
	border: 1px solid var(--cw-border);
	border-radius: var(--cw-radius);
	box-shadow: var(--cw-shadow);
	padding: 18px 20px;
	text-decoration: none;
	color: var(--cw-text);
}
.cw-pastpaper-card:hover { border-color: var(--cw-brand); color: var(--cw-text); }
.cw-pastpaper-card strong { display: block; font-size: 1.15rem; }
.cw-pastpaper-card-title { display: block; color: var(--cw-muted); font-size: .84rem; margin-top: 2px; }
.cw-pastpaper-card-meta { display: flex; gap: 7px; flex-wrap: wrap; margin-top: 12px; }
.cw-pastpaper-card-meta span {
	display: inline-block;
	border: 1px solid var(--cw-border);
	border-radius: 999px;
	background: var(--cw-bg);
	color: var(--cw-muted);
	padding: 4px 8px;
	font-size: .73rem;
}


/* Staging 0.3.8 — component pass rates on archive cards */
.cw-viva-card-meta {
	display: flex;
	gap: 7px;
	flex-wrap: wrap;
	margin-top: 12px;
}
.cw-viva-card-meta span {
	display: inline-block;
	border: 1px solid var(--cw-border);
	border-radius: 999px;
	background: var(--cw-bg);
	color: var(--cw-muted);
	padding: 4px 8px;
	font-size: .73rem;
}
.cw-viva-prompt-count {
	display: block;
	margin-top: 5px;
	color: var(--cw-muted);
	font-size: .78rem;
}


/* v0.3.9 — individual exam outcome summary */
.cw-exam-outcomes {
  margin: 1.35rem 0 1.75rem;
  padding: 1rem 1.05rem;
  border: 1px solid var(--cw-border, #d8e0e7);
  border-radius: 14px;
  background: #fff;
}
.cw-exam-outcomes > h2 {
  margin: 0 0 .8rem;
  font-size: 1.05rem;
}
.cw-exam-outcome-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .65rem;
}
.cw-exam-outcome-card {
  padding: .8rem .9rem;
  border: 1px solid var(--cw-border, #d8e0e7);
  border-radius: 11px;
  background: #f7f9fb;
}
.cw-exam-outcome-card strong {
  display: block;
  font-size: 1.1rem;
  line-height: 1.2;
}
.cw-exam-outcome-card strong span {
  font-weight: 600;
  font-size: .88em;
}
.cw-exam-outcome-card small {
  display: block;
  margin-top: .28rem;
  color: var(--cw-muted, #607080);
  font-size: .76rem;
}
.cw-exam-outcome-card--derived {
  background: #fbfaf5;
}
.cw-exam-rules {
  margin-top: .75rem;
  border-top: 1px solid var(--cw-border, #d8e0e7);
  padding-top: .7rem;
}
.cw-exam-rules summary {
  cursor: pointer;
  font-weight: 700;
  color: var(--cw-link, #155b7a);
}
.cw-exam-rules-body {
  margin-top: .65rem;
  color: var(--cw-text, #1e2b36);
  font-size: .88rem;
}
.cw-exam-rules-body p {
  margin: .45rem 0;
}
.cw-exam-derived-note {
  color: var(--cw-muted, #607080);
}
@media (max-width: 720px) {
  .cw-exam-outcome-grid { grid-template-columns: 1fr; }
}


/* v0.3.10 — sitting cross-navigation and explicit metric labels */
.cw-sitting-switch {
  margin: .55rem 0 1rem;
  font-size: .9rem;
  font-weight: 700;
}
.cw-sitting-switch a {
  text-decoration: none;
}
.cw-sitting-switch a:hover {
  text-decoration: underline;
}
.cw-question-card .cw-stat,
.cw-viva-card .cw-stat {
  min-width: 132px;
}
.cw-viva-card .cw-stat span {
  max-width: 155px;
  line-height: 1.25;
}


/* Staging 0.3.15 — candidate-facing VIVA presentation */
.cw-viva-summary {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 22px 0 30px;
}
.cw-viva-summary-stat {
	min-width: 150px;
	background: var(--cw-surface);
	border: 1px solid var(--cw-border);
	border-radius: 10px;
	padding: 12px 14px;
}
.cw-viva-summary-stat strong {
	display: block;
	font-size: 1.25rem;
	line-height: 1.15;
}
.cw-viva-summary-stat span {
	display: block;
	margin-top: 3px;
	color: var(--cw-muted);
	font-size: .76rem;
}
.cw-viva-archive-heading {
	margin: 0 0 12px;
	font-size: 1.15rem;
}
.cw-viva-jumpnav {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 24px 0 8px;
	padding: 12px 14px;
	background: var(--cw-surface);
	border: 1px solid var(--cw-border);
	border-radius: 10px;
}
.cw-viva-jumpnav > span {
	flex: 0 0 auto;
	padding-top: 5px;
	color: var(--cw-muted);
	font-size: .76rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .05em;
}
.cw-viva-jumpnav > div {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}
.cw-viva-jumpnav a {
	display: inline-block;
	padding: 4px 8px;
	border: 1px solid var(--cw-border);
	border-radius: 999px;
	background: var(--cw-bg);
	text-decoration: none;
	font-size: .78rem;
	font-weight: 700;
}
.cw-viva-card {
	scroll-margin-top: 18px;
}
.cw-viva-title-wrap {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}
.cw-viva-number {
	flex: 0 0 42px;
	width: 42px;
	height: 42px;
	display: grid;
	place-items: center;
	border-radius: 9px;
	background: var(--cw-brand);
	color: #fff;
	font-weight: 800;
}
.cw-viva-card-kicker {
	margin: 0 0 2px;
	color: var(--cw-muted);
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.cw-viva-opening {
	margin: 16px 0 14px;
	padding: 14px 16px;
	background: var(--cw-bg);
	border-left: 4px solid var(--cw-brand);
	border-radius: 7px;
}
.cw-viva-opening > strong {
	display: block;
	margin-bottom: 5px;
	color: var(--cw-brand-strong);
	font-size: .76rem;
	text-transform: uppercase;
	letter-spacing: .05em;
}
.cw-viva-opening .cw-viva-prompt {
	margin: 0;
	font-size: 1.04rem;
	line-height: 1.65;
}
.cw-viva-mapping {
	align-items: center;
}
.cw-viva-mapping-label {
	color: var(--cw-muted);
	font-size: .73rem;
	font-weight: 800;
}
.cw-viva-prompts-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.cw-viva-prompts-head > span {
	display: inline-grid;
	place-items: center;
	min-width: 24px;
	height: 24px;
	padding: 0 7px;
	border-radius: 999px;
	background: var(--cw-bg);
	border: 1px solid var(--cw-border);
	color: var(--cw-muted);
	font-size: .72rem;
	font-weight: 800;
}
.cw-viva-prompts ol {
	margin-bottom: 0;
	padding-left: 1.5rem;
}
.cw-viva-mapping--prompt {
	margin-top: 6px;
}
.cw-viva-source {
	line-height: 1.45;
}
.cw-viva-source strong {
	color: var(--cw-text);
}

@media (max-width: 700px) {
	.cw-viva-jumpnav {
		display: block;
	}
	.cw-viva-jumpnav > span {
		display: block;
		margin-bottom: 8px;
		padding-top: 0;
	}
	.cw-viva-number {
		flex-basis: 38px;
		width: 38px;
		height: 38px;
	}
	.cw-viva-card {
		padding: 18px;
	}
	.cw-viva-summary-stat {
		flex: 1 1 135px;
		min-width: 135px;
	}
}


/* Staging 0.3.16 — VIVA opening-question semantics */
.cw-viva-opening > strong {
	letter-spacing: .045em;
}
.cw-viva-opening .cw-viva-prompt {
	font-weight: 500;
}


/* Staging 0.3.18 — multi-day VIVA jump navigation */
.cw-viva-jumpnav--grouped {
	align-items: flex-start;
}
.cw-viva-jump-groups {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 9px !important;
	width: 100%;
}
.cw-viva-jump-group {
	display: grid;
	grid-template-columns: 68px 1fr;
	align-items: start;
	gap: 10px;
}
.cw-viva-jump-group > strong {
	padding-top: 5px;
	color: var(--cw-text);
	font-size: .78rem;
	white-space: nowrap;
}
.cw-viva-jump-group > div {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}
.cw-viva-jump-group a {
	display: inline-block;
	padding: 4px 8px;
	border: 1px solid var(--cw-border);
	border-radius: 999px;
	background: var(--cw-bg);
	text-decoration: none;
	font-size: .78rem;
	font-weight: 700;
}
@media (max-width: 700px) {
	.cw-viva-jump-group {
		grid-template-columns: 1fr;
		gap: 5px;
	}
	.cw-viva-jump-group > strong {
		padding-top: 0;
	}
}


/* Staging 0.3.19 — candidate-facing Past Papers / SAQ sitting presentation */
.cw-pastpapers-archive-heading {
	margin: 0 0 12px;
	font-size: 1.15rem;
}
.cw-saq-jumpnav {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 24px 0;
	padding: 12px 14px;
	background: var(--cw-surface);
	border: 1px solid var(--cw-border);
	border-radius: 10px;
}
.cw-saq-jumpnav > span {
	flex: 0 0 auto;
	padding-top: 5px;
	color: var(--cw-muted);
	font-size: .76rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .05em;
}
.cw-saq-jumpnav > div {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}
.cw-saq-jumpnav a {
	display: inline-block;
	padding: 4px 8px;
	border: 1px solid var(--cw-border);
	border-radius: 999px;
	background: var(--cw-bg);
	text-decoration: none;
	font-size: .78rem;
	font-weight: 700;
}
.cw-question-card {
	scroll-margin-top: 18px;
}
.cw-question-heading-copy {
	min-width: 0;
	flex: 1 1 auto;
}
.cw-question-card-kicker {
	margin: 1px 0 3px;
	color: var(--cw-muted);
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .055em;
	text-transform: uppercase;
}
.cw-question-title {
	margin-top: 0;
	margin-bottom: 6px;
}
.cw-saq-mapping-label {
	align-self: center;
	color: var(--cw-muted);
	font-size: .73rem;
	font-weight: 800;
}
.cw-saq-stem {
	margin: 16px 0 18px;
	padding: 14px 16px;
	background: var(--cw-bg);
	border-left: 4px solid var(--cw-brand);
	border-radius: 7px;
}
.cw-saq-stem > strong {
	display: block;
	margin-bottom: 5px;
	color: var(--cw-brand-strong);
	font-size: .76rem;
	text-transform: uppercase;
	letter-spacing: .045em;
}
.cw-saq-stem .cw-stem {
	margin: 0;
	font-size: 1.02rem;
	line-height: 1.65;
}
.cw-saq-stem .cw-stem > :first-child {
	margin-top: 0;
}
.cw-saq-stem .cw-stem > :last-child {
	margin-bottom: 0;
}

@media (max-width: 700px) {
	.cw-saq-jumpnav {
		display: block;
	}
	.cw-saq-jumpnav > span {
		display: block;
		margin-bottom: 8px;
		padding-top: 0;
	}
}


/* Staging 0.3.20 — public-facing SAQ answer availability */
.cw-alert--pending {
	border-left-color: var(--cw-border);
	background: var(--cw-bg);
	color: var(--cw-muted);
}


/* Staging 0.3.21 — syllabus presentation */
.cw-section-jump--labelled {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 12px 14px;
	background: var(--cw-surface);
	border: 1px solid var(--cw-border);
	border-radius: 10px;
}
.cw-section-jump--labelled > span {
	flex: 0 0 auto;
	padding-top: 6px;
	color: var(--cw-muted);
	font-size: .76rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .05em;
}
.cw-section-jump--labelled > div {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}
.cw-objective-row {
	transition: background .12s ease;
}
.cw-objective-row:hover {
	background: var(--cw-bg);
}
.cw-coverage-badge {
	white-space: nowrap;
}
.cw-objective--official {
	margin: 18px 0;
}
.cw-objective--official > strong {
	display: block;
	margin-bottom: 6px;
	color: var(--cw-brand-strong);
	font-size: .76rem;
	text-transform: uppercase;
	letter-spacing: .045em;
}
.cw-objective--official > div {
	font-size: 1.02rem;
	line-height: 1.68;
}
.cw-objective-summary {
	display: grid;
	grid-template-columns: repeat(3, minmax(140px, 1fr));
	gap: 10px;
	margin: 18px 0 24px;
}
.cw-history-panel-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	padding-bottom: 12px;
	margin-bottom: 6px;
	border-bottom: 1px solid var(--cw-border);
}
.cw-history-panel-head .cw-kicker {
	margin: 0 0 2px;
}
.cw-history-panel-head h2 {
	margin: 0;
}
.cw-history-panel-head > span {
	flex: 0 0 auto;
	padding: 4px 8px;
	border: 1px solid var(--cw-border);
	border-radius: 999px;
	background: var(--cw-bg);
	color: var(--cw-muted);
	font-size: .75rem;
	font-weight: 800;
}
.cw-saq-history-title {
	display: inline-block;
	color: var(--cw-text);
	font-size: 1rem;
	font-weight: 800;
	text-decoration: none;
}
.cw-saq-history-title:hover {
	color: var(--cw-brand-strong);
}
.cw-saq-history-count {
	margin-top: 2px;
	color: var(--cw-muted);
	font-size: .78rem;
}
.cw-saq-history-appearance {
	padding: 10px 12px;
	border: 1px solid var(--cw-border);
	border-radius: 8px;
	background: var(--cw-bg);
}
.cw-saq-history-code a {
	text-decoration: none;
}
.cw-saq-history-stem {
	line-height: 1.58;
}
.cw-viva-history li {
	padding: 14px 0;
}
.cw-viva-history li > strong a {
	text-decoration: none;
}
.cw-viva-history li > div:not(.cw-viva-history-meta) {
	margin-top: 4px;
	line-height: 1.58;
}
.cw-history-empty {
	margin-bottom: 0;
	color: var(--cw-muted);
}

@media (max-width: 700px) {
	.cw-section-jump--labelled {
		display: block;
	}
	.cw-section-jump--labelled > span {
		display: block;
		padding-top: 0;
		margin-bottom: 8px;
	}
	.cw-objective-summary {
		grid-template-columns: 1fr;
	}
}


/* Staging 0.3.22 — syllabus subsection hierarchy + editorial display titles */
.cw-syllabus-subsection-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin: 20px 0 8px;
	padding: 0 8px 8px;
	border-bottom: 1px solid var(--cw-border);
}
.cw-syllabus-subsection-head h3 {
	margin: 0;
	font-size: 1.05rem;
}
.cw-syllabus-subsection-head > div {
	color: var(--cw-muted);
	font-size: .76rem;
	white-space: nowrap;
}
.cw-syllabus-subsection-head + .cw-objective-list {
	margin-bottom: 22px;
}
.cw-objective-parent {
	margin: 10px 0 4px;
	color: var(--cw-muted);
	font-size: .92rem;
	font-weight: 800;
}
.cw-objective-parent + h1 {
	margin-top: 0;
}
@media (max-width: 700px) {
	.cw-syllabus-subsection-head {
		display: block;
	}
	.cw-syllabus-subsection-head > div {
		margin-top: 3px;
		white-space: normal;
	}
}


/* Staging 0.3.23 — syllabus study navigation */
.cw-syllabus-nav-stack {
	position: relative;
	margin: 24px 0 30px;
}
.cw-section-jump--sticky {
	position: sticky;
	top: 8px;
	z-index: 20;
	margin: 0;
	box-shadow: 0 4px 18px rgba(20, 35, 50, .08);
}
.cw-section-jump--sticky a.is-current,
.cw-section-jump--sticky a[aria-current="true"] {
	background: var(--cw-brand);
	border-color: var(--cw-brand);
	color: #fff;
}
.cw-syllabus-filter {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px 14px;
	margin-top: 10px;
	padding: 10px 14px;
	border: 1px solid var(--cw-border);
	border-radius: 10px;
	background: var(--cw-surface);
}
.cw-syllabus-filter > span {
	color: var(--cw-muted);
	font-size: .76rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .05em;
}
.cw-syllabus-filter > div {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}
.cw-syllabus-filter button {
	appearance: none;
	border: 1px solid var(--cw-border);
	border-radius: 999px;
	background: var(--cw-bg);
	color: var(--cw-text);
	padding: 5px 10px;
	font: inherit;
	font-size: .78rem;
	font-weight: 700;
	cursor: pointer;
}
.cw-syllabus-filter button:hover {
	border-color: var(--cw-brand);
}
.cw-syllabus-filter button.is-active {
	background: var(--cw-brand);
	border-color: var(--cw-brand);
	color: #fff;
}
.cw-syllabus-filter button small {
	font: inherit;
	opacity: .75;
}
.cw-syllabus-filter-status {
	margin-left: auto;
	color: var(--cw-muted);
	font-size: .76rem;
}
.cw-syllabus-section {
	scroll-margin-top: 78px;
}
.cw-syllabus-subsection[hidden],
.cw-syllabus-section[hidden],
.cw-objective-row[hidden] {
	display: none !important;
}
a.cw-coverage-badge {
	text-decoration: none;
}
a.cw-coverage-badge--active:hover {
	border-color: var(--cw-brand);
	background: var(--cw-brand);
	color: #fff;
}
.cw-history-panel {
	scroll-margin-top: 20px;
}
.cw-objective-sequence-nav {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 10px;
	margin: -4px 0 24px;
}
.cw-objective-sequence-link {
	display: block;
	min-width: 0;
	padding: 12px 14px;
	border: 1px solid var(--cw-border);
	border-radius: 10px;
	background: var(--cw-surface);
	text-decoration: none;
}
.cw-objective-sequence-link small {
	display: block;
	margin-bottom: 2px;
	color: var(--cw-muted);
	font-size: .72rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .04em;
}
.cw-objective-sequence-link strong {
	display: block;
	overflow: hidden;
	color: var(--cw-text);
	font-size: .9rem;
	line-height: 1.35;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.cw-objective-sequence-link:hover {
	border-color: var(--cw-brand);
}
.cw-objective-sequence-link--next {
	text-align: right;
}

@media (max-width: 700px) {
	.cw-section-jump--sticky {
		top: 4px;
	}
	.cw-syllabus-filter {
		display: block;
	}
	.cw-syllabus-filter > span {
		display: block;
		margin-bottom: 7px;
	}
	.cw-syllabus-filter-status {
		display: block;
		margin: 8px 0 0;
	}
	.cw-objective-sequence-nav {
		grid-template-columns: 1fr;
	}
	.cw-objective-sequence-link--next {
		text-align: left;
	}
}


/* Integrated Global Reading Typography v0.1.0 */
/*
 * CICMWrecks 3.0 — Global Reading Typography v0.1.0
 *
 * Presentation only. No stored content is modified.
 *
 * The selectors intentionally target long-form candidate content rather than
 * generic site navigation. The !important declarations are limited to list
 * properties commonly suppressed by WordPress themes/plugin CSS.
 */

.cw3-global-typography{
  --cw3-list-indent:1.65rem;
  --cw3-list-indent-ordered:1.8rem;
  --cw3-list-gap:.24em;
}

/* Candidate-facing content containers used across CW3 and the Highend theme. */
.cw3-global-typography :where(
  .entry-content,
  .post-content,
  .page-content,
  .single-content,
  .cw3-content,
  .cw3-answer,
  .answer,
  .cw3-shell main,
  main article
) :where(ul,ol){
  list-style-position:outside!important;
  margin:.65em 0 .9em!important;
}

/* Exclude lists whose semantics are navigation/UI rather than study content. */
.cw3-global-typography :where(
  .entry-content,
  .post-content,
  .page-content,
  .single-content,
  .cw3-content,
  .cw3-answer,
  .answer,
  .cw3-shell main,
  main article
) ul:not(.menu):not(.sub-menu):not(.wp-block-navigation__container):not(.wp-block-social-links):not(.tabs):not(.pagination){
  display:block!important;
  list-style-type:disc!important;
  padding-inline-start:var(--cw3-list-indent)!important;
}

.cw3-global-typography :where(
  .entry-content,
  .post-content,
  .page-content,
  .single-content,
  .cw3-content,
  .cw3-answer,
  .answer,
  .cw3-shell main,
  main article
) ul:not(.menu):not(.sub-menu):not(.wp-block-navigation__container):not(.wp-block-social-links) ul{
  list-style-type:circle!important;
  margin:.3em 0!important;
}

.cw3-global-typography :where(
  .entry-content,
  .post-content,
  .page-content,
  .single-content,
  .cw3-content,
  .cw3-answer,
  .answer,
  .cw3-shell main,
  main article
) ul:not(.menu):not(.sub-menu):not(.wp-block-navigation__container):not(.wp-block-social-links) ul ul{
  list-style-type:square!important;
}

.cw3-global-typography :where(
  .entry-content,
  .post-content,
  .page-content,
  .single-content,
  .cw3-content,
  .cw3-answer,
  .answer,
  .cw3-shell main,
  main article
) ol:not(.menu):not(.sub-menu):not(.wp-block-navigation__container){
  display:block!important;
  list-style-type:decimal!important;
  padding-inline-start:var(--cw3-list-indent-ordered)!important;
}

.cw3-global-typography :where(
  .entry-content,
  .post-content,
  .page-content,
  .single-content,
  .cw3-content,
  .cw3-answer,
  .answer,
  .cw3-shell main,
  main article
) ol:not(.menu):not(.sub-menu):not(.wp-block-navigation__container) ol{
  list-style-type:lower-alpha!important;
  margin:.3em 0!important;
}

.cw3-global-typography :where(
  .entry-content,
  .post-content,
  .page-content,
  .single-content,
  .cw3-content,
  .cw3-answer,
  .answer,
  .cw3-shell main,
  main article
) ol:not(.menu):not(.sub-menu):not(.wp-block-navigation__container) ol ol{
  list-style-type:lower-roman!important;
}

/* Restore the actual list-item box if a theme/plugin changed li to block. */
.cw3-global-typography :where(
  .entry-content,
  .post-content,
  .page-content,
  .single-content,
  .cw3-content,
  .cw3-answer,
  .answer,
  .cw3-shell main,
  main article
) :where(ul,ol) > li{
  display:list-item!important;
  margin:var(--cw3-list-gap) 0!important;
  padding-left:.08rem;
}

/* Marker colour follows the current text colour, so Light/Dark/Reading modes work. */
.cw3-global-typography :where(
  .entry-content,
  .post-content,
  .page-content,
  .single-content,
  .cw3-content,
  .cw3-answer,
  .answer,
  .cw3-shell main,
  main article
) li::marker{
  color:currentColor;
  font-weight:650;
}

/* Nested lists remain visually attached to their parent item. */
.cw3-global-typography :where(
  .entry-content,
  .post-content,
  .page-content,
  .single-content,
  .cw3-content,
  .cw3-answer,
  .answer,
  .cw3-shell main,
  main article
) li > :where(ul,ol){
  margin-top:.25em!important;
  margin-bottom:.25em!important;
}

/* Table cells need slightly tighter indentation. */
.cw3-global-typography :where(
  .entry-content,
  .post-content,
  .page-content,
  .single-content,
  .cw3-content,
  .cw3-answer,
  .answer,
  .cw3-shell main,
  main article
) table :where(ul,ol){
  padding-inline-start:1.3rem!important;
  margin:.35em 0!important;
}

/* Gutenberg's wp-block-list remains a normal semantic list. */
.cw3-global-typography :where(
  .entry-content,
  .post-content,
  .page-content,
  .single-content,
  .cw3-content,
  .cw3-answer,
  .answer,
  .cw3-shell main,
  main article
) .wp-block-list{
  list-style-position:outside!important;
}

/* Avoid cramped paragraphs immediately surrounding lists. */
.cw3-global-typography :where(
  .entry-content,
  .post-content,
  .page-content,
  .single-content,
  .cw3-content,
  .cw3-answer,
  .answer,
  .cw3-shell main,
  main article
) p{
  margin-top:.7em;
  margin-bottom:.7em;
}


/* Staging 0.3.25 — approved global display controls */
:root{--cw3-font-scale:1}:root[data-cw3-font-size="small"]{--cw3-font-scale:.90}:root[data-cw3-font-size="medium"]{--cw3-font-scale:1}:root[data-cw3-font-size="large"]{--cw3-font-scale:1.15}html{font-size:calc(16px * var(--cw3-font-scale))}
:root[data-cw3-display-mode="dark"]{color-scheme:dark;--cw-bg:#11161d;--cw-surface:#171d25;--cw-text:#eef2f7;--cw-muted:#aeb8c7;--cw-border:#343d49;--cw-brand:#9bb2ff;--cw-brand-strong:#c3d0ff;--cw-soft:#253044;--cw-warning:#f0d47b;--cw-warning-bg:#3a321d;--cw-success:#8dd7a0;--cw-success-bg:#193326;--cw-danger:#f0a5a5;--cw-danger-bg:#3b2222;--cw-shadow:0 2px 14px rgba(0,0,0,.24)}
/* Keep legacy PNGs and light-theme SVG diagrams legible in dark mode. Many have transparent backgrounds with dark strokes/text. */
:root[data-cw3-display-mode="dark"] img.cw3-diagram{
	background:#fff;
}
:root[data-cw3-display-mode="dark"] .cw-answer-full .wp-block-image,
:root[data-cw3-display-mode="dark"] .cw-answer-fragment .wp-block-image,
:root[data-cw3-display-mode="dark"] .cw3-diagram-card{
	background:#fff;
	border:1px solid #d8e0e7;
	border-radius:10px;
	padding:12px;
}
:root[data-cw3-display-mode="dark"] .cw-answer-full .wp-block-image figcaption,
:root[data-cw3-display-mode="dark"] .cw-answer-fragment .wp-block-image figcaption,
:root[data-cw3-display-mode="dark"] .cw3-diagram-card figcaption{
	color:#4b5563;
}
:root[data-cw3-display-mode="reading"]{color-scheme:light;--cw-bg:#f3ead9;--cw-surface:#fbf4e6;--cw-text:#3f372d;--cw-muted: #6b5f52;--cw-border:#ded2bd;--cw-brand:#745f3e;--cw-brand-strong:#59472f;--cw-soft:#eadcc2;--cw-warning:#6d541e;--cw-warning-bg:#f4e6b9;--cw-success:#4d7049;--cw-success-bg:#e4efdc;--cw-danger:#8a4740;--cw-danger-bg:#f5dfd8;--cw-shadow:0 2px 14px rgba(75,57,35,.09)}
.cw-header-shell{display:flex;justify-content:space-between;align-items:center;gap:18px}.cw-header-cluster{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0}.cw-nav{display:flex;align-items:center;gap:2px}.cw-nav a{margin-left:0;padding:7px 8px;border-radius:7px;white-space:nowrap}.cw-nav a:hover{background:var(--cw-soft)}.cw-nav-search{background:var(--cw-soft)}
.cw-display-controls{display:flex;align-items:center;gap:6px;flex:0 0 auto}.cw-display-mode,.cw-font-size{display:flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--cw-border);border-radius:999px;background:var(--cw-soft)}.cw-display-mode button,.cw-font-size button{appearance:none;border:0;background:transparent;color:var(--cw-muted);border-radius:999px;padding:5px 7px;font:inherit;font-size:.62rem;font-weight:800;cursor:pointer;min-width:27px}.cw-display-mode button.is-active,.cw-font-size button.is-active{background:var(--cw-surface);color:var(--cw-text);box-shadow:0 1px 3px rgba(16,24,40,.10)}
.cw3-shell-top{position:fixed;right:22px;bottom:22px;z-index:9999;width:42px;height:42px;border-radius:999px;border:1px solid var(--cw-border);background:var(--cw-surface);color:var(--cw-text);font:inherit;font-size:19px;font-weight:800;line-height:1;cursor:pointer;box-shadow:0 8px 22px rgba(16,24,40,.16);opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .15s ease,transform .15s ease}.cw3-shell-top.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}
.cw-syllabus-nav-stack{display:contents}.cw-section-jump--sticky{position:-webkit-sticky;position:sticky;top:8px;z-index:50;margin-top:24px;background:var(--cw-surface);box-shadow:0 4px 18px rgba(20,35,50,.08)}body.admin-bar .cw-section-jump--sticky{top:40px}.cw-section-jump--sticky + .cw-syllabus-filter{margin-top:10px;margin-bottom:30px}
/* RC Page Layer remains active for now; hide its duplicate mode/back-to-top controls because the theme now owns them globally. */
.cw3r .cw3r-mode,.cw3r .cw3r-top{display:none!important}
@media(max-width:1050px){.cw-site-header .cw-shell{align-items:flex-start;padding-top:10px;padding-bottom:10px}.cw-header-cluster{flex-direction:column;align-items:flex-end;gap:7px}}
@media(max-width:760px){.cw-site-header .cw-shell{display:block}.cw-logo{display:inline-block;margin-bottom:7px}.cw-header-cluster{display:block}.cw-nav{display:flex;overflow-x:auto;padding-bottom:5px;scrollbar-width:thin}.cw-display-controls{margin-top:7px;justify-content:flex-start}.cw3-shell-top{right:14px;bottom:14px;width:40px;height:40px}body.admin-bar .cw-section-jump--sticky{top:50px}}
@media(prefers-reduced-motion:reduce){.cw3-shell-top{transition:none}}


/* Staging 0.3.26 — study-position navigation on long sitting pages */
@media (min-width: 761px) {
	.cw-saq-jumpnav,
	.cw-viva-jumpnav {
		position: -webkit-sticky;
		position: sticky;
		top: 8px;
		z-index: 45;
		background: var(--cw-surface);
		box-shadow: 0 4px 18px rgba(20, 35, 50, .08);
	}

	body.admin-bar .cw-saq-jumpnav,
	body.admin-bar .cw-viva-jumpnav {
		top: 40px;
	}

	/* Keep anchored questions clear of their persistent jump navigator. */
	.cw-question-card {
		scroll-margin-top: 105px;
	}
	.cw-viva-card {
		scroll-margin-top: 210px;
	}
}

/* Ranking filters are study shortcuts rather than source metadata. */
.cw-syllabus-filter button[data-cw-filter="most"],
.cw-syllabus-filter button[data-cw-filter="least"] {
	border-style: dashed;
}
.cw-syllabus-filter button[data-cw-filter="most"].is-active,
.cw-syllabus-filter button[data-cw-filter="least"].is-active {
	border-style: solid;
}

@media (max-width: 760px) {
	/*
	 * Do not pin large Q/VIVA navigation blocks on narrow screens: a three-day
	 * VIVA navigator can consume too much viewport height. Back-to-top remains
	 * available globally on mobile.
	 */
	.cw-saq-jumpnav,
	.cw-viva-jumpnav {
		position: static;
	}
}


/* Staging 0.3.27 — first-party study tables (TablePress retirement) */
.cw-study-table-wrap {
	width: 100%;
	max-width: 100%;
	margin: 1rem 0 1.35rem;
	overflow-x: auto;
	border: 1px solid var(--cw-border);
	border-radius: 10px;
	background: var(--cw-surface);
	-webkit-overflow-scrolling: touch;
}
.cw-study-table {
	width: 100%;
	min-width: 720px;
	border-collapse: collapse;
	border-spacing: 0;
	background: var(--cw-surface);
	color: var(--cw-text);
	font-size: .88rem;
	line-height: 1.42;
}
.cw-study-table caption {
	padding: 12px 14px;
	border-bottom: 1px solid var(--cw-border);
	text-align: left;
	color: var(--cw-text);
	font-weight: 800;
	font-size: .95rem;
}
.cw-study-table th,
.cw-study-table td {
	padding: 9px 10px;
	border-right: 1px solid var(--cw-border);
	border-bottom: 1px solid var(--cw-border);
	vertical-align: top;
	text-align: left;
}
.cw-study-table th:last-child,
.cw-study-table td:last-child {
	border-right: 0;
}
.cw-study-table tbody tr:last-child > td {
	border-bottom: 0;
}
.cw-study-table thead th {
	position: sticky;
	top: 0;
	z-index: 1;
	background: var(--cw-soft);
	color: var(--cw-text);
	font-weight: 800;
}
.cw-study-table tbody tr:nth-child(even) {
	background: color-mix(in srgb, var(--cw-soft) 45%, transparent);
}
.cw-study-table tbody tr:hover {
	background: var(--cw-soft);
}
.cw-study-table td[rowspan] {
	vertical-align: middle;
	font-weight: 700;
}
.cw-study-table-wrap[data-cw-legacy-table="Y10-4"] .cw-study-table {
	min-width: 900px;
}
@supports not (background: color-mix(in srgb, white 50%, transparent)) {
	.cw-study-table tbody tr:nth-child(even) {
		background: var(--cw-soft);
	}
}
@media (max-width: 700px) {
	.cw-study-table {
		font-size: .82rem;
	}
	.cw-study-table th,
	.cw-study-table td {
		padding: 8px;
	}
}


/* Staging 0.3.28 — permanent Home / Resources page layer */
.cw3-preview-banner {
	display:flex;
	justify-content:center;
	gap:8px;
	flex-wrap:wrap;
	margin:0 0 18px;
	padding:8px 12px;
	border:1px solid var(--cw-warning);
	border-radius:8px;
	background:var(--cw-warning-bg);
	color:var(--cw-text);
	font-size:.72rem;
}
.cw3-home-hero,
.cw3-inner-head {
	text-align:center;
	padding:48px 20px 30px;
}
.cw3-home-hero h1,
.cw3-inner-head h1 {
	margin:6px 0 10px;
	font-size:clamp(2.3rem,6vw,3.3rem);
	line-height:1;
	letter-spacing:-.035em;
}
.cw3-home-hero > p,
.cw3-inner-head > p {
	max-width:760px;
	margin:0 auto;
	color:var(--cw-muted);
	line-height:1.6;
}
.cw3-home-status {
	display:flex;
	justify-content:center;
	gap:8px;
	flex-wrap:wrap;
	margin-top:16px;
}
.cw3-home-status span {
	padding:5px 9px;
	border:1px solid var(--cw-border);
	border-radius:999px;
	background:var(--cw-surface);
	color:var(--cw-muted);
	font-size:.72rem;
	font-weight:700;
}
.cw3-home-search {
	margin:0 0 26px;
}
.cw3-home-section {
	padding:30px 0;
	border-top:1px solid var(--cw-border);
}
.cw3-home-section-head {
	display:flex;
	justify-content:space-between;
	align-items:end;
	gap:20px;
	margin-bottom:14px;
}
.cw3-home-section-head h2 {
	margin:3px 0 0;
	font-size:1.55rem;
}
.cw3-home-section-head > p {
	max-width:440px;
	margin:0;
	color:var(--cw-muted);
	font-size:.86rem;
	line-height:1.5;
}
.cw3-home-section-head > a {
	font-size:.84rem;
	font-weight:800;
}
.cw3-home-grid {
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:10px;
}
.cw3-home-card {
	display:flex;
	flex-direction:column;
	min-height:180px;
	padding:18px;
	border:1px solid var(--cw-border);
	border-radius:12px;
	background:var(--cw-surface);
	color:var(--cw-text);
	text-decoration:none;
	transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;
}
.cw3-home-card:hover {
	transform:translateY(-2px);
	border-color:var(--cw-brand);
	box-shadow:var(--cw-shadow);
}
.cw3-home-eyebrow {
	display:block;
	color:var(--cw-brand-strong);
	font-size:.67rem;
	font-weight:800;
	text-transform:uppercase;
	letter-spacing:.08em;
}
.cw3-home-card > strong {
	display:block;
	margin:8px 0;
	font-size:1.12rem;
	line-height:1.15;
}
.cw3-home-card p {
	margin:0;
	color:var(--cw-muted);
	font-size:.82rem;
	line-height:1.55;
}
.cw3-home-meta {
	display:block;
	margin-top:auto;
	padding-top:14px;
	color:var(--cw-muted);
	font-size:.7rem;
	font-weight:750;
}
.cw3-home-resources {
	background:transparent;
}
.cw3-home-principle {
	padding:28px 20px 34px;
	border-top:1px solid var(--cw-border);
	text-align:center;
}
.cw3-home-principle strong {
	display:block;
	margin-bottom:5px;
	font-size:1.05rem;
}
.cw3-home-principle p {
	max-width:700px;
	margin:0 auto;
	color:var(--cw-muted);
	font-size:.84rem;
	line-height:1.55;
}
.cw3-resource-page {
	padding-bottom:24px;
}
.cw3-placeholder {
	max-width:760px;
	margin:20px auto 0;
	padding:14px 16px;
	border:1px dashed var(--cw-border);
	border-radius:10px;
	background:var(--cw-soft);
	color:var(--cw-muted);
	font-size:.82rem;
	line-height:1.5;
}
.cw-page-content {
	margin-top:24px;
}
@media(max-width:1050px){
	.cw3-home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
	.cw3-home-hero,.cw3-inner-head{padding:34px 10px 24px}
	.cw3-home-section-head{display:block}
	.cw3-home-section-head>p,.cw3-home-section-head>a{display:block;margin-top:8px}
	.cw3-home-grid{grid-template-columns:1fr}
	.cw3-home-card{min-height:145px}
}


/* Staging 0.3.29 — Formula Library now fully consumes global theme tokens */
.cw3-formula-library,
.cw3-question-formulae,
.cw3-formula-single,
.cw3-formula-library-single {
	color: var(--cw-text);
}
.cw3-formula-search input {
	background: var(--cw-surface);
	color: var(--cw-text);
	border-color: var(--cw-border);
}
.cw3-formula-search input::placeholder {
	color: var(--cw-muted);
	opacity: 1;
}
.cw3-formula-section-filters button {
	background: var(--cw-surface);
	color: var(--cw-text);
	border-color: var(--cw-border);
}
.cw3-formula-section-filters button:hover {
	background: var(--cw-soft);
}
.cw3-formula-section-filters button.is-active {
	background: var(--cw-soft);
	color: var(--cw-text);
	border-color: var(--cw-brand);
	box-shadow: 0 0 0 1px var(--cw-brand) inset;
}
.cw3-formula-library__count,
.cw3-formula-card,
.cw3-formula-single > .cw3-formula-math {
	background: var(--cw-surface);
	color: var(--cw-text);
	border-color: var(--cw-border);
}
.cw3-formula-card__title,
.cw3-formula-card__title a,
.cw3-formula-single h1,
.cw3-formula-single h2,
.cw3-formula-single h3 {
	color: var(--cw-text);
}
.cw3-formula-card__title a:hover {
	color: var(--cw-brand-strong);
}
.cw3-formula-card__meta code,
.cw3-formula-single__identity code,
.cw3-formula-single__questions code {
	color: var(--cw-muted);
	background: transparent;
}
.cw3-formula-badge {
	background: var(--cw-warning-bg);
	color: var(--cw-warning);
}
.cw3-formula-tag {
	background: var(--cw-soft);
	color: var(--cw-text);
}
.cw3-formula-math,
.cw3-formula-math math,
.cw3-formula-card math,
.cw3-formula-single math {
	color: var(--cw-text);
}
.cw3-formula-tex-fallback,
.cw3-formula-single__metadata > div,
.cw3-question-formulae__count {
	background: var(--cw-soft);
	color: var(--cw-text);
}
.cw3-formula-card__footer,
.cw3-question-formulae,
.cw3-formula-single__questions {
	border-color: var(--cw-border);
}
.cw3-formula-back {
	margin: 1rem 0 .8rem;
}
.cw3-formula-back a {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	color: var(--cw-brand-strong);
	font-weight: 800;
	text-decoration: none;
}
.cw3-formula-back a:hover {
	text-decoration: underline;
}

/* Avoid browser-native white controls in dark mode. */
:root[data-cw3-display-mode="dark"] .cw3-formula-search input,
:root[data-cw3-display-mode="dark"] .cw3-formula-section-filters button,
:root[data-cw3-display-mode="dark"] .cw3-formula-card,
:root[data-cw3-display-mode="dark"] .cw3-formula-library__count,
:root[data-cw3-display-mode="dark"] .cw3-formula-single > .cw3-formula-math {
	background: var(--cw-surface) !important;
	color: var(--cw-text) !important;
}
:root[data-cw3-display-mode="dark"] .cw3-formula-section-filters button.is-active {
	background: var(--cw-soft) !important;
}


/* Staging 0.3.30 — collapsible syllabus subsections */
.cw-syllabus-view-controls {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 6px;
	padding-left: 10px;
	border-left: 1px solid var(--cw-border);
}
.cw-syllabus-view-controls > span {
	color: var(--cw-muted);
	font-size: .72rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .05em;
	margin-right: 1px;
}
.cw-syllabus-view-controls button {
	background: var(--cw-surface);
}
.cw-syllabus-subsection-head h3 {
	min-width: 0;
}
.cw-syllabus-subsection-toggle {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	max-width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--cw-text);
	font: inherit;
	font-weight: inherit;
	text-align: left;
	cursor: pointer;
}
.cw-syllabus-subsection-toggle:hover {
	color: var(--cw-brand-strong);
}
.cw-syllabus-subsection-toggle:focus-visible {
	outline: 2px solid var(--cw-brand);
	outline-offset: 4px;
	border-radius: 4px;
}
.cw-syllabus-subsection-chevron {
	flex: 0 0 auto;
	color: var(--cw-muted);
	font-size: .9em;
	line-height: 1;
	transform: rotate(0deg);
	transform-origin: center;
	transition: transform .12s ease;
}
.cw-syllabus-subsection.is-collapsed .cw-syllabus-subsection-chevron {
	transform: rotate(-90deg);
}
.cw-syllabus-subsection.is-collapsed .cw-syllabus-subsection-head {
	margin-bottom: 14px;
}
.cw-objective-list[hidden] {
	display: none !important;
}

@media (max-width: 900px) {
	.cw-syllabus-view-controls {
		width: 100%;
		margin-left: 0;
		padding: 8px 0 0;
		border-left: 0;
		border-top: 1px solid var(--cw-border);
	}
}
@media (prefers-reduced-motion: reduce) {
	.cw-syllabus-subsection-chevron {
		transition: none;
	}
}


/* Staging 0.3.32 — direct Roman-numeral sections (e.g. A.i, Q.i)
   are now proper collapsible subsection groups too. */
.cw-syllabus-subsection--direct .cw-syllabus-subsection-head h3 {
	font-weight: 800;
}


/* Staging 0.3.33 — candidate-facing canonical SAQ page */
.cw-question-page > h1 {
	max-width: 920px;
	margin-bottom: 12px;
}
.cw-question-page-nav {
	position: -webkit-sticky;
	position: sticky;
	top: 8px;
	z-index: 44;
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
	margin: 18px 0 24px;
	padding: 7px;
	border: 1px solid var(--cw-border);
	border-radius: 10px;
	background: var(--cw-surface);
	box-shadow: 0 4px 18px rgba(20,35,50,.07);
}
body.admin-bar .cw-question-page-nav {
	top: 40px;
}
.cw-question-page-nav a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 10px;
	border-radius: 7px;
	color: var(--cw-text);
	font-size: .78rem;
	font-weight: 800;
	text-decoration: none;
}
.cw-question-page-nav a:hover {
	background: var(--cw-soft);
}
.cw-question-page-nav a span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--cw-soft);
	color: var(--cw-muted);
	font-size: .67rem;
}
.cw-answer-section-head {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 18px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--cw-border);
}
.cw-answer-section-head h2 {
	margin: 2px 0 0;
}
.cw-editorial-note {
	margin: 12px 0 18px;
	padding: 10px 12px;
	border: 1px dashed var(--cw-border);
	border-radius: 8px;
	background: var(--cw-soft);
	color: var(--cw-muted);
	font-size: .76rem;
	line-height: 1.5;
}
.cw-editorial-note strong {
	color: var(--cw-text);
}
.cw-question-history {
	scroll-margin-top: 92px;
}
.cw-answer-full {
	scroll-margin-top: 92px;
}
.cw-appearances-wrap {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.cw-appearances {
	width: 100%;
	min-width: 720px;
	border-collapse: collapse;
}
.cw-appearances th {
	background: var(--cw-soft);
	color: var(--cw-text);
	font-size: .74rem;
	text-transform: uppercase;
	letter-spacing: .035em;
}
.cw-appearances th,
.cw-appearances td {
	padding: 10px 11px;
	border-bottom: 1px solid var(--cw-border);
	vertical-align: top;
	text-align: left;
}
.cw-appearances td:first-child {
	width: 120px;
	white-space: nowrap;
	font-weight: 800;
}
.cw-appearances td:last-child,
.cw-appearances th:last-child {
	width: 120px;
	text-align: right;
	white-space: nowrap;
}
.cw-appearance-qno {
	display: block;
	margin-top: 2px;
	color: var(--cw-muted);
	font-size: .7rem;
	font-weight: 700;
}
.cw-question-history .cw-history-panel-head {
	margin-bottom: 8px;
}
@media (max-width: 760px) {
	.cw-question-page-nav {
		position: static;
	}
	.cw-appearances {
		min-width: 620px;
	}
}


/* Staging 0.3.34 — SAQ media/reference and exam-history polish */

/*
 * Legacy answers sometimes contain two-image Gutenberg column blocks.
 * When an image is unavailable during browser/PDF rendering, its figure can
 * shrink to the intrinsic width of the caption, producing one-character-wide
 * vertical references. Force the column/figure/caption to retain their share
 * of the answer width independently of image loading.
 */
.cw-answer-full .wp-block-columns,
.cw-answer-fragment .wp-block-columns {
	width: 100%;
	max-width: 100%;
}
.cw-answer-full .wp-block-columns > .wp-block-column,
.cw-answer-fragment .wp-block-columns > .wp-block-column {
	min-width: 0;
	width: 100%;
}
.cw-answer-full .wp-block-columns .wp-block-image,
.cw-answer-fragment .wp-block-columns .wp-block-image,
.cw-answer-full .wp-block-columns figure,
.cw-answer-fragment .wp-block-columns figure {
	width: 100%;
	max-width: 100%;
	min-width: 0;
}
.cw-answer-full .wp-block-columns figcaption,
.cw-answer-fragment .wp-block-columns figcaption {
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow-wrap: anywhere;
	word-break: normal;
	white-space: normal;
}

/* Long URLs in captions should wrap, not collapse the layout. */
.cw-answer-full figcaption a,
.cw-answer-fragment figcaption a,
.cw-answer-full figcaption,
.cw-answer-fragment figcaption {
	overflow-wrap: anywhere;
}

/* Exam history no longer repeats Q-number beneath an already complete code. */
.cw-appearance-qno {
	display: none;
}

@media print {
	.cw-question-page-nav,
	.cw3-shell-top {
		display: none !important;
	}
	.cw-answer-full .wp-block-columns,
	.cw-answer-fragment .wp-block-columns {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px;
	}
	.cw-answer-full .wp-block-columns .wp-block-image,
	.cw-answer-fragment .wp-block-columns .wp-block-image {
		margin-top: .75rem;
		margin-bottom: .75rem;
	}
	.cw-answer-full img,
	.cw-answer-fragment img {
		max-height: 620px;
		object-fit: contain;
	}
}
@media print and (max-width: 700px) {
	.cw-answer-full .wp-block-columns,
	.cw-answer-fragment .wp-block-columns {
		grid-template-columns: 1fr;
	}
}


/* Staging 0.3.35 — individual syllabus objective page polish */
.cw-objective-page > h1 {
	max-width: 960px;
	margin-bottom: 12px;
}
.cw-objective-page .cw-objective--official {
	scroll-margin-top: 92px;
}
.cw-summary-stat--link {
	display: block;
	color: var(--cw-text);
	text-decoration: none;
	transition: border-color .12s ease, transform .12s ease, box-shadow .12s ease;
}
.cw-summary-stat--link:hover {
	border-color: var(--cw-brand);
	transform: translateY(-1px);
	box-shadow: var(--cw-shadow);
}
.cw-objective-page-nav {
	position: -webkit-sticky;
	position: sticky;
	top: 8px;
	z-index: 44;
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
	margin: -4px 0 18px;
	padding: 7px;
	border: 1px solid var(--cw-border);
	border-radius: 10px;
	background: var(--cw-surface);
	box-shadow: 0 4px 18px rgba(20,35,50,.07);
}
body.admin-bar .cw-objective-page-nav {
	top: 40px;
}
.cw-objective-page-nav a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 10px;
	border-radius: 7px;
	color: var(--cw-text);
	font-size: .78rem;
	font-weight: 800;
	text-decoration: none;
}
.cw-objective-page-nav a:hover {
	background: var(--cw-soft);
}
.cw-objective-page-nav a span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--cw-soft);
	color: var(--cw-muted);
	font-size: .67rem;
}
.cw-objective-page-nav__back {
	margin-left: auto;
	color: var(--cw-muted) !important;
}
.cw-objective-page .cw-history-panel {
	scroll-margin-top: 92px;
}
.cw-objective-page .cw-objective-sequence-nav {
	margin-top: 0;
}
.cw-objective-sequence-nav--bottom {
	margin-top: 22px !important;
	margin-bottom: 18px !important;
}
.cw-saq-history-head {
	align-items: flex-start;
}
.cw-saq-history-appearance {
	display: grid;
	grid-template-columns: 112px minmax(0, 1fr) 72px;
	gap: 12px;
	align-items: start;
}
.cw-saq-history-code {
	margin: 0;
}
.cw-saq-history-stem {
	margin: 0;
}
.cw-saq-history-success {
	text-align: right;
	color: var(--cw-muted);
	font-size: .8rem;
	font-weight: 800;
	white-space: nowrap;
}
.cw-viva-history-meta {
	margin-top: 4px;
}
.cw-objective-source-note {
	margin: 16px 0 4px;
	padding-top: 14px;
	border-top: 1px solid var(--cw-border);
	color: var(--cw-muted);
	font-size: .76rem;
	line-height: 1.5;
}
.cw-objective-source-note strong {
	color: var(--cw-text);
}
@media (max-width: 760px) {
	.cw-objective-page-nav {
		position: static;
	}
	.cw-objective-page-nav__back {
		margin-left: 0;
	}
	.cw-saq-history-appearance {
		grid-template-columns: 1fr;
		gap: 5px;
	}
	.cw-saq-history-success {
		text-align: left;
	}
}
@media print {
	.cw-objective-page-nav {
		display: none !important;
	}
	.cw-summary-stat--link {
		box-shadow: none !important;
		transform: none !important;
	}
}


/* Staging 0.3.36 — objective-specific VIVA context */
.cw-viva-history-relevant {
	margin-top: 7px;
}
.cw-viva-history-relevant > span {
	display: inline-block;
	margin-bottom: 4px;
	color: var(--cw-muted);
	font-size: .68rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .05em;
}
.cw-viva-history-relevant ol {
	margin: 0;
	padding-left: 1.2rem;
}
.cw-viva-history-relevant li {
	margin: 0 0 4px;
	padding: 0;
	border: 0;
}


/* Staging 0.3.37 — resource hub and final objective-prompt polish */
.cw-viva-history-relevant__prompts p {
	margin: 0 0 5px;
}
.cw-viva-history-relevant__prompts p:last-child {
	margin-bottom: 0;
}

.cw-resource-page {
	padding-bottom: 28px;
}
.cw3-resource-head {
	padding-bottom: 34px;
}
.cw3-resource-section {
	padding: 28px 0 34px;
	border-top: 1px solid var(--cw-border);
}
.cw3-resource-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}
.cw3-resource-grid--available {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.cw3-home-card--static {
	cursor: default;
}
.cw3-home-card--static:hover {
	transform: none;
	border-color: var(--cw-border);
	box-shadow: none;
}
.cw3-home-card--planned {
	border-style: dashed;
	background: color-mix(in srgb, var(--cw-surface) 78%, var(--cw-soft));
}
.cw3-home-card--planned .cw3-home-eyebrow,
.cw3-home-card--planned .cw3-home-meta {
	color: var(--cw-muted);
}
.cw3-resource-principle {
	margin-top: 6px;
	padding: 22px 18px;
	border: 1px solid var(--cw-border);
	border-radius: 12px;
	background: var(--cw-soft);
	text-align: center;
}
.cw3-resource-principle strong {
	display: block;
	margin-bottom: 5px;
}
.cw3-resource-principle p {
	max-width: 720px;
	margin: 0 auto;
	color: var(--cw-muted);
	font-size: .84rem;
	line-height: 1.55;
}
.cw3-resource-back {
	margin-top: 18px;
	font-size: .82rem;
	font-weight: 800;
}
.cw3-generic-fallback {
	margin-top: 30px;
}
@supports not (background: color-mix(in srgb, white 50%, black)) {
	.cw3-home-card--planned {
		background: var(--cw-soft);
	}
}
@media (max-width: 900px) {
	.cw3-resource-grid,
	.cw3-resource-grid--available {
		grid-template-columns: 1fr;
	}
}


/* Staging 0.3.38 — global navigation + homepage release-candidate polish */
.cw-logo {
	display: inline-flex;
	align-items: baseline;
	gap: 5px;
	flex: 0 0 auto;
	white-space: nowrap;
}
.cw-logo small {
	font-size: .58em;
	font-weight: 800;
	color: var(--cw-muted);
}
.cw-nav a.is-current,
.cw-nav a[aria-current="page"] {
	background: var(--cw-soft);
	color: var(--cw-brand-strong);
}
.cw-nav-search {
	background: transparent;
}
.cw-nav-search:hover {
	background: var(--cw-soft);
}
.cw3-home-card--planned {
	opacity: .82;
}
.cw3-home-card--planned strong {
	color: var(--cw-text);
}
@media (max-width: 1050px) {
	.cw-logo {
		margin-top: 3px;
	}
}
@media print {
	.cw-nav a.is-current,
	.cw-nav a[aria-current="page"] {
		background: transparent;
	}
}


/* Staging 0.3.40 — permanent Global Search visual integration
   The search plugin keeps owning the derived index + AJAX service.
   The active theme owns candidate-facing colour/typography presentation. */

.cw3-search-app {
	--cw-s-border: var(--cw-border);
	--cw-s-muted: var(--cw-muted);
	--cw-s-ink: var(--cw-text);
	--cw-s-accent: var(--cw-brand-strong);
	--cw-s-soft: var(--cw-soft);
	color: var(--cw-text);
	font-size: 1rem;
}

.cw3-search-shell {
	background: var(--cw-surface);
	border-color: var(--cw-border);
	box-shadow: var(--cw-shadow);
}

.cw3-search-preview-note {
	background: var(--cw-warning-bg);
	border-color: var(--cw-warning);
	color: var(--cw-text);
}
.cw3-search-preview-note strong {
	color: var(--cw-text);
}

.cw3-search-eyebrow {
	color: var(--cw-brand-strong);
	font-size: .69rem;
}

.cw3-search-hero h2 {
	color: var(--cw-text);
	font-size: 1.9rem;
}
.cw3-search-hero p {
	color: var(--cw-muted);
	font-size: .95rem;
	line-height: 1.6;
}

.cw3-search-box input {
	background: var(--cw-surface);
	color: var(--cw-text);
	border-color: var(--cw-border);
	font-size: 1rem;
	box-shadow: 0 2px 10px rgba(30,45,90,.04);
}
.cw3-search-box input::placeholder {
	color: var(--cw-muted);
	opacity: 1;
}
.cw3-search-box input:focus {
	border-color: var(--cw-brand);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--cw-brand) 18%, transparent);
}
.cw3-search-icon {
	color: var(--cw-muted);
}
.cw3-search-box button {
	background: var(--cw-soft);
	color: var(--cw-text);
}
.cw3-search-box button:hover {
	background: var(--cw-border);
}

.cw3-search-tabs button {
	border-color: var(--cw-border);
	background: var(--cw-surface);
	color: var(--cw-text);
	font-size: .7rem;
}
.cw3-search-tabs button:hover {
	background: var(--cw-soft);
}
.cw3-search-tabs button.is-active {
	background: var(--cw-soft);
	border-color: var(--cw-brand);
	color: var(--cw-brand-strong);
	box-shadow: 0 0 0 1px var(--cw-brand) inset;
}

.cw3-search-status {
	color: var(--cw-muted);
	font-size: .75rem;
}

.cw3-search-group-head {
	border-color: var(--cw-border);
}
.cw3-search-group-head h3 {
	color: var(--cw-text);
	font-size: .95rem;
}
.cw3-search-group-head span {
	color: var(--cw-muted);
	background: var(--cw-soft);
	font-size: .68rem;
}

.cw3-search-result {
	background: var(--cw-surface);
	border-color: var(--cw-border);
	color: var(--cw-text) !important;
}
.cw3-search-result:hover {
	border-color: var(--cw-brand);
	box-shadow: var(--cw-shadow);
}
.cw3-search-result > strong {
	color: var(--cw-text);
	font-size: .94rem;
}
.cw3-search-result p {
	color: var(--cw-muted);
	font-size: .76rem;
}

.cw3-search-type {
	color: var(--cw-brand-strong);
	font-size: .58rem;
}
.cw3-search-result code {
	background: var(--cw-soft);
	color: var(--cw-muted);
	font-size: .58rem;
}
.cw3-search-draft {
	background: var(--cw-warning-bg);
	color: var(--cw-warning);
	font-size: .58rem;
}

.cw3-search-contexts span {
	background: var(--cw-soft);
	border-color: var(--cw-border);
	color: var(--cw-muted);
	font-size: .58rem;
}

.cw3-search-empty {
	border-color: var(--cw-border);
	background: var(--cw-soft);
	color: var(--cw-muted);
}
.cw3-search-empty strong {
	color: var(--cw-text);
}
.cw3-search-loading {
	color: var(--cw-muted);
}

.cw3-search-schema-warning {
	background: var(--cw-danger-bg);
	border-color: var(--cw-danger);
	color: var(--cw-text);
}
.cw3-search-schema-warning span {
	background: var(--cw-surface);
	color: var(--cw-text);
}

.cw3-search-match {
	background: var(--cw-soft);
	border-left-color: var(--cw-brand);
}
.cw3-search-match > span {
	color: var(--cw-muted);
	font-size: .58rem;
}
.cw3-search-match p {
	color: var(--cw-text) !important;
	font-size: .76rem !important;
}
.cw3-search-match mark {
	background: var(--cw-warning-bg);
	color: var(--cw-text);
}

.cw3-search-primary {
	background: var(--cw-success-bg);
	color: var(--cw-success);
	border-color: var(--cw-success);
	font-size: .58rem;
}
.cw3-search-result:has(.cw3-search-primary) {
	border-color: var(--cw-success);
	background: var(--cw-surface);
}

/* The global A− / A / A+ control now scales the search UI too. */
:root[data-cw3-font-size="small"] .cw3-search-app {
	font-size: .9rem;
}
:root[data-cw3-font-size="medium"] .cw3-search-app {
	font-size: 1rem;
}
:root[data-cw3-font-size="large"] .cw3-search-app {
	font-size: 1.15rem;
}
.cw3-search-app .cw3-search-hero h2 {
	font-size: 1.9em;
}
.cw3-search-app .cw3-search-hero p,
.cw3-search-app .cw3-search-box input {
	font-size: 1em;
}
.cw3-search-app .cw3-search-result > strong {
	font-size: .94em;
}
.cw3-search-app .cw3-search-result p,
.cw3-search-app .cw3-search-match p {
	font-size: .76em !important;
}
.cw3-search-app .cw3-search-status {
	font-size: .75em;
}
.cw3-search-app .cw3-search-tabs button {
	font-size: .7em;
}

@supports not (box-shadow: 0 0 0 3px color-mix(in srgb, white 18%, transparent)) {
	.cw3-search-box input:focus {
		box-shadow: 0 0 0 3px rgba(90,100,130,.12);
	}
}

/* Read mode: avoid a stark white search slab inside the warm page shell. */
:root[data-cw3-display-mode="reading"] .cw3-search-shell,
:root[data-cw3-display-mode="reading"] .cw3-search-result,
:root[data-cw3-display-mode="reading"] .cw3-search-box input,
:root[data-cw3-display-mode="reading"] .cw3-search-tabs button {
	background: var(--cw-surface) !important;
}

/* Dark mode: explicitly defeat the plugin's original hard-coded white surfaces. */
:root[data-cw3-display-mode="dark"] .cw3-search-shell,
:root[data-cw3-display-mode="dark"] .cw3-search-result,
:root[data-cw3-display-mode="dark"] .cw3-search-box input,
:root[data-cw3-display-mode="dark"] .cw3-search-tabs button {
	background: var(--cw-surface) !important;
	color: var(--cw-text) !important;
	border-color: var(--cw-border) !important;
}
:root[data-cw3-display-mode="dark"] .cw3-search-tabs button.is-active,
:root[data-cw3-display-mode="dark"] .cw3-search-box button,
:root[data-cw3-display-mode="dark"] .cw3-search-contexts span,
:root[data-cw3-display-mode="dark"] .cw3-search-result code,
:root[data-cw3-display-mode="dark"] .cw3-search-group-head span,
:root[data-cw3-display-mode="dark"] .cw3-search-match,
:root[data-cw3-display-mode="dark"] .cw3-search-empty {
	background: var(--cw-soft) !important;
	color: var(--cw-text) !important;
}

@media (max-width: 650px) {
	.cw3-search-shell {
		padding: 16px;
	}
	.cw3-search-app .cw3-search-hero h2 {
		font-size: 1.55em;
	}
}


/* Staging 0.3.41 — Pharmacopeia presentation integration
   The current Pharmacopeia remains a private/admin-only AI-draft preview.
   This pass changes presentation only: it does NOT publish or approve any
   pharmacology content. */

.cw3-pharm-app {
	/*
	 * These names are also used internally by the Pharmacopeia preview plugin.
	 * Use literal CW3 palette values here rather than self-referencing variables.
	 */
	--cw-border: #d8e0e7;
	--cw-muted: #607080;
	--cw-soft: #eaf2f7;
	--cw-ink: #17212b;
	--cw-accent: #153a54;
	--cw-warning: #775700;
	--cw-danger: #8a2d2d;
	--cw-good: #1c6a41;
	color: #17212b;
	font-size: 1rem;
}

:root[data-cw3-display-mode="dark"] .cw3-pharm-app {
	--cw-border: #343d49;
	--cw-muted: #aeb8c7;
	--cw-soft: #253044;
	--cw-ink: #eef2f7;
	--cw-accent: #c3d0ff;
	--cw-warning: #f0d47b;
	--cw-danger: #f0a5a5;
	--cw-good: #8dd7a0;
	color: #eef2f7;
}

:root[data-cw3-display-mode="reading"] .cw3-pharm-app {
	--cw-border: #ded2bd;
	--cw-muted: #766a5d;
	--cw-soft: #eadcc2;
	--cw-ink: #3f372d;
	--cw-accent: #59472f;
	--cw-warning: #6d541e;
	--cw-danger: #8a4740;
	--cw-good: #4d7049;
	color: #3f372d;
}

/* Private-development banner remains deliberately distinct. */
.cw3-pharm-app .cw3-preview-banner {
	background: var(--cw-warning-bg);
	border-color: var(--cw-warning);
	color: var(--cw-text);
}
.cw3-pharm-app .cw3-preview-banner strong {
	color: var(--cw-warning);
}
.cw3-pharm-app .cw3-preview-banner span {
	color: var(--cw-text);
}
.cw3-pharm-app .cw3-review-toggle {
	border-color: var(--cw-warning);
	background: var(--cw-surface);
	color: var(--cw-warning);
}

/* Overview and primary surfaces */
.cw3-pharm-overview > div,
.cw3-library-intro,
.cw3-compare-builder,
.cw3-pharm-card,
.cw3-entity,
.cw3-field-card,
.cw3-variant-card,
.cw3-compare-matches,
.cw3-pharm-unavailable {
	background: var(--cw-surface);
	color: var(--cw-text);
	border-color: var(--cw-border);
}
.cw3-pharm-overview span,
.cw3-library-intro p,
.cw3-compare-builder > p,
.cw3-result-head,
.cw3-kind,
.cw3-entity-kicker,
.cw3-section-heading p,
.cw3-review-details,
.cw3-relation-grid small,
.cw3-compare-matches small,
.cw3-no-match,
.cw3-check,
.cw3-compare-focus,
.cw3-compare-summary span {
	color: var(--cw-muted);
}
.cw3-pharm-card h3,
.cw3-library-intro h2,
.cw3-compare-builder h2,
.cw3-entity-hero h2,
.cw3-field-title h4,
.cw3-field-section > h3,
.cw3-entity-meta-section h3,
.cw3-result-head strong {
	color: var(--cw-text);
}

/* Tabs */
.cw3-pharm-tabs {
	border-color: var(--cw-border);
}
.cw3-pharm-tabs button {
	color: var(--cw-muted);
}
.cw3-pharm-tabs button:hover {
	color: var(--cw-text);
}
.cw3-pharm-tabs button.is-active {
	border-bottom-color: var(--cw-brand);
	color: var(--cw-brand-strong);
}

/* Search and filters */
.cw3-filter-bar {
	background: var(--cw-soft);
	border-color: var(--cw-border);
}
.cw3-filter-bar label > span,
.cw3-compare-search-wrap label > span {
	color: var(--cw-muted);
}
.cw3-filter-bar input,
.cw3-filter-bar select,
.cw3-compare-search-wrap input,
.cw3-compare-focus select {
	background: var(--cw-surface);
	color: var(--cw-text);
	border-color: var(--cw-border);
}
.cw3-filter-bar input::placeholder,
.cw3-compare-search-wrap input::placeholder {
	color: var(--cw-muted);
	opacity: 1;
}
.cw3-filter-bar input:focus,
.cw3-filter-bar select:focus,
.cw3-compare-search-wrap input:focus,
.cw3-compare-focus select:focus {
	outline: none;
	border-color: var(--cw-brand);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--cw-brand) 18%, transparent);
}

/* Cards and pills */
.cw3-pharm-card:hover {
	border-color: var(--cw-brand);
	box-shadow: var(--cw-shadow);
}
.cw3-id {
	background: var(--cw-soft);
	color: var(--cw-muted);
}
.cw3-study-badge,
.cw3-selected-chip {
	background: var(--cw-soft);
	color: var(--cw-brand-strong);
}
.cw3-subtle-badge,
.cw3-context-pill,
.cw3-context-switch small {
	background: var(--cw-soft);
	color: var(--cw-muted);
	border-color: var(--cw-border);
}
.cw3-priority-count,
.cw3-review-priority {
	background: var(--cw-danger-bg);
	color: var(--cw-danger);
}
.cw3-review-recommended,
.cw3-data-gap {
	background: var(--cw-warning-bg);
	color: var(--cw-warning);
	border-color: var(--cw-warning);
}
.cw3-review-low {
	background: var(--cw-success-bg);
	color: var(--cw-success);
}
.cw3-overlay-chip {
	background: var(--cw-soft);
	color: var(--cw-brand-strong);
}
.cw3-depth-na {
	background: var(--cw-soft);
	color: var(--cw-muted);
}

/* Entity page */
.cw3-back-button,
.cw3-add-compare,
.cw3-eyebrow {
	color: var(--cw-brand-strong);
}
.cw3-entity-hero {
	background: linear-gradient(180deg, var(--cw-surface) 0%, var(--cw-soft) 100%);
	border-color: var(--cw-border);
}
.cw3-draft-warning {
	background: var(--cw-warning-bg);
	border-color: var(--cw-warning);
	color: var(--cw-text);
}
.cw3-context-selector,
.cw3-field-title,
.cw3-review-details,
.cw3-entity-meta-section,
.cw3-mappings {
	border-color: var(--cw-border);
}
.cw3-context-switch {
	background: var(--cw-surface);
	color: var(--cw-text);
	border-color: var(--cw-border);
}
.cw3-context-switch:hover {
	background: var(--cw-soft);
}
.cw3-context-switch.is-active {
	background: var(--cw-soft);
	color: var(--cw-brand-strong);
	border-color: var(--cw-brand);
}
.cw3-empty {
	color: var(--cw-muted);
}
.cw3-review-meta-grid > div,
.cw3-relation-grid > div {
	background: var(--cw-soft);
	color: var(--cw-text);
}
.cw3-source-list > div {
	border-left-color: var(--cw-border);
}

/* Mapping + comparison tables */
.cw3-mapping-table-wrap th,
.cw3-mapping-table-wrap td,
.cw3-compare-table th,
.cw3-compare-table td {
	border-color: var(--cw-border);
	color: var(--cw-text);
}
.cw3-mapping-table-wrap th,
.cw3-compare-table th,
.cw3-compare-table tbody th,
.cw3-compare-field-card > h3 {
	background: var(--cw-soft);
	color: var(--cw-text);
}
.cw3-compare-table td {
	background: var(--cw-surface);
}

/* Compare builder */
.cw3-compare-matches button {
	background: var(--cw-surface);
	color: var(--cw-text);
	border-color: var(--cw-border);
}
.cw3-compare-matches button:hover {
	background: var(--cw-soft);
}
.cw3-selected-chip button {
	color: inherit;
}
.cw3-primary-button {
	background: var(--cw-brand);
	color: var(--cw-surface);
}
:root[data-cw3-display-mode="dark"] .cw3-primary-button {
	color: #11161d;
}
.cw3-compare-field-card,
.cw3-compare-field-value {
	border-color: var(--cw-border);
	background: var(--cw-surface);
}

/* Paging + A–Z */
.cw3-az button,
.cw3-pagination button {
	background: var(--cw-surface);
	color: var(--cw-muted);
	border-color: var(--cw-border);
}
.cw3-az button:hover,
.cw3-pagination button:hover {
	color: var(--cw-brand-strong);
	border-color: var(--cw-brand);
	background: var(--cw-soft);
}
.cw3-pagination button.is-active {
	background: var(--cw-soft);
	border-color: var(--cw-brand);
	color: var(--cw-brand-strong);
}
.cw3-page-gap {
	color: var(--cw-muted);
}

/* Status / loading states */
.cw3-pharm-status.cw3-good {
	color: var(--cw-success);
}
.cw3-pharm-status.cw3-bad {
	color: var(--cw-danger);
}
.cw3-pharm-status.cw3-warn {
	color: var(--cw-warning);
}
.cw3-pharm-loading,
.cw3-pharm-empty-state {
	background: var(--cw-soft);
	color: var(--cw-muted);
	border-color: var(--cw-border);
}
.cw3-pharm-error {
	background: var(--cw-danger-bg);
	color: var(--cw-danger);
	border-color: var(--cw-danger);
}
.cw3-pk-context-note {
	background: var(--cw-soft);
	border-color: var(--cw-border);
	color: var(--cw-text);
}
.cw3-pk-context-note span {
	color: var(--cw-muted);
}

/* Global A− / A / A+ also scales the private Pharmacopeia preview. */
:root[data-cw3-font-size="small"] .cw3-pharm-app {
	font-size: .9rem;
}
:root[data-cw3-font-size="medium"] .cw3-pharm-app {
	font-size: 1rem;
}
:root[data-cw3-font-size="large"] .cw3-pharm-app {
	font-size: 1.15rem;
}
.cw3-pharm-app .cw3-library-intro h2,
.cw3-pharm-app .cw3-compare-builder h2 {
	font-size: 1.75em;
}
.cw3-pharm-app .cw3-entity-hero h2 {
	font-size: 2em;
}
.cw3-pharm-app .cw3-pharm-card h3,
.cw3-pharm-app .cw3-field-section > h3 {
	font-size: 1.12em;
}
.cw3-pharm-app .cw3-field-value {
	font-size: .82em;
	line-height: 1.55;
}
.cw3-pharm-app .cw3-result-head,
.cw3-pharm-app .cw3-pharm-status,
.cw3-pharm-app .cw3-section-heading p,
.cw3-pharm-app .cw3-compare-summary span {
	font-size: .78em;
}

/* Hard-coded white surfaces in the preview plugin are explicitly neutralised. */
:root[data-cw3-display-mode="dark"] .cw3-pharm-overview > div,
:root[data-cw3-display-mode="dark"] .cw3-library-intro,
:root[data-cw3-display-mode="dark"] .cw3-compare-builder,
:root[data-cw3-display-mode="dark"] .cw3-pharm-card,
:root[data-cw3-display-mode="dark"] .cw3-entity,
:root[data-cw3-display-mode="dark"] .cw3-field-card,
:root[data-cw3-display-mode="dark"] .cw3-variant-card,
:root[data-cw3-display-mode="dark"] .cw3-filter-bar input,
:root[data-cw3-display-mode="dark"] .cw3-filter-bar select,
:root[data-cw3-display-mode="dark"] .cw3-compare-search-wrap input,
:root[data-cw3-display-mode="dark"] .cw3-context-switch,
:root[data-cw3-display-mode="dark"] .cw3-compare-matches,
:root[data-cw3-display-mode="dark"] .cw3-compare-matches button,
:root[data-cw3-display-mode="dark"] .cw3-compare-focus select {
	background: var(--cw-surface) !important;
	color: var(--cw-text) !important;
	border-color: var(--cw-border) !important;
}

:root[data-cw3-display-mode="reading"] .cw3-pharm-overview > div,
:root[data-cw3-display-mode="reading"] .cw3-library-intro,
:root[data-cw3-display-mode="reading"] .cw3-compare-builder,
:root[data-cw3-display-mode="reading"] .cw3-pharm-card,
:root[data-cw3-display-mode="reading"] .cw3-entity,
:root[data-cw3-display-mode="reading"] .cw3-field-card,
:root[data-cw3-display-mode="reading"] .cw3-variant-card,
:root[data-cw3-display-mode="reading"] .cw3-filter-bar input,
:root[data-cw3-display-mode="reading"] .cw3-filter-bar select,
:root[data-cw3-display-mode="reading"] .cw3-compare-search-wrap input,
:root[data-cw3-display-mode="reading"] .cw3-context-switch,
:root[data-cw3-display-mode="reading"] .cw3-compare-matches,
:root[data-cw3-display-mode="reading"] .cw3-compare-matches button,
:root[data-cw3-display-mode="reading"] .cw3-compare-focus select {
	background: var(--cw-surface) !important;
	color: var(--cw-text) !important;
	border-color: var(--cw-border) !important;
}

@supports not (box-shadow: 0 0 0 3px color-mix(in srgb, white 18%, transparent)) {
	.cw3-filter-bar input:focus,
	.cw3-filter-bar select:focus,
	.cw3-compare-search-wrap input:focus,
	.cw3-compare-focus select:focus {
		box-shadow: 0 0 0 3px rgba(90,100,130,.12);
	}
}


/* Staging 0.3.42 — corrected Pharmacopeia colour ownership.
   The plugin's preview stylesheet is intentionally overridden here so the
   surrounding CW3 display mode is authoritative. */

.cw3-pharm-app .cw3-pharm-tabs button {
	color: var(--cw-muted) !important;
	border-color: var(--cw-border) !important;
}
.cw3-pharm-app .cw3-pharm-tabs button.is-active {
	color: var(--cw-accent) !important;
	border-bottom-color: var(--cw-accent) !important;
}
.cw3-pharm-app .cw3-pharm-tabs button:hover {
	color: var(--cw-ink) !important;
}

.cw3-pharm-app .cw3-pharm-status.cw3-good {
	color: var(--cw-good) !important;
}
.cw3-pharm-app .cw3-pharm-status.cw3-warn {
	color: var(--cw-warning) !important;
}
.cw3-pharm-app .cw3-pharm-status.cw3-bad {
	color: var(--cw-danger) !important;
}

.cw3-pharm-app .cw3-library-intro,
.cw3-pharm-app .cw3-compare-builder,
.cw3-pharm-app .cw3-pharm-card,
.cw3-pharm-app .cw3-entity,
.cw3-pharm-app .cw3-field-card,
.cw3-pharm-app .cw3-variant-card,
.cw3-pharm-app .cw3-compare-matches,
.cw3-pharm-app .cw3-compare-field-card,
.cw3-pharm-app .cw3-compare-field-value {
	background: var(--cw-surface) !important;
	color: var(--cw-ink) !important;
	border-color: var(--cw-border) !important;
}

.cw3-pharm-app .cw3-filter-bar {
	background: var(--cw-soft) !important;
	border-color: var(--cw-border) !important;
}
.cw3-pharm-app .cw3-filter-bar input,
.cw3-pharm-app .cw3-filter-bar select,
.cw3-pharm-app .cw3-compare-search-wrap input,
.cw3-pharm-app .cw3-compare-focus select,
.cw3-pharm-app .cw3-context-switch,
.cw3-pharm-app .cw3-compare-matches button,
.cw3-pharm-app .cw3-az button,
.cw3-pharm-app .cw3-pagination button {
	background: var(--cw-surface) !important;
	color: var(--cw-ink) !important;
	border-color: var(--cw-border) !important;
}

.cw3-pharm-app .cw3-filter-bar label > span,
.cw3-pharm-app .cw3-compare-search-wrap label > span,
.cw3-pharm-app .cw3-result-head,
.cw3-pharm-app .cw3-kind,
.cw3-pharm-app .cw3-entity-kicker,
.cw3-pharm-app .cw3-section-heading p,
.cw3-pharm-app .cw3-review-details,
.cw3-pharm-app .cw3-relation-grid small,
.cw3-pharm-app .cw3-compare-matches small,
.cw3-pharm-app .cw3-no-match,
.cw3-pharm-app .cw3-check,
.cw3-pharm-app .cw3-compare-focus,
.cw3-pharm-app .cw3-compare-summary span,
.cw3-pharm-app .cw3-page-gap {
	color: var(--cw-muted) !important;
}

.cw3-pharm-app .cw3-library-intro h2,
.cw3-pharm-app .cw3-compare-builder h2,
.cw3-pharm-app .cw3-entity-hero h2,
.cw3-pharm-app .cw3-field-title h4,
.cw3-pharm-app .cw3-field-section > h3,
.cw3-pharm-app .cw3-entity-meta-section h3,
.cw3-pharm-app .cw3-result-head strong,
.cw3-pharm-app .cw3-compare-field-card > h3,
.cw3-pharm-app .cw3-compare-table th,
.cw3-pharm-app .cw3-compare-table td {
	color: var(--cw-ink) !important;
}

.cw3-pharm-app .cw3-entity-hero {
	background: linear-gradient(180deg, var(--cw-surface) 0%, var(--cw-soft) 100%) !important;
	color: var(--cw-ink) !important;
	border-color: var(--cw-border) !important;
}
.cw3-pharm-app .cw3-entity-hero * {
	border-color: var(--cw-border);
}

.cw3-pharm-app .cw3-compare-field-card > h3,
.cw3-pharm-app .cw3-compare-table th,
.cw3-pharm-app .cw3-compare-table tbody th,
.cw3-pharm-app .cw3-mapping-table-wrap th {
	background: var(--cw-soft) !important;
	color: var(--cw-ink) !important;
	border-color: var(--cw-border) !important;
}
.cw3-pharm-app .cw3-compare-table td,
.cw3-pharm-app .cw3-mapping-table-wrap td {
	background: var(--cw-surface) !important;
	color: var(--cw-ink) !important;
	border-color: var(--cw-border) !important;
}

.cw3-pharm-app .cw3-id {
	background: var(--cw-soft) !important;
	color: var(--cw-muted) !important;
}
.cw3-pharm-app .cw3-study-badge,
.cw3-pharm-app .cw3-selected-chip,
.cw3-pharm-app .cw3-overlay-chip {
	background: var(--cw-soft) !important;
	color: var(--cw-accent) !important;
}
.cw3-pharm-app .cw3-subtle-badge,
.cw3-pharm-app .cw3-context-pill,
.cw3-pharm-app .cw3-context-switch small,
.cw3-pharm-app .cw3-depth-na {
	background: var(--cw-soft) !important;
	color: var(--cw-muted) !important;
	border-color: var(--cw-border) !important;
}
.cw3-pharm-app .cw3-context-switch.is-active,
.cw3-pharm-app .cw3-pagination button.is-active {
	background: var(--cw-soft) !important;
	color: var(--cw-accent) !important;
	border-color: var(--cw-accent) !important;
}

.cw3-pharm-app .cw3-back-button,
.cw3-pharm-app .cw3-add-compare,
.cw3-pharm-app .cw3-eyebrow {
	color: var(--cw-accent) !important;
}
.cw3-pharm-app .cw3-primary-button {
	background: var(--cw-accent) !important;
	color: var(--cw-surface) !important;
	border-color: var(--cw-accent) !important;
}
:root[data-cw3-display-mode="dark"] .cw3-pharm-app .cw3-primary-button {
	color: #11161d !important;
}

.cw3-pharm-app .cw3-review-low {
	background: var(--cw-success-bg) !important;
	color: var(--cw-good) !important;
}
.cw3-pharm-app .cw3-review-recommended,
.cw3-pharm-app .cw3-data-gap,
.cw3-pharm-app .cw3-draft-warning {
	background: var(--cw-warning-bg) !important;
	color: var(--cw-warning) !important;
	border-color: var(--cw-warning) !important;
}
.cw3-pharm-app .cw3-priority-count,
.cw3-pharm-app .cw3-review-priority {
	background: var(--cw-danger-bg) !important;
	color: var(--cw-danger) !important;
}

/* Keep the preview warning readable without turning the whole page into an
   unrelated plugin-blue / plugin-green palette. */
.cw3-pharm-app .cw3-preview-banner {
	background: transparent !important;
	border-color: var(--cw-border) !important;
	color: var(--cw-muted) !important;
}
.cw3-pharm-app .cw3-preview-banner strong,
.cw3-pharm-app .cw3-preview-banner span {
	color: var(--cw-muted) !important;
}

/* "Detail" fields: systems are prose lines, not one run-on sentence.
   JavaScript below only changes presentation; the stored draft text is untouched. */
.cw3-pharm-app .cw3-detail-lines {
	display: grid;
	gap: 7px;
}
.cw3-pharm-app .cw3-detail-line {
	display: block;
	margin: 0;
	line-height: 1.55;
}
.cw3-pharm-app .cw3-detail-line strong {
	color: var(--cw-ink);
	font-weight: 800;
}
.cw3-pharm-app .cw3-detail-preamble {
	color: var(--cw-ink);
}


/* Staging 0.3.43 — inline Detail/system formatting */
.cw3-pharm-app .cw3-inline-detail {
	display: grid;
	gap: 10px;
}
.cw3-pharm-app .cw3-inline-detail__summary {
	line-height: 1.55;
}
.cw3-pharm-app .cw3-inline-detail__heading {
	margin-top: 2px;
	color: var(--cw-ink);
	font-size: .76em;
	font-weight: 900;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.cw3-pharm-app .cw3-inline-detail__systems {
	display: grid;
	gap: 8px;
}
.cw3-pharm-app .cw3-inline-detail__system {
	display: block;
	line-height: 1.55;
}
.cw3-pharm-app .cw3-inline-detail__system strong {
	color: var(--cw-ink);
	font-weight: 850;
}
.cw3-pharm-app .cw3-inline-detail__system + .cw3-inline-detail__system {
	padding-top: 7px;
	border-top: 1px solid var(--cw-border);
}

/* CW3 Exam Outcomes canonical token contract v1.0.0 */
/* One component contract; Light/Dark/Read are supplied by the theme token values. */
.cw-exam-outcomes{
  background:var(--cw-surface)!important;
  border-color:var(--cw-border)!important;
  color:var(--cw-text)!important;
}
.cw-exam-outcomes .cw-exam-outcome-card{
  background:var(--cw-soft)!important;
  border-color:var(--cw-border)!important;
  color:var(--cw-text)!important;
  box-shadow:none!important;
}
.cw-exam-outcomes h1,
.cw-exam-outcomes h2,
.cw-exam-outcomes h3,
.cw-exam-outcomes strong,
.cw-exam-outcomes b{color:var(--cw-text)!important;}
.cw-exam-outcomes p,
.cw-exam-outcomes small,
.cw-exam-outcomes span{color:var(--cw-muted)!important;}
.cw-exam-outcomes summary{
  background:var(--cw-surface)!important;
  color:var(--cw-brand)!important;
  border-color:var(--cw-border)!important;
}

/* CW3_NAV_ANNOUNCEMENT_V1 — existing display-mode tokens only. */
.cw3-home-announcement{margin:18px 0 24px;padding:14px 18px;border:1px solid var(--cw-border);border-radius:14px;background:var(--cw-soft);color:var(--cw-text);box-shadow:var(--cw-shadow)}
.cw3-home-announcement .cw-kicker{display:block;margin:0 0 5px}.cw3-home-announcement__content{color:var(--cw-text)}.cw3-home-announcement__content>:first-child{margin-top:0}.cw3-home-announcement__content>:last-child{margin-bottom:0}.cw3-home-announcement__content a{color:var(--cw-brand-strong)}
.cw3-info-page{width:min(100% - 32px,1000px);margin:0 auto;padding:34px 0 64px;color:var(--cw-text)}.cw3-info-shell{border:1px solid var(--cw-border);border-radius:18px;background:var(--cw-surface);box-shadow:var(--cw-shadow);overflow:hidden}.cw3-info-head{margin:0;padding:24px 28px 18px;border-bottom:1px solid var(--cw-border)}.cw3-info-head h1{margin:0}.cw3-info-content{padding:24px 28px 30px;color:var(--cw-text)}.cw3-info-content>:first-child{margin-top:0}.cw3-info-content>:last-child{margin-bottom:0}.cw3-info-content img{max-width:100%;height:auto}
@media(max-width:700px){.cw3-home-announcement{margin:14px 0 20px;padding:12px 14px;border-radius:12px}.cw3-info-page{width:min(100% - 20px,1000px);padding:20px 0 44px}.cw3-info-head{padding:20px 18px 14px}.cw3-info-content{padding:20px 18px 24px}}

/* CW3_HEADER_RESPONSIVE_V1
 * Primary-header responsive contract.
 *
 * Wide desktop (>1300px): preserve the normal single-line CW3 header.
 * Tablet / narrow desktop / mobile: brand and navigation no longer compete
 * for the same horizontal space. The complete primary nav remains available
 * as a touch/mouse horizontally-scrollable row.
 *
 * This is deliberately presentation-only and uses existing theme structure:
 * .cw-site-header > .cw-header-shell > .cw-header-cluster >
 * .cw-brand + .cw-nav
 */
@media (max-width: 1300px) {
	.cw-site-header .cw-header-shell {
		min-width: 0;
	}

	.cw-site-header .cw-header-cluster {
		display: flex;
		flex: 1 1 auto;
		flex-direction: column;
		align-items: flex-start;
		min-width: 0;
		max-width: 100%;
		gap: 8px;
	}

	.cw-site-header .cw-brand {
		flex: 0 0 auto;
		max-width: 100%;
		white-space: nowrap;
	}

	.cw-site-header .cw-nav {
		box-sizing: border-box;
		display: flex;
		flex: 0 0 auto;
		flex-wrap: nowrap;
		align-items: center;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		gap: 18px;
		overflow-x: auto;
		overflow-y: hidden;
		padding: 1px 2px 6px;
		scrollbar-width: thin;
		scrollbar-color: var(--cw-border) transparent;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior-inline: contain;
		scroll-snap-type: x proximity;
	}

	.cw-site-header .cw-nav::-webkit-scrollbar {
		height: 5px;
	}

	.cw-site-header .cw-nav::-webkit-scrollbar-track {
		background: transparent;
	}

	.cw-site-header .cw-nav::-webkit-scrollbar-thumb {
		background: var(--cw-border);
		border-radius: 999px;
	}

	.cw-site-header .cw-nav > a {
		flex: 0 0 auto;
		white-space: nowrap;
		scroll-snap-align: start;
	}
}

@media (max-width: 760px) {
	.cw-site-header .cw-header-shell {
		align-items: stretch;
	}

	.cw-site-header .cw-header-cluster {
		width: 100%;
	}

	.cw-site-header .cw-nav {
		gap: 16px;
		padding-bottom: 5px;
	}

	.cw-site-header .cw-nav > a {
		line-height: 1.35;
	}
}

/* CW3_HEADER_RESPONSIVE_V1_1
 * Corrected header width + breakpoint contract.
 *
 * The previous repair keyed only off the viewport width. On a 1920px screen the
 * site header was still constrained to the legacy ~1360px shell, so the expanded
 * navigation could collide with the CICMWrecks brand even though the viewport was
 * "wide". This block fixes both sides of the equation:
 *
 *  - genuinely wide screens: use a wider header shell and explicit brand/nav gap;
 *  - <=1650px: use the proven stacked brand + scrollable navigation layout.
 */

/* Wide desktop: give the enlarged navigation enough actual container width. */
.cw-site-header .cw-header-shell {
	width: min(calc(100% - 32px), 1680px);
	max-width: 1680px;
}

@media (min-width: 1651px) {
	.cw-site-header .cw-header-cluster {
		display: flex;
		flex: 1 1 auto;
		flex-direction: row;
		align-items: center;
		min-width: 0;
		max-width: 100%;
		gap: 28px;
	}

	.cw-site-header .cw-brand {
		flex: 0 0 auto;
		min-width: max-content;
		white-space: nowrap;
	}

	.cw-site-header .cw-nav {
		display: flex;
		flex: 0 1 auto;
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: center;
		min-width: 0;
		width: auto;
		max-width: none;
		gap: 20px;
		overflow: visible;
		padding: 0;
		scroll-snap-type: none;
	}

	.cw-site-header .cw-nav > a {
		flex: 0 0 auto;
		white-space: nowrap;
	}
}

/* Intermediate desktop / tablet / phone: do not squeeze brand + nav together. */
@media (max-width: 1650px) {
	.cw-site-header .cw-header-shell {
		min-width: 0;
	}

	.cw-site-header .cw-header-cluster {
		display: flex;
		flex: 1 1 auto;
		flex-direction: column;
		align-items: flex-start;
		min-width: 0;
		max-width: 100%;
		gap: 8px;
	}

	.cw-site-header .cw-brand {
		flex: 0 0 auto;
		max-width: 100%;
		white-space: nowrap;
	}

	.cw-site-header .cw-nav {
		box-sizing: border-box;
		display: flex;
		flex: 0 0 auto;
		flex-wrap: nowrap;
		align-items: center;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		gap: 18px;
		overflow-x: auto;
		overflow-y: hidden;
		padding: 1px 2px 6px;
		scrollbar-width: thin;
		scrollbar-color: var(--cw-border) transparent;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior-inline: contain;
		scroll-snap-type: x proximity;
	}

	.cw-site-header .cw-nav::-webkit-scrollbar {
		height: 5px;
	}

	.cw-site-header .cw-nav::-webkit-scrollbar-track {
		background: transparent;
	}

	.cw-site-header .cw-nav::-webkit-scrollbar-thumb {
		background: var(--cw-border);
		border-radius: 999px;
	}

	.cw-site-header .cw-nav > a {
		flex: 0 0 auto;
		white-space: nowrap;
		scroll-snap-align: start;
	}
}

@media (max-width: 760px) {
	.cw-site-header .cw-header-shell {
		align-items: stretch;
	}

	.cw-site-header .cw-header-cluster {
		width: 100%;
	}

	.cw-site-header .cw-nav {
		gap: 16px;
		padding-bottom: 5px;
	}

	.cw-site-header .cw-nav > a {
		line-height: 1.35;
	}
}

/* CW3_RC2_VISUAL_TOKEN_CONTRACT_V1
 * Derived from the 1,069-route / 6,438-state Visual QA audit.
 * Theme remains the presentation owner. These rules fix shared token and legacy
 * content behavior; they do not create a parallel appearance engine.
 */
:root{
	--cw-on-brand:#ffffff;
	--cw-figure-canvas:#ffffff;
}
html[data-cw3-display-mode="dark"]{
	--cw-on-brand:#17212b;
	--cw-figure-canvas:#f5f5f2;
}
html[data-cw3-display-mode="reading"]{
	--cw-on-brand:#ffffff;
	--cw-figure-canvas:#fbf4e6;
}

/* Brand-filled candidate controls require a mode-aware foreground. */
.cw-question-number,
.cw-button.cw-show-answer{
	color:var(--cw-on-brand);
}

/* Generic historical/out-of-syllabus notices must not retain a light canvas. */
html[data-cw3-display-mode="dark"] .cw-alert{
	background:var(--cw-soft);
	color:var(--cw-text);
	border-color:var(--cw-border);
}
html[data-cw3-display-mode="dark"] .cw-alert strong{
	color:var(--cw-text);
}

/* Legacy WordPress striped tables: only normalize generic stripes.
 * Explicit semantic cell backgrounds/classes are deliberately preserved.
 */
html[data-cw3-display-mode="dark"] .cw-answer-full figure.wp-block-table.is-style-stripes tbody tr:nth-child(odd) > td:not(.has-background):not([style*="background"]),
html[data-cw3-display-mode="dark"] #master-answer figure.wp-block-table.is-style-stripes tbody tr:nth-child(odd) > td:not(.has-background):not([style*="background"]){
	background:var(--cw-soft);
	color:var(--cw-text);
}
html[data-cw3-display-mode="dark"] .cw-answer-full figure.wp-block-table.is-style-stripes tbody tr:nth-child(even) > td:not(.has-background):not([style*="background"]),
html[data-cw3-display-mode="dark"] #master-answer figure.wp-block-table.is-style-stripes tbody tr:nth-child(even) > td:not(.has-background):not([style*="background"]){
	background:var(--cw-surface);
	color:var(--cw-text);
}

/* Candidate answer tables/math must scroll locally instead of widening the page. */
.cw-answer-full figure.wp-block-table,
#master-answer figure.wp-block-table,
.cw-answer-full .cw-study-table-wrap,
#master-answer .cw-study-table-wrap,
.cw-answer-full .wp-block-math,
#master-answer .wp-block-math,
.cw-answer-full .cw3-formula-math,
#master-answer .cw3-formula-math{
	box-sizing:border-box;
	max-width:100%;
	overflow-x:auto;
	overflow-y:hidden;
	-webkit-overflow-scrolling:touch;
}

/* Preserve deliberate table width; the wrapper owns scrolling. */
.cw-answer-full figure.wp-block-table > table,
#master-answer figure.wp-block-table > table{
	max-width:none;
}

/* Media-hold notices follow the corrected shared muted token. */
.cw3-media-hold{
	color:var(--cw-muted);
}

/* CW3_RC2_RESIDUAL_THEME_V1
 * Residual selectors identified by the post-RC2 browser audit.
 */

/* Flexible Table Block uses a different wrapper class from core wp-block-table.
 * Contain it locally so a wide comparison table scrolls instead of widening mobile.
 */
.cw-answer-full figure.wp-block-flexible-table-block-table,
#master-answer figure.wp-block-flexible-table-block-table{
	box-sizing:border-box;
	display:block;
	width:100%;
	max-width:100% !important;
	min-width:0;
	overflow-x:auto !important;
	overflow-y:hidden;
	-webkit-overflow-scrolling:touch;
}
.cw-answer-full figure.wp-block-flexible-table-block-table > table,
#master-answer figure.wp-block-flexible-table-block-table > table{
	max-width:none;
}

/* These are the remaining light WordPress palette backgrounds seen in the full
 * legacy answer audit. Preserve the authored background colour; use a dark
 * foreground in Dark mode instead of inheriting the site's light text.
 */
html[data-cw3-display-mode="dark"] .cw-answer-full :is(
	.has-cyan-bluish-gray-background-color,
	.has-pale-cyan-blue-background-color,
	.has-light-green-cyan-background-color,
	.has-pale-pink-background-color
),
html[data-cw3-display-mode="dark"] #master-answer :is(
	.has-cyan-bluish-gray-background-color,
	.has-pale-cyan-blue-background-color,
	.has-light-green-cyan-background-color,
	.has-pale-pink-background-color
){
	color:#17212b !important;
}
html[data-cw3-display-mode="dark"] .cw-answer-full :is(
	.has-cyan-bluish-gray-background-color,
	.has-pale-cyan-blue-background-color,
	.has-light-green-cyan-background-color,
	.has-pale-pink-background-color
) *:not(.has-text-color),
html[data-cw3-display-mode="dark"] #master-answer :is(
	.has-cyan-bluish-gray-background-color,
	.has-pale-cyan-blue-background-color,
	.has-light-green-cyan-background-color,
	.has-pale-pink-background-color
) *:not(.has-text-color){
	color:#17212b !important;
}

/* Planned cards were still carrying pre-token muted colours. */
.cw3-home-card--planned .cw3-home-eyebrow,
.cw3-home-card--planned .cw3-home-meta,
.cw3-home-card--planned p{
	color:var(--cw-muted) !important;
}

/* CW3_FINAL_SELECTOR_CONTRACT_V1
 * Final selector-level cleanup derived from the completed Visual QA Harness v1.2
 * crawl (1071 routes / 6450 rendered states).
 *
 * No content or data is changed. These rules resolve the remaining accessibility
 * specificity and genuine page-width cases while preserving intentional semantic
 * colours and local horizontal scrollers.
 */

/* ---------- Planned Home / Resources cards ---------- */
/* Earlier component selectors still won in the browser despite the generic
 * residual rule. Match the rendered class stack directly and use the canonical
 * mode tokens.
 */
html .cw3-home-card.cw3-home-card--static.cw3-home-card--planned > .cw3-home-eyebrow,
html .cw3-home-card.cw3-home-card--static.cw3-home-card--planned > .cw3-home-meta,
html .cw3-home-card.cw3-home-card--static.cw3-home-card--planned > p{
	color:var(--cw-muted) !important;
}

/* ---------- Syllabus coverage / active filters ---------- */
html[data-cw3-display-mode="light"] .cw-coverage-badges .cw-coverage-badge.cw-coverage-badge--empty{
	color:#66717c !important;
}
html[data-cw3-display-mode="reading"] .cw-coverage-badges .cw-coverage-badge.cw-coverage-badge--empty{
	color:#6b5f52 !important;
}

/* Dark active filter uses a deliberately pale brand surface; dark ink is the
 * accessible foreground. Read mode keeps a dark brown brand and a light foreground.
 */
html[data-cw3-display-mode="dark"] [data-cw-syllabus-controls] button.is-active,
html[data-cw3-display-mode="dark"] .cw-syllabus-controls button.is-active,
html[data-cw3-display-mode="dark"] button[data-cw-filter].is-active{
	color:#17212b !important;
}
html[data-cw3-display-mode="reading"] [data-cw-syllabus-controls] button.is-active,
html[data-cw3-display-mode="reading"] .cw-syllabus-controls button.is-active,
html[data-cw3-display-mode="reading"] button[data-cw-filter].is-active{
	color:#ffffff !important;
}
html [data-cw-syllabus-controls] button.is-active small,
html .cw-syllabus-controls button.is-active small,
html button[data-cw-filter].is-active small{
	color:inherit !important;
	opacity:1 !important;
}

/* ---------- Legacy human-authored answer colours ---------- */
/* Pale legacy table cells/headings: keep the authored background, but do not
 * inherit the Dark-mode near-white foreground.
 */
html[data-cw3-display-mode="dark"] .cw-answer-full [style*="#abb8c3"],
html[data-cw3-display-mode="dark"] .cw-answer-fragment [style*="#abb8c3"],
html[data-cw3-display-mode="dark"] #master-answer [style*="#abb8c3"],
html[data-cw3-display-mode="dark"] .cw-answer-full [style*="#ABB8C3"],
html[data-cw3-display-mode="dark"] .cw-answer-fragment [style*="#ABB8C3"],
html[data-cw3-display-mode="dark"] #master-answer [style*="#ABB8C3"]{
	color:#17212b !important;
}
html[data-cw3-display-mode="dark"] .cw-answer-full [style*="#abb8c3"] *,
html[data-cw3-display-mode="dark"] .cw-answer-fragment [style*="#abb8c3"] *,
html[data-cw3-display-mode="dark"] #master-answer [style*="#abb8c3"] *,
html[data-cw3-display-mode="dark"] .cw-answer-full [style*="#ABB8C3"] *,
html[data-cw3-display-mode="dark"] .cw-answer-fragment [style*="#ABB8C3"] *,
html[data-cw3-display-mode="dark"] #master-answer [style*="#ABB8C3"] *{
	color:#17212b !important;
}

/* Plain headings should always consume the current display-mode foreground.
 * Explicit WordPress text-colour classes remain exempt.
 */
html[data-cw3-display-mode="dark"] :is(.cw-answer-full,.cw-answer-fragment,#master-answer) .wp-block-heading:not(.has-text-color),
html[data-cw3-display-mode="dark"] :is(.cw-answer-full,.cw-answer-fragment,#master-answer) .wp-block-heading:not(.has-text-color) strong{
	color:var(--cw-text) !important;
}

/* The WordPress "cyan bluish gray" foreground is too pale as text on both Light
 * and Read. Preserve its muted meaning through the site's accessible muted token.
 */
html :is(.cw-answer-full,.cw-answer-fragment,#master-answer) .has-cyan-bluish-gray-color.has-text-color{
	color:var(--cw-muted) !important;
}

/* Preserve the semantic hue of legacy green/purple/red annotations while using
 * accessible mode-specific shades instead of WordPress's low-contrast defaults.
 */
html[data-cw3-display-mode="light"] :is(.cw-answer-full,.cw-answer-fragment,#master-answer) .has-vivid-green-cyan-color{
	color:#006b45 !important;
}
html[data-cw3-display-mode="reading"] :is(.cw-answer-full,.cw-answer-fragment,#master-answer) .has-vivid-green-cyan-color{
	color:#006b45 !important;
}
html[data-cw3-display-mode="dark"] :is(.cw-answer-full,.cw-answer-fragment,#master-answer) .has-vivid-green-cyan-color{
	color:#72e6b4 !important;
}

html[data-cw3-display-mode="light"] :is(.cw-answer-full,.cw-answer-fragment,#master-answer) .has-vivid-purple-color{
	color:#6d28d9 !important;
}
html[data-cw3-display-mode="reading"] :is(.cw-answer-full,.cw-answer-fragment,#master-answer) .has-vivid-purple-color{
	color:#6d28d9 !important;
}
html[data-cw3-display-mode="dark"] :is(.cw-answer-full,.cw-answer-fragment,#master-answer) .has-vivid-purple-color{
	color:#c4a7ff !important;
}

html[data-cw3-display-mode="light"] :is(.cw-answer-full,.cw-answer-fragment,#master-answer) .has-vivid-red-color{
	color:#b42318 !important;
}
html[data-cw3-display-mode="reading"] :is(.cw-answer-full,.cw-answer-fragment,#master-answer) .has-vivid-red-color{
	color:#9f2d23 !important;
}
html[data-cw3-display-mode="dark"] :is(.cw-answer-full,.cw-answer-fragment,#master-answer) .has-vivid-red-color{
	color:#ff8a80 !important;
}

/* ---------- Mobile containment ---------- */
@media (max-width:760px){
	/* The header navigation is intentionally horizontally scrollable. Contain its
	 * intrinsic width so the scroller cannot contribute to document scrollWidth.
	 */
	.cw-site-header .cw-header-cluster,
	.cw-site-header .cw-nav{
		max-width:100%;
		min-width:0;
		contain:inline-size;
	}

	/* Exam-appearance and legacy answer tables remain locally scrollable. */
	.cw-appearances-wrap,
	.cw-answer-full figure.wp-block-table,
	.cw-answer-full figure.wp-block-flexible-table-block-table,
	.cw-answer-fragment figure.wp-block-table,
	.cw-answer-fragment figure.wp-block-flexible-table-block-table,
	#master-answer figure.wp-block-table,
	#master-answer figure.wp-block-flexible-table-block-table{
		box-sizing:border-box;
		display:block;
		width:100%;
		max-width:100% !important;
		min-width:0;
		overflow-x:auto !important;
		overflow-y:hidden;
		-webkit-overflow-scrolling:touch;
		contain:inline-size;
	}

	/* Long human-authored reference URLs should wrap rather than widen the page. */
	:is(.cw-answer-full,.cw-answer-fragment,#master-answer) :is(a,em,cite){
		overflow-wrap:anywhere;
		word-break:break-word;
	}

	/* Expanded answers on sitting pages use cw-answer-fragment, which was not in
	 * the first MathML containment rule.
	 */
	.cw-answer-fragment .wp-block-math,
	.cw-answer-fragment .cw3-formula-math,
	.cw-answer-full .wp-block-math,
	#master-answer .wp-block-math{
		box-sizing:border-box;
		display:block;
		width:100%;
		max-width:100%;
		min-width:0;
		overflow-x:auto;
		overflow-y:hidden;
		-webkit-overflow-scrolling:touch;
		contain:inline-size;
	}
}

/* CW3_PRESENTATION_FREEZE_RESIDUAL_V1
 * Exact residual cascade fixes from Visual QA Harness v1.2.1.
 */

/* The token fixes were correct; legacy component opacity was blending the token
 * back below AA. Keep the same visual hierarchy using colour, not opacity.
 */
html .cw3-home-card.cw3-home-card--static.cw3-home-card--planned > :is(.cw3-home-eyebrow,.cw3-home-meta,p){
	color:var(--cw-muted) !important;
	opacity:1 !important;
}
html .cw-coverage-badges .cw-coverage-badge.cw-coverage-badge--empty{
	color:var(--cw-muted) !important;
	opacity:1 !important;
}

/* This block intentionally comes AFTER the generic answer-heading rule from the
 * previous cleanup. Pale human-authored WordPress backgrounds require dark ink
 * even while the surrounding page is Dark mode.
 */
html[data-cw3-display-mode="dark"] :is(.cw-answer-full,.cw-answer-fragment,#master-answer)
:is(
	.wp-block-heading.has-cyan-bluish-gray-background-color.has-background,
	.wp-block-heading.has-pale-cyan-blue-background-color.has-background,
	.wp-block-heading.has-light-green-cyan-background-color.has-background,
	.wp-block-heading.has-pale-pink-background-color.has-background,
	.has-cyan-bluish-gray-background-color.has-background,
	.has-pale-cyan-blue-background-color.has-background,
	.has-light-green-cyan-background-color.has-background,
	.has-pale-pink-background-color.has-background,
	[style*="background-color:#abb8c3"],
	[style*="background-color: #abb8c3"],
	[style*="background-color:#8ed1fc"],
	[style*="background-color: #8ed1fc"],
	[style*="background-color:#7bdcb5"],
	[style*="background-color: #7bdcb5"],
	[style*="background-color:#f78da7"],
	[style*="background-color: #f78da7"]
),
html[data-cw3-display-mode="dark"] :is(.cw-answer-full,.cw-answer-fragment,#master-answer)
:is(
	.wp-block-heading.has-cyan-bluish-gray-background-color.has-background,
	.wp-block-heading.has-pale-cyan-blue-background-color.has-background,
	.wp-block-heading.has-light-green-cyan-background-color.has-background,
	.wp-block-heading.has-pale-pink-background-color.has-background,
	.has-cyan-bluish-gray-background-color.has-background,
	.has-pale-cyan-blue-background-color.has-background,
	.has-light-green-cyan-background-color.has-background,
	.has-pale-pink-background-color.has-background,
	[style*="background-color:#abb8c3"],
	[style*="background-color: #abb8c3"],
	[style*="background-color:#8ed1fc"],
	[style*="background-color: #8ed1fc"],
	[style*="background-color:#7bdcb5"],
	[style*="background-color: #7bdcb5"],
	[style*="background-color:#f78da7"],
	[style*="background-color: #f78da7"]
) *{
	color:#17212b !important;
}

/* One historical strong element carries literal black without a semantic colour
 * class. Literal black on Dark mode should inherit the normal foreground.
 */
html[data-cw3-display-mode="dark"] :is(.cw-answer-full,.cw-answer-fragment,#master-answer) strong[style*="color:#000"],
html[data-cw3-display-mode="dark"] :is(.cw-answer-full,.cw-answer-fragment,#master-answer) strong[style*="color: #000"]{
	color:var(--cw-text) !important;
}

/* Final three mobile width cases. Force the *container*, not the table, to own
 * the horizontal scroll. `contain:paint` prevents wide descendants from
 * contributing to document scrollWidth while preserving local scrolling.
 */
@media(max-width:760px){
	.cw-question-page,
	.cw-question-page > .cw-panel,
	.cw-question-page > .cw-answer-full,
	.cw-question-page > .cw-answer-fragment{
		min-width:0 !important;
		max-width:100% !important;
	}

	.cw-question-history .cw-appearances-wrap{
		box-sizing:border-box !important;
		display:block !important;
		width:100% !important;
		max-width:100% !important;
		min-width:0 !important;
		overflow-x:auto !important;
		overflow-y:hidden !important;
		-webkit-overflow-scrolling:touch;
		contain:layout paint inline-size;
	}

	:is(.cw-answer-full,.cw-answer-fragment,#master-answer) figure.wp-block-flexible-table-block-table,
	:is(.cw-answer-full,.cw-answer-fragment,#master-answer) figure.wp-block-table{
		box-sizing:border-box !important;
		display:block !important;
		width:100% !important;
		max-width:100% !important;
		min-width:0 !important;
		margin-left:0 !important;
		margin-right:0 !important;
		overflow-x:auto !important;
		overflow-y:hidden !important;
		-webkit-overflow-scrolling:touch;
		contain:layout paint inline-size;
	}
}

/* CW3_PRESENTATION_A11Y_FREEZE_THEME_V1
 * Corrections from the post-repair Visual QA Harness v1.2.1 evidence crawl.
 * These rules deliberately come last in the theme cascade.
 */

/* Planned cards were still composited through ancestor opacity. Removing opacity
 * only in the two affected modes lets the accessible muted token render at its
 * real colour while preserving the deliberately subdued card treatment.
 */
html[data-cw3-display-mode="light"] .cw3-home-card.cw3-home-card--static.cw3-home-card--planned,
html[data-cw3-display-mode="reading"] .cw3-home-card.cw3-home-card--static.cw3-home-card--planned{
    opacity:1 !important;
}
html[data-cw3-display-mode="light"] .cw3-home-card.cw3-home-card--static.cw3-home-card--planned{
    background:#f9fbfc !important;
}
html[data-cw3-display-mode="reading"] .cw3-home-card.cw3-home-card--static.cw3-home-card--planned{
    background:#f6eedd !important;
}
html .cw3-home-card.cw3-home-card--static.cw3-home-card--planned > :is(.cw3-home-eyebrow,.cw3-home-meta,p,h3){
    color:var(--cw-muted) !important;
    opacity:1 !important;
}

/* The previous freeze patch accidentally joined the answer-container :is() and
 * the pale-background :is() without a descendant combinator. This is the exact
 * corrected selector: note the literal space before the second :is().
 */
html[data-cw3-display-mode="dark"] :is(.cw-answer-full,.cw-answer-fragment,#master-answer) :is(
    .wp-block-heading.has-cyan-bluish-gray-background-color.has-background,
    .wp-block-heading.has-pale-cyan-blue-background-color.has-background,
    .wp-block-heading.has-light-green-cyan-background-color.has-background,
    .wp-block-heading.has-pale-pink-background-color.has-background,
    .has-cyan-bluish-gray-background-color.has-background,
    .has-pale-cyan-blue-background-color.has-background,
    .has-light-green-cyan-background-color.has-background,
    .has-pale-pink-background-color.has-background,
    [style*="background-color:#abb8c3"],
    [style*="background-color: #abb8c3"],
    [style*="background-color:#8ed1fc"],
    [style*="background-color: #8ed1fc"],
    [style*="background-color:#7bdcb5"],
    [style*="background-color: #7bdcb5"],
    [style*="background-color:#f78da7"],
    [style*="background-color: #f78da7"]
),
html[data-cw3-display-mode="dark"] :is(.cw-answer-full,.cw-answer-fragment,#master-answer) :is(
    .wp-block-heading.has-cyan-bluish-gray-background-color.has-background,
    .wp-block-heading.has-pale-cyan-blue-background-color.has-background,
    .wp-block-heading.has-light-green-cyan-background-color.has-background,
    .wp-block-heading.has-pale-pink-background-color.has-background,
    .has-cyan-bluish-gray-background-color.has-background,
    .has-pale-cyan-blue-background-color.has-background,
    .has-light-green-cyan-background-color.has-background,
    .has-pale-pink-background-color.has-background,
    [style*="background-color:#abb8c3"],
    [style*="background-color: #abb8c3"],
    [style*="background-color:#8ed1fc"],
    [style*="background-color: #8ed1fc"],
    [style*="background-color:#7bdcb5"],
    [style*="background-color: #7bdcb5"],
    [style*="background-color:#f78da7"],
    [style*="background-color: #f78da7"]
) *{
    color:#17212b !important;
}

/* CW3_LEGACY_DIAGRAM_VISIBILITY_V1
 * The retired media-migration layer previously emitted attachment-specific
 * display:none!important rules. Keep restored legacy figures visible even if
 * an older cached page still contains that suppression CSS.
 */
html[data-cw3-display-mode] body :is(.cw-answer-full,.cw-answer-fragment,#master-answer) figure.cw3-legacy-pending{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    position:relative !important;
    overflow:visible !important;
    min-height:1px !important;
}
html[data-cw3-display-mode] body :is(.cw-answer-full,.cw-answer-fragment,#master-answer) figure.cw3-legacy-pending > img.cw3-diagram--legacy-pending{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    position:static !important;
    width:auto !important;
    max-width:100% !important;
    height:auto !important;
    min-height:1px !important;
    margin:0 auto !important;
    clip:auto !important;
    clip-path:none !important;
    transform:none !important;
    filter:none !important;
    mix-blend-mode:normal !important;
}

/* Dark-mode image canvas: diagrams were authored for light backgrounds. */
html[data-cw3-display-mode="dark"] body :is(.cw-answer-full,.cw-answer-fragment,#master-answer) figure.wp-block-image:has(img.cw3-diagram){
    background:#fff !important;
    border:1px solid #d8e0e7 !important;
    border-radius:10px !important;
    padding:12px !important;
    color:#17212b !important;
}
html[data-cw3-display-mode="dark"] body :is(.cw-answer-full,.cw-answer-fragment,#master-answer) figure.wp-block-image:has(img.cw3-diagram) img.cw3-diagram{
    background:#fff !important;
    filter:none !important;
    mix-blend-mode:normal !important;
}
html[data-cw3-display-mode="dark"] body :is(.cw-answer-full,.cw-answer-fragment,#master-answer) figure.wp-block-image:has(img.cw3-diagram) figcaption,
html[data-cw3-display-mode="dark"] body :is(.cw-answer-full,.cw-answer-fragment,#master-answer) figure.wp-block-image:has(img.cw3-diagram) figcaption *{
    color:#4b5563 !important;
}

/* CW3 print: one exam question + its canonical answer, without site chrome. */
.cw-print-only{
    display:none !important;
}
.cw-print-actions{
    margin:0 0 18px;
}
@media print{
    @page{
        margin:14mm;
    }
    html,
    body{
        background:#fff !important;
        color:#000 !important;
    }
    body.cw-print-single-question .cw-site-header,
    body.cw-print-single-question .cw-site-footer,
    body.cw-print-single-question .cw3-shell-top,
    body.cw-print-canonical-question .cw-site-header,
    body.cw-print-canonical-question .cw-site-footer,
    body.cw-print-canonical-question .cw3-shell-top{
        display:none !important;
    }
    body.cw-print-single-question main.cw-shell,
    body.cw-print-canonical-question main.cw-question-page{
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
        padding:0 !important;
    }
    body.cw-print-single-question main.cw-shell > *{
        display:none !important;
    }
    body.cw-print-single-question main.cw-shell > .cw-print-target{
        display:block !important;
    }
    body.cw-print-single-question .cw-print-target{
        border:0 !important;
        box-shadow:none !important;
        background:#fff !important;
        color:#000 !important;
        padding:0 !important;
        margin:0 !important;
    }
    body.cw-print-single-question .cw-print-target .cw-meta-row,
    body.cw-print-single-question .cw-print-target .cw-repeat-list,
    body.cw-print-single-question .cw-print-target .cw-stats,
    body.cw-print-single-question .cw-print-target .cw-comments,
    body.cw-print-single-question .cw-print-target .cw-actions{
        display:none !important;
    }
    body.cw-print-single-question .cw-print-target .cw-answer-fragment{
        display:block !important;
        border:0 !important;
        box-shadow:none !important;
        background:#fff !important;
        color:#000 !important;
        padding:0 !important;
        margin-top:18px !important;
    }
    body.cw-print-canonical-question main.cw-question-page > *{
        display:none !important;
    }
    body.cw-print-canonical-question main.cw-question-page > h1,
    body.cw-print-canonical-question main.cw-question-page > .cw-print-question-stem,
    body.cw-print-canonical-question main.cw-question-page > .cw-answer-full{
        display:block !important;
    }
    body.cw-print-canonical-question .cw-print-only{
        display:block !important;
    }
    body.cw-print-canonical-question .cw-print-question-stem{
        margin:0 0 20px !important;
        padding:0 0 16px !important;
        border-bottom:1px solid #bbb !important;
    }
    body.cw-print-canonical-question .cw-answer-full{
        border:0 !important;
        box-shadow:none !important;
        background:#fff !important;
        color:#000 !important;
        padding:0 !important;
        margin:0 !important;
    }
    body.cw-print-canonical-question .cw-answer-full .cw-answer-section-head .cw-kicker,
    body.cw-print-canonical-question .cw-answer-full .cw-answer-byline,
    body.cw-print-canonical-question .cw-answer-full .cw-editor-link,
    body.cw-print-canonical-question .cw-answer-full .cw-editorial-note{
        display:none !important;
    }
    body.cw-print-single-question a,
    body.cw-print-canonical-question a{
        color:#000 !important;
        text-decoration:none !important;
    }
    body.cw-print-single-question img,
    body.cw-print-canonical-question img,
    body.cw-print-single-question figure,
    body.cw-print-canonical-question figure,
    body.cw-print-single-question table,
    body.cw-print-canonical-question table{
        max-width:100% !important;
        break-inside:avoid;
        page-break-inside:avoid;
    }
}
