@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');
:root{--ink:#16334c;--blue:#0879bb;--blue-dark:#07527f;--line:#e0eaf2;--wash:#f3f7fb;--shadow:0 12px 34px rgba(22,51,76,.07)}
*{box-sizing:border-box}body{font-family:'Poppins',system-ui,sans-serif;background:radial-gradient(circle at 96% 2%,#dceffb 0,transparent 33%),var(--wash);color:var(--ink);line-height:1.55;min-height:100vh}h1,h2,h3{font-weight:700;letter-spacing:-.035em}h1{font-size:clamp(1.65rem,2.6vw,2.4rem)}.navbar{background:linear-gradient(110deg,#082d4c,#07547f);border-radius:0;box-shadow:0 8px 28px #0b3c6224}.navbar a{display:inline-flex;align-items:center;padding:.5rem .8rem;border-radius:999px;color:#edf7ff;text-decoration:none;font-size:.89rem;font-weight:600;transition:.18s}.navbar a:hover,.navbar a:focus{background:#ffffff24;color:white}.brand{max-height:68px;max-width:190px;object-fit:contain}.container{max-width:1320px}.card,.modal-content{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.btn{border-radius:999px;font-weight:600;padding:.52rem 1.05rem}.btn-sm{padding:.33rem .8rem}.btn-primary{background:var(--blue);border-color:var(--blue)}.btn-primary:hover{background:var(--blue-dark);border-color:var(--blue-dark)}.btn-outline-primary{color:var(--blue);border-color:#b5d9ef}.form-control,.form-select{border:1px solid #cedeea;border-radius:13px;padding:.62rem .8rem;background-color:#fff}.form-control:focus,.form-select:focus{border-color:#65b2df;box-shadow:0 0 0 .22rem #0b87ce1a}.form-label{font-weight:600;font-size:.9rem}.table{background:#fff;border-collapse:separate;border-spacing:0;border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}.table thead th{background:#eaf3f9;color:#34526b;border-bottom:1px solid #dbe7f0;font-size:.85rem}.table td,.table th{padding:.85rem 1rem;vertical-align:middle}.table tbody tr:hover{background:#f7fbfe}.alert{border:0;border-radius:17px}.badge{border-radius:999px;padding:.45em .7em}.small-muted{font-size:.88rem;color:#64798a}main.container{padding-bottom:5rem!important}a{color:#086ba5}section,.section-card{border-radius:22px}@media(max-width:768px){.navbar{border-radius:0}.navbar .container-fluid{gap:1rem}.navbar a{font-size:.78rem;padding:.35rem .55rem}.card{border-radius:17px}.table{display:block;overflow-x:auto}}@media print{body{background:#fff!important;color:#000}.navbar,.btn,form,.no-print{display:none!important}main.container{max-width:none!important;padding:0!important}.card,.table{box-shadow:none!important;border-color:#bbb!important}a{text-decoration:none;color:#000}}

@media print { @page {size:A4 landscape;margin:12mm} header.navbar,.no-print,form,button{display:none!important} main.container{max-width:none!important;width:100%!important;margin:0!important;padding:0!important} .print-plan{color:#111!important} .print-seat-grid{display:grid;gap:8px;page-break-inside:avoid}.print-seat{border:2px solid #333;border-radius:10px;padding:12px;min-height:105px;font-size:12px;break-inside:avoid} .print-seat small{font-weight:bold} }
@media screen {.print-seat-grid{display:grid;gap:10px}.print-seat{border:1px solid #b9c8d7;border-radius:16px;padding:12px;min-height:95px}}
/* v2.1 guided invigilation */
.wizard-shell{border-radius:26px!important}.wizard-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.wizard-step{display:flex;flex-direction:column;align-items:center;gap:7px;background:#f0f5fa;border:1px solid #dae6f1;border-radius:16px;padding:12px 5px;color:#496177;font-size:.76rem;min-height:78px}.wizard-step-num{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:white;font-weight:800}.wizard-step.is-active{background:#e1f0fb;border-color:#2184c1;color:#0b4c7c}.wizard-step.is-complete .wizard-step-num{background:#d9f7e9;color:#16704b}.wizard-panel{animation:wizard-in .2s ease}.wizard-panel[hidden]{display:none!important}.wizard-panel>.card,.wizard-panel form.card{border-radius:18px!important}.wizard-navigation{position:sticky;bottom:12px;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);padding:14px;border:1px solid #e1e9f0;border-radius:20px;z-index:4}@keyframes wizard-in{from{opacity:.6;transform:translateY(5px)}to{opacity:1;transform:none}}@media(max-width:720px){.wizard-steps{grid-template-columns:repeat(3,minmax(0,1fr))}.wizard-step{font-size:.69rem}}

/* v2.3 My Exam Buddy alignment: navy, cyan and mint, square masthead */
:root{--ink:#091337;--blue:#008dec;--blue-dark:#086ca9;--wash:#f2f3f5;--line:#dcebf4;--shadow:0 14px 34px rgba(172,189,199,.20)}
body{background:#f2f3f5;color:var(--ink)}h1,h2,h3,h4{color:#091337;letter-spacing:-.02em}
.navbar{background:#091337;border-radius:0!important;box-shadow:0 8px 20px rgba(9,19,55,.15)}
.navbar a{border-radius:6px}.navbar a:hover,.navbar a:focus{background:#ffffff1a}
.btn{border-radius:7px}.btn-primary{background:linear-gradient(25deg,#17ffd3,#d3fc71);border-color:transparent;color:#091337}.btn-primary:hover{background:linear-gradient(205deg,#17ffd3,#d3fc71);border-color:transparent;color:#091337}
.card,.modal-content{border-radius:18px}.wizard-shell{border-radius:18px!important}
.invigi-footer{margin-top:auto;background:#fff;border-top:1px solid #dcebf4;padding:20px 24px;color:#4d546f}
.invigi-footer-inner{max-width:1320px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.invigi-footer img{max-width:180px;max-height:66px;object-fit:contain}.invigi-footer a{color:#091337;text-decoration:none;font-weight:600}.invigi-footer a:hover{text-decoration:underline}
@media print{.invigi-footer{display:none!important}}

/* v2.4: grouped, accessible header navigation */
.invigi-header-layout{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap}.invigi-header-brand{display:flex;align-items:center}.invigi-nav{display:flex;align-items:center;gap:.4rem;flex:1;flex-wrap:wrap}.invigi-nav>a,.invigi-nav-group>summary{display:inline-flex;align-items:center;padding:.6rem .85rem;color:#fff;text-decoration:none;font-weight:500;cursor:pointer;border-radius:6px}.invigi-nav>a:hover,.invigi-nav-group>summary:hover{background:rgba(255,255,255,.15);color:#fff}.invigi-nav-group{position:relative}.invigi-nav-group>summary{list-style:none}.invigi-nav-group>summary::-webkit-details-marker{display:none}.invigi-nav-group>summary:after{content:'⌄';margin-left:.5rem}.invigi-nav-menu{position:absolute;top:100%;left:0;z-index:1050;min-width:215px;padding:.45rem;background:#fff;border:1px solid #dcebf4;border-radius:10px;box-shadow:0 12px 28px rgba(9,19,55,.18);display:flex;flex-direction:column}.invigi-nav-menu a{padding:.6rem .8rem;color:#091337;text-decoration:none;border-radius:6px}.invigi-nav-menu a:hover,.invigi-nav-menu a:focus{background:#e0f1ff;color:#091337}.invigi-logout{margin-left:auto}@media(max-width:720px){.invigi-nav-menu{position:static;box-shadow:none}.invigi-nav-group{width:100%}}

/* v3.1 single-sheet A4 seating plan; print at 100%, disable browser headers/footers. */
@media print {
 @page {size:A4 landscape;margin:7mm}
 html,body{width:100%!important;margin:0!important;padding:0!important;font-size:9px!important;line-height:1.12!important}
 main.container{width:100%!important;max-width:100%!important;padding:0!important;margin:0!important}
 .print-plan{width:100%!important;height:190mm!important;max-height:190mm!important;overflow:hidden!important;display:flex!important;flex-direction:column!important;gap:2mm!important;break-inside:avoid!important;page-break-inside:avoid!important}
 .print-plan>img{max-height:14mm!important;width:auto!important;align-self:flex-start}
 .print-plan h1{font-size:15px!important;margin:0!important;line-height:1.15!important}
 .print-plan p{font-size:9px!important;margin:0!important}
 .print-plan .text-center{padding:2px!important;margin:0!important}
 .print-seat-grid{flex:1!important;min-height:0!important;display:grid!important;grid-auto-rows:minmax(0,1fr)!important;gap:2mm!important;break-inside:avoid!important}
 .print-seat{min-height:0!important;padding:3px!important;border:1px solid #333!important;border-radius:0!important;font-size:9px!important;line-height:1.14!important;overflow:hidden!important;overflow-wrap:anywhere!important}
 .print-seat div,.print-seat small{font-size:8px!important;line-height:1.12!important}
 .print-plan p.mt-4{margin-top:1mm!important}
}

@media print { @page { size:A4 landscape; margin:7mm } .print-plan { height:180mm!important;max-height:180mm!important } .print-plan,.print-seat-grid,.print-seat {page-break-before:avoid!important;page-break-after:avoid!important;break-inside:avoid!important} }

/* v4.1 consolidated My Exam Buddy-inspired interface */
:root{--ink:#091337;--blue:#008dec;--blue-dark:#006aaf;--wash:#f5f8fb;--line:#dcebf4;--shadow:0 8px 28px rgba(9,19,55,.065)}
body{background:#f5f8fb;color:#091337;font-size:15px;line-height:1.55}h1,h2,h3,h4{letter-spacing:-.025em}h1{font-weight:700}.navbar{background:#091337!important;border-radius:0!important;box-shadow:none!important;border-bottom:3px solid #17ffd3}.invigi-header-layout{max-width:1440px;margin:auto;width:100%;gap:1rem}.invigi-nav{gap:.35rem}.invigi-nav>a,.invigi-nav-group>summary{border-radius:4px;padding:.65rem .85rem}.invigi-nav-menu{border-radius:6px;padding:8px;min-width:230px;box-shadow:0 15px 35px #09133725}.invigi-nav-menu a{border-radius:4px}.navbar .invigi-account-link{border-radius:4px}.card,.modal-content{border-radius:10px!important;border:1px solid #e4ecf2;box-shadow:var(--shadow)}.wizard-shell,.wizard-panel>.card,.wizard-panel form.card{border-radius:10px!important}.btn,.form-control,.form-select,.alert{border-radius:5px!important}.btn-primary{background:linear-gradient(25deg,#17ffd3,#d3fc71)!important;border:1px solid #9df3b3!important;color:#091337!important;font-weight:600}.btn-primary:hover{background:linear-gradient(205deg,#17ffd3,#d3fc71)!important;filter:brightness(.97)}.table{border-radius:7px;box-shadow:none;border:1px solid #e5edf4}.table thead th{background:#eaf4fc;color:#091337}.badge{border-radius:4px}.wizard-step{border-radius:7px}.wizard-navigation{border-radius:8px}.invigi-footer{border-top:3px solid #17ffd3;background:#fff}.invigi-page-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px;border-bottom:1px solid #dcebf4;padding-bottom:10px}.invigi-page-tabs a{display:inline-flex;padding:9px 14px;border-radius:5px;text-decoration:none;font-weight:600;color:#091337;background:#eaf4fc}.invigi-page-tabs a.active{background:#091337;color:#fff}.invigi-page-tabs a:hover{background:#d5edf8}@media(max-width:800px){.invigi-header-layout{align-items:flex-start}.invigi-nav{width:100%;order:3}.invigi-nav-menu{position:static;box-shadow:none}.card{border-radius:8px!important}}

/* v4.1.4 — align navigation dropdown chevrons with their labels.
   CSS-drawn chevrons avoid an external icon-font dependency. */
.invigi-nav-group > summary {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start;
  gap: .55rem;
  white-space: nowrap;
  line-height: 1.35;
}
.invigi-nav-group > summary::after {
  content: "" !important;
  display: inline-block;
  flex: 0 0 7px;
  width: 7px;
  height: 7px;
  margin: -3px 0 0 0 !important;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform .15s ease, margin-top .15s ease;
}
.invigi-nav-group[open] > summary::after {
  transform: rotate(225deg);
  margin-top: 4px !important;
}

/* v5.0.9 — consistent, space-efficient printable examination records.
   These are browser print-to-PDF views, not generated PDF binaries. */
.record-document-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:2px solid #091337;padding:0 0 12px;margin:0 0 14px;min-width:0}
.record-document-heading{min-width:0;flex:1}
.record-document-heading h1{font-size:1.55rem;margin:3px 0 1px;color:#091337}
.record-document-heading p{font-size:.82rem;color:#53657b;margin:0}
.record-document-kicker{font-size:.7rem;font-weight:700;letter-spacing:.06em;color:#008dec}
.record-document-logo{display:block;max-width:175px;max-height:62px;object-fit:contain;object-position:right top;flex-shrink:0}
@media print{
 @page{size:A4 portrait;margin:10mm 10mm 12mm}
 @page invigi-seating{size:A4 landscape;margin:7mm}
 html,body{width:auto!important;margin:0!important;padding:0!important;font-size:9pt!important;line-height:1.3!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
 main.container{max-width:none!important;width:100%!important;margin:0!important;padding:0!important}
 .record-document{width:100%!important;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}
 .record-document-header{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:10mm!important;padding:0 0 3mm!important;margin:0 0 4mm!important;break-after:avoid!important}
 .record-document-heading h1{font-size:17pt!important;margin:1mm 0!important;line-height:1.1!important}
 .record-document-heading p{font-size:8pt!important}
 .record-document-kicker{font-size:7.5pt!important}
 .record-document-logo{max-width:42mm!important;max-height:18mm!important;object-position:right top!important}
 .record-document h2,.record-document h3{break-after:avoid!important;page-break-after:avoid!important;margin-top:4mm!important;margin-bottom:1.5mm!important}
 .record-document p{margin-bottom:2mm!important}
 .record-document .border.rounded{padding:2.5mm!important;margin-top:2mm!important}
 .record-document .table{display:table!important;width:100%!important;table-layout:auto!important;overflow:visible!important;box-shadow:none!important;border-collapse:collapse!important;border-radius:0!important;margin-bottom:3mm!important}
 .record-document .table thead{display:table-header-group!important}
 .record-document .table tbody{display:table-row-group!important}
 .record-document .table tr{break-inside:avoid!important;page-break-inside:avoid!important}
 .record-document .table th,.record-document .table td{padding:1.3mm 1.5mm!important;font-size:8pt!important;line-height:1.22!important;overflow-wrap:anywhere!important;vertical-align:top!important;border:1px solid #cbd5e1!important}
 .record-document section{break-inside:auto!important;page-break-inside:auto!important}
 .record-document section>h3{break-after:avoid!important}
 .print-plan{page:invigi-seating!important;width:100%!important;max-width:100%!important;height:180mm!important;max-height:180mm!important;gap:1.5mm!important}
 .print-plan .record-document-header{margin-bottom:1mm!important;padding-bottom:1mm!important;border-bottom:1px solid #091337!important;flex-shrink:0!important}
 .print-plan .record-document-heading h1{font-size:13pt!important}
 .print-plan .record-document-logo{max-width:36mm!important;max-height:11mm!important}
 .print-plan .record-document-heading p{display:none!important}
 .print-plan p{font-size:8pt!important}
}

/* v5.8.3: Invigilator quick-start guide */
.guide-hero{background:linear-gradient(120deg,#e6f8f3,#f6fbfa);border:1px solid #c9e9df}.guide-kicker{font-size:.75rem;font-weight:800;letter-spacing:.14em;color:#116c60}.guide-illustration{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;max-width:220px;margin:auto}.guide-illustration span{background:#143b50;color:#fff;border-radius:18px;display:grid;place-items:center;aspect-ratio:1;font-size:2rem;font-weight:700}.guide-illustration span:last-child{background:#1b9e80}.guide-step{border:1px solid #d8e8e5}.guide-step-number{width:44px;height:44px;border-radius:14px;background:#143b50;color:white;display:grid;place-items:center;font-weight:800;flex-shrink:0}.guide-step p{line-height:1.6}.guide-help{padding:18px;background:#f3f8f8;border-radius:12px}.guide-help p{margin-top:10px}.guide-checklist{list-style:none;padding:0}.guide-checklist li{padding:9px 0 9px 32px;position:relative;border-bottom:1px solid #e8eeee}.guide-checklist li:before{content:'✓';position:absolute;left:4px;color:#17876f;font-weight:800}.invigi-footer-guide{display:inline-block;margin-top:8px;font-weight:600}@media print{.guide-step{break-inside:avoid}.guide-hero{background:#fff}}

/* v5.8.6: split-screen public login */
.invigi-login-main{width:100%;max-width:none;margin:0;padding:0}
.invigi-login-layout{min-height:100vh}
.invigi-login-brand-column{min-height:100vh;padding:18px}
.invigi-login-brand-panel{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;width:100%;border-radius:18px;overflow:hidden;background:#0b476a url('../img/invigi-bg.png') center/cover no-repeat;color:#fff}
.invigi-login-brand-content{position:relative;z-index:1;padding:3rem;max-width:540px}
.invigi-login-brand-content h2{font-size:clamp(1.4rem,2vw,2rem);font-weight:600;line-height:1.5;letter-spacing:0;color:#fff;margin-bottom:2rem}
.invigi-login-meb-logo{display:block;max-width:min(360px,90%);max-height:210px;object-fit:contain;margin:0 auto}
.invigi-login-form-column{padding:48px 24px;min-height:100vh}
.invigi-login-form-wrap{width:100%;max-width:440px}
.invigi-login-logo{display:block;width:80%;max-height:200px;object-fit:contain;margin:0 auto 32px}
.invigi-login-card{padding:0 8px}
.invigi-login-card h1{font-size:1.8rem;margin-bottom:.4rem}
.invigi-login-description{color:#607589;margin-bottom:1.75rem}
.invigi-login-form .form-label{font-weight:600;margin-bottom:8px}
.invigi-login-form .form-control{min-height:50px;border-radius:9px}
.invigi-login-form .btn{min-height:50px;border-radius:9px}
.invigi-login-help{text-align:center;font-size:.87rem;color:#63778a;margin-top:1.7rem}
.invigi-login-help span{font-weight:500;color:#07527f}
@media(max-width:991.98px){.invigi-login-form-column{min-height:calc(100vh - 110px);padding:32px 20px}.invigi-login-logo{max-height:150px}}

/* v5.8.7: solid-colour login action, without gradient */
.invigi-login-form .btn-primary,.invigi-login-form .btn-primary:hover{background:#17ffd3!important;border-color:#17ffd3!important;color:#091337!important}

/* v5.8.8 — shared application background; preserve white cards and print outputs. */
@media screen {
  body {
    background-color: #f5f8fb;
    background-image: url('../img/invigi-bg.png');
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    background-attachment: fixed;
  }
  /* Keep the login form legible and the existing branded left panel unchanged. */
  .invigi-login-form-column {
    background: rgba(255,255,255,.96);
  }
}
@media (max-width: 767.98px) {
  body { background-attachment: scroll; }
}
@media print {
  body { background: #fff !important; }
}

/* v5.8.9 — restore original split-screen login while retaining the
   site-wide background on authenticated application pages. */
@media screen {
  body:has(.invigi-login-layout) {
    background: #fff !important;
  }
  .invigi-login-layout {
    background: #fff;
  }
  .invigi-login-form-column {
    background: #fff !important;
  }
  /* The branded left-hand panel retains its own background image. */
  .invigi-login-brand-panel {
    background: #0b476a url('../img/invigi-bg.png') center / cover no-repeat;
  }
}

/* v5.9.6 — provider workflows, consistent with the staff administration pages */
.provider-workflow-item{border:1px solid #e4ecf2;border-radius:8px;background:#fff;overflow:hidden}
.provider-workflow-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.15rem;cursor:pointer;list-style:none}
.provider-workflow-summary::-webkit-details-marker{display:none}
.provider-workflow-summary::after{content:"⌄";font-weight:700;color:#091337;order:3}
.provider-workflow-item[open] .provider-workflow-summary{background:#f5f8fb;border-bottom:1px solid #e4ecf2}
.provider-workflow-item[open] .provider-workflow-summary::after{content:"⌃"}
.provider-workflow-summary-main{display:flex;flex-direction:column;gap:.2rem;flex:1;min-width:0}
.provider-workflow-details{padding:1.15rem}
.provider-workflow-prose{white-space:normal;overflow-wrap:anywhere}
.provider-workflow-details .list-group-item{border-color:#e4ecf2}
@media(max-width:600px){.provider-workflow-summary{align-items:flex-start}.provider-workflow-summary .badge{white-space:nowrap}}

/* v6.0.1 — seating plan embedded in the Full Room Record. */
.room-record-seating-front{text-align:center;border:1px solid #b8c7d6;background:#f2f6fa;font-weight:700;padding:8px;margin:10px 0}
.room-record-seating-grid{display:grid;gap:8px}
.room-record-seat{min-width:0;border:1px solid #aebdca;border-radius:5px;padding:8px;font-size:.78rem;overflow-wrap:anywhere;background:#fff;break-inside:avoid;page-break-inside:avoid}
.room-record-seat>strong{display:block;color:#091337;border-bottom:1px solid #e2e8f0;margin-bottom:4px}
.room-record-seat-person+.room-record-seat-person{border-top:1px dashed #aebdca;margin-top:5px;padding-top:5px}
.room-record-seat-person small{display:block;color:#46566b}
.room-record-seat-vacant{color:#64748b}
@media print{
 .room-record-seating-front{background:#f2f6fa!important;padding:2mm!important;margin:2mm 0!important;font-size:8pt!important}
 .room-record-seating-grid{gap:2mm!important}
 .room-record-seat{padding:2mm!important;font-size:7pt!important;border-radius:0!important}
 .room-record-seat-person small{font-size:6.5pt!important}
 .room-record-seating{break-inside:auto!important}
}

/* Guided invigilation: seat change controls use the portal's standard form styling. */
.invigi-seat-editor{border:1px solid #e4ecf2;background:#fff}
.invigi-seat-editor-form{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr) minmax(0,1.4fr) auto;gap:12px;align-items:end}
.invigi-seat-editor-field{min-width:0}.invigi-seat-editor-field .form-label{display:block;margin-bottom:6px}.invigi-seat-editor-field .form-control,.invigi-seat-editor-field .form-select{width:100%;margin:0;min-height:44px}
.invigi-seat-editor-submit{display:flex;align-items:end}.invigi-seat-editor-submit .btn{min-height:44px;white-space:nowrap}
@media(max-width:900px){.invigi-seat-editor-form{grid-template-columns:repeat(2,minmax(0,1fr))}.invigi-seat-editor-submit .btn{width:100%}}
@media(max-width:560px){.invigi-seat-editor-form{grid-template-columns:minmax(0,1fr)}}

/* v6.1.13 — cohesive section surfaces and headings across the application.
   Screen-only: printable seating plans and full room records remain unchanged. */
@media screen {
  :root {
    --invigi-section-border:#dce6f0;
    --invigi-section-surface:#ffffff;
    --invigi-section-heading:#eaf3fa;
    --invigi-section-ink:#091337;
    --invigi-section-accent:#17cdb3;
    --invigi-section-subtle:#f6f9fc;
  }
  /* Top-level content cards are distinct from the page's illustrated background. */
  main.container .card {
    background:var(--invigi-section-surface);
    border-color:var(--invigi-section-border);
    box-shadow:0 6px 22px rgba(9,19,55,.075);
  }
  /* Give card sections with a direct heading a shared header treatment, without
     changing the form fields or the meaning of existing Bootstrap utilities. */
  main.container .card:has(> h2),
  main.container .card:has(> h3),
  main.container .card:has(> h4),
  main.container .card:has(> .h5),
  main.container .card:has(> .h6) {
    overflow:clip;
  }
  main.container .card > :is(h2,h3,h4,.h5,.h6):first-child {
    display:block;
    background:var(--invigi-section-heading);
    color:var(--invigi-section-ink);
    border-bottom:1px solid var(--invigi-section-border);
    border-left:4px solid var(--invigi-section-accent);
    font-weight:700;
    line-height:1.4;
    padding:12px 16px;
    margin:-1rem -1rem 1rem;
    border-radius:8px 8px 0 0;
  }
  /* The guided workflow's six sections get their own full background and heading. */
  .wizard-panel {
    background:var(--invigi-section-surface);
    border:1px solid var(--invigi-section-border);
    border-radius:10px;
    padding:20px;
    box-shadow:0 6px 22px rgba(9,19,55,.075);
  }
  .wizard-panel > h2:first-child {
    color:var(--invigi-section-ink);
    background:var(--invigi-section-heading);
    border-bottom:1px solid var(--invigi-section-border);
    border-left:4px solid var(--invigi-section-accent);
    border-radius:9px 9px 0 0;
    padding:15px 20px;
    margin:-20px -20px 18px;
    font-size:1.2rem;
    font-weight:700;
  }
  .wizard-panel > :is(.card,form.card),
  .wizard-panel .invigi-seat-editor {
    background:var(--invigi-section-subtle);
    border:1px solid var(--invigi-section-border);
    box-shadow:none;
  }
  .wizard-panel .invigi-seat-editor > h4:first-child {
    background:var(--invigi-section-heading);
    border-bottom:1px solid var(--invigi-section-border);
    border-left:4px solid var(--invigi-section-accent);
    padding:12px 16px;
    margin:-1rem -1rem 1rem!important;
    border-radius:8px 8px 0 0;
  }
  .wizard-panel > .border-top {border-color:var(--invigi-section-border)!important}
  .wizard-panel > .border-top > h3:first-child {
    background:var(--invigi-section-heading);
    border-left:4px solid var(--invigi-section-accent);
    border-bottom:1px solid var(--invigi-section-border);
    padding:12px 16px;
    border-radius:5px;
  }
  .modal-content {background:#fff;border-color:var(--invigi-section-border)}
  .modal-header {background:var(--invigi-section-heading);border-bottom:1px solid var(--invigi-section-border)}
  .modal-title {color:var(--invigi-section-ink);font-weight:700}
  .modal-footer {background:var(--invigi-section-subtle);border-top:1px solid var(--invigi-section-border)}
  .invigi-page-tabs {background:rgba(255,255,255,.95);border:1px solid var(--invigi-section-border);border-radius:8px;padding:10px;margin-bottom:20px}
  .invigi-page-tabs a.active {background:#091337;color:#fff}
}
@media screen and (max-width:767.98px) {
  .wizard-panel {padding:14px}
  .wizard-panel > h2:first-child {margin:-14px -14px 16px;padding:13px 14px}
  main.container .card > :is(h2,h3,h4,.h5,.h6):first-child {padding:11px 13px}
}


/* v6.1.14 — separate heading cards and content cards.
   Apply to all existing card-based sections and guided workflow panels; no markup,
   form handlers, or examination records are changed. */
@media screen {
  /* Each guided stage has a standalone heading card above its content card. */
  .wizard-panel {
    margin-top:22px;
    position:relative;
    overflow:visible;
    border-radius:10px;
    background:#fff;
  }
  .wizard-panel > h2:first-child {
    background:var(--invigi-section-heading);
    border:1px solid var(--invigi-section-border);
    border-left:5px solid var(--invigi-section-accent);
    border-radius:10px;
    margin:-20px -20px 22px;
    padding:15px 20px;
    box-shadow:0 3px 12px rgba(9,19,55,.07);
  }
  /* A heading within a card is a discrete, bordered heading surface. */
  main.container .card > :is(h2,h3,h4,.h5,.h6):first-child {
    border:1px solid var(--invigi-section-border);
    border-left:5px solid var(--invigi-section-accent);
    border-radius:9px;
    margin:0 0 18px!important;
    padding:13px 16px;
    box-shadow:0 2px 9px rgba(9,19,55,.05);
  }
  /* Consistent distinction between internal sub-sections and the main card. */
  .wizard-panel > .border-top,
  .wizard-panel > .card,
  .wizard-panel > form.card {
    border-radius:10px;
  }
  .wizard-panel > .border-top {
    background:var(--invigi-section-subtle);
    border:1px solid var(--invigi-section-border)!important;
    padding:16px!important;
    margin-top:18px;
  }
  .wizard-panel > .border-top > h3:first-child,
  .wizard-panel .invigi-seat-editor > h4:first-child {
    background:var(--invigi-section-heading);
    border:1px solid var(--invigi-section-border);
    border-left:5px solid var(--invigi-section-accent);
    border-radius:9px;
    margin:0 0 16px!important;
    padding:12px 16px;
  }
  /* Prevent generic card overflow rules from cutting off distinct heading cards. */
  main.container .card:has(> h2),
  main.container .card:has(> h3),
  main.container .card:has(> h4),
  main.container .card:has(> .h5),
  main.container .card:has(> .h6) {overflow:visible}
}
@media screen and (max-width:767.98px) {
  .wizard-panel > h2:first-child {margin:-14px -14px 18px;padding:12px 14px}
}

/* v6.1.15 — real independent header + body sections, not nested cards. */
@media screen {
 .invigi-independent-section { margin:1.25rem 0; padding:0; background:transparent; border:0; box-shadow:none; }
 .invigi-independent-heading { display:block; margin:0 0 .65rem!important; padding:14px 18px; color:#091337; background:#eaf3fa; border:1px solid #dce6f0; border-left:5px solid #17cdb3; border-radius:10px; box-shadow:0 3px 12px rgba(9,19,55,.06); font-size:1.08rem; font-weight:700; }
 .invigi-independent-body { padding:18px; background:#fff; border:1px solid #dce6f0; border-radius:10px; box-shadow:0 4px 15px rgba(9,19,55,.055); }
 .wizard-panel .invigi-independent-section, .wizard-panel .invigi-independent-body { background:transparent; box-shadow:none; }
 .wizard-panel .invigi-independent-body { background:#fff; box-shadow:0 4px 15px rgba(9,19,55,.055); }
 .wizard-panel .invigi-independent-heading { margin:0 0 .65rem!important; padding:14px 18px; border:1px solid #dce6f0; border-left:5px solid #17cdb3; border-radius:10px; background:#eaf3fa; }
 .invigi-independent-body > :last-child { margin-bottom:0!important; }
 .invigi-independent-body > form { background:transparent; border:0; box-shadow:none; }
 .invigi-independent-body .invigi-seat-editor-form { width:100%; }
}
@media screen and (max-width:767.98px) { .invigi-independent-heading {padding:12px 14px;} .invigi-independent-body {padding:14px;} }

/* v6.1.16 — independent header/body layout, applied across standard pages. */
@media screen {
  main.container .invigi-generated-section {display:block; margin:0 0 1.5rem; background:transparent!important; border:0!important; box-shadow:none!important; padding:0!important; overflow:visible!important}
  main.container .invigi-generated-heading {display:block; margin:0 0 .7rem!important; padding:14px 18px!important; background:#eaf3fa!important; border:1px solid #dce6f0!important; border-left:5px solid #17cdb3!important; border-radius:10px!important; box-shadow:0 3px 12px rgba(9,19,55,.055)!important; color:#091337!important}
  main.container .invigi-generated-heading .invigi-generated-title {margin:0!important; padding:0!important; border:0!important; box-shadow:none!important; background:transparent!important; color:#091337!important; font-weight:700}
  main.container .invigi-generated-body {display:block; margin:0!important; padding:18px!important; background:#fff!important; border:1px solid #dce6f0!important; border-radius:10px!important; box-shadow:0 4px 15px rgba(9,19,55,.055)!important; overflow:visible!important}
  main.container .invigi-generated-body > .card {box-shadow:none}
  main.container .invigi-independent-section {overflow:visible!important}
  main.container .invigi-independent-body {background:#fff!important}
}
@media screen and (max-width:767.98px) {
  main.container .invigi-generated-heading {padding:12px 14px!important}
  main.container .invigi-generated-body {padding:14px!important}
}

/* v6.1.17: independent heading + white body for eligible legacy cards.
   Controls, forms, nested data widgets and printable documents are untouched. */
@media screen {
 main.container .invigi-unnested-heading {margin:1.2rem 0 .65rem!important;}
 main.container .invigi-unnested-heading > h2,
 main.container .invigi-unnested-heading > h3,
 main.container .invigi-unnested-heading > h4,
 main.container .invigi-unnested-heading > .card-title {margin:0!important;color:#091337!important;background:transparent!important;border:0!important;padding:0!important;}
 main.container .invigi-unnested-body {background:#fff!important;border:1px solid #dce6f0!important;border-radius:10px!important;box-shadow:0 4px 15px rgba(9,19,55,.055)!important;}
 main.container .invigi-unnested-body .card {box-shadow:none;}
}

/* v6.1.18: template-level independent headed sections; no runtime DOM relocation. */
@media screen {
 main.container .invigi-template-section {display:block;background:transparent!important;border:0!important;padding:0!important;box-shadow:none!important;overflow:visible!important}
 main.container .invigi-template-heading {display:block;margin:0 0 .7rem!important;padding:14px 18px!important;background:#eaf3fa!important;border:1px solid #dce6f0!important;border-left:5px solid #17cdb3!important;border-radius:10px!important;color:#091337!important;box-shadow:0 3px 12px rgba(9,19,55,.055)!important}
 main.container .invigi-template-heading h2 {margin:0!important;color:#091337!important;font-weight:700}
 main.container .invigi-template-body {background:#fff!important;border:1px solid #dce6f0!important;border-radius:10px!important;padding:18px!important;box-shadow:0 4px 15px rgba(9,19,55,.055)!important;overflow:visible!important}
 main.container .invigi-template-body > :last-child {margin-bottom:0!important}
}
@media screen and (max-width:767.98px) {main.container .invigi-template-heading,main.container .invigi-template-body {padding:14px!important}}

/* v6.1.19 — headers at the full width of their section container. */
@media screen {
 main.container .invigi-template-section, main.container .invigi-fullwidth-sections {width:100%;max-width:none;min-width:0;}
 main.container .invigi-template-heading, main.container .invigi-template-body {width:100%;max-width:none;box-sizing:border-box;}
 main.container .invigi-template-heading {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;}
 main.container .invigi-template-heading > :is(h2,h3,h4) {flex:1 1 auto;min-width:0;}
 main.container .invigi-template-body .table-responsive {max-width:100%;}
}

/* v6.1.20 — independent template sections, without wrapping active controls in cards */
.invigi-template-section,.invigi-workflow-shell{width:100%;max-width:100%;min-width:0}
.invigi-template-section>.invigi-independent-heading{display:block;width:100%;box-sizing:border-box}
.invigi-template-section>.invigi-independent-body{display:block;width:100%;box-sizing:border-box}
.invigi-workflow-shell>.wizard-panel{max-width:100%;min-width:0}
.invigi-workflow-shell .wizard-panel>h2{background:#eaf3fa;color:#091337;border:1px solid #dce6f0;border-left:5px solid #17cdb3;border-radius:10px;padding:14px 18px;margin:0 0 12px}
.invigi-workflow-shell .wizard-panel{background:#fff;border:1px solid #dce6f0;border-radius:10px;padding:18px;margin-top:16px}
.invigi-workflow-shell .wizard-panel[hidden]{display:none!important}
@media(max-width:767.98px){.invigi-workflow-shell .wizard-panel{padding:12px}.invigi-template-section>.invigi-independent-body{padding:14px}}

/* v6.1.21: template-owned headings, outside the original form/data cards.
   No controls are relocated or recreated. */
@media screen {
 main.container .invigi-standalone-heading {display:block;width:100%;box-sizing:border-box;margin:1.25rem 0 .65rem;padding:14px 18px;background:#eaf3fa;border:1px solid #dce6f0;border-left:5px solid #17cdb3;border-radius:10px;color:#091337;box-shadow:0 3px 12px rgba(9,19,55,.055)}
 main.container .invigi-standalone-heading > h2,main.container .invigi-standalone-heading > h3,main.container .invigi-standalone-heading > h4 {margin:0!important;padding:0!important;background:transparent!important;border:0!important;color:#091337!important;box-shadow:none!important}
 main.container .invigi-standalone-heading + .card {background:#fff!important;border:1px solid #dce6f0!important;border-radius:10px!important;box-shadow:0 4px 15px rgba(9,19,55,.055)!important;overflow:visible!important}
 main.container .invigi-standalone-heading + .card > :last-child {margin-bottom:0}
}
@media screen and (max-width:767.98px) {main.container .invigi-standalone-heading{padding:12px 14px}}

/* v6.1.22: preserve original Guided Invigilation wizard DOM and interaction layout.
   Each tab is a standalone white content card with a full-width header above it. */
#invigi-wizard.wizard-shell{background:#fff;border:1px solid #dce6f0;border-radius:14px;padding:24px;box-shadow:0 4px 15px rgba(9,19,55,.055)}
#invigi-wizard .wizard-panel{display:block;position:relative;background:#fff!important;border:1px solid #dce6f0!important;border-radius:12px!important;padding:20px!important;margin-top:24px!important;overflow:visible!important;box-shadow:0 4px 15px rgba(9,19,55,.045)}
#invigi-wizard .wizard-panel[hidden]{display:none!important}
#invigi-wizard .wizard-panel>h2:first-child{display:block;width:calc(100% + 42px);max-width:none;box-sizing:border-box;margin:-21px -21px 20px!important;padding:15px 20px!important;background:#eaf3fa!important;color:#091337!important;border:1px solid #dce6f0!important;border-left:5px solid #17cdb3!important;border-radius:12px 12px 0 0!important;font-size:1.15rem;line-height:1.4}
#invigi-wizard .wizard-panel .invigi-independent-section{background:transparent;box-shadow:none}
#invigi-wizard .wizard-panel .invigi-independent-heading{width:100%;box-sizing:border-box}
@media(max-width:767.98px){#invigi-wizard.wizard-shell{padding:12px}#invigi-wizard .wizard-panel{padding:14px!important}#invigi-wizard .wizard-panel>h2:first-child{width:calc(100% + 30px);margin:-15px -15px 16px!important;padding:12px 14px!important}}

/* v6.1.23: Only the selected guided-invigilation stage is rendered.
   Prevent generated layout wrappers and generic card rules from exposing inactive stages. */
body main.container section.wizard-panel[data-panel][hidden] { display:none!important; }
body main.container section.wizard-panel[data-panel]:not([hidden]) { display:block; }
body main.container section.wizard-panel[data-panel] > h2:first-child { width:calc(100% + 42px); }
@media(max-width:767.98px){body main.container section.wizard-panel[data-panel] > h2:first-child{width:calc(100% + 30px)}}

/* v6.1.25 — actual sibling cards per tab, rather than nested inside a panel card.
   The wizard-panel remains the visibility controller, never the visual card. */
@media screen {
  body main.container #invigi-wizard { margin-bottom:1rem; }
  body main.container section.wizard-panel[data-panel] {
    display:block; background:transparent!important; border:0!important; border-radius:0!important;
    padding:0!important; margin:20px 0 0!important; box-shadow:none!important; overflow:visible!important;
  }
  body main.container section.wizard-panel[data-panel][hidden] {display:none!important;}
  body main.container section.wizard-panel[data-panel]>h2:first-child {
    width:100%!important; margin:0 0 12px!important; padding:14px 18px!important;
    background:#eaf3fa!important; color:#091337!important; border:1px solid #dce6f0!important;
    border-left:5px solid #17cdb3!important; border-radius:10px!important; box-sizing:border-box;
  }
  body main.container section.wizard-panel[data-panel]>.invigi-stage-primary,
  body main.container section.wizard-panel[data-panel]>.invigi-seating-arrangements>.invigi-independent-body {
    background:#fff!important; border:1px solid #dce6f0!important; border-radius:10px!important;
    padding:18px!important; box-shadow:0 4px 15px rgba(9,19,55,.055)!important; margin:0 0 18px;
  }
  body main.container section.wizard-panel[data-panel]>.invigi-independent-section {
    display:block; width:100%; margin:18px 0!important; padding:0!important; background:transparent!important;
    border:0!important; box-shadow:none!important;
  }
  body main.container section.wizard-panel[data-panel]>.invigi-independent-section>.invigi-independent-heading {
    display:block; width:100%; margin:0 0 10px!important; padding:14px 18px!important;
    background:#eaf3fa!important; color:#091337!important; border:1px solid #dce6f0!important;
    border-left:5px solid #17cdb3!important; border-radius:10px!important; box-sizing:border-box;
  }
  body main.container section.wizard-panel[data-panel]>.invigi-independent-section>.invigi-independent-body {
    display:block; width:100%; background:#fff!important; border:1px solid #dce6f0!important;
    border-radius:10px!important; padding:18px!important; box-shadow:0 4px 15px rgba(9,19,55,.055)!important;
  }
  @media(max-width:767.98px){
    body main.container section.wizard-panel[data-panel]>.invigi-stage-primary,
    body main.container section.wizard-panel[data-panel]>.invigi-independent-section>.invigi-independent-body {padding:14px!important;}
  }
}

/* v6.1.26 — sign-off status rows (display only, not actionable controls) */
.invigi-signoff-status-list{display:flex;flex-direction:column;gap:0;margin-bottom:1rem}
.invigi-signoff-status-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:12px 0;border-bottom:1px solid #dce6f0}
.invigi-signoff-status-row:first-child{padding-top:0}
.invigi-signoff-status-role{color:#091337;font-weight:600}
.invigi-signoff-status-indicator{display:inline-flex;align-items:center;justify-content:center;min-width:105px;padding:7px 14px;border-radius:8px;font-size:.875rem;font-weight:600;line-height:1.25;text-align:center;white-space:nowrap;cursor:default}
.invigi-signoff-status-indicator.is-pending{color:#725412;background:#fff3d6;border:1px solid #e8d19b}
.invigi-signoff-status-indicator.is-complete{color:#075e4d;background:#dcf8ed;border:1px solid #a4ddca}

/* v6.1.27: Analytics and invigilator Regulations — template-owned cards. */
@media screen {
  main.container .invigi-report-section, main.container .invigi-regulation-section {margin:0 0 1.25rem!important;background:transparent!important;border:0!important;padding:0!important;box-shadow:none!important;overflow:visible!important}
  main.container .invigi-report-section>.invigi-independent-heading, main.container .invigi-regulation-section>.invigi-independent-heading {display:block;width:100%;box-sizing:border-box;margin:0 0 .65rem!important;padding:14px 18px!important;background:#eaf3fa!important;border:1px solid #dce6f0!important;border-left:5px solid #17cdb3!important;border-radius:10px!important;color:#091337!important;font-size:1.08rem!important;font-weight:700!important;line-height:1.4}
  main.container .invigi-report-section>.invigi-independent-body, main.container .invigi-regulation-section>.invigi-independent-body {display:block;width:100%;box-sizing:border-box;padding:18px!important;background:#fff!important;border:1px solid #dce6f0!important;border-radius:10px!important;box-shadow:0 4px 15px rgba(9,19,55,.055)!important}
  main.container .invigi-regulations-grid .invigi-regulation-section {display:flex;flex-direction:column;height:100%!important}
  main.container .invigi-regulations-grid .invigi-regulation-section>.invigi-independent-body {display:flex;flex:1;flex-direction:column;min-width:0}
  main.container .invigi-report-metric {padding:16px;border:1px solid #dce6f0;border-radius:10px;background:#f7fafc}
}
@media screen and (max-width:767.98px) {main.container .invigi-report-section>.invigi-independent-heading,main.container .invigi-regulation-section>.invigi-independent-heading,main.container .invigi-report-section>.invigi-independent-body,main.container .invigi-regulation-section>.invigi-independent-body {padding:14px!important}}
