/* Classroom Hub — inherits the theme's fonts so it sits inside Rife / Elementor pages. */
.chub {
	--chub-ink: #1d2733;
	--chub-muted: #5d6b79;
	--chub-line: #dfe4ea;
	--chub-soft: #f5f7f9;
	--chub-primary: #0e6b78;
	--chub-primary-ink: #ffffff;
	--chub-ok: #2f7d4f;
	--chub-warn: #a8670a;
	--chub-warn-bg: #fdf4e3;
	--chub-err: #b0303f;
	--chub-err-bg: #fbeced;
	--chub-radius: 6px;
	color: var(--chub-ink);
	font-size: 16px;
	line-height: 1.55;
	max-width: 1080px;
	margin: 0 auto;
}
.chub *, .chub *::before, .chub *::after { box-sizing: border-box; }
.chub h2, .chub h3 { color: var(--chub-ink); margin: 0 0 .4em; line-height: 1.25; }
.chub h2 { font-size: 1.6em; }
.chub h3 { font-size: 1.15em; }
.chub p { margin: 0 0 .75em; }
.chub a { color: var(--chub-primary); }
.chub .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }

/* Buttons */
.chub .chub-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .4em;
	background: var(--chub-primary); color: var(--chub-primary-ink); border: 1px solid var(--chub-primary);
	border-radius: var(--chub-radius); padding: .6em 1.1em; font: inherit; font-size: .95em; font-weight: 600;
	line-height: 1.2; text-decoration: none; cursor: pointer; letter-spacing: 0; text-transform: none; white-space: nowrap;
}
.chub .chub-btn:hover { filter: brightness(1.08); color: var(--chub-primary-ink); }
.chub .chub-btn--ghost { background: transparent; color: var(--chub-primary); }
.chub .chub-btn--ghost:hover { background: var(--chub-soft); color: var(--chub-primary); }
.chub .chub-btn--sm { padding: .4em .8em; font-size: .85em; }
.chub .chub-btn--wide { width: 100%; padding: .8em 1em; }
.chub .chub-btn--danger { background: var(--chub-err); border-color: var(--chub-err); }
.chub .chub-link { background: none; border: 0; padding: 0; color: var(--chub-primary); font: inherit; font-size: .9em; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.chub .chub-link--danger { color: var(--chub-err); }
.chub :focus-visible { outline: 3px solid color-mix(in srgb, var(--chub-primary) 45%, transparent); outline-offset: 2px; }
.chub-inline { display: inline; margin: 0; }

/* Notices */
.chub-notice { border-radius: var(--chub-radius); padding: .75em 1em; margin: 0 0 1.25em; border-left: 4px solid var(--chub-ok); background: #edf6f0; }
.chub-notice--warn { border-color: var(--chub-warn); background: var(--chub-warn-bg); }
.chub-notice--err { border-color: var(--chub-err); background: var(--chub-err-bg); }

/* Forms */
.chub-form { max-width: 720px; }
.chub-form--narrow { max-width: 420px; }
.chub-form fieldset { border: 0; border-top: 1px solid var(--chub-line); margin: 0 0 1.25em; padding: 1em 0 0; min-width: 0; }
.chub-form legend { font-weight: 700; padding: 0 .5em 0 0; font-size: 1em; }
.chub-lede { font-size: 1.05em; color: var(--chub-muted); }
.chub-field { margin: 0 0 1em; }
.chub-field label, .chub-label { display: block; font-weight: 600; font-size: .92em; margin-bottom: .1em; }
.chub-field input[type=text], .chub-field input[type=email], .chub-field input[type=password], .chub-field input[type=url],
.chub-field input[type=search], .chub-field input[type=number], .chub-field input[type=datetime-local], .chub-field select, .chub-field textarea,
.chub-filters input[type=search], .chub-copy input {
	display: block; width: 100%; margin-top: .3em; padding: .6em .75em; font: inherit; font-weight: 400; font-size: 1em;
	color: var(--chub-ink); background: #fff; border: 1px solid #c5ced8; border-radius: var(--chub-radius); box-shadow: none; height: auto; line-height: 1.4;
}
.chub-field input[type=file] { display: block; margin-top: .4em; font-weight: 400; }
.chub-hint { color: var(--chub-muted); font-size: .86em; margin: .3em 0 0; font-weight: 400; }
.chub-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1em; }
.chub-check { display: flex; gap: .5em; align-items: flex-start; margin: 0 0 1em; font-size: .95em; }
.chub-check input { margin-top: .3em; }
.chub-check--sm { margin: 0; font-size: .85em; }
.chub-switch { margin-top: 1em; font-size: .92em; color: var(--chub-muted); }
.chub-hp { position: absolute; left: -9999px; }

/* Segmented radio (Form 4 / Form 5) */
.chub-segment { display: inline-flex; border: 1px solid #c5ced8; border-radius: var(--chub-radius); overflow: hidden; margin-top: .3em; }
.chub-segment label { margin: 0; font-weight: 500; }
.chub-segment input { position: absolute; opacity: 0; pointer-events: none; }
.chub-segment span { display: block; padding: .5em 1em; cursor: pointer; border-left: 1px solid #c5ced8; font-size: .95em; }
.chub-segment label:first-child span { border-left: 0; }
.chub-segment input:checked + span { background: var(--chub-ink); color: #fff; }
.chub-segment input:focus-visible + span { outline: 3px solid color-mix(in srgb, var(--chub-primary) 45%, transparent); outline-offset: -3px; }
.chub-segment--sm span { padding: .35em .8em; font-size: .88em; }

/* Subject pickers carry the subject colour */
.chub-subjects { display: flex; flex-wrap: wrap; gap: .5em; }
.chub-subject { position: relative; margin: 0; }
.chub-subject input { position: absolute; opacity: 0; pointer-events: none; }
.chub-subject span {
	display: inline-block; padding: .45em .9em .45em .8em; border: 1px solid #c5ced8; border-left: 4px solid var(--chub-c);
	border-radius: var(--chub-radius); cursor: pointer; font-size: .93em; background: #fff;
}
.chub-subject input:checked + span { background: var(--chub-c); border-color: var(--chub-c); color: #fff; }
.chub-subject input:focus-visible + span { outline: 3px solid color-mix(in srgb, var(--chub-c) 45%, transparent); outline-offset: 2px; }

.chub-chip { display: inline-block; font-size: .8em; font-weight: 700; color: var(--chub-c); border: 1px solid currentColor; border-radius: 99px; padding: .1em .7em; }
.chub-badge { display: inline-block; font-size: .78em; color: var(--chub-muted); background: var(--chub-soft); border: 1px solid var(--chub-line); border-radius: 4px; padding: .1em .5em; }
.chub-count { display: inline-block; min-width: 1.6em; text-align: center; font-size: .75em; background: var(--chub-warn); color: #fff; border-radius: 99px; padding: .1em .5em; vertical-align: middle; }

/* Browse: subject rail + list */
.chub-browse { display: grid; grid-template-columns: 210px 1fr; gap: 2em; align-items: start; }
.chub-rail { display: flex; flex-direction: column; position: sticky; top: 1.5em; }
.chub-rail__item {
	display: block; padding: .5em .8em; color: var(--chub-ink) !important; text-decoration: none; border-left: 3px solid var(--chub-line);
	font-size: .95em;
}
.chub-rail__item:hover { background: var(--chub-soft); border-left-color: var(--chub-c, var(--chub-ink)); }
.chub-rail__item.is-active { border-left-color: var(--chub-c, var(--chub-ink)); font-weight: 700; background: var(--chub-soft); }
.chub-filters { display: flex; flex-wrap: wrap; gap: .6em; align-items: center; margin-bottom: 1.2em; }
.chub-filters__search { flex: 1 1 240px; margin: 0; }
.chub-filters__search input { margin: 0; }
.chub-filters .chub-segment { margin: 0; }

.chub-rooms { display: flex; flex-direction: column; border-top: 1px solid var(--chub-line); }
.chub-room {
	display: flex; align-items: center; gap: 1em; padding: 1em 0 1em 1.1em; border-bottom: 1px solid var(--chub-line);
	position: relative;
}
.chub-room::before { content: ""; position: absolute; left: 0; top: 1em; bottom: 1em; width: 4px; border-radius: 2px; background: var(--chub-c); }
.chub-room__body { flex: 1; min-width: 0; }
.chub-room__subject { font-size: .8em; font-weight: 700; color: var(--chub-c); }
.chub-room__title { margin: .1em 0 .2em !important; font-size: 1.15em !important; }
.chub-room__title a { color: var(--chub-ink); text-decoration: none; }
.chub-room__title a:hover { color: var(--chub-primary); text-decoration: underline; }
.chub-room__meta { margin: 0 !important; color: var(--chub-muted); font-size: .88em; }
.chub-room__meta a { color: inherit; }
.chub-sep { display: inline-block; width: 3px; height: 3px; border-radius: 50%; background: currentColor; margin: 0 .55em; vertical-align: middle; opacity: .6; }
.chub-room__actions { display: flex; align-items: center; gap: .6em; flex-wrap: wrap; justify-content: flex-end; }
.chub-state { font-size: .85em; font-weight: 600; padding: .3em .7em; border-radius: 99px; }
.chub-state--in { color: var(--chub-ok); background: #edf6f0; }
.chub-state--wait { color: var(--chub-warn); background: var(--chub-warn-bg); }

.chub-empty { background: var(--chub-soft); border-radius: var(--chub-radius); padding: 1.4em 1.5em; }
.chub-empty p:last-child { margin: 0; }
.chub-pager { display: flex; gap: 1em; align-items: center; justify-content: center; margin: 1.5em 0; color: var(--chub-muted); }
.chub-disclaimer { color: var(--chub-muted); font-size: .8em; margin-top: 2em; }
.chub-teacher-head { margin-bottom: 1.5em; }

/* Copy link */
.chub-copy { display: inline-flex; gap: .4em; align-items: center; max-width: 100%; width: 520px; }
.chub-copy input { margin: 0; font-size: .88em; color: var(--chub-muted); background: var(--chub-soft); }

/* Classroom page */
.chub-roomhead { border-left: 4px solid var(--chub-c); padding: .2em 0 .2em 1.2em; margin-bottom: 1.6em; }
.chub-roomhead__tags { display: flex; gap: .5em; align-items: center; margin-bottom: .6em; }
.chub-roomhead__teacher { color: var(--chub-muted); }
.chub-roomhead__desc { margin: .8em 0; }
.chub-roomhead__actions { display: flex; flex-wrap: wrap; gap: .8em; align-items: center; margin-top: 1em; }
.chub-locked { background: var(--chub-soft); border-radius: var(--chub-radius); padding: 1.5em; }

.chub-gc, .chub-live {
	display: flex; justify-content: space-between; align-items: center; gap: 1em; flex-wrap: wrap;
	border: 1px solid var(--chub-line); border-radius: var(--chub-radius); padding: 1em 1.2em; margin: 0 0 1.5em;
}
.chub-gc p, .chub-live p { margin: .2em 0 0; color: var(--chub-muted); }
.chub-live { background: #eef6f7; border-color: #cfe4e7; }
.chub-code { font-size: 1.05em; font-weight: 700; background: var(--chub-soft); padding: .1em .45em; border-radius: 4px; letter-spacing: .04em; }

.chub-topic { margin: 0 0 1.6em; }
.chub-topic__name { font-size: 1em !important; color: var(--chub-muted) !important; border-bottom: 1px solid var(--chub-line); padding-bottom: .4em; }
.chub-lessons { list-style: none; margin: 0; padding: 0; }
.chub-lesson { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4em 1em; padding: .55em 0; border-bottom: 1px dashed var(--chub-line); margin: 0; }
.chub-lesson__title { font-weight: 600; text-decoration: none; }
.chub-lesson__badges { display: inline-flex; gap: .35em; flex-wrap: wrap; }
.chub-lesson__tools { margin-left: auto; display: inline-flex; gap: .8em; }

.chub-crumbs { font-size: .9em; color: var(--chub-muted); margin-bottom: .6em; }
.chub-crumbs span[aria-hidden] { margin: 0 .3em; }
.chub-video { position: relative; aspect-ratio: 16 / 9; margin: 0 0 1.5em; background: #000; border-radius: var(--chub-radius); overflow: hidden; }
.chub-video iframe { position: absolute; inset: 0; width: 100% !important; height: 100% !important; }
.chub-prose { margin: 0 0 1.5em; }
.chub-files ul { list-style: none; padding: 0; margin: 0 0 1.5em; }
.chub-files li { padding: .45em 0; border-bottom: 1px solid var(--chub-line); }

/* Dashboard */
.chub-back { font-size: .9em; margin-bottom: .8em; }
.chub-dashhead { display: flex; justify-content: space-between; align-items: flex-start; gap: 1em; flex-wrap: wrap; margin-bottom: 1.5em; padding-bottom: 1em; border-bottom: 1px solid var(--chub-line); }
.chub-dashhead p { color: var(--chub-muted); margin: 0; }
.chub-dashhead__actions { display: flex; gap: .7em; align-items: center; flex-wrap: wrap; }
.chub-panel { margin: 0 0 2em; }
.chub-panel--link { background: var(--chub-soft); padding: 1.1em 1.2em; border-radius: var(--chub-radius); }
.chub-panel--danger { border-top: 1px solid var(--chub-line); padding-top: 1.2em; }
.chub-people { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--chub-line); }
.chub-person { display: flex; justify-content: space-between; align-items: center; gap: 1em; padding: .7em 0; border-bottom: 1px solid var(--chub-line); margin: 0; }
.chub-person__who { display: flex; flex-direction: column; }
.chub-person__do { display: flex; gap: .5em; align-items: center; }
.chub-filelist { list-style: none; padding: 0; margin: 0 0 1em; }
.chub-filelist li { display: flex; justify-content: space-between; gap: 1em; padding: .4em 0; border-bottom: 1px solid var(--chub-line); }
.chub-form .wp-editor-wrap { margin-top: .3em; }

.chub-account { display: flex; gap: 1.2em; flex-wrap: wrap; }

@media (max-width: 760px) {
	.chub-browse { grid-template-columns: 1fr; gap: 1em; }
	.chub-rail { position: static; flex-direction: row; overflow-x: auto; gap: .3em; padding-bottom: .3em; }
	.chub-rail__item { border-left: 0; border-bottom: 3px solid var(--chub-line); white-space: nowrap; }
	.chub-rail__item.is-active, .chub-rail__item:hover { border-bottom-color: var(--chub-c, var(--chub-ink)); }
	.chub-grid { grid-template-columns: 1fr; }
	.chub-room { flex-direction: column; align-items: flex-start; }
	.chub-room__actions { justify-content: flex-start; }
	.chub-person { flex-direction: column; align-items: flex-start; }
	.chub-lesson__tools { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) { .chub * { transition: none !important; } }

/* Themes (incl. Rife) indent lists inside content; plugin lists are flush. */
.chub .chub-people, .chub .chub-lessons, .chub .chub-files ul, .chub .chub-filelist { padding-left: 0 !important; margin-left: 0 !important; list-style: none !important; }
.chub .chub-people li, .chub .chub-lessons li, .chub .chub-files li, .chub .chub-filelist li { margin-left: 0 !important; padding-left: 0; }
.chub .chub-people li::before, .chub .chub-lessons li::before, .chub .chub-files li::before, .chub .chub-filelist li::before { content: none !important; }

/* Ad and sponsor spaces */
.chub-railcol { display: flex; flex-direction: column; gap: 1.2em; position: sticky; top: 1.5em; }
.chub-railcol .chub-rail { position: static; }
.chub-ad { border: 1px solid var(--chub-line); border-radius: var(--chub-radius); padding: .6em .9em .9em; margin: 0 0 1.5em; background: #fff; }
.chub-rooms .chub-ad { margin: 1em 0; }
.chub-ad__label { display: block; font-size: .72em; color: var(--chub-muted); margin-bottom: .4em; }
.chub-ad__body { text-align: center; }
.chub-ad__body img { max-width: 100%; height: auto; display: inline-block; }
.chub-ad__name { font-weight: 700; font-size: 1.1em; }
.chub-ad__sponsor { display: inline-block; text-decoration: none; }
.chub-ad--open { border-style: dashed; background: var(--chub-soft); }
.chub-ad--open .chub-ad__body { display: flex; align-items: center; justify-content: space-between; gap: .8em; flex-wrap: wrap; text-align: left; }
.chub-ad--open p { margin: 0; color: var(--chub-muted); font-size: .92em; }
.chub-railcol .chub-ad--open .chub-ad__body { flex-direction: column; align-items: flex-start; }
@media (max-width: 760px) {
	.chub-railcol { position: static; }
	.chub-railcol .chub-ad { display: none; }
}

/* Subject slideshow */
.chub.chub-hero { max-width: none; position: relative; overflow: hidden; color: #fff; background: #000; }
.chub-hero__track { position: relative; height: clamp(440px, 72vh, 640px); }
.chub-hero__slide { position: absolute; inset: 0; display: flex; align-items: center; background: var(--chub-c); opacity: 0; visibility: hidden; transition: opacity .7s ease, visibility 0s linear .7s; }
.chub-hero__slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.25) 55%, rgba(0,0,0,0) 100%); }
.chub-hero__slide.is-active { opacity: 1; visibility: visible; transition: opacity .7s ease; }
.chub-hero__peak { position: absolute; right: -4%; bottom: -12%; width: min(70vw, 720px); height: auto; }
.chub-hero__inner { position: relative; z-index: 1; width: 100%; max-width: 1080px; margin: 0 auto; padding: 0 24px 56px; }
.chub-hero .chub-hero__kicker { margin: 0 0 .6em; font-weight: 700; font-size: 1rem; color: rgba(255,255,255,.85); }
.chub-hero .chub-hero__title { margin: 0 0 .25em; color: #fff; font-size: clamp(2.6rem, 7vw, 5.4rem); line-height: 1; letter-spacing: -0.03em; font-weight: 800; text-transform: none; }
.chub-hero .chub-hero__text { margin: 0 0 1.6em; max-width: 34ch; font-size: clamp(1.05rem, 1.8vw, 1.3rem); color: rgba(255,255,255,.92); }
.chub-hero__ctas { display: flex; flex-wrap: wrap; gap: .8em 1.4em; align-items: center; }
.chub-hero .chub-hero__join { display: inline-block; background: #FCD116; color: #000 !important; font-weight: 800; font-size: 1.1rem; padding: .85em 1.5em; border-radius: 8px; text-decoration: none; box-shadow: 3px 3px 0 #66CCFF; }
.chub-hero .chub-hero__join:hover { background: #fff; }
.chub-hero .chub-hero__browse { color: #fff !important; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.chub-hero__nav { position: absolute; z-index: 2; left: 0; right: 0; bottom: 18px; display: flex; justify-content: center; align-items: center; gap: 10px; }
.chub-hero__nav button { background: transparent; border: 0; padding: 0; margin: 0; cursor: pointer; color: #fff; min-width: 0; box-shadow: none; }
.chub-hero__arrow, .chub-hero__pause { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(0,0,0,.28) !important; }
.chub-hero__arrow svg, .chub-hero__pause svg { width: 20px; height: 20px; }
.chub-hero__dots { display: flex; gap: 2px; }
.chub-hero__dot { width: 28px; height: 28px; position: relative; }
.chub-hero__dot::before { content: ""; position: absolute; left: 50%; top: 50%; width: 9px; height: 9px; margin: -4.5px 0 0 -4.5px; border-radius: 50%; background: rgba(255,255,255,.5); }
.chub-hero__dot.is-active::before { background: #FCD116; width: 22px; margin-left: -11px; border-radius: 5px; }
.chub-hero button:focus-visible, .chub-hero a:focus-visible { outline: 3px solid #FCD116; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .chub-hero__slide { transition: none; } }
@media (max-width: 600px) { .chub-hero__peak { width: 120vw; right: -40%; } .chub-hero__dots { display: none; } }
/* Break out of the theme's content column so the slideshow runs edge to edge. */
.chub.chub-hero { width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); margin-bottom: 2.5em; }
/* A page that opens with the slideshow drops the theme's title bar and top gap. */
body:has(.chub-hero) .title-bar { display: none !important; }
body:has(.chub-hero) #mid, body:has(.chub-hero) #mid .content-box, body:has(.chub-hero) #mid .formatter, body:has(.chub-hero) #mid .real-content { margin-top: 0 !important; padding-top: 0 !important; }

/* Syllabus timetable */
.chub-syl { --chub-c: #33475B; }
.chub-syl__head { border-left: 6px solid var(--chub-c); padding: .2em 0 .2em 1.2em; margin-bottom: 1.6em; }
.chub-syl .chub-syl__kicker { margin: 0 0 .3em; font-weight: 700; color: var(--chub-c); }
.chub-syl .chub-syl__title { font-size: clamp(2rem, 5vw, 3.2rem); margin: 0 0 .25em; letter-spacing: -0.02em; text-transform: none; }
.chub-syl__lede { color: var(--chub-muted); max-width: 60ch; font-size: 1.05em; }
.chub-syl__actions { display: flex; flex-wrap: wrap; gap: 1em; align-items: center; }

.chub-syl__timeline { background: #fff; border-bottom: 1px solid var(--chub-line); margin: 0 0 1.5em; padding: .6em 0; }
.chub-syl__timeline ol { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 4px; }
.chub-syl__step { margin: 0 !important; padding: 0 !important; }
.chub-syl__step::before { content: none !important; }
.chub-syl__step a { display: block; height: 100%; padding: .55em .7em .6em; border-radius: 6px; text-decoration: none; color: var(--chub-ink); background: var(--chub-soft); border-top: 4px solid #c9d2db; }
.chub-syl__step--f5 a { background: #eef0f3; }
.chub-syl__step a:hover { border-top-color: var(--chub-c); }
.chub-syl__step.is-now a { border-top-color: var(--chub-c); background: color-mix(in srgb, var(--chub-c) 10%, #fff); }
.chub-syl__step.is-mine a { background: var(--chub-c); color: #fff; }
.chub-syl__step-label { display: block; font-weight: 700; font-size: .9em; line-height: 1.25; }
.chub-syl__step-meta { display: block; font-size: .78em; color: var(--chub-muted); margin-top: .15em; }
.chub-syl__step.is-mine .chub-syl__step-meta { color: rgba(255,255,255,.85); }
.chub-syl__now { display: inline-block; margin-top: .35em; font-size: .72em; font-weight: 700; background: #FCD116; color: #000; border-radius: 99px; padding: .05em .55em; }
.chub-syl__here { background: #FFF8D6; border-radius: var(--chub-radius); padding: .7em 1em; }

.chub-syl__stage { scroll-margin-top: 110px; margin: 0 0 2.2em; }
.chub-syl__stage-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: .3em 1em; border-bottom: 2px solid var(--chub-ink); padding-bottom: .4em; margin-bottom: .2em; }
.chub-syl .chub-syl__stage-head h3 { margin: 0; font-size: 1.35em; text-transform: none; }
.chub-syl__stage-head p { margin: 0; color: var(--chub-muted); }
.chub-syl__stage.is-now .chub-syl__stage-head { border-bottom-color: var(--chub-c); }
.chub-syl__badge { font-size: .78em; font-weight: 700; color: var(--chub-c); border: 1px solid currentColor; border-radius: 99px; padding: .05em .6em; }

.chub-syl__units { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.chub-syl__unit { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 1.2em; padding: 1em 0; border-bottom: 1px solid var(--chub-line); margin: 0 !important; }
.chub-syl__unit::before { content: none !important; }
.chub-syl .chub-syl__weeks { margin: .15em 0 0; font-weight: 700; color: var(--chub-c); font-size: .92em; }
.chub-syl .chub-syl__body h4 { margin: 0 0 .15em; font-size: 1.1em; text-transform: none; letter-spacing: 0; }
.chub-syl .chub-syl__section { margin: 0 0 .4em; font-size: .85em; color: var(--chub-muted); }
.chub-syl .chub-syl__points { margin: .3em 0 0 !important; padding-left: 1.1em !important; }
.chub-syl .chub-syl__points li { margin: .15em 0; }
.chub-syl .chub-syl__lessons { margin: .5em 0 0; font-size: .9em; }
.chub-syl__exam { background: var(--chub-soft); border-radius: var(--chub-radius); padding: 1em 1.2em; }
.chub-syl__exam ul { margin: 0 !important; padding-left: 1.1em !important; }
.chub-syl__exam li { margin: .35em 0; }
.chub-syl__foot { color: var(--chub-muted); font-size: .88em; border-top: 1px solid var(--chub-line); padding-top: 1em; }

.chub-sylindex__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; margin-top: 1.2em; }
.chub-sylindex__card { display: flex; flex-direction: column; gap: .3em; padding: 1.1em 1.2em 1.2em; border-radius: 8px; text-decoration: none; color: #fff !important; background: var(--chub-c); min-height: 140px; }
.chub-sylindex__name { font-weight: 800; font-size: 1.35em; line-height: 1.15; }
.chub-sylindex__meta { font-size: .88em; opacity: .9; }
.chub-sylindex__go { margin-top: auto; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.chub-sylindex__card:hover { filter: brightness(1.08); }

@media (max-width: 760px) {
	.chub-syl__timeline ol { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }
	.chub-syl__step { flex: 0 0 42%; scroll-snap-align: start; }
	.chub-syl__unit { grid-template-columns: 1fr; gap: .3em; }
}

/* Past papers */
.chub-papers__jump { display: flex; flex-wrap: wrap; gap: .5em; margin: 0 0 1.5em; }
.chub-papers__jump a { padding: .4em .9em; border-radius: 99px; border: 1px solid var(--chub-c); color: var(--chub-c); text-decoration: none; font-weight: 600; }
.chub-papers__subject { margin: 0 0 2.5em; scroll-margin-top: 110px; }
.chub-papers__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .8em 1.5em; border-left: 6px solid var(--chub-c); padding: .2em 0 .2em 1em; margin-bottom: 1em; }
.chub-papers .chub-papers__head h2 { margin: 0; text-transform: none; font-size: clamp(1.5rem, 3.5vw, 2.2rem); letter-spacing: -0.02em; }
.chub-papers__actions { display: flex; flex-wrap: wrap; gap: 1em; align-items: center; }
.chub-papers__frame { border: 1px solid var(--chub-line); border-radius: 8px; overflow: hidden; background: #fff; }
.chub-papers__frame iframe { display: block; width: 100%; height: 640px; border: 0; }
.chub-papers__soon h2 { font-size: 1.15em; text-transform: none; }
.chub-papers__soon ul { list-style: none !important; padding: 0 !important; margin: 0 !important; display: flex; flex-wrap: wrap; gap: .5em; }
.chub-papers__soon li { margin: 0 !important; padding: .35em .85em; border-radius: 99px; background: var(--chub-soft); border-left: 4px solid var(--chub-c); color: var(--chub-muted); }
.chub-papers__soon li::before { content: none !important; }

.chub.chub-papers-hl { max-width: 1080px; margin: 0 auto 2.5em; }
.chub-papers-hl__inner { display: flex; align-items: center; gap: 1.4em; padding: 1.4em 1.6em; border-radius: 12px; background: #FCD116; color: #000; box-shadow: 5px 5px 0 #66CCFF; }
.chub-papers-hl__icon { flex: 0 0 64px; width: 64px; height: 64px; }
.chub-papers-hl__text { flex: 1 1 auto; min-width: 0; }
.chub-papers-hl .chub-papers-hl__text h2 { margin: 0 0 .2em; color: #000; font-size: clamp(1.3rem, 3vw, 1.8rem); text-transform: none; letter-spacing: -0.02em; line-height: 1.15; }
.chub-papers-hl .chub-papers-hl__text p { margin: 0; color: #1d1d1d; }
.chub-papers-hl .chub-papers-hl__btn { flex: 0 0 auto; background: #000; color: #fff !important; font-weight: 800; padding: .85em 1.4em; border-radius: 8px; text-decoration: none; white-space: nowrap; }
.chub-papers-hl .chub-papers-hl__btn:hover { background: #0B6FA4; }
.chub-papers-hl a:focus-visible { outline: 3px solid #000; outline-offset: 3px; }
@media (max-width: 700px) {
	.chub-papers-hl__inner { flex-direction: column; align-items: flex-start; }
	.chub-papers__frame iframe { height: 480px; }
}

.chub-papers__meta { margin: .2em 0 0; color: var(--chub-muted); }
.chub-papers .chub-papers__h3 { font-size: 1.15em; margin: 1.6em 0 .4em; text-transform: none; }
.chub-papers__sections { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.chub-papers__section { border: 1px solid var(--chub-line); border-top: 4px solid var(--chub-c); border-radius: 8px; padding: .9em 1em; scroll-margin-top: 110px; }
.chub-papers .chub-papers__section h4 { margin: 0 0 .5em; font-size: 1em; text-transform: none; letter-spacing: 0; }
.chub-papers__section ul { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.chub-papers__section li { margin: 0 0 .4em !important; padding: 0 !important; }
.chub-papers__section li::before { content: none !important; }
.chub-papers__table { border-top: 2px solid var(--chub-ink); margin-top: .6em; }
.chub-papers__row { display: grid; grid-template-columns: 90px 1fr 1fr; gap: 1em; padding: .6em 0; border-bottom: 1px solid var(--chub-line); align-items: baseline; }
.chub-papers__row--head { font-weight: 700; font-size: .88em; color: var(--chub-muted); }
.chub-papers__year { font-weight: 800; font-size: 1.1em; color: var(--chub-c); }
.chub-papers__item { display: block; margin: 0 0 .2em; }
.chub-papers__none::before { content: "–"; color: #b7c0c9; }
.chub-papers .chub-badge { margin-left: .3em; }
.chub-syl__practice { margin: .7em 0 0; padding: .7em .9em; background: #FFF8D6; border-radius: 6px; }
.chub-syl .chub-syl__practice-head { margin: 0 0 .35em; font-weight: 700; font-size: .9em; }
.chub-syl__practice ul { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.chub-syl__practice li { margin: 0 0 .25em !important; }
.chub-syl__practice li::before { content: none !important; }
.chub-syl__practice p:last-child { margin: .4em 0 0; }
.chub-syl__exam-papers { margin: 1em 0 0; }
@media (max-width: 600px) {
	.chub-papers__row { grid-template-columns: 1fr; gap: .2em; }
	.chub-papers__row--head { display: none; }
	.chub-papers__cell::before { content: attr(data-label); display: block; font-size: .78em; color: var(--chub-muted); }
}

/* Exams */
.chub-papers__jump a.is-active { background: var(--chub-c); color: #fff; }
.chub-score { font-weight: 800; font-size: .88em; padding: .25em .7em; border-radius: 99px; }
.chub-score--good { background: #e4f3ea; color: #1f6a3d; }
.chub-score--ok { background: #fdf4e3; color: #8a5506; }
.chub-score--low { background: #fbeced; color: #9b2533; }
.chub-badge--ok { background: #e4f3ea; color: #1f6a3d; border-color: #bfe0cb; }
.chub-exam__topics .chub-badge { margin: 0 .2em .3em 0; }
.chub-exam__how ul { margin: 0; padding-left: 1.2em; }
.chub-exam__start { margin: 1em 0 2em; display: flex; flex-wrap: wrap; gap: .8em; align-items: center; }

.chub-exam__bar { position: sticky; top: 0; z-index: 20; display: flex; justify-content: space-between; align-items: center; gap: 1em; background: #fff; border-bottom: 2px solid var(--chub-ink); padding: .7em 0; margin-bottom: 1.2em; }
.admin-bar .chub-exam__bar { top: 32px; }
.chub-exam__bar-title { display: flex; gap: .6em; align-items: center; color: var(--chub-muted); }
.chub-exam__clock { font-variant-numeric: tabular-nums; font-weight: 800; font-size: 1.5em; background: #000; color: #fff; border-radius: 8px; padding: .15em .6em; }
.chub-exam__clock--none { font-size: .9em; font-weight: 600; background: var(--chub-soft); color: var(--chub-muted); }
.chub-exam__bar.is-low .chub-exam__clock { background: #b0303f; }

.chub .chub-qv { list-style: none !important; margin: 0 !important; padding: 0 !important; counter-reset: none; }
.chub .chub-qv__item { margin: 0 0 1.4em !important; padding: 1.1em 1.2em !important; border: 1px solid var(--chub-line); border-radius: 10px; background: #fff; }
.chub .chub-qv__item::before { content: none !important; }
.chub-qv__item.is-right { border-left: 5px solid #2f7d4f; }
.chub-qv__item.is-wrong { border-left: 5px solid #b0303f; }
.chub-qv__item.is-part { border-left: 5px solid #a8670a; }
.chub-qv__item.is-pending { border-left: 5px solid #8a96a3; }
.chub-qv__head { display: flex; flex-wrap: wrap; gap: .4em .6em; align-items: center; margin-bottom: .5em; }
.chub-qv__n { font-weight: 800; }
.chub-qv__text p { margin: 0 0 .5em; font-size: 1.05em; }
.chub-qv__img img { max-width: 100%; height: auto; border: 1px solid var(--chub-line); border-radius: 6px; }
.chub .chub-qv__options { border: 0; margin: .4em 0 0; padding: 0; display: grid; gap: .4em; list-style: none !important; }
.chub-qv__opt { display: flex; align-items: center; gap: .6em; padding: .55em .8em; border: 1px solid #c5ced8; border-radius: 8px; cursor: pointer; margin: 0; font-weight: 400; }
.chub-qv__opt:hover { background: var(--chub-soft); }
.chub-qv__opt input { margin: 0; }
.chub-qv__opt:has(input:checked) { border-color: #000; background: #FFF8D6; }
.chub-qv__letter { display: inline-flex; align-items: center; justify-content: center; width: 1.7em; height: 1.7em; border-radius: 50%; background: var(--chub-soft); font-weight: 700; font-size: .85em; flex: 0 0 auto; }
.chub-qv__options--review li { padding: .45em .7em; border: 1px solid var(--chub-line); border-radius: 8px; margin: 0 !important; }
.chub-qv__options--review li::before { content: none !important; }
.chub-qv__options--review li.is-answer { border-color: #2f7d4f; background: #edf6f0; }
.chub-qv__options--review li.is-chosen:not(.is-answer) { border-color: #b0303f; background: #fbeced; }
.chub-qv__short input { max-width: 320px; }
.chub-qv__given { margin: .5em 0 0; }
.chub-qv__written, .chub-qv__comment { margin: .6em 0 0; padding: .7em .9em; background: var(--chub-soft); border-radius: 8px; }
.chub-qv__comment { background: #FFF8D6; }
.chub .chub-qv__label { margin: 0 0 .3em; font-weight: 700; font-size: .85em; color: var(--chub-muted); }
.chub-qv__files { list-style: none !important; padding: 0 !important; margin: .5em 0 0 !important; display: flex; flex-wrap: wrap; gap: .5em; }
.chub-qv__files li::before { content: none !important; }
.chub-qv__files img { width: 140px; height: 140px; object-fit: cover; border-radius: 6px; border: 1px solid var(--chub-line); display: block; }
.chub-qv__solution { margin: .7em 0 0; border-top: 1px dashed var(--chub-line); padding-top: .6em; }
.chub-qv__solution summary { cursor: pointer; font-weight: 700; color: var(--chub-primary); }
.chub-exam__submit { margin: 1.5em 0; }

.chub-result { display: flex; flex-wrap: wrap; gap: 1.2em 2em; align-items: center; padding: 1.4em 1.6em; border-radius: 12px; margin: 0 0 1.8em; background: var(--chub-soft); border-left: 8px solid #8a96a3; }
.chub-result--good { border-left-color: #2f7d4f; }
.chub-result--ok { border-left-color: #E0A800; }
.chub-result--low { border-left-color: #b0303f; }
.chub-result__big { display: flex; flex-direction: column; }
.chub-result__pct { font-size: 3.2em; font-weight: 800; line-height: 1; letter-spacing: -0.03em; }
.chub-result__pct small { font-size: .45em; color: var(--chub-muted); }
.chub-result__of { color: var(--chub-muted); }
.chub-result__text { flex: 1 1 260px; }
.chub-result__text p { margin: 0 0 .6em; }

.chub-bd { display: grid; gap: .55em; }
.chub-bd__row { display: grid; grid-template-columns: minmax(140px, 1.3fr) 2fr minmax(90px, auto); gap: .3em 1em; align-items: center; }
.chub-bd__name { font-weight: 600; font-size: .95em; }
.chub-bd__bar { height: 12px; background: #e7ebef; border-radius: 99px; overflow: hidden; }
.chub-bd__fill { display: block; height: 100%; border-radius: 99px; }
.chub-bd__fill--good { background: #2f7d4f; }
.chub-bd__fill--ok { background: #E0A800; }
.chub-bd__fill--low { background: #b0303f; }
.chub-bd__num { font-variant-numeric: tabular-nums; font-size: .9em; text-align: right; }
.chub-bd__num .chub-hint { display: block; margin: 0; }
.chub-bd__next { grid-column: 1 / -1; font-size: .88em; margin-top: -.2em; }

.chub-form--wide { max-width: 860px; }
.chub-grid--tight { gap: 0 .8em; }
.chub-builder__h { margin-top: 1.5em !important; }
.chub .chub-q { border: 1px solid var(--chub-line) !important; border-radius: 10px; padding: 1em 1.1em .4em !important; margin: 0 0 1em !important; background: #fff; position: relative; }
.chub .chub-q legend { font-weight: 800; padding: 0 .4em !important; }
.chub-q__tools { position: absolute; top: .3em; right: .8em; display: flex; gap: .9em; }
.chub-q__opt { display: flex; align-items: center; gap: .5em; margin: 0 0 .4em; }
.chub-q__opt input[type=text] { flex: 1; padding: .45em .6em; border: 1px solid #c5ced8; border-radius: 6px; font: inherit; }
.chub-q__radio { margin: 0; display: flex; }
.chub-q__image img { max-width: 220px; display: block; margin-bottom: .4em; border-radius: 6px; }
.chub-q[data-type=mcq] .chub-q__short, .chub-q[data-type=written] .chub-q__short,
.chub-q[data-type=short] .chub-q__mcq, .chub-q[data-type=written] .chub-q__mcq { display: none; }
.chub-q .chub-q__sol-written { display: none; }
.chub-q[data-type=written] .chub-q__sol-written { display: inline; }
.chub-q[data-type=written] .chub-q__sol-auto { display: none; }
.chub-builder__bulk { margin: 1em 0 1.5em; border: 1px dashed #c5ced8; border-radius: 10px; padding: .8em 1em; }
.chub-builder__bulk summary { cursor: pointer; font-weight: 700; }
.chub-builder__example { background: var(--chub-soft); padding: .8em 1em; border-radius: 6px; font-size: .85em; white-space: pre-wrap; margin: .5em 0 .8em; }

.chub-papers-hl__ctas { display: flex; flex-direction: column; gap: .5em; align-items: stretch; flex: 0 0 auto; }
.chub-papers-hl .chub-papers-hl__alt { text-align: center; color: #000 !important; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 700px) {
	.chub-bd__row { grid-template-columns: 1fr auto; }
	.chub-bd__bar { grid-column: 1 / -1; grid-row: 2; }
	.chub-q__tools { position: static; margin-bottom: .5em; }
	.chub-papers-hl__ctas { align-items: flex-start; }
}
/* Keep the countdown visible: Rife's fixed header covers sticky bars, so the clock floats in the corner. */
.chub-exam__bar { position: static; }
.chub-exam__bar[data-chub-timer] .chub-exam__clock { position: fixed; right: 18px; bottom: 18px; z-index: 9999; box-shadow: 0 6px 18px rgba(0,0,0,.25); font-size: 1.35em; }
@media (max-width: 600px) { .chub-exam__bar[data-chub-timer] .chub-exam__clock { right: 12px; bottom: 12px; } }
