@import url('./fonts/noto-sans-sc/wght.css');
@import url('./fonts/noto-serif-sc/wght.css');

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('./fonts/ibm-plex-mono/ibm-plex-mono-latin-400-normal.woff2') format('woff2');
}

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url('./fonts/ibm-plex-mono/ibm-plex-mono-latin-500-normal.woff2') format('woff2');
}

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('./fonts/ibm-plex-mono/ibm-plex-mono-latin-700-normal.woff2') format('woff2');
}

:root {
  color-scheme: light;
  --fdex-paper: #f2f0e8;
  --fdex-black: #142019;
  --fdex-green: #c8ff29;
  --fdex-green-light: #d4ff3f;
  --fdex-green-dark: #a8da20;
  --fdex-grid: #dad8cf;
  --fdex-gray: #777a73;
  --fdex-surface: #e8e6de;
  --fdex-white: #fffdf8;
  --fdex-success: #36a86b;
  --fdex-warning: #f0a52b;
  --fdex-error: #d64b42;
  --fdex-info: #4778d0;
  --fdex-border: 2px solid var(--fdex-black);
  --fdex-shadow: 8px 8px 0 rgba(20, 32, 25, .16);
  font: 16px/1.6 'Noto Sans SC Variable', sans-serif;
}

* { box-sizing: border-box; }
html { min-height: 100%; }
body {
  min-height: 100%;
  margin: 0;
  background: var(--fdex-paper);
  color: var(--fdex-black);
}

button,
input,
select,
textarea { font: inherit; }

button,
input,
select,
textarea,
.frame { border-radius: 0; }

.page-grid {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(218, 216, 207, .72) 1px, transparent 1px),
    linear-gradient(90deg, rgba(218, 216, 207, .72) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(to bottom, #000 0, rgba(0, 0, 0, .86) 70%, transparent 100%);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  min-height: 72px;
  border-bottom: var(--fdex-border);
  background: rgba(242, 240, 232, .96);
}

.header-inner {
  width: min(1180px, calc(100% - 40px));
  min-height: 72px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.brand-lockup {
  display: grid;
  gap: 2px;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
}

.brand-lockup small {
  color: var(--fdex-gray);
  font-size: 10px;
}

.header-context {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
}

.env-mark {
  padding: 5px 9px;
  border: 1.5px solid var(--fdex-black);
  background: var(--fdex-green);
  font-weight: 700;
}

.page-id { color: var(--fdex-gray); }

.wrap {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: 54px 0 96px;
}

.page-intro {
  max-width: 900px;
  margin-bottom: 40px;
}

.page-intro h1,
h2,
h3 {
  font-family: 'Noto Serif SC Variable', serif;
}

.page-intro h1 {
  max-width: 900px;
  margin: 10px 0 12px;
  font-size: 60px;
  line-height: 1.12;
}

.page-intro > p:last-child {
  max-width: 760px;
  margin: 0;
  font-family: 'Noto Serif SC Variable', serif;
  font-size: 19px;
  line-height: 1.85;
}

.system-label,
.section-note,
.proof-stamp,
.unit-id,
.unit-meta,
.status-mark,
.history-entry,
.progress-node,
.submission-meta,
.review-record {
  font-family: 'IBM Plex Mono', monospace;
}

.system-label {
  margin: 0;
  color: var(--fdex-gray);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.acid-label {
  display: inline-block;
  padding: 5px 9px;
  border: 1.5px solid var(--fdex-black);
  background: var(--fdex-green);
  color: var(--fdex-black);
}

.frame {
  border: var(--fdex-border);
  background: rgba(255, 253, 248, .9);
  box-shadow: var(--fdex-shadow);
}

.section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 28px;
}

.section-heading h2,
.review-toolbar h2 {
  margin: 7px 0 0;
  font-size: 36px;
  line-height: 1.2;
}

.section-note {
  color: var(--fdex-gray);
  font-size: 11px;
}

.trace-node {
  position: relative;
  width: 170px;
  height: 40px;
  flex: none;
  border-top: 2px solid var(--fdex-black);
  border-right: 2px solid var(--fdex-black);
}

.trace-node::before,
.trace-node::after {
  content: '';
  position: absolute;
  width: 10px;
  height: 10px;
  border: 2px solid var(--fdex-black);
  background: var(--fdex-paper);
}

.trace-node::before { top: -6px; left: 0; }
.trace-node::after { right: -6px; bottom: -2px; background: var(--fdex-green); }

.auth-sheet {
  max-width: 880px;
  padding: 34px;
}

.auth-fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 18px;
  align-items: end;
  margin-top: 30px;
}

label {
  display: block;
  color: var(--fdex-black);
  font-size: 13px;
  font-weight: 700;
}

input,
select,
textarea {
  width: 100%;
  margin-top: 7px;
  border: 1.5px solid var(--fdex-black);
  background: var(--fdex-white);
  color: var(--fdex-black);
  outline: none;
  padding: 13px 14px;
  line-height: 1.55;
}

input:focus,
select:focus,
textarea:focus {
  box-shadow: 0 0 0 3px rgba(200, 255, 41, .42);
}

textarea {
  min-height: 112px;
  resize: vertical;
}

button {
  min-height: 48px;
  border: var(--fdex-border);
  background: var(--fdex-green);
  color: var(--fdex-black);
  padding: 12px 20px;
  box-shadow: 4px 4px 0 rgba(20, 32, 25, .18);
  cursor: pointer;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  font-weight: 700;
}

button:hover:not(:disabled) {
  transform: translate(-1px, -1px);
  box-shadow: 6px 6px 0 rgba(20, 32, 25, .18);
}

button:active:not(:disabled) {
  transform: translate(2px, 2px);
  box-shadow: 1px 1px 0 rgba(20, 32, 25, .18);
}

button:focus-visible {
  outline: 3px solid var(--fdex-info);
  outline-offset: 3px;
}

button:disabled {
  cursor: not-allowed;
  opacity: .45;
  box-shadow: none;
}

.button-secondary { background: var(--fdex-white); }
.button-compact { min-height: 38px; padding: 8px 14px; }
.button-danger { background: #f4e5dc; border-color: var(--fdex-error); }

.form-message {
  min-height: 24px;
  margin: 12px 0 0;
  font-size: 13px;
}

.error { color: var(--fdex-error); font-weight: 700; }
.ok { color: var(--fdex-success); }
.hidden { display: none !important; }

.gate-strip {
  position: relative;
  margin-bottom: 54px;
  border: var(--fdex-border);
  border-left: 12px solid var(--fdex-green);
  background: var(--fdex-black);
  color: var(--fdex-paper);
  padding: 18px 22px;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 14px;
  font-weight: 700;
}

.gate-strip::after {
  content: 'REVIEW TRACE';
  position: absolute;
  top: 50%;
  right: 18px;
  color: var(--fdex-green);
  font-size: 11px;
  transform: translateY(-50%);
}

.ledger-section { margin-bottom: 64px; }

.unit-ledger {
  margin-top: 22px;
  border-top: 3px solid var(--fdex-black);
  border-bottom: 2px solid var(--fdex-black);
  background: rgba(255, 253, 248, .76);
}

.unit-record {
  position: relative;
  display: grid;
  grid-template-columns: 76px minmax(0, 1.5fr) minmax(180px, .6fr) auto;
  gap: 20px;
  align-items: center;
  min-height: 122px;
  padding: 20px 22px;
  border-top: 1px solid var(--fdex-black);
}

.unit-record:first-child { border-top: 0; }
.unit-record::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 0;
  background: var(--fdex-green);
}

.unit-record.status-available::before,
.unit-record.status-in_progress::before { width: 8px; }
.unit-record.status-passed { background: rgba(200, 255, 41, .12); }
.unit-record.status-locked { color: var(--fdex-gray); }

.unit-id {
  align-self: stretch;
  display: grid;
  place-items: center;
  border-right: 1px solid var(--fdex-black);
  font-size: 23px;
  font-weight: 700;
}

.unit-copy h3 {
  margin: 4px 0 6px;
  font-size: 22px;
  line-height: 1.35;
}

.unit-copy p { margin: 0; color: var(--fdex-gray); }
.unit-meta { font-size: 11px; color: var(--fdex-gray); }
.unit-proof { font-size: 13px; line-height: 1.7; }

.status-mark {
  min-width: 116px;
  padding: 9px 12px;
  border: 1.5px solid var(--fdex-black);
  background: var(--fdex-white);
  text-align: center;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.status-passed .status-mark { background: var(--fdex-green); }
.status-locked .status-mark { border-color: var(--fdex-gray); color: var(--fdex-gray); }

.unit-actions { display: flex; justify-content: flex-end; }

.field-workbench {
  margin-bottom: 34px;
  padding: 36px;
}

.proof-stamp {
  border: var(--fdex-border);
  background: var(--fdex-white);
  padding: 8px 12px;
  font-size: 11px;
  font-weight: 700;
  transform: rotate(-2deg);
}

.section-lead { max-width: 760px; color: var(--fdex-gray); }

.workbench-grid {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: 36px;
  margin-top: 30px;
}

.run-controls {
  padding-right: 36px;
  border-right: 2px solid var(--fdex-black);
}

.field-row { display: grid; gap: 16px; }
.run-controls > button { width: 100%; margin-top: 16px; }

pre {
  min-height: 180px;
  margin: 18px 0 0;
  overflow: auto;
  border: var(--fdex-border);
  background: var(--fdex-black);
  color: var(--fdex-green);
  padding: 18px;
  white-space: pre-wrap;
  font: 13px/1.7 'IBM Plex Mono', monospace;
}

.evidence-form { display: grid; gap: 14px; }
.evidence-form h3 { margin: 0; font-size: 25px; }
.action-row { display: flex; gap: 14px; }
.action-row > * { flex: 1; }

.evidence-ledger { padding: 30px 34px; }
.compact-heading h2 { font-size: 30px; }

.history-entry {
  display: grid;
  grid-template-columns: 100px 130px minmax(0, 1fr) auto;
  gap: 16px;
  padding: 16px 0;
  border-top: 1px solid var(--fdex-black);
  font-size: 12px;
}

.history-entry:first-child { margin-top: 18px; }
.empty-state { margin: 20px 0 0; color: var(--fdex-gray); }

.review-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 24px;
  margin-bottom: 24px;
}

.student-files { display: grid; gap: 34px; }

.learner-file {
  border: var(--fdex-border);
  background: rgba(255, 253, 248, .9);
  box-shadow: var(--fdex-shadow);
}

.learner-file-head {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 20px;
  padding: 28px 30px;
  border-bottom: var(--fdex-border);
}

.learner-file-head h2 { margin: 5px 0 0; font-size: 34px; }

.gate-stamp {
  min-width: 160px;
  border: var(--fdex-border);
  background: var(--fdex-black);
  color: var(--fdex-paper);
  padding: 12px 14px;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
}

.gate-stamp b { display: block; margin-top: 4px; color: var(--fdex-green); font-size: 15px; }

.progress-trace {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border-bottom: var(--fdex-border);
  overflow-x: auto;
}

.progress-node {
  position: relative;
  min-width: 150px;
  min-height: 90px;
  padding: 18px 16px;
  border-right: 1px solid var(--fdex-black);
  font-size: 10px;
}

.progress-node:last-child { border-right: 0; }
.progress-node b { display: block; margin-top: 6px; font-size: 12px; text-transform: uppercase; }
.progress-node::after {
  content: '';
  position: absolute;
  width: 9px;
  height: 9px;
  right: 12px;
  top: 18px;
  border: 1.5px solid var(--fdex-black);
  background: var(--fdex-paper);
}

.progress-node.status-passed::after,
.progress-node.status-ready::after { background: var(--fdex-green); }
.progress-node.status-available { background: rgba(200, 255, 41, .12); }
.progress-node.status-locked { color: var(--fdex-gray); }

.submission-list { padding: 0 30px 30px; }
.submission-list > h3 { margin: 28px 0 0; font-size: 24px; }

.submission-record {
  padding: 24px 0;
  border-top: 1.5px solid var(--fdex-black);
}

.submission-record:first-of-type { margin-top: 18px; }

.submission-head {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 20px;
}

.submission-head h4 { margin: 0; font: 700 20px/1.35 'Noto Serif SC Variable', serif; }
.submission-meta { margin: 4px 0 0; color: var(--fdex-gray); font-size: 11px; }

.submission-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 18px 0;
  border: 1.5px solid var(--fdex-black);
}

.submission-facts p {
  min-width: 0;
  margin: 0;
  padding: 14px;
  border-right: 1px solid var(--fdex-black);
  overflow-wrap: anywhere;
}

.submission-facts p:last-child { border-right: 0; }
.submission-facts b { display: block; margin-bottom: 4px; font-size: 11px; }

.review-record {
  margin-top: 10px;
  border-left: 8px solid var(--fdex-green);
  background: var(--fdex-surface);
  padding: 12px 16px;
  font-size: 12px;
}

.review-actions { display: flex; justify-content: flex-end; gap: 14px; margin-top: 18px; }
.empty-submissions { color: var(--fdex-gray); }

.package-workbench { margin-bottom: 54px; padding: 34px; border-left: 12px solid var(--fdex-green); }
.package-progress { margin-top: 22px; border-top: 2px solid var(--fdex-black); border-bottom: 1px solid var(--fdex-black); padding: 14px 0; font: 700 12px/1.5 'IBM Plex Mono', monospace; }
.package-route { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); margin-top: 22px; border-top: 2px solid var(--fdex-black); border-bottom: 1px solid var(--fdex-black); }
.package-route-item { width: 100%; min-width: 0; min-height: 76px; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 14px; border: 0; border-right: 1px solid var(--fdex-black); border-radius: 0; padding: 15px 16px; background: rgba(255, 255, 255, .52); color: var(--fdex-black); box-shadow: none; text-align: left; }
.package-route-item:last-child { border-right: 0; }
.package-route-item > span,
.package-route-item > em { font: 700 11px/1.4 'IBM Plex Mono', monospace; font-style: normal; }
.package-route-item > b { min-width: 0; font-size: 13px; overflow-wrap: anywhere; }
.package-route-item > em { grid-column: 2; color: var(--fdex-gray); }
.package-route-item.status-completed { background: rgba(200, 255, 41, .15); }
.package-route-item.status-assigned { box-shadow: inset 8px 0 0 var(--fdex-green); }
.package-route-item:hover:not(:disabled) { transform: none; background: rgba(200, 255, 41, .24); box-shadow: inset 0 -5px 0 var(--fdex-green); }
.package-route-item.is-selected { background: var(--fdex-white); box-shadow: inset 0 -7px 0 var(--fdex-green); }
.package-route-item.is-selected > em { color: var(--fdex-black); }
.mentor-package-route { margin-bottom: 18px; }
.package-node { min-width: 0; margin-top: 24px; padding: 24px; border: 1.5px solid var(--fdex-black); background: var(--fdex-white); overflow-wrap: anywhere; }
.package-node h3 { margin: 8px 0 16px; font-size: 25px; }
.package-node button { margin-top: 16px; }
.package-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 16px; }
.package-actions button { margin-top: 0; }
.package-actions .draft-status { min-width: 180px; }
.package-lesson { display: grid; gap: 0; margin-top: 18px; border-top: 1px solid var(--fdex-black); }
.package-lesson section { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 18px; padding: 18px 0; border-bottom: 1px solid var(--fdex-black); }
.package-lesson section > span { font: 700 18px/1 'IBM Plex Mono', monospace; color: var(--fdex-gray); }
.package-lesson h3 { margin: 0 0 6px; font-size: 18px; }
.package-lesson p { margin: 0; white-space: pre-line; }
.package-node .preline,
.package-feedback p { overflow-wrap: anywhere; word-break: break-word; }
.package-feedback { margin: 18px 0; padding: 14px 16px; border-left: 8px solid var(--fdex-error); background: #f4e5dc; }
.package-feedback p { margin: 4px 0; }
.package-version-notice { margin: 18px 0; padding: 14px 16px; border: 1.5px solid var(--fdex-black); border-left: 8px solid var(--fdex-warning); background: #fff4cf; }
.package-version-notice p { margin: 5px 0 0; overflow-wrap: anywhere; }
.learner-identity { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--fdex-black); font: 700 11px/1.2 'IBM Plex Mono', monospace; }
.package-ai-help { margin: 18px 0; padding: 16px; border: 1.5px solid var(--fdex-black); border-left: 8px solid var(--fdex-green); background: rgba(200, 255, 41, .10); }
.package-ai-help.status-revise,
.package-ai-help.status-human_review { border-left-color: var(--fdex-warning); background: #fff4cf; }
.package-ai-help > div { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px 14px; }
.package-ai-help > p { margin: 10px 0; }
.package-ai-help ul { margin: 12px 0; padding: 0; border-top: 1px solid var(--fdex-black); list-style: none; }
.package-ai-help li { display: grid; grid-template-columns: minmax(90px, .35fr) minmax(0, 1fr); gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--fdex-line); }
.package-ai-help li.is-missing { color: var(--fdex-error); }
.package-ai-help li span { overflow-wrap: anywhere; }
.package-ai-help .ai-revision { padding: 12px; background: var(--fdex-white); border: 1px solid var(--fdex-line); white-space: pre-line; }
.package-ai-help .ai-revision b { display: block; margin-bottom: 5px; }
.package-ai-help small { display: block; color: var(--fdex-gray); font-family: 'IBM Plex Mono', monospace; }
.package-history { margin-top: 24px; }
.package-history h3 { margin: 0 0 12px; font-size: 20px; }
.package-assignment { margin: 0 30px 30px; padding: 24px; border-top: var(--fdex-border); background: rgba(200, 255, 41, .08); }
.package-assignment > h3 { margin: 0 0 14px; font-size: 24px; }
.package-assign-form { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(200px, .8fr) auto; align-items: end; gap: 14px; margin-top: 18px; }
.package-assign-form .form-message { grid-column: 1 / -1; }
.package-review { padding: 18px 0; border-top: 1px solid var(--fdex-black); }

@media (max-width: 900px) {
  .page-intro h1 { font-size: 50px; }
  .unit-record { grid-template-columns: 64px minmax(0, 1fr) auto; }
  .unit-proof { grid-column: 2; }
  .unit-actions { grid-column: 3; grid-row: 1 / span 2; }
  .workbench-grid { grid-template-columns: 1fr; }
  .run-controls { padding: 0 0 30px; border-right: 0; border-bottom: 2px solid var(--fdex-black); }
  .submission-facts { grid-template-columns: 1fr; }
  .submission-facts p { border-right: 0; border-bottom: 1px solid var(--fdex-black); }
  .submission-facts p:last-child { border-bottom: 0; }
  .package-assign-form { grid-template-columns: 1fr; }
  .package-assign-form button { width: 100%; }
}

@media (max-width: 680px) {
  .site-header { position: static; }
  .header-inner { width: calc(100% - 28px); min-height: 0; padding: 14px 0; align-items: flex-start; }
  .header-context { flex-direction: column; align-items: flex-end; gap: 6px; }
  .learner-identity { max-width: 150px; }
  .page-id { display: none; }
  .wrap { width: calc(100% - 28px); padding: 30px 0 72px; }
  .page-intro { margin-bottom: 28px; }
  .page-intro h1 { font-size: 40px; }
  .page-intro > p:last-child { font-size: 17px; }
  .auth-sheet,
  .field-workbench,
  .evidence-ledger { padding: 22px; box-shadow: 6px 6px 0 rgba(20, 32, 25, .14); }
  .auth-fields { grid-template-columns: 1fr; }
  .auth-fields button { width: 100%; }
  .trace-node { display: none; }
  .section-heading { align-items: flex-start; flex-direction: column; gap: 12px; }
  .section-heading h2,
  .review-toolbar h2 { font-size: 30px; }
  .section-note,
  .proof-stamp { align-self: flex-start; }
  .gate-strip { padding-right: 18px; }
  .gate-strip::after { position: static; display: block; margin-top: 8px; transform: none; }
  .unit-record { grid-template-columns: 48px minmax(0, 1fr); gap: 14px; padding: 18px 14px; }
  .unit-id { grid-row: 1 / span 3; font-size: 18px; }
  .unit-copy h3 { font-size: 19px; }
  .unit-proof { grid-column: 2; }
  .unit-actions { grid-column: 2; grid-row: auto; justify-content: stretch; }
  .unit-actions button { width: 100%; }
  .status-mark { min-width: 0; width: fit-content; }
  .workbench-grid { gap: 26px; }
  .action-row,
  .review-actions { flex-direction: column; }
  .package-actions { align-items: stretch; flex-direction: column; }
  .package-actions button { width: 100%; }
  .package-ai-help > div,
  .package-ai-help li { display: block; }
  .package-ai-help > div > * { display: block; }
  .package-ai-help > div > b { margin-top: 6px; }
  .package-ai-help > div .system-label { overflow-wrap: anywhere; }
  .package-ai-help li b { display: block; margin-bottom: 4px; }
  .history-entry { grid-template-columns: 72px 1fr; }
  .history-entry time { grid-column: 1 / -1; }
  .review-toolbar { align-items: flex-start; }
  .learner-file { box-shadow: 6px 6px 0 rgba(20, 32, 25, .14); }
  .learner-file-head { padding: 22px; flex-direction: column; }
  .gate-stamp { width: 100%; }
  .progress-trace { grid-template-columns: 1fr; overflow: visible; }
  .progress-node {
    min-width: 0;
    min-height: 70px;
    border-right: 0;
    border-bottom: 1px solid var(--fdex-black);
    overflow-wrap: anywhere;
  }
  .progress-node:last-child { border-bottom: 0; }
  .submission-list { padding: 0 22px 22px; }
  .submission-head { flex-direction: column; }
  .package-workbench { padding: 22px; border-left-width: 8px; }
  .package-node { padding: 18px; }
  .package-lesson section { grid-template-columns: 34px minmax(0, 1fr); gap: 12px; }
  .package-route { grid-template-columns: 1fr; }
  .package-route-item { border-right: 0; border-bottom: 1px solid var(--fdex-black); }
  .package-route-item:last-child { border-bottom: 0; }
  .package-assignment { margin: 0 22px 22px; padding: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* Mentor workspace */
.mentor-surface { min-width: 320px; }
.mentor-surface.drawer-open { overflow: hidden; }
.mentor-entry { min-height: calc(100vh - 72px); display: grid; place-items: center; }
.mentor-entry .auth-sheet { width: min(880px, 100%); }
.mentor-entry .auth-sheet h1 { margin: 7px 0 0; font: 700 42px/1.2 'Noto Serif SC Variable', serif; }
.mentor-shell { min-height: calc(100vh - 72px); display: grid; grid-template-columns: 246px minmax(0, 1fr); }
.mentor-sidebar { position: sticky; top: 72px; height: calc(100vh - 72px); display: flex; flex-direction: column; border-right: var(--fdex-border); background: rgba(232, 230, 222, .96); }
.mentor-sidebar-head { padding: 30px 26px 25px; border-bottom: 1px solid var(--fdex-black); }
.mentor-sidebar-head h1 { margin: 7px 0 0; font: 700 24px/1.25 'Noto Serif SC Variable', serif; }
.mentor-nav { display: grid; }
.mentor-nav button { min-height: 58px; display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 10px; border: 0; border-bottom: 1px solid var(--fdex-black); padding: 12px 20px; background: transparent; box-shadow: none; text-align: left; font-family: 'Noto Sans SC Variable', sans-serif; font-size: 14px; }
.mentor-nav button:hover:not(:disabled) { transform: none; box-shadow: inset 7px 0 0 var(--fdex-green); }
.mentor-nav button.active { background: var(--fdex-black); color: var(--fdex-paper); box-shadow: inset 7px 0 0 var(--fdex-green); }
.mentor-nav button > span { color: var(--fdex-gray); font: 700 10px/1 'IBM Plex Mono', monospace; }
.mentor-nav button.active > span { color: var(--fdex-green); }
.mentor-nav button > b { min-width: 24px; height: 24px; display: grid; place-items: center; border: 1px solid currentColor; background: var(--fdex-green); color: var(--fdex-black); font: 700 10px/1 'IBM Plex Mono', monospace; }
.mentor-sidebar-foot { margin-top: auto; padding: 22px 20px; border-top: var(--fdex-border); }
.mentor-sidebar-foot p { margin: 0; font-weight: 700; }
.mentor-sidebar-foot small { display: block; margin-top: 3px; color: var(--fdex-gray); font: 500 10px/1.5 'IBM Plex Mono', monospace; }
.sidebar-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 16px; }
.button-quiet { background: transparent; box-shadow: none; }
.mentor-main { min-width: 0; padding: 34px clamp(24px, 4vw, 58px) 80px; }
.mentor-view-head { min-height: 86px; display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; padding-bottom: 22px; border-bottom: 3px solid var(--fdex-black); }
.mentor-view-head h2 { margin: 4px 0 0; font-size: 34px; line-height: 1.15; }
.view-meta { margin: 0; color: var(--fdex-gray); font: 500 11px/1.5 'IBM Plex Mono', monospace; text-align: right; }
.mentor-view { display: none; padding-top: 26px; }
.mentor-view.active { display: block; }
.mentor-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: var(--fdex-border); background: var(--fdex-white); }
.metric-block { min-width: 0; min-height: 140px; padding: 20px; border-left: 1px solid var(--fdex-black); }
.metric-block:first-child { border-left: 0; }
.metric-block p { margin: 0; color: var(--fdex-gray); font: 700 10px/1.4 'IBM Plex Mono', monospace; }
.metric-block strong { display: block; margin-top: 11px; font: 700 42px/1 'IBM Plex Mono', monospace; }
.metric-block small { display: block; margin-top: 10px; color: var(--fdex-gray); font-size: 11px; }
.metric-block.metric-accent { background: rgba(200, 255, 41, .22); }
.metric-block.metric-alert { box-shadow: inset 0 7px 0 var(--fdex-error); }
.overview-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(290px, .8fr); gap: 24px; margin-top: 24px; }
.desk-panel { border: var(--fdex-border); background: rgba(255, 253, 248, .9); }
.panel-heading { min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 20px; border-bottom: 1px solid var(--fdex-black); }
.panel-heading h3 { margin: 4px 0 0; font-size: 22px; }
.button-link { min-height: auto; border: 0; padding: 6px 0; background: transparent; box-shadow: none; text-decoration: underline; text-underline-offset: 4px; }
.button-link:hover:not(:disabled) { transform: none; box-shadow: none; color: var(--fdex-gray); }
.action-queue, .compact-roster { display: grid; }
.action-row { width: 100%; min-height: 76px; display: grid; grid-template-columns: 82px minmax(0, 1fr) auto; align-items: center; gap: 16px; border: 0; border-top: 1px solid var(--fdex-grid); padding: 13px 20px; background: transparent; box-shadow: none; text-align: left; }
.action-row:first-child { border-top: 0; }
.action-row:hover:not(:disabled) { transform: none; background: rgba(200, 255, 41, .13); box-shadow: inset 7px 0 0 var(--fdex-green); }
.action-row > span:nth-child(2) { display: grid; gap: 3px; }
.action-row small { color: var(--fdex-gray); font: 500 11px/1.5 'Noto Sans SC Variable', sans-serif; }
.action-row time { color: var(--fdex-gray); font: 500 10px/1.4 'IBM Plex Mono', monospace; white-space: nowrap; }
.action-priority { display: inline-grid; place-items: center; min-height: 25px; border: 1px solid var(--fdex-black); padding: 4px 7px; font: 700 9px/1 'IBM Plex Mono', monospace; }
.action-priority.high { background: var(--fdex-green); }
.cohort-signal { display: grid; gap: 16px; padding: 24px 20px; }
.signal-row { display: grid; grid-template-columns: 72px minmax(80px, 1fr) 24px; align-items: center; gap: 12px; font-size: 12px; }
.mentor-shell progress, .learner-drawer progress { overflow: hidden; border: 1px solid var(--fdex-black); border-radius: 0; background: var(--fdex-surface); appearance: none; }
.mentor-shell progress::-webkit-progress-bar, .learner-drawer progress::-webkit-progress-bar { background: var(--fdex-surface); }
.mentor-shell progress::-webkit-progress-value, .learner-drawer progress::-webkit-progress-value { background: var(--fdex-green); }
.mentor-shell progress::-moz-progress-bar, .learner-drawer progress::-moz-progress-bar { background: var(--fdex-green); }
.signal-row > progress { width: 100%; height: 10px; }
.signal-row strong { font: 700 12px/1 'IBM Plex Mono', monospace; text-align: right; }
.overview-roster { margin-top: 24px; }
.compact-learner { width: 100%; min-height: 76px; display: grid; grid-template-columns: 42px minmax(0, 1.4fr) minmax(150px, .8fr) 90px; align-items: center; gap: 14px; border: 0; border-top: 1px solid var(--fdex-grid); padding: 13px 20px; background: transparent; box-shadow: none; text-align: left; }
.compact-learner:first-child { border-top: 0; }
.compact-learner:hover:not(:disabled) { transform: none; background: rgba(200, 255, 41, .12); box-shadow: inset 7px 0 0 var(--fdex-green); }
.learner-monogram { width: 38px; height: 38px; display: grid; place-items: center; border: 1.5px solid var(--fdex-black); background: var(--fdex-black); color: var(--fdex-green); font: 700 16px/1 'Noto Serif SC Variable', serif; }
.learner-monogram.large { width: 64px; height: 64px; font-size: 26px; }
.compact-learner-name { display: grid; gap: 2px; min-width: 0; }
.compact-learner-name small { overflow: hidden; color: var(--fdex-gray); font: 500 11px/1.4 'Noto Sans SC Variable', sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.compact-progress { display: grid; grid-template-columns: minmax(70px, 1fr) 36px; align-items: center; gap: 10px; }
.compact-progress > progress, .table-progress > progress, .assessment-dimensions progress { width: 100%; height: 10px; accent-color: var(--fdex-green-dark); }
.compact-progress small { color: var(--fdex-gray); font: 700 10px/1 'IBM Plex Mono', monospace; }
.risk-label { display: inline-flex; min-height: 26px; align-items: center; justify-content: center; border: 1px solid var(--fdex-black); padding: 4px 8px; background: var(--fdex-white); font: 700 10px/1 'IBM Plex Mono', monospace; white-space: nowrap; }
.risk-needs_review { background: var(--fdex-green); }
.risk-returned, .risk-stalled { border-color: var(--fdex-error); background: #f4e5dc; }
.risk-completed { background: rgba(54, 168, 107, .16); }
.risk-not_assigned { color: var(--fdex-gray); }
.panel-empty { padding: 38px 20px; color: var(--fdex-gray); text-align: center; font: 500 12px/1.6 'IBM Plex Mono', monospace; }
.table-toolbar { min-height: 78px; display: flex; align-items: flex-end; justify-content: flex-end; gap: 14px; padding: 14px 0 18px; }
.table-toolbar label { min-width: 180px; }
.table-toolbar .search-field { width: min(420px, 100%); margin-right: auto; }
.table-toolbar input, .table-toolbar select { min-height: 42px; margin-top: 5px; padding: 8px 11px; }
.data-table-wrap { overflow-x: auto; border: var(--fdex-border); background: var(--fdex-white); }
.mentor-table { width: 100%; min-width: 940px; border-collapse: collapse; table-layout: fixed; }
.mentor-table th { height: 52px; padding: 10px 14px; border-right: 1px solid var(--fdex-black); border-bottom: var(--fdex-border); background: var(--fdex-black); color: var(--fdex-paper); text-align: left; font: 700 10px/1.35 'IBM Plex Mono', monospace; vertical-align: bottom; }
.mentor-table th:last-child, .mentor-table td:last-child { border-right: 0; }
.mentor-table td { height: 76px; padding: 12px 14px; border-right: 1px solid var(--fdex-grid); border-bottom: 1px solid var(--fdex-grid); font-size: 12px; vertical-align: middle; }
.mentor-table tbody tr:last-child td { border-bottom: 0; }
.mentor-table tbody tr:hover { background: rgba(200, 255, 41, .1); }
.mentor-table td small { display: block; margin-top: 3px; color: var(--fdex-gray); font-size: 10px; }
.learner-link { min-height: auto; display: grid; gap: 1px; border: 0; padding: 0; background: transparent; box-shadow: none; text-align: left; }
.learner-link:hover:not(:disabled) { transform: none; box-shadow: none; text-decoration: underline; text-underline-offset: 3px; }
.learner-link small { font-family: 'Noto Sans SC Variable', sans-serif; }
.assessment-cell { display: flex; align-items: baseline; gap: 8px; }
.assessment-cell b { font: 700 22px/1 'IBM Plex Mono', monospace; }
.assessment-cell small { text-transform: uppercase; }
.table-progress { display: grid; grid-template-columns: minmax(70px, 1fr) 38px; align-items: center; gap: 8px; }
.table-progress span { font: 700 10px/1 'IBM Plex Mono', monospace; }
.icon-button { width: 38px; min-height: 38px; display: grid; place-items: center; border: 1.5px solid var(--fdex-black); padding: 0; background: var(--fdex-white); box-shadow: none; font-size: 20px; }
.row-open { margin-left: auto; }
.progress-legend { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-bottom: 14px; }
.matrix-state { display: inline-flex; align-items: center; border: 1px solid var(--fdex-black); padding: 5px 8px; background: var(--fdex-white); font: 700 9px/1 'IBM Plex Mono', monospace; }
.matrix-state.status-passed { background: var(--fdex-green); }
.matrix-state.status-submitted { border-bottom: 5px solid var(--fdex-warning); }
.matrix-state.status-returned { background: #f4e5dc; }
.matrix-state.status-locked { color: var(--fdex-gray); }
.progress-matrix-wrap { overflow-x: auto; }
.progress-matrix { min-width: 1180px; }
.progress-matrix th:first-child { width: 160px; }
.progress-matrix th small { display: block; margin-bottom: 4px; color: var(--fdex-green); }
.progress-matrix td:not(:first-child) { padding: 0; }
.matrix-cell { width: 100%; min-height: 74px; display: grid; place-items: center; gap: 7px; border: 0; padding: 8px; background: transparent; box-shadow: none; }
.matrix-cell:hover:not(:disabled) { transform: none; background: rgba(200, 255, 41, .15); box-shadow: inset 0 -5px 0 var(--fdex-green); }
.matrix-cell i { width: 12px; height: 12px; border: 1.5px solid var(--fdex-black); background: var(--fdex-white); }
.matrix-cell span { font: 700 9px/1.25 'IBM Plex Mono', monospace; text-align: center; }
.matrix-cell.status-passed i { background: var(--fdex-green); }
.matrix-cell.status-in_progress i, .matrix-cell.status-available i { border-width: 4px; border-color: var(--fdex-green-dark); }
.matrix-cell.status-submitted i { background: var(--fdex-warning); }
.matrix-cell.status-returned i { background: var(--fdex-error); }
.matrix-cell.status-locked { color: var(--fdex-gray); opacity: .58; }
.review-queue { border: var(--fdex-border); background: var(--fdex-white); }
.review-queue-row { min-height: 92px; display: grid; grid-template-columns: 42px 88px minmax(0, 1fr) 120px auto; align-items: center; gap: 16px; padding: 14px 18px; border-top: 1px solid var(--fdex-black); }
.review-queue-row:first-child { border-top: 0; }
.queue-index { color: var(--fdex-gray); font: 700 16px/1 'IBM Plex Mono', monospace; }
.review-queue-row h3 { margin: 0; font-size: 18px; }
.review-queue-row p { margin: 3px 0 0; color: var(--fdex-gray); font-size: 12px; }
.review-queue-row time { display: grid; gap: 2px; }
.review-queue-row time b, .review-queue-row time small { font: 700 10px/1.4 'IBM Plex Mono', monospace; }
.review-queue-row time small { color: var(--fdex-gray); font-weight: 500; }
.drawer-backdrop { position: fixed; inset: 0; z-index: 30; background: rgba(20, 32, 25, .48); }
.learner-drawer { position: fixed; inset: 0 0 0 auto; z-index: 31; width: min(680px, 94vw); display: grid; grid-template-rows: auto auto minmax(0, 1fr); border-left: var(--fdex-border); background: var(--fdex-paper); box-shadow: -16px 0 0 rgba(20, 32, 25, .14); }
.drawer-head { min-height: 100px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 26px; border-bottom: var(--fdex-border); background: var(--fdex-white); }
.drawer-head h2 { margin: 4px 0 0; font-size: 30px; }
.drawer-tabs { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: var(--fdex-border); }
.drawer-tabs button { min-height: 48px; border: 0; border-left: 1px solid var(--fdex-black); padding: 8px; background: transparent; box-shadow: none; font-family: 'Noto Sans SC Variable', sans-serif; }
.drawer-tabs button:first-child { border-left: 0; }
.drawer-tabs button.active { background: var(--fdex-black); color: var(--fdex-green); }
.drawer-tabs button:hover:not(:disabled) { transform: none; box-shadow: inset 0 -6px 0 var(--fdex-green); }
.drawer-body { min-height: 0; overflow-y: auto; padding: 24px 26px 70px; }
.learner-hero { display: grid; grid-template-columns: 64px 1fr; align-items: center; gap: 18px; padding-bottom: 24px; border-bottom: 3px solid var(--fdex-black); }
.learner-hero h3 { margin: 4px 0 8px; font-size: 22px; }
.fact-grid { display: grid; grid-template-columns: repeat(4, 1fr); border: var(--fdex-border); border-top: 0; background: var(--fdex-white); }
.fact-grid > div { min-height: 90px; padding: 14px; border-left: 1px solid var(--fdex-black); }
.fact-grid > div:first-child { border-left: 0; }
.fact-grid small { display: block; color: var(--fdex-gray); font-size: 10px; }
.fact-grid b { display: block; margin-top: 9px; font: 700 20px/1.2 'IBM Plex Mono', monospace; }
.detail-section { margin-top: 22px; border: var(--fdex-border); padding: 20px; background: var(--fdex-white); }
.detail-section h3 { margin: 5px 0 12px; font-size: 21px; }
.detail-section > p:last-child { margin-bottom: 0; }
.detail-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding-bottom: 14px; border-bottom: 1px solid var(--fdex-black); }
.detail-section-head h3 { margin-bottom: 2px; }
.detail-section-head small { color: var(--fdex-gray); font: 500 10px/1.4 'IBM Plex Mono', monospace; }
.assessment-hero { min-height: 150px; display: grid; grid-template-columns: 1fr 1fr; align-items: center; border: var(--fdex-border); background: var(--fdex-black); color: var(--fdex-paper); padding: 24px; }
.assessment-hero > div:first-child { border-right: 1px solid var(--fdex-gray); }
.assessment-hero strong { font: 700 60px/1 'IBM Plex Mono', monospace; color: var(--fdex-green); }
.assessment-hero h3 { margin: 0; font-size: 28px; text-align: center; }
.assessment-hero p { margin: 6px 0 0; color: var(--fdex-gray); text-align: center; }
.assessment-dimensions { display: grid; gap: 14px; margin-top: 18px; }
.assessment-dimensions > div { display: grid; grid-template-columns: 110px 1fr 32px; align-items: center; gap: 12px; font-size: 12px; }
.assessment-dimensions strong { font: 700 11px/1 'IBM Plex Mono', monospace; text-align: right; }
.gap-list { margin: 14px 0 0; padding: 0; list-style: none; }
.gap-list li { position: relative; padding: 11px 0 11px 22px; border-top: 1px solid var(--fdex-grid); }
.gap-list li::before { content: ''; position: absolute; left: 0; top: 18px; width: 9px; height: 9px; border: 1px solid var(--fdex-black); background: var(--fdex-green); }
.drawer-progress { display: grid; margin-top: 16px; border-top: 1px solid var(--fdex-black); }
.drawer-progress > div { min-height: 58px; display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 12px; border-bottom: 1px solid var(--fdex-grid); }
.drawer-progress > div > span, .drawer-progress > div > small { font: 700 10px/1 'IBM Plex Mono', monospace; }
.drawer-progress > div > span { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid var(--fdex-black); }
.drawer-progress > div.status-passed > span { background: var(--fdex-green); }
.drawer-progress > div > small { color: var(--fdex-gray); }
.detail-record { display: grid; grid-template-columns: 1fr auto; gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--fdex-grid); }
.detail-record:last-child { border-bottom: 0; }
.detail-record > div:first-child { display: grid; gap: 3px; }
.detail-record small { color: var(--fdex-gray); font: 500 10px/1.5 'IBM Plex Mono', monospace; }
.detail-record > p, .detail-record blockquote, .detail-record .detail-actions, .detail-record > button { grid-column: 1 / -1; }
.detail-record > p { margin: 0; font-size: 12px; }
.detail-record blockquote { margin: 0; border-left: 5px solid var(--fdex-green); padding: 10px 12px; background: var(--fdex-paper); font-size: 12px; }
.detail-record blockquote small { display: block; margin-top: 5px; }
.detail-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.mentor-surface .package-assign-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: end; margin-top: 22px; }
.mentor-surface .package-assign-form > div, .mentor-surface .package-assign-form .form-message { grid-column: 1 / -1; }
.event-timeline { margin: 18px 0 0; padding: 0; list-style: none; }
.event-timeline li { position: relative; display: grid; grid-template-columns: 100px 1fr; gap: 16px; min-height: 52px; padding: 8px 0 8px 22px; border-left: 2px solid var(--fdex-black); }
.event-timeline li::before { content: ''; position: absolute; left: -7px; top: 14px; width: 10px; height: 10px; border: 1px solid var(--fdex-black); background: var(--fdex-green); }
.event-timeline time { color: var(--fdex-gray); font: 500 10px/1.5 'IBM Plex Mono', monospace; }
.event-timeline b { font-size: 12px; }
.mentor-toast { position: fixed; right: 22px; bottom: 22px; z-index: 50; min-width: 220px; border: var(--fdex-border); background: var(--fdex-black); color: var(--fdex-green); padding: 13px 16px; box-shadow: 6px 6px 0 rgba(20, 32, 25, .22); font: 700 11px/1.4 'IBM Plex Mono', monospace; }
.mentor-toast.error { color: var(--fdex-paper); box-shadow: inset 7px 0 0 var(--fdex-error), 6px 6px 0 rgba(20, 32, 25, .22); }
.muted { color: var(--fdex-gray); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

@media (max-width: 1040px) {
  .mentor-shell { grid-template-columns: 190px minmax(0, 1fr); }
  .mentor-sidebar-head { padding: 24px 18px; }
  .mentor-nav button { padding: 11px 14px; }
  .mentor-main { padding-inline: 24px; }
  .mentor-metrics { grid-template-columns: repeat(2, 1fr); }
  .metric-block:nth-child(3) { border-left: 0; border-top: 1px solid var(--fdex-black); }
  .metric-block:nth-child(4) { border-top: 1px solid var(--fdex-black); }
  .overview-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .mentor-header { position: static; }
  .mentor-header-inner .page-id { display: none; }
  .mentor-entry { min-height: calc(100vh - 72px); }
  .mentor-entry .auth-sheet h1 { font-size: 32px; }
  .mentor-shell { display: block; min-height: calc(100vh - 72px); }
  .mentor-sidebar { position: static; width: 100%; height: auto; display: block; border-right: 0; border-bottom: var(--fdex-border); }
  .mentor-sidebar-head { display: none; }
  .mentor-nav { grid-template-columns: repeat(4, 1fr); overflow-x: auto; }
  .mentor-nav button { position: relative; min-width: 86px; min-height: 54px; display: flex; justify-content: center; border-right: 1px solid var(--fdex-black); border-bottom: 0; padding: 9px 6px; text-align: center; }
  .mentor-nav button > span { display: none; }
  .mentor-nav button > b { position: absolute; top: 3px; right: 3px; min-width: 18px; width: 18px; height: 18px; }
  .mentor-sidebar-foot { display: none; }
  .mentor-main { padding: 24px 14px 64px; }
  .mentor-view-head { min-height: 70px; align-items: flex-start; }
  .mentor-view-head h2 { font-size: 28px; }
  .view-meta { max-width: 45%; }
  .mentor-metrics { grid-template-columns: 1fr 1fr; }
  .metric-block { min-height: 118px; padding: 16px; }
  .metric-block strong { font-size: 34px; }
  .panel-heading { padding: 16px; }
  .action-row { grid-template-columns: 72px 1fr; padding-inline: 14px; }
  .action-row time { grid-column: 2; }
  .compact-learner { grid-template-columns: 38px minmax(0, 1fr) auto; padding-inline: 14px; }
  .compact-progress { grid-column: 2 / -1; }
  .table-toolbar { align-items: stretch; flex-direction: column; }
  .table-toolbar label, .table-toolbar .search-field { width: 100%; min-width: 0; }
  .review-queue-row { grid-template-columns: 34px 1fr auto; gap: 10px; padding: 14px; }
  .review-queue-row .action-priority { grid-column: 2; grid-row: 1; justify-self: start; }
  .review-queue-row > div { grid-column: 1 / -1; }
  .review-queue-row time { grid-column: 1 / 3; }
  .review-queue-row > button { grid-column: 3; }
  .learner-drawer { width: 100vw; box-shadow: none; }
  .drawer-head { min-height: 82px; padding: 16px; }
  .drawer-head h2 { font-size: 25px; }
  .drawer-tabs { overflow-x: auto; grid-template-columns: repeat(4, minmax(98px, 1fr)); }
  .drawer-body { padding: 18px 14px 56px; }
  .fact-grid { grid-template-columns: 1fr 1fr; }
  .fact-grid > div:nth-child(3) { border-left: 0; border-top: 1px solid var(--fdex-black); }
  .fact-grid > div:nth-child(4) { border-top: 1px solid var(--fdex-black); }
  .assessment-hero { grid-template-columns: 1fr; gap: 22px; }
  .assessment-hero > div:first-child { border-right: 0; border-bottom: 1px solid var(--fdex-gray); padding-bottom: 20px; }
  .mentor-surface .package-assign-form { grid-template-columns: 1fr; }
  .mentor-surface .package-assign-form > * { grid-column: 1 !important; }
  .event-timeline li { grid-template-columns: 78px 1fr; }
}
