:root {
  --ink: #152830;
  --muted: #4f626a;
  --line: #dce8eb;
  --soft: #f6fafb;
  --panel: #ffffff;
  --brand: #075f5d;
  --brand-strong: #06484a;
  --nav: #082e33;
  --nav-soft: #15474d;
  --warn: #8a6425;
  --danger: #b42318;
  --ok: #16754c;
  --scv-teal-bg: #edf8f5;
  --scv-teal-card: #dff1eb;
  --scv-teal-border: #9ccabd;
  --scv-sand-bg: #fbf5e8;
  --scv-sand-card: #fffaf0;
  --scv-sand-border: #d9c6a2;
  --scv-grey-bg: #f4f7f8;
  --scv-grey-card: #ffffff;
  --scv-grey-border: #cbd9dd;
  --shadow: 0 14px 34px rgba(22, 45, 54, .08);
  --shadow-soft: 0 8px 22px rgba(22, 45, 54, .06);
}

* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: "Segoe UI", Arial, Helvetica, sans-serif;
  font-size: 13px;
  line-height: 1.25;
  color: var(--ink);
  background:
    linear-gradient(135deg, rgba(7,95,93,.08), transparent 34%),
    linear-gradient(315deg, rgba(8,46,51,.05), transparent 32%),
    #eef5f7;
}
button, input, select, textarea { font: inherit; }
button {
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  min-height: 30px;
  padding: 5px 10px;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 650;
  box-shadow: 0 1px 0 rgba(22, 45, 54, .03);
  transition: background .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
}
button:hover {
  border-color: #b8cbd0;
  box-shadow: 0 6px 16px rgba(22, 45, 54, .08);
}
button.primary { background: linear-gradient(180deg, #08706d, var(--brand)); border-color: var(--brand); color: #fff; }
button.primary:hover { background: var(--brand-strong); }
button.danger { color: var(--danger); }
button:disabled { opacity: .55; cursor: not-allowed; }
input, select, textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 6px;
  min-height: 30px;
  padding: 5px 8px;
  background: #fff;
  box-shadow: inset 0 1px 0 rgba(22,45,54,.02);
}
input:focus, select:focus, textarea:focus {
  outline: 2px solid rgba(7,95,93,.14);
  border-color: rgba(7,95,93,.45);
}
input:disabled {
  background: #eef4f5;
  color: var(--brand-strong);
  font-weight: 800;
}
label { display: grid; gap: 6px; color: #3f535b; font-size: 13px; font-weight: 650; }
.workspace-switcher {
  min-width: 168px;
  font-size: 11px;
  color: var(--muted);
}
.workspace-switcher select {
  min-height: 30px;
  font-weight: 800;
  color: var(--brand-strong);
}
.workspace-badges,
.workspace-checks {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.workspace-badges span {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 2px 7px;
  border: 1px solid #b9dad4;
  border-radius: 999px;
  background: #effaf7;
  color: var(--brand-strong);
  font-size: 11px;
  font-weight: 800;
}
.workspace-badges span.trial {
  border-color: #f5c2d7;
  background: #fff1f6;
  color: #8a1649;
}
.compact-workspace-badges {
  flex-wrap: nowrap;
  max-width: 290px;
  overflow: hidden;
}
.compact-workspace-badges span {
  max-width: 76px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.compact-workspace-badges .more-workspaces {
  flex: 0 0 auto;
  max-width: none;
}
.college-colour-dot {
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-right: 7px;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 4px;
  vertical-align: -2px;
}
.no-access-badge {
  background: #fff1f2 !important;
  border-color: #fecdd3 !important;
  color: #b42318 !important;
}
.workspace-checks .check-row {
  min-width: 170px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 7px 9px;
  background: #fbfefe;
}
.college-filter-tabs {
  margin: 10px 0 0;
}
.login {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
}
.login-card {
  width: min(420px, 100%);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 28px;
  box-shadow: 0 18px 50px rgba(31, 49, 55, .12);
}
.login-card-wide {
  width: min(520px, 100%);
}
.login-password-change {
  margin-top: 4px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.workspace-choice-screen {
  align-items: center;
}
.workspace-choice-card {
  width: min(860px, 100%);
}
.workspace-choice-card h1 {
  margin: 0 0 4px;
  font-size: 24px;
}
.workspace-choice-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
}
.workspace-choice-tile {
  display: grid;
  grid-template-columns: 42px 1fr;
  grid-template-rows: auto auto;
  align-items: center;
  gap: 2px 12px;
  min-height: 76px;
  text-align: left;
  background: #ffffff;
  border: 1px solid #cfe1df;
  border-radius: 8px;
  padding: 12px;
  box-shadow: 0 10px 24px rgba(9, 67, 63, 0.08);
}
.workspace-choice-tile:hover {
  border-color: var(--brand);
  transform: translateY(-1px);
}
.workspace-choice-mark {
  grid-row: 1 / span 2;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
}
.workspace-choice-tile b {
  color: var(--ink);
}
.workspace-choice-tile small {
  color: var(--muted);
}
.mini-section-title {
  color: var(--brand-strong);
  font-weight: 900;
  font-size: 14px;
}
.brand {
  font-size: 34px;
  font-weight: 800;
  letter-spacing: 0;
  color: var(--brand-strong);
  margin-bottom: 6px;
}
.subtle { color: var(--muted); }
.stack { display: grid; gap: 14px; }
.row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.spread { display: flex; justify-content: space-between; gap: 12px; align-items: center; flex-wrap: wrap; }
.shell {
  display: grid;
  grid-template-columns: 218px 1fr;
  min-height: 100vh;
  padding: 12px;
  gap: 12px;
  --college-colour: var(--brand);
}
.sidebar {
  background:
    radial-gradient(circle at 22% 0%, color-mix(in srgb, var(--college-colour) 24%, transparent), transparent 34%),
    linear-gradient(180deg, #06282d, #0b3a40 56%, #0a3035);
  color: #fff;
  padding: 18px 13px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 13px;
  box-shadow: 0 18px 38px rgba(6, 40, 45, .22);
}
.side-brand-block {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 6px 14px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.side-mark {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 9px;
  background: #ffffff;
  color: var(--brand-strong);
  font-weight: 800;
  font-size: 21px;
}
.side-title { font-size: 24px; font-weight: 850; line-height: 1; }
.nav { display: grid; gap: 5px; }
.nav-label {
  margin: 12px 8px 4px;
  color: rgba(255,255,255,.58);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0;
}
.nav button {
  display: flex;
  align-items: center;
  gap: 10px;
  text-align: left;
  background: transparent;
  color: #ecf5f4;
  border-color: transparent;
  min-height: 32px;
  padding: 6px 9px;
  border-radius: 8px;
  font-weight: 750;
}
.nav button.active, .nav button:hover {
  background: rgba(255,255,255,.14);
  border-color: color-mix(in srgb, var(--college-colour) 54%, rgba(255,255,255,.14));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}
.side-user {
  display: grid;
  gap: 3px;
  margin-top: auto;
  padding: 12px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
  background: rgba(255,255,255,.08);
}
.side-user b { font-size: 13px; }
.side-user span { font-size: 12px; color: rgba(255,255,255,.68); }
.logout-button {
  background: rgba(255,255,255,.08);
  color: #fff;
  border-color: rgba(255,255,255,.16);
  border-radius: 9px;
}
.logout-top {
  background: #fff;
  border-color: #cbd8dd;
  color: var(--brand-strong);
  font-weight: 700;
}
.logout-top:hover {
  border-color: var(--brand);
  background: #e9f6f4;
}
.content {
  min-width: 0;
  padding: 0;
}
.topbar, .panel {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 10px;
}
.topbar {
  min-height: 70px;
  padding: 12px 12px 12px 16px;
  margin-bottom: 12px;
  box-shadow: var(--shadow-soft);
  border-top: 3px solid var(--college-colour);
}
.panel { padding: 13px; margin-bottom: 12px; min-width: 0; box-shadow: var(--shadow-soft); }
.compact-panel { padding: 11px; margin-bottom: 10px; }
.compact-panel h2 { margin-bottom: 4px; }
.intro-panel p { max-width: 760px; }
h1, h2, h3 { margin: 0; letter-spacing: 0; }
h1 { font-size: 21px; line-height: 1.05; }
h2 { font-size: 17px; margin-bottom: 6px; }
h3 { font-size: 15px; margin-bottom: 6px; }
.page-kicker {
  margin-bottom: 2px;
  color: var(--brand-strong);
  font-size: 10px;
  font-weight: 850;
  text-transform: uppercase;
}
.top-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.melbourne-clock {
  display: grid;
  gap: 1px;
  min-width: 164px;
  padding: 7px 10px;
  border: 1px solid #bfe6df;
  border-left: 4px solid #0f766e;
  border-radius: 8px;
  background: linear-gradient(180deg, #ecfdf5, #ffffff);
  color: var(--brand-strong);
}
.melbourne-clock span {
  color: #0f766e;
  font-size: 10px;
  font-weight: 850;
  text-transform: uppercase;
}
.melbourne-clock b {
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.signed-in-card {
  display: grid;
  gap: 1px;
  min-width: 150px;
  padding: 7px 10px;
  border-left: 4px solid var(--college-colour);
  background: linear-gradient(180deg, #f3fbfa, #ffffff);
  color: var(--brand-strong);
  border-radius: 0 8px 8px 0;
}
.signed-in-card span,
.signed-in-card small {
  color: var(--muted);
  font-size: 10px;
}
.signed-in-card b {
  font-size: 12px;
}
.staff-home-banner {
  display: grid;
  grid-template-columns: minmax(320px, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 22px 18px;
  margin-bottom: 12px;
  border: 1px solid #cddfe4;
  border-radius: 10px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.98), rgba(255,255,255,.88)),
    linear-gradient(120deg, rgba(7,95,93,.12), rgba(30,107,214,.09));
  box-shadow: var(--shadow);
}
.welcome-copy span {
  display: inline-flex;
  margin-bottom: 6px;
  color: var(--brand-strong);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}
.welcome-copy h2 {
  margin: 0 0 4px;
  font-size: 24px;
}
.welcome-copy p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}
.home-status-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(104px, 1fr));
  gap: 6px;
  min-width: min(430px, 100%);
}
.home-status-strip div {
  display: grid;
  gap: 3px;
  padding: 10px 12px;
  border: 1px solid rgba(7,95,93,.16);
  border-radius: 9px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 8px 18px rgba(22,45,54,.04);
}
.home-status-strip span {
  color: var(--muted);
  font-size: 12px;
}
.home-status-strip b {
  color: var(--ink);
  font-size: 16px;
}
.workspace-strip {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  margin-bottom: 14px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}
.workspace-strip div {
  display: grid;
  gap: 2px;
}
.workspace-strip span {
  color: var(--muted);
}
.software-section {
  margin-bottom: 18px;
}
.software-section-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 12px;
  margin-bottom: 7px;
}
.software-section-head h2 {
  margin: 0 0 2px;
  font-size: 17px;
}
.software-section-head span {
  color: var(--muted);
  font-size: 13px;
}
.software-tiles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
}
.home-hero {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  padding: 18px 20px;
  margin-bottom: 12px;
  border-radius: 8px;
  color: #fff;
  background: linear-gradient(135deg, #0f5a56, #2563eb);
  box-shadow: 0 18px 38px rgba(15,90,86,.18);
}
.home-hero h2 {
  margin: 4px 0 6px;
  font-size: 28px;
}
.home-hero p {
  margin: 0;
  color: rgba(255,255,255,.86);
}
.eyebrow {
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0;
  color: rgba(255,255,255,.72);
}
.hero-stat {
  display: grid;
  gap: 4px;
  min-width: 150px;
  padding: 14px;
  border: 1px solid rgba(255,255,255,.26);
  border-radius: 8px;
  background: rgba(255,255,255,.12);
}
.hero-stat span { color: rgba(255,255,255,.74); font-size: 12px; }
.hero-stat b { font-size: 20px; }
.home-section {
  margin-bottom: 16px;
}
.section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.section-heading h2 { margin: 0; }
.section-heading span { color: var(--muted); font-size: 13px; }
.portal-tiles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}
.portal-tile {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  min-height: 76px;
  text-align: left;
  padding: 12px 14px;
  border-radius: 10px;
  border-color: var(--line);
  background: linear-gradient(180deg, #ffffff, #fbfdfd);
  box-shadow: var(--shadow-soft);
}
.portal-tile:hover {
  border-color: var(--tile-accent);
  box-shadow: 0 16px 34px rgba(22,45,54,.10);
  transform: translateY(-1px);
}
.portal-tile.disabled {
  opacity: .62;
  transform: none;
}
.tile-icon {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: color-mix(in srgb, var(--tile-accent) 13%, white);
  color: var(--tile-accent);
  font-weight: 800;
}
.tile-body { display: grid; gap: 3px; min-width: 0; }
.tile-title { font-weight: 850; font-size: 14px; }
.tile-text { color: var(--muted); font-size: 12px; line-height: 1.28; }
.tile-action {
  color: var(--tile-accent);
  font-weight: 850;
  font-size: 13px;
  white-space: nowrap;
}
.tile-action::after { content: " >"; }
.admin-tiles .portal-tile { min-height: 76px; }
.login-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}
.login-summary div {
  display: grid;
  gap: 4px;
}
.login-summary span {
  color: var(--muted);
  font-size: 12px;
}
.empty-state {
  padding: 18px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  color: var(--muted);
  background: rgba(255,255,255,.7);
}
.grid { display: grid; gap: 14px; }
.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.two-span { grid-column: span 2; }
.three-span { grid-column: span 3; }
.four-span { grid-column: span 4; }
.table-wrap { max-width: 100%; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; min-width: 780px; }
th, td { border-bottom: 1px solid var(--line); text-align: left; padding: 5px 7px; vertical-align: middle; }
th { color: var(--muted); font-size: 12px; background: var(--soft); }
thead th:first-child { border-top-left-radius: 6px; }
thead th:last-child { border-top-right-radius: 6px; }
tbody tr:hover td { background: #fbfdfd; }
.user-table {
  min-width: 1120px;
  font-size: 13px;
}
.user-smart-toolbar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 10px;
  margin: 10px 0 8px;
  padding: 8px;
  border: 1px solid #cfe3e0;
  border-radius: 8px;
  background: #f3faf8;
}
.user-smart-toolbar label {
  flex: 1 1 420px;
  margin: 0;
  color: #25444a;
  font-size: 12px;
  font-weight: 850;
}
.user-smart-toolbar .inline-check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
  min-height: 34px;
  white-space: nowrap;
}
.user-smart-toolbar input {
  min-height: 34px;
  border-color: #aacac7;
  background: #fff;
}
.user-smart-toolbar .inline-check input {
  min-height: 0;
  width: auto;
}
.user-smart-toolbar span {
  color: var(--brand-strong);
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}
.user-sort-button {
  width: 100%;
  justify-content: flex-start;
}
.user-table-wrap {
  max-height: min(78vh, 940px);
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
}
.user-table th,
.user-table td {
  padding: 4px 7px;
  white-space: nowrap;
}
.user-table th {
  position: sticky;
  top: 0;
  z-index: 6;
}
.user-table th:nth-child(1),
.user-table td:nth-child(1) {
  position: sticky;
  left: 0;
  min-width: 105px;
  max-width: 105px;
  z-index: 5;
}
.user-table th:nth-child(2),
.user-table td:nth-child(2) {
  position: sticky;
  left: 105px;
  min-width: 105px;
  max-width: 105px;
  z-index: 5;
}
.user-table th:nth-child(1),
.user-table th:nth-child(2) {
  z-index: 8;
}
.user-table td:nth-child(1),
.user-table td:nth-child(2) {
  background: #fff;
  font-weight: 700;
}
.user-table tbody tr:hover td:nth-child(1),
.user-table tbody tr:hover td:nth-child(2) {
  background: #fbfdfd;
}
.user-table .actions {
  flex-wrap: nowrap;
  gap: 4px;
}
.user-table .actions button {
  padding: 5px 8px;
  min-height: 30px;
  font-size: 12px;
}
.user-table .pill { font-size: 11px; }
.user-colour-pill {
  display: inline-flex;
  align-items: center;
  max-width: 180px;
  min-height: 22px;
  padding: 2px 8px;
  border: 1px solid var(--user-pill-border);
  border-radius: 999px;
  background: var(--user-pill-bg);
  color: var(--user-pill-text);
  font-size: 12px;
  font-weight: 850;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: middle;
}
.compact-user-pill,
.trainer-name-pill {
  max-width: 150px;
  min-height: 20px;
  padding: 2px 7px;
  font-size: 11px;
}
.move-flow-cell .user-colour-pill,
.move-register-table .user-colour-pill,
.allocation-by-trainer .user-colour-pill {
  max-width: 130px;
}
.pill {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 2px 7px;
  border-radius: 999px;
  background: #eef4f6;
  color: var(--muted);
  font-size: 12px;
}
.pill.Active { background: #e5f6ee; color: var(--ok); }
.pill.Inactive, .pill.Locked { background: #fff1e6; color: var(--warn); }
.pill.Archived { background: #f4e8e8; color: var(--danger); }
.protected-admin-pill { background: #f3e8ff; color: #6b21a8; border: 1px solid #d8b4fe; }
.system-admin-pill { background: #e0f2fe; color: #075985; border: 1px solid #bae6fd; }
.action-note { display: inline-flex; align-items: center; min-height: 28px; font-weight: 800; color: #6b21a8; }
.notice { padding: 10px 12px; border-radius: 8px; background: #e9f6f4; color: var(--brand-strong); }
.action-needed {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 13px 14px;
  margin: 9px 0;
  border: 2px solid #a855f7;
  border-radius: 8px;
  background: #f5edff;
  color: #4c1d95;
  box-shadow: 0 8px 20px rgba(126, 34, 206, .12);
}
.action-needed-icon {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 30px;
  border-radius: 999px;
  background: #7e22ce;
  color: #fff;
  font-weight: 950;
  font-size: 18px;
}
.action-needed b {
  display: block;
  font-size: 16px;
  color: #3b0764;
}
.action-needed p {
  margin: 3px 0;
  font-size: 14px;
}
.action-needed small {
  display: block;
  color: #5b21b6;
  font-weight: 850;
}
.action-inline-message {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 7px 10px;
  border-radius: 8px;
  background: #f5edff;
  color: #4c1d95;
  font-weight: 850;
}
.error { padding: 10px 12px; border-radius: 8px; background: #fff1f0; color: var(--danger); }
.success { padding: 10px 12px; border-radius: 8px; background: #e5f6ee; color: var(--ok); }
.inline-message { display: inline-flex; align-items: center; min-height: 38px; }
.bulk-processing {
  gap: 5px;
  padding: 8px 10px;
  border-radius: 8px;
  background: #fff0f6;
  color: #7f1d4b;
  font-weight: 800;
}
.bulk-processing i {
  width: 6px;
  height: 20px;
  border-radius: 999px;
  background: #0f766e;
  animation: musicPulse .75s infinite ease-in-out;
}
.bulk-processing i:nth-child(3) { animation-delay: .1s; }
.bulk-processing i:nth-child(4) { animation-delay: .2s; }
.bulk-processing i:nth-child(5) { animation-delay: .3s; }
.bulk-processing i:nth-child(6) { animation-delay: .4s; }
@keyframes musicPulse {
  0%, 100% { transform: scaleY(.35); opacity: .45; }
  50% { transform: scaleY(1); opacity: 1; }
}

.veda-working-bar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  display: none;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 6px 12px;
  background: rgba(232, 250, 246, 0.98);
  border-bottom: 2px solid #0f766e;
  color: #063f3c;
  font-size: 14px;
  font-weight: 800;
  box-shadow: 0 10px 24px rgba(10, 59, 57, 0.18);
}

.veda-working-bar.show {
  display: flex;
}

.veda-working-bar.slow {
  background: #f5edff;
  border-bottom-color: #8b5cf6;
  color: #4c1d95;
}

.veda-working-bar em {
  font-style: normal;
  color: #7e22ce;
  font-weight: 900;
}

.veda-working-bar .veda-music-bars {
  width: 42px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.veda-working-bar .veda-music-bars i {
  width: 5px;
  height: 18px;
  border-radius: 999px;
  background: linear-gradient(180deg, #0f766e, #14b8a6);
  animation: veda-music-loader .72s infinite ease-in-out;
}

.veda-working-bar .veda-music-bars i:nth-child(2) { animation-delay: .08s; }
.veda-working-bar .veda-music-bars i:nth-child(3) { animation-delay: .16s; }
.veda-working-bar .veda-music-bars i:nth-child(4) { animation-delay: .24s; }
.veda-working-bar .veda-music-bars i:nth-child(5) { animation-delay: .32s; }
.veda-working-bar.slow .veda-music-bars i {
  background: linear-gradient(180deg, #7e22ce, #a855f7);
}

@keyframes veda-music-loader {
  0%, 100% { transform: scaleY(.35); opacity: .55; }
  50% { transform: scaleY(1); opacity: 1; }
}
.page-command-bar p { margin: 0; }
.section-title-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}
.section-title-row p { margin: 0; }
.work-panel {
  min-height: 48px;
}
.no-access-panel {
  display: grid;
  gap: 10px;
  max-width: 620px;
  padding: 18px;
}
.no-access-panel h2 { margin: 0; color: var(--brand-strong); }
.no-access-panel p { margin: 0; color: var(--muted); }

.scv-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
}
.scv-head h2,
.compact-panel h2 {
  color: var(--brand-strong);
  font-weight: 850;
}
.scv-head p,
.compact-panel p,
.scv-card p,
.scv-card .subtle {
  color: #4b5f67;
  font-size: 13px;
}
.scv-compact-title {
  margin-bottom: 8px;
}
.scv-compact-title h2 {
  font-size: 18px;
}
.scv-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
.scv-summary-grid div {
  display: grid;
  gap: 3px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: linear-gradient(180deg, #fff, #f7fbfb);
  box-shadow: var(--shadow-soft);
}
.scv-summary-grid span { color: var(--muted); font-size: 12px; }
.scv-summary-grid b { color: var(--brand-strong); font-size: 22px; line-height: 1; }
.slim-table-wrap table,
.slim-table {
  min-width: 900px;
  font-size: 12px;
}
.slim-table th,
.slim-table td {
  padding: 5px 7px;
  white-space: nowrap;
}
.slim-table th {
  color: #334a52;
  font-weight: 800;
}
.slim-table td {
  color: #172b33;
}
.status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 8px;
  border-radius: 999px;
  background: #edf4f6;
  color: var(--brand-strong);
  font-size: 12px;
  font-weight: 750;
}
.status-pill.approved { background: #e5f6ee; color: var(--ok); }
.status-pill.returned { background: #fff1f0; color: var(--danger); }
.status-pill.waiting { background: #fff6e7; color: var(--warn); }
.status-pill.saved {
  background: #e2f4ef;
  color: var(--brand-strong);
  border: 1px solid #a6d8cb;
}
.study-live-panel .section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.study-live-panel .pill-row {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 6px;
}
.study-filters {
  display: grid;
  grid-template-columns: minmax(200px, 1.2fr) minmax(90px, .45fr) minmax(130px, .7fr) minmax(180px, 1fr) minmax(130px, .65fr) minmax(110px, .55fr) minmax(100px, .45fr);
  gap: 8px;
  align-items: end;
  padding: 8px;
  margin: 8px 0 10px;
  border: 1px solid #c7dedb;
  border-radius: 8px;
  background: #eef8f6;
}
.study-filters label {
  margin: 0;
  color: #25444a;
  font-size: 12px;
  font-weight: 800;
}
.study-filters input,
.study-filters select {
  min-height: 32px;
  padding: 5px 8px;
  border-color: #aacac7;
  background: #ffffff;
  color: #10262e;
  font-size: 13px;
  font-weight: 650;
}
.study-filters input::placeholder { color: #6c8589; font-weight: 500; }
.pdi-details summary {
  cursor: pointer;
  color: var(--brand-strong);
}
.pdi-detail-card {
  display: grid;
  grid-template-columns: repeat(2, minmax(120px, 1fr));
  gap: 4px 8px;
  margin-top: 6px;
  padding: 8px;
  border: 1px solid #c7dedb;
  border-radius: 8px;
  background: #f4fbfa;
  color: #25444a;
  font-size: 12px;
  line-height: 1.25;
  min-width: 280px;
}
.study-register-table th {
  position: sticky;
  top: 0;
  z-index: 7;
  background: #eef5f4;
}
.study-register-wrap {
  max-height: 64vh;
  overflow: auto;
}
/* Pager under a paged register: row count on the left, Previous / page numbers / Next on the right */
.study-register-pager {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 16px;
  margin-top: 10px;
}
.study-register-pager .pager-buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  margin-left: auto;
}
.study-register-pager .pager-number {
  min-width: 36px;
  padding-left: 8px;
  padding-right: 8px;
  text-align: center;
}
.study-register-pager .pager-number.active,
.study-register-pager .pager-number.active:disabled {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
  opacity: 1;
  cursor: default;
}
.study-register-pager .pager-gap {
  padding: 0 4px;
  color: #6b7f7e;
}
.study-register-table {
  border-collapse: separate;
  border-spacing: 0;
}
.study-register-table td {
  background: #ffffff;
}
.study-register-table tr:nth-child(even) td {
  background: #f8fbfa;
}
.study-register-table th:nth-child(1),
.study-register-table td:nth-child(1),
.study-register-table th:nth-child(2),
.study-register-table td:nth-child(2),
.study-register-table th:nth-child(3),
.study-register-table td:nth-child(3),
.trainer-allocation-table th:nth-child(2),
.trainer-allocation-table td:nth-child(2),
.trainer-allocation-table th:nth-child(3),
.trainer-allocation-table td:nth-child(3),
.trainer-allocation-table th:nth-child(4),
.trainer-allocation-table td:nth-child(4) {
  position: sticky;
  z-index: 5;
}
.study-register-table th:nth-child(1),
.study-register-table td:nth-child(1) { left: 0; min-width: 54px; }
.study-register-table th:nth-child(2),
.study-register-table td:nth-child(2) { left: 54px; min-width: 112px; }
.study-register-table th:nth-child(3),
.study-register-table td:nth-child(3) { left: 166px; min-width: 185px; }
.trainer-allocation-table th:nth-child(2),
.trainer-allocation-table td:nth-child(2) { left: 0; min-width: 140px; }
.trainer-allocation-table th:nth-child(3),
.trainer-allocation-table td:nth-child(3) { left: 140px; min-width: 112px; }
.trainer-allocation-table th:nth-child(4),
.trainer-allocation-table td:nth-child(4) { left: 252px; min-width: 185px; }
.study-register-table th:nth-child(-n+3),
.trainer-allocation-table th:nth-child(n+2):nth-child(-n+4) {
  z-index: 9;
}
.study-register-table td:nth-child(-n+3),
.trainer-allocation-table td:nth-child(n+2):nth-child(-n+4) {
  background: inherit;
  box-shadow: 1px 0 0 #d6e5e3;
}
.batch-input {
  width: 92px;
  min-height: 28px;
  padding: 3px 6px;
  font-size: 12px;
  font-weight: 800;
}
.batch-input.batch-edited {
  border-color: #d48b25;
  background: #fff6e7;
}
.batch-input.review-locked,
.custom-student-check.review-locked {
  cursor: not-allowed;
  opacity: .65;
}
.batch-input.review-locked {
  border-color: #ccd7d9;
  background: #f3f6f6;
  color: #60747a;
}
.custom-student-check {
  min-height: 0;
  width: auto;
}
.study-review-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 8px 0;
  padding: 8px;
  border: 1px solid #e7c4cf;
  border-radius: 9px;
  background: #fff4f8;
}
.study-review-panel b {
  display: block;
  color: #7a294f;
}
.study-review-panel span {
  color: #415e66;
  font-size: 12px;
}
.latest-report-line {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin: 2px 0 0;
  color: #314a52;
  font-size: 14px;
}
.latest-date {
  color: #b4233f;
  font-weight: 950;
}
.latest-time {
  color: #1d4ed8;
  font-weight: 950;
}
.latest-creator {
  color: #047857;
  font-weight: 950;
}
.table-sort {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font-weight: 850;
  white-space: nowrap;
}
.sort-arrow {
  color: var(--brand);
  font-size: 13px;
  font-weight: 950;
  line-height: 1;
}
.trainer-allocation-panel {
  border-color: #b8d9d4;
  background: #fbfefd;
}
.study-flow-banner {
  position: relative;
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  margin: 10px 0;
  padding: 16px 18px;
  overflow: hidden;
  border: 1px solid #9ccfca;
  border-radius: 22px 8px 22px 8px;
  background:
    linear-gradient(120deg, rgba(255,255,255,.78) 0 35%, rgba(255,255,255,.18) 36%),
    linear-gradient(135deg, #e9fff9 0%, #d5f2ff 48%, #fff2bf 100%);
  box-shadow: 0 14px 30px rgba(3, 70, 72, .13);
  color: #073f3b;
}
.study-flow-banner::after {
  content: "";
  position: absolute;
  right: -80px;
  top: -40px;
  width: 260px;
  height: 180px;
  background: rgba(255,255,255,.36);
  transform: skewX(-22deg);
  pointer-events: none;
}
.study-flow-graphic {
  position: relative;
  z-index: 1;
  width: 96px;
  height: 86px;
}
.flow-target {
  position: absolute;
  left: 5px;
  top: 7px;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  border: 8px solid #08756c;
  background: radial-gradient(circle, #f97316 0 8px, #fff 9px 19px, #0f9f8f 20px 28px, #fff 29px);
  box-shadow: 0 10px 22px rgba(3, 70, 72, .16);
}
.flow-arrow {
  position: absolute;
  right: 1px;
  top: 18px;
  width: 58px;
  height: 8px;
  border-radius: 999px;
  background: #7c2d12;
  transform: rotate(-32deg);
  box-shadow: 0 0 0 3px rgba(255,255,255,.62);
}
.flow-arrow::after {
  content: "";
  position: absolute;
  right: -11px;
  top: -7px;
  border-left: 18px solid #7c2d12;
  border-top: 11px solid transparent;
  border-bottom: 11px solid transparent;
}
.study-flow-main {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 10px;
  min-width: 0;
}
.study-flow-title span {
  display: block;
  color: #0f766e;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.study-flow-title h2 {
  margin: 2px 0 0;
  color: #052f2d;
  font-size: 24px;
  font-weight: 950;
}
.study-flow-steps {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 16px;
}
.study-flow-step {
  position: relative;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 14px 6px 8px;
  border: 1px solid #b8d9d4;
  border-radius: 999px;
  background: rgba(255,255,255,.82);
  box-shadow: 0 4px 10px rgba(3, 70, 72, .07);
  color: #063734;
  font-size: 12px;
  font-weight: 900;
}
.study-flow-step:not(:last-child)::after {
  content: "";
  position: absolute;
  right: -13px;
  width: 9px;
  height: 9px;
  border-top: 2px solid #0f766e;
  border-right: 2px solid #0f766e;
  transform: rotate(45deg);
}
.study-flow-step b {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #08756c;
  color: #fff;
  font-size: 11px;
}
.command-centre-banner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 120px;
  gap: 14px;
  align-items: center;
  margin: 10px 0;
  padding: 14px 22px 14px 16px;
  overflow: hidden;
  border: 1px solid #79d3c2;
  border-radius: 18px 8px 26px 8px;
  background: linear-gradient(135deg, #d9fff4 0%, #b7f4e5 48%, #ffe7a3 100%);
  box-shadow: 0 10px 22px rgba(0, 79, 73, .12);
  color: #063734;
}
.command-centre-banner::after {
  content: "";
  position: absolute;
  inset: 0 0 0 auto;
  width: 34%;
  background: rgba(255,255,255,.24);
  clip-path: polygon(24% 0, 100% 0, 100% 100%, 0 100%);
  pointer-events: none;
}
.command-centre-banner h3 {
  position: relative;
  z-index: 1;
  margin: 0 0 4px;
  color: #003f3c;
  font-size: 22px;
  font-weight: 950;
}
.command-centre-banner p {
  position: relative;
  z-index: 1;
  max-width: 860px;
  margin: 0;
  color: #154b48;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.35;
}
.target-graphic {
  position: relative;
  z-index: 1;
  justify-self: center;
  width: 92px;
  height: 92px;
}
.target-graphic span {
  position: absolute;
  inset: 16px;
  border: 9px solid #008577;
  border-radius: 50%;
  background:
    radial-gradient(circle at center, #f97316 0 10px, #fff 11px 20px, #008577 21px 29px, #fff 30px);
  box-shadow: 0 8px 18px rgba(0, 79, 73, .18);
}
.target-graphic i {
  position: absolute;
  right: 5px;
  top: 12px;
  width: 58px;
  height: 8px;
  border-radius: 999px;
  background: #7c2d12;
  transform: rotate(-35deg);
  box-shadow: 0 0 0 3px rgba(255,255,255,.55);
}
.target-graphic i::after {
  content: "";
  position: absolute;
  right: -10px;
  top: -7px;
  border-left: 18px solid #7c2d12;
  border-top: 11px solid transparent;
  border-bottom: 11px solid transparent;
}
.trainer-allocation-controls {
  display: grid;
  grid-template-columns: minmax(170px, .8fr) minmax(260px, 1.4fr) minmax(160px, .8fr) minmax(230px, 1.2fr);
  gap: 8px;
  align-items: end;
  padding: 8px;
  margin: 8px 0;
  border: 1px solid #c7dedb;
  border-radius: 8px;
  background: #eef8f6;
}
.trainer-allocation-controls label {
  margin: 0;
  color: #25444a;
  font-size: 12px;
  font-weight: 800;
}
.trainer-allocation-controls input,
.trainer-allocation-controls select {
  min-height: 32px;
  padding: 5px 8px;
  border-color: #aacac7;
  background: #fff;
  color: #10262e;
  font-size: 13px;
  font-weight: 650;
}
.count-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 0;
}
.count-bar span {
  border: 1px solid #cce1de;
  border-radius: 7px;
  background: #f3faf8;
  padding: 5px 9px;
  font-weight: 800;
  color: var(--brand-strong);
}
.trainer-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  margin: 8px 0;
}
.selected-count {
  border: 1px solid #e7c4cf;
  border-radius: 7px;
  background: #fff4f8;
  color: #7a294f;
  padding: 5px 9px;
  font-weight: 900;
}
.alt-primary {
  background: #0e7490;
  border-color: #0e7490;
}
.final-note {
  display: grid;
  gap: 4px;
  margin: 7px 0;
  max-width: 760px;
  color: #25444a;
  font-size: 12px;
  font-weight: 850;
}
.final-note input {
  min-height: 32px;
  padding: 5px 8px;
  border-color: #aacac7;
  font-size: 13px;
}
.final-summary-bar {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 7px;
  margin: 8px 0;
}
.final-summary-bar div {
  border: 1px solid #c7dedb;
  border-radius: 8px;
  background: #f6fbfa;
  padding: 7px 9px;
}
.final-summary-bar span {
  display: block;
  color: #557078;
  font-size: 11px;
  font-weight: 800;
}
.final-summary-bar b {
  color: var(--brand-strong);
  font-size: 18px;
}
.allocation-final-table .download-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.download-select {
  min-width: 190px;
  padding: 5px 8px;
  border: 1px solid #b9d4d1;
  border-radius: 7px;
  background: #fff;
  color: var(--brand-strong);
  font-weight: 850;
}
.allocation-final-table .download-actions a {
  border: 1px solid #b9d4d1;
  border-radius: 7px;
  padding: 3px 8px;
  background: #ffffff;
  color: var(--brand-strong);
  font-weight: 850;
  text-decoration: none;
}
.current-active-ta {
  color: #1D4ED8;
  font-weight: 900;
  font-size: 18px;
  letter-spacing: 0;
  text-align: center;
  flex: 1 1 auto;
}
.final-note-row td {
  background: #f6fbfa;
  color: #4e6770;
  font-size: 12px;
}
.download-dialog-backdrop {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(12, 38, 44, .34);
}

.user-popup-backdrop {
  position: fixed;
  inset: 0;
  z-index: 10020;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(15, 38, 48, .52);
  backdrop-filter: blur(2px);
}
.user-popup {
  max-height: 85vh;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
  border: 1px solid #b9d7d4;
  border-radius: 10px;
  background: #f8fcfb;
  box-shadow: 0 24px 70px rgba(3, 42, 44, .30);
}
.user-modal-60 { width: min(60vw, 980px); min-width: min(760px, calc(100vw - 28px)); }
.user-modal-85 { width: min(85vw, 1480px); }
.user-modal-90 { width: min(90vw, 1700px); max-height: 92vh; }
.user-modal-md { width: min(980px, 86vw); }
.user-popup-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 18px;
  border-bottom: 1px solid #d5e7e5;
  background: #eef8f6;
}
.user-popup-head h2 {
  margin: 0;
  color: #073f3b;
  font-size: 20px;
}
.user-popup-body {
  min-height: 0;
  overflow: auto;
  padding: 14px 18px;
}
.user-popup-footer {
  position: sticky;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 12px 18px;
  border-top: 1px solid #d5e7e5;
  background: #ffffff;
  box-shadow: 0 -10px 24px rgba(3, 42, 44, .08);
}
.user-popup-form {
  align-content: start;
}
.user-access-popup-form {
  display: grid;
  gap: 10px;
}
.access-popup-tools {
  display: grid;
  grid-template-columns: minmax(220px, 320px) minmax(300px, 1fr) minmax(260px, 360px);
  gap: 10px;
  align-items: end;
}

.copy-access-control {
  min-width: 0;
}
.access-card-grid-5 {
  display: grid;
  grid-template-columns: repeat(5, minmax(180px, 1fr));
  gap: 10px;
  align-items: start;
}
.user-access-card {
  min-height: 190px;
  display: grid;
  align-content: start;
  gap: 8px;
  border: 1px solid #cfe3e0;
  border-radius: 8px;
  padding: 10px;
  background: #ffffff;
}
.document-area-card {
  grid-column: 1 / -1;
  min-height: auto;
  background: #fbf8ff;
  border-color: #d8c7ff;
}
.user-access-card-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 8px;
  border-bottom: 1px solid #e2eeec;
  padding-bottom: 7px;
}
.user-access-card-head h3 {
  margin: 0;
  color: #00413d;
  font-size: 14px;
}
.user-access-card-head span {
  color: #687b83;
  font-size: 11px;
  font-weight: 850;
  white-space: nowrap;
}
.user-access-ticks {
  display: grid;
  gap: 6px;
}
.user-access-ticks .access-chip {
  min-height: 30px;
  padding: 5px 7px;
  font-size: 12px;
}
.download-dialog {
  position: relative;
  width: min(520px, 92vw);
  padding: 18px;
  border: 1px solid #b9d4d1;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(16, 38, 46, .22);
}
.download-dialog h2 {
  margin: 0 0 5px;
  font-size: 20px;
  color: var(--ink);
}
.download-dialog label {
  display: grid;
  gap: 5px;
  margin: 14px 0;
  font-weight: 850;
  color: #37545d;
}
.download-dialog select {
  width: 100%;
}
.dialog-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 30px;
  height: 30px;
  padding: 0;
  border-radius: 50%;
}
.icon-button {
  width: 32px;
  min-height: 32px;
  padding: 0;
  border-radius: 50%;
  font-weight: 950;
}
.student-info-button {
  width: 26px;
  min-height: 26px;
  padding: 0;
  border-radius: 50%;
  border: 1px solid #0b6b68;
  color: #ffffff;
  background: #0b6b68;
  font-weight: 950;
  font-size: 13px;
  line-height: 1;
  box-shadow: 0 2px 6px rgba(11, 107, 104, .18);
}
.student-info-button:hover {
  background: #084f4c;
  border-color: #084f4c;
}
.student-timeline-backdrop {
  position: fixed;
  inset: 0;
  z-index: 110;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22px;
  background: rgba(12, 38, 44, .38);
}
.student-timeline-modal {
  width: 85vw;
  height: 85vh;
  display: grid;
  grid-template-rows: auto 1fr;
  border: 1px solid #b9d4d1;
  border-radius: 12px;
  background: #f7fbfa;
  box-shadow: 0 24px 70px rgba(16, 38, 46, .25);
}
.student-timeline-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 16px;
  border-bottom: 1px solid #d8e7e5;
  background: #fff;
  border-radius: 12px 12px 0 0;
}
.student-timeline-head span {
  display: block;
  color: var(--brand);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .04em;
}
.student-timeline-head h2 {
  margin: 2px 0;
  font-size: 20px;
}
.student-timeline-body {
  overflow: auto;
  display: grid;
  gap: 10px;
  padding: 12px;
}
.student-typewriter-card {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  border: 1px solid #b9d4d1;
  border-left: 5px solid var(--brand);
  border-radius: 8px;
  padding: 10px;
  background: #fff;
  font-family: "Consolas", "Courier New", monospace;
}
.student-typewriter-card div {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.student-typewriter-card .student-custom-summary-card {
  grid-column: span 2;
  gap: 8px;
  padding: 12px 14px;
  border: 2px solid #d9e8e6;
  border-left: 6px solid #718096;
  border-radius: 8px;
  background: #fbfcfc;
  box-shadow: 0 8px 18px rgba(16, 38, 46, .08);
}
.student-typewriter-card .student-custom-summary-card.is-custom {
  border-color: #f1a4aa;
  border-left-color: #c1121f;
  background: #fff7f8;
}
.student-custom-summary-values {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}
.student-custom-summary-values strong {
  color: #10262e;
  font-size: 16px;
  font-weight: 950;
}
.student-custom-summary-values em {
  color: #c1121f;
  font-style: normal;
  font-weight: 950;
}
.student-custom-summary-values .custom-calendar-open-link {
  font-size: 16px;
}
.student-typewriter-card span {
  color: #587078;
  font-size: 11px;
  font-weight: 800;
}
.student-typewriter-card b {
  color: #10262e;
  font-size: 13px;
  overflow-wrap: anywhere;
}
.text-link {
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--brand);
  font: inherit;
  font-weight: 900;
  text-align: left;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.text-link:hover {
  color: var(--brand-strong);
}
.warning-link {
  color: #b45309;
}
.custom-red-value,
.custom-calendar-open-link {
  color: #c1121f;
  font-weight: 950;
}
.custom-calendar-open-link:hover {
  color: #8f0d17;
}
.student-note-card,
.student-history-card {
  border: 1px solid #d7e6e4;
  border-radius: 8px;
  padding: 10px;
  background: #fff;
}
.student-history-list {
  display: grid;
  gap: 8px;
}
.student-history-list h3 {
  margin: 0;
  color: var(--brand-strong);
}
.student-history-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.student-history-card-head b {
  color: var(--brand-strong);
  font-size: 14px;
}
.student-history-card-head span {
  color: var(--muted);
  font-size: 12px;
  font-family: "Consolas", "Courier New", monospace;
}
.student-history-card ul {
  margin: 8px 0 0 18px;
  padding: 0;
}
.student-history-card p {
  margin: 8px 0 0;
}
.study-history-backdrop {
  position: fixed;
  inset: 0;
  z-index: 95;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(12, 38, 44, .36);
}
.study-history-modal {
  width: 85vw;
  height: 85vh;
  display: grid;
  grid-template-rows: auto 1fr;
  border: 1px solid #b9d4d1;
  border-radius: 12px;
  background: #f7fbfa;
  box-shadow: 0 24px 70px rgba(16, 38, 46, .25);
}
.study-history-modal.zoomed {
  width: 96vw;
  height: 94vh;
}
.study-history-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid #d8e7e5;
  background: #fff;
  border-radius: 12px 12px 0 0;
}
.study-history-head h2 {
  margin: 0;
  color: var(--ink);
}
.study-history-body {
  overflow: auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  padding: 12px;
}
.history-card {
  border: 1px solid #d6e5e3;
  border-radius: 10px;
  background: #fff;
  padding: 9px;
}
.history-card summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  cursor: pointer;
  font-weight: 900;
}
.history-card summary span,
.history-course summary span {
  border-radius: 999px;
  padding: 2px 7px;
  background: rgba(255,255,255,.7);
  font-size: 12px;
}
.history-card dl {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 4px 8px;
  margin: 8px 0 0;
}
.history-card dt {
  color: #557078;
  font-weight: 800;
}
.history-card dd {
  margin: 0;
  color: #10262e;
  font-weight: 750;
}
.history-card.teal { background: #eef8f6; border-color: #b9d4d1; }
.history-card.green { background: #eefaf2; border-color: #bce5c8; }
.history-card.gold { background: #fff8e8; border-color: #efd58f; }
.history-card.blue { background: #eff6ff; border-color: #bfd5f6; }
.history-card.red { background: #fff1f3; border-color: #f1b8c1; }
.history-card.pink { background: #fff4f8; border-color: #e7c4cf; }
.history-course {
  margin-top: 7px;
  padding: 6px;
  border: 1px solid rgba(12, 38, 44, .12);
  border-radius: 8px;
  background: rgba(255,255,255,.62);
}
.history-course ul {
  max-height: 180px;
  overflow: auto;
  margin: 6px 0 0;
  padding-left: 18px;
}
.history-course li {
  margin: 3px 0;
  font-size: 12px;
}
.trainer-tabs {
  margin-bottom: 8px;
}
.trainer-tabs button.active,
.trainer-inner-tabs button.active {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
  box-shadow: 0 7px 16px rgba(0, 89, 86, .18);
}
.trainer-tabs button.active span,
.trainer-inner-tabs button.active span {
  background: rgba(255,255,255,.18);
  color: #fff;
}
.ta-finalize-reminder {
  border-color: #e4b6c4;
  background: #fff4f8;
  color: #7f1d4b;
}
.ta-process-guide {
  display: grid;
  grid-template-columns: repeat(4, minmax(140px, 1fr));
  gap: 8px;
  margin: 8px 0;
  padding: 8px;
  border: 1px solid #e7c4cf;
  border-radius: 10px;
  background: #fff8fb;
}
.ta-process-guide span {
  padding: 7px 10px;
  border: 1px solid #d6e5e3;
  border-radius: 8px;
  background: #fff;
  color: #003f3c;
  font-weight: 900;
  text-align: center;
}
.trainer-my-panel {
  border-color: #b9d4d1;
}
.trainer-inner-tabs {
  margin: 8px 0;
}
.trainer-my-filters {
  display: grid;
  grid-template-columns: 1.4fr 1fr .8fr .8fr auto;
  gap: 8px;
  padding: 8px;
  border: 1px solid #b9d4d1;
  border-radius: 8px;
  background: #f4fbfa;
}
.trainer-my-filters label {
  margin: 0;
  padding: 6px;
  border: 1px solid transparent;
  border-radius: 8px;
}
.trainer-my-filters label.filter-active {
  border-color: #dc8cac;
  background: #ffddea;
  box-shadow: inset 0 0 0 1px rgba(159, 18, 57, .08);
}
.trainer-history-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 130px;
  font-weight: 850;
  white-space: nowrap;
}
.trainer-history-toggle input {
  width: auto;
}
.trainer-change-announcement {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 12px;
  margin: 10px 0 8px;
  padding: 10px 12px;
  border: 1px solid #e8b6c8;
  border-radius: 12px;
  background: linear-gradient(90deg, #fff0f6 0%, #f5fbfa 100%);
}
.trainer-change-announcement h3 {
  margin: 0;
  color: #7f1d4b;
  font-size: 16px;
}
.trainer-change-announcement p {
  margin: 2px 0 0;
  color: #425e66;
}
.trainer-change-icon {
  position: relative;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #006c67;
  box-shadow: 0 0 0 6px #dff3f0;
}
.trainer-change-icon::before,
.trainer-change-icon::after {
  content: "";
  position: absolute;
}
.trainer-change-icon::before {
  left: 10px;
  top: 17px;
  width: 9px;
  height: 10px;
  border-radius: 2px;
  background: #fff;
}
.trainer-change-icon::after {
  left: 18px;
  top: 12px;
  width: 0;
  height: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-right: 14px solid #fff;
}
.trainer-change-icon span {
  position: absolute;
  left: 27px;
  top: 12px;
  width: 9px;
  height: 20px;
  overflow: hidden;
  text-indent: -999px;
  border-right: 2px solid #fff;
  border-radius: 50%;
}
.trainer-change-icon span::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 4px;
  width: 9px;
  height: 12px;
  border-right: 2px solid rgba(255,255,255,.78);
  border-radius: 50%;
}
.trainer-audit-filters {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(150px, 1fr);
  grid-template-columns: minmax(240px, 1.6fr);
  gap: 8px;
  overflow-x: auto;
  padding: 8px;
  border: 1px solid #b9d4d1;
  border-radius: 8px;
  background: #f4fbfa;
}
.trainer-audit-filters label {
  min-width: 150px;
  margin: 0;
  white-space: nowrap;
}
.trainer-audit-filters input,
.trainer-audit-filters select {
  min-height: 32px;
  font-size: 13px;
}
.trainer-list-wrap {
  max-height: 62vh;
}
.trainer-list-table th {
  position: sticky;
  top: 0;
  z-index: 6;
  background: #edf5f4;
}
.trainer-list-table td {
  padding-top: 6px;
  padding-bottom: 6px;
}
.returned-text {
  color: #9f1239;
}
.yes-flag {
  color: var(--danger);
  font-weight: 900;
}
.custom-notes-actions {
  margin: 8px 0;
}
.custom-students-note-table textarea.custom-note-input {
  min-width: 240px;
  width: 100%;
  min-height: 48px;
  padding: 6px 8px;
  resize: vertical;
}
.compact-check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  font-weight: 800;
}
.trainer-my-filters input,
.trainer-my-filters select {
  min-height: 34px;
  font-size: 13px;
}
.trainer-changes-body {
  grid-template-columns: repeat(3, minmax(220px, 1fr));
}
.trainer-changes-body ul {
  max-height: 280px;
  overflow: auto;
  margin: 8px 0 0;
  padding-left: 18px;
}
.trainer-changes-body li {
  margin: 4px 0;
  font-size: 12px;
}
.trainer-changes-body li span {
  color: #557078;
}
.trainer-ta-compare b {
  color: #9f1239;
  font-weight: 950;
}
.trainer-course-line {
  display: grid;
  grid-template-columns: 132px 1fr;
  gap: 8px;
  padding: 5px 0;
  border-bottom: 1px solid rgba(12, 38, 44, .1);
}
.trainer-course-line:last-child {
  border-bottom: 0;
}
.trainer-course-line b {
  color: #10262e;
}
.trainer-course-line.added span {
  color: #007a55;
  font-weight: 850;
}
.trainer-course-line.removed span {
  color: #9f1239;
  font-weight: 850;
}
.trainer-batch-summary {
  display: grid;
  gap: 8px;
  margin-top: 8px;
}
.trainer-batch-course {
  padding: 7px;
  border: 1px solid rgba(0, 108, 103, .18);
  border-radius: 8px;
  background: rgba(255,255,255,.65);
}
.trainer-batch-course b {
  display: block;
  margin-bottom: 5px;
  color: #003f3d;
}
.trainer-batch-course div {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.trainer-batch-course span {
  padding: 2px 7px;
  border-radius: 999px;
  background: #fff;
  color: #425e66;
  font-size: 12px;
}
.trainer-batch-course span.total {
  background: #ffddea;
  color: #7f1d4b;
  font-weight: 900;
}
.trainer-copy-actions {
  margin: 8px 0;
}
.trainer-my-table-wrap {
  max-height: min(70vh, 720px);
  overflow: auto;
}
.trainer-my-table th {
  position: sticky;
  top: 0;
  z-index: 6;
  background: #edf5f4;
}
.trainer-my-table th:nth-child(1),
.trainer-my-table td:nth-child(1),
.trainer-my-table th:nth-child(2),
.trainer-my-table td:nth-child(2),
.trainer-my-table th:nth-child(3),
.trainer-my-table td:nth-child(3) {
  position: sticky;
  background: #fff;
}
.trainer-my-table th:nth-child(1),
.trainer-my-table td:nth-child(1) {
  left: 0;
  min-width: 54px;
}
.trainer-my-table th:nth-child(2),
.trainer-my-table td:nth-child(2) {
  left: 54px;
  min-width: 108px;
}
.trainer-my-table th:nth-child(3),
.trainer-my-table td:nth-child(3) {
  left: 162px;
  min-width: 180px;
}
.trainer-my-table th:nth-child(-n+3) {
  z-index: 8;
  background: #e7f2f1;
}
.trainer-my-table td:nth-child(-n+3) {
  z-index: 4;
}
.trainer-my-table tr.trainer-custom-row td {
  background: #fff7fb;
}
.trainer-my-history-card {
  margin-bottom: 8px;
  padding: 8px;
  border: 1px solid #d9c0ca;
  border-radius: 8px;
  background: #fff9fb;
}
.trainer-my-history-card summary {
  display: flex;
  align-items: center;
  gap: 14px;
  cursor: pointer;
  color: var(--brand-strong);
}
.trainer-history-tools {
  margin: 8px 0;
}
.trainer-history-ta {
  padding: 0;
  overflow: hidden;
}
.trainer-history-ta > summary {
  padding: 8px 10px;
  background: #fff4f8;
}
.trainer-history-ta.ta-withdrawn-row {
  border-color: #e8b6c8;
  background: #fff4f8;
}
.trainer-history-ta.ta-withdrawn-row > summary {
  background: #ffe8f0;
  color: #7f1d4b;
}
.trainer-history-ta > .small,
.trainer-history-course-list {
  padding: 8px 10px;
}
.trainer-history-course {
  margin: 6px 0;
  border: 1px solid #d6e5e3;
  border-radius: 8px;
  background: #fff;
}
.trainer-history-course > summary {
  padding: 7px 9px;
  color: #003f3d;
}
.trainer-history-course .trainer-my-table-wrap {
  max-height: 42vh;
  margin: 0 8px 8px;
}
.ta-withdrawn-row td {
  background: #fff4f8 !important;
  color: #6b3950;
}
.trainer-table-wrap {
  max-height: min(70vh, 720px);
  overflow: auto;
}
.current-allocation-wrap {
  max-height: min(70vh, 720px);
  overflow: auto;
}
.trainer-allocation-table th {
  position: sticky;
  top: 0;
  z-index: 6;
  background: #edf5f4;
}
.trainer-allocation-table td {
  background: #fff;
}
.trainer-allocation-table tr.allocation-same td {
  background: #eefaf2;
}
.allocation-check {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin: 0;
  font-size: 12px;
  font-weight: 800;
}
.allocation-check input {
  width: auto;
  min-height: 0;
}
.allocation-same .allocation-check {
  color: var(--ok);
}
.trainer-group-controls {
  display: grid;
  grid-template-columns: minmax(240px, 1.4fr) minmax(190px, 1fr) auto auto minmax(180px, 1fr);
  gap: 8px;
  align-items: end;
  padding: 8px;
  margin: 8px 0;
  border: 1px solid #c7dedb;
  border-radius: 8px;
  background: #eef8f6;
}
.trainer-group-controls label {
  margin: 0;
  color: #25444a;
  font-size: 12px;
  font-weight: 800;
}
.trainer-group-controls input,
.trainer-group-controls select {
  min-height: 32px;
  padding: 5px 8px;
  border-color: #aacac7;
  background: #fff;
  color: #10262e;
  font-size: 13px;
  font-weight: 650;
}
.manage-group-controls {
  grid-template-columns: minmax(260px, 1.2fr) minmax(220px, 1fr) auto auto minmax(180px, 1fr);
}
.group-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 6px 0;
}
.group-filter-row label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin: 0;
  font-size: 12px;
  font-weight: 800;
  color: #25444a;
}
.group-filter-row input {
  width: auto;
  min-height: 0;
}
.manage-groups-panel {
  margin: 8px 0;
  padding: 8px;
  border: 1px solid #d8e7e5;
  border-radius: 8px;
  background: #fbfefd;
}
.manage-groups-panel h3 {
  margin: 0 0 6px;
  font-size: 14px;
  color: #25444a;
}
.manage-groups-list {
  display: grid;
  gap: 5px;
}
.manage-group-row {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) 82px 88px minmax(150px, 1fr) auto auto minmax(130px, .8fr);
  gap: 6px;
  align-items: center;
}
.manage-group-row small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 750;
}
.manage-group-row input {
  min-height: 30px;
  padding: 4px 7px;
  font-size: 12px;
  font-weight: 800;
}
.manage-group-row.archived {
  opacity: .72;
}
.manage-group-inline-list {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  min-width: 320px;
}
.manage-group-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 5px;
  border: 1px solid #bddad7;
  border-radius: 6px;
  background: #f6fbfa;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}
.manage-group-chip.archived {
  background: #fff1f0;
  border-color: #f3c8c4;
  color: #8a2a20;
}
.manage-group-chip button {
  min-height: 24px;
  padding: 2px 6px;
  font-size: 11px;
}
.danger-text {
  color: var(--danger);
}
.compact-empty {
  padding: 8px;
  min-height: 0;
}
.compact-section-head {
  margin-bottom: 6px;
}
.manage-group-summary-grid {
  align-items: stretch;
}
.manage-group-summary-grid > div {
  display: flex;
  flex-direction: column;
}
.manage-group-summary-grid .fine-table-wrap,
.manage-group-summary-grid table {
  height: 100%;
}
.trainer-batch-card-row {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 4px;
  height: 100%;
}
.trainer-batch-card {
  flex: 0 0 170px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 100%;
  padding: 8px;
  border: 1px solid #cfe1de;
  border-radius: 8px;
  background: #fff;
}
.trainer-batch-card.warning {
  border-color: #f3c2c2;
  background: #fff7f7;
}
.trainer-batch-card h4 {
  margin: 0;
  min-height: 24px;
  color: var(--brand-strong);
  font-size: 13px;
}
.trainer-batch-list {
  display: grid;
  gap: 4px;
}
.trainer-batch-list div,
.trainer-batch-total {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 12px;
}
.trainer-batch-list span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.trainer-batch-total {
  margin-top: auto;
  padding-top: 6px;
  border-top: 1px solid #d9e8e5;
  font-weight: 900;
  color: var(--brand-strong);
}
.action-needed-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
  margin: 8px 0;
}
.action-needed-card {
  display: grid;
  gap: 2px;
  min-height: 82px;
  padding: 9px;
  text-align: left;
  border-radius: 8px;
  background: #f7fbfb;
}
.action-needed-card.needs-work {
  border-color: #c4b5fd;
  background: #f5f3ff;
}
.action-needed-card.ok {
  border-color: #bbf7d0;
  background: #f0fdf4;
}
.action-needed-card span {
  font-size: 12px;
  font-weight: 900;
  color: var(--brand-strong);
}
.action-needed-card b {
  font-size: 25px;
  line-height: 1;
  color: #5b21b6;
}
.action-needed-card small,
.action-needed-card em {
  color: var(--muted);
  font-size: 11px;
  font-style: normal;
  font-weight: 750;
}
.trainer-action-controls {
  display: grid;
  grid-template-columns: minmax(140px, .7fr) minmax(240px, 1fr) minmax(220px, 1fr) auto auto;
  gap: 8px;
  align-items: end;
  margin: 8px 0;
}
.trainer-action-controls input,
.trainer-action-controls select {
  min-height: 32px;
  padding: 5px 8px;
  font-size: 13px;
  font-weight: 700;
}
.action-course-summary {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  margin: 8px 0;
  padding-bottom: 3px;
}
.action-course-summary button {
  flex: 0 0 220px;
  display: flex;
  align-items: center;
  gap: 7px;
  justify-content: flex-start;
  min-height: 34px;
  padding: 5px 8px;
  font-size: 11px;
}
.action-course-summary b {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.action-course-summary span {
  font-weight: 900;
  color: #5b21b6;
}
.action-needed-table-wrap {
  max-height: min(68vh, 680px);
}
.action-needed-table th {
  position: sticky;
  top: 0;
  z-index: 4;
}
.action-needed-table td {
  white-space: nowrap;
}
.action-row-trainer td:first-child { color: #7c2d12; }
.action-row-batch td:first-child { color: #1e3a8a; }
.action-row-group td:first-child { color: #831843; }
.action-row-date td:first-child { color: #14532d; }
@media (max-width: 980px) {
  .trainer-action-controls {
    grid-template-columns: 1fr;
  }
}
.bulk-group-board {
  margin: 8px 0;
  padding: 8px;
  border: 1px solid #d6e7e5;
  border-radius: 8px;
  background: #fbfefd;
}
.bulk-group-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
}
.bulk-group-toolbar label {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
}
.bulk-group-toolbar select {
  min-height: 30px;
  padding: 4px 7px;
}
.bulk-group-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
  gap: 10px;
  align-items: start;
}
.bulk-groups-side h3,
.bulk-unassigned-side h3 {
  margin: 0 0 6px;
  font-size: 14px;
  color: var(--brand-strong);
}
.bulk-group-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(185px, 1fr));
  gap: 8px;
}
.bulk-group-card {
  min-height: 92px;
  padding: 7px;
  border: 1px solid #cfe1de;
  border-radius: 8px;
  background: #fff;
}
.bulk-group-card.group-tone-0 { background: #f0fdfa; border-color: #99f6e4; }
.bulk-group-card.group-tone-1 { background: #eff6ff; border-color: #bfdbfe; }
.bulk-group-card.group-tone-2 { background: #fefce8; border-color: #fde68a; }
.bulk-group-card.group-tone-3 { background: #fdf2f8; border-color: #fbcfe8; }
.bulk-group-card.group-tone-4 { background: #f0fdf4; border-color: #bbf7d0; }
.bulk-group-card.group-tone-5 { background: #fff7ed; border-color: #fed7aa; }
.bulk-group-card.group-tone-6 { background: #f8fafc; border-color: #cbd5e1; }
.bulk-group-card.drag-over {
  border-color: var(--brand);
  background: #e9f7f5;
}
.bulk-group-head,
.bulk-group-batch summary,
.bulk-unassigned-batch summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.bulk-group-head {
  margin-bottom: 5px;
  color: var(--brand-strong);
}
.bulk-group-head span,
.bulk-group-batch summary b,
.bulk-unassigned-batch summary b {
  color: var(--brand-strong);
  font-weight: 900;
}
.bulk-group-batch,
.bulk-unassigned-batch {
  border-top: 1px solid #e2eeee;
  padding: 4px 0;
}
.bulk-group-batch.batch-tone-0,
.bulk-unassigned-batch.batch-tone-0 { background: #ecfeff; }
.bulk-group-batch.batch-tone-1,
.bulk-unassigned-batch.batch-tone-1 { background: #eff6ff; }
.bulk-group-batch.batch-tone-2,
.bulk-unassigned-batch.batch-tone-2 { background: #fefce8; }
.bulk-group-batch.batch-tone-3,
.bulk-unassigned-batch.batch-tone-3 { background: #fdf2f8; }
.bulk-group-batch.batch-tone-4,
.bulk-unassigned-batch.batch-tone-4 { background: #f0fdf4; }
.bulk-group-batch.batch-tone-5,
.bulk-unassigned-batch.batch-tone-5 { background: #fff7ed; }
.bulk-group-batch.batch-tone-6,
.bulk-unassigned-batch.batch-tone-6 { background: #f5f3ff; }
.bulk-group-batch summary,
.bulk-unassigned-batch summary {
  cursor: pointer;
  font-size: 12px;
  font-weight: 850;
  padding: 4px 6px;
  border-radius: 6px;
}
.bulk-group-batch.batch-tone-0 summary,
.bulk-unassigned-batch.batch-tone-0 summary { background: #cffafe; color: #155e75; }
.bulk-group-batch.batch-tone-1 summary,
.bulk-unassigned-batch.batch-tone-1 summary { background: #dbeafe; color: #1e3a8a; }
.bulk-group-batch.batch-tone-2 summary,
.bulk-unassigned-batch.batch-tone-2 summary { background: #fef3c7; color: #7c2d12; }
.bulk-group-batch.batch-tone-3 summary,
.bulk-unassigned-batch.batch-tone-3 summary { background: #fce7f3; color: #831843; }
.bulk-group-batch.batch-tone-4 summary,
.bulk-unassigned-batch.batch-tone-4 summary { background: #dcfce7; color: #14532d; }
.bulk-group-batch.batch-tone-5 summary,
.bulk-unassigned-batch.batch-tone-5 summary { background: #ffedd5; color: #7c2d12; }
.bulk-group-batch.batch-tone-6 summary,
.bulk-unassigned-batch.batch-tone-6 summary { background: #ede9fe; color: #4c1d95; }
.bulk-group-batch ul,
.bulk-student-list {
  padding: 4px;
}
.bulk-group-batch ul {
  margin: 4px 0 0;
  padding: 4px;
  list-style: none;
  display: grid;
  gap: 3px;
}
.bulk-group-batch li,
.bulk-student-row {
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 26px;
  padding: 3px 5px;
  border: 1px solid #e0ecea;
  border-radius: 6px;
  background: #fff;
  font-size: 12px;
}
.bulk-group-batch li span,
.bulk-student-row small {
  color: var(--muted);
  font-weight: 700;
}
.bulk-batch-actions {
  display: inline-flex;
  gap: 4px;
  margin-left: auto;
}
.bulk-batch-actions button {
  min-height: 24px;
  padding: 3px 6px;
  font-size: 11px;
}
.bulk-student-list {
  display: grid;
  gap: 4px;
  margin-top: 5px;
}
.bulk-student-row {
  cursor: grab;
}
.bulk-student-row input {
  width: auto;
  min-height: 0;
}
.bulk-student-row span {
  display: grid;
  gap: 1px;
  min-width: 0;
}
@media (max-width: 980px) {
  .bulk-group-layout {
    grid-template-columns: 1fr;
  }
}
.summary-warning-row td {
  background: #fff1f0;
  color: #7f1d1d;
  font-weight: 800;
}
.trainer-groups-table-wrap {
  max-height: 64vh;
}
.trainer-groups-table {
  table-layout: fixed;
}
.trainer-groups-table th {
  position: sticky;
  top: 0;
  z-index: 6;
  background: #edf5f4;
}
.trainer-groups-table td {
  background: #fff;
  overflow: hidden;
  text-overflow: ellipsis;
}
.trainer-groups-table .batch-input,
.trainer-groups-table .group-select {
  width: 100%;
  min-width: 82px;
  min-height: 28px;
  padding: 3px 6px;
  font-size: 12px;
  font-weight: 800;
}
.trainer-groups-table tr.group-missing-row td {
  background: #fff1f0;
  color: #7f1d1d;
}
.trainer-groups-table tr.group-missing-row td:nth-child(-n+4) {
  background: #ffe4e2;
}
.trainer-groups-table th:nth-child(1),
.trainer-groups-table td:nth-child(1),
.trainer-groups-table th:nth-child(2),
.trainer-groups-table td:nth-child(2),
.trainer-groups-table th:nth-child(3),
.trainer-groups-table td:nth-child(3),
.trainer-groups-table th:nth-child(4),
.trainer-groups-table td:nth-child(4) {
  position: sticky;
}
.trainer-groups-table th:nth-child(1),
.trainer-groups-table td:nth-child(1) { left: 0; width: 54px; min-width: 54px; }
.trainer-groups-table th:nth-child(2),
.trainer-groups-table td:nth-child(2) { left: 54px; width: 44px; min-width: 44px; }
.trainer-groups-table th:nth-child(3),
.trainer-groups-table td:nth-child(3) { left: 98px; width: 110px; min-width: 110px; }
.trainer-groups-table th:nth-child(4),
.trainer-groups-table td:nth-child(4) { left: 208px; width: 190px; min-width: 190px; }
.trainer-groups-table th:nth-child(-n+4) {
  z-index: 8;
}
.trainer-groups-table td:nth-child(-n+4) {
  z-index: 5;
  box-shadow: 1px 0 0 #d6e5e3;
}
.trainer-move-card {
  margin-top: 10px;
  padding: 10px;
  border: 1px solid #efd3dc;
  border-radius: 10px;
  background: #fff8fb;
}
.move-controls {
  background: #fff;
  border-color: #e7c4cf;
  position: relative;
  z-index: 20;
  overflow: visible;
}
.move-multi-filter {
  position: relative;
  min-width: 220px;
}
.move-multi-filter summary {
  display: flex;
  min-height: 32px;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 4px 9px;
  border: 1px solid #c8dfe3;
  border-radius: 7px;
  background: #fff;
  color: var(--ink);
  font-size: 12px;
  font-weight: 850;
  cursor: pointer;
  list-style: none;
  white-space: nowrap;
}
.move-multi-filter summary::-webkit-details-marker {
  display: none;
}
.move-multi-filter summary b {
  color: var(--brand-strong);
  font-size: 11px;
  white-space: nowrap;
}
.move-multi-menu {
  position: absolute;
  z-index: 80;
  top: 40px;
  left: 0;
  width: min(340px, 86vw);
  min-width: 280px;
  max-height: 340px;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 8px;
  border: 1px solid #a8c9ca;
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 14px 30px rgba(15, 35, 42, 0.16);
}
.move-multi-menu label {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  width: 100%;
  min-width: 0;
  padding: 6px 7px;
  border-radius: 5px;
  color: #173239;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
  white-space: normal;
}
.move-multi-menu label:hover {
  background: #edf7f6;
}
.move-multi-menu input {
  width: 14px;
  height: 14px;
  min-height: 0;
  margin: 0;
  accent-color: var(--brand);
}
.move-multi-menu .small {
  display: block;
  margin: 3px 2px 7px;
  line-height: 1.3;
  white-space: normal;
}
.move-multi-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 5px;
}
.move-multi-actions button {
  flex: 1 1 120px;
  min-height: 26px;
  padding: 3px 7px;
  font-size: 11px;
  white-space: normal;
}
.move-summary-strip {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px;
  align-items: start;
  margin: 9px 0;
  padding: 9px 12px;
  border: 1px solid #e8b6c8;
  border-radius: 12px;
  background: linear-gradient(90deg, #fff0f6 0%, #f5fbfa 100%);
}
.move-strip-icon {
  margin-top: 2px;
}
.move-strip-content h3 {
  margin: 0;
  color: #7f1d4b;
  font-size: 16px;
  font-weight: 950;
}
.move-strip-content p {
  margin: 2px 0 8px;
  color: #425e66;
}
.move-flow-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.2fr) auto minmax(260px, 1.4fr) auto minmax(210px, 1fr) auto minmax(120px, .55fr);
  gap: 7px;
  align-items: stretch;
  font-family: Consolas, "Courier New", monospace;
}
.move-flow-cell {
  min-width: 0;
  padding: 7px 9px;
  border: 1px solid rgba(127, 29, 75, .16);
  border-radius: 8px;
  background: rgba(255,255,255,.82);
}
.move-flow-cell span,
.move-flow-cell small {
  display: block;
  color: #52666b;
  font-size: 11px;
}
.move-flow-cell b {
  display: block;
  overflow: hidden;
  color: #003f3c;
  font-size: 13px;
  font-weight: 950;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.move-flow-cell.trainers div {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.move-flow-cell.trainers em {
  display: inline-flex;
  gap: 5px;
  padding: 2px 7px;
  border-radius: 999px;
  background: #eef8f6;
  color: #163d42;
  font-style: normal;
  font-size: 12px;
}
.move-flow-arrow {
  align-self: center;
  color: #9f1239;
  font-weight: 950;
}
.move-flow-cell.can-move b {
  color: #9f1239;
  font-size: 18px;
}
.move-compare-dialog {
  width: min(980px, calc(100vw - 44px));
  max-height: min(86vh, 760px);
  overflow: auto;
}
.move-compare-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 12px 0;
}
.move-compare-card {
  min-width: 0;
  padding: 10px;
  border: 1px solid #e8b6c8;
  border-radius: 10px;
  background: #fff8fb;
  overflow: hidden;
}
.move-compare-card h3 {
  margin: 0 0 8px;
  color: #7f1d4b;
  font-size: 15px;
}
.move-compare-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
  border-collapse: collapse;
  font-family: Consolas, "Courier New", monospace;
  font-size: 13px;
}
.move-compare-table th,
.move-compare-table td {
  padding: 6px 8px;
  border-bottom: 1px solid #ead4dc;
  text-align: left;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.move-compare-table th:first-child,
.move-compare-table td:first-child {
  width: calc(100% - 86px);
}
.move-compare-table th:last-child,
.move-compare-table td:last-child {
  width: 86px;
  text-align: right;
  font-weight: 950;
}
.move-compare-table tr.changed td:last-child {
  color: #b91c1c;
  background: #fff1f2;
}
.move-compare-table tfoot td {
  border-top: 2px solid #e8b6c8;
  border-bottom: 0;
  color: #003f3c;
  font-weight: 950;
}
.move-compare-actions {
  justify-content: flex-end;
}
.locked-course-message {
  margin-top: 10px;
}
@media (max-width: 760px) {
  .move-compare-grid {
    grid-template-columns: 1fr;
  }
}
.move-reason-field {
  min-width: 260px;
}
.move-reason-field input {
  min-height: 34px;
}
.move-register-filters {
  display: grid;
  grid-template-columns: minmax(260px, 1.4fr) minmax(130px, .5fr) minmax(230px, 1fr);
  gap: 8px;
  align-items: end;
  padding: 8px;
  margin: 8px 0;
  border: 1px solid #e7c4cf;
  border-radius: 8px;
  background: #fff8fb;
}
.move-register-announcement {
  margin-top: 0;
}

.trainer-final-note {
  display: block;
  max-width: 760px;
  margin: 10px 0 8px;
}
.move-register-wrap {
  max-height: 62vh;
}
.move-register-table th {
  position: sticky;
  top: 0;
  z-index: 6;
  background: #f5eaf0;
}
.move-register-table td {
  vertical-align: top;
}
.move-register-table tr.move-status-pending td {
  background: #fffdf4;
}
.move-register-table tr.move-status-applied td {
  background: #fff1f3;
  color: #7f1d1d;
}
.move-register-table tr.move-status-cancelled td {
  background: #fff4f8;
}
.move-student-list {
  max-height: 150px;
  overflow: auto;
  margin: 5px 0 0;
  padding-left: 18px;
}
.move-student-list li {
  margin: 3px 0;
  white-space: nowrap;
}
.move-student-list span {
  color: #52666b;
}
.move-reason-row td {
  color: #6b3950;
  font-size: 12px;
}
.trainer-allocation-table tr.allocation-move-row td {
  background: #fffdf4;
}
.trainer-allocation-table tr.allocation-in-move-row td {
  background: #fff1f3;
}
.allocation-in-move-row .allocation-check,
.trainer-in-use-field {
  color: var(--danger);
  font-weight: 900;
}
.allocation-move-row .allocation-check {
  color: #7a294f;
}
.trainer-move-screen .trainer-allocation-controls,
.trainer-move-screen .count-bar,
.trainer-move-screen .trainer-actions {
  position: sticky;
  z-index: 8;
}
.trainer-move-screen .trainer-allocation-controls {
  top: 0;
}
.one-line-controls {
  display: grid;
  grid-template-columns: minmax(320px, 1.5fr) minmax(190px, .8fr) minmax(170px, .7fr) minmax(130px, .55fr) minmax(220px, .9fr) minmax(220px, .9fr) minmax(240px, 1fr) auto;
  align-items: end;
  gap: 7px;
}
.one-line-controls label {
  min-width: 0;
}
.one-line-controls select,
.one-line-controls input {
  width: 100%;
}
.compact-clear-button {
  min-height: 38px;
  padding: 7px 10px;
  white-space: nowrap;
}
.timetable-break {
  display: inline-block;
  max-width: 100%;
  padding: 3px 8px;
  border: 1px solid #f3a6b6;
  border-radius: 999px;
  background: #ffe4ea;
  color: #9f1239;
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.timetable-unit {
  display: inline-block;
  max-width: 100%;
  padding: 3px 8px;
  border: 1px solid #a7e3c1;
  border-radius: 999px;
  background: #e8f8ee;
  color: #12613a;
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.timetable-multiple-wrap {
  position: relative;
  display: inline-block;
  width: 100%;
}

.timetable-multiple-unit {
  display: inline-block;
  width: 100%;
  max-width: 100%;
  min-height: 20px;
  padding: 3px 8px;
  border: 1px solid #f59e0b;
  border-radius: 999px;
  background: #fff3c4;
  color: #92400e;
  font-size: 10.5px;
  line-height: 1.2;
  font-weight: 900;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
  box-sizing: border-box;
}

.timetable-multiple-unit:hover,
.timetable-multiple-wrap.open .timetable-multiple-unit {
  background: #f59e0b;
  border-color: #d97706;
  color: #ffffff;
}

.timetable-unit-popover {
  position: absolute;
  z-index: 80;
  left: 50%;
  top: calc(100% + 5px);
  transform: translateX(-50%);
  display: grid;
  gap: 5px;
  min-width: 150px;
  max-width: 220px;
  padding: 8px;
  border: 1px solid #f59e0b;
  border-radius: 8px;
  background: #fffaf0;
  color: #4a2f08;
  box-shadow: 0 12px 28px rgba(80, 45, 5, .18);
  white-space: normal;
  text-align: left;
}

.timetable-unit-popover b {
  font-size: 11px;
  color: #92400e;
}

.timetable-unit-popover span {
  display: block;
  padding: 3px 6px;
  border: 1px solid #fde68a;
  border-radius: 999px;
  background: #ffffff;
  color: #0f3f35;
  font-size: 11px;
  font-weight: 850;
  white-space: nowrap;
}

.timetable-unit-popover button {
  min-height: 24px;
  padding: 3px 8px;
  border-color: #f59e0b;
  color: #92400e;
  font-size: 11px;
}

.timetable-no-data {
  display: inline-block;
  max-width: 100%;
  padding: 3px 8px;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  background: #f8fafc;
  color: #b91c1c;
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.timetable-panel {
  overflow: visible;
}

.multi-filter-label {
  display: grid;
  gap: 4px;
}

.multi-filter {
  position: relative;
}

.multi-filter summary {
  min-height: 38px;
  padding: 9px 10px;
  border: 1px solid #c8dfe3;
  border-radius: 6px;
  background: #ffffff;
  cursor: pointer;
  font-weight: 700;
  list-style: none;
}

.multi-filter summary::-webkit-details-marker {
  display: none;
}

.multi-filter-menu {
  position: absolute;
  z-index: 30;
  top: calc(100% + 4px);
  left: 0;
  width: min(680px, 92vw);
  max-height: 380px;
  overflow: auto;
  padding: 8px;
  border: 1px solid #bddbd6;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 12px 30px rgba(11, 40, 46, .16);
}

.multi-filter-menu label {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  min-height: 32px;
  padding: 5px 7px;
  border-radius: 5px;
  background: #fbfefd;
  border: 1px solid #e0eeee;
  font-size: 12px;
  line-height: 1.2;
}

.multi-filter-menu input {
  width: 18px;
  height: 18px;
  justify-self: center;
}

.multi-filter-menu label:hover {
  background: #eef9f5;
}

.multi-filter-menu {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.timetable-course-stack {
  display: grid;
  gap: 12px;
}

.timetable-course-card {
  overflow: hidden;
  border: 1px solid #bddbd6;
  border-radius: 8px;
  background: #ffffff;
}

.timetable-course-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-bottom: 1px solid #d8ece8;
  background: #eef9f5;
}

.timetable-course-head h3 {
  margin: 0;
  color: #073f3c;
  font-size: 16px;
}

.timetable-matrix-wrap {
  max-height: min(70vh, 720px);
  overflow: auto;
  overscroll-behavior: contain;
}

.timetable-wide-grid {
  table-layout: fixed;
  width: max-content;
  min-width: max-content;
  border-collapse: separate;
  border-spacing: 0;
}

.timetable-date-col {
  width: 140px;
  min-width: 140px;
}

.timetable-unit-col {
  width: 132px;
  min-width: 132px;
}

.timetable-wide-grid th,
.timetable-wide-grid td {
  width: 132px;
  min-width: 132px;
  max-width: 132px;
  padding: 6px 7px;
  text-align: center;
  vertical-align: middle;
  border-left: 4px solid #ffffff;
  border-right: 4px solid #ffffff;
  box-sizing: border-box;
}

.timetable-wide-grid .timetable-date-head,
.timetable-wide-grid .timetable-date-cell {
  width: 140px;
  min-width: 140px;
  max-width: 140px;
  text-align: left;
}

.timetable-matrix th:first-child,
.timetable-matrix td:first-child {
  position: sticky;
  left: 0;
  z-index: 4;
  background: #f8fdfb;
}

.timetable-wide-grid thead th {
  position: sticky;
  top: 0;
  z-index: 3;
}

.timetable-wide-grid thead tr:nth-child(2) th {
  top: 36px;
  z-index: 3;
}

.timetable-wide-grid .timetable-date-head {
  z-index: 6;
  top: 0;
  background: #f8fdfb;
}

.timetable-course-heading {
  min-height: 36px;
  color: #073f3c;
  font-size: 10px;
  line-height: 1.2;
  font-weight: 900;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: normal;
}

.timetable-group-heading {
  min-height: 33px;
  background: #f6fbfa;
  color: #12343b;
  font-size: 11px;
  line-height: 1.2;
  font-weight: 900;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: normal;
}

.timetable-unit-cell {
  position: relative;
  height: 34px;
  white-space: nowrap;
  overflow: visible;
}

.course-tone-0 { background: #e6f7f2; }
.course-tone-1 { background: #eaf2ff; }
.course-tone-2 { background: #fff6dd; }
.course-tone-3 { background: #f1ecff; }
.course-tone-4 { background: #eaf8e6; }
.course-tone-5 { background: #ffedf3; }
.course-tone-6 { background: #e8f7ff; }
.course-tone-7 { background: #f4f1e8; }
.course-tone-soft-0 { background: #f3fcf9; }
.course-tone-soft-1 { background: #f4f8ff; }
.course-tone-soft-2 { background: #fffaf0; }
.course-tone-soft-3 { background: #f8f5ff; }
.course-tone-soft-4 { background: #f4fbf1; }
.course-tone-soft-5 { background: #fff5f8; }
.course-tone-soft-6 { background: #f3fbff; }
.course-tone-soft-7 { background: #faf8f1; }
.course-tone-cell-0 { background: #fbfffd; }
.course-tone-cell-1 { background: #fbfdff; }
.course-tone-cell-2 { background: #fffdf8; }
.course-tone-cell-3 { background: #fdfbff; }
.course-tone-cell-4 { background: #fbfff9; }
.course-tone-cell-5 { background: #fffafd; }
.course-tone-cell-6 { background: #fafdff; }
.course-tone-cell-7 { background: #fffdf8; }

.custom-timetable-head {
  background: #fff3c4;
  color: #7c2d12;
}

.custom-timetable-panel .timetable-filters {
  align-items: end;
}

.custom-timetable-tabs {
  margin: 10px 0 12px;
}

.custom-calendar-readonly-modal .user-popup-body {
  max-height: 78vh;
  overflow: auto;
}

.custom-calendar-readonly-modal .custom-timetable-wrap {
  width: 100%;
}

.custom-calendar-readonly-modal .custom-timetable-matrix {
  width: 100%;
  table-layout: fixed;
}

.custom-calendar-popup-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.custom-calendar-popup-head h3 {
  margin: 0 0 2px;
  color: #c1121f;
}

.custom-calendar-open-link {
  font-size: 12px;
}

.custom-allocation-layout {
  display: grid;
  grid-template-columns: minmax(280px, 34%) minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  max-width: 100%;
  overflow-x: hidden;
}

.custom-calendar-column,
.custom-student-column {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.custom-allocation-panel {
  border: 1px solid #cfe3e6;
  border-radius: 8px;
  background: #ffffff;
  padding: 9px;
}

.custom-allocation-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.custom-allocation-head h3 {
  margin: 0;
}

.custom-calendar-card,
.custom-student-card {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 8px;
  border: 1px solid #d7e7ea;
  border-radius: 8px;
  background: #ffffff;
}

.custom-calendar-grid {
  display: grid;
  gap: 8px;
}

.custom-calendar-tools {
  display: grid;
  gap: 6px;
}

.custom-calendar-tools input {
  width: 100%;
}

.custom-calendar-segments {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
}

.custom-calendar-segments button {
  min-height: 28px;
  padding: 4px 6px;
  border-color: #d7e7ea;
  background: #f8fbfb;
  font-size: 11px;
}

.custom-calendar-segments button.active {
  border-color: #00796b;
  background: #e4f6f1;
  color: #005f56;
}

.custom-calendar-card {
  cursor: pointer;
}

.custom-calendar-card:hover {
  border-color: #d97706;
  box-shadow: 0 8px 18px rgba(146, 64, 14, .12);
}

.custom-calendar-card.selected {
  outline: 2px solid #00796b;
  outline-offset: 1px;
}

.custom-calendar-card.drop-target {
  border-color: #00796b;
  background: #e9fff6;
  box-shadow: 0 10px 24px rgba(0, 121, 107, .18);
  transform: translateY(-1px);
}

.custom-calendar-card.drop-target .custom-calendar-students em {
  color: #00695c;
}

.custom-calendar-card.drop-assigning {
  position: relative;
  opacity: .8;
}

.custom-calendar-card.drop-assigning::after {
  content: "Assigning...";
  position: absolute;
  inset: 6px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  background: rgba(255, 255, 255, .82);
  color: #00695c;
  font-weight: 950;
}

.custom-calendar-tone-0 { border-color: #f6c453; background: #fffaf0; }
.custom-calendar-tone-1 { border-color: #8dd6c1; background: #f3fffb; }
.custom-calendar-tone-2 { border-color: #b6c8ff; background: #f6f8ff; }
.custom-calendar-tone-3 { border-color: #f5b6cc; background: #fff6fa; }
.custom-calendar-tone-4 { border-color: #b5df8a; background: #f8fff0; }
.custom-calendar-tone-5 { border-color: #c7b7ea; background: #faf7ff; }

.custom-calendar-title,
.custom-student-card > div:first-child {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.custom-calendar-title b,
.custom-student-card b {
  color: #12343b;
  overflow-wrap: anywhere;
}

.custom-calendar-title span,
.custom-student-card span,
.custom-student-card small,
.custom-calendar-card small {
  color: #536970;
  font-size: 11px;
}

.custom-calendar-title .custom-calendar-count {
  color: #c1121f;
  font-size: 13px;
  font-weight: 950;
}

.custom-calendar-students {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.custom-calendar-students span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 6px;
  border: 1px solid #a7e3c1;
  border-radius: 999px;
  background: #e8f8ee;
  color: #12613a;
  font-size: 11px;
  font-weight: 800;
}

.custom-calendar-students em,
.custom-student-card em {
  color: #7a5d12;
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
}

.custom-calendar-students button {
  min-height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  font-size: 10px;
}

.custom-student-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}

.custom-student-card.unassigned {
  border-color: #f59e0b;
  background: #fffaf0;
}

.custom-student-card.assigned {
  border-color: #a7e3c1;
  background: #f7fffb;
}

.custom-student-card[draggable="true"] {
  cursor: grab;
}

.custom-student-card.dragging {
  opacity: .58;
  transform: scale(.985);
  box-shadow: 0 10px 24px rgba(0, 60, 55, .14);
}

.custom-student-card .waiting {
  color: #b45309;
}

.custom-student-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px;
}

.custom-student-actions select,
.custom-student-actions button {
  min-height: 28px;
  font-size: 11px;
}

.custom-assignment-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.custom-assignment-summary button {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  min-height: 28px;
  padding: 4px 8px;
  border-color: #cfe3e6;
  background: #f8fbfb;
}

.custom-assignment-summary b {
  color: #00796b;
  font-size: 14px;
}

.custom-assignment-summary span {
  color: #526a70;
  font-size: 11px;
  font-weight: 800;
}

.custom-assignment-filters {
  display: grid;
  grid-template-columns: minmax(150px, 1.4fr) repeat(4, minmax(105px, 1fr)) auto auto;
  gap: 6px;
  align-items: end;
}

.custom-assignment-filters label {
  min-width: 0;
}

.custom-assignment-filters input,
.custom-assignment-filters select {
  width: 100%;
}

.custom-assignment-filters button {
  min-height: 30px;
  white-space: nowrap;
}

.custom-assignment-toggle {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 30px;
  padding: 5px 8px;
  border: 1px solid #d8e6e8;
  border-radius: 6px;
  background: #f8fbfb;
  font-weight: 850;
  white-space: nowrap;
}

.custom-student-card small,
.custom-calendar-card small {
  overflow-wrap: anywhere;
}

.custom-assignment-history-table td {
  vertical-align: top;
}

@media (max-width: 980px) {
  .custom-allocation-layout {
    grid-template-columns: 1fr;
  }
  .custom-student-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .custom-assignment-filters,
  .custom-assignment-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .custom-assignment-summary {
    display: grid;
  }
}

@media (max-width: 640px) {
  .custom-student-list,
  .custom-assignment-filters,
  .custom-assignment-summary {
    grid-template-columns: 1fr;
  }
}

.timetable-date-cell b,
.timetable-date-cell span {
  display: block;
  line-height: 1.2;
}

.timetable-date-cell span {
  color: #4e6770;
  font-size: 11px;
}

.timetable-current-row td {
  background: #fff8d9;
  font-size: 12px;
  font-weight: 750;
}

.timetable-current-row td:first-child {
  border-left: 4px solid #d97706;
}

.timetable-upload-form {
  margin: 12px 0;
}

.timetable-current-grid .kit-card b {
  font-size: 14px;
  line-height: 1.2;
}

.timetable-current-grid {
  grid-template-columns: repeat(6, minmax(160px, 1fr));
  gap: 7px;
}

.timetable-today-card {
  min-height: 0;
  padding: 7px 9px;
  border-color: #b7dcd6;
}

.timetable-card-row {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(74px, 0.65fr);
  gap: 8px;
  align-items: center;
}

.timetable-card-top {
  margin-bottom: 4px;
}

.timetable-card-top b,
.timetable-card-top strong {
  min-width: 0;
  color: #073f3c;
  font-size: 11px;
  line-height: 1.15;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.timetable-card-top strong {
  text-align: right;
  font-size: 12px;
}

.timetable-card-bottom small {
  color: #36545c;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}

.timetable-card-bottom > span {
  min-width: 0;
  text-align: right;
}

.timetable-card-resources {
  margin-top: 5px;
  padding-top: 4px;
  border-top: 1px dashed rgba(7, 63, 60, 0.18);
  text-align: right;
}

.timetable-resource-button {
  min-height: 20px;
  padding: 2px 9px;
  border: 1px solid #0f766e;
  border-radius: 999px;
  background: #ffffff;
  color: #0f5f59;
  font-size: 10px;
  font-weight: 850;
}

.timetable-resource-button:hover {
  background: #0f766e;
  color: #ffffff;
}

.timetable-no-resources {
  color: #7b8f94;
  font-size: 10px;
  font-weight: 700;
}

.timetable-resource-unit {
  margin: 10px 0 4px;
  color: #073f3c;
  font-size: 13px;
}

.timetable-today-card.course-tone-cell-0 { background: #e6f7f2; border-color: #8bd7c6; }
.timetable-today-card.course-tone-cell-1 { background: #eaf2ff; border-color: #9fc4f5; }
.timetable-today-card.course-tone-cell-2 { background: #fff6dd; border-color: #efd078; }
.timetable-today-card.course-tone-cell-3 { background: #f1ecff; border-color: #c4b5fd; }
.timetable-today-card.course-tone-cell-4 { background: #eaf8e6; border-color: #a7d99a; }
.timetable-today-card.course-tone-cell-5 { background: #ffedf3; border-color: #f3a6c0; }
.timetable-today-card.course-tone-cell-6 { background: #e8f7ff; border-color: #93cfe8; }
.timetable-today-card.course-tone-cell-7 { background: #f4f1e8; border-color: #d7cba4; }

.timetable-today-summary {
  margin: 6px 0;
}

.timetable-matrix .timetable-break,
.timetable-matrix .timetable-unit,
.timetable-matrix .timetable-multiple-unit,
.timetable-matrix .timetable-no-data {
  width: 100%;
  box-sizing: border-box;
  min-width: 104px;
  padding: 3px 6px;
  font-size: 10.5px;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  overflow-wrap: normal;
  word-break: keep-all;
  writing-mode: horizontal-tb;
  letter-spacing: 0;
}

@media (max-width: 1100px) {
  .one-line-controls {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .timetable-current-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.trainer-move-screen .count-bar {
  top: 58px;
  padding: 6px 0;
  background: #fbfefd;
}
.move-filter-help {
  margin: 8px 0;
  border-color: #c8b6ea;
  background: #f4efff;
  color: #3b266c;
  font-weight: 800;
}
.trainer-move-screen .trainer-actions {
  top: 132px;
  padding: 6px 0;
  background: #fbfefd;
}
.move-table-wrap {
  max-height: min(70vh, 720px);
  overflow: auto;
}
.trainer-report-grid,
.import-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}
.trainer-report-grid > div,
.import-summary-grid > div {
  border: 1px solid #d5e5e2;
  border-radius: 8px;
  background: #ffffff;
  padding: 8px;
}
.trainer-report-grid h3,
.import-summary-grid h3 {
  margin: 0 0 4px;
  color: var(--brand-strong);
}
.trainer-report-grid p,
.import-summary-grid p {
  margin: 3px 0;
}
.trainer-report-controls {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
  align-items: end;
  border: 1px solid #cde5e2;
  border-radius: 8px;
  background: #f6fbfa;
  padding: 10px;
}
.trainer-report-controls label,
.trainer-my-filters label {
  min-width: 0;
}
.trainer-report-controls select[multiple],
.trainer-my-filters select[multiple] {
  min-height: 74px;
  padding: 4px 6px;
}
.trainer-report-course-list {
  grid-column: 1 / -1;
  min-width: 0;
}
.trainer-report-course-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 6px;
  max-height: 152px;
  overflow: auto;
  border: 1px solid #cfe0dd;
  border-radius: 7px;
  background: #ffffff;
  padding: 7px;
}
.trainer-report-course-options label {
  display: flex;
  align-items: center;
  gap: 7px;
  min-height: 30px;
  border: 1px solid #d7e7e4;
  border-radius: 7px;
  background: #f8fcfb;
  padding: 5px 7px;
  line-height: 1.2;
}
.trainer-report-course-options input {
  width: auto;
  flex: 0 0 auto;
}
.trainer-report-course-options span {
  min-width: 0;
}
.trainer-report-controls button,
.trainer-copy-actions button {
  min-height: 34px;
}
.trainer-my-filter-card {
  border: 1px solid #cde5e2;
  border-radius: 8px;
  background: #f6fbfa;
  padding: 10px;
  margin: 8px 0;
}
.trainer-my-filter-card .trainer-my-filters {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
  align-items: end;
  margin: 0;
}
.trainer-my-filters label small {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 11px;
}
.student-action-cell {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
  min-width: 190px;
}
.student-action-list-cell {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
  min-width: 150px;
}
.student-action-add-head,
.student-action-add-col {
  min-width: 48px;
  width: 48px;
  text-align: center;
  background: #fff8d6 !important;
}
.student-action-add-col {
  vertical-align: middle !important;
}
.student-action-add-button {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid #0f766e;
  background: #0f766e;
  color: #ffffff;
  font-size: 20px;
  line-height: 1;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.student-action-due-summary {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 1px solid #fde68a;
  border-radius: 999px;
  background: #fffbeb;
  color: #92400e;
  padding: 3px 8px;
  white-space: nowrap;
}
.student-action-due-summary.overdue {
  border-color: #fecdd3;
  background: #fff1f2;
  color: #be123c;
}
.student-action-due-summary span,
.student-action-more-pill {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  background: #e9f8f5;
  color: #075f5d;
  padding: 1px 6px;
  font-weight: 900;
  font-size: 11px;
}
.student-action-by-pill {
  display: inline-flex;
  align-items: center;
  max-width: 120px;
  margin: 1px 3px 1px 0;
  border: 1px solid #d5e5e2;
  border-radius: 999px;
  background: #ffffff;
  color: #23444b;
  padding: 2px 7px;
  font-size: 11px;
  font-weight: 850;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.department-icon-row {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
}
.department-icon {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 950;
  border: 1px solid transparent;
}
.department-icon.accounts { background: #dcfce7; color: #047857; border-color: #86efac; }
.department-icon.support { background: #e0f2fe; color: #0369a1; border-color: #7dd3fc; }
.department-icon.coordinator { background: #f3e8ff; color: #7e22ce; border-color: #d8b4fe; }
.student-action-pill {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 2px 7px;
  border-radius: 999px;
  border: 1px solid #b7dcd7;
  background: #e9f8f5;
  color: #075f5d;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}
.student-action-pill.danger { background: #fff1f2; color: #be123c; border-color: #fecdd3; }
.student-action-pill.warning { background: #fff7ed; color: #b45309; border-color: #fed7aa; }
.student-action-pill.purple { background: #f3e8ff; color: #6b21a8; border-color: #d8b4fe; }
.student-action-pill.accounts { background: #eef2ff; color: #3730a3; border-color: #c7d2fe; }
.student-action-pill.resolved { background: #e5f6ee; color: #047857; border-color: #bbf7d0; }
.student-action-pill.count { background: #fef9c3; color: #854d0e; border-color: #fde68a; }
.student-action-note-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  border: 1px solid #d8b4fe;
  border-radius: 8px;
  background: #f3e8ff;
  color: #4c1d95;
  padding: 10px 12px;
  margin-bottom: 10px;
}
.student-action-note-head b { font-size: 18px; }
.student-action-note-form h3 { margin: 12px 0 8px; }
.student-action-form-section {
  border: 1px solid #d5e5e2;
  border-radius: 8px;
  padding: 10px;
  margin-bottom: 10px;
  background: #ffffff;
}
.student-action-form-section h3 {
  color: #12313d;
  background: #eaf7f5;
  border-radius: 6px;
  padding: 7px 9px;
}
.department-card-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(160px, 1fr));
  gap: 8px;
}
.department-card {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1px solid #cbdedb;
  border-radius: 8px;
  padding: 10px;
  font-weight: 850;
  background: #fbfefe;
}
.department-card input {
  width: 18px;
  height: 18px;
}
.department-card.muted {
  opacity: .55;
}
.department-card-row.locked .department-card {
  background: #f8fafc;
  border-style: dashed;
}
.student-action-history { display: grid; gap: 8px; }
.student-action-history-item {
  border: 1px solid #c9dedb;
  border-radius: 8px;
  background: #fffefa;
  padding: 11px;
  box-shadow: inset 4px 0 0 #facc15;
}
.student-action-history-item.closed {
  background: #f8fafc;
  opacity: .86;
  box-shadow: inset 4px 0 0 #94a3b8;
}
.student-action-history-item p { margin: 6px 0; }
.student-action-card-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
}
.student-action-card-actions {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.student-action-close-top {
  border-color: #fecdd3;
  background: #fff1f2;
  color: #be123c;
  font-weight: 900;
}
.student-action-note-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 7px;
}
.student-action-note-meta span {
  border: 1px solid #d5e5e2;
  border-radius: 999px;
  padding: 3px 7px;
  background: #f8fffd;
  font-size: 12px;
  font-weight: 800;
}
.student-action-note-meta .student-action-note-type-chip {
  border-color: #fde68a;
  background: #fef3c7;
  color: #854d0e;
  font-weight: 950;
}
.student-action-note-sequence {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  background: #0f766e;
  color: #ffffff;
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 950;
  margin-bottom: 6px;
}
.student-action-submitted-title {
  display: flex;
  gap: 5px;
  align-items: baseline;
  flex-wrap: wrap;
  color: #16333c;
}
.student-action-submitted-title span {
  font-weight: 900;
  color: #7a4f00;
}
.student-action-submitted-title b {
  font-size: 15px;
  color: #072f33;
}
.student-action-popup-counts {
  display: inline-flex;
  gap: 6px;
  flex-wrap: wrap;
}
.student-action-popup-counts span {
  border: 1px solid #d8b4fe;
  border-radius: 999px;
  background: #fff;
  padding: 4px 8px;
  font-weight: 850;
}
.student-action-section-title {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: center;
  margin-bottom: 8px;
}
.student-action-section-title h3 {
  margin: 0;
}
.student-action-section-title span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}
.create-note-section {
  border-color: #b7dcd7;
  background: #fbfffe;
}
.student-action-due-label {
  display: block;
  max-width: 280px;
}
.inline-response {
  margin-top: 9px;
}
.student-action-history-log {
  display: grid;
  gap: 5px;
  margin-top: 7px;
  padding-top: 7px;
  border-top: 1px dashed #d5e5e2;
}
.student-action-response-box {
  border: 1px solid #f0c4d0;
  border-radius: 8px;
  background: #fff7fa;
  padding: 9px;
  margin-top: 8px;
  display: grid;
  gap: 7px;
}
.student-action-response-box textarea {
  width: 100%;
}
.student-action-panel .slim-table td { vertical-align: top; }
@media (max-width: 1200px) {
  .trainer-my-filter-card .trainer-my-filters {
    grid-template-columns: repeat(3, minmax(160px, 1fr));
  }
}
.import-summary {
  border: 1px solid #e8c987;
  border-radius: 8px;
  background: #fff9ea;
  padding: 7px 9px;
  margin: 8px 0;
}
.import-summary summary {
  cursor: pointer;
  font-weight: 850;
  color: #6b4a05;
}
.allocation-summary-panel {
  border: 1px solid #efd3dc;
  border-radius: 10px;
  background: #fff4f8;
  padding: 9px;
  margin: 8px 0;
}
.allocation-summary-panel h2 {
  margin: 0;
  color: #7a294f;
  font-size: 16px;
}
.allocation-summary-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 7px;
}
.segmented-control {
  display: inline-flex;
  gap: 4px;
  padding: 3px;
  border: 1px solid #e7c4cf;
  border-radius: 8px;
  background: #fff;
}
.segmented-control button {
  min-height: 28px;
  padding: 4px 9px;
  border-color: transparent;
  background: transparent;
  color: #7a294f;
  font-size: 12px;
  font-weight: 900;
}
.segmented-control button.active {
  border-color: #0b6b68;
  background: #0b6b68;
  color: #fff;
}
.allocation-report-tables {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  margin-top: 0;
}
.allocation-report-tables > div {
  min-width: 0;
  border: 1px solid #e7c4cf;
  border-radius: 8px;
  background: #fff;
  padding: 7px;
  overflow: hidden;
}
.allocation-report-tables h3 {
  margin: 0 0 3px;
  color: #7a294f;
  font-size: 14px;
}
.summary-head-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}
.summary-head-row h3 {
  margin: 0;
}
.summary-head-row label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin: 0;
  color: #7a294f;
  font-size: 12px;
  font-weight: 850;
}
.summary-head-row select {
  min-height: 28px;
  padding: 3px 22px 3px 6px;
  font-size: 12px;
}
.fine-table-wrap {
  width: 100%;
  max-height: none;
  overflow: hidden;
  border-radius: 8px;
}
.fine-summary-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}
.fine-summary-table th,
.fine-summary-table td {
  padding: 2px 4px;
  font-size: 11px;
  line-height: 1.15;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: top;
}
.fine-summary-table td:first-child,
.fine-summary-table td:nth-child(2) {
  white-space: normal;
  overflow-wrap: anywhere;
  text-align: left;
}
.allocation-by-course th:nth-child(1),
.allocation-by-course td:nth-child(1) {
  width: 66%;
}
.allocation-by-course th:nth-child(2),
.allocation-by-course td:nth-child(2),
.allocation-by-course th:nth-child(3),
.allocation-by-course td:nth-child(3),
.allocation-by-course th:nth-child(4),
.allocation-by-course td:nth-child(4) {
  width: 11%;
  white-space: nowrap;
  text-align: center;
}
.allocation-by-trainer th:nth-child(1),
.allocation-by-trainer td:nth-child(1) {
  width: 25%;
}
.allocation-by-trainer th:nth-child(2),
.allocation-by-trainer td:nth-child(2) {
  width: 60%;
}
.allocation-by-trainer th:nth-child(3),
.allocation-by-trainer td:nth-child(3) {
  width: 15%;
  white-space: nowrap;
  text-align: center;
}
.allocation-groups-summary {
  border: 1px solid #e7c4cf;
  border-radius: 8px;
  background: #fff;
  padding: 7px;
}
.allocation-groups-summary .fine-table-wrap {
  overflow-x: auto;
}
.allocation-groups-table {
  min-width: 760px;
}
.allocation-groups-table th:nth-child(1),
.allocation-groups-table td:nth-child(1) {
  width: 24%;
}
.allocation-groups-table th:nth-child(2),
.allocation-groups-table td:nth-child(2) {
  width: 46%;
}
.allocation-groups-table th:nth-child(3),
.allocation-groups-table td:nth-child(3) {
  width: 18%;
}
.allocation-groups-table th:nth-child(4),
.allocation-groups-table td:nth-child(4) {
  width: 12%;
  text-align: center;
  white-space: nowrap;
}
.fine-summary-table th {
  background: #ffe8f0;
  font-weight: 850;
  white-space: normal;
  overflow-wrap: anywhere;
}
.fine-summary-table .grand-total td {
  background: #ffdce5;
  color: #7a294f;
  font-weight: 900;
  border-top: 2px solid #a6d8cb;
}
.trainer-warning-backdrop {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 28px;
  background: rgba(12, 38, 44, .34);
}
.trainer-warning-modal {
  width: min(1180px, 76vw);
  max-height: 78vh;
  display: grid;
  grid-template-rows: auto 1fr auto;
  border: 1px solid #b9d4d1;
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 22px 60px rgba(12, 38, 44, .24);
}
.trainer-warning-head,
.trainer-warning-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 14px;
  border-bottom: 1px solid #dbe9e7;
}
.trainer-warning-actions {
  justify-content: flex-end;
  border-top: 1px solid #dbe9e7;
  border-bottom: 0;
}
.trainer-warning-head h2 {
  margin: 0;
  color: #10262e;
}
.trainer-warning-body {
  overflow: auto;
  padding: 12px 14px;
  background: #f7fbfa;
}
.warning-course {
  border: 1px solid #f0c7a8;
  border-radius: 8px;
  background: #fff8f1;
  padding: 10px 12px;
  margin-bottom: 9px;
}
.warning-course h3 {
  margin: 0 0 3px;
  color: #7c3f05;
}
.warning-course p {
  margin: 2px 0 5px;
}
.warning-course ul {
  margin: 0;
  padding-left: 18px;
  columns: 2;
}
.warning-course li {
  margin: 2px 0;
}
.removed-students-panel {
  margin-top: 10px;
  padding: 9px;
  border: 1px solid #f1b8c1;
  border-radius: 10px;
  background: #fff1f3;
}
.removed-students-panel h2 {
  margin: 0;
  color: #9b1c31;
  font-size: 16px;
}
.removed-students-panel .subtle {
  color: #7a3844;
}
.removed-table-wrap {
  max-height: 220px;
  border-color: #f1b8c1;
}
.removed-students-table th {
  background: #ffdce2;
  color: #7f1727;
}
.removed-students-table td {
  background: #fff8f9;
  color: #381219;
}
.removed-students-table tbody tr:hover td {
  background: #ffecef;
}
.scv-work-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 8px;
}
.scv-horizontal-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(245px, 1fr));
  gap: 8px;
  align-items: stretch;
  margin-top: 8px;
}
.scv-main-row {
  grid-template-columns: minmax(520px, 2fr) minmax(260px, 1fr);
}
.scv-identity-line {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 6px;
  margin-bottom: 8px;
}
.scv-identity-line div {
  min-width: 0;
  border: 1px solid var(--line);
  border-left: 3px solid var(--brand);
  border-radius: 7px;
  background: #fff;
  padding: 6px 8px;
}
.scv-identity-line span {
  display: block;
  color: #4a5f67;
  font-size: 11px;
  font-weight: 750;
  text-transform: uppercase;
}
.scv-identity-line b {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  color: #122b33;
}
.scv-card {
  border: 1px solid var(--scv-grey-border);
  border-radius: 8px;
  background: var(--scv-grey-card);
  padding: 10px;
}
.scv-card h3 {
  color: var(--brand-strong);
  font-size: 15px;
  line-height: 1.15;
  margin-bottom: 7px;
  font-weight: 850;
}
.scv-card p { margin: 0 0 8px; }
.scv-wide-card { grid-column: 1 / -1; }
.scv-card-sso {
  border-color: var(--scv-teal-border);
  background: var(--scv-teal-bg);
}
.scv-case-summary-card {
  border: 1px solid #a9c9cf;
  border-left: 4px solid var(--brand);
  border-radius: 8px;
  background: #f8fbfb;
  padding: 10px;
  margin-bottom: 8px;
}
.scv-case-summary-head h2 {
  color: var(--brand-strong);
  font-size: 17px;
  margin: 0;
}
.scv-case-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 8px;
}
.scv-case-summary-grid article {
  min-width: 0;
  border: 1px solid #d4e3e5;
  border-radius: 8px;
  background: #fff;
  padding: 9px;
}
.scv-case-summary-grid h3 {
  color: var(--brand-strong);
  font-size: 13px;
  font-weight: 900;
  margin: 0 0 7px;
}
.scv-case-summary-grid ul {
  display: grid;
  gap: 5px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.scv-case-summary-grid li {
  display: grid;
  grid-template-columns: minmax(108px, .42fr) minmax(0, 1fr);
  gap: 6px;
  align-items: start;
  font-size: 12px;
  line-height: 1.25;
}
.scv-case-summary-grid li b {
  color: #435962;
}
.scv-case-summary-grid li span {
  min-width: 0;
  color: #10262e;
  font-weight: 650;
  overflow-wrap: anywhere;
}
.scv-work-card-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  align-items: start;
  margin-top: 8px;
}
.scv-work-card {
  min-width: 0;
}
.scv-admin-tools-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 8px;
}
.scv-intake-form {
  display: grid;
  gap: 10px;
}
.scv-intake-row,
.scv-variation-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.scv-intake-row label,
.scv-variation-card label,
.scv-standard-note-entry label {
  min-width: 0;
}
.scv-variation-card {
  border: 1px solid #c995be;
  border-radius: 8px;
  background: #fdeaf6;
  padding: 9px;
}
.scv-variation-card h3,
.scv-standard-note-entry h3,
.scv-standard-notes-panel h3 {
  color: var(--brand-strong);
  font-size: 14px;
  font-weight: 900;
  margin: 0 0 8px;
}
.scv-variation-card .prisms-variation-tree {
  display: contents;
}
.scv-request-detail-card {
  border: 1px solid #efb8ce;
  border-radius: 8px;
  background: #fff1f7;
  padding: 10px;
}
.scv-request-detail-card h3,
.scv-fees-card h3 {
  color: var(--brand-strong);
  font-size: 14px;
  font-weight: 900;
  margin: 0 0 8px;
}
.scv-ai-head h3 {
  margin: 0;
}
.scv-ai-note {
  margin: 6px 0 0;
  color: #075f5d;
  font-weight: 800;
}
.scv-request-detail-card textarea {
  min-height: 82px;
}
.scv-fees-card {
  border: 1px solid #c9dde0;
  border-radius: 8px;
  background: #f8fbfb;
  padding: 10px;
}
.scv-standard-note-entry,
.scv-standard-notes-panel {
  border: 1px solid #bed8d3;
  border-radius: 8px;
  background: #f7fbfb;
  padding: 10px;
}
.scv-standard-note-entry textarea {
  min-height: 78px;
}
.scv-standard-note-list {
  display: grid;
  gap: 8px;
  margin-top: 8px;
}
.scv-standard-note {
  border: 1px solid var(--line);
  border-left: 5px solid var(--user-colour, var(--brand));
  border-radius: 8px;
  background: #fff;
  padding: 8px 10px;
}
.scv-standard-note b {
  color: #122b33;
  font-size: 13px;
}
.scv-standard-note span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-top: 2px;
}
.scv-standard-note p {
  margin: 6px 0 0;
  color: var(--ink);
  line-height: 1.35;
}
.scv-sso-locked {
  border-left: 4px solid #0f766e;
}
.scv-readonly-banner {
  border: 1px solid #99c9bd;
  border-radius: 7px;
  background: #dff3ed;
  color: #075f5d;
  padding: 7px 9px;
  font-size: 12px;
  font-weight: 850;
}
.scv-sso-locked input:disabled,
.scv-sso-locked select:disabled,
.scv-sso-locked textarea:disabled,
.scv-sso-locked button:disabled {
  opacity: 1;
  color: #334e57;
  background: #eef7f5;
  border-color: #bed8d3;
  cursor: not-allowed;
}
.scv-card-review {
  border-color: var(--scv-grey-border);
  background: var(--scv-grey-bg);
}
.scv-owner-accounts-panel {
  display: grid;
  gap: 10px;
  padding: 10px;
  border: 1px solid var(--scv-sand-border);
  border-left: 4px solid #9a7a44;
  border-radius: 8px;
  background: var(--scv-sand-bg);
}
.scv-owner-accounts-panel > .scv-card {
  border-color: var(--scv-sand-border);
  background: var(--scv-sand-card);
}
.scv-owner-accounts-panel h3 {
  color: #5f4a29;
}
.scv-owner-accounts-panel .primary {
  background: #0f766e;
}
.compact-scv-form,
.scv-card .grid {
  gap: 8px;
}
.scv-card label {
  gap: 5px;
  font-size: 13px;
  color: #344a52;
  font-weight: 700;
}
.scv-card input,
.scv-card select,
.scv-card textarea,
.serious-note-form input {
  min-height: 32px;
  padding: 6px 8px;
  color: #10262e;
  font-size: 13px;
  border-color: #c8d9dd;
}
.scv-card textarea {
  line-height: 1.35;
}
.scv-card input[type="checkbox"] {
  width: auto;
  min-height: 0;
  accent-color: var(--brand);
}
.scv-card select[multiple] {
  min-height: 92px;
  padding: 4px;
}
.scv-mini-section {
  border: 1px solid var(--scv-teal-border);
  border-radius: 7px;
  padding: 9px;
  background: rgba(255,255,255,.58);
}
.scv-course-affects-card {
  border-color: #75b99d;
  background: #dff4eb;
}
.scv-course-affects-card .sso-related-row {
  border-color: #8bc9ad;
  background: #eefaf5;
}
.scv-course-affects-card .course-select-box {
  border-color: #90cbb1;
  background: #eaf8f1;
}
.scv-course-affects-card .course-select-card {
  border-color: #a7d8bf;
  background: #f4fcf8;
}
.scv-course-affects-card .proposed-course-card {
  border-color: #9ed1b8;
  background: #f1fbf6;
}
.course-action-row {
  display: block;
  margin-bottom: 8px;
}
.scv-mini-section > b {
  display: block;
  margin-bottom: 8px;
  color: var(--brand-strong);
  font-size: 14px;
  font-weight: 900;
}
.scv-compare-card {
  border-left: 4px solid var(--brand);
  background: var(--scv-grey-bg);
}
.course-compare {
  display: grid;
  gap: 7px;
}
.course-compare div {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
  min-height: 28px;
}
.course-compare b {
  min-width: 62px;
  color: var(--ink);
  font-size: 12px;
}
.course-pill {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  min-height: 22px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 750;
  white-space: normal;
}
.course-pill.same { background: #e7f5ef; color: #047857; }
.course-pill.current { background: #e7f5ef; color: #047857; }
.course-pill.added { background: #e0f1e8; color: #075f5d; }
.course-pill.removed { background: #fff1f0; color: #be123c; }
.course-pill.muted { background: #eef3f4; color: var(--muted); }
.sso-course-fields.is-hidden { display: none; }
.sso-related-row {
  border: 1px solid #d5e6e5;
  border-radius: 7px;
  background: #f7fbfb;
  padding: 6px 8px;
}
.course-select-box {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  border: 1px solid var(--scv-teal-border);
  border-radius: 8px;
  background: #eaf6f2;
  padding: 10px;
}
.course-select-pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.course-select-card {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 10px;
  border: 1px solid #8dbfae;
  border-radius: 8px;
  background: #d9eee6;
}
.proposed-course-card {
  border-color: #84b7a7;
  background: #d5ebe3;
}
.course-dropdown {
  position: relative;
  display: grid;
  gap: 5px;
}
.course-dropdown-button {
  width: 100%;
  min-height: 32px;
  justify-content: space-between;
  border-color: #83aa9f;
  background: #ffffff;
  color: var(--ink);
  font-weight: 800;
  padding: 4px 9px;
}
.course-dropdown-button b {
  color: var(--brand-strong);
  font-size: 11px;
}
.course-dropdown-menu {
  position: absolute;
  z-index: 20;
  top: 35px;
  left: 0;
  right: 0;
  max-height: 142px;
  overflow: auto;
  border: 1px solid #9dc4ba;
  border-radius: 7px;
  background: #fff;
  padding: 4px;
  box-shadow: 0 14px 30px rgba(15, 35, 42, 0.14);
}
.course-dropdown-menu label {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  padding: 4px 6px;
  border-radius: 5px;
  color: #10262e;
  font-size: 13px;
  font-weight: 650;
}
.course-dropdown-menu label:hover {
  background: #edf7f6;
}
.course-dropdown-menu input {
  width: auto;
  min-height: 0;
  flex: 0 0 auto;
  margin: 0;
  accent-color: var(--brand);
}
.selected-course-list {
  display: grid;
  gap: 5px;
  min-height: 78px;
  padding: 7px;
  border: 1px solid #b6d7c3;
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.68);
}
.selected-course-list div {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  line-height: 1.25;
}
.selected-course-list b {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #122b33;
  font-weight: 760;
}
.course-state {
  flex: 0 0 auto;
  font-size: 11px;
  font-weight: 850;
  line-height: 1;
}
.course-state.new { color: #075f5d; }
.course-state.cancelled { color: #be123c; }
.course-state.retained { color: #435962; }
.scv-setup-form textarea {
  min-height: 190px;
  font-family: inherit;
  resize: vertical;
}
.serious-notes-panel {
  border: 1px solid #f0b36d;
  background: #fff8ed;
  border-radius: 8px;
  padding: 8px;
  margin: 8px 0;
}
.serious-notes-head div {
  display: grid;
  gap: 1px;
}
.serious-notes-head b {
  color: #8a3d00;
  font-size: 14px;
}
.serious-notes-head span {
  color: #8a5a22;
  font-size: 12px;
}
.serious-note-form {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 8px;
  align-items: center;
  margin-top: 8px;
}
.serious-note-list {
  display: grid;
  gap: 6px;
  margin-top: 7px;
}
.serious-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border-left: 5px solid var(--user-colour);
  background: #fff;
  border-radius: 7px;
  padding: 7px 8px;
  box-shadow: 0 4px 12px rgba(22,45,54,.05);
}
.serious-note div {
  display: grid;
  gap: 2px;
}
.serious-note b {
  color: #5c2600;
}
.serious-note span,
.empty-serious-note {
  color: var(--muted);
  font-size: 12px;
}
.compact-history {
  display: grid;
  gap: 7px;
}
.compact-history div {
  display: grid;
  gap: 2px;
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--user-colour, var(--line));
  border-radius: 7px;
  background: #fbfdfd;
}
.compact-history span {
  color: var(--muted);
  font-size: 12px;
}
.compact-history p {
  margin: 0;
  color: var(--ink);
}

.scv-history-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  padding: 4vh 4vw;
  background: rgba(8, 28, 34, 0.34);
  backdrop-filter: blur(2px);
}
.scv-history-modal {
  width: min(75vw, 1180px);
  max-height: 82vh;
  display: grid;
  grid-template-rows: auto 1fr;
  overflow: hidden;
  border: 1px solid rgba(15, 118, 110, 0.18);
  border-radius: 10px;
  background: #f8fbfb;
  box-shadow: 0 26px 70px rgba(9, 35, 42, 0.26);
}
.scv-history-modal-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
  background: #fff;
}
.scv-history-modal-head span {
  display: block;
  margin-bottom: 2px;
  color: var(--brand);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .02em;
}
.scv-history-modal-head h2 {
  margin: 0;
  font-size: 19px;
}
.scv-history-modal-body {
  overflow: auto;
  display: grid;
  align-content: start;
  gap: 7px;
  padding: 12px;
}
.scv-history-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--user-colour, var(--brand));
  border-radius: 8px;
  background: #fff;
}
.scv-history-row-title {
  color: #10262e;
  font-size: 14px;
  font-weight: 650;
}
.scv-history-row-main p {
  margin: 4px 0 0;
  color: #344a52;
  font-size: 13px;
  line-height: 1.35;
}
.scv-history-row-stamp {
  color: #536a72;
  font-size: 12px;
  white-space: nowrap;
}

.timesheet-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
.timesheet-steps div {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}
.timesheet-steps b {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--brand);
  color: #fff;
}
.timesheet-panel form {
  display: grid;
  gap: 12px;
  margin-top: 12px;
}
.timesheet-entry-table input { min-width: 86px; }
.timesheet-entry-table td:last-child input { min-width: 180px; }
.timesheet-decision-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.no-access-panel button { width: fit-content; }
.idle-warning {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 70;
  display: grid;
  gap: 2px;
  max-width: 340px;
  border: 1px solid #e8c987;
  border-radius: 10px;
  background: #fff8e8;
  color: #5f4107;
  padding: 10px 12px;
  box-shadow: 0 16px 40px rgba(12, 38, 44, .16);
}
.idle-warning span {
  font-size: 13px;
}
.veda-lock-backdrop {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(12, 38, 44, .42);
}
.veda-lock-card {
  width: min(520px, 94vw);
  display: grid;
  gap: 14px;
  border: 1px solid #bdd8d5;
  border-radius: 12px;
  background: #ffffff;
  padding: 22px;
  box-shadow: 0 24px 70px rgba(12, 38, 44, .26);
}
.veda-lock-card h2 {
  margin: 6px 0 2px;
}
.veda-lock-card p {
  margin: 0;
}
.tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.tabs button.active { background: var(--brand); border-color: var(--brand); color: #fff; }
.checkbox-list { display: grid; gap: 7px; max-height: 360px; overflow: auto; border: 1px solid var(--line); padding: 10px; border-radius: 6px; }
.check-row { display: flex; align-items: flex-start; gap: 8px; }
.check-row input { width: auto; margin-top: 2px; }
.tree-module { margin: 8px 0 4px; font-weight: 700; }
.simple-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 8px;
  margin-top: 10px;
}
.simple-steps div,
.access-guide div {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 10px;
  background: #fbfcfc;
}
.simple-steps b {
  display: inline-grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  flex: 0 0 auto;
}
.access-guide {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 8px;
  margin-top: 10px;
}
.access-guide div { display: grid; }
.access-guide b { color: var(--brand-strong); }
.access-guide span { color: var(--muted); }
.level-list {
  display: grid;
  gap: 8px;
  max-width: 360px;
}
.level-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
  gap: 7px;
  margin: 8px 0 10px;
}
.slim-level-cards {
  grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
  gap: 6px;
}
.level-card {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 6px 9px;
  background: #fff;
  color: var(--ink);
}
.level-card input { width: auto; }
.level-card span { display: grid; gap: 3px; }
.level-card small { color: var(--muted); font-size: 12px; }
.level-card.active {
  border-color: var(--brand);
  background: #e9f6f4;
  box-shadow: inset 0 0 0 1px rgba(20,115,111,.18);
}
.level-choice {
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 11px 12px;
  background: #fff;
  color: var(--ink);
}
.level-choice input { width: auto; }
.level-choice.active {
  border-color: var(--brand);
  background: #e9f6f4;
  color: var(--brand-strong);
  font-weight: 700;
}
.access-box-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 8px;
}
.access-box {
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 27px;
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 4px 7px;
  background: #fff;
  color: var(--ink);
  font-size: 12px;
  white-space: nowrap;
  flex: 0 0 auto;
}
.access-box input { width: auto; }
.access-box.checked {
  border-color: #bee8d0;
  background: #f0fbf5;
  color: var(--ok);
}
.access-box:has(input:disabled) { opacity: .82; }
.module-access-list,
.level-overview-list {
  display: grid;
  gap: 7px;
  margin-top: 8px;
}
.slim-access-list {
  gap: 6px;
}
.copy-access-box {
  display: grid;
  grid-template-columns: minmax(220px, 360px) auto minmax(220px, 1fr);
  gap: 7px;
  align-items: end;
  margin: 6px 0;
  padding: 7px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfc;
}
.copy-access-box button {
  min-height: 32px;
}
.copy-access-box span {
  align-self: center;
  color: var(--muted);
  font-size: 12px;
}
.access-change-summary {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.access-change-summary span {
  display: inline-flex;
  gap: 5px;
  align-items: center;
  min-height: 28px;
  padding: 5px 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfc;
  color: var(--muted);
  font-size: 12px;
}
.access-change-summary b { color: var(--brand-strong); }
.module-access-card,
.level-overview-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 6px 8px;
  background: #fff;
}
.module-access-card {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
}
.module-access-head {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: center;
  margin-bottom: 0;
}
.module-access-head h3 { margin: 0; }
.module-access-head span {
  color: var(--muted);
  font-size: 12px;
  white-space: nowrap;
}
.compact-access-grid {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
  overflow-x: hidden;
  padding-bottom: 1px;
}
.area-access-card {
  margin: 6px 0;
  background: linear-gradient(180deg, #f8fcfb, #fff);
}
.area-mode-switch {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 5px;
}
.area-access-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.area-access-note {
  color: var(--muted);
  font-size: 11px;
  margin-top: 4px;
}
.access-form-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 4px;
}
.access-form-head p {
  margin: 3px 0 0;
}
.access-page-panel { padding: 14px; }
.access-page-title {
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 12px;
}
.access-page-form {
  display: grid;
  gap: 12px;
}
.access-dropdown-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
.access-dropdown,
.area-access-dropdown {
  border: 1px solid #efd3dc;
  border-radius: 8px;
  background: #fff9fb;
  overflow: hidden;
}
.access-dropdown summary,
.area-access-dropdown summary {
  min-height: 38px;
  padding: 7px 10px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  list-style: none;
  background: linear-gradient(180deg, #fff0f6, #ffe8f0);
}
.access-dropdown summary::-webkit-details-marker,
.area-access-dropdown summary::-webkit-details-marker { display: none; }
.access-dropdown summary span:first-child,
.area-access-dropdown summary span:first-child {
  display: grid;
  gap: 2px;
}
.access-dropdown summary small,
.area-access-dropdown summary small {
  color: #835467;
  font-size: 11px;
  font-weight: 850;
}
.dropdown-hint {
  width: 24px;
  height: 24px;
  display: inline-grid;
  place-items: center;
  border: 1px solid #e4baca;
  border-radius: 7px;
  background: #fff;
  color: #8a355b;
  font-weight: 950;
  font-size: 15px;
  line-height: 1;
}
.access-dropdown[open] > summary .dropdown-hint,
.area-access-dropdown[open] > summary .dropdown-hint {
  transform: rotate(180deg);
}
.access-dropdown.no-module-access,
.area-access-dropdown.no-module-access {
  border-color: #e8aebd;
  background: #fff3f5;
}
.access-dropdown.no-module-access > summary,
.area-access-dropdown.no-module-access > summary {
  background: linear-gradient(180deg, #ffdce5, #ffcbd9);
}
.access-dropdown.no-module-access summary small,
.area-access-dropdown.no-module-access summary small {
  color: #b4233f;
}
.access-dropdown-body,
.area-access-body {
  display: grid;
  gap: 9px;
  padding: 10px;
  border-top: 1px solid var(--line);
}
.document-access-main {
  grid-column: 1 / -1;
}
.bulk-approval-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
  padding: 10px 12px;
  border: 1px solid #e8b6c8;
  border-radius: 10px;
  background: linear-gradient(90deg, #fff0f6, #f5fbfa);
}
.bulk-approval-panel h3 {
  margin: 0 0 2px;
  color: #7f1d4b;
  font-size: 16px;
}
.bulk-approval-panel p {
  margin: 0;
  color: #425e66;
}
.future-access-parent summary {
  background: linear-gradient(180deg, #fff4f8, #ffeaf1);
}
.future-access-parent .notice {
  margin: 0;
  font-size: 12px;
}
.access-panel-actions { gap: 7px; }
.access-panel-actions button {
  min-height: 28px;
  padding: 4px 9px;
}
.access-permission-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 7px;
}
.access-chip {
  min-height: 34px;
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 6px 9px;
  color: var(--ink);
  background: #fff;
}
.access-chip input {
  width: auto;
  min-height: auto;
}
.access-chip.checked {
  border-color: #a6dfc5;
  background: #eefaf4;
  color: #00653f;
}
.access-chip.muted { opacity: .48; }
.area-permission-panel {
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid #d7ece8;
  border-radius: 8px;
  background: #f8fcfb;
}
.area-permission-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}
.area-permission-head > div {
  display: grid;
  gap: 2px;
}
.area-permission-head button {
  min-height: 28px;
}
.area-permission-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
}
.sticky-save-row {
  position: sticky;
  bottom: 0;
  z-index: 2;
  padding: 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 -8px 18px rgba(22,45,54,.06);
}
.level-overview-card {
  display: grid;
  grid-template-columns: minmax(150px, .34fr) 1.66fr;
  gap: 8px;
}
.level-overview-card h3 { margin-bottom: 4px; }
.level-overview-card p { margin: 0; }
.level-module-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
  gap: 6px;
}
.level-module-summary span {
  display: grid;
  gap: 3px;
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 5px 8px;
  font-size: 12px;
  background: #fbfcfc;
}
.level-module-summary .yes {
  border-color: #bee8d0;
  background: #f0fbf5;
  color: var(--ok);
}
.level-module-summary .no { color: var(--muted); }
.access-matrix-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}
.summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
}
.summary-grid div {
  display: grid;
  gap: 4px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
  background: #fbfcfc;
}
.summary-grid b { font-size: 24px; color: var(--brand-strong); }
.summary-grid span { color: var(--muted); font-size: 13px; }
.compact-table-wrap { max-width: 100%; overflow-x: auto; }
.compact-table {
  min-width: 980px;
  font-size: 12px;
}
.compact-table th,
.compact-table td {
  padding: 5px 7px;
  vertical-align: middle;
}
.compact-table th { font-size: 11px; }
.compact-table .pill { min-height: 20px; padding: 2px 7px; }
.compact-actions { gap: 4px; }
.compact-actions button {
  padding: 5px 7px;
  font-size: 12px;
}
.compact-table a { color: var(--brand-strong); font-weight: 700; }
.doc-toolbar {
  display: grid;
  grid-template-columns: minmax(180px, 1.4fr) repeat(3, minmax(150px, 1fr)) auto;
  gap: 8px;
  align-items: end;
}
.document-browser {
  margin-bottom: 10px;
  padding: 10px;
  border: 1px solid #b9d4d1;
  border-radius: 10px;
  background: linear-gradient(135deg, #f7fbfa 0%, #fff7fb 100%);
}
.document-first-setup {
  border-color: #f3bfd1;
  background: linear-gradient(135deg, #fff7fb, #f8fffd);
}
.document-first-setup ol {
  display: grid;
  grid-template-columns: repeat(6, minmax(120px, 1fr));
  gap: 8px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}
.document-first-setup li {
  min-height: 34px;
  padding: 8px 10px;
  border: 1px solid #e8b6c8;
  border-radius: 8px;
  background: #ffffff;
  color: #7f1d4b;
  font-weight: 850;
}
.document-browser-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}
.document-browser-head h3 {
  margin: 0 0 2px;
  color: var(--brand-strong);
  font-size: 16px;
}
.document-browser-head p {
  margin: 0;
  color: #4b5f67;
}
.document-browser-summary {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}
.document-browser-summary span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 28px;
  padding: 4px 8px;
  border: 1px solid #cfe3e0;
  border-radius: 999px;
  background: #fff;
  color: #31545b;
  font-size: 12px;
  font-weight: 800;
}
.document-browser-summary b {
  color: #7f1d4b;
}
.document-health-panel {
  padding: 10px;
}
.document-health-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 8px;
}
.document-health-grid button {
  border: 1px solid #b7dcd7;
  border-radius: 8px;
  background: #f8fffd;
  color: #073b3a;
  padding: 10px 12px;
  text-align: left;
  box-shadow: 0 4px 12px rgba(15, 118, 110, .08);
}
.document-health-grid button span {
  display: block;
  font-size: 12px;
  color: #36545b;
  font-weight: 800;
}
.document-health-grid button b {
  display: block;
  margin-top: 3px;
  font-size: 22px;
  color: #0f766e;
}
.document-recent-row {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 8px;
}
.document-recent-row span {
  border: 1px solid #d5e5e2;
  border-radius: 999px;
  padding: 4px 8px;
  background: #ffffff;
  font-size: 12px;
  font-weight: 750;
}
.document-area-tabs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 8px;
}
.document-area-tabs button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 46px;
  padding: 8px 10px;
  border: 1px solid #cfe3e0;
  border-radius: 9px;
  background: #fff;
  color: #12343b;
  text-align: left;
  box-shadow: 0 8px 20px rgba(16, 38, 46, .05);
}
.document-area-tabs button span {
  overflow: hidden;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.document-area-tabs button b {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  min-height: 24px;
  padding: 2px 7px;
  border-radius: 999px;
  background: #e9f6f4;
  color: var(--brand-strong);
}
.document-area-tabs button.active {
  border-color: #0f766e;
  background: linear-gradient(180deg, #0f766e, #075c58);
  color: #fff;
}
.document-area-tabs button.active b {
  background: #fff;
  color: #7f1d4b;
}
.document-subarea-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid #dcebe8;
}
.document-subarea-row button,
.document-subarea-hint {
  min-height: 30px;
  padding: 5px 9px;
  border: 1px solid #d6e5e3;
  border-radius: 999px;
  background: #fff;
  color: #31545b;
  font-weight: 850;
}
.document-subarea-row button.active {
  border-color: #e8b6c8;
  background: #fff0f6;
  color: #7f1d4b;
}
.document-subarea-row b {
  margin-left: 4px;
  color: var(--brand-strong);
}
.document-subarea-hint {
  display: inline-flex;
  align-items: center;
  margin-top: 8px;
  color: #587077;
}
.document-preview-modal {
  width: min(92vw, 1420px);
  height: min(88vh, 900px);
}
.document-preview-modal.document-preview-fullscreen {
  width: 98vw;
  height: 98vh;
  max-height: 98vh;
}
.document-preview-wrap {
  min-height: 0;
  height: 100%;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  gap: 10px;
}
.document-preview-meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(130px, 1fr));
  gap: 8px;
}
.document-preview-meta span {
  border: 1px solid #d6e5e3;
  border-radius: 8px;
  padding: 7px 9px;
  background: #f8fffe;
  color: #12343b;
  font-size: 12px;
}
.document-preview-meta b {
  display: block;
  color: #075c58;
  font-size: 11px;
}
.document-preview-frame {
  width: 100%;
  height: 100%;
  min-height: 420px;
  border: 1px solid #b9d4d1;
  border-radius: 8px;
  background: #fff;
}
.document-preview-fullscreen .document-preview-frame {
  min-height: 70vh;
}
.document-preview-unavailable {
  min-height: 320px;
  border: 1px dashed #b9d4d1;
  border-radius: 8px;
  background: #f8fffe;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 10px;
  text-align: center;
  padding: 24px;
}
.doc-top-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  align-items: center;
  max-width: 100%;
}
.doc-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.doc-tabs button {
  min-height: 30px;
  padding: 6px 10px;
  border-color: #b7d8d4;
  color: var(--brand-strong);
  font-weight: 700;
  background: #ffffff;
}
.doc-tabs button.active {
  background: linear-gradient(180deg, #08706d, var(--brand));
  border-color: var(--brand);
  color: #fff;
}
.tab-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  min-height: 20px;
  padding: 0 6px;
  margin-left: 4px;
  border-radius: 999px;
  background: #e5f6ee;
  color: var(--brand-strong);
  font-size: 12px;
}
.doc-tabs button.active .tab-count {
  background: #fff;
}
.pending-note {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 4px 9px;
  border-radius: 999px;
  background: #fff7ed;
  color: var(--warn);
  font-size: 12px;
  font-weight: 800;
}
.history-table {
  min-width: 1180px;
}
.column-picker {
  margin-top: 10px;
  border: 1px solid var(--line);
  border-radius: 9px;
  padding: 9px 10px;
  background: #fbfcfc;
}
.column-picker summary { cursor: pointer; font-weight: 700; }
.column-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 8px;
  margin-top: 10px;
}
.area-setup-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  display: grid;
  gap: 10px;
  background: #fff;
}
.area-setup-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(260px, 1fr));
  gap: 12px;
  align-items: start;
}
.area-maintenance-card {
  margin-top: 12px;
}
.area-setup-line,
.area-add-form {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  align-items: end;
}
.area-add-form {
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbfc;
}
@media (max-width: 900px) {
  .area-setup-grid {
    grid-template-columns: 1fr;
  }
}
.hidden {
  display: none !important;
}
.password-field {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 6px;
  align-items: center;
}
.password-eye {
  min-width: 54px;
  padding-inline: 10px;
}
.sort-head {
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  font-size: inherit;
  font-weight: 700;
}
.link-button {
  border: 0;
  background: transparent;
  color: var(--brand-strong);
  padding: 0 0 0 6px;
  font-weight: 700;
}
select[data-old-version] { width: auto; min-width: 72px; padding: 5px; }
.access-matrix {
  min-width: 1180px;
  border-collapse: separate;
  border-spacing: 0;
}
.access-matrix th,
.access-matrix td {
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-align: center;
  vertical-align: middle;
}
.access-matrix th {
  min-width: 105px;
  padding: 12px 8px;
  color: var(--ink);
  font-size: 12px;
  line-height: 1.25;
}
.access-matrix th:first-child,
.access-matrix td:first-child {
  position: sticky;
  left: 0;
  z-index: 1;
  min-width: 190px;
  text-align: left;
  background: #fff;
}
.access-matrix th:first-child { z-index: 2; background: var(--soft); }
.access-matrix tr.selected td { background: #f3fbfa; }
.access-matrix tr.selected td:first-child {
  border-left: 5px solid var(--brand);
  background: #e9f6f4;
}
.matrix-level {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--ink);
  font-size: 14px;
  font-weight: 700;
}
.matrix-level input { width: auto; }
.matrix-check {
  width: 20px;
  height: 20px;
  accent-color: var(--brand);
}
.matrix-check:disabled { cursor: default; }
.fake-check {
  display: inline-grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border: 1px solid #aab4bc;
  border-radius: 4px;
  color: #fff;
  font-size: 14px;
  font-weight: 800;
}
.fake-check.checked {
  border-color: var(--brand);
  background: var(--brand);
}
.level-overview td:first-child b { color: var(--ink); }
.group-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 12px;
  margin-top: 14px;
}
.group-card,
.group-summary > div {
  display: grid;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
  background: #fff;
}
.group-card p { margin: 0; color: var(--muted); }
.mini-permissions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 6px;
}
.mini-permissions span {
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 7px 8px;
  font-size: 12px;
  background: #fbfcfc;
}
.mini-permissions .yes { color: var(--ok); background: #f0fbf5; border-color: #bee8d0; }
.mini-permissions .no { color: var(--muted); }
.group-summary { display: grid; gap: 10px; }
.module-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 8px;
  margin-top: 9px;
}
.veda-rule-panel {
  display: grid;
  grid-template-columns: minmax(220px, .42fr) 1.58fr;
  gap: 8px;
  align-items: start;
}
.veda-rule-panel h2 { margin-bottom: 4px; }
.veda-rule-panel p { margin: 0; }
.rule-line {
  display: grid;
  gap: 3px;
  padding: 7px 9px;
  border: 1px solid #bee8d0;
  border-radius: 9px;
  background: linear-gradient(180deg, #f1fbf6, #ffffff);
}
.rule-line b { color: var(--brand-strong); }
.rule-line span { color: var(--muted); font-size: 12px; }
.module-card {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 8px;
  min-height: 128px;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 12px;
  background: linear-gradient(180deg, #ffffff, #fbfdfd);
  box-shadow: var(--shadow-soft);
}
.module-accent {
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: var(--accent);
}
.module-card p { margin: 0; color: var(--muted); }
.module-meta {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  color: var(--muted);
  font-size: 12px;
}
.placement-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  align-items: center;
  gap: 12px;
  background:
    linear-gradient(135deg, rgba(124, 58, 237, .10), transparent 34%),
    linear-gradient(180deg, #ffffff, #fbfefe);
}
.placement-score-card {
  display: grid;
  gap: 3px;
  padding: 12px;
  border: 1px solid #d9ccff;
  border-radius: 9px;
  background: #faf7ff;
  color: #3c255f;
}
.placement-score-card span,
.placement-score-card small {
  color: #5f5271;
}
.placement-score-card b {
  font-size: 28px;
  line-height: 1;
}
.placement-child-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 8px;
}
.placement-child-card {
  display: grid;
  gap: 7px;
  min-height: 128px;
  padding: 11px;
  border: 1px solid #d9ccff;
  border-radius: 9px;
  background: linear-gradient(180deg, #ffffff, #fcfbff);
}
.placement-child-card > span {
  justify-self: start;
  padding: 2px 7px;
  border-radius: 999px;
  background: #f0ebff;
  color: #5b21b6;
  font-size: 11px;
  font-weight: 850;
}
.placement-child-card h3 {
  margin: 0;
  font-size: 15px;
}
.placement-child-card p {
  margin: 0;
  color: var(--muted);
}
.placement-child-card.no-access {
  background: #fff8fb;
  border-color: #f5c2d7;
}
.placement-flow {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.placement-flow > div {
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 9px;
  align-items: center;
  padding: 10px;
  border: 1px solid #cde5e1;
  border-radius: 9px;
  background: #f7fcfb;
}
.placement-flow b {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: var(--brand);
  color: #ffffff;
}
.placement-flow span {
  display: grid;
  gap: 2px;
}
.placement-flow small {
  color: var(--muted);
}
.placement-levels {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
}
.placement-levels span {
  padding: 8px;
  border: 1px solid #dbe6e8;
  border-radius: 8px;
  background: #fbfdfd;
}
.actions { display: flex; gap: 6px; flex-wrap: wrap; }
.week-mismatch {
  color: #b91c1c;
  font-weight: 900;
}
.kit-summary-grid,
.kit-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 10px 0;
}
.kit-summary-grid > div,
.kit-card {
  border: 1px solid #cde5e1;
  border-radius: 8px;
  background: #f8fcfb;
  padding: 10px;
  display: grid;
  gap: 3px;
}
.kit-summary-grid span,
.kit-card span {
  color: var(--muted);
  font-size: 12px;
}
.kit-summary-grid b,
.kit-card b {
  font-size: 24px;
  color: #064e4a;
}
.kit-card h3 {
  margin: 0;
  font-size: 14px;
}
.kit-tabs {
  margin-top: 8px;
}
.kit-form {
  margin-top: 10px;
}
.kit-allocate-layout {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(320px, 1fr);
  gap: 10px;
  align-items: start;
  margin-top: 10px;
}
.kit-search-box,
.kit-selected-box {
  border: 1px solid #d6e6e7;
  border-radius: 8px;
  padding: 10px;
  background: #ffffff;
}
.kit-search-results {
  display: grid;
  gap: 6px;
  margin-top: 8px;
  max-height: 320px;
  overflow: auto;
}
.kit-search-results button {
  text-align: left;
  display: grid;
  gap: 2px;
  border-color: #cde5e1;
  background: #f8fcfb;
}
.kit-search-results button span {
  color: var(--muted);
  font-size: 12px;
}
.kit-report-stack {
  display: grid;
  gap: 12px;
  margin-top: 10px;
}
.kit-report-stack h3 {
  margin: 0 0 7px;
  font-size: 15px;
}
.warning-notice {
  border-color: #c084fc;
  background: #f5edff;
  color: #581c87;
  font-weight: 800;
}
.small { font-size: 12px; }
.right { margin-left: auto; }
.two-span { grid-column: 1 / -1; }
@media (max-width: 800px) {
  .shell { grid-template-columns: 1fr; }
  .shell { padding: 0; gap: 0; }
  .sidebar { border-radius: 0; }
  .sidebar { position: static; }
  .staff-home-banner { grid-template-columns: 1fr; }
  .user-smart-toolbar {
    align-items: stretch;
    flex-direction: column;
  }
  .user-smart-toolbar span {
    white-space: normal;
  }
  .allocation-summary-head {
    align-items: stretch;
    flex-direction: column;
  }
  .segmented-control {
    align-self: stretch;
  }
  .segmented-control button {
    flex: 1 1 0;
  }
  .study-flow-banner {
    grid-template-columns: 1fr;
    padding: 14px;
  }
  .study-flow-title h2 {
    font-size: 19px;
  }
  .study-flow-graphic {
    width: 74px;
    height: 64px;
  }
  .flow-target {
    width: 54px;
    height: 54px;
    border-width: 7px;
  }
  .flow-arrow {
    width: 42px;
  }
  .study-flow-steps {
    gap: 6px;
  }
  .study-flow-step {
    flex: 1 1 150px;
  }
  .study-flow-step:not(:last-child)::after {
    display: none;
  }
  .command-centre-banner {
    grid-template-columns: 1fr;
    padding-right: 14px;
  }
  .target-graphic {
    justify-self: start;
    width: 70px;
    height: 70px;
  }
  .target-graphic span {
    inset: 12px;
    border-width: 7px;
  }
  .target-graphic i {
    width: 44px;
  }
  .home-status-strip { grid-template-columns: 1fr; min-width: 0; }
  .portal-tile { grid-template-columns: 42px minmax(0, 1fr); }
  .tile-action { grid-column: 2; }
  .two, .three { grid-template-columns: 1fr; }
  .content { padding: 14px; }
  .level-overview-card { grid-template-columns: 1fr; }
  .module-access-card { grid-template-columns: 1fr; }
  .area-access-note { grid-column: auto; }
  .veda-rule-panel { grid-template-columns: 1fr; }
  .copy-access-box { grid-template-columns: 1fr; align-items: stretch; }
  .module-access-head { align-items: flex-start; flex-direction: column; }
  .access-dropdown-list,
  .area-permission-list { grid-template-columns: 1fr; }
  .course-select-box { grid-template-columns: 1fr; }
  .scv-intake-row,
  .scv-variation-row,
  .scv-case-summary-grid,
  .scv-work-card-row,
  .scv-admin-tools-row { grid-template-columns: 1fr; }
  .placement-hero,
  .placement-flow,
  .placement-levels,
  .kit-summary-grid,
  .kit-dashboard-grid,
  .kit-allocate-layout { grid-template-columns: 1fr; }
}

@media (max-width: 1100px) {
  .access-dropdown-list,
  .area-permission-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .access-card-grid-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .document-access-main { grid-column: 1 / -1; }
  .document-preview-modal { width: calc(100vw - 20px); height: 88vh; }
  .document-preview-meta { grid-template-columns: 1fr; }
  .doc-toolbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .doc-toolbar .check-row {
    align-self: center;
  }
  .doc-top-actions {
    justify-content: flex-start;
  }
  .top-actions {
    margin-left: auto;
  }
}

@media (max-width: 800px) {
  .access-dropdown-list,
  .area-permission-list { grid-template-columns: 1fr; }
  .user-modal-60,
  .user-modal-85,
  .user-modal-md { width: calc(100vw - 20px); min-width: 0; }
  .access-popup-tools,
  .access-card-grid-5 { grid-template-columns: 1fr; }
  .user-popup-backdrop { padding: 10px; }
}
 .app-version-strong {
  color: #b91c1c;
  font-weight: 800;
}

/* Trainer Allocation History: TA Info (what changed between two finalized TAs) */
.ta-number-cell {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 118px;
}
.ta-info-button {
  padding: 4px 7px;
  border-color: #9fc9c4;
  color: var(--brand-strong);
  background: #f4fbfa;
  font-size: 11px;
  white-space: nowrap;
}
.ta-info-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 10px;
}
.ta-info-summary > div {
  padding: 9px 10px;
  border: 1px solid #c7dedb;
  border-radius: 7px;
  background: #f6fbfa;
}
.ta-info-summary span {
  display: block;
  color: #557078;
  font-size: 11px;
  font-weight: 800;
}
.ta-info-summary b {
  display: block;
  margin-top: 3px;
  color: var(--brand-strong);
  font-size: 14px;
}
.ta-info-counts {
  display: grid;
  grid-template-columns: repeat(7, minmax(80px, 1fr));
  gap: 6px;
  margin: 10px 0;
}
.ta-info-counts span {
  padding: 7px 8px;
  border: 1px solid #c7dedb;
  border-radius: 7px;
  background: #fff;
  color: #557078;
  font-size: 11px;
  font-weight: 800;
  text-align: center;
}
.ta-info-counts b {
  display: block;
  color: var(--brand-strong);
  font-size: 17px;
}
.ta-info-tools {
  display: grid;
  grid-template-columns: minmax(170px, 240px) minmax(260px, 1fr) auto;
  gap: 8px;
  align-items: end;
  margin: 10px 0 8px;
}
.ta-info-tools label {
  display: grid;
  gap: 3px;
  color: #25444a;
  font-size: 11px;
  font-weight: 850;
}
.ta-info-table-wrap {
  max-height: 48vh;
}
.ta-info-table td:nth-child(4),
.ta-info-table td:nth-child(5),
.ta-info-table td:nth-child(6) {
  min-width: 180px;
}
.ta-info-moves {
  margin-top: 12px;
}
.ta-info-moves h3 {
  margin: 0 0 6px;
}
.ta-info-no-moves {
  margin-top: 10px;
}
@media (max-width: 720px) {
  .ta-info-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ta-info-counts { grid-template-columns: repeat(2, minmax(90px, 1fr)); }
  .ta-info-tools { grid-template-columns: 1fr; }
}
