/* CE Courses Hub engine: interactive blocks, questions, job aids. Uses the brand tokens ("Education navy"); falls back to the light values. */
:root,.cx,.ja-wrap,.cx-mcq,.cx-fb,.cx-embed{--_ink:var(--ink,#0B2545);--_p:var(--primary,#1D4E89);--_btn:var(--btn,#0B2545);--_btnhi:var(--btn-hi,#13315C);--_onb:var(--on-btn,#FFFFFF);--_ac:var(--accent,#C2410C);--_achi:var(--accent-hi,#9A3412);--_s:var(--surface,#FFFFFF);--_s2:var(--surface-2,#F4F7FB);--_s3:var(--surface-3,#E8EEF6);--_b:var(--border,#D9E1EC);--_t:var(--text,#1F2937);--_m:var(--muted,#5B6474);--_ok:var(--ok-ink,#15803D);--_no:var(--no-ink,#B91C1C);--_warn:var(--warn-ink,#B91C1C);--_onp:var(--on-primary,#FFFFFF);--_ona:var(--on-accent,#FFFFFF);--_card:var(--card,#FFFFFF);--_focus:var(--focus,#1D4E89);--_in:var(--input-border,#8792A2);--_link:var(--link,#1D4E89);--_ease:ease;--_ff:var(--font-body,"Source Sans 3","Source Sans Pro",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif)}
/* course-page sample on theme pages: pin the light palette so the activity looks the same whatever the theme defines */
.cech-embed{--ink:#0B2545;--primary:#1D4E89;--link:#1D4E89;--btn:#0B2545;--btn-hi:#13315C;--on-btn:#FFFFFF;--accent:#C2410C;--accent-hi:#9A3412;--on-accent:#FFFFFF;--surface:#FFFFFF;--surface-2:#F4F7FB;--surface-3:#E8EEF6;--border:#D9E1EC;--text:#1F2937;--muted:#5B6474;--ok-ink:#15803D;--no-ink:#B91C1C;--warn-ink:#B91C1C;--ok-bg:#F0F7F2;--no-bg:#FDF3F3;--note-bg:#F4F7FB;--note-ink:#1F2937;--flag-bg:#E8EEF6;--flag-ink:#0B2545;--flag-line:#1D4E89;--card:#FFFFFF;--focus:#1D4E89;--input-border:#8792A2;--font-body:"Source Sans 3","Source Sans Pro",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
.cx-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.cx{background:var(--_card);border:1px solid var(--_b);border-radius:6px;padding:clamp(16px,3vw,28px);color:var(--_t);font-family:var(--_ff);font-size:18px;line-height:1.6;max-width:100%}
.cx *{box-sizing:border-box}
.cx-head{margin-bottom:14px}
.cx-eyebrow{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:16px;font-weight:600;color:var(--_m)}
.cx-title{font-size:clamp(22px,2.6vw,26px);line-height:1.25;margin:0 0 6px;color:var(--_ink);font-weight:700}
.cx-intro{margin:0;color:var(--_m)}
.cx-ic{display:inline-flex;flex:none;width:20px;height:20px}
.cx-ic svg{width:100%;height:100%}
.cx-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;border-radius:4px;border:1px solid var(--_in);background:var(--_card);color:var(--_ink);font-weight:600;font-size:17px;line-height:1.2;font-family:inherit;cursor:pointer;text-decoration:none;transition:background-color .15s var(--_ease),border-color .15s var(--_ease)}
.cx-btn:hover{border-color:var(--_ink);background:var(--_s2)}
.cx-btn[disabled]{opacity:.55;cursor:not-allowed}
.cx-btn.cx-primary{background:var(--_btn);border-color:var(--_btn);color:var(--_onb)}
.cx-btn.cx-primary:hover{background:var(--_btnhi);border-color:var(--_btnhi)}
.cx-btn.cx-accent{background:var(--_ac);border-color:var(--_ac);color:var(--_ona)}
.cx-btn.cx-accent:hover{background:var(--_achi);border-color:var(--_achi)}
.cx-btn.cx-ghost{background:transparent;color:var(--_ink)}
.cx-btn.cx-lg{min-height:50px;padding:13px 24px;font-size:18px}
.cx :focus-visible,.ja-wrap :focus-visible,.cx-mcq :focus-visible,.cx-btn:focus-visible{outline:3px solid var(--_focus);outline-offset:2px}
.cx-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px}
.cx-hint{font-size:15px;color:var(--_m);margin:6px 0 0}
.cx-step{margin:0 0 4px;font-size:15px;font-weight:600;color:var(--_m);font-variant-numeric:tabular-nums}
.cx-scene,.cx-result,.cx-case{background:var(--_s2);border:1px solid var(--_b);border-radius:6px;padding:16px 18px;margin:0 0 14px}
.cx-scene p:last-child,.cx-result p:last-child,.cx-case p:last-child{margin-bottom:0}
.cx-scene:focus,.cx-result:focus,.cx-q:focus{outline:none}.cx-scene:focus-visible,.cx-result:focus-visible,.cx-q:focus-visible{outline:2px solid var(--_focus);outline-offset:2px}
.cx-choices,.cx-options{display:grid;gap:10px}
.cx-options{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.cx-choice{display:flex;gap:12px;align-items:flex-start;text-align:left;width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--_in);border-radius:6px;background:var(--_card);color:var(--_t);font:inherit;cursor:pointer;transition:border-color .15s var(--_ease),background-color .15s var(--_ease)}
.cx-choice:hover:not([disabled]){border-color:var(--_ink);background:var(--_s2)}
.cx-choice[disabled]{cursor:default}
.cx-choice[aria-pressed=true]{border-color:var(--_ink);box-shadow:inset 0 0 0 1px var(--_ink)}
.cx-choice.is-good{border-color:var(--_ok);box-shadow:inset 0 0 0 1px var(--_ok);background:var(--ok-bg,#F0F7F2)}
.cx-choice.is-poor{border-color:var(--_no);box-shadow:inset 0 0 0 1px var(--_no);background:var(--no-bg,#FDF3F3)}
.cx-choice[disabled]:not([aria-pressed=true]){opacity:.7}
.cx-key{flex:none;display:inline-grid;place-items:center;width:28px;height:28px;border-radius:4px;background:var(--_s3);color:var(--_ink);font-weight:700;font-size:15px}
.cx-fbwrap:empty{display:none}
.cx-fbwrap:not(:empty)+*{margin-top:14px}
.cx-fb{display:flex;gap:12px;align-items:flex-start;margin-top:14px;padding:14px 16px;border-radius:6px;border:1px solid var(--_b);border-left:4px solid var(--_p);background:var(--_card);color:var(--_t)}
.cx-fb p{margin:4px 0 0}
.cx-fb.is-ok{border-left-color:var(--_ok);background:var(--ok-bg,#F0F7F2)}
.cx-fb.is-ok>.cx-ic{color:var(--_ok)}
.cx-fb.is-no{border-left-color:var(--_no);background:var(--no-bg,#FDF3F3)}
.cx-fb.is-no>.cx-ic{color:var(--_no)}
.cx-fb.is-info>.cx-ic{color:var(--_ink)}
.cx-fb:focus{outline:none}.cx-fb:focus-visible{outline:2px solid var(--_focus);outline-offset:2px}
.cx-recap{list-style:none;padding:0;margin:0 0 14px;display:grid;gap:8px}
.cx-recap li{display:flex;gap:10px;align-items:flex-start}
.cx-recap .is-good .cx-ic{color:var(--_ok)}.cx-recap .is-poor .cx-ic{color:var(--_no)}
.cx-debrief{border-left:4px solid var(--_ink);padding:8px 14px;margin:12px 0;background:var(--_s2);border-radius:0 4px 4px 0}
.cx-debrief p{margin:4px 0 0}
.cx-crumbs{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.cx-crumbs li{font-size:15px;background:var(--_s2);border:1px solid var(--_b);border-radius:4px;padding:3px 10px;display:flex;gap:6px}
.cx-crumbs span{color:var(--_m)}
.cx-q{font-size:20px;font-weight:600;color:var(--_ink);margin:0 0 12px}
.cx-rtitle{font-size:21px;font-weight:700;color:var(--_ink);margin:0 0 6px}
.cx-action{margin:8px 0 0}
.cx-source{font-size:15px;color:var(--_m);margin:10px 0 0}
.cx-source a{color:var(--_link)}
/* spot */
.cx-count{font-size:15px;font-variant-numeric:tabular-nums;color:var(--_m);margin:0 0 8px}
.cx-doc{border:1px solid var(--_b);border-radius:6px;background:var(--_card);padding:8px 8px 4px}
.cx-doctitle{font-weight:700;color:var(--_ink);margin:6px 10px 8px;font-size:17px}
.cx-lines{list-style:none;margin:0;padding:0}
.cx-lines li{border-top:1px dashed var(--_b)}
.cx-line{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;text-align:left;padding:8px 10px;background:none;border:0;border-left:4px solid transparent;color:var(--_t);font:inherit;font-family:var(--font-mono-doc,inherit);cursor:pointer}
.cx-line:hover:not([disabled]){background:var(--_s2)}
.cx-line[aria-pressed=true]{background:var(--flag-bg,#E8EEF6);border-left-color:var(--flag-line,#1D4E89);color:var(--flag-ink,#0B2545)}
.cx-ln{flex:none;width:22px;color:var(--_m);font-size:14px;font-variant-numeric:tabular-nums}
.cx-lt{flex:1}
.cx-flag{opacity:0;color:var(--_warn)}
.cx-line[aria-pressed=true] .cx-flag{opacity:1;color:var(--flag-ink,#0B2545)}
.cx-lines li.is-found .cx-line{border-left-color:var(--_ok)}
.cx-lines li.is-missed .cx-line{border-left-color:var(--_no)}
.cx-lines li.is-false .cx-line{border-left-color:var(--_m)}
.cx-explain{font-size:16px;margin:0 10px 10px 48px;color:var(--_t)}
.is-found .cx-explain strong{color:var(--_ok)}.is-missed .cx-explain strong{color:var(--_no)}
/* sort */
.cx-zones{display:grid;gap:12px;grid-template-columns:repeat(var(--cols,2),minmax(0,1fr))}
@media (max-width:640px){.cx-zones{grid-template-columns:1fr}}
.cx-zone{border:1.5px dashed var(--_in);border-radius:6px;padding:10px;min-height:96px;transition:border-color .15s var(--_ease),background-color .15s var(--_ease)}
.cx-zone.is-pool{border:1px solid var(--_b);background:var(--_s2);margin-bottom:12px}
.cx-zone.is-over{border-color:var(--_ink);background:var(--_s3)}
.cx-zone-h{display:flex;justify-content:space-between;align-items:center;font-weight:700;color:var(--_ink);margin:2px 4px 8px}
.cx-badge{font-size:14px;background:var(--_card);border:1px solid var(--_b);border-radius:4px;padding:1px 8px;color:var(--_m);font-variant-numeric:tabular-nums}
.cx-zone-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cx-card{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--_card);border:1px solid var(--_b);border-radius:4px;padding:10px 12px;cursor:grab}
.cx-card.is-drag{opacity:.5}
.cx-card.is-good{border-color:var(--_ok);border-left:4px solid var(--_ok)}.cx-card.is-good>.cx-ic{color:var(--_ok)}
.cx-card.is-poor{border-color:var(--_no);border-left:4px solid var(--_no)}.cx-card.is-poor>.cx-ic{color:var(--_no)}
.cx-ct{flex:1 1 180px}
.cx-moves{display:flex;flex-wrap:wrap;gap:6px}
.cx-mini{min-height:32px;padding:4px 10px;border-radius:4px;border:1px solid var(--_in);background:var(--_card);color:var(--_ink);font-weight:600;font-size:15px;line-height:1.2;font-family:inherit;cursor:pointer}
.cx-mini:hover{background:var(--_s2)}
.cx-mini.cx-ghost{border-color:var(--_b);color:var(--_m)}
.cx-mini:focus-visible{outline:3px solid var(--_focus);outline-offset:2px}
.cx-card .cx-explain{flex-basis:100%;margin:0;font-size:15px}
/* match */
.cx-pairs{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.cx-pairs li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--_b);border-radius:6px}
@media (max-width:640px){.cx-pairs li{grid-template-columns:1fr}}
.cx-pairs li.is-good{border-color:var(--_ok);border-left:4px solid var(--_ok)}.cx-pairs li.is-poor{border-color:var(--_no);border-left:4px solid var(--_no)}
.cx-pairs .cx-explain{grid-column:1/-1;margin:0;display:flex;gap:8px;font-size:16px}
.is-good .cx-explain>.cx-ic{color:var(--_ok)}.is-poor .cx-explain>.cx-ic{color:var(--_no)}
.cx-left{font-weight:600;color:var(--_ink)}
.cx-select,.cx-ta,.cx-field input,.cx-field select{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--_in);border-radius:4px;background:var(--_card);color:var(--_t);font:inherit;font-size:17px}
.cx-ta{resize:vertical;line-height:1.5}
.cx-ta-lg{min-height:180px}
.cx-field{display:grid;gap:6px;margin:0 0 12px}
.cx-field label{font-weight:600;color:var(--_ink)}
/* radios / likert / mcq */
.cx-likert,.cx-radios,.cx-mcq{border:1px solid var(--_b);border-radius:6px;padding:12px 14px 14px;margin:0 0 12px;min-width:0}
.cx-likert legend,.cx-radios legend{font-weight:600;color:var(--_ink);padding:0 6px}
.cx-num{color:var(--_m)}
.cx-scale{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-top:8px}
.cx-radio{position:relative}
.cx-radio input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.cx-radio label{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px;border:1px solid var(--_in);border-radius:4px;text-align:center;font-size:16px;cursor:pointer}
.cx-radio input:checked+label{border-color:var(--_btn);background:var(--_btn);color:var(--_onb);font-weight:600}
.cx-radio input:focus-visible+label{outline:3px solid var(--_focus);outline-offset:2px}
.cx-radio-row{display:flex;gap:12px;align-items:flex-start;padding:8px 6px;border-radius:4px}
.cx-radio-row input{flex:none;width:22px;height:22px;margin:2px 0 0;accent-color:var(--_ink)}
.cx-radio-row label{flex:1;display:flex;gap:10px;cursor:pointer}
.cx-radio-row.is-answer{background:var(--ok-bg,#F0F7F2);outline:1.5px solid var(--_ok)}
.cx-radio-row.is-wrong{background:var(--no-bg,#FDF3F3);outline:1.5px solid var(--_no)}
.cx-mcq{padding:16px 20px 18px}
.cx-mcq legend{float:left;width:100%;display:grid;gap:4px;padding:0;margin:0 0 10px}
.cx-mcq legend+*{clear:both}
.cx-qn{font-size:16px;font-weight:600;color:var(--_m);font-variant-numeric:tabular-nums}
.cx-stem{font-size:20px;font-weight:600;color:var(--_ink);line-height:1.45}
.cx-lv{font-weight:700;color:var(--_m)}
.cx-meter{display:grid;gap:6px;margin:10px 0 0;font-weight:600}
.cx-bar{display:block;height:8px;border-radius:2px;background:var(--_s3);overflow:hidden}
.cx-bar i{display:block;height:100%;background:var(--_p)}
.cx-sub{font-weight:700;color:var(--_ink);margin:16px 0 8px}
/* sbar */
.cx-sbar-grid{display:grid;gap:14px}
.cx-sbar-row{display:grid;gap:6px}
.cx-sbar-k{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--_ink)}
.cx-letter{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:4px;background:var(--_btn);color:var(--_onb);font-weight:700;font-size:19px}
.cx-sbar-row .cx-hint{margin:0}
.cx-model{background:var(--_s2);border-left:4px solid var(--_ok);border-radius:0 4px 4px 0;padding:8px 12px;font-size:16.5px}
/* state */
.cx-facts{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;gap:6px 16px;margin:6px 0 0}
.cx-facts dt{font-weight:700;color:var(--_ink)}
.cx-facts dd{margin:0}
@media (max-width:520px){.cx-facts{grid-template-columns:1fr}.cx-facts dd{margin-bottom:6px}}
.cx-vlist{margin:0;padding-left:18px}
.cx-vdl{margin:0}.cx-vdl dt{font-weight:600}.cx-vdl dd{margin:0 0 4px}
.cx-tbl{border-collapse:collapse;width:100%;font-size:16px;font-variant-numeric:tabular-nums}
.cx-tbl th,.cx-tbl td{border:1px solid var(--_b);padding:8px 10px;text-align:left;vertical-align:top}
.cx-tbl thead th{background:var(--_s3);color:var(--_ink)}
kbd{font-family:inherit;font-weight:600;font-size:.9em;background:var(--_s2);border:1px solid var(--_in);border-bottom-width:2px;border-radius:4px;padding:0 6px}
/* glossary terms */
.cx-termwrap{position:relative;display:inline}
.cx-term{font:inherit;color:inherit;background:none;border:0;padding:0;text-decoration:underline dotted var(--_link);text-decoration-thickness:2px;text-underline-offset:3px;cursor:help}
.cx-term:hover,.cx-term[aria-expanded=true]{color:var(--_link)}
.cx-tip{position:absolute;left:0;top:calc(100% + 6px);z-index:40;width:min(320px,80vw);background:var(--_btn);color:var(--_onb);border-radius:4px;padding:10px 12px;font-size:16px;line-height:1.45;box-shadow:0 4px 14px rgba(11,37,69,.2)}
.cx-tip strong{color:inherit}
span.term.is-plain{font-weight:600}
/* motion: subtle feedback only (no shake, no glow); nothing moves with reduced motion */
@keyframes cx-fade{from{opacity:.4}to{opacity:1}}
@keyframes cx-in{from{opacity:.4}to{opacity:1}}
.cx-pulse,.cx-shake,.cx-enter{animation:cx-fade .15s ease}
@media (prefers-reduced-motion:reduce){.cx-pulse,.cx-shake,.cx-enter{animation:none}.cx-btn,.cx-choice,.cx-zone{transition:none}}
/* job aids */
.ja-wrap{margin:8px 0 0}
.ja-bar{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 6px}
.ja-status{min-height:1.4em;margin:0 0 8px;font-size:15px;color:var(--_m)}
.ja{background:var(--_card);color:var(--_t);border:1px solid var(--_b);border-radius:6px;padding:clamp(16px,3vw,28px);font-family:var(--_ff)}
.ja-brand{display:flex;align-items:center;gap:10px;border-bottom:2px solid var(--_ink);padding-bottom:10px;margin-bottom:14px}
.ja-mark{display:inline-flex}.ja-mark svg{width:28px;height:28px;display:block}
.ja-bname{font-weight:600;font-size:19px;color:var(--_ink)}
.ja-bcourse{margin-left:auto;font-size:14px;color:var(--_m);text-align:right}
.ja-kind{margin:0;font-size:16px;font-weight:600;color:var(--_m)}
.ja-title{font-size:26px;font-weight:700;line-height:1.2;margin:2px 0 8px;color:var(--_ink)}
.ja-purpose{font-size:18px;margin:0 0 10px}
.ja-note,.ja-starter{background:var(--note-bg,#F4F7FB);color:var(--note-ink,#1F2937);border:1px solid var(--_b);border-left:4px solid var(--_ink);border-radius:0 4px 4px 0;padding:8px 12px;font-size:16px;margin:0 0 12px;display:flex;gap:8px}
.ja-intro{color:var(--_m);margin:0 0 12px}
.ja-sec{border:1px solid var(--_b);border-radius:6px;padding:10px 14px;margin:0 0 12px}
.ja-sec legend{font-weight:700;color:var(--_ink);padding:0 6px}
.ja-check{display:flex;gap:10px;align-items:flex-start;padding:6px 0}
.ja-check input{width:22px;height:22px;flex:none;margin:1px 0 0;accent-color:var(--_ink)}
.ja-field{display:grid;gap:6px;margin:0 0 12px}
.ja-field label{font-weight:600;color:var(--_ink)}
.ja-field input,.ja-field textarea,.ja-field select,.ja-tbl input{width:100%;min-height:42px;padding:8px 10px;border:1px solid var(--_in);border-radius:4px;background:var(--_card);color:var(--_t);font:inherit;font-size:17px}
.ja-tbl input{min-height:36px;border-radius:2px;border-width:1px}
.ja-scroll{overflow-x:auto}
.ja-tbl{border-collapse:collapse;width:100%;min-width:520px;font-size:16px;font-variant-numeric:tabular-nums}
.ja-tbl th,.ja-tbl td{border:1px solid var(--_b);padding:6px 8px;text-align:left}
.ja-tbl thead th{background:var(--_s3);color:var(--_ink)}
.ja-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.ja-card{border:1px solid var(--_ink);border-top:4px solid var(--_ink);border-radius:4px;padding:12px 14px;min-height:120px}
.ja-ctitle{font-weight:700;color:var(--_ink);margin:0 0 6px}
.ja-card p{margin:0}
.ja-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;border-top:1px solid var(--_b);margin-top:16px;padding-top:10px;font-size:14px;color:var(--_m)}
#cx-print{display:none}
@media print{
  html.cx-printing body>*:not(#cx-print){display:none!important}
  html.cx-printing #cx-print{display:block}
  #cx-print .ja,#cx-print .cx{border:0;padding:0;box-shadow:none;background:#fff;color:#000}
  #cx-print .pv{display:inline-block;min-width:60%;border-bottom:1px solid #444;min-height:1.3em}
  #cx-print .pv-block{display:block;min-height:4.5em;white-space:pre-wrap;border:1px solid #888;padding:4px;border-radius:4px}
  #cx-print .ja-tbl .pv{min-width:0;width:100%;border:0}
  #cx-print .ja-tbl td{height:30px}
  #cx-print .ja-card{break-inside:avoid;border-style:dashed}
  #cx-print .cx-model[hidden]{display:none}
  @page{margin:14mm}
}
