:root{--bridge-blue:#314b80;--bridge-blue-deep:#314b80;--bridge-blue-action:#314b80;--bridge-blue-hover:#294371;--bridge-blue-soft:#dfe8f6;--home-blue-soft:#f3f6fb;--bridge-gold:#c9a15a;--skill-panel-warm:#f7f0e6;--skill-panel-line:#e7dccd;--skill-card-line:#d8deea}
header.topbar{height:62px;padding-top:8px;padding-bottom:8px;background:var(--bridge-blue);border-bottom-color:rgba(255,255,255,.13);box-shadow:0 2px 14px rgba(49,75,128,.16);gap:18px}.topbar-left{display:flex;align-items:center;gap:16px;min-width:0}.home-nav{min-height:38px;padding:7px 11px;border:1px solid rgba(255,255,255,.42);border-radius:11px;background:transparent;color:#fff;font-weight:750}.home-nav:hover{background:rgba(255,255,255,.1)}.topbar .brand{color:#fff}.topbar .brand img{width:42px;height:42px;background:#fff;border:2px solid rgba(255,255,255,.82)}.topbar .brand span{color:#dfe8f6}.topbar .brand b{color:#fff}.topbar .learner-chip{background:#fff;color:var(--bridge-blue-deep);border-color:#fff;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .btn-ghost{color:#fff}.topbar .btn-secondary{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}.topbar .btn-secondary:hover,.topbar .btn-ghost:hover{background:rgba(255,255,255,.1)}
header.topbar{height:68px;padding-top:8px;padding-bottom:8px;background:var(--bridge-blue);border-bottom-color:rgba(255,255,255,.13);box-shadow:0 2px 14px rgba(49,75,128,.16);gap:18px}.topbar-left{display:flex;align-items:center;gap:16px;min-width:0}.home-nav{min-height:38px;padding:7px 11px;border:1px solid rgba(255,255,255,.42);border-radius:11px;background:transparent;color:#fff;font-weight:750}.home-nav:hover{background:rgba(255,255,255,.1)}.topbar .brand{color:#fff}.topbar .brand img{width:42px;height:42px;background:#fff;border:2px solid rgba(255,255,255,.82)}.topbar .brand span{color:#dfe8f6}.topbar .brand b{color:#fff}.topbar .finish-session{width:160px;min-width:160px;height:48px;white-space:nowrap}.topbar .progress-label{width:132px;min-width:132px;height:48px;white-space:nowrap}.topbar .learner-chip{width:152px;min-width:152px;height:44px;background:#fff;color:var(--bridge-blue-deep);border-color:#fff;max-width:152px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .btn-ghost{color:#fff}.topbar .btn-secondary{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}.topbar .btn-secondary:hover,.topbar .btn-ghost:hover{background:rgba(255,255,255,.1)}
.wrap.home-prototype{width:min(1320px,calc(100% - 32px));min-height:calc(100vh - 62px);display:flex;flex-direction:column}.home-prototype .impact-hero{padding:11px 0 7px}.home-prototype .hero-brand-panel{width:min(850px,88%);margin:auto;display:grid;grid-template-columns:82px minmax(0,602px);justify-content:center;gap:22px;align-items:center;text-align:left;background:var(--bridge-blue);border-radius:21px;padding:13px 26px;box-shadow:0 13px 30px rgba(49,75,128,.14)}.home-prototype .hero-brand-logo{width:76px;height:76px;object-fit:cover;border-radius:50%;border:2px solid rgba(255,255,255,.82);box-shadow:0 6px 16px rgba(0,0,0,.16)}.home-prototype .hero-brand-copy{min-width:0}.home-prototype .impact-hero h1{color:#fff;font-size:clamp(36px,4.3vw,50px);line-height:1;margin:0 0 5px;max-width:none}.home-prototype .impact-expansion{color:var(--bridge-gold);font-size:clamp(15px,1.6vw,19px)!important;line-height:1.3;font-weight:800;letter-spacing:.005em;max-width:760px!important;margin:0!important}.home-prototype .eyebrow{color:#dfe8f6!important;margin-bottom:3px}.home-prototype .brand-signature{margin:6px 0 0;color:#fff;font:italic 600 23px/1.15 "Snell Roundhand","Segoe Script","Bradley Hand",cursive;letter-spacing:.015em}
.home-prototype .level.on{background:var(--bridge-blue-action);border-color:var(--bridge-blue-action);box-shadow:0 8px 20px rgba(49,75,128,.18)}.home-prototype .level.on small{color:#dfe8f6}.home-prototype .level:hover,.home-prototype .skill:hover{border-color:var(--bridge-blue-action)}.home-prototype .skill.on{background:var(--bridge-blue-action);color:#fff;border-color:transparent;box-shadow:none}.home-prototype button:focus-visible{outline:3px solid var(--bridge-gold);outline-offset:3px}
.home-prototype .chooser{min-height:540px;padding:22px 20px 18px;margin-bottom:9px}.home-prototype .select-row{grid-template-columns:142px 1fr;padding:10px 0;gap:16px}.home-prototype .select-row h2{margin:8px 0 0;font-size:16px}.home-prototype .levels{gap:10px}.home-prototype .level{min-height:62px;padding:10px 14px}.home-prototype .level strong{font-size:17px}.home-prototype .level small{font-size:13px}.home-prototype .skill-panel{padding:18px 12px;border:1px solid var(--skill-panel-line);border-radius:16px;background:var(--skill-panel-warm)}.home-prototype .skill-panel h2{align-self:start;margin-top:25px}.home-prototype .skills{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:minmax(82px,1fr);gap:10px}.home-prototype .skill{width:100%;height:100%;min-height:82px;padding:12px 11px;border-color:var(--skill-card-line);background:var(--home-blue-soft);font-size:15px;line-height:1.35}.home-prototype .four-stages{grid-template-columns:repeat(4,1fr);gap:12px;margin:0}.home-prototype .mode{display:flex;flex-direction:column;align-items:stretch;border:1px solid #e0e4ec;min-height:118px;padding:16px 17px;border-radius:17px;background:#fff}.home-prototype .mode h3{min-height:25px;font-size:19px;margin-bottom:5px}.home-prototype .mode p{min-height:39px;margin-bottom:8px;font-size:14px;line-height:1.42}.home-prototype .mode b{margin-top:auto;color:var(--bridge-blue-action);font-size:13.5px}.home-prototype .mode.featured{background:var(--bridge-blue-action);border-color:transparent;color:#fff}.home-prototype .mode.featured:hover{background:var(--bridge-blue-hover)}.home-prototype .mode.featured p{color:#dfe8f6}.home-prototype .mode.featured b{color:#fff}.home-prototype .test-mode{border-color:#d7ddea}.home-prototype .btn-ghost{color:var(--bridge-blue-action)}
.home-progress{display:none}
.impact-footer{width:100vw;min-height:0;padding:8px max(24px,calc((100vw - 1320px)/2 + 16px));border:0;border-radius:0;background:var(--bridge-blue);display:grid;grid-template-columns:minmax(220px,.85fr) minmax(360px,1.35fr) minmax(290px,1.1fr) minmax(210px,.8fr);gap:clamp(20px,2.2vw,42px);align-items:center;color:#fff;font-size:12px;box-shadow:none;margin:0;margin-top:auto;margin-left:calc(50% - 50vw)}.impact-footer p{margin:0;color:#fff;line-height:1.35}.impact-footer p>span{display:block;white-space:nowrap}.endorsement{display:flex;align-items:center;color:#fff}.endorsement span,.endorsement small{display:block}.endorsement b{color:#fff}.footer-signature{margin-top:3px;color:var(--bridge-gold);font:italic 600 19px/1.05 "Snell Roundhand","Segoe Script","Bradley Hand",cursive;letter-spacing:.015em}.footer-website span{font-weight:800}.footer-website a{display:inline-block;color:#fff;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.footer-website a:hover{color:var(--bridge-gold)}
.test-hub{width:min(820px,calc(100% - 28px))}.test-hub h1{font-size:clamp(32px,5vw,50px);margin:4px 0 10px}.test-forms{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:24px 0}.test-form{min-height:86px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:15px;padding:14px;color:var(--ink)}.test-form b,.test-form span{display:block}.test-form span{color:var(--muted);font-size:11px;margin-top:5px}.test-form.on{border-color:var(--bridge-blue);background:var(--bridge-blue-soft);box-shadow:0 0 0 2px rgba(49,75,128,.12)}.unpublished{border-left:5px solid var(--bridge-gold);background:#fbf7ee;border-radius:0 14px 14px 0;padding:17px 19px;margin:18px 0}.unpublished p{margin:6px 0 0;color:var(--muted)}.test-rules{display:grid;gap:4px;margin:20px 0;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:13px}.test-rules span{color:var(--muted)}.test-history{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-top:1px solid var(--line)}.test-history span{color:var(--muted);font-size:12px;text-align:right}
/* A fixed-footprint container should explain its height: distribute its content deliberately
   instead of leaving a large, unexplained internal void. */
@media(min-width:851px){.home-prototype .chooser{height:clamp(540px,calc(100vh - 285px),610px);min-height:0;display:grid;grid-template-rows:92px minmax(220px,1fr) 138px;gap:12px}.home-prototype .select-row{align-content:center;align-items:center}.home-prototype .four-stages{align-items:stretch}}
@media(max-width:1100px){.impact-footer{grid-template-columns:1fr 1fr;gap:14px 28px}.impact-footer p>span{white-space:normal}}@media(max-width:850px){header.topbar{height:auto;min-height:68px;padding:8px 12px;gap:6px;flex-wrap:wrap}.topbar-left,.topbar .top-actions{width:100%}.topbar .top-actions{gap:6px;justify-content:flex-end}.home-prototype .chooser{height:auto}.home-prototype .level{min-height:94px}.home-prototype .skills{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(76px,auto)}.home-prototype .skill-panel h2{margin-top:0}.home-prototype .four-stages{grid-template-columns:1fr 1fr}.test-forms{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:700px){header.topbar{height:auto;min-height:62px;padding:8px 10px;gap:6px;flex-wrap:wrap}.topbar-left{gap:7px}.home-nav{min-height:36px;padding:6px 8px}.topbar .brand b{font-size:13px}.topbar .brand>span>span{display:none}.topbar .top-actions{width:100%;gap:5px;flex-wrap:wrap;justify-content:flex-end}.topbar .finish-session{width:92px;min-width:92px;min-height:38px;padding:7px 8px}.topbar .progress-label{display:inline-flex;width:92px;min-width:92px;padding-inline:7px}.topbar .learner-chip{width:94px;min-width:94px;max-width:94px;padding:7px 8px}}
@media(max-width:560px){.topbar .brand>span{display:block}.home-prototype .impact-hero{padding:18px 0 14px}.home-prototype .hero-brand-panel{width:100%;grid-template-columns:68px 1fr;gap:14px;padding:17px 16px;border-radius:19px}.home-prototype .hero-brand-logo{width:64px;height:64px}.home-prototype .impact-hero h1{font-size:34px;line-height:1.02}.home-prototype .impact-expansion{font-size:15px!important;min-height:59px}.home-prototype .chooser{padding:14px}.home-prototype .select-row{grid-template-columns:1fr;padding:10px 0}.home-prototype .select-row h2{margin:0}.home-prototype .level{min-height:82px}.home-prototype .skills{grid-template-columns:1fr;grid-auto-rows:minmax(68px,auto)}.home-prototype .skill-panel{padding:14px}.home-prototype .four-stages{grid-template-columns:1fr}.home-prototype .mode h3,.home-prototype .mode p{min-height:0}.impact-footer{grid-template-columns:1fr;padding:20px 18px;margin-top:18px;gap:16px}.footer-signature{font-size:20px}.test-forms{grid-template-columns:1fr}.test-form{min-height:70px}.test-history{display:grid}.test-history span{text-align:left}}

/* ---- Stage 2: formal Test papers and the Unit Attainment Report ---------- */
.test-form-card{display:flex;flex-direction:column;gap:.35rem;padding:.85rem 1rem;border:1px solid var(--line,#e4e2ef);
  border-radius:12px;background:#fff;min-width:min(100%,15rem);flex:1 1 15rem}
.test-form-card b{font-size:1.02rem}
.test-part{margin:1.6rem 0 .6rem;font-size:1.05rem;letter-spacing:.01em}
.test-break{margin:1.4rem 0;padding:.6rem .9rem;border-left:3px solid var(--line,#e4e2ef);background:#fafaff;border-radius:6px}
.test-block{margin:0 0 1.2rem}
.test-block h3{font-size:.92rem;text-transform:none;color:var(--ink-soft,#5b5870);margin:1.1rem 0 .5rem}
.test-item{display:grid;grid-template-columns:1fr;gap:.5rem;padding:.75rem .9rem;margin:0 0 .55rem;
  border:1px solid var(--line,#e9e7f2);border-radius:10px;background:#fff}
.test-item header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.test-item header b{font-size:.95rem}
.test-prompt p{margin:.15rem 0}
.test-options{margin:.35rem 0 0;padding-left:1.1rem}
.test-options li{margin:.15rem 0}
.test-fields{display:flex;flex-wrap:wrap;gap:.6rem}
.test-field{display:flex;align-items:center;gap:.35rem;font-weight:600}
.test-field input{width:clamp(7rem,22vw,11rem);padding:.45rem .55rem;border:1px solid var(--line,#cfcbe0);border-radius:8px;font-size:1rem}
.test-marks{width:100%;border-collapse:collapse;font-size:.88rem}
.test-marks th,.test-marks td{text-align:left;padding:.4rem .5rem;border-bottom:1px solid var(--line,#eeecf6);vertical-align:top}
.test-marks tr.ok td:last-child{color:#186a35;font-weight:700}
.test-marks tr.no td:last-child{color:#9e2a2a;font-weight:700}
.attainment-report .report-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.6rem;margin:.6rem 0 1.2rem}
.attainment-report .report-meta div{display:flex;gap:.4rem}
.attainment-report .report-meta dt{font-weight:700}
.attainment-report .report-meta dd{margin:0}
.attainment-report section{margin:0 0 .9rem}
.attainment-panel section{margin:.5rem 0}
.attainment-panel h3{font-size:.92rem;margin:.5rem 0 .2rem}
@media (max-width:640px){
  .test-fields{flex-direction:column;align-items:stretch}
  .test-field input{width:100%}
  .test-marks{font-size:.82rem}
}

.unit-context{display:flex;align-items:center;min-width:0;color:#fff;font-weight:800}.subject-nav,.unit-nav{border:0;background:transparent;color:#fff;padding:7px 4px;text-decoration:none;font-weight:800;white-space:nowrap}.subject-nav:hover,.unit-nav:hover{text-decoration:underline;text-underline-offset:4px}.context-separator{padding:0 5px;color:#cfd9ec}
@media(max-width:700px){.unit-context{font-size:13px}.subject-nav,.unit-nav{padding-inline:2px}.context-separator{padding-inline:3px}}
