:root {
  --navy: #070b38;
  --navy-2: #10164f;
  --blue-soft: #eef2ff;
  --ink: #1f2937;
  --muted: #667085;
  --line: #e2e8f0;
  --bg: #f4f6fa;
  --white: #ffffff;
  --green: #16a34a;
  --orange: #f59e0b;
  --red: #dc2626;
  --shadow: 0 14px 34px rgba(7, 11, 56, 0.08);
  --shadow-soft: 0 8px 20px rgba(15, 23, 42, 0.06);
  --radius: 8px;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  color: var(--ink);
  background:
    radial-gradient(circle at top right, rgba(238, 242, 255, 0.75), transparent 30rem),
    var(--bg);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a {
  color: inherit;
  text-decoration: none;
}

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

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid rgba(16, 22, 79, 0.22);
  outline-offset: 2px;
}

.app {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 264px 1fr;
  transition: grid-template-columns 0.18s ease;
}

.app.sidebar-collapsed {
  grid-template-columns: 0 1fr;
}

.sidebar {
  background: linear-gradient(180deg, var(--navy) 0%, #05082d 100%);
  color: #fff;
  padding: 22px 16px;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: auto;
  transition: padding 0.18s ease, opacity 0.18s ease, visibility 0.18s ease;
  box-shadow: 10px 0 28px rgba(7, 11, 56, 0.16);
}

.app.sidebar-collapsed .sidebar {
  opacity: 0;
  overflow: hidden;
  padding-left: 0;
  padding-right: 0;
  visibility: hidden;
}

.brand {
  background: #fff;
  border-radius: 8px;
  padding: 10px;
  margin-bottom: 14px;
  min-height: 68px;
  display: grid;
  place-items: center;
}

.brand img {
  width: 138px;
  max-width: 100%;
  display: block;
}

.sidebar .brand {
  padding: 8px;
  min-height: 54px;
  box-shadow: 0 12px 28px rgba(7, 11, 56, 0.2);
}

.sidebar .brand img {
  width: 104px;
}

.portal-label {
  color: rgba(255,255,255,0.68);
  font-size: 0.76rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin: 18px 10px 10px;
}

.nav {
  display: grid;
  gap: 7px;
}

.nav-group {
  border-radius: 8px;
}

.nav-group summary {
  align-items: center;
  color: rgba(255,255,255,0.78);
  cursor: pointer;
  display: flex;
  font-size: 0.76rem;
  font-weight: 900;
  gap: 8px;
  letter-spacing: 0.04em;
  line-height: 1.2;
  list-style: none;
  padding: 8px 9px;
  text-transform: uppercase;
  transition: background 0.16s ease, color 0.16s ease;
}

.nav-group summary::-webkit-details-marker {
  display: none;
}

.nav-group.active summary,
.nav-group summary:hover {
  color: #fff;
}

.nav-group summary:focus-visible {
  outline: 3px solid rgba(255,255,255,0.26);
  outline-offset: 2px;
}

.nav-group-links {
  display: grid;
  gap: 2px;
  grid-template-columns: 1fr;
  padding: 0 0 4px 22px;
}

.nav-main-link,
.nav-group-links a {
  min-width: 0;
  overflow-wrap: anywhere;
}

.nav-main-link,
.nav-group summary {
  border-left: 3px solid transparent;
}

.nav-main-link {
  align-items: center;
  display: flex;
  gap: 8px;
}

.nav-icon {
  align-items: center;
  background: rgba(255,255,255,0.12);
  border-radius: 6px;
  color: rgba(255,255,255,0.86);
  display: inline-flex;
  flex: 0 0 22px;
  font-size: 0.72rem;
  font-weight: 900;
  height: 22px;
  justify-content: center;
  letter-spacing: 0;
  line-height: 1;
}

.nav a {
  color: rgba(255,255,255,0.82);
  padding: 9px 10px;
  border-radius: 6px;
  font-weight: 700;
  line-height: 1.2;
  transition: background 0.16s ease, color 0.16s ease, transform 0.16s ease;
}

.nav a:hover,
.nav a.active {
  background: rgba(255,255,255,0.09);
  color: #fff;
}

.nav a:hover {
  transform: none;
}

.nav a.active {
  box-shadow: inset 3px 0 0 rgba(255,255,255,0.8);
}

.nav a[aria-disabled="true"] {
  opacity: 0.66;
  cursor: default;
}

.role-box {
  margin-top: 20px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 8px;
  padding: 16px;
  display: grid;
  gap: 4px;
}

.role-box small,
.role-box span {
  color: rgba(255,255,255,0.72);
}

.main {
  min-width: 0;
}

.topbar {
  background: rgba(255,255,255,0.94);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 0;
  z-index: 20;
  padding: 15px 28px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
}

.topbar-title {
  min-width: 0;
  flex: 1 1 auto;
}

.sidebar-toggle {
  width: 42px;
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  color: var(--navy);
  display: inline-grid;
  place-content: center;
  gap: 4px;
  cursor: pointer;
  flex: 0 0 auto;
  box-shadow: var(--shadow-soft);
  transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}

.sidebar-toggle:hover {
  border-color: #cbd5e1;
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.1);
  transform: translateY(-1px);
}

.sidebar-toggle span {
  width: 18px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  display: block;
}

.topbar h1 {
  color: var(--navy);
  font-size: clamp(1.35rem, 2vw, 1.72rem);
  margin: 0;
}

.topbar p {
  color: var(--muted);
  margin: 2px 0 0;
}

.topbar-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.user-chip {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--blue-soft);
  border: 1px solid #dbe4ff;
  padding: 10px 12px;
  border-radius: 999px;
  color: var(--navy);
  font-weight: 800;
  font-size: 0.9rem;
  max-width: min(420px, 100%);
  overflow-wrap: anywhere;
}

.avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--navy);
  color: #fff;
  display: grid;
  place-items: center;
  font-weight: 900;
}

.content {
  padding: 30px;
  display: grid;
  gap: 24px;
}

.grid {
  display: grid;
  gap: 18px;
}

.stats {
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

.two-col {
  grid-template-columns: 1.1fr 0.9fr;
}

.stat,
.panel,
.login-card,
.notice,
.alert,
.cohort-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.stat {
  padding: 19px;
  box-shadow: 0 10px 24px rgba(7, 11, 56, 0.09);
  display: grid;
  gap: 6px;
  min-height: 126px;
}

.stat-link {
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.stat-link:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgba(7, 11, 56, 0.10);
}

.stat small {
  display: block;
  color: var(--muted);
  margin-bottom: 8px;
  font-weight: 700;
}

.stat strong {
  color: var(--navy);
  font-size: clamp(1.55rem, 2vw, 1.9rem);
  line-height: 1;
}

.stat span,
.muted,
.meta {
  color: var(--muted);
}

.panel {
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}

.panel:hover,
.stat:hover,
.cohort-card:hover,
.dashboard-card:hover {
  background: #f8fbff;
  box-shadow: 0 12px 28px rgba(7, 11, 56, 0.10);
}

.panel-head {
  padding: 18px 22px;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
}

.panel-head h2 {
  margin: 0;
  color: var(--navy);
  font-size: 1.15rem;
}

.panel-head p {
  margin: 3px 0 0;
  color: var(--muted);
}

.panel-body {
  padding: 20px 22px;
}

.notice {
  background: #fffaf0;
  border-color: #fde3b4;
  color: #7c2d12;
  padding: 16px 18px;
  box-shadow: 0 8px 20px rgba(124, 45, 18, 0.04);
}

.alert {
  background: #eff6ff;
  border-color: #bfdbfe;
  color: #1e3a8a;
  padding: 13px 14px;
  margin: 12px 0;
}

.alert.error {
  background: #fef2f2;
  border-color: #fecaca;
  color: #991b1b;
}

.import-routing-panel {
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 14px;
  margin: 16px 0;
  overflow: hidden;
}

.import-routing-panel-head,
.import-routing-audit-body {
  padding: 14px 16px;
}

.import-routing-panel-head {
  border-bottom: 1px solid var(--line);
}

.import-routing-panel-head h3,
.import-routing-panel-head p,
.import-routing-audit-body > p {
  margin: 0;
}

.import-routing-panel-head p,
.import-routing-audit-body > p {
  color: var(--muted);
  font-size: 0.84rem;
  margin-top: 4px;
}

.import-routing-messages {
  display: grid;
  gap: 10px;
  padding: 12px;
}

.import-routing-message {
  background: #fff;
  border: 1px solid #bfdbfe;
  border-left: 4px solid #2563eb;
  border-radius: 10px;
  overflow: hidden;
}

.import-routing-message.is-blocked {
  border-color: #fed7aa;
  border-left-color: #ea580c;
}

.import-routing-message > summary,
.import-routing-audit-panel > summary {
  cursor: pointer;
  list-style: none;
}

.import-routing-message > summary::-webkit-details-marker,
.import-routing-audit-panel > summary::-webkit-details-marker {
  display: none;
}

.import-routing-message > summary {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 12px 14px;
}

.import-routing-message > summary span:first-child {
  display: grid;
  gap: 3px;
}

.import-routing-message > summary small,
.import-routing-recorded,
.import-routing-technical {
  color: var(--muted);
}

.import-routing-message-body {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 14px;
  padding: 14px;
}

.import-routing-facts {
  display: grid;
  gap: 8px;
  margin: 0;
}

.import-routing-facts > div {
  display: grid;
  gap: 2px;
  grid-template-columns: minmax(110px, 150px) 1fr;
}

.import-routing-facts dt {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.import-routing-facts dd {
  margin: 0;
}

.import-routing-candidates ul {
  display: grid;
  gap: 8px;
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
}

.import-routing-candidates li {
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 9px;
  display: grid;
  gap: 6px;
  padding: 10px 12px;
}

.import-routing-candidate-head,
.import-routing-candidate-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
}

.import-routing-candidate-head {
  align-items: center;
  justify-content: space-between;
}

.import-routing-candidate-head span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.import-routing-candidate-meta {
  color: #475569;
  font-size: 0.8rem;
}

.import-routing-audit-panel {
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 10px;
  margin-top: 4px;
}

.import-routing-audit-panel > summary {
  color: var(--navy);
  font-size: 0.82rem;
  font-weight: 800;
  padding: 9px 11px;
}

.import-routing-audit-panel .import-routing-messages {
  padding: 10px 0 0;
}

@media (max-width: 640px) {
  .import-routing-message > summary,
  .import-routing-facts > div {
    align-items: flex-start;
    grid-template-columns: 1fr;
  }

  .import-routing-message > summary {
    flex-direction: column;
  }
}

.cohort-list {
  display: grid;
  gap: 10px;
}

.cohort-card {
  padding: 13px 14px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  justify-content: space-between;
  align-items: start;
  gap: 5px 14px;
  box-shadow: var(--shadow-soft);
}

.cohort-card h3 {
  margin: 0;
  color: var(--navy);
  font-size: 1rem;
}

.cohort-card .meta {
  grid-column: 1 / -1;
  margin: 0;
  font-size: 0.92rem;
}

.cohort-card .badge {
  justify-self: end;
}

.cohort-card-count {
  color: #4b5563;
}

.cohort-card > .small-link {
  grid-column: 1 / -1;
}

.badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  border-radius: 999px;
  padding: 5px 10px;
  min-height: 26px;
  font-size: 0.76rem;
  font-weight: 900;
  line-height: 1.15;
  white-space: nowrap;
  border: 1px solid transparent;
}

.badge.blue {
  background: #dbeafe;
  color: #1e40af;
}

.badge.green {
  background: #dcfce7;
  color: #166534;
}

.badge.active {
  background: #dcfce7;
  color: #166534;
}

.badge.pending_start {
  background: #fef3c7;
  color: #92400e;
}

.badge.paused,
.badge.pending_external_moderation,
.badge.pending_qcto_monitoring,
.badge.eisa_ready {
  background: #ffedd5;
  color: #9a3412;
}

.badge.completed {
  background: #dbeafe;
  color: #1e40af;
}

.badge.cancelled,
.badge.inactive,
.badge.locked,
.badge.unknown,
.badge.not_started,
.badge.withdrawn,
.badge.transferred,
.badge.archived,
.badge.reverted,
.badge.uploaded {
  background: #f1f5f9;
  color: #475569;
}

.badge.present,
.badge.competent,
.badge.imported {
  background: #dcfce7;
  color: #166534;
}

.badge.competent_after_rewrite {
  background: #ede9fe;
  border-color: #c4b5fd;
  color: #5b21b6;
}

.badge.absent,
.badge.not_yet_competent,
.badge.did_not_submit,
.badge.terminated,
.badge.failed {
  background: #fee2e2;
  color: #991b1b;
}

.badge.late,
.badge.excused,
.badge.pending_reassessment,
.badge.rewrite_required,
.badge.suspended,
.badge.on_hold,
.badge.at_risk,
.badge.submitted {
  background: #fef3c7;
  color: #92400e;
}

.badge.gray {
  background: #f1f5f9;
  color: #475569;
}

.badge.scheduled {
  background: #dbeafe;
  color: #1e40af;
}

.badge.low,
.badge.normal,
.badge.draft {
  background: #f1f5f9;
  color: #475569;
}

.badge.high,
.badge.published {
  background: #ecfdf5;
  color: #047857;
}

.badge.urgent {
  background: #fef2f2;
  color: #b91c1c;
}

.badge.none {
  background: #f8fafc;
  color: #64748b;
}

.badge.needs_follow_up,
.badge.attendance_concern,
.badge.assessment_concern,
.badge.missing_documents,
.badge.employer_follow_up {
  background: #fef3c7;
  color: #92400e;
}

.badge.risk_low {
  background: #dcfce7;
  color: #166534;
}

.badge.risk_medium {
  background: #fef3c7;
  color: #92400e;
}

.badge.risk_high {
  background: #ffedd5;
  color: #9a3412;
}

.badge.risk_critical {
  background: #fee2e2;
  color: #991b1b;
}

.badge-stack {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.btn {
  border: 0;
  border-radius: 999px;
  background: var(--navy);
  color: #fff;
  padding: 10px 16px;
  font-weight: 800;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40px;
  line-height: 1.15;
  text-decoration: none;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.btn:hover {
  background: var(--navy-2);
  transform: translateY(-1px);
  box-shadow: 0 10px 18px rgba(7, 11, 56, 0.12);
}

.btn:active {
  background: #05082d;
  transform: translateY(0);
  box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.18);
}

.btn.ghost {
  background: #fff;
  color: var(--navy);
  border: 1px solid var(--line);
}

.btn.ghost:hover {
  background: var(--blue-soft);
  border-color: #c8d3f2;
  color: var(--navy);
}

.btn.ghost:active {
  background: #dfe7ff;
  border-color: #b8c5ec;
}

.btn.full {
  width: 100%;
}

.login-screen {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  min-height: 100vh;
  background: var(--white);
}

.login-hero {
  background: linear-gradient(160deg, rgba(7,11,56,0.93), rgba(7,11,56,0.74)), #10164f;
  color: #fff;
  padding: 8%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.login-hero h1 {
  font-size: 4rem;
  line-height: 1;
  margin: 0;
}

.login-hero p {
  color: rgba(255,255,255,0.78);
  max-width: 620px;
  font-size: 1.05rem;
}

.login-card-wrap,
.plain-page {
  display: grid;
  place-items: center;
  min-height: 100vh;
  padding: 36px;
  background: var(--bg);
}

.login-card {
  width: min(440px, 100%);
  padding: 32px;
  box-shadow: var(--shadow);
}

.login-card h1,
.login-card h2 {
  color: var(--navy);
  margin: 0 0 8px;
}

.login-reset-link {
  margin-top: 14px;
}

.form-field {
  display: grid;
  gap: 8px;
  margin-bottom: 14px;
}

.form-field span,
.form-field legend {
  color: var(--navy);
  font-weight: 900;
  font-size: 0.9rem;
}

.form-field input,
.form-field select,
.form-field textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 13px 14px;
  font-size: 1rem;
  background: #fff;
}

.form-field textarea {
  min-height: 110px;
  resize: vertical;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 18px;
}

.form-grid.single-col,
.narrow-panel {
  max-width: 720px;
}

.form-grid.single-col {
  grid-template-columns: 1fr;
}

.full-row,
.full-span,
.form-actions {
  grid-column: 1 / -1;
}

.form-actions,
.page-actions,
.actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.actions {
  align-items: flex-start;
}

.page-actions {
  justify-content: flex-start;
}

.page-actions-neutral .btn {
  background: #fff;
  color: var(--navy);
  border: 1px solid var(--line);
}

.page-actions-neutral .btn:hover {
  background: var(--blue-soft);
  border-color: #c8d3f2;
}

.filter-bar {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-soft);
  padding: 16px;
  display: flex;
  gap: 16px;
  align-items: end;
  flex-wrap: wrap;
  transition: background 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.filter-bar:hover {
  box-shadow: 0 10px 24px rgba(7, 11, 56, 0.08);
}

.filter-bar .form-field {
  min-width: min(360px, 100%);
  margin-bottom: 0;
}

.table-wrap {
  overflow-x: auto;
  border-radius: var(--radius);
  -webkit-overflow-scrolling: touch;
}

.data-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  min-width: 900px;
  background: #fff;
}

.preview-table {
  min-width: 640px;
  margin-bottom: 18px;
}

.preview-table td {
  min-width: 130px;
}

.preview-table small {
  color: var(--muted);
  font-weight: 800;
}

.compact-stats {
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  margin-bottom: 18px;
}

.compact-stats .stat strong {
  font-size: 1.45rem;
}

.data-table th,
.data-table td {
  text-align: left;
  padding: 13px 16px;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}

.data-table th {
  color: var(--navy);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.055em;
  background: #f4f7fb;
  white-space: nowrap;
}

.data-table tbody tr {
  transition: background 0.14s ease;
}

.data-table tbody tr:hover {
  background: #f8fbff;
}

.link-button {
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--navy);
  font-weight: 700;
  cursor: pointer;
  font-size: 0.95rem;
}

.link-button:hover,
.small-link:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.link-button:active,
.small-link:active {
  color: var(--navy-2);
}

.role-checks {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 13px 14px;
}

.role-checks legend {
  padding: 0 6px;
}

.role-checks small,
.form-field small {
  color: var(--muted);
}

.check-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 8px 0;
  color: var(--ink);
}

.check-row input {
  width: auto;
}

.assignment-list {
  display: grid;
  gap: 10px;
}

.assignment-row {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
  display: flex;
  gap: 12px;
  align-items: flex-start;
}

.assignment-row span {
  display: grid;
}

.assignment-row small {
  color: var(--muted);
}

.mini-list {
  display: grid;
  gap: 12px;
}

.mini-list > div {
  border-bottom: 1px solid var(--line);
  padding-bottom: 12px;
  display: grid;
  gap: 6px;
}

.mini-list > div:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.mini-list small {
  color: var(--muted);
}

.note-list {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.note-item {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
  background: #fff;
  display: grid;
  gap: 8px;
}

.note-item > div {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.note-item small {
  color: var(--muted);
  font-weight: 700;
}

.note-item p {
  margin: 0;
  white-space: normal;
}

.detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 14px 18px;
}

.detail-grid small {
  display: block;
  color: var(--muted);
  font-weight: 800;
  margin-bottom: 4px;
}

.detail-grid strong {
  color: var(--navy);
}

.confirm-actions {
  margin-top: 18px;
}

.small-link {
  display: inline-block;
  color: var(--navy);
  font-weight: 700;
  line-height: 1.25;
}

.link-button.danger {
  color: #991b1b;
}

.confirm-input {
  max-width: 170px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 10px;
  font-size: 0.86rem;
}

.inline-confirm {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 8px;
}

.compact {
  max-width: 260px;
  font-size: 0.86rem;
}

.check-list {
  padding-left: 1.2rem;
  margin: 0;
  display: grid;
  gap: 10px;
}

.operational-filters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  align-items: end;
}

.operational-filters .form-field {
  min-width: 0;
}

.operational-filters .compact-field {
  max-width: 180px;
}

.filter-actions,
.pagination-bar,
.inline-search {
  display: flex;
  gap: 10px;
  align-items: end;
  flex-wrap: wrap;
}

.filter-actions {
  padding-bottom: 1px;
}

.pagination-bar {
  justify-content: space-between;
  padding: 14px 16px;
  border-top: 1px solid var(--line);
  background: #f8fafc;
}

.pagination-bar span {
  color: var(--muted);
  font-weight: 700;
}

.inline-search {
  align-items: end;
}

.inline-search .form-field {
  min-width: min(360px, 100%);
  margin-bottom: 0;
}

.operational-table td {
  font-size: 0.94rem;
}

.attendance-filter-card {
  margin-bottom: 18px;
}

.attendance-overview {
  padding: 0;
  overflow: hidden;
}

.attendance-overview .panel-head {
  padding: 18px 20px 10px;
}

.attendance-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
  padding: 0 20px 16px;
}

.attendance-summary-grid .stat {
  box-shadow: none;
  padding: 15px;
  background: #f8fafc;
}

.attendance-status-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px 20px 18px;
  border-top: 1px solid var(--line);
  background: #fbfdff;
}

.attendance-status-strip > span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
}

.attendance-status-strip strong {
  color: var(--navy);
  font-size: 0.88rem;
}

.attendance-table td:first-child strong,
.attendance-table td:nth-child(2) strong {
  display: block;
  color: var(--navy);
  font-size: 0.92rem;
}

.attendance-table .meta {
  display: block;
  margin-top: 4px;
  font-size: 0.78rem;
  line-height: 1.35;
}

.attendance-monitoring-table {
  font-size: 0.86rem;
}

.attendance-monitoring-table th,
.attendance-monitoring-table td {
  padding: 8px 9px;
  vertical-align: middle;
}

.attendance-monitoring-table .btn.tiny,
.compact-details .btn.tiny,
.attendance-inline-details .btn.tiny {
  min-height: 0;
  padding: 5px 9px;
  border-radius: 8px;
  font-size: 0.76rem;
  line-height: 1.1;
  white-space: nowrap;
}

.attendance-monitoring-table .small-link,
.attendance-monitoring-table .badge {
  white-space: nowrap;
}

.attendance-expanded-table {
  min-width: 1040px;
  table-layout: fixed;
}

.attendance-expanded-table th {
  white-space: normal;
}

.attendance-session-col-date { width: 12%; }
.attendance-session-col-label { width: 25%; }
.attendance-session-col-cohort { width: 18%; }
.attendance-session-col-count { width: 7%; }
.attendance-session-col-percent { width: 10%; }
.attendance-session-col-action { width: 14%; }

.attendance-learner-col-name { width: 20%; }
.attendance-learner-col-employer { width: 18%; }
.attendance-learner-col-count { width: 7%; }
.attendance-learner-col-percent { width: 11%; }
.attendance-learner-col-status { width: 18%; }
.attendance-learner-col-action { width: 11%; }

.attendance-expanded-table .attendance-expand-cell {
  padding: 0;
  background: #fff;
}

.attendance-inline-details {
  display: block;
}

.attendance-inline-details > summary {
  cursor: pointer;
  min-width: 0;
  padding: 0;
}

.attendance-session-summary-grid,
.attendance-learner-summary-grid {
  display: grid;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
}

.attendance-session-summary-grid {
  grid-template-columns:
    minmax(110px, 12fr)
    minmax(210px, 25fr)
    minmax(160px, 18fr)
    minmax(64px, 7fr)
    minmax(64px, 7fr)
    minmax(64px, 7fr)
    minmax(92px, 10fr)
    minmax(118px, 14fr);
}

.attendance-learner-summary-grid {
  grid-template-columns:
    minmax(180px, 20fr)
    minmax(160px, 18fr)
    minmax(64px, 7fr)
    minmax(64px, 7fr)
    minmax(64px, 7fr)
    minmax(96px, 11fr)
    minmax(160px, 18fr)
    minmax(96px, 11fr);
}

.attendance-session-summary-grid > span,
.attendance-learner-summary-grid > span {
  min-width: 0;
  padding: 8px 9px;
  overflow-wrap: anywhere;
}

.attendance-session-summary-grid > span:nth-child(4),
.attendance-session-summary-grid > span:nth-child(5),
.attendance-session-summary-grid > span:nth-child(6),
.attendance-session-summary-grid > span:nth-child(7),
.attendance-session-summary-grid > span:nth-child(8),
.attendance-learner-summary-grid > span:nth-child(3),
.attendance-learner-summary-grid > span:nth-child(4),
.attendance-learner-summary-grid > span:nth-child(5),
.attendance-learner-summary-grid > span:nth-child(6),
.attendance-learner-summary-grid > span:nth-child(8) {
  text-align: center;
}

.attendance-learner-summary-grid .badge {
  white-space: normal;
}

.attendance-toggle-cell {
  display: flex;
  justify-content: center;
}

.attendance-session-row td {
  padding: 8px 9px;
  vertical-align: middle;
}

.attendance-session-row td:nth-child(4),
.attendance-session-row td:nth-child(5),
.attendance-session-row td:nth-child(6),
.attendance-session-row td:nth-child(7) {
  text-align: center;
}

.attendance-dashboard-actions {
  justify-content: flex-end;
  margin-top: -10px;
}

.attendance-session-date-link {
  appearance: none;
  background: transparent;
  border: 0;
  color: #2563eb;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  padding: 0;
  cursor: pointer;
  font: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.attendance-session-date-link::before {
  content: "+";
  width: 18px;
  height: 18px;
  border: 1px solid #d7deea;
  border-radius: 999px;
  background: #fff;
  color: var(--navy);
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  font-size: 0.8rem;
  font-weight: 900;
  line-height: 1;
  text-decoration: none;
}

.attendance-session-date-link[aria-expanded="true"]::before {
  content: "-";
  background: var(--navy);
  border-color: var(--navy);
  color: #fff;
}

.attendance-detail-toggle-row[hidden] {
  display: none;
}

.attendance-expanded-panel {
  border-top: 1px solid #e5edf7;
  background: #f8fbff;
  padding: 12px 14px 14px;
}

.attendance-session-detail-head {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: space-between;
  margin-bottom: 10px;
}

.attendance-session-detail-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  margin: 0 0 14px;
}

.attendance-session-detail-grid > div {
  background: rgba(255, 255, 255, 0.84);
  border: 1px solid #e5edf7;
  border-radius: 8px;
  min-width: 0;
  padding: 10px 12px;
}

.attendance-session-detail-grid dt {
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 900;
  text-transform: uppercase;
}

.attendance-session-detail-grid dd {
  font-weight: 800;
  margin: 3px 0 0;
  overflow-wrap: anywhere;
}

.attendance-session-line {
  margin: 0 0 10px;
  color: #334155;
  font-size: 0.88rem;
  line-height: 1.35;
}

.attendance-session-summary-wrap {
  margin-bottom: 14px;
}

.attendance-session-summary-table {
  min-width: 860px;
  table-layout: fixed;
}

.attendance-session-summary-table th,
.attendance-session-summary-table td {
  padding: 7px 8px;
  text-align: center;
  white-space: normal;
}

.attendance-session-summary-table th:nth-child(1),
.attendance-session-summary-table td:nth-child(1),
.attendance-session-summary-table th:nth-child(2),
.attendance-session-summary-table td:nth-child(2),
.attendance-session-summary-table th:nth-child(10),
.attendance-session-summary-table td:nth-child(10) {
  text-align: left;
}

.attendance-session-detail-table {
  min-width: 720px;
  table-layout: fixed;
}

.attendance-session-detail-table th,
.attendance-session-detail-table td {
  font-size: 0.82rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
  white-space: normal;
}

.attendance-session-detail-table th:nth-child(1),
.attendance-session-detail-table td:nth-child(1) {
  width: 17%;
}

.attendance-session-detail-table th:nth-child(2),
.attendance-session-detail-table td:nth-child(2) {
  width: 18%;
}

.attendance-session-detail-table th:nth-child(3),
.attendance-session-detail-table td:nth-child(3) {
  width: 12%;
}

.attendance-session-detail-table th:nth-child(4),
.attendance-session-detail-table td:nth-child(4) {
  width: 22%;
}

.attendance-session-detail-table th:nth-child(5),
.attendance-session-detail-table td:nth-child(5) {
  width: 11%;
}

.attendance-session-detail-table th:nth-child(6),
.attendance-session-detail-table td:nth-child(6) {
  width: 20%;
}

.attendance-absent-panel {
  border-top: 1px solid #e5edf7;
  background: #fbfdff;
  padding: 12px 14px;
}

.attendance-absent-list {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

.attendance-absent-card {
  border: 1px solid #e5edf7;
  border-radius: 8px;
  background: #fff;
  padding: 8px 10px;
}

.attendance-absent-card strong,
.attendance-absent-card span {
  display: block;
}

.attendance-absent-card span {
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.3;
}

.attendance-row-metadata summary {
  color: #2563eb;
  cursor: pointer;
  font-size: 0.78rem;
  font-weight: 800;
  list-style: none;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.attendance-row-metadata summary::-webkit-details-marker {
  display: none;
}

.attendance-row-metadata summary::marker {
  content: "";
}

.attendance-row-metadata dl {
  margin: 7px 0 0;
}

.attendance-row-metadata dt {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
}

.attendance-row-metadata dd {
  margin: 1px 0 6px;
  overflow-wrap: anywhere;
}

.attendance-expanded-title {
  display: block;
  margin-bottom: 10px;
  color: var(--navy);
  font-size: 0.88rem;
}

.attendance-name-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.attendance-name-chip-list li {
  border: 1px solid #dbe4f0;
  border-radius: 999px;
  background: #fff;
  color: #334155;
  padding: 6px 10px;
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1.2;
}

.attendance-detail-table-wrap {
  border-radius: 8px;
}

.attendance-expanded-detail-table {
  min-width: 760px;
  font-size: 0.82rem;
  table-layout: fixed;
}

.attendance-expanded-detail-table th,
.attendance-expanded-detail-table td {
  padding: 7px 9px;
  vertical-align: top;
  white-space: normal;
}

.attendance-expanded-detail-table th:nth-child(1),
.attendance-expanded-detail-table td:nth-child(1) {
  width: 15%;
}

.attendance-expanded-detail-table th:nth-child(2),
.attendance-expanded-detail-table td:nth-child(2) {
  width: 16%;
}

.attendance-expanded-detail-table th:nth-child(3),
.attendance-expanded-detail-table td:nth-child(3) {
  width: 44%;
  overflow-wrap: anywhere;
}

.attendance-expanded-detail-table th:nth-child(4),
.attendance-expanded-detail-table td:nth-child(4) {
  width: 25%;
  overflow-wrap: anywhere;
}

.attendance-expanded-detail-table.attendance-session-detail-table {
  min-width: 0;
  width: 100%;
}

.attendance-expanded-detail-table.attendance-session-detail-table th,
.attendance-expanded-detail-table.attendance-session-detail-table td {
  padding: 6px 8px;
}

.attendance-expanded-detail-table.attendance-session-detail-table th:nth-child(1),
.attendance-expanded-detail-table.attendance-session-detail-table td:nth-child(1) {
  width: 25%;
}

.attendance-expanded-detail-table.attendance-session-detail-table th:nth-child(2),
.attendance-expanded-detail-table.attendance-session-detail-table td:nth-child(2) {
  width: 25%;
}

.attendance-expanded-detail-table.attendance-session-detail-table th:nth-child(3),
.attendance-expanded-detail-table.attendance-session-detail-table td:nth-child(3) {
  width: 14%;
}

.attendance-expanded-detail-table.attendance-session-detail-table th:nth-child(4),
.attendance-expanded-detail-table.attendance-session-detail-table td:nth-child(4) {
  width: 36%;
}

.attendance-meta-toggle {
  appearance: none;
  background: transparent;
  border: 0;
  color: #2563eb;
  cursor: pointer;
  display: inline;
  font: inherit;
  font-size: 0.76rem;
  font-weight: 800;
  margin: 4px 0 0;
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.attendance-capture-meta-row td {
  background: #fbfdff;
  padding: 8px 10px !important;
}

.attendance-capture-meta-list {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  margin: 0;
}

.attendance-capture-meta-list > div {
  border: 1px solid #e5edf7;
  border-radius: 8px;
  background: #fff;
  min-width: 0;
  padding: 7px 9px;
}

.attendance-capture-meta-list dt {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
}

.attendance-capture-meta-list dd {
  margin: 2px 0 0;
  overflow-wrap: anywhere;
}

.assessment-filter-card {
  margin-bottom: 18px;
}

.assessment-progress-table {
  min-width: 1280px;
  font-size: 0.84rem;
  table-layout: fixed;
}

.assessment-col-learner { width: 18%; }
.assessment-col-id { width: 10%; }
.assessment-col-credits { width: 9%; }
.assessment-col-total { width: 13%; }
.assessment-col-progress { width: 15%; }
.assessment-col-actions { width: 15%; }
.assessment-col-status { width: 12%; }
.assessment-col-details { width: 8%; }

.assessment-progress-table th,
.assessment-progress-table td {
  padding: 7px 8px;
  vertical-align: middle;
}

.assessment-progress-table th {
  font-size: 0.66rem;
  line-height: 1.15;
  white-space: normal;
  word-break: normal;
}

.assessment-progress-table th:nth-child(1),
.assessment-progress-table th:nth-child(2),
.assessment-progress-table th:nth-child(5),
.assessment-progress-table th:nth-child(6) {
  text-align: left;
}

.assessment-progress-table th:nth-child(3),
.assessment-progress-table th:nth-child(4),
.assessment-progress-table th:nth-child(7),
.assessment-progress-table th:nth-child(8) {
  text-align: center;
}

.assessment-progress-table .assessment-progress-entry-cell {
  padding: 0;
}

.assessment-row-details {
  display: block;
}

.assessment-row-details > summary {
  cursor: pointer;
  list-style: none;
}

.assessment-row-details > summary::-webkit-details-marker {
  display: none;
}

.assessment-row-details > summary::marker {
  content: "";
}

.assessment-summary-grid {
  display: grid;
  grid-template-columns:
    minmax(190px, 18fr)
    minmax(112px, 10fr)
    minmax(108px, 9fr)
    minmax(140px, 13fr)
    minmax(170px, 15fr)
    minmax(170px, 15fr)
    minmax(138px, 12fr)
    minmax(92px, 8fr);
  align-items: center;
  min-width: 1280px;
}

.assessment-summary-grid > span {
  min-width: 0;
  padding: 7px 8px;
  overflow-wrap: anywhere;
}

.assessment-summary-grid > span:nth-child(3),
.assessment-summary-grid > span:nth-child(4),
.assessment-summary-grid > span:nth-child(7),
.assessment-summary-grid > span:nth-child(8) {
  text-align: center;
}

.assessment-summary-grid > span:nth-child(3),
.assessment-summary-grid > span:nth-child(4),
.assessment-summary-grid > span:nth-child(7),
.assessment-summary-grid > span:nth-child(8),
.assessment-detail-trigger {
  justify-content: center;
}

.assessment-detail-trigger {
  display: flex;
  align-items: center;
}

.assessment-detail-trigger .btn.tiny {
  min-height: 24px;
  min-width: 78px;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 0.72rem;
  line-height: 1;
  box-shadow: none;
  white-space: nowrap;
}

.action-count-label {
  color: var(--navy);
  display: inline-flex;
  font-size: 0.82rem;
  font-weight: 900;
  line-height: 1.2;
}

.action-count-label.no-actions {
  color: var(--muted);
}

.action-count-label.has-actions {
  color: #92400e;
}

.assessment-overall-status {
  min-height: 22px;
  padding: 4px 8px;
  font-size: 0.68rem;
  max-width: 100%;
  white-space: nowrap;
}

.assessment-detail-trigger .btn.tiny::before {
  content: "+";
  font-weight: 900;
}

.assessment-row-details[open] .assessment-detail-trigger .btn.tiny::before {
  content: "-";
}

.assessment-row-details[open] .assessment-summary-grid {
  background: #fbfdff;
  border-bottom: 1px solid var(--line);
}

.assessment-details-panel {
  padding: 10px 12px 12px;
  background: #fbfdff;
  box-shadow: inset 0 1px 0 rgba(226, 232, 240, 0.62);
}

.assessment-message-helper {
  align-items: flex-start;
  background: #fff;
  border: 1px solid #e4ebf5;
  border-radius: 7px;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  margin-bottom: 10px;
  padding: 9px 10px;
}

.assessment-message-helper strong {
  color: var(--navy);
  display: block;
  font-size: 0.84rem;
  margin-bottom: 2px;
}

.assessment-message-helper p {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 700;
  margin: 0 0 6px;
}

.assessment-message-helper ul {
  color: var(--ink);
  display: grid;
  font-size: 0.78rem;
  gap: 3px;
  list-style: disc;
  margin: 0;
  padding-left: 18px;
}

.assessment-message-actions {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: flex-end;
}

.assessment-message-copy,
.assessment-message-link {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 6px;
  cursor: pointer;
  display: inline-flex;
  font-size: 0.72rem;
  font-weight: 900;
  justify-content: center;
  line-height: 1;
  min-height: 26px;
  padding: 5px 9px;
  white-space: nowrap;
}

.assessment-message-copy {
  background: var(--navy);
  color: #fff;
}

.assessment-message-link {
  background: #ecfdf3;
  color: #166534;
}

.assessment-message-link.disabled {
  background: #f8fafc;
  color: var(--muted);
  cursor: not-allowed;
}

.progress-unavailable {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 4px 9px;
  background: #f8fafc;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  white-space: nowrap;
}

.action-list {
  display: grid;
  gap: 4px;
  max-width: 220px;
  color: var(--navy);
  font-size: 0.82rem;
  font-weight: 800;
}

.assessment-breakdown {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
  gap: 10px 12px;
  font-size: 0.82rem;
}

.assessment-breakdown h3 {
  margin: 0 0 5px;
  color: var(--navy);
  font-size: 0.84rem;
  line-height: 1.2;
}

.assessment-breakdown section {
  min-width: 0;
  border: 1px solid #e4ebf5;
  border-radius: 7px;
  background: #fff;
  padding: 8px 9px;
}

.assessment-detail-grid {
  display: grid;
  gap: 0;
  align-items: center;
  overflow-x: auto;
  border: 1px solid #e8eef6;
  border-radius: 6px;
}

.assessment-detail-grid.has-codes {
  grid-template-columns: minmax(72px, 0.52fr) minmax(110px, 0.78fr) minmax(128px, 0.9fr);
}

.assessment-detail-grid.item-only {
  grid-template-columns: minmax(0, 1fr) minmax(128px, 0.34fr);
}

.assessment-detail-grid > span {
  min-height: 30px;
  padding: 5px 7px;
  border-top: 1px solid #edf2f8;
  line-height: 1.25;
  display: flex;
  align-items: center;
  min-width: 0;
}

.assessment-detail-grid.has-codes > span:nth-child(-n + 3),
.assessment-detail-grid.item-only > span:nth-child(-n + 2) {
  border-top: 0;
}

.assessment-detail-heading {
  background: #f5f7fb;
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.assessment-detail-code {
  color: var(--navy);
  font-weight: 900;
  white-space: nowrap;
}

.assessment-detail-title {
  color: var(--ink);
  overflow-wrap: anywhere;
}

.assessment-detail-type {
  color: var(--muted);
  font-weight: 800;
  white-space: nowrap;
}

.assessment-detail-grid .badge.compact-status {
  min-height: 20px;
  padding: 3px 7px;
  font-size: 0.66rem;
  line-height: 1;
  white-space: nowrap;
  max-width: none;
}

.credit-progress {
  width: 120px;
  height: 9px;
  border-radius: 999px;
  background: #e5e7eb;
  overflow: hidden;
}

.credit-progress-cell {
  display: inline-flex;
  flex-direction: column;
  gap: 3px;
  min-width: 140px;
}

.credit-progress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--green);
}

.curriculum-map-group + .curriculum-map-group {
  border-top: 1px solid var(--line);
}

.curriculum-map-group h3 {
  margin: 0 0 12px;
  color: var(--navy);
  font-size: 1rem;
}

.curriculum-map-table {
  min-width: 820px;
  font-size: 0.9rem;
}

.curriculum-map-table th,
.curriculum-map-table td {
  padding: 9px 11px;
}

.attendance-records-panel .table-wrap {
  border-top: 1px solid var(--line);
}

.attendance-row-details summary {
  color: var(--navy);
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 800;
}

.attendance-row-details dl {
  display: grid;
  gap: 4px 10px;
  grid-template-columns: minmax(90px, auto) 1fr;
  margin: 8px 0 0;
  min-width: 220px;
}

.attendance-row-details dt {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
}

.attendance-row-details dd {
  margin: 0;
  font-size: 0.8rem;
}

.attendance-selected-summary {
  margin-top: 18px;
}

.dashboard-page {
  display: grid;
  gap: 24px;
}

.dashboard-notice,
.dashboard-notices-card {
  background: linear-gradient(135deg, #fffaf0 0%, #eef2ff 100%);
  border-color: #dbe4ff;
  color: #1f2a5c;
}

.dashboard-main-grid {
  grid-template-columns: minmax(280px, 0.95fr) minmax(280px, 1.05fr);
  align-items: start;
}

.dashboard-notices-card {
  min-height: 245px;
}

.dashboard-notices-card .panel-body {
  display: grid;
  gap: 8px;
}

.dashboard-notices-card .panel-body strong {
  color: var(--navy);
  font-size: 1.18rem;
}

.dashboard-notices-list {
  align-content: start;
}

.dashboard-notice-item,
.notice-item {
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(137, 153, 196, 0.28);
  border-radius: 8px;
  display: grid;
  gap: 7px;
  padding: 12px;
}

.dashboard-notice-item > div,
.notice-item-head {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dashboard-notice-item p,
.notice-item p {
  margin: 0;
}

.dashboard-notice-item.automatic-notice,
.notice-item.automatic-notice {
  background: rgba(239, 246, 255, 0.78);
}

.notices-list {
  display: grid;
  gap: 12px;
}

.notice-item h3 {
  margin: 0;
}

.notice-meta {
  color: var(--muted);
  font-size: 0.82rem;
}

.notice-form-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.notice-form-wide {
  grid-column: 1 / -1;
}

.notice-role-checks {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
}

.notice-role-checks legend {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 800;
  margin-bottom: 6px;
  width: 100%;
}

.notice-row-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.attendance-capture-filter {
  grid-template-columns: minmax(220px, 1.1fr) minmax(260px, 1.6fr) minmax(160px, 0.7fr) auto;
}

.attendance-capture-head {
  align-items: center;
  display: flex;
  gap: 14px;
  justify-content: space-between;
}

.attendance-capture-table select,
.attendance-capture-table input {
  min-width: 150px;
}

.attendance-capture-table td {
  vertical-align: middle;
}

.attendance-capture-actions {
  border-top: 1px solid var(--line);
  padding: 14px 18px;
}

.assessment-capture-filter {
  grid-template-columns: minmax(220px, 1.1fr) minmax(260px, 1.6fr) minmax(160px, 0.7fr) auto;
}

.assessment-capture-head {
  align-items: center;
  display: flex;
  gap: 14px;
  justify-content: space-between;
}

.assessment-capture-item-panel .profile-panel-details > summary {
  align-items: flex-start;
  padding: 12px 16px;
}

.assessment-capture-item-panel .profile-panel-details > summary h2 {
  font-size: 1rem;
  line-height: 1.3;
}

.assessment-capture-item-panel .profile-panel-details > summary p {
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.35;
  margin: 3px 0 0;
}

.assessment-capture-table th,
.assessment-capture-table td {
  padding: 8px 10px;
  vertical-align: middle;
}

.assessment-capture-table select,
.assessment-capture-table input {
  min-width: 130px;
  padding: 7px 8px;
}

.assessment-capture-table input {
  min-width: 180px;
}

.assessment-capture-table small {
  display: inline-block;
  line-height: 1.25;
}

.rewrite-filter-card {
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  padding: 12px;
}

.rewrite-filter-card .form-field > span {
  font-size: 0.76rem;
}

.rewrite-filter-card input,
.rewrite-filter-card select {
  min-height: 36px;
  padding: 7px 9px;
}

.rewrite-toolbar {
  display: grid;
  gap: 12px;
  margin-bottom: 16px;
}

.rewrite-sync-form {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 0 2px;
}

.rewrite-bulk-panel {
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  margin: 14px 16px 0;
  padding: 10px;
}

.rewrite-bulk-head,
.rewrite-bulk-selection-summary,
.rewrite-date-heading-meta {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
}

.rewrite-bulk-head {
  justify-content: space-between;
}

.rewrite-bulk-head > div:first-child {
  display: grid;
  gap: 2px;
}

.rewrite-bulk-head h3 {
  color: var(--navy);
  font-size: 0.95rem;
  margin: 0;
}

.rewrite-bulk-panel .required-marker {
  color: #b91c1c;
}

.rewrite-bulk-selection-summary {
  justify-content: flex-end;
}

#rewrite-selected-count {
  color: var(--navy);
  font-size: 0.8rem;
}

.rewrite-bulk-fields {
  align-items: end;
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(4, minmax(115px, 1fr));
}

.rewrite-bulk-fields .form-field {
  margin-bottom: 0;
  min-width: 0;
}

.rewrite-bulk-fields .form-field > span {
  font-size: 0.75rem;
}

.rewrite-bulk-fields input,
.rewrite-bulk-fields select,
.rewrite-bulk-fields textarea {
  min-width: 0;
  padding: 7px 8px;
}

.rewrite-bulk-fields textarea {
  min-height: 62px;
}

.rewrite-bulk-notes,
.rewrite-bulk-submit {
  grid-column: span 2;
}

.rewrite-bulk-submit {
  align-content: end;
  display: grid;
  gap: 5px;
  justify-items: start;
}

.rewrite-bulk-warning,
.rewrite-bulk-error {
  border: 1px solid;
  border-radius: 8px;
  font-size: 0.8rem;
  margin: 0;
  padding: 8px 10px;
}

.rewrite-bulk-warning {
  background: #fffbeb;
  border-color: #fde68a;
  color: #92400e;
}

.rewrite-bulk-error {
  background: #fef2f2;
  border-color: #fecaca;
  color: #991b1b;
}

.rewrite-group-select,
.rewrite-record-select {
  align-items: center;
  cursor: pointer;
  display: inline-flex;
  gap: 7px;
}

.rewrite-group-select {
  color: var(--navy);
  font-size: 0.76rem;
  font-weight: 700;
}

.rewrite-group-select input,
.rewrite-record-select input {
  accent-color: var(--navy);
  flex: 0 0 auto;
  height: 16px;
  margin: 0;
  width: 16px;
}

.rewrite-record-select {
  align-items: flex-start;
}

.rewrite-schedule-table th,
.rewrite-schedule-table td {
  vertical-align: top;
}

.rewrite-groups,
.rewrite-card-list {
  display: grid;
  gap: 8px;
}

.rewrite-groups {
  gap: 16px;
  padding: 14px 16px 18px;
}

.rewrite-date-group {
  display: grid;
  gap: 8px;
}

.rewrite-date-heading {
  align-items: center;
  background: #f7f9fd;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  justify-content: space-between;
  padding: 8px 10px;
}

.rewrite-date-heading h3 {
  font-size: 1rem;
  margin: 0;
}

.rewrite-date-count {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 700;
}

.rewrite-date-heading-meta {
  justify-content: flex-end;
}

.rewrite-card {
  border: 1px solid var(--border);
  border-radius: 8px;
  display: grid;
  gap: 8px;
  padding: 10px;
}

.rewrite-card.is-bulk-selected {
  background: #f8fbff;
  border-color: #c8d3f2;
  box-shadow: inset 3px 0 0 #5267b3;
}

.rewrite-card-main {
  align-items: start;
  display: grid;
  gap: 8px 12px;
  grid-template-columns: minmax(140px, 1.1fr) minmax(165px, 1.15fr) minmax(160px, 1fr) minmax(115px, 0.7fr) minmax(145px, 0.8fr);
}

.rewrite-card-main small,
.rewrite-card-main span,
.rewrite-card-main strong {
  display: block;
  min-width: 0;
}

.rewrite-card-main > div {
  min-width: 0;
}

.rewrite-card-main span:not(.badge),
.rewrite-card-main strong {
  line-height: 1.3;
}

.rewrite-field-label {
  color: #64748b;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  margin-bottom: 3px;
  text-transform: uppercase;
}

.rewrite-card-meta {
  display: grid;
  gap: 4px;
}

.rewrite-card-actions {
  align-items: start;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-top: 2px;
}

.rewrite-action-panel {
  min-width: 0;
}

.rewrite-action-panel summary {
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--navy);
  cursor: pointer;
  display: inline-flex;
  font-size: 0.76rem;
  font-weight: 700;
  min-height: 32px;
  padding: 6px 10px;
  white-space: nowrap;
}

.rewrite-action-panel summary:hover,
.rewrite-action-panel[open] > summary {
  background: var(--blue-soft);
  border-color: #c8d3f2;
}

.rewrite-action-panel[open] {
  flex: 1 0 100%;
  order: 2;
}

.rewrite-action-panel[open] > summary {
  margin-bottom: 8px;
}

.rewrite-schedule-form {
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(120px, 1fr));
  max-width: 760px;
  padding: 10px;
}

.rewrite-schedule-form .form-field {
  margin-bottom: 0;
}

.rewrite-schedule-form .form-field > span {
  font-size: 0.75rem;
}

.rewrite-schedule-form .rewrite-notes-field {
  grid-column: span 2;
}

.rewrite-form-actions {
  align-items: end;
  display: flex;
}

.rewrite-schedule-form input,
.rewrite-schedule-form select,
.rewrite-schedule-form textarea {
  min-width: 0;
  padding: 7px 8px;
}

.rewrite-row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.rewrite-message-preview {
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: block;
  margin: 8px 0 0;
  max-width: 620px;
  padding: 10px;
  white-space: normal;
}

.rewrite-message-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 0;
}

.rewrite-message-actions .calendar-reminder-copy,
.rewrite-message-actions .calendar-reminder-link {
  align-items: center;
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  color: #334155;
  cursor: pointer;
  display: inline-flex;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.1;
  min-height: 24px;
  padding: 4px 7px;
  text-decoration: none;
}

.rewrite-message-actions .calendar-reminder-copy:hover,
.rewrite-message-actions .calendar-reminder-link:hover {
  background: #eef2ff;
  border-color: #94a3b8;
  color: #1e293b;
}

.rewrite-message-actions .calendar-reminder-link.disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.rewrite-filter-card .btn.tiny,
.rewrite-sync-form .btn.tiny,
.rewrite-bulk-panel .btn.tiny,
.rewrite-card-actions .btn.tiny,
.rewrite-form-actions .btn.tiny {
  font-size: 0.76rem;
  min-height: 32px;
  padding: 6px 10px;
}

.rewrite-empty-state {
  text-align: center;
}

@media (max-width: 980px) {
  .rewrite-bulk-fields,
  .rewrite-card-main {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .rewrite-bulk-fields,
  .rewrite-card-main,
  .rewrite-schedule-form {
    grid-template-columns: 1fr;
  }

  .rewrite-bulk-panel {
    margin: 10px 10px 0;
  }

  .rewrite-bulk-head,
  .rewrite-bulk-selection-summary,
  .rewrite-date-heading,
  .rewrite-date-heading-meta {
    align-items: flex-start;
    flex-direction: column;
  }

  .rewrite-bulk-notes,
  .rewrite-bulk-submit {
    grid-column: auto;
  }

  .rewrite-action-panel {
    width: auto;
  }

  .rewrite-action-panel[open] {
    width: 100%;
  }

  .rewrite-schedule-form .rewrite-notes-field {
    grid-column: auto;
  }
}

.dashboard-stats {
  grid-template-columns: repeat(auto-fit, minmax(185px, 1fr));
  align-items: stretch;
}

.dashboard-card {
  min-height: 138px;
  align-content: start;
  text-decoration: none;
  box-shadow: 0 12px 27px rgba(7, 11, 56, 0.1);
}

.dashboard-card small,
.dashboard-card strong,
.dashboard-card span {
  min-width: 0;
}

.dashboard-card small {
  margin-bottom: 10px;
}

.dashboard-card strong {
  word-break: break-word;
}

.dashboard-card span {
  line-height: 1.35;
}

.reports-filter-card {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.reports-preview-header .panel-body + .panel-body {
  border-top: 1px solid var(--line);
}

.report-context-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 14px 18px;
}

.report-context-grid small,
.report-band small {
  display: block;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  margin-bottom: 4px;
}

.report-context-grid strong,
.report-band strong {
  color: var(--navy);
}

.report-export-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.report-export-actions .btn[disabled] {
  cursor: not-allowed;
  opacity: 0.68;
  transform: none;
  box-shadow: none;
}

.report-assessment-summary-table th:nth-child(1),
.report-assessment-summary-table td:nth-child(1) {
  width: 18%;
}

.report-assessment-summary-table th:nth-child(2),
.report-assessment-summary-table td:nth-child(2) {
  width: 32%;
}

.report-assessment-summary-table th:nth-child(3),
.report-assessment-summary-table td:nth-child(3) {
  width: 34%;
}

.report-assessment-summary-table th:nth-child(4),
.report-assessment-summary-table td:nth-child(4) {
  width: 16%;
}

.report-assessment-result-summary {
  font-weight: 700;
  line-height: 1.45;
}

.report-assessment-action-details {
  min-width: 250px;
}

.report-assessment-action-details > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  justify-content: space-between;
  list-style: none;
}

.report-assessment-action-details > summary::-webkit-details-marker {
  display: none;
}

.report-assessment-action-details > summary::marker {
  content: "";
}

.report-assessment-action-count {
  color: var(--navy);
  font-weight: 800;
}

.report-assessment-action-toggle {
  align-items: center;
  background: var(--navy);
  border: 1px solid var(--navy);
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 0.82rem;
  font-weight: 800;
  justify-content: center;
  line-height: 1;
  min-height: 28px;
  padding: 6px 11px;
  white-space: nowrap;
}

.report-assessment-action-details > summary:hover .report-assessment-action-toggle,
.report-assessment-action-details > summary:focus-visible .report-assessment-action-toggle {
  background: #17255d;
  border-color: #17255d;
}

.report-action-hide-label {
  display: none;
}

.report-assessment-action-details[open] .report-action-show-label {
  display: none;
}

.report-assessment-action-details[open] .report-action-hide-label {
  display: inline;
}

.report-assessment-action-list {
  background: #f8faff;
  border: 1px solid var(--line);
  border-radius: 10px;
  display: grid;
  gap: 0;
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
}

.report-assessment-action-list li {
  align-items: start;
  display: grid;
  gap: 8px 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 10px 12px;
}

.report-assessment-action-list li + li {
  border-top: 1px solid var(--line);
}

.report-assessment-action-item-label {
  line-height: 1.4;
  min-width: 0;
}

.feedback-filter-card {
  align-items: end;
  gap: 10px;
  padding: 10px 12px;
}

.feedback-filter-card .form-field {
  gap: 5px;
  min-width: min(230px, 100%);
}

.feedback-filter-card .compact-field {
  min-width: 96px;
}

.feedback-filter-card .form-field span {
  font-size: 0.82rem;
}

.feedback-filter-card .form-field input,
.feedback-filter-card .form-field select {
  min-height: 38px;
  padding: 9px 10px;
  font-size: 0.92rem;
}

.feedback-filter-card .filter-actions {
  gap: 8px;
}

.feedback-filter-card .btn {
  min-height: 38px;
  padding: 8px 12px;
}

.feedback-learner-table {
  min-width: 1120px;
}

.feedback-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px 16px;
  padding-top: 14px;
  padding-bottom: 14px;
}

.feedback-form-grid .form-field {
  margin-bottom: 0;
}

.feedback-form-grid textarea {
  min-height: 86px;
}

.feedback-list-helper {
  margin-top: 6px;
  font-size: 0.84rem;
}

.feedback-action-btn {
  min-height: 26px;
  border: 1px solid #dbe4f0;
  border-radius: 6px;
  padding: 4px 8px;
  background: #fff;
  color: var(--navy);
  font-size: 0.76rem;
  white-space: nowrap;
  box-shadow: none;
}

.feedback-action-btn:hover {
  background: var(--blue-soft);
  border-color: #c8d3f2;
  transform: none;
  box-shadow: none;
}

.feedback-modal-shell {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: 24px;
}

.feedback-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7, 11, 56, 0.48);
}

.feedback-modal-panel {
  position: relative;
  width: min(920px, 100%);
  max-height: min(88vh, 860px);
  overflow: auto;
  box-shadow: 0 24px 70px rgba(7, 11, 56, 0.26);
}

.feedback-modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  position: relative;
  padding-right: 52px;
  padding-top: 14px;
  padding-bottom: 14px;
}

.feedback-modal-head h2 {
  font-size: 1.06rem;
}

.feedback-modal-head p {
  margin-top: 2px;
}

.feedback-modal-close {
  align-items: center;
  background: #fff;
  border: 1px solid #dbe4f0;
  border-radius: 50%;
  color: var(--muted);
  cursor: pointer;
  display: inline-flex;
  font-size: 1rem;
  font-weight: 900;
  height: 28px;
  justify-content: center;
  line-height: 1;
  padding: 0;
  position: absolute;
  right: 16px;
  top: 14px;
  width: 28px;
}

.feedback-modal-close:hover,
.feedback-modal-close:focus-visible {
  background: var(--blue-soft);
  border-color: #c8d3f2;
  color: var(--navy);
  outline: none;
}

.feedback-radio-group {
  border: 0;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 5px;
}

.feedback-radio-group legend {
  color: var(--navy);
  font-size: 0.84rem;
  font-weight: 900;
  margin-bottom: 2px;
}

.feedback-radio-group > div {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: flex-start;
}

.segmented-radio {
  display: inline-flex;
  cursor: pointer;
  max-width: 100%;
}

.segmented-radio input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.segmented-radio span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 28px;
  border: 1px solid #dbe4f0;
  border-radius: 7px;
  padding: 4px 8px;
  background: #fff;
  color: var(--navy);
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1.18;
  min-width: 54px;
  max-width: 138px;
  text-align: center;
  overflow-wrap: anywhere;
  white-space: normal;
  transition: background 0.14s ease, border-color 0.14s ease, box-shadow 0.14s ease;
}

.learner-feedback-grid {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.learner-feedback-narrative {
  margin-top: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcff;
  padding: 12px 14px;
}

.learner-feedback-narrative span {
  display: block;
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.learner-feedback-narrative p {
  margin: 0;
}

.badge.draft {
  background: #f1f5f9;
  color: #475569;
}

.badge.final {
  background: #dcfce7;
  color: #166534;
}

.segmented-radio input:checked + span {
  border-color: #b7c7ef;
  background: var(--blue-soft);
  box-shadow: inset 0 0 0 1px rgba(16, 22, 79, 0.08);
}

.segmented-radio input:focus-visible + span {
  outline: 2px solid rgba(16, 22, 79, 0.22);
  outline-offset: 2px;
}

.feedback-form-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.feedback-form-actions .btn {
  min-height: 34px;
}

.employer-document-form {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.employer-document-form select[multiple] {
  min-height: 112px;
}

.employer-document-table td {
  vertical-align: top;
}

.employer-document-table .actions form {
  display: grid;
  gap: 6px;
  margin-top: 8px;
  max-width: 180px;
}

@media (max-width: 860px) {
  .employer-document-form {
    grid-template-columns: 1fr;
  }
}

.field-help {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.35;
}

.feedback-context {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 12px;
  border: 1px solid #dbe6ff;
  border-radius: 8px;
  background: rgba(219, 234, 254, 0.42);
}

.feedback-context span {
  display: grid;
  gap: 3px;
  color: var(--muted);
  font-size: 0.9rem;
}

.feedback-context strong {
  color: var(--navy);
  font-size: 0.76rem;
  text-transform: uppercase;
}

.checkbox-field {
  align-items: center;
  grid-template-columns: auto 1fr;
}

.checkbox-field input {
  width: auto;
}

.report-summary-cards {
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

.report-band {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
  gap: 10px;
  background: #fbfdff;
  border-bottom: 1px solid var(--line);
}

.report-band > span {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 11px 12px;
}

.reports-table {
  min-width: 920px;
  font-size: 0.88rem;
}

.reports-table th,
.reports-table td {
  padding: 9px 10px;
  vertical-align: top;
  white-space: normal;
}

.reports-table td {
  overflow-wrap: anywhere;
}

.learner-report-table {
  min-width: 1280px;
}

.cohort-progress-preview {
  display: grid;
  gap: 18px;
}

.cohort-progress-table {
  min-width: 1180px;
}

.qualification-filter-tabs {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin: 0 0 14px;
}

.filter-tab {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  border: 1px solid #dbe4f0;
  border-radius: 999px;
  padding: 7px 12px;
  background: #fff;
  color: var(--navy);
  font-size: 0.9rem;
  font-weight: 800;
  text-decoration: none;
}

.filter-tab:hover {
  border-color: #b8c6d8;
  background: #f8fafc;
}

.filter-tab.active {
  border-color: var(--navy);
  background: var(--navy);
  color: #fff;
}

.cohorts-table {
  min-width: 880px;
  font-size: 0.92rem;
}

.cohorts-table th,
.cohorts-table td {
  padding: 10px 12px;
}

.cohort-row-actions {
  align-items: center;
  gap: 6px;
  max-width: 330px;
}

.cohort-row-actions form {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin: 0;
}

.cohort-row-actions .confirm-input {
  max-width: 132px;
  padding: 6px 8px;
  font-size: 0.85rem;
}

.cohort-detail-summary {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.cohort-profile-actions {
  gap: 8px;
}

.cohort-profile-actions .btn,
.action-chip {
  min-height: 32px;
  padding: 6px 10px;
  font-size: 0.82rem;
  line-height: 1.1;
}

.action-chip {
  border: 1px solid #dbe4f0;
  border-radius: 999px;
  background: #fff;
  color: var(--navy);
  font-weight: 800;
}

.action-chip:hover {
  background: var(--blue-soft);
  border-color: #c8d3f2;
}

.action-chip.danger,
.link-button.danger.action-chip {
  color: #991b1b;
}

.qualification-detail-summary {
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

.learners-table {
  min-width: 980px;
  font-size: 0.91rem;
}

.learners-table th,
.learners-table td {
  padding: 10px 12px;
}

.learner-profile-summary {
  grid-template-columns: repeat(auto-fit, minmax(195px, 1fr));
}

.learner-summary-table {
  min-width: 760px;
}

.learner-summary-table th,
.learner-summary-table td {
  padding: 10px 14px;
}

.learner-summary-table th {
  width: 20%;
}

.learner-profile-details > summary {
  flex-wrap: wrap;
}

.learner-profile-details > summary p {
  flex-basis: 100%;
  margin-left: 17px;
}

.learner-profile-actions {
  gap: 8px;
}

.learner-profile-actions .btn {
  min-height: 34px;
  padding: 8px 12px;
  font-size: 0.88rem;
}

.learner-status-panel .panel-head {
  padding-bottom: 12px;
}

.learner-status-form,
.learner-flag-form {
  display: flex;
  align-items: end;
  gap: 12px;
  flex-wrap: wrap;
}

.learner-status-form .form-field,
.learner-flag-form .form-field {
  min-width: min(320px, 100%);
  margin-bottom: 0;
}

.learner-status-form {
  padding-top: 14px;
  padding-bottom: 14px;
}

.compact-flag-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.compact-flag-row small {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-weight: 800;
}

.users-page-actions {
  justify-content: flex-start;
  margin-bottom: 16px;
}

.users-table {
  min-width: 960px;
  font-size: 0.92rem;
}

.users-table th,
.users-table td {
  padding: 10px 12px;
}

.user-row-actions {
  gap: 8px 10px;
  max-width: 380px;
}

.user-row-actions form {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin: 0;
}

.user-row-actions .confirm-input {
  max-width: 130px;
  padding: 7px 9px;
  font-size: 0.85rem;
}

.user-profile-hero .panel-body {
  padding-top: 18px;
}

.profile-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 12px;
}

.summary-cell {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fbfcff;
  padding: 12px 14px;
}

.summary-cell > span {
  display: block;
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.summary-cell strong {
  display: block;
  min-width: 0;
  color: var(--navy);
  font-size: 0.96rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.badge-row,
.cohort-chip-list {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
}

.profile-cohort-strip {
  margin-top: 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 12px 14px;
  background: #fff;
}

.profile-cohort-strip > span {
  display: block;
  margin-bottom: 8px;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.cohort-chip {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  border: 1px solid #dbe4f0;
  border-radius: 999px;
  padding: 5px 10px;
  background: #f8fafc;
  color: var(--navy);
  font-size: 0.86rem;
  font-weight: 800;
  text-decoration: none;
}

.cohort-chip:hover {
  border-color: #b8c6d8;
  background: #eef4ff;
}

.profile-details {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 14px;
  background: #fbfcff;
}

.profile-details + .profile-details {
  margin-top: 14px;
}

.profile-details summary {
  margin-bottom: 12px;
}

.profile-details:not([open]) summary {
  margin-bottom: 0;
}

.profile-details summary,
.profile-panel-details > summary,
.compact-details summary,
.attendance-inline-details > summary,
.attendance-row-details summary {
  display: flex;
  align-items: center;
  gap: 10px;
  list-style: none;
}

.profile-details summary::-webkit-details-marker,
.profile-panel-details > summary::-webkit-details-marker,
.compact-details summary::-webkit-details-marker,
.attendance-inline-details > summary::-webkit-details-marker,
.attendance-row-details summary::-webkit-details-marker {
  display: none;
}

.profile-details summary::marker,
.profile-panel-details > summary::marker,
.compact-details summary::marker,
.attendance-inline-details > summary::marker,
.attendance-row-details summary::marker {
  content: "";
}

.profile-details summary::before,
.profile-panel-details > summary::before,
.compact-details summary::before,
.attendance-inline-details > summary::before,
.attendance-row-details summary::before {
  content: "+";
  width: 22px;
  height: 22px;
  border: 1px solid #d7deea;
  border-radius: 999px;
  background: #fff;
  color: var(--navy);
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  font-size: 0.92rem;
  font-weight: 900;
  line-height: 1;
  box-shadow: 0 4px 9px rgba(15, 23, 42, 0.13);
  transition: background 0.14s ease, border-color 0.14s ease, box-shadow 0.14s ease;
}

.profile-details[open] summary::before,
.profile-panel-details[open] > summary::before,
.compact-details[open] summary::before,
.attendance-inline-details[open] > summary::before,
.attendance-row-details[open] summary::before {
  content: "-";
  background: var(--navy);
  border-color: var(--navy);
  color: #fff;
}

.profile-panel-details > summary {
  cursor: pointer;
}

.profile-panel-details > summary h2 {
  margin: 0;
}

.compact-details summary {
  color: var(--navy);
  cursor: pointer;
  font-weight: 800;
}

.compact-details dl {
  margin: 10px 0 0;
  display: grid;
  gap: 6px;
  min-width: 220px;
}

.compact-details dt {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 900;
  text-transform: uppercase;
}

.compact-details dd {
  margin: 0;
}

.badge.sick,
.badge.leave {
  background: #e0f2fe;
  color: #075985;
}

.calendar-controls {
  padding: 18px;
}

.calendar-control-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(130px, 1fr));
  gap: 12px;
  align-items: end;
}

.calendar-control-grid .form-field {
  margin-bottom: 0;
}

.calendar-control-grid .searchbox {
  grid-column: span 2;
}

.calendar-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 14px;
}

.calendar-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin-top: 16px;
  color: #374151;
  font-size: 0.9rem;
}

.calendar-legend span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.legend-dot {
  width: 18px;
  height: 14px;
  border-radius: 4px;
  border: 1px solid #cbd5e1;
  background: #fff;
}

.legend-dot.public-holiday {
  background: #fde7c2;
  border-color: #fb923c;
}

.legend-dot.submission-assessment {
  background: #dcfce7;
  border-color: #22c55e;
}

.legend-dot.exam-rewrite {
  background: #eadcf8;
  border-color: #a855f7;
}

.legend-dot.other-internal {
  background: #eeeeee;
  border-color: #9ca3af;
}

.calendar-shell {
  padding: 18px;
}

.calendar-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  margin-bottom: 14px;
}

.calendar-heading h2 {
  margin: 0;
  color: var(--navy);
  font-size: 1.55rem;
}

.calendar-heading p {
  margin: 4px 0 0;
  color: var(--muted);
}

.calendar-empty {
  border: 1px solid #fed7aa;
  background: #fff7ed;
  color: #9a3412;
  border-radius: 8px;
  padding: 13px 14px;
  margin-bottom: 14px;
}

.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(120px, 1fr));
  gap: 1px;
  background: #d1d5db;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  overflow: hidden;
}

.calendar-weekday,
.calendar-day {
  background: #fff;
}

.calendar-weekday {
  padding: 10px 8px;
  text-align: center;
  color: var(--navy);
  font-weight: 900;
  background: #f3f4f6;
}

.calendar-day {
  min-height: 116px;
  padding: 8px;
}

.calendar-day.is-outside {
  background: #fafafa;
  color: #a1a1aa;
}

.calendar-day.has-public-holiday {
  background: #fff7ed;
}

.calendar-day.has-submission-assessment {
  background: #f0fdf4;
}

.calendar-day.has-exam-rewrite {
  background: #faf5ff;
}

.calendar-day.has-other-internal {
  background: #f8fafc;
}

.calendar-day-number {
  font-weight: 900;
  font-size: 0.9rem;
  margin-bottom: 5px;
}

.calendar-event {
  display: grid;
  gap: 2px;
  margin-top: 6px;
  border-left: 4px solid #cbd5e1;
  background: #fff;
  border-radius: 8px;
  padding: 6px 7px;
  font-size: 0.78rem;
  line-height: 1.28;
  word-break: break-word;
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.04);
}

.calendar-event strong {
  color: var(--ink);
}

.calendar-event span,
.calendar-event small {
  color: #475569;
}

.calendar-event.public-holiday {
  background: #fde7c2;
  border-left-color: #fb923c;
}

.calendar-event.submission-assessment {
  background: #dcfce7;
  border-left-color: #22c55e;
}

.calendar-event.exam-rewrite {
  background: #eadcf8;
  border-left-color: #a855f7;
}

.calendar-event.other-internal {
  background: #eeeeee;
  border-left-color: #9ca3af;
}

.training-calendar-page {
  --calendar-ink: #0b1f3a;
  --calendar-muted: #52606d;
  --calendar-line: #d6dbe3;
  --calendar-brand: #7d7a5f;
  --calendar-brand-dark: #5f5b43;
  --calendar-orange: #fde7c2;
  --calendar-green: #dcfce7;
  --calendar-purple: #eadcf8;
  --calendar-grey: #eeeeee;
  display: grid;
  gap: 22px;
  color: var(--calendar-ink);
  font-family: Georgia, "Times New Roman", serif;
}

.training-calendar-page .calendar-card {
  background: #fff;
  border: 1px solid var(--calendar-line);
  border-radius: 18px;
  box-shadow: 0 10px 24px rgba(31, 41, 55, 0.06);
  overflow: hidden;
  transition: background 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.training-calendar-page .calendar-card:hover {
  box-shadow: 0 14px 30px rgba(31, 41, 55, 0.08);
}

.training-calendar-page .calendar-controls,
.training-calendar-page .calendar-shell {
  padding: 22px 24px;
}

.training-calendar-page .calendar-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.training-calendar-page .calendar-heading h2 {
  margin: 0;
  color: var(--calendar-ink);
  font-size: 2rem;
  line-height: 1.1;
}

.training-calendar-page .calendar-heading p {
  margin: 8px 0 0;
  color: var(--calendar-muted);
  font-size: 1rem;
}

.training-calendar-page .calendar-statusbar {
  margin-top: 14px;
  padding: 10px 12px;
  border: 1px solid var(--calendar-line);
  border-radius: 12px;
  background: #f9fafb;
  color: #374151;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 0.84rem;
}

.training-calendar-page .calendar-statusbar.error {
  background: #fff7ed;
  border-color: #fed7aa;
  color: #7c2d12;
}

.training-calendar-page .calendar-button {
  border: 0;
  border-radius: 10px;
  background: var(--calendar-brand);
  color: #fff;
  padding: 10px 16px;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.training-calendar-page .calendar-button:hover {
  background: var(--calendar-brand-dark);
  box-shadow: 0 8px 16px rgba(95, 91, 67, 0.16);
  transform: translateY(-1px);
}

.training-calendar-page .calendar-button:active {
  background: #504c38;
  box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.14);
  transform: translateY(0);
}

.training-calendar-page .calendar-button.ghost {
  background: #fff;
  color: var(--calendar-brand-dark);
  border: 1px solid var(--calendar-line);
}

.training-calendar-page .calendar-button.ghost:hover {
  background: #f8fafc;
  border-color: #b8bfcb;
  color: var(--calendar-brand-dark);
}

.training-calendar-page .calendar-button.ghost:active {
  background: #eef2f7;
}

.training-calendar-page .calendar-control-grid {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(140px, 1fr));
  gap: 14px;
  align-items: end;
}

.training-calendar-page .calendar-field {
  display: grid;
  gap: 6px;
  margin: 0;
  min-width: 0;
}

.training-calendar-page .calendar-field span {
  color: var(--calendar-ink);
  font-size: 0.84rem;
  font-weight: 700;
}

.training-calendar-page .calendar-field select,
.training-calendar-page .calendar-field input {
  width: 100%;
  min-width: 0;
  border: 1px solid #d1d5db;
  border-radius: 10px;
  background: #fff;
  padding: 10px 12px;
  color: #111827;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0.95rem;
}

.training-calendar-page .calendar-field.searchbox {
  grid-column: span 2;
  max-width: 420px;
}

.training-calendar-page .calendar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

.training-calendar-page .calendar-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin-top: 16px;
  color: #374151;
  font-size: 0.86rem;
}

.training-calendar-page .calendar-legend span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.training-calendar-page .legend-dot {
  width: 18px;
  height: 14px;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  background: #fff;
  flex: 0 0 auto;
}

.training-calendar-page .legend-dot.public-holiday {
  background: var(--calendar-orange);
  border-color: #fb923c;
}

.training-calendar-page .legend-dot.submission-assessment {
  background: var(--calendar-green);
  border-color: #22c55e;
}

.training-calendar-page .legend-dot.exam-rewrite {
  background: var(--calendar-purple);
  border-color: #a855f7;
}

.training-calendar-page .legend-dot.other-internal {
  background: var(--calendar-grey);
  border-color: #9ca3af;
}

.training-calendar-page .calendar-shell {
  overflow-x: auto;
}

.training-calendar-page .calendar-heading {
  align-items: center;
  margin-bottom: 14px;
}

.training-calendar-page .calendar-empty {
  margin-bottom: 14px;
  border: 1px solid #fed7aa;
  border-radius: 12px;
  background: #fff7ed;
  color: #9a3412;
  padding: 12px 14px;
  font-family: Arial, Helvetica, sans-serif;
}

.training-calendar-page .calendar-grid {
  display: grid !important;
  grid-template-columns: repeat(7, minmax(128px, 1fr)) !important;
  gap: 0 !important;
  width: 100%;
  min-width: 900px;
  background: #fff;
  border: 1px solid #cfd6df;
  border-radius: 16px;
  overflow: hidden;
}

.training-calendar-page .calendar-weekday {
  display: block;
  background: #f3f4f6;
  border-right: 1px solid #cfd6df;
  border-bottom: 1px solid #cfd6df;
  color: var(--calendar-ink);
  font-weight: 700;
  text-align: center;
  padding: 12px 8px;
  min-height: auto;
}

.training-calendar-page .calendar-weekday:nth-child(7n) {
  border-right: 0;
}

.training-calendar-page .calendar-day {
  display: block;
  min-height: 128px;
  background: #fff;
  border-right: 1px solid #cfd6df;
  border-bottom: 1px solid #cfd6df;
  padding: 8px 10px;
}

.training-calendar-page .calendar-day:nth-child(7n) {
  border-right: 0;
}

.training-calendar-page .calendar-day:nth-last-child(-n + 7) {
  border-bottom: 0;
}

.training-calendar-page .calendar-day.is-outside {
  background: #fafafa;
  color: #9ca3af;
}

.training-calendar-page .calendar-day.has-public-holiday {
  background: var(--calendar-orange);
}

.training-calendar-page .calendar-day.has-submission-assessment {
  background: #d9fbe4;
}

.training-calendar-page .calendar-day.has-exam-rewrite {
  background: var(--calendar-purple);
}

.training-calendar-page .calendar-day.has-other-internal {
  background: var(--calendar-grey);
}

.training-calendar-page .calendar-day-number {
  color: var(--calendar-ink);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 8px;
}

.training-calendar-page .calendar-day.is-outside .calendar-day-number {
  color: #9ca3af;
}

.training-calendar-page .calendar-event {
  display: grid;
  gap: 2px;
  margin-top: 6px;
  border-left: 4px solid #cbd5e1;
  border-radius: 10px;
  background: #fff;
  padding: 7px 8px;
  color: #061936;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 0.78rem;
  line-height: 1.25;
  word-break: break-word;
  box-shadow: none;
}

.training-calendar-page .calendar-event strong {
  color: #061936;
  font-size: 0.82rem;
  line-height: 1.2;
}

.training-calendar-page .calendar-event span,
.training-calendar-page .calendar-event small {
  color: #073055;
}

.training-calendar-page .calendar-event.public-holiday {
  background: var(--calendar-orange);
  border-left-color: #fb923c;
}

.training-calendar-page .calendar-event.submission-assessment {
  background: var(--calendar-green);
  border-left-color: #22c55e;
}

.training-calendar-page .calendar-event.exam-rewrite {
  background: var(--calendar-purple);
  border-left-color: #a855f7;
}

.training-calendar-page .calendar-event.other-internal {
  background: var(--calendar-grey);
  border-left-color: #9ca3af;
}

@media (max-width: 1050px) {
  .app,
  .login-screen,
  .two-col {
    grid-template-columns: 1fr;
  }

  .app.sidebar-collapsed {
    grid-template-columns: 1fr;
  }

  .sidebar {
    position: static;
    height: auto;
    padding: 18px;
  }

  .app.sidebar-collapsed .sidebar {
    display: none;
  }

  .nav {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .nav a:hover {
    transform: none;
  }

  .topbar {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .topbar-actions {
    justify-content: flex-start;
  }

  .content {
    padding: 22px;
  }

  .calendar-control-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .calendar-grid {
    grid-template-columns: repeat(7, minmax(92px, 1fr));
  }

  .training-calendar-page .calendar-control-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .training-calendar-page .calendar-field.searchbox {
    grid-column: span 2;
    max-width: none;
  }

  .training-calendar-page .calendar-grid {
    grid-template-columns: repeat(7, minmax(110px, 1fr)) !important;
    min-width: 770px;
  }
}

@media (max-width: 700px) {
  .content,
  .topbar,
  .panel-body,
  .panel-head {
    padding: 16px;
  }

  .login-card .brand {
    min-height: 62px;
    margin-bottom: 14px;
  }

  .login-card .brand img {
    width: 128px;
  }

  .sidebar .brand {
    min-height: 54px;
  }

  .sidebar .brand img {
    width: 104px;
  }

  .portal-label {
    margin: 12px 6px 8px;
  }

  .nav {
    grid-template-columns: 1fr;
  }

  .nav a {
    padding: 10px 12px;
  }

  .role-box {
    padding: 13px;
  }

  .topbar-actions {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  .topbar-title {
    flex-basis: calc(100% - 54px);
  }

  .user-chip {
    border-radius: 12px;
    justify-content: flex-start;
  }

  .stats {
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  }

  .dashboard-main-grid {
    grid-template-columns: 1fr;
  }

  .stat {
    min-height: auto;
  }

  .form-grid {
    grid-template-columns: 1fr;
  }

  .feedback-form-grid,
  .feedback-context {
    grid-template-columns: 1fr;
  }

  .feedback-modal-shell {
    align-items: stretch;
    padding: 10px;
  }

  .feedback-modal-panel {
    max-height: calc(100vh - 20px);
  }

  .feedback-modal-head {
    align-items: stretch;
    flex-direction: column;
  }

  .filter-bar,
  .operational-filters {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .filter-bar .form-field,
  .operational-filters .compact-field,
  .inline-search .form-field {
    max-width: none;
    min-width: 0;
    width: 100%;
  }

  .filter-actions,
  .page-actions,
  .form-actions,
  .pagination-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .filter-actions .btn,
  .page-actions .btn,
  .form-actions .btn,
  .pagination-bar .btn {
    width: 100%;
  }

  .cohort-card {
    display: grid;
    grid-template-columns: 1fr;
  }

  .cohort-card .badge {
    justify-self: start;
  }

  .data-table th,
  .data-table td {
    padding: 12px 13px;
  }

  .attendance-expanded-panel {
    padding: 12px;
  }

  .attendance-expanded-detail-table {
    min-width: 680px;
  }

  .assessment-details-panel {
    padding: 9px;
  }

  .assessment-breakdown {
    grid-template-columns: minmax(0, 1fr);
    gap: 9px;
  }

  .assessment-message-helper {
    display: grid;
  }

  .assessment-message-actions {
    justify-content: flex-start;
  }

  .assessment-detail-grid.has-codes {
    grid-template-columns: minmax(64px, 0.48fr) minmax(104px, 0.72fr) minmax(122px, 0.86fr);
  }

  .assessment-detail-grid.item-only {
    grid-template-columns: minmax(150px, 1fr) minmax(122px, 0.55fr);
  }

  .assessment-detail-grid > span {
    padding: 5px 6px;
  }

  .login-hero h1 {
    font-size: 2.4rem;
  }

  .calendar-control-grid,
  .calendar-control-grid .searchbox {
    grid-template-columns: 1fr;
    grid-column: span 1;
  }

  .calendar-shell,
  .calendar-controls {
    padding: 14px;
  }

  .calendar-shell {
    overflow-x: auto;
  }

  .calendar-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .calendar-weekday,
  .calendar-day {
    min-width: 94px;
  }

  .training-calendar-page {
    gap: 16px;
  }

  .training-calendar-page .calendar-controls,
  .training-calendar-page .calendar-shell {
    padding: 16px;
  }

  .training-calendar-page .calendar-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .training-calendar-page .calendar-heading h2 {
    font-size: 1.65rem;
  }

  .training-calendar-page .calendar-control-grid,
  .training-calendar-page .calendar-field.searchbox {
    grid-template-columns: 1fr !important;
    grid-column: span 1;
  }

  .training-calendar-page .calendar-grid {
    grid-template-columns: repeat(7, minmax(96px, 1fr)) !important;
    min-width: 672px;
  }

  .training-calendar-page .calendar-day {
    min-height: 108px;
  }
}

@media print {
  body {
    background: #fff;
  }

  .sidebar,
  .topbar,
  .notice,
  .calendar-controls,
  .calendar-empty,
  .print-only-action {
    display: none !important;
  }

  .app {
    display: block;
    min-height: auto;
  }

  .content {
    padding: 0;
  }

  body.printing-report .content > :not(.reports-preview-print) {
    display: none !important;
  }

  body.printing-report .main {
    display: block;
    background: #fff;
  }

  .calendar-shell {
    border: 0;
    box-shadow: none;
    padding: 0;
  }

  .calendar-grid {
    border-radius: 0;
    page-break-inside: avoid;
  }

  .calendar-day {
    min-height: 108px;
    padding: 6px;
  }

  .calendar-event {
    font-size: 0.68rem;
    padding: 4px 5px;
  }

  @page {
    size: A4 landscape;
    margin: 10mm;
  }

  .reports-filter-card,
  .report-export-actions {
    display: none !important;
  }

  .reports-preview-print .report-assessment-action-toggle {
    display: none !important;
  }

  .reports-preview-print .report-assessment-action-details > .report-assessment-action-list {
    display: grid !important;
  }

  .reports-preview-print .report-assessment-action-details > summary {
    cursor: default;
  }

  .reports-preview-print .report-assessment-action-list {
    background: #fff;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .reports-preview-print {
    display: block;
    color: #111827;
    font-size: 10pt;
    line-height: 1.35;
  }

  .reports-preview-print .panel,
  .reports-preview-print .stat {
    border: 1px solid #d7dce8;
    box-shadow: none;
    break-inside: avoid;
    page-break-inside: avoid;
    margin: 0 0 10px;
    overflow: visible;
  }

  .reports-preview-print .panel-head {
    background: #fff;
    padding: 10px 12px;
  }

  .reports-preview-print .panel-body {
    padding: 10px 12px;
  }

  .reports-preview-print .report-summary-cards {
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
  }

  .reports-preview-print .stat {
    min-height: auto;
    padding: 10px;
  }

  .reports-preview-print .stat strong {
    font-size: 1.15rem;
  }

  .reports-preview-print .table-wrap {
    overflow: visible;
  }

  .reports-preview-print .data-table {
    width: 100%;
    min-width: 0;
    font-size: 0.72rem;
    border-collapse: collapse;
    border-spacing: 0;
    page-break-inside: auto;
  }

  .reports-preview-print .data-table tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .reports-preview-print .data-table thead {
    display: table-header-group;
  }

  .reports-preview-print .reports-table th,
  .reports-preview-print .reports-table td {
    border-bottom: 1px solid #d7dce8;
    padding: 5px 6px;
  }

  .training-calendar-page {
    display: block;
    font-family: Georgia, "Times New Roman", serif;
  }

  .training-calendar-page .calendar-controls,
  .training-calendar-page .calendar-empty,
  .training-calendar-page .print-only-action {
    display: none !important;
  }

  .training-calendar-page .calendar-card,
  .training-calendar-page .calendar-shell {
    border: 0;
    box-shadow: none;
    padding: 0;
    overflow: visible;
  }

  .training-calendar-page .calendar-grid {
    grid-template-columns: repeat(7, 1fr) !important;
    min-width: 0;
    border-radius: 0;
    page-break-inside: avoid;
  }

  .training-calendar-page .calendar-day {
    min-height: 106px;
    padding: 6px;
  }

  .training-calendar-page .calendar-event {
    font-size: 0.65rem;
    padding: 4px 5px;
  }
}

/* Phase 3A.1B.2B.3 — read-only assessment conflict audit */
.assessment-conflict-item {
  border: 1px solid var(--line);
  border-radius: 14px;
  margin-bottom: 14px;
  overflow: hidden;
  background: #fff;
}

.assessment-conflict-item > summary {
  padding: 16px 18px;
  justify-content: space-between;
  flex-wrap: wrap;
}

.assessment-conflict-item > summary > span:first-of-type {
  min-width: 210px;
}

.assessment-conflict-item > summary > span:nth-of-type(2) {
  flex: 1 1 360px;
}

.assessment-conflict-item > summary small {
  display: block;
  margin-top: 3px;
}

.assessment-conflict-body {
  border-top: 1px solid var(--line);
  padding: 18px;
}

.assessment-conflict-body .detail-grid {
  grid-template-columns: minmax(150px, 0.45fr) minmax(260px, 1.55fr);
  margin: 18px 0;
}

.assessment-conflict-body .detail-grid dt {
  color: var(--muted);
  font-weight: 800;
}

.assessment-conflict-body .detail-grid dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.assessment-conflict-body code {
  font-size: 0.82rem;
  white-space: normal;
  overflow-wrap: anywhere;
}

@media (max-width: 760px) {
  .assessment-conflict-body .detail-grid {
    grid-template-columns: 1fr;
    gap: 5px;
  }

  .assessment-conflict-body .detail-grid dd {
    margin-bottom: 12px;
  }
}


/* Phase 3A.1B.2C: simplified support register and intervention progress */
.intervention-status-group[hidden] {
  display: none;
}

.learner-support-register-table th,
.learner-support-register-table td {
  vertical-align: top;
}

.learner-support-register-table .support-priority-high {
  background: #fee2e2;
  color: #991b1b;
}

.learner-support-register-table .support-priority-medium {
  background: #fef3c7;
  color: #92400e;
}

.learner-support-register-table .support-priority-low {
  background: #e0f2fe;
  color: #075985;
}

.badge.support-progress-open,
.support-progress-link.support-progress-open {
  background: #fff3cd;
  color: #8a4b00;
}

.badge.support-progress-closed,
.support-progress-link.support-progress-closed {
  background: #dcfce7;
  color: #166534;
}

.support-progress-link {
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
}

.support-progress-link:hover,
.support-progress-link:focus-visible {
  text-decoration: underline;
}

.learner-support-details {
  min-width: 7.5rem;
}

.learner-support-details summary {
  display: inline-flex;
  align-items: center;
  min-height: 1.75rem;
  padding: 0.22rem 0.65rem;
  border-radius: 999px;
  background: #070b4d;
  color: #fff;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
  white-space: nowrap;
}

.learner-support-details summary::-webkit-details-marker {
  display: none;
}

.learner-support-details .support-details-hide {
  display: none;
}

.learner-support-details[open] .support-details-show {
  display: none;
}

.learner-support-details[open] .support-details-hide {
  display: inline;
}

.learner-support-details ul {
  margin: 0.75rem 0 0;
  padding: 0;
  list-style: none;
  min-width: 19rem;
}

.learner-support-details li {
  display: grid;
  gap: 0.15rem;
  padding: 0.55rem 0;
  border-bottom: 1px solid #e2e8f0;
}

.learner-support-details li:last-child {
  border-bottom: 0;
}

.learner-support-details li span {
  color: #5b6880;
  font-size: 0.88rem;
}

@media print {
  .learner-support-details summary {
    display: none !important;
  }

  .learner-support-details > ul {
    display: block !important;
    margin-top: 0;
    min-width: 0;
  }
}

/* Phase 3A.2A: multi-report mode and dynamic scope foundation */
.reports-builder {
    display: grid;
    gap: 1.25rem;
    margin-bottom: 1.5rem;
}

.report-mode-selector,
.report-scope-card {
    background: #fff;
    border: 1px solid #dfe5ef;
    border-radius: 14px;
    box-shadow: 0 10px 24px rgba(8, 22, 63, 0.06);
    padding: 1.25rem;
}

.report-builder-heading,
.report-scope-heading {
    grid-column: 1 / -1;
}

.report-builder-heading h2,
.report-scope-heading h2 {
    margin: 0 0 0.3rem;
}

.report-builder-heading p,
.report-scope-heading p {
    color: #647089;
    margin: 0;
}

.report-mode-card-grid {
    display: grid;
    gap: 0.9rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 1rem;
}

.report-mode-card {
    background: #f8faff;
    border: 1px solid #dfe5ef;
    border-radius: 12px;
    cursor: pointer;
    display: grid;
    gap: 0.45rem;
    min-height: 126px;
    padding: 1rem;
    position: relative;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.report-mode-card:hover {
    border-color: #aebbe0;
    transform: translateY(-1px);
}

.report-mode-card.is-selected {
    background: #f1f4ff;
    border-color: #0a124e;
    box-shadow: 0 0 0 2px rgba(10, 18, 78, 0.08);
}

.report-mode-card input {
    height: 1px;
    opacity: 0;
    position: absolute;
    width: 1px;
}

.report-mode-card-title {
    color: #050b3f;
    font-size: 1rem;
    font-weight: 800;
}

.report-mode-card-description {
    color: #647089;
    font-size: 0.9rem;
    line-height: 1.45;
}

.report-scope-card {
    align-items: end;
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0;
}

.report-scope-card [hidden] {
    display: none !important;
}

.report-scope-card .filter-actions {
    align-self: end;
}

@media (max-width: 1100px) {
    .report-mode-card-grid,
    .report-scope-card {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .report-mode-card-grid,
    .report-scope-card {
        grid-template-columns: 1fr;
    }
}

@media print {
    .reports-builder {
        display: none !important;
    }
}

/* Phase 3A.2B: split report selection, scope preview, visual summary and collapsible report sections */
.reports-builder-split {
    gap: 1rem;
}

.report-builder-toolbar {
    align-items: end;
    background: #fff;
    border: 1px solid #dce4ef;
    border-radius: 14px;
    box-shadow: 0 8px 22px rgba(8, 22, 63, 0.05);
    display: grid;
    gap: 0.9rem;
    grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
    padding: 1rem;
}

.report-builder-toolbar [hidden] {
    display: none !important;
}

.report-reset-button {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    min-height: 44px;
}

.report-builder-main-grid {
    align-items: start;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.85fr);
}

.report-mode-selector {
    padding: 1.15rem;
}

.report-mode-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.report-mode-card {
    align-items: center;
    background: #fff;
    display: grid;
    gap: 0.9rem;
    grid-template-columns: 54px minmax(0, 1fr);
    min-height: 138px;
    overflow: hidden;
    padding: 1rem;
}

.report-mode-card.is-selected {
    background: linear-gradient(135deg, #f5f9ff 0%, #eef5ff 100%);
    border-color: #1769e0;
    box-shadow: 0 0 0 2px rgba(23, 105, 224, 0.12);
}

.report-mode-card-icon,
.report-scope-icon {
    align-items: center;
    background: #f3f7fd;
    border: 1px solid #d7e2f2;
    border-radius: 12px;
    color: #1769e0;
    display: inline-flex;
    font-size: 1.55rem;
    height: 54px;
    justify-content: center;
    width: 54px;
}

.report-mode-card-copy {
    display: grid;
    gap: 0.35rem;
}

.report-mode-selected-label {
    background: #1769e0;
    border-radius: 0 0 0 9px;
    color: #fff;
    display: none;
    font-size: 0.72rem;
    font-weight: 800;
    padding: 0.35rem 0.7rem;
    position: absolute;
    right: 0;
    top: 0;
}

.report-mode-card.is-selected .report-mode-selected-label {
    display: inline-flex;
}

.report-scope-summary {
    background: #fff;
    border: 1px solid #dce4ef;
    border-radius: 14px;
    box-shadow: 0 10px 26px rgba(8, 22, 63, 0.07);
    padding: 1.1rem;
    position: sticky;
    top: 1rem;
}

.report-selected-badge {
    background: #eaf3ff;
    color: #1769e0;
}

.report-scope-title-row {
    align-items: flex-start;
    border-bottom: 1px solid #e3e9f1;
    display: grid;
    gap: 0.9rem;
    grid-template-columns: 54px minmax(0, 1fr);
    margin-top: 0.85rem;
    padding-bottom: 1rem;
}

.report-scope-title-row h2 {
    margin: 0 0 0.25rem;
}

.report-scope-title-row p {
    color: #65728a;
    line-height: 1.45;
    margin: 0;
}

.report-scope-list {
    margin: 0.75rem 0 1rem;
}

.report-scope-list > div {
    align-items: baseline;
    border-bottom: 1px dashed #dce4ef;
    display: grid;
    gap: 0.75rem;
    grid-template-columns: minmax(120px, 0.75fr) minmax(0, 1.25fr);
    padding: 0.65rem 0;
}

.report-scope-list dt {
    color: #243550;
    font-size: 0.85rem;
    font-weight: 800;
}

.report-scope-list dd {
    color: #516078;
    margin: 0;
    overflow-wrap: anywhere;
}

.report-preview-submit {
    width: 100%;
}

.reports-preview-print {
    display: grid;
    gap: 1rem;
}

.reports-preview-header {
    overflow: hidden;
}

.report-preview-brand-bar {
    align-items: center;
    background: linear-gradient(90deg, #071746 0%, #0b2d65 100%);
    color: #fff;
    display: grid;
    gap: 0.75rem;
    grid-template-columns: auto 1fr auto;
    padding: 0.8rem 1rem;
}

.report-preview-brand-mark {
    align-items: center;
    background: #1769e0;
    border-radius: 8px;
    display: inline-flex;
    font-size: 0.82rem;
    font-weight: 900;
    height: 38px;
    justify-content: center;
    letter-spacing: 0.04em;
    min-width: 46px;
    padding: 0 0.55rem;
}

.report-preview-brand-bar strong {
    font-size: 1rem;
}

.report-preview-brand-bar small {
    color: rgba(255,255,255,0.82);
}

.report-preview-title {
    background: #fff;
}

.report-summary-cards {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.report-summary-cards .stat {
    border: 1px solid #dce4ef;
    border-radius: 12px;
    box-shadow: 0 5px 16px rgba(8, 22, 63, 0.045);
}

.report-summary-cards .stat strong {
    color: #0a2456;
}

.report-visual-summary {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.report-chart-card {
    background: #fff;
    border: 1px solid #dce4ef;
    border-radius: 14px;
    box-shadow: 0 5px 16px rgba(8, 22, 63, 0.045);
    padding: 1rem;
}

.report-chart-heading {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 0.9rem;
}

.report-chart-heading h3 {
    margin: 0 0 0.15rem;
}

.report-chart-heading p,
.report-chart-heading > span {
    color: #69758a;
    font-size: 0.82rem;
    margin: 0;
}

.report-stacked-bar {
    background: #eef2f7;
    border-radius: 999px;
    display: flex;
    min-height: 26px;
    overflow: hidden;
}

.report-stacked-bar .segment {
    align-items: center;
    color: #fff;
    display: inline-flex;
    font-size: 0.7rem;
    font-weight: 800;
    justify-content: center;
    min-width: 4px;
    overflow: hidden;
    white-space: nowrap;
}

.segment-strong, .legend-strong, .assessment-competent { background: #159447; }
.segment-on_track, .legend-on-track { background: #76bd50; }
.segment-monitor, .legend-monitor, .assessment-awaiting { background: #e6b725; }
.segment-critical, .legend-critical { background: #dc4d3f; }
.segment-unknown, .legend-unknown, .assessment-none { background: #8b95a6; }
.assessment-reassessment { background: #2786d1; }
.assessment-outstanding { background: #e38b22; }
.assessment-review { background: #8d5bb7; }

.report-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem 1rem;
    margin-top: 0.8rem;
}

.report-chart-legend span {
    align-items: center;
    color: #606d82;
    display: inline-flex;
    font-size: 0.76rem;
    gap: 0.35rem;
}

.report-chart-legend i {
    border-radius: 999px;
    display: inline-block;
    height: 8px;
    width: 8px;
}

.reports-preview-print > article.panel:not(.reports-preview-header) > .panel-head {
    align-items: center;
    display: grid;
    gap: 0.25rem 1rem;
    grid-template-columns: 1fr auto;
}

.reports-preview-print > article.panel:not(.reports-preview-header) > .panel-head h2,
.reports-preview-print > article.panel:not(.reports-preview-header) > .panel-head p {
    grid-column: 1;
}

.report-section-toggle {
    align-items: center;
    align-self: center;
    background: #f4f7fb;
    border: 1px solid #d8e1ec;
    border-radius: 999px;
    color: #1e355b;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 800;
    gap: 0.45rem;
    grid-column: 2;
    grid-row: 1 / span 2;
    padding: 0.4rem 0.7rem;
}

.report-section-toggle:hover,
.report-section-toggle:focus-visible {
    background: #eaf2ff;
    border-color: #8fb7ed;
}

@media (max-width: 1180px) {
    .report-builder-toolbar {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .report-builder-main-grid {
        grid-template-columns: 1fr;
    }
    .report-scope-summary {
        position: static;
    }
    .report-summary-cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .report-builder-toolbar,
    .report-mode-card-grid,
    .report-visual-summary,
    .report-summary-cards {
        grid-template-columns: 1fr;
    }
    .report-mode-card {
        min-height: 116px;
    }
    .report-preview-brand-bar {
        grid-template-columns: auto 1fr;
    }
    .report-preview-brand-bar small {
        grid-column: 1 / -1;
    }
    .report-scope-list > div {
        grid-template-columns: 1fr;
        gap: 0.2rem;
    }
}

@media print {
    .report-section-toggle,
    .report-builder-toolbar,
    .report-builder-main-grid {
        display: none !important;
    }
    .report-visual-summary {
        break-inside: avoid;
    }
}

/* Phase 3A.2B.1: cascading report-scope filters */
.report-filter-status {
    flex: 1 1 100%;
    min-height: 1.2em;
    margin: 0;
    color: var(--muted, #687786);
    font-size: .82rem;
}
.report-filter-status.is-error {
    color: #a33a32;
}
.reports-builder.is-filter-loading .report-builder-toolbar select {
    cursor: progress;
}
.reports-builder.is-filter-loading .report-builder-toolbar {
    position: relative;
}
.reports-builder.is-filter-loading .report-builder-toolbar::after {
    content: "";
    width: 16px;
    height: 16px;
    border: 2px solid rgba(31, 95, 139, .2);
    border-top-color: #1f5f8b;
    border-radius: 50%;
    animation: report-filter-spin .7s linear infinite;
    align-self: center;
}
@keyframes report-filter-spin {
    to { transform: rotate(360deg); }
}
@media print {
    .report-filter-status { display: none !important; }
}

/* Phase 3A.2B.4 shared cascading filter integration */
.filter-helper,.calendar-filter-message{width:100%;margin:.35rem 0 0;color:#687786;font-size:.82rem}.calendar-filter-message:empty,.filter-helper:empty{display:none}

/* Phase 3A.2C - Cohort Progress Report */
.cohort-report-document{background:#fff;border:1px solid #d8e2ec;border-radius:14px;box-shadow:0 8px 24px rgba(13,42,76,.08);padding:18px;margin-top:22px;color:#17324d}
.cohort-report-cover{display:grid;grid-template-columns:190px 1fr 260px;gap:20px;align-items:center;border-bottom:4px solid #0f4b8c;padding:6px 4px 18px}
.cohort-report-logo{font-size:42px;font-weight:800;color:#0f4b8c;line-height:1}.cohort-report-logo span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin-top:5px}.cohort-report-title-block{text-align:center}.cohort-report-title-block h1{margin:0;font-size:28px;line-height:1.15;color:#123d79}.cohort-report-title-block p{margin:7px 0 0;color:#617187}.cohort-report-generated{display:grid;gap:7px;font-size:12px}.cohort-report-context{display:grid;grid-template-columns:repeat(3,1fr);gap:0;background:#f5f9fd;border:1px solid #d7e4ef;border-radius:10px;margin:16px 0;padding:12px}.cohort-report-context>div{padding:8px 14px;border-right:1px solid #d7e4ef}.cohort-report-context>div:nth-child(3n){border-right:0}.cohort-report-context small,.cohort-report-context strong{display:block}.cohort-report-context small{color:#687b90;font-size:11px;margin-bottom:4px}.cohort-report-section{border:1px solid #d8e2ec;border-radius:10px;margin:14px 0;padding:14px;background:#fff}.cohort-report-section-title{display:flex;align-items:center;gap:8px;border-bottom:1px solid #e2e9ef;padding-bottom:9px;margin-bottom:12px}.cohort-report-section-title>span{font-weight:800;color:#0f4b8c}.cohort-report-section-title h2{margin:0;font-size:16px;text-transform:uppercase;color:#0f4b8c}.cohort-report-section-title small{color:#6e7c8b;font-style:italic}.cohort-report-section-title .btn{margin-left:auto}.cohort-report-metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.cohort-report-metrics article{border:1px solid #dce6ef;border-radius:9px;padding:13px;text-align:center;min-height:104px;display:flex;flex-direction:column;justify-content:center}.cohort-report-metrics small{color:#5f7081}.cohort-report-metrics strong{font-size:27px;color:#0f4b8c;margin:6px 0}.cohort-report-metrics .metric-text{font-size:15px;line-height:1.3}.cohort-report-metrics span{font-size:11px;color:#7b8996}.assessment-capture-progress{display:grid;grid-template-columns:330px 1fr;gap:18px;align-items:center;background:#f7faff;border:1px solid #dce7f2;border-radius:9px;padding:12px;margin-top:12px}.assessment-capture-progress small,.assessment-capture-progress strong,.assessment-capture-progress span{display:block}.assessment-capture-progress strong{font-size:25px;color:#0f4b8c}.assessment-capture-progress span{font-size:11px;color:#6a7988}.progress-track{height:15px;background:#e3ebf4;border-radius:999px;overflow:hidden}.progress-track span{height:100%;background:#0f4b8c;border-radius:999px}.cohort-report-narrative{background:#fbfcfe;border:1px solid #dce5ee;border-radius:8px;padding:14px}.cohort-report-narrative p{margin:0 0 12px;line-height:1.55}.cohort-report-narrative p:last-child{margin-bottom:0}.cohort-report-narrative-form textarea{width:100%;border:1px solid #bfcddd;border-radius:8px;padding:12px;font:inherit;line-height:1.5}.cohort-report-two-column{display:grid;grid-template-columns:1fr 1.3fr;gap:14px}.lower-grid{grid-template-columns:1fr 1fr}.delivery-timeline{display:flex;align-items:flex-start;overflow-x:auto;padding:8px 2px 18px}.timeline-unit{min-width:92px;text-align:center;position:relative}.timeline-unit:after{content:"";position:absolute;top:15px;left:60%;width:80%;height:3px;background:#cdd8e3;z-index:0}.timeline-unit:last-child:after{display:none}.timeline-unit i{display:inline-grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#edf2f7;border:2px solid #aebdca;font-style:normal;font-weight:800;position:relative;z-index:1}.timeline-unit b,.timeline-unit small{display:block;font-size:10px;margin-top:5px}.timeline-unit.is-completed i{background:#17a36b;color:#fff;border-color:#17a36b}.timeline-unit.is-current i{background:#0f4b8c;color:#fff;border-color:#0f4b8c}.report-facts{margin:0}.report-facts div{display:flex;justify-content:space-between;border-bottom:1px solid #edf1f5;padding:7px}.report-facts dt{font-weight:600}.report-facts dd{margin:0}.attendance-mini-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.attendance-mini-metrics span{border:1px solid #dce6ef;border-radius:8px;text-align:center;padding:10px;font-size:11px}.attendance-mini-metrics b{display:block;font-size:20px;color:#0f4b8c}.attendance-trend-bars{height:155px;display:flex;gap:10px;align-items:flex-end;border-bottom:1px solid #cfd9e3;padding:12px 8px 0}.attendance-trend-bars>div{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}.attendance-trend-bars span{display:block;width:52%;min-height:4px;background:#1777c8;border-radius:4px 4px 0 0}.attendance-trend-bars b{font-size:10px;margin-top:4px}.attendance-trend-bars small{font-size:9px}.distribution-list{display:grid;gap:7px}.distribution-list>div{display:grid;grid-template-columns:105px 1fr 25px;gap:7px;align-items:center;font-size:11px}.distribution-list span{height:11px;background:#edf2f6;border-radius:999px;overflow:hidden}.distribution-list i{display:block;height:100%;background:#17a36b}.distribution-list>div:nth-child(3) i{background:#f0a020}.distribution-list>div:nth-child(4) i{background:#d94b4b}.assessment-overview-grid{display:grid;grid-template-columns:210px 150px 1fr;gap:18px;align-items:center}.assessment-summary-list{display:grid;gap:8px}.assessment-summary-list span{display:flex;justify-content:space-between;align-items:center;background:#f6f9fc;border:1px solid #dfe7ef;border-radius:8px;padding:10px}.assessment-summary-list b{font-size:20px;color:#0f4b8c}.assessment-donut{width:125px;height:125px;border-radius:50%;display:grid;place-content:center;text-align:center;background:conic-gradient(#17a36b var(--competent),#e7edf3 0);position:relative}.assessment-donut:after{content:"";position:absolute;inset:22px;background:#fff;border-radius:50%}.assessment-donut strong,.assessment-donut small{position:relative;z-index:1}.assessment-donut strong{font-size:25px;color:#0f4b8c}.compact-report-table{font-size:11px}.compact-report-table td small{display:block;color:#718091;margin-top:3px}.section-actions{margin-left:auto;display:flex;gap:6px}.learner-detail-list{display:grid;gap:8px}.learner-progress-card{border:1px solid #dce5ee;border-radius:8px;background:#fff}.learner-progress-card summary{display:grid;grid-template-columns:1.3fr 1fr 100px 90px;gap:10px;align-items:center;padding:11px;cursor:pointer}.learner-progress-card[open] summary{border-bottom:1px solid #e2e8ef}.learner-progress-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;padding:12px}.learner-progress-grid div{background:#f7f9fc;border-radius:7px;padding:9px}.learner-progress-grid small,.learner-progress-grid b{display:block}.learner-progress-grid small{font-size:10px;color:#738295}.learner-risk-reasons{margin:0;padding:0 12px 12px;color:#9b2f2f}.report-notes ul{margin:0;padding-left:20px}.report-notes li{margin:5px 0}.cohort-report-footer{display:flex;justify-content:space-between;background:#0f4b8c;color:#fff;padding:10px 14px;border-radius:0 0 8px 8px;font-size:11px}.cohort-report-document h3{font-size:12px;color:#0f4b8c;margin:12px 0 7px}
@media(max-width:1100px){.cohort-report-cover{grid-template-columns:150px 1fr}.cohort-report-generated{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}.cohort-report-metrics{grid-template-columns:repeat(3,1fr)}.cohort-report-two-column,.lower-grid{grid-template-columns:1fr}.assessment-overview-grid{grid-template-columns:1fr}.assessment-donut{margin:auto}.learner-progress-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.cohort-report-document{padding:10px}.cohort-report-cover{grid-template-columns:1fr;text-align:center}.cohort-report-generated{grid-template-columns:1fr}.cohort-report-context{grid-template-columns:1fr}.cohort-report-context>div{border-right:0;border-bottom:1px solid #d7e4ef}.cohort-report-metrics{grid-template-columns:repeat(2,1fr)}.assessment-capture-progress{grid-template-columns:1fr}.learner-progress-card summary{grid-template-columns:1fr 1fr}.learner-progress-grid{grid-template-columns:1fr 1fr}.cohort-report-section-title{flex-wrap:wrap}.section-actions{margin-left:0;width:100%}}
@media print{.reports-builder,.report-builder-toolbar,.report-selection-layout,.alert,.success,.cohort-report-section-title .btn,.section-actions,.cohort-report-narrative-form{display:none!important}.cohort-report-document{border:0;box-shadow:none;padding:0;margin:0}.cohort-report-section{break-inside:avoid}.learner-progress-card{break-inside:avoid}.learner-progress-card:not([open])>div{display:block!important}.cohort-report-footer{position:fixed;bottom:0;left:0;right:0}.cohort-report-cover{margin-top:0}}

/* Phase 3A.2C.1 — responsive cohort report and safe unresolved-data presentation */
.cohort-report-document{width:100%;max-width:100%;min-width:0;overflow:hidden;padding:14px}
.cohort-report-document *{min-width:0}
.cohort-report-cover{grid-template-columns:minmax(125px,160px) minmax(260px,1fr) minmax(190px,230px);gap:14px}
.cohort-report-title-block h1{font-size:clamp(20px,2vw,27px);overflow-wrap:anywhere}
.cohort-report-context{grid-template-columns:repeat(3,minmax(0,1fr))}
.cohort-report-context strong{overflow-wrap:anywhere}
.cohort-report-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.cohort-report-metrics article{min-height:86px;padding:10px}
.cohort-report-metrics strong{font-size:23px;margin:4px 0}
.cohort-report-metrics .metric-text{font-size:13px;line-height:1.25;overflow-wrap:anywhere}
.assessment-capture-progress{grid-template-columns:minmax(230px,320px) minmax(0,1fr)}
.cohort-report-two-column{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)}
.lower-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.delivery-timeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:12px;overflow:visible;padding:8px 0 14px}
.timeline-unit{min-width:0;padding:0 4px}
.timeline-unit:after{display:none}
.timeline-unit b{overflow-wrap:anywhere;line-height:1.2}
.attendance-trend-bars{min-width:0;overflow:hidden}
.assessment-overview-grid{grid-template-columns:minmax(150px,190px) minmax(110px,135px) minmax(0,1fr)}
.table-wrap,.compact-report-table{max-width:100%}
.table-wrap{overflow-x:auto}
.compact-report-table{width:100%;table-layout:auto}
.compact-report-table th,.compact-report-table td{overflow-wrap:anywhere}
.learner-progress-card summary{grid-template-columns:minmax(160px,1.3fr) minmax(130px,1fr) 85px 75px}
.report-data-unavailable{display:grid;gap:4px;border:1px solid #d9e3ec;background:#f7f9fc;border-radius:8px;padding:12px;margin:4px 0 12px;color:#526579}
.report-data-unavailable strong{color:#173f72}
.report-data-unavailable span{font-size:12px;line-height:1.45}
@media(max-width:1350px){
 .cohort-report-cover{grid-template-columns:135px minmax(240px,1fr)}
 .cohort-report-generated{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr))}
 .cohort-report-two-column,.lower-grid{grid-template-columns:1fr}
 .assessment-overview-grid{grid-template-columns:minmax(150px,190px) minmax(110px,135px) minmax(0,1fr)}
}
@media(max-width:1000px){
 .cohort-report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cohort-report-context{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cohort-report-context>div:nth-child(3n){border-right:1px solid #d7e4ef}
 .cohort-report-context>div:nth-child(2n){border-right:0}
 .assessment-overview-grid{grid-template-columns:1fr}
 .assessment-donut{margin:auto}
}
@media(max-width:700px){
 .cohort-report-document{padding:8px}
 .cohort-report-cover{grid-template-columns:1fr}
 .cohort-report-generated{grid-template-columns:1fr}
 .cohort-report-context,.cohort-report-metrics{grid-template-columns:1fr}
 .assessment-capture-progress{grid-template-columns:1fr}
 .learner-progress-card summary{grid-template-columns:1fr}
}

/* Phase 3A.2C.4A assessment count clarity and numeric table readability */
.assessment-count-explainer{margin:-2px 0 12px;color:#627488;font-size:11px;line-height:1.45}
.assessment-completion-table .cluster-label{display:block}
.assessment-completion-table .cluster-due-explanation{display:block;margin-top:3px;color:#718091;font-size:10px;line-height:1.3}
.compact-report-table th.report-number,.compact-report-table td.report-number{white-space:nowrap;overflow-wrap:normal;text-align:center;min-width:42px}
.compact-report-table th.report-result-not-captured{white-space:normal;min-width:116px;line-height:1.2}
.assessment-summary-list small{line-height:1.25}

/* Phase 3A.2D.1 read-only cohort purge audit */
.cohort-audit-intro .filter-bar { margin: 0; }
.cohort-audit-stats { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.cohort-audit-stats .stat { min-width: 0; }
@media (max-width: 760px) {
  .cohort-audit-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Phase 3A.2C.4B — assessment table rescale and numeric column readability */
.assessment-overview-grid{
    grid-template-columns:minmax(165px,180px) minmax(105px,120px) minmax(0,1fr);
    gap:12px;
}
.assessment-completion-table{
    width:100%;
    min-width:800px;
    table-layout:fixed;
}
.assessment-completion-table th,
.assessment-completion-table td{
    padding-left:8px;
    padding-right:8px;
}
.assessment-completion-table th:first-child,
.assessment-completion-table td:first-child{
    width:auto;
    min-width:280px;
}
.assessment-completion-table th.report-number,
.assessment-completion-table td.report-number{
    width:62px;
    min-width:62px;
    max-width:62px;
    white-space:nowrap !important;
    word-break:keep-all;
    overflow-wrap:normal !important;
    text-align:center;
}
.assessment-completion-table th.report-result-not-captured,
.assessment-completion-table td.report-result-not-captured{
    width:154px;
    min-width:154px;
    max-width:154px;
}
.assessment-summary-list span{
    padding:9px;
}
.assessment-donut{
    width:116px;
    height:116px;
}
.assessment-donut:after{
    inset:20px;
}
@media(max-width:1180px){
    .assessment-overview-grid{
        grid-template-columns:minmax(150px,170px) minmax(96px,110px) minmax(0,1fr);
        gap:10px;
    }
    .assessment-completion-table{
        min-width:780px;
    }
}
@media(max-width:920px){
    .assessment-overview-grid{
        grid-template-columns:1fr;
    }
    .assessment-summary-list{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
    .assessment-donut{
        margin:auto;
    }
}
@media(max-width:620px){
    .assessment-summary-list{
        grid-template-columns:1fr;
    }
}


/* Phase 3A.2C.6A: compact report controls and mode-specific selected-report summary */
.report-builder-toolbar {
    gap: 0.7rem;
    grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(96px, auto);
    padding: 0.8rem;
}

.report-builder-toolbar .form-field {
    margin: 0;
}

.report-reset-button {
    align-self: end;
    min-height: 42px;
    padding-inline: 1rem;
}

.report-filter-status {
    grid-column: 1 / -1;
    margin: 0;
}

.report-filter-status:empty {
    display: none !important;
}

.report-scope-summary {
    padding: 0.9rem;
}

.report-scope-title-row {
    margin-top: 0.65rem;
    padding-bottom: 0.75rem;
}

.report-scope-list {
    margin: 0.5rem 0 0.75rem;
}

.report-scope-list > div {
    padding: 0.45rem 0;
}

.report-scope-list > div[hidden] {
    display: none !important;
}

@media (max-width: 1180px) {
    .report-builder-toolbar {
        grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(96px, auto);
    }
}

@media (max-width: 820px) {
    .report-builder-toolbar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .report-reset-button {
        width: 100%;
    }
}

@media (max-width: 560px) {
    .report-builder-toolbar {
        grid-template-columns: 1fr;
    }
}

/* Phase 3A.2C.6B: management cluster outcomes and separate workplace progress */
.management-assessment-summary{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin:0 0 14px;
}
.management-assessment-summary article{
    display:flex;
    min-height:92px;
    flex-direction:column;
    justify-content:center;
    text-align:center;
    border:1px solid #dce6ef;
    border-radius:9px;
    padding:11px;
    background:#fbfdff;
}
.management-assessment-summary small,
.management-assessment-summary strong,
.management-assessment-summary span{display:block}
.management-assessment-summary small{color:#5f7081}
.management-assessment-summary strong{margin:4px 0;font-size:25px;color:#0f4b8c}
.management-assessment-summary span{font-size:10px;color:#738295;line-height:1.3}
.management-assessment-grid{
    display:grid;
    grid-template-columns:minmax(110px,135px) minmax(0,1fr);
    gap:14px;
    align-items:center;
}
.management-assessment-grid .assessment-donut small{
    max-width:88px;
    line-height:1.2;
}
.management-assessment-table{
    width:100%;
    min-width:900px;
    table-layout:fixed;
}
.management-assessment-table th:first-child,
.management-assessment-table td:first-child{width:260px}
.management-assessment-table th.report-number,
.management-assessment-table td.report-number{
    width:86px;
    min-width:86px;
    white-space:normal;
    text-align:center;
    overflow-wrap:normal;
    word-break:normal;
}
.management-assessment-table th.workplace-column,
.management-assessment-table td.workplace-column{
    background:#f7fbff;
}
.management-assessment-footnote{
    margin:10px 0 0;
    color:#627488;
    font-size:10px;
    line-height:1.45;
}
.learner-progress-card summary{
    grid-template-columns:minmax(150px,1.25fr) minmax(130px,1fr) 72px minmax(120px,.85fr) minmax(110px,.75fr) 78px;
    font-size:11px;
}
.learner-progress-card summary>span:not(.badge){color:#41566c}
.learner-management-overview{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    padding:12px;
}
.learner-management-overview>div{
    background:#f7f9fc;
    border-radius:7px;
    padding:9px;
}
.learner-management-overview small,
.learner-management-overview b{display:block}
.learner-management-overview small{font-size:10px;color:#738295;margin-bottom:3px}
.learner-management-overview b{font-size:11px;line-height:1.35}
.learner-assessment-detail-grid{
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
    gap:12px;
    padding:0 12px 12px;
}
.learner-assessment-detail-grid>div{
    min-width:0;
    border:1px solid #e0e8ef;
    border-radius:8px;
    padding:10px;
    background:#fff;
}
.learner-assessment-detail-grid h3{margin:0 0 8px}
.learner-cluster-outcome-table{min-width:620px}
.learner-workplace-table{min-width:500px}
.learner-cluster-outcome-table th:nth-child(2),
.learner-cluster-outcome-table td:nth-child(2),
.learner-workplace-table th:last-child,
.learner-workplace-table td:last-child{width:150px}
.learner-cluster-outcome-table .badge,
.learner-workplace-table .badge{white-space:nowrap}
.learner-workplace-table td small{margin-top:4px;color:#8a5b20}
@media(max-width:1180px){
    .management-assessment-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
    .management-assessment-grid{grid-template-columns:1fr}
    .management-assessment-grid .assessment-donut{margin:auto}
    .learner-progress-card summary{grid-template-columns:minmax(150px,1fr) minmax(120px,1fr) 70px minmax(110px,1fr)}
    .learner-progress-card summary>span:nth-of-type(4),
    .learner-progress-card summary>.badge{grid-column:auto}
    .learner-assessment-detail-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
    .management-assessment-summary{grid-template-columns:1fr 1fr}
    .learner-progress-card summary{grid-template-columns:1fr}
    .learner-management-overview{grid-template-columns:1fr}
}
@media print{
    .management-assessment-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
    .learner-assessment-detail-grid{grid-template-columns:1fr}
}

/* Phase 3A.2C.6B.1: compact cluster assessment presentation and one WM completion status */
.cluster-assessment-explainer{
    margin:0 0 12px;
    max-width:1180px;
    color:#52677d;
    font-size:11px;
    line-height:1.45;
}
.cluster-assessment-kpis{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:10px !important;
    margin:0 0 14px !important;
}
.cluster-assessment-kpis article{
    display:flex !important;
    min-width:0;
    min-height:82px;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:10px 12px;
    text-align:center;
    border:1px solid #dce6ef;
    border-radius:9px;
    background:#fbfdff;
}
.cluster-assessment-kpis small,
.cluster-assessment-kpis strong,
.cluster-assessment-kpis span{display:block}
.cluster-assessment-kpis small{color:#5f7081;font-size:11px;line-height:1.25}
.cluster-assessment-kpis strong{margin:4px 0;font-size:24px;line-height:1;color:#0f4b8c;white-space:nowrap}
.cluster-assessment-kpis span{color:#738295;font-size:10px;line-height:1.25}
.cluster-assessment-layout{
    display:grid !important;
    grid-template-columns:130px minmax(0,1fr) !important;
    gap:14px;
    align-items:center;
}
.cluster-assessment-donut{
    width:124px;
    height:124px;
    border-radius:50%;
    display:grid;
    place-content:center;
    text-align:center;
    background:conic-gradient(#17a36b var(--competent),#e7edf3 0);
    position:relative;
    margin:auto;
}
.cluster-assessment-donut:after{
    content:"";
    position:absolute;
    inset:22px;
    background:#fff;
    border-radius:50%;
}
.cluster-assessment-donut strong,
.cluster-assessment-donut small{position:relative;z-index:1;display:block}
.cluster-assessment-donut strong{font-size:25px;line-height:1;color:#0f4b8c}
.cluster-assessment-donut small{max-width:82px;margin:5px auto 0;font-size:10px;line-height:1.2;color:#41566c}
.cluster-assessment-table{
    width:100%;
    min-width:760px;
    table-layout:fixed;
}
.cluster-assessment-table th:first-child,
.cluster-assessment-table td:first-child{width:33%}
.cluster-assessment-table th.report-number,
.cluster-assessment-table td.report-number{
    width:auto;
    min-width:84px;
    text-align:center;
    white-space:nowrap;
}
.cluster-assessment-table th.workplace-column,
.cluster-assessment-table td.workplace-column{
    width:130px;
    background:#f7fbff;
}
.wm-completion{
    display:inline-flex;
    min-width:72px;
    justify-content:center;
    padding:4px 8px;
    border-radius:999px;
    font-weight:700;
    white-space:nowrap;
}
.wm-completion.is-complete{background:#d9f8e6;color:#0b6b42}
.wm-completion.is-incomplete{background:#fff0d8;color:#8a5700}
@media(max-width:1050px){
    .cluster-assessment-kpis{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
    .cluster-assessment-layout{grid-template-columns:1fr !important}
}
@media(max-width:620px){
    .cluster-assessment-kpis{grid-template-columns:1fr !important}
}
@media print{
    .cluster-assessment-kpis{grid-template-columns:repeat(4,minmax(0,1fr)) !important}
    .cluster-assessment-layout{grid-template-columns:120px minmax(0,1fr) !important}
    .cluster-assessment-table{min-width:0}
}

/* Phase 3A.2C.6B.3: stable cluster assessment summary cards and restored donut layout */
.cluster-assessment-summary-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) 142px;
    gap:16px;
    align-items:stretch;
    margin:0 0 14px;
}
.cluster-assessment-summary-cards{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    min-width:0;
}
.cluster-assessment-summary-card{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:12px;
    align-items:center;
    min-width:0;
    min-height:78px;
    padding:12px 14px;
    border:1px solid #dce6ef;
    border-radius:9px;
    background:#fbfdff;
}
.cluster-assessment-summary-card div,
.cluster-assessment-summary-card small,
.cluster-assessment-summary-card span{min-width:0;display:block}
.cluster-assessment-summary-card small{
    color:#243a56;
    font-size:11px;
    font-weight:700;
    line-height:1.3;
}
.cluster-assessment-summary-card span{
    margin-top:3px;
    color:#738295;
    font-size:10px;
    line-height:1.3;
}
.cluster-assessment-summary-card strong{
    color:#0f4b8c;
    font-size:24px;
    line-height:1;
    white-space:nowrap;
}
.cluster-assessment-summary-row .cluster-assessment-donut{
    align-self:center;
}
@media(max-width:900px){
    .cluster-assessment-summary-row{grid-template-columns:1fr}
    .cluster-assessment-summary-row .cluster-assessment-donut{grid-row:1;margin:auto}
}
@media(max-width:620px){
    .cluster-assessment-summary-cards{grid-template-columns:1fr}
}
@media print{
    .cluster-assessment-summary-row{grid-template-columns:minmax(0,1fr) 120px}
    .cluster-assessment-summary-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Phase 3A.2C.6B.4: remove technical summary copy while retaining a compact reliable donut */
.cluster-assessment-donut-only{
    display:flex;
    justify-content:center;
    align-items:center;
    margin:2px 0 14px;
}
.cluster-assessment-donut-only .assessment-donut{
    flex:0 0 auto;
}
@media (max-width:700px){
    .cluster-assessment-donut-only{margin-bottom:10px}
}

/* Phase 3A.2C.6B.7: distinguish report Monitor status from At Risk. */
.badge.report_monitor {
  background: #ede9fe;
  border-color: #c4b5fd;
  color: #5b21b6;
}


/* Phase 3A.2C.6B.8: report summary and status readability polish. */
.cohort-report-document span.badge.report_monitor,
.cohort-report-document .badge.report_monitor {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 6px 14px !important;
  border: 1px solid #c4b5fd !important;
  border-radius: 999px !important;
  background: #ede9fe !important;
  color: #5b21b6 !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  white-space: nowrap;
}
.cluster-assessment-table .cluster-phase-label {
  display: inline-block;
  font-weight: 800;
  color: #0b2447;
  line-height: 1.35;
}

/* Phase 3A.3A.2G — concise legacy module assessment summaries */
.legacy-module-summary-list {
  display: grid;
  gap: 8px;
}

.legacy-module-summary {
  border: 1px solid #e4ebf5;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.legacy-module-summary > summary {
  cursor: pointer;
  display: grid;
  grid-template-columns: minmax(240px, 1.3fr) minmax(430px, 2fr) auto;
  gap: 14px;
  align-items: center;
  list-style: none;
  padding: 10px 12px;
}

.legacy-module-summary > summary::-webkit-details-marker { display: none; }
.legacy-module-summary > summary::marker { content: ""; }

.legacy-module-summary > summary > strong {
  color: var(--navy);
  font-size: 0.88rem;
  line-height: 1.25;
}

.legacy-module-statuses {
  display: grid;
  grid-template-columns: repeat(3, minmax(120px, 1fr));
  gap: 8px;
}

.legacy-module-statuses > span {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.legacy-module-statuses small {
  color: var(--muted);
  font-size: 0.66rem;
  font-weight: 900;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.legacy-module-statuses .badge {
  justify-self: start;
  white-space: nowrap;
}

.legacy-module-toggle {
  color: var(--navy);
  font-size: 0.72rem;
  font-weight: 900;
  white-space: nowrap;
}

.legacy-module-toggle::before {
  content: "+ ";
}

.legacy-module-summary[open] .legacy-module-toggle::before {
  content: "− ";
}

.legacy-module-summary[open] > summary {
  background: #f8fbff;
  border-bottom: 1px solid #e4ebf5;
}

.legacy-module-evidence {
  padding: 9px 11px 11px;
}

@media (max-width: 1050px) {
  .legacy-module-summary > summary {
    grid-template-columns: 1fr auto;
  }

  .legacy-module-statuses {
    grid-column: 1 / -1;
    grid-row: 2;
  }
}

@media (max-width: 700px) {
  .legacy-module-statuses {
    grid-template-columns: 1fr;
  }
}

/* Phase 3A.3A.2H — compact legacy module summaries and conditional NYC evidence */
.legacy-module-summary-static,
.legacy-module-summary-expandable > summary {
  padding: 11px 13px;
}

.legacy-module-summary-static {
  display: block;
}

.legacy-module-summary-expandable > summary {
  grid-template-columns: minmax(0, 1fr) auto;
}

.legacy-module-summary-main {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.legacy-module-summary-main > strong {
  color: var(--navy);
  font-size: 0.9rem;
  line-height: 1.3;
}

.legacy-module-statuses {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
}

.legacy-module-statuses > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.legacy-module-statuses small {
  color: var(--text);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}

.legacy-module-toggle {
  align-self: center;
  border: 1px solid #d7e1ef;
  border-radius: 999px;
  padding: 6px 10px;
  background: #fff;
}

.legacy-module-toggle::before,
.legacy-module-summary[open] .legacy-module-toggle::before {
  content: "";
}

@media (max-width: 700px) {
  .legacy-module-summary-expandable > summary {
    grid-template-columns: 1fr;
  }

  .legacy-module-toggle {
    justify-self: start;
  }
}

/* Phase 3A.3B.1 legacy cohort report preview */
.legacy-report-module-list {
    display: grid;
    gap: 10px;
    margin-top: 14px;
}
.legacy-report-module-row {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto auto;
    gap: 16px;
    align-items: center;
    padding: 12px 14px;
    border: 1px solid var(--border-color, #dbe4f0);
    border-radius: 10px;
    background: #fff;
}
.legacy-report-module-row > span {
    white-space: nowrap;
}
@media (max-width: 900px) {
    .legacy-report-module-row {
        grid-template-columns: 1fr;
        gap: 8px;
    }
    .legacy-report-module-row > span {
        white-space: normal;
    }
}

/* Phase 3A.3B.1A — restore constrained provider logo after legacy report CSS merge */
.cohort-report-cover > .cohort-report-logo{
  min-width:0;
  max-width:160px;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:flex-start;
}
.cohort-report-cover > .cohort-report-logo img{
  display:block !important;
  width:140px !important;
  height:84px !important;
  max-width:100% !important;
  max-height:84px !important;
  object-fit:contain !important;
  object-position:left center;
  flex:0 0 auto;
}
@media(max-width:700px){
  .cohort-report-cover > .cohort-report-logo{
    max-width:140px;
    margin:0 auto;
    justify-content:center;
  }
  .cohort-report-cover > .cohort-report-logo img{
    width:130px !important;
    height:78px !important;
    object-position:center;
  }
}

/* Phase 3B.1B — Attendance Capture workflow redesign */
.attendance-capture-filter-polished {
  align-items: start;
  gap: 14px;
  grid-template-columns: minmax(210px, 0.9fr) minmax(360px, 1.7fr) minmax(170px, 0.65fr) auto;
  padding: 18px 20px;
}

.attendance-session-filter-field {
  min-width: 0;
}

.attendance-session-filter-field .form-field {
  width: 100%;
}

.attendance-session-filter-field select {
  width: 100%;
}

.attendance-captured-disclosure {
  margin-top: 7px;
  position: relative;
}

.attendance-captured-disclosure > summary {
  color: #174ea6;
  cursor: pointer;
  font-size: 0.83rem;
  font-weight: 750;
  list-style: none;
  width: max-content;
}

.attendance-captured-disclosure > summary::-webkit-details-marker {
  display: none;
}

.attendance-captured-disclosure > summary::after {
  content: "⌄";
  display: inline-block;
  margin-left: 6px;
  transition: transform 0.18s ease;
}

.attendance-captured-disclosure[open] > summary::after {
  transform: rotate(180deg);
}

.attendance-captured-menu {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 14px 35px rgba(7, 25, 64, 0.14);
  display: grid;
  gap: 2px;
  left: 0;
  margin-top: 6px;
  max-height: 250px;
  min-width: min(620px, 80vw);
  overflow-y: auto;
  padding: 7px;
  position: absolute;
  top: 100%;
  z-index: 30;
}

.attendance-captured-menu a {
  align-items: center;
  border-radius: 8px;
  color: #10264a;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 8px 10px;
  text-decoration: none;
}

.attendance-captured-menu a:hover,
.attendance-captured-menu a[aria-current="page"] {
  background: #eef5ff;
}

.attendance-captured-menu small {
  color: var(--muted);
  white-space: nowrap;
}

.attendance-filter-actions {
  align-items: end;
  align-self: start;
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  padding-top: 25px;
}

.attendance-filter-actions .btn {
  min-height: 46px;
  white-space: nowrap;
}

.attendance-dashboard-link span {
  font-size: 1rem;
}

.attendance-capture-panel-polished {
  border-radius: 16px;
  overflow: hidden;
}

.attendance-session-summary {
  align-items: center;
  background: #fff;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 16px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: 20px 22px;
}

.attendance-session-icon {
  align-items: center;
  background: #07124d;
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  font-size: 1.3rem;
  height: 54px;
  justify-content: center;
  width: 54px;
}

.attendance-session-title-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.attendance-session-title-row h2 {
  color: #071d42;
  font-size: 1.12rem;
  line-height: 1.3;
  margin: 0;
}

.attendance-session-state {
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  padding: 5px 9px;
  text-transform: uppercase;
}

.attendance-session-state.is-required {
  background: #e7f0ff;
  color: #1359c7;
}

.attendance-session-state.is-captured {
  background: #dcfce7;
  color: #087b45;
}

.attendance-session-meta {
  align-items: center;
  color: #5f6f88;
  display: flex;
  flex-wrap: wrap;
  font-size: 0.86rem;
  gap: 9px 20px;
  margin-top: 7px;
}

.attendance-session-meta span {
  align-items: center;
  display: inline-flex;
  gap: 6px;
}

.attendance-session-meta b {
  color: #365a92;
  font-weight: 700;
}

.attendance-session-actions {
  display: flex;
  gap: 10px;
}

.attendance-session-actions .btn {
  min-height: 44px;
  white-space: nowrap;
}

.attendance-mark-all {
  border-color: #a8dcc0;
  color: #167a45;
}

.attendance-mark-all:hover,
.attendance-mark-all:focus-visible {
  background: #ecfdf3;
  border-color: #68c996;
}

.attendance-table-wrap {
  max-height: min(64vh, 720px);
  overflow: auto;
}

.attendance-capture-table-polished {
  min-width: 1040px;
}

.attendance-capture-table-polished thead th {
  background: #f3f6fb;
  box-shadow: inset 0 -1px 0 #dbe3ef;
  color: #071d42;
  font-size: 0.76rem;
  letter-spacing: 0.035em;
  position: sticky;
  text-transform: uppercase;
  top: 0;
  z-index: 5;
}

.attendance-capture-table-polished thead th small {
  color: #7a879b;
  font-size: 0.66rem;
  font-weight: 500;
  letter-spacing: 0;
  margin-left: 4px;
  text-transform: none;
}

.attendance-capture-table-polished td {
  padding-bottom: 12px;
  padding-top: 12px;
}

.attendance-row-number {
  color: #64748b;
  text-align: center;
  width: 44px;
}

.attendance-learner-cell {
  align-items: center;
  display: flex;
  gap: 12px;
}

.attendance-learner-cell > span:last-child {
  display: grid;
  gap: 3px;
}

.attendance-learner-cell strong {
  color: #071d42;
}

.attendance-learner-cell small,
.attendance-host,
.attendance-source {
  display: block;
  font-size: 0.78rem;
}

.attendance-avatar {
  align-items: center;
  border-radius: 50%;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 0.75rem;
  font-weight: 850;
  height: 38px;
  justify-content: center;
  width: 38px;
}

.attendance-avatar.avatar-tone-1 { background: #dbeafe; color: #1d4ed8; }
.attendance-avatar.avatar-tone-2 { background: #dcfce7; color: #15803d; }
.attendance-avatar.avatar-tone-3 { background: #fef3c7; color: #b45309; }
.attendance-avatar.avatar-tone-4 { background: #ede9fe; color: #6d28d9; }
.attendance-avatar.avatar-tone-5 { background: #fce7f3; color: #be185d; }

.attendance-employer {
  color: #10264a;
  display: block;
  font-size: 0.9rem;
}

.attendance-current-chip {
  border-radius: 8px;
  display: inline-flex;
  font-size: 0.78rem;
  font-weight: 700;
  padding: 6px 9px;
}

.attendance-current-chip.status-empty { background: #f1f5f9; color: #64748b; }
.attendance-current-chip.status-present { background: #dcfce7; color: #087b45; }
.attendance-current-chip.status-absent { background: #fee2e2; color: #b91c1c; }
.attendance-current-chip.status-late { background: #fef3c7; color: #a16207; }
.attendance-current-chip.status-sick,
.attendance-current-chip.status-excused,
.attendance-current-chip.status-leave { background: #ede9fe; color: #6d28d9; }

.attendance-status-control {
  align-items: center;
  border: 1px solid #cfd8e6;
  border-radius: 8px;
  display: flex;
  min-width: 170px;
  padding-left: 10px;
  transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

.attendance-status-control:focus-within {
  border-color: #2a64c8;
  box-shadow: 0 0 0 3px rgba(42, 100, 200, 0.12);
}

.attendance-status-control select {
  background: transparent;
  border: 0;
  box-shadow: none;
  min-width: 145px;
  padding-left: 8px;
}

.attendance-status-dot {
  background: #94a3b8;
  border-radius: 50%;
  flex: 0 0 auto;
  height: 9px;
  width: 9px;
}

.attendance-status-control[data-status="present"] .attendance-status-dot { background: #27ae60; }
.attendance-status-control[data-status="absent"] .attendance-status-dot { background: #e11d48; }
.attendance-status-control[data-status="late"] .attendance-status-dot { background: #f4b000; }
.attendance-status-control[data-status="sick"] .attendance-status-dot { background: #f59e0b; }
.attendance-status-control[data-status="excused"] .attendance-status-dot,
.attendance-status-control[data-status="leave"] .attendance-status-dot { background: #9b7aea; }

.attendance-comment-control {
  align-items: center;
  display: flex;
  min-width: 230px;
  position: relative;
}

.attendance-comment-control input {
  border-radius: 8px;
  min-width: 230px;
  padding-right: 32px;
  width: 100%;
}

.attendance-comment-control.is-disabled input {
  background: #f8fafc;
  border-color: #e2e8f0;
  color: #94a3b8;
  cursor: not-allowed;
}

.attendance-comment-lock {
  color: #94a3b8;
  font-size: 0.75rem;
  pointer-events: none;
  position: absolute;
  right: 10px;
}

.attendance-capture-actions-polished {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.attendance-capture-actions-polished > div {
  display: flex;
  gap: 8px;
}

@media (max-width: 1180px) {
  .attendance-capture-filter-polished {
    grid-template-columns: minmax(200px, 0.9fr) minmax(320px, 1.5fr) minmax(160px, 0.7fr);
  }
  .attendance-filter-actions {
    grid-column: 1 / -1;
    padding-top: 0;
  }
}

@media (max-width: 860px) {
  .attendance-capture-filter-polished {
    grid-template-columns: 1fr;
  }
  .attendance-filter-actions {
    align-items: stretch;
    flex-wrap: wrap;
  }
  .attendance-filter-actions .btn {
    flex: 1 1 170px;
  }
  .attendance-session-summary {
    align-items: start;
    grid-template-columns: auto 1fr;
  }
  .attendance-session-actions {
    grid-column: 1 / -1;
    width: 100%;
  }
  .attendance-session-actions .btn {
    flex: 1;
  }
  .attendance-captured-menu {
    min-width: min(560px, 92vw);
  }
  .attendance-capture-actions-polished {
    align-items: stretch;
    flex-direction: column;
  }
  .attendance-capture-actions-polished > div {
    width: 100%;
  }
  .attendance-capture-actions-polished .btn {
    flex: 1;
  }
}


.feedback-filter-card {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.feedback-filter-card .form-field {
  min-width: min(200px, 100%);
}

.feedback-filter-card .filter-actions {
  align-self: end;
}

.feedback-learner-panel .panel-head,
.feedback-captured-panel .panel-head {
  display: grid;
  gap: 4px;
}

.feedback-learner-table th,
.feedback-learner-table td,
.feedback-captured-panel .data-table th,
.feedback-captured-panel .data-table td {
  vertical-align: top;
}

.feedback-learner-table .badge,
.feedback-captured-panel .badge {
  white-space: nowrap;
}

@media (max-width: 1024px) {
  .feedback-filter-card {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .feedback-filter-card {
    grid-template-columns: 1fr;
  }
}


/* UIUX 1A — sidebar navigation and interaction polish.
   Presentation-only overrides: routes, permissions and business logic remain unchanged. */
@media (min-width: 1051px) {
  .app {
    grid-template-columns: 252px 1fr;
  }

  .app.sidebar-collapsed {
    grid-template-columns: 0 1fr;
  }
}

.sidebar {
  padding: 18px 14px;
}

.sidebar .brand {
  min-height: 76px;
  margin: 0 0 14px;
  padding: 8px 10px 12px;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
}

.sidebar .brand img {
  width: 108px;
  max-height: 68px;
  object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: 0.96;
}

.sidebar .nav {
  gap: 3px;
}

.sidebar .nav-main-link,
.sidebar .nav-group > summary {
  min-height: 42px;
  border-left: 3px solid transparent;
  border-radius: 9px;
  padding: 8px 10px;
  transition:
    background-color 0.18s ease,
    color 0.18s ease,
    border-color 0.18s ease,
    box-shadow 0.18s ease;
}

.sidebar .nav-main-link {
  font-size: 0.92rem;
  font-weight: 750;
}

.sidebar .nav-group > summary {
  color: rgba(255,255,255,0.68);
  font-size: 0.69rem;
  font-weight: 850;
  gap: 9px;
  letter-spacing: 0.075em;
}

.sidebar .nav-group > summary:hover,
.sidebar .nav-group > summary:focus-visible,
.sidebar .nav-group.active > summary,
.sidebar .nav-group[open] > summary {
  color: #fff;
  background: rgba(255,255,255,0.055);
}

.sidebar .nav-main-link:hover {
  background: rgba(255,255,255,0.065);
}

.sidebar .nav-main-link.active {
  color: #fff;
  background: rgba(70, 93, 224, 0.22);
  border-left-color: #8ba0ff;
  box-shadow: none;
}

.sidebar .nav-group-links {
  gap: 1px;
  padding: 3px 0 6px 42px;
}

.sidebar .nav-group-links > a {
  padding: 7px 10px;
  border-radius: 7px;
  color: rgba(255,255,255,0.76);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25;
  transition: background-color 0.16s ease, color 0.16s ease;
}

.sidebar .nav-group-links > a:hover {
  color: #fff;
  background: rgba(255,255,255,0.055);
}

.sidebar .nav-group-links > a.active {
  color: #fff;
  background: rgba(255,255,255,0.085);
  box-shadow: inset 2px 0 0 rgba(139,160,255,0.9);
}

.sidebar .nav-group[open] > .nav-group-links {
  animation: intaka-nav-reveal 0.18s ease-out;
}

@keyframes intaka-nav-reveal {
  from {
    opacity: 0;
    transform: translateY(-3px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.sidebar .nav-account-group {
  margin-top: 3px;
}

.sidebar .nav-diagnostics-group > summary {
  min-height: 36px;
  margin-top: 2px;
  padding-left: 8px;
  font-size: 0.68rem;
}

.sidebar .nav-diagnostics-group .nav-group-links {
  padding-left: 31px;
}

.sidebar .role-box {
  margin-top: 14px;
  padding: 13px 14px;
  border-radius: 10px;
  background: rgba(255,255,255,0.065);
}

.sidebar .role-box strong {
  font-size: 0.9rem;
}

.sidebar .role-box small,
.sidebar .role-box span {
  font-size: 0.78rem;
}

#attendance-capture-filter {
  scroll-margin-top: 16px;
}

@media (max-width: 1050px) {
  .sidebar {
    padding: 16px 18px 20px;
  }

  .sidebar .brand {
    min-height: 70px;
    padding-top: 4px;
    padding-bottom: 10px;
  }

  .sidebar .brand img {
    width: 104px;
    max-height: 64px;
  }

  .sidebar .nav {
    gap: 4px;
  }

  .sidebar .nav-main-link,
  .sidebar .nav-group > summary {
    min-height: 44px;
  }

  .sidebar .nav-group-links {
    padding-left: 44px;
  }
}

@media (max-width: 700px) {
  .sidebar {
    padding-left: 20px;
    padding-right: 20px;
  }

  .sidebar .brand {
    margin-bottom: 10px;
  }

  .sidebar .nav-main-link {
    font-size: 0.96rem;
  }

  .sidebar .nav-group > summary {
    font-size: 0.72rem;
  }

  .sidebar .nav-group-links > a {
    padding-top: 8px;
    padding-bottom: 8px;
    font-size: 0.91rem;
  }

  .sidebar .role-box {
    margin-top: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sidebar .nav-group[open] > .nav-group-links {
    animation: none;
  }

  .sidebar .nav-main-link,
  .sidebar .nav-group > summary,
  .sidebar .nav-group-links > a {
    transition: none;
  }
}

/* UIUX 1B — header / top-bar polish.
   Keeps the accepted UIUX 1A sidebar intact while reducing header height,
   especially on mobile, by consolidating account actions into a compact menu. */
.topbar {
  padding: 16px 28px;
  gap: 16px;
}

.topbar-title h1 {
  line-height: 1.12;
}

.topbar-title p {
  margin-top: 4px;
  font-size: 0.95rem;
}

.topbar-actions {
  margin-left: auto;
  flex: 0 0 auto;
  min-width: 0;
}

.account-menu {
  position: relative;
  z-index: 25;
}

.account-menu > summary {
  list-style: none;
}

.account-menu > summary::-webkit-details-marker {
  display: none;
}

.account-trigger {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  max-width: min(430px, 100%);
  padding: 5px 12px 5px 5px;
  border: 1px solid #dbe4ff;
  border-radius: 999px;
  background: #fff;
  color: var(--navy);
  cursor: pointer;
  box-shadow: var(--shadow-soft);
  transition: box-shadow 0.16s ease, border-color 0.16s ease, transform 0.16s ease;
}

.account-trigger:hover,
.account-menu[open] > .account-trigger {
  border-color: #c7d3ff;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.12);
}

.account-trigger:focus-visible {
  outline: 2px solid rgba(59, 130, 246, 0.35);
  outline-offset: 3px;
}

.account-trigger .avatar,
.account-panel-summary .avatar {
  flex: 0 0 auto;
}

.account-trigger-copy {
  min-width: 0;
  display: grid;
  gap: 1px;
}

.account-trigger-copy strong {
  display: block;
  color: var(--navy);
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.account-trigger-copy small {
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.2;
}

.account-trigger-caret {
  width: 16px;
  height: 16px;
  margin-left: 2px;
  color: var(--muted);
  flex: 0 0 auto;
  transition: transform 0.16s ease, color 0.16s ease;
}

.account-menu[open] .account-trigger-caret {
  color: var(--navy);
  transform: rotate(180deg);
}

.account-panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: min(320px, 88vw);
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.18);
  overflow: hidden;
}

.account-panel-summary {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px;
  align-items: center;
  padding: 16px;
  border-bottom: 1px solid var(--line);
}

.account-panel-summary .avatar {
  width: 44px;
  height: 44px;
  font-size: 1rem;
}

.account-panel-copy {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.account-panel-copy strong {
  color: var(--navy);
  font-size: 0.94rem;
  font-weight: 800;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.account-panel-copy span {
  color: var(--text);
  font-size: 0.88rem;
  font-weight: 700;
  line-height: 1.25;
}

.account-panel-copy small {
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.2;
}

.account-panel-links {
  display: grid;
  gap: 4px;
  padding: 10px;
}

.account-panel-form {
  margin: 0;
}

.account-panel-link {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 12px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--navy);
  text-decoration: none;
  text-align: left;
  font: inherit;
  font-size: 0.94rem;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.16s ease, color 0.16s ease;
}

.account-panel-link:hover,
.account-panel-link:focus-visible {
  background: var(--blue-soft);
}

.account-panel-link:focus-visible {
  outline: none;
}

.menu-icon {
  width: 18px;
  height: 18px;
  color: var(--muted);
  flex: 0 0 auto;
}

@media (max-width: 700px) {
  .topbar {
    align-items: flex-start;
    flex-wrap: nowrap;
    gap: 12px;
    padding: 14px 16px;
  }

  .topbar-title {
    flex: 1 1 auto;
    min-width: 0;
  }

  .topbar h1 {
    font-size: clamp(1.15rem, 6vw, 1.8rem);
  }

  .topbar p {
    font-size: 0.9rem;
  }

  .topbar-actions {
    width: auto;
    flex-direction: row;
    align-items: flex-start;
    justify-content: flex-end;
  }

  .account-trigger {
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    padding: 0;
    border-radius: 50%;
    justify-content: center;
  }

  .account-trigger .avatar {
    width: 44px;
    height: 44px;
  }

  .account-trigger-copy,
  .account-trigger-caret {
    display: none;
  }

  .account-panel {
    width: min(320px, calc(100vw - 32px));
    right: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .account-trigger,
  .account-trigger-caret,
  .account-panel-link {
    transition: none;
  }
}

/* UIUX 1C.1 — mobile sidebar no-flash boot state.
   The head marks small screens before first paint; portal.js removes this marker
   only after applying the accepted mobile-collapsed state. */
@media (max-width: 1050px) {
  html[data-mobile-nav-boot="closed"] .sidebar {
    display: none !important;
  }
}

/* UIUX 1C.2 — mobile sidebar viewport overlay.
   On tablet/mobile the accepted sidebar becomes a fixed, independently scrolling
   viewport layer so it opens at the user's current scroll position. */
@media (max-width: 1050px) {
  .sidebar {
    position: fixed;
    top: var(--intaka-mobile-topbar-height, 72px);
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 19;
    width: 100%;
    height: auto;
    max-height: calc(100vh - var(--intaka-mobile-topbar-height, 72px));
    max-height: calc(100dvh - var(--intaka-mobile-topbar-height, 72px));
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .app:not(.sidebar-collapsed) .sidebar {
    display: block;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .app.sidebar-collapsed .sidebar {
    display: none;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

/* UIUX 2D.1 — Translucent geometric sidebar treatment.
 * Visual-only: preserves existing navigation structure, sizing and behaviour.
 */
.sidebar,
.learner-portal-refresh .learner-sidebar {
  isolation: isolate;
  background-color: #08294e;
  background-image:
    linear-gradient(180deg, rgba(7,11,56,.98) 0%, rgba(8,47,88,.97) 55%, rgba(8,72,119,.94) 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='900' viewBox='0 0 320 900'%3E%3Cg fill='none' stroke='%23BBD7F6' stroke-opacity='.11' stroke-width='1'%3E%3Cpath d='M28 56 112 22 186 84 280 50M112 22l22 126 96 54 50-152M28 56l64 166 42-74M92 222l98 84 84-38M134 148l56 158-44 130 116 72M92 222l54 214-96 92M146 436l-96 92 88 94 124-114M50 528l36 192 52-98 96 94M138 622l-18 202 114-108 54 118M86 720l34 104-78 52M234 716l54 118'/%3E%3C/g%3E%3Cg fill='%23D4E7FA' fill-opacity='.13'%3E%3Ccircle cx='112' cy='22' r='3'/%3E%3Ccircle cx='186' cy='84' r='2.5'/%3E%3Ccircle cx='134' cy='148' r='2.5'/%3E%3Ccircle cx='92' cy='222' r='3'/%3E%3Ccircle cx='190' cy='306' r='2.5'/%3E%3Ccircle cx='146' cy='436' r='3'/%3E%3Ccircle cx='50' cy='528' r='2.5'/%3E%3Ccircle cx='138' cy='622' r='3'/%3E%3Ccircle cx='86' cy='720' r='2.5'/%3E%3Ccircle cx='234' cy='716' r='3'/%3E%3Ccircle cx='120' cy='824' r='2.5'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat: no-repeat, repeat-y;
  background-size: 100% 100%, 100% auto;
  background-position: center, top center;
}

.sidebar::before,
.learner-portal-refresh .learner-sidebar::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle at 82% 16%, rgba(98,173,232,.10), transparent 24%),
    radial-gradient(circle at 10% 72%, rgba(72,148,214,.08), transparent 28%);
}

/* Glass-like selection states: keep the existing hierarchy, soften the blocks. */
.sidebar .nav-main-link.active,
.sidebar .nav-group.active > summary,
.sidebar .nav-group[open] > summary,
.sidebar .nav-group-links > a.active,
.learner-portal-refresh .learner-nav a.active {
  background: rgba(75, 122, 214, .25) !important;
  border-color: rgba(156, 191, 255, .76) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.055), 0 8px 22px rgba(4,12,42,.10) !important;
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
}

.sidebar .nav-main-link:hover,
.sidebar .nav-group > summary:hover,
.sidebar .nav-group-links > a:hover,
.learner-portal-refresh .learner-nav a:hover {
  background: rgba(255,255,255,.065) !important;
}

.attendance-evidence-provided{display:inline-flex;margin-top:5px;padding:3px 8px;border-radius:999px;background:#eaf7ef;color:#17633a;font-size:12px;font-weight:800}
