:root {
  --zc-brand-800: #073653;
  --zc-brand-700: #084568;
  --zc-brand-600: #0a527f;
  --zc-brand-100: #d8e9f1;
  --zc-brand-050: #ebf4f7;
  --zc-canvas: #f4f4f1;
  --zc-surface: #fcfdfd;
  --zc-surface-muted: #e9edee;
  --zc-ink: #17242c;
  --zc-muted: #55656f;
  --zc-line: #ced7da;
  --zc-line-strong: #aebdc3;
  --zc-focus: #087ca5;
  --zc-positive: #176b49;
  --zc-positive-bg: #e4f2eb;
  --zc-warning: #825c08;
  --zc-warning-bg: #f8efd7;
  --zc-danger: #a43b30;
  --zc-danger-bg: #f8e9e6;
  --zc-radius-control: 10px;
  --zc-radius-panel: 16px;
  --zc-shadow-panel: 0 18px 42px -30px rgba(7, 54, 83, .38);
  --zc-shadow-menu: 0 20px 50px -24px rgba(7, 54, 83, .42);
  --zc-header-height: 64px;
  --zc-student-nav: 236px;
  --zc-instructor-nav: 252px;
  --zc-content-max: 1320px;
  --zc-student-content-max: 1080px;
}

html,
body {
  min-height: 100%;
}

body {
  margin: 0;
  color: var(--zc-ink);
  background: var(--zc-canvas);
  font-family:
    "Segoe UI Variable", "Segoe UI", system-ui, -apple-system,
    BlinkMacSystemFont, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

body * {
  box-sizing: border-box;
}

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

body button,
body a,
body select {
  -webkit-tap-highlight-color: transparent;
}

body :focus-visible {
  outline: 3px solid var(--zc-focus);
  outline-offset: 3px;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 100;
  padding: 10px 14px;
  border-radius: var(--zc-radius-control);
  color: var(--zc-surface);
  background: var(--zc-brand-800);
  transform: translateY(-160%);
}

.skip-link:focus {
  transform: none;
}

.terminal-frame:not(.terminal-frame--auth) {
  --zc-nav-width: var(--zc-student-nav);
  min-height: 100dvh;
  display: grid;
  grid-template-columns: var(--zc-nav-width) minmax(0, 1fr);
  grid-template-rows: var(--zc-header-height) minmax(0, 1fr);
}

body[data-density="instructor"] .terminal-frame {
  --zc-nav-width: var(--zc-instructor-nav);
}

body[data-shell-mode="gate"] .terminal-frame:not(.terminal-frame--auth) {
  grid-template-columns: minmax(0, 1fr);
}

.terminal-frame--auth {
  min-height: 100dvh;
}

.terminal-header {
  grid-column: 1 / -1;
  position: sticky;
  top: 0;
  z-index: 40;
  min-width: 0;
  height: var(--zc-header-height);
  display: grid;
  grid-template-columns:
    var(--zc-nav-width) minmax(230px, 1fr) minmax(260px, 520px) auto;
  align-items: center;
  border-bottom: 1px solid var(--zc-line);
  background: rgba(252, 253, 253, .98);
}

body[data-shell-mode="gate"] .terminal-header {
  grid-template-columns: 236px minmax(0, 1fr) auto;
}

.terminal-brand {
  height: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 18px;
  border-right: 1px solid var(--zc-line);
  color: var(--zc-ink);
  font-size: 0.9375rem;
  font-weight: 800;
  letter-spacing: -.02em;
  text-decoration: none;
}

.terminal-brand img {
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  object-fit: contain;
}

.terminal-brand small {
  display: block;
  color: var(--zc-muted);
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.terminal-course {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 20px;
}

.terminal-course-mark {
  width: 32px;
  height: 32px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 9px;
  color: var(--zc-surface);
  background: var(--zc-brand-700);
  font-size: 0.75rem;
  font-weight: 800;
}

.terminal-course-copy {
  min-width: 0;
  flex: 0 1 auto;
}

.terminal-course-copy strong,
.terminal-course-copy span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.terminal-course-copy strong {
  font-size: 0.8125rem;
}

.terminal-course-copy span {
  color: var(--zc-muted);
  font-size: 0.6875rem;
}

.terminal-course form {
  flex: 0 0 auto;
}

.terminal-course-switch {
  min-width: 44px;
  min-height: 44px;
  padding: 7px 9px;
  border: 0;
  border-radius: var(--zc-radius-control);
  color: var(--zc-brand-700);
  background: transparent;
  font-size: 0.75rem;
  font-weight: 750;
  cursor: pointer;
}

.terminal-course-switch:hover {
  background: var(--zc-brand-050);
}

.terminal-search {
  min-width: 0;
  padding: 0 18px;
}

.terminal-search input {
  width: 100%;
  height: 40px;
  padding: 0 13px;
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-radius-control);
  color: var(--zc-muted);
  background: var(--zc-surface-muted);
}

.terminal-search input::placeholder {
  color: var(--zc-muted);
  opacity: 1;
}

.terminal-search input:disabled {
  cursor: not-allowed;
}

.terminal-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding-right: 16px;
}

.terminal-notifications {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 10px;
  border-radius: var(--zc-radius-control);
  color: var(--zc-muted);
  font-size: 0.75rem;
  font-weight: 750;
  text-decoration: none;
}

.terminal-notifications span {
  min-width: 22px;
  min-height: 22px;
  display: inline-grid;
  place-items: center;
  padding: 2px 6px;
  border-radius: 999px;
  color: #fff;
  background: var(--zc-danger);
  font-size: 0.625rem;
}

.terminal-notifications:hover,
.terminal-account-trigger:hover {
  color: var(--zc-ink);
  background: var(--zc-canvas);
}

.terminal-account-trigger {
  min-width: 44px;
  min-height: 44px;
  display: grid;
  place-items: center;
  padding: 4px;
  border: 1px solid transparent;
  border-radius: var(--zc-radius-control);
  color: var(--zc-muted);
  background: transparent;
  cursor: pointer;
}

.terminal-avatar {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--zc-surface);
  background: var(--zc-brand-700);
  font-size: 0.6875rem;
  font-weight: 800;
}

.terminal-role-nav {
  grid-column: 1;
  grid-row: 2;
  position: sticky;
  top: var(--zc-header-height);
  min-width: 0;
  height: calc(100dvh - var(--zc-header-height));
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 20px 14px 16px;
  overflow-y: auto;
  border-right: 1px solid var(--zc-line);
  background: var(--zc-surface);
}

.terminal-role-caption {
  padding: 0 11px;
  color: var(--zc-muted);
  font-size: 0.6875rem;
  font-weight: 750;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.terminal-role-nav nav {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.terminal-nav-link {
  position: relative;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 11px;
  border-radius: var(--zc-radius-control);
  color: var(--zc-muted);
  font-size: 0.8125rem;
  font-weight: 720;
  text-decoration: none;
}

.terminal-nav-link:hover {
  color: var(--zc-ink);
  background: var(--zc-canvas);
}

.terminal-nav-link[aria-current="page"] {
  color: var(--zc-brand-700);
  background: var(--zc-brand-050);
  box-shadow: inset 3px 0 0 var(--zc-brand-600);
}

.terminal-nav-link small {
  padding: 3px 7px;
  border-radius: 999px;
  color: var(--zc-brand-700);
  background: var(--zc-brand-100);
  font-size: 0.625rem;
}

.terminal-main {
  grid-column: 2;
  grid-row: 2;
  min-width: 0;
  width: auto;
  max-width: none;
  margin: 0;
  padding: 32px clamp(24px, 3vw, 48px) 56px;
  overflow: visible;
  background: var(--zc-canvas);
}

body[data-shell-mode="gate"] .terminal-main,
.terminal-frame--auth .terminal-main {
  grid-column: 1;
}

.terminal-content {
  width: min(100%, var(--zc-content-max));
  margin: 0 auto;
}

.content-inner.terminal-content.terminal-content--plan-publish {
  width: min(100%, 1000px);
  max-width: 1000px;
}

body[data-density="student"] .terminal-content {
  max-width: var(--zc-student-content-max);
}

.terminal-messages {
  width: min(100%, var(--zc-content-max));
  display: grid;
  gap: 8px;
  margin: 0 auto 22px;
}

body[data-density="student"] .terminal-messages {
  max-width: var(--zc-student-content-max);
}

.terminal-message {
  margin: 0;
  padding: 11px 14px;
  border: 1px solid var(--zc-brand-100);
  border-inline-start: 4px solid var(--zc-brand-600);
  border-radius: var(--zc-radius-control);
  color: var(--zc-brand-800);
  background: var(--zc-brand-050);
  overflow-wrap: anywhere;
}

.terminal-message.success {
  border-color: #abd1bd;
  border-inline-start-color: var(--zc-positive);
  color: var(--zc-positive);
  background: var(--zc-positive-bg);
}

.terminal-message.warning {
  border-color: #d8bb74;
  border-inline-start-color: var(--zc-warning);
  color: var(--zc-warning);
  background: var(--zc-warning-bg);
}

.terminal-message.error {
  border-color: #dfb2ab;
  border-inline-start-color: var(--zc-danger);
  color: var(--zc-danger);
  background: var(--zc-danger-bg);
}

.terminal-preview-banner {
  width: min(100%, var(--zc-content-max));
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0 auto 22px;
  padding: 12px 14px;
  border: 1px solid #d8bb74;
  border-radius: var(--zc-radius-control);
  color: #5d4308;
  background: var(--zc-warning-bg);
}

body[data-density="student"] .terminal-preview-banner {
  max-width: var(--zc-student-content-max);
}

/* TB-341 / DS-070: progressive floating notes on the material reader. */
.reading-notes-toggle { display: none; }
.reading-notes-widget.is-enhanced {
  position: fixed;
  inset: calc(var(--zc-header-height) + 20px) 20px 20px auto;
  z-index: 46;
  width: auto;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin: 0;
  pointer-events: none;
}
body[data-reader-view="true"] .reading-notes-widget.is-enhanced {
  inset-block-start: 20px;
}
.reading-notes-widget.is-enhanced > * { pointer-events: auto; }
.reading-notes-widget.is-enhanced .reading-notes-panel {
  position: static;
  width: clamp(320px, 26vw, 380px);
  max-height: 100%;
  margin: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--zc-line-strong);
  border-radius: var(--zc-radius-panel);
  background: var(--zc-surface);
  box-shadow: var(--zc-shadow-menu);
}
.reading-notes-widget.is-enhanced .reading-notes-panel[hidden] { display: none; }
.reading-notes-toggle {
  width: 60px;
  height: 60px;
  min-width: 60px;
  min-height: 60px;
  place-items: center;
  padding: 5px;
  border: 3px solid #fff;
  border-radius: 50%;
  color: #fff;
  background: var(--zc-brand-700);
  box-shadow: 0 8px 24px rgba(7, 54, 83, .34);
  cursor: pointer;
}
.reading-notes-widget.is-enhanced .reading-notes-toggle { display: grid; }
.reading-notes-toggle img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  border-radius: 50%;
}
.reading-notes-toggle:focus-visible {
  outline: 3px solid var(--zc-focus);
  outline-offset: 3px;
}
.reading-notes-widget.is-enhanced textarea[data-note-autosave] {
  width: 100%;
  min-height: 260px;
}

@media screen and (max-width: 899px) {
  html:has(.reading-notes-widget.is-enhanced) {
    scrollbar-width: none;
  }
  html:has(.reading-notes-widget.is-enhanced)::-webkit-scrollbar {
    width: 0;
    height: 0;
  }
  .reading-notes-widget.is-enhanced {
    inset: auto 20px calc(76px + env(safe-area-inset-bottom)) 20px;
    max-height: calc(100dvh - var(--zc-header-height) - 96px - env(safe-area-inset-bottom));
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
  }
  body[data-reader-view="true"] .reading-notes-widget.is-enhanced {
    inset-block-end: calc(12px + env(safe-area-inset-bottom));
    max-height: calc(100dvh - 24px - env(safe-area-inset-bottom));
  }
  .reading-notes-widget.is-enhanced .reading-notes-panel {
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
    max-height: calc(100% - 68px);
  }
  .reading-notes-widget.is-enhanced textarea[data-note-autosave] {
    min-height: 180px;
    max-height: 34dvh;
  }
}

.terminal-preview-banner div {
  min-width: 0;
  flex: 1;
}

.terminal-preview-banner strong,
.terminal-preview-banner span,
.terminal-preview-banner small {
  display: block;
}

.terminal-preview-banner strong {
  font-size: 0.8125rem;
}

.terminal-preview-banner span {
  margin-top: 2px;
  font-size: 0.75rem;
  font-weight: 700;
}

.terminal-preview-banner small {
  margin-top: 2px;
  color: #6c5114;
  font-size: 0.6875rem;
}

.terminal-preview-banner form {
  flex: 0 0 auto;
}

.terminal-preview-banner button,
.terminal-account-panel button,
.terminal-more-panel button {
  min-height: 44px;
  border: 1px solid var(--zc-line-strong);
  border-radius: var(--zc-radius-control);
  color: var(--zc-brand-700);
  background: var(--zc-surface);
  font-weight: 750;
  cursor: pointer;
}

.terminal-preview-banner button {
  padding: 0 14px;
}

.terminal-account-panel {
  position: fixed;
  top: calc(var(--zc-header-height) + 8px);
  right: 14px;
  z-index: 70;
  width: min(360px, calc(100% - 28px));
  max-height: calc(100dvh - var(--zc-header-height) - 24px);
  padding: 12px;
  overflow-y: auto;
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-radius-panel);
  background: var(--zc-surface);
  box-shadow: var(--zc-shadow-menu);
}

.terminal-account-panel[hidden],
.terminal-more-panel[hidden] {
  display: none;
}

[data-terminal-modal-background][aria-hidden="true"] {
  pointer-events: none;
  user-select: none;
}

.terminal-account-identity {
  padding: 5px 7px 12px;
  border-bottom: 1px solid var(--zc-line);
}

.terminal-account-identity strong,
.terminal-account-identity span {
  display: block;
}

.terminal-account-identity span {
  color: var(--zc-muted);
  font-size: 0.6875rem;
}

.terminal-account-panel form {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 8px 0 0;
}

.terminal-account-panel form + form {
  margin-top: 8px;
  border-top: 1px solid var(--zc-line);
}

.terminal-account-panel label {
  color: var(--zc-muted);
  font-size: 0.6875rem;
  font-weight: 700;
}

.terminal-account-panel select {
  width: 100%;
  min-height: 44px;
  padding: 0 10px;
  border: 1px solid var(--zc-line-strong);
  border-radius: var(--zc-radius-control);
  color: var(--zc-ink);
  background: var(--zc-surface);
}

.terminal-account-panel button {
  width: 100%;
  padding: 0 12px;
  text-align: left;
}

.terminal-account-panel button:hover,
.terminal-more-panel button:hover {
  border-color: var(--zc-brand-600);
  background: var(--zc-brand-050);
}

.terminal-mobile-nav,
.terminal-more-panel,
.terminal-scrim {
  display: none;
}

.terminal-state {
  max-width: 680px;
  padding: 22px;
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-radius-panel);
  color: var(--zc-ink);
  background: var(--zc-surface);
  box-shadow: var(--zc-shadow-panel);
}

.terminal-state h2 {
  margin: 0;
  font-size: 1.1875rem;
}

.terminal-state p {
  margin: 7px 0 0;
  color: var(--zc-muted);
}

.terminal-state--loading {
  min-height: 120px;
  color: var(--zc-muted);
  background:
    linear-gradient(
      100deg,
      var(--zc-surface-muted) 20%,
      var(--zc-surface) 35%,
      var(--zc-surface-muted) 50%
    );
  background-size: 240% 100%;
}

.terminal-state--error,
.terminal-state--unavailable {
  border-color: #ddb2ab;
  color: var(--zc-danger);
  background: var(--zc-danger-bg);
}

.terminal-state--success {
  border-color: #a7cfba;
  color: var(--zc-positive);
  background: var(--zc-positive-bg);
}

.terminal-state [disabled],
.terminal-state--disabled {
  color: var(--zc-muted);
  background: var(--zc-surface-muted);
  cursor: not-allowed;
}

/* TB-273: controlled student Course Home. */
.course-home {
  min-width: 0;
  max-width: 100%;
  display: grid;
  gap: 28px;
  overflow-wrap: anywhere;
}

.course-home > *,
.course-home-hero-grid > *,
.course-home-details-grid > *,
.course-home-moment-list > * {
  min-width: 0;
}

.course-home-hero {
  position: relative;
  isolation: isolate;
  min-height: 330px;
  overflow: hidden;
  border: 1px solid rgba(8, 69, 104, .32);
  border-radius: 22px;
  color: #fff;
  background:
    radial-gradient(
      circle at 92% 18%,
      rgba(216, 233, 241, .2) 0 12%,
      transparent 12.5%
    ),
    linear-gradient(135deg, var(--zc-brand-800), var(--zc-brand-600));
  box-shadow: 0 24px 58px -38px rgba(7, 54, 83, .72);
}

.course-home-hero-media,
.course-home-hero-media img,
.course-home-hero-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.course-home-hero-media {
  z-index: -2;
}

.course-home-hero-media img {
  object-fit: cover;
  object-position: center;
}

.course-home-hero-overlay {
  z-index: 1;
  background:
    linear-gradient(
      105deg,
      rgba(7, 42, 63, .92) 0%,
      rgba(7, 54, 83, .79) 55%,
      rgba(7, 54, 83, .62) 100%
    );
}

.course-home-hero-overlay--strong {
  background:
    linear-gradient(
      105deg,
      rgba(5, 34, 52, .95) 0%,
      rgba(7, 54, 83, .86) 58%,
      rgba(7, 54, 83, .7) 100%
    );
}

.course-home-hero-grid {
  position: relative;
  z-index: 1;
  min-height: 330px;
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  align-items: center;
  gap: clamp(28px, 5vw, 64px);
  padding: clamp(30px, 5vw, 58px);
}

.course-home-hero-copy {
  max-width: 68ch;
}

.course-home-kicker {
  margin: 0 0 8px;
  color: inherit;
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: .11em;
  line-height: 1.3;
  text-transform: uppercase;
}

.course-home-hero h1 {
  margin: 0;
  color: inherit;
  font-size: clamp(2.125rem, 4.2vw, 3.625rem);
  font-weight: 800;
  letter-spacing: -.035em;
  line-height: 1.04;
}

.course-home-welcome {
  margin: 18px 0 0;
  color: #fff;
  font-size: clamp(1.125rem, 2vw, 1.5rem);
  font-weight: 700;
  line-height: 1.3;
}

.course-home-orientation {
  max-width: 58ch;
  margin: 10px 0 0;
  color: rgba(255, 255, 255, .88);
  font-size: 0.9375rem;
  line-height: 1.65;
}

.course-home-next {
  padding: clamp(22px, 3vw, 30px);
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: var(--zc-radius-panel);
  background: rgba(4, 35, 53, .48);
  box-shadow: 0 18px 42px -30px rgba(0, 0, 0, .75);
  backdrop-filter: blur(8px);
}

.course-home-primary-action,
.course-home-preview-edit button {
  min-height: 44px;
  border-radius: var(--zc-radius-control);
  font-weight: 800;
}

.course-home-primary-action {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px 18px;
  border: 2px solid #fff;
  color: var(--zc-brand-800);
  background: #fff;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
}

.course-home-primary-action:hover {
  color: var(--zc-brand-800);
  background: var(--zc-brand-050);
}

.course-home-primary-action--disabled,
.course-home-primary-action--disabled:hover {
  color: #fff;
  border-color: rgba(255, 255, 255, .62);
  background: rgba(255, 255, 255, .14);
  cursor: not-allowed;
}

.course-home-action-detail {
  margin: 11px 0 0;
  color: rgba(255, 255, 255, .86);
  font-size: 0.8125rem;
  line-height: 1.55;
}

.course-home-preview-tools {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: flex-end;
  padding: 0 clamp(30px, 5vw, 58px) 24px;
}

.course-home-preview-edit {
  margin: 0;
}

.course-home-preview-edit button {
  padding: 9px 14px;
  border: 1px solid rgba(255, 255, 255, .54);
  color: #fff;
  background: rgba(4, 35, 53, .58);
  cursor: pointer;
}

.course-home-region {
  min-width: 0;
  padding: clamp(22px, 3vw, 30px);
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-radius-panel);
  background: var(--zc-surface);
  box-shadow: var(--zc-shadow-panel);
}

.course-home-region-heading {
  margin-bottom: 18px;
}

.course-home-region-heading .course-home-kicker {
  color: var(--zc-brand-600);
}

.course-home-region h2 {
  margin: 0;
  color: var(--zc-ink);
  font-size: clamp(1.375rem, 2.2vw, 1.75rem);
  letter-spacing: -.02em;
  line-height: 1.2;
}

.course-home-region h3 {
  margin: 0;
  color: var(--zc-ink);
  font-size: 1.0625rem;
  line-height: 1.35;
}

.course-home-moment-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.course-home-moment {
  min-width: 0;
  margin: 0;
  padding: 2px 22px;
}

.course-home-moment:first-child {
  padding-left: 0;
}

.course-home-moment + .course-home-moment {
  border-left: 1px solid var(--zc-line);
}

.course-home-moment:last-child {
  padding-right: 0;
}

.course-home-moment-label {
  margin: 0 0 7px;
  color: var(--zc-brand-600);
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1.3;
  text-transform: uppercase;
}

.course-home-moment-value,
.course-home-instructor-email {
  margin: 0;
}

.course-home-moment-value {
  color: var(--zc-ink);
  font-weight: 650;
  line-height: 1.55;
}

.course-home-moment-value time {
  display: block;
  margin-top: 4px;
  color: var(--zc-muted);
  font-size: 0.8125rem;
  font-weight: 600;
}

.course-home-moment .course-home-richtext {
  margin-top: 8px;
}

/* TB-359: the viewer's own section's meeting facts. */
.course-home-meeting-list {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 18px 24px;
  margin: 0;
}

.course-home-meeting-fact > dt {
  margin: 0 0 7px;
  color: var(--zc-brand-600);
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1.3;
  text-transform: uppercase;
}

.course-home-meeting-fact > dd {
  margin: 0;
  color: var(--zc-ink);
  font-weight: 650;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.course-home-meeting-timezone {
  display: block;
  margin-top: 4px;
  color: var(--zc-muted);
  font-size: 0.8125rem;
  font-weight: 600;
}

.course-home-meeting-fact--exceptions {
  grid-column: 1 / -1;
}

.course-home-meeting-fact--exceptions > dd {
  max-width: 68ch;
  font-weight: 500;
}

.course-home-details-grid {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: 24px;
}

.course-home-instructor > h3 {
  font-size: 1.1875rem;
}

.course-home-instructor-email {
  margin-top: 7px;
}

.course-home-instructor-email a,
.course-home-richtext a {
  color: var(--zc-brand-600);
  font-weight: 700;
  text-underline-offset: 3px;
}

.course-home-richtext {
  max-width: 68ch;
  margin-top: 16px;
  color: var(--zc-ink);
  line-height: 1.7;
  overflow-wrap: anywhere;
}

.course-home-richtext > :first-child {
  margin-top: 0;
}

.course-home-richtext > :last-child {
  margin-bottom: 0;
}

.course-home-richtext img,
.course-home-richtext iframe,
.course-home-richtext table {
  max-width: 100%;
}

.course-home-richtext table {
  display: block;
  overflow-x: auto;
}

.course-home-link-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.course-home-link-list a {
  min-height: 44px;
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 10px 12px;
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-radius-control);
  color: var(--zc-brand-700);
  background: var(--zc-brand-050);
  font-weight: 750;
  line-height: 1.35;
  text-decoration: none;
}

.course-home-link-list a:hover {
  border-color: var(--zc-brand-600);
  background: #fff;
}

.course-home-link-list small {
  color: var(--zc-muted);
  font-size: 0.6875rem;
  font-weight: 600;
}

.course-home-optional {
  max-width: 100%;
}

@media (max-width: 1120px) {
  .terminal-header {
    grid-template-columns:
      var(--zc-nav-width) minmax(200px, 1fr) minmax(190px, 320px) auto;
  }

  .terminal-notifications {
    width: 44px;
    overflow: hidden;
    color: transparent;
  }

  .terminal-notifications span {
    color: #fff;
  }
}

@media (max-width: 880px) {
  :root {
    --zc-header-height: 56px;
  }

  .terminal-frame:not(.terminal-frame--auth) {
    display: block;
    min-width: 0;
    padding-top: var(--zc-header-height);
  }

  .terminal-header,
  body[data-shell-mode="gate"] .terminal-header {
    position: fixed;
    inset: 0 0 auto;
    display: flex;
    height: var(--zc-header-height);
    padding: 0 10px;
  }

  .terminal-brand {
    flex: 0 0 auto;
    min-width: 44px;
    padding: 0 8px 0 2px;
    border-right: 0;
  }

  .terminal-brand img {
    width: 30px;
    height: 30px;
  }

  .terminal-brand span {
    display: none;
  }

  .terminal-course {
    min-width: 0;
    flex: 1;
    padding: 0 6px;
  }

  .terminal-course-mark,
  .terminal-course-switch,
  .terminal-search,
  .terminal-notifications {
    display: none;
  }

  .terminal-course-copy {
    min-width: 0;
    max-width: 100%;
  }

  .terminal-course-copy strong {
    font-size: 0.75rem;
  }

  .terminal-course-copy span {
    font-size: 0.625rem;
  }

  .terminal-header-actions {
    flex: 0 0 auto;
    padding: 0;
  }

  .terminal-role-nav {
    display: none;
  }

  .terminal-main {
    min-width: 0;
    padding:
      22px 16px
      calc(88px + env(safe-area-inset-bottom));
  }

  .terminal-content {
    min-width: 0;
  }

  .terminal-preview-banner {
    align-items: flex-start;
    margin-bottom: 18px;
  }

  .terminal-preview-banner button {
    white-space: nowrap;
  }

  .terminal-mobile-nav {
    position: fixed;
    inset: auto 0 0;
    z-index: 45;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    min-height: calc(64px + env(safe-area-inset-bottom));
    padding: 6px 6px env(safe-area-inset-bottom);
    border-top: 1px solid var(--zc-line);
    background: rgba(252, 253, 253, .98);
    box-shadow: 0 -12px 30px -26px rgba(7, 54, 83, .7);
  }

  .terminal-mobile-nav a,
  .terminal-mobile-nav button {
    min-width: 0;
    min-height: 52px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 2px;
    padding: 4px 2px;
    overflow: hidden;
    border: 0;
    border-radius: var(--zc-radius-control);
    color: var(--zc-muted);
    background: transparent;
    font-size: 0.625rem;
    font-weight: 720;
    line-height: 1.15;
    text-align: center;
    text-decoration: none;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .terminal-mobile-nav button {
    cursor: pointer;
  }

  .terminal-mobile-nav [aria-current="page"] {
    color: var(--zc-brand-700);
    background: var(--zc-brand-050);
  }

  .terminal-mobile-mark {
    font-size: 0.875rem;
    font-weight: 850;
    line-height: 1;
  }

  .terminal-more-panel {
    position: fixed;
    inset: auto 10px calc(70px + env(safe-area-inset-bottom));
    z-index: 70;
    max-height: min(68dvh, 560px);
    padding: 15px;
    overflow-y: auto;
    border: 1px solid var(--zc-line);
    border-radius: var(--zc-radius-panel);
    background: var(--zc-surface);
    box-shadow: var(--zc-shadow-menu);
  }

  .terminal-more-panel:not([hidden]) {
    display: block;
  }

  .terminal-more-panel header {
    margin-bottom: 8px;
    padding: 0 2px 10px;
    border-bottom: 1px solid var(--zc-line);
  }

  .terminal-more-panel h2 {
    margin: 0;
    font-size: 1.125rem;
  }

  .terminal-more-panel nav,
  .terminal-more-account {
    display: grid;
    gap: 4px;
  }

  .terminal-more-panel a,
  .terminal-more-panel button {
    min-height: 44px;
    display: flex;
    align-items: center;
    padding: 9px 11px;
    border-radius: var(--zc-radius-control);
    color: var(--zc-muted);
    font-size: 0.8125rem;
    font-weight: 720;
    text-decoration: none;
  }

  .terminal-more-panel a:hover,
  .terminal-more-panel a[aria-current="page"] {
    color: var(--zc-brand-700);
    background: var(--zc-brand-050);
  }

  .terminal-more-account {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--zc-line);
  }

  .terminal-more-account form {
    margin: 0;
  }

  .terminal-more-panel button {
    width: 100%;
  }

  .terminal-scrim {
    position: fixed;
    inset: 0;
    z-index: 60;
    background: rgba(7, 54, 83, .28);
  }

  body.terminal-panel-open .terminal-scrim {
    display: block;
  }

  body.terminal-panel-open {
    overflow: hidden;
  }
}

@media (max-width: 430px) {
  .terminal-main {
    padding-right: 14px;
    padding-left: 14px;
  }

  .terminal-preview-banner {
    display: block;
  }

  .terminal-preview-banner form {
    margin-top: 10px;
  }

  .terminal-preview-banner button {
    width: 100%;
  }

  .terminal-account-panel {
    right: 10px;
    width: calc(100% - 20px);
  }
}

@media (max-width: 880px) {
  .course-home {
    gap: 20px;
  }

  .course-home-hero {
    min-height: 0;
    border-radius: var(--zc-radius-panel);
  }

  .course-home-hero-grid {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    padding: 28px 22px;
  }

  .course-home-hero h1 {
    font-size: clamp(1.9375rem, 10vw, 2.625rem);
  }

  .course-home-next {
    padding: 20px;
  }

  .course-home-primary-action {
    width: 100%;
  }

  .course-home-preview-tools {
    justify-content: stretch;
    padding: 0 22px 22px;
  }

  .course-home-preview-edit,
  .course-home-preview-edit button {
    width: 100%;
  }

  .course-home-region {
    padding: 22px 18px;
  }

  .course-home-moment-list,
  .course-home-details-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .course-home-details-grid {
    gap: 20px;
  }

  .course-home-moment {
    padding: 18px 0;
  }

  .course-home-moment:first-child {
    padding-top: 0;
  }

  .course-home-moment:last-child {
    padding-bottom: 0;
  }

  .course-home-moment + .course-home-moment {
    border-top: 1px solid var(--zc-line);
    border-left: 0;
  }

  .course-home-link-list a {
    width: 100%;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .skip-link,
  .terminal-course-switch,
  .terminal-notifications,
  .terminal-account-trigger,
  .terminal-nav-link,
  .terminal-preview-banner button,
  .terminal-account-panel,
  .terminal-account-panel button,
  .course-home-primary-action,
  .course-home-preview-edit button,
  .course-home-link-list a,
  .terminal-mobile-nav a,
  .terminal-mobile-nav button,
  .terminal-more-panel,
  .terminal-more-panel a,
  .terminal-more-panel button {
    transition:
      color 140ms ease,
      background-color 140ms ease,
      border-color 140ms ease,
      opacity 140ms ease,
      transform 100ms ease;
  }

  .terminal-state--loading {
    animation: terminal-loading 1.4s linear infinite;
  }

  .terminal-preview-banner button:active,
  .terminal-account-panel button:active,
  .terminal-mobile-nav a:active,
  .terminal-mobile-nav button:active,
  .terminal-more-panel button:active {
    transform: translateY(1px);
  }
}

@keyframes terminal-loading {
  to {
    background-position-x: -240%;
  }
}

/* TB-274 Plan & Publish: dense operations workspace, native Terminal tokens. */
.plan-publish { display: grid; gap: 20px; min-width: 0; }
.plan-publish-header { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 20px; padding: 18px 20px; border: 1px solid var(--zc-line); border-radius: var(--zc-radius-panel); background: var(--zc-surface); }
.plan-publish-header-meta { min-width: 0; }
.plan-publish-header h1 { margin: 4px 0; }
.plan-publish-kicker, .plan-publish-row small, .plan-publish-entry small, .plan-publish-eyebrow { display: block; color: var(--zc-muted); }
.plan-publish-draft-badge { display: inline-flex; align-items: center; gap: 8px; margin: 4px 0 0; padding: 3px 10px; border: 1px solid var(--zc-brand-100); border-radius: 999px; color: var(--zc-brand-800); background: var(--zc-brand-050); font-size: .82rem; }
.plan-publish-draft-badge > span { flex: 0 0 8px; width: 8px; height: 8px; border-radius: 50%; background: var(--zc-brand-600); }
.plan-publish-draft-badge.is-published { color: var(--zc-muted); background: var(--zc-surface-muted); border-color: var(--zc-line); }
.plan-publish-draft-badge.is-published > span { background: var(--zc-muted); }
.plan-publish-save-state { min-height: 18px; margin: 6px 0 0; color: var(--zc-muted); font-size: .75rem; }
.plan-publish-header-actions { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; justify-items: end; gap: 8px 10px; }
.plan-publish-header-preview { min-width: 0; display: flex; align-items: center; gap: 8px; padding: 4px 6px 4px 12px; border: 1px solid var(--zc-line); border-radius: var(--zc-radius-control); background: var(--zc-surface); }
.plan-publish-header-preview label { flex: 0 0 auto; color: var(--zc-muted); font-size: .82rem; font-weight: 700; }
.plan-publish-header-preview button { flex: 0 0 auto; min-width: 44px; min-height: 36px; }
.plan-publish-header-actions > .btn { white-space: nowrap; }
.plan-publish-header-note { grid-column: 1 / -1; margin: 0; color: var(--zc-muted); font-size: .75rem; text-align: right; }
.plan-publish-nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.plan-publish-nav a { min-height: 44px; display: grid; place-items: center; padding: 8px; border: 1px solid var(--zc-line); border-radius: var(--zc-radius-control); text-align: center; }
.plan-publish-nav a[aria-current="page"] { border-color: var(--zc-brand-500); background: var(--zc-brand-050); font-weight: 700; }
.plan-publish-conflict-recovery { min-width: 0; margin-block: 18px; padding: 16px; scroll-margin-top: calc(var(--zc-header-height) + 16px); border: 1px solid var(--zc-warning); border-inline-start: 5px solid var(--zc-warning); border-radius: var(--zc-radius-control); background: var(--zc-warning-bg); font-size: .88rem; }
.plan-publish-conflict-recovery > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.plan-publish-conflict-recovery h3, .plan-publish-conflict-recovery .plan-publish-eyebrow { margin: 0; }
.plan-publish-conflict-recovery > header > span { color: var(--zc-muted); font-variant-numeric: tabular-nums; }
.plan-publish-conflict-recovery > p, .plan-publish-plan-recovery > p, .plan-publish-assessment-recovery > p { color: var(--zc-muted); }
.plan-publish-plan-recovery { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--zc-line-strong); }
.plan-publish-assessment-recovery { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--zc-line); }
.plan-publish-assessment-recovery > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.plan-publish-assessment-recovery h3 { margin: 0; }
.plan-publish-assessment-recovery > header > span { color: var(--zc-muted); font-variant-numeric: tabular-nums; }
.plan-publish-recovery-actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: 14px; }
.plan-publish-recovery-actions > form, .plan-publish-discard { min-width: 0; padding: 14px; border: 1px solid var(--zc-line); border-radius: var(--zc-radius-control); background: var(--zc-surface-muted); }
.plan-publish-recovery-actions > form { display: grid; align-content: start; gap: 8px; }
.plan-publish-recovery-actions p { margin: 0; color: var(--zc-muted); }
.plan-publish-recovery-actions button { justify-self: start; min-height: 44px; }
.plan-publish-discard > summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; color: var(--zc-danger); font-weight: 700; }
.plan-publish-discard > form { display: grid; gap: 10px; padding-top: 10px; border-top: 1px solid var(--zc-line); }
.plan-publish-discard label { display: flex; align-items: flex-start; gap: 8px; }
.plan-publish-discard input[type="checkbox"] { flex: 0 0 22px; width: 22px; min-height: 22px; margin-top: 1px; }
.plan-publish-discard button { border-color: var(--zc-danger); color: #fff; background: var(--zc-danger); }
.plan-publish-visibility-alert { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 16px; padding: 14px 16px; border: 1px solid var(--zc-warning); border-inline-start: 5px solid var(--zc-warning); border-radius: var(--zc-radius-control); background: var(--zc-warning-bg); }
.plan-publish-visibility-alert p { margin: 4px 0 0; }
.plan-publish-visibility-alert .btn { flex: 0 0 auto; }
.plan-publish-visibility-status { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 7px; margin-top: 4px; font-size: .85rem; }
.plan-publish-visibility-status.is-live { color: var(--zc-positive); font-weight: 700; }
.plan-publish-visibility-status.is-gated { color: var(--zc-muted); }
.plan-publish-visibility-status.is-gated > strong { color: var(--zc-ink); }
.plan-publish-status-glyph { font-size: .78rem; }
.plan-publish-status-gate { color: var(--zc-warning); font-weight: 600; }
.plan-publish-status-separator { color: var(--zc-muted); }
.plan-publish-status-remedy { display: inline-flex !important; margin: 0 !important; }
.plan-publish-status-fix { min-width: 0 !important; min-height: 0 !important; padding: 0 !important; border: 0 !important; color: var(--zc-brand-600) !important; background: none !important; box-shadow: none !important; font: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.plan-publish-issue-list { display: grid; gap: 10px; padding: 0; list-style: none; }
.plan-publish-issue-list > li { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; border-inline-start: 4px solid var(--zc-danger); background: var(--zc-danger-bg); }
.plan-publish-issue-list.is-warning > li { border-inline-start-color: var(--zc-warning); background: var(--zc-warning-bg); }
.plan-publish-issue-list > li.is-clear { border-inline-start-color: var(--zc-brand-500); background: var(--zc-brand-050); }
.plan-publish-issue-list p { margin: 4px 0 0; }
.plan-publish-issue-code { display: block; margin-bottom: 3px; color: var(--zc-muted); font: 700 .75rem/1.2 ui-monospace, "Cascadia Code", Consolas, monospace; letter-spacing: .04em; text-transform: uppercase; }
.plan-publish-issue-list .btn { flex: 0 0 auto; }
.plan-publish-semester { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.plan-publish-pane, .plan-publish-single { min-width: 0; padding: 20px; border: 1px solid var(--zc-line); border-radius: var(--zc-radius-panel); background: var(--zc-surface); }
.plan-publish-reading { width: 100%; max-width: 680px; margin-inline: auto; }
.plan-publish-row, .plan-publish-entry { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--zc-line); }
.plan-publish-map { padding: 14px; }
.plan-publish-map-header, .plan-publish-workspace-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.plan-publish-map-header h2, .plan-publish-workspace-header h2 { margin: 0; }
.plan-publish-map-header > span { color: var(--zc-muted); font-variant-numeric: tabular-nums; }
/* DS-077 — the folded week picker. The strip this replaces was a horizontal
   rail of 112px cells, so its width was O(n) in course length (2,047px at 15
   weeks, 3,983px at 30) and it scrolled sideways forever. This control is the
   same size at any course length: the list scrolls vertically inside a bounded
   panel instead. Sizes are in rem per BUG-193 so the reader's font setting is
   honoured. */
.plan-publish-week-nav { min-width: 0; margin-top: 12px; }
.ppw-bar { display: flex; align-items: stretch; gap: 6px; }
.ppw-step { display: inline-flex; align-items: center; justify-content: center; min-width: 2.25rem; padding: 0 0.5rem; border: 1px solid var(--zc-line); border-radius: var(--zc-radius-control); text-decoration: none; font-size: 1.125rem; line-height: 1; }
/* Disabled at the ends rather than hidden, so the control never resizes as you
   move through the course (DS-077 §3.1). */
.ppw-step.is-disabled { opacity: .38; pointer-events: none; }
.ppw { position: relative; flex: 1 1 auto; min-width: 0; }
.ppw-trigger { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; min-height: 2.5rem; padding: 0.375rem 0.75rem; border: 1px solid var(--zc-line); border-radius: var(--zc-radius-control); cursor: pointer; list-style: none; font-weight: 600; }
.ppw-trigger::-webkit-details-marker { display: none; }
.ppw-trigger-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ppw[open] .ppw-caret { transform: rotate(180deg); }
.ppw-caret { transition: transform .12s ease; }
.ppw-panel { position: absolute; z-index: 40; inset-inline: 0; margin-top: 4px; background: var(--zc-surface, #fff); border: 1px solid var(--zc-line); border-radius: var(--zc-radius-control); box-shadow: 0 8px 24px rgba(0,0,0,.12); }
.ppw-panel-head { display: flex; align-items: center; gap: 8px; padding: 0.5rem 0.75rem; border-bottom: 1px solid var(--zc-line); }
.ppw-panel-title { flex: 0 0 auto; white-space: nowrap; font-size: 0.8125rem; font-weight: 600; color: var(--zc-muted); }
.ppw-search { flex: 1 1 auto; min-width: 0; padding: 0.25rem 0.5rem; font-size: 0.875rem; }
/* Bounded height: 30 weeks scrolls, 5 weeks does not grow a scrollbar. */
.ppw-list { max-height: 22rem; overflow-y: auto; overscroll-behavior: contain; }
.ppw-row { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; padding: 0.5rem 0.75rem; border-bottom: 1px solid var(--zc-line); text-decoration: none; }
.ppw-row:last-child { border-bottom: 0; }
.ppw-row-ordinal { font-variant-numeric: tabular-nums; font-size: 0.8125rem; color: var(--zc-muted); white-space: nowrap; }
.ppw-row-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ppw-row-state { font-size: 0.75rem; white-space: nowrap; }
/* Course Home is the map's most-used destination (BUG-177). It stays first and
   one click away — it must not become harder to reach than it was. */
.ppw-row.is-home { font-weight: 600; grid-template-columns: 1fr; }
.ppw-row.is-selected { background: var(--zc-brand-050); box-shadow: inset 3px 0 0 var(--zc-brand-500); }
.ppw-row:hover, .ppw-row:focus-visible { background: var(--zc-brand-050); }
.ppw-empty { padding: 0.75rem; margin: 0; font-size: 0.875rem; }
/* BUG-177: Course Home carries no ordinal, so it needs no badge column and
   must not be truncated to "Cou..." - it is the map's most-used cell. It
   sizes to its own content while the numbered weeks keep the shared basis. */
.plan-publish-journey { width: 100%; }
.plan-publish-workspace-header { margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid var(--zc-line); }
.plan-publish-workspace-header .plan-publish-eyebrow { margin: 0 0 4px; }
.plan-publish-week + .plan-publish-week { margin-top: 24px; }
.plan-publish-week header { display: flex; justify-content: space-between; gap: 12px; }
.plan-publish-week-tools, .plan-publish-entry-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.plan-publish-week-tools form, .plan-publish-entry-actions form { margin: 0; }
.plan-publish-entry-actions button, .plan-publish-week-tools button, .plan-publish-filters button, .plan-publish-header-preview button, .plan-publish-library-actions button { min-width: 44px; min-height: 44px; }
.plan-publish-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-block: 16px; }
.plan-publish-rename, .plan-publish-home-form, .plan-publish-new-week, .plan-publish-library-actions, .plan-publish-entry-detail form { display: grid; gap: 10px; }
.plan-publish-row > .plan-publish-home-form { flex: 1 1 0; }
.plan-publish-rename, .plan-publish-new-week, .plan-publish-entry-detail { margin-block: 14px; }
.plan-publish-journey-settings { margin-block: 18px; border-block: 1px solid var(--zc-line); }
.plan-publish-journey-settings > summary { min-height: 48px; display: flex; align-items: center; cursor: pointer; color: var(--zc-brand-800); font-weight: 700; }
.plan-publish-journey-config { display: grid; gap: 14px; padding-block: 0 16px; }
.plan-publish-journey-block-grid { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 14px; }
.plan-publish-journey-block { min-width: 0; display: grid; align-content: start; gap: 10px; margin: 0; padding: 16px; border: 1px solid var(--zc-line-strong); border-radius: var(--zc-radius-control); background: var(--zc-surface-muted); }
.plan-publish-journey-block > legend { padding-inline: 6px; color: var(--zc-brand-800); font-weight: 700; }
.plan-publish-journey-block .plan-publish-help { margin: 0; }
.plan-publish-journey-save { grid-column: 1 / -1; justify-self: start; }
.plan-publish-field-row { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.plan-publish input:not([type="hidden"]), .plan-publish select, .plan-publish textarea { width: 100%; min-height: 44px; }
.plan-publish input[type="checkbox"] { flex: 0 0 22px; width: 22px; min-height: 22px; }
.plan-publish .plan-publish-header-preview select { width: auto; min-width: 150px; min-height: 36px; }
.plan-publish-audience { display: grid; gap: 8px; margin: 0; padding: 12px; border: 1px solid var(--zc-line); border-radius: var(--zc-radius-control); }
.plan-publish-audience > legend { padding-inline: 6px; font-weight: 700; }
.plan-publish-audience > label { display: flex; align-items: center; gap: 10px; min-height: 44px; }
.plan-publish-audience input[type="checkbox"] { flex: 0 0 auto; width: 20px; height: 20px; margin: 0; }
.plan-publish-audience > p { margin: 0; color: var(--zc-muted); }
.plan-publish textarea { min-height: 92px; resize: vertical; }
.plan-publish-row > *, .plan-publish-entry > *, .plan-publish-status { min-width: 0; overflow-wrap: anywhere; }
.plan-publish-destructive { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--zc-line); }
.plan-publish :focus-visible { outline: 3px solid var(--zc-focus); outline-offset: 2px; }
.plan-publish-library-grid { min-width: 0; }
.plan-publish-library-form { min-width: 0; }
.plan-publish-library-details-layer { position: fixed; z-index: 90; inset: 0; width: auto; height: auto; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; color: inherit; background: transparent; }
.plan-publish-library-details-layer::backdrop { background: transparent; }
.plan-publish-library-details-scrim { position: absolute; inset: 0; width: 100%; min-height: 100%; padding: 0; border: 0; border-radius: 0; background: rgba(6, 38, 58, .32); cursor: default; }
.plan-publish-library-details { position: absolute; top: calc(var(--zc-header-height) + 12px); right: 12px; bottom: 12px; width: min(520px, calc(100vw - 24px)); min-width: 0; padding: 20px; overflow: auto; overscroll-behavior: contain; border: 1px solid var(--zc-line-strong); border-radius: var(--zc-radius-panel); background: var(--zc-surface); box-shadow: var(--zc-shadow-panel); }
.plan-publish-library-inspector-header { position: sticky; z-index: 2; top: -20px; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: -20px -20px 18px; padding: 14px 20px; border-bottom: 1px solid var(--zc-line); background: var(--zc-surface); }
.plan-publish-library-inspector h3, .plan-publish-item-inspector h2 { margin: 0; }
.plan-publish-library-inspector form, .plan-publish-item-inspector form { display: grid; gap: 10px; }
.plan-publish-library-actionbar { position: static; display: grid; grid-template-columns: minmax(150px, .7fr) minmax(180px, 1fr) max-content; gap: 10px; align-items: end; margin-bottom: 14px; padding: 12px; border: 1px solid var(--zc-line-strong); border-radius: var(--zc-radius-panel); background: var(--zc-surface); box-shadow: var(--zc-shadow-panel); }
.plan-publish-library-actionbar > div { display: grid; gap: 6px; }
.plan-publish-library-actionbar button { min-height: 44px; }
.plan-publish-library-actionbar > button { white-space: nowrap; }
.plan-publish-library-row { align-items: center; }
.plan-publish-library-row.is-placed { background: var(--zc-surface-muted); }
.plan-publish-library-main { min-width: 0; flex: 1; display: grid; gap: 2px; }
.plan-publish-library-select { display: flex; flex: 1; align-items: center; gap: 12px; min-height: 44px; cursor: pointer; }
.plan-publish-library-select > span { min-width: 0; }
/* BUG-132: the type statement is the primary label and must never truncate,
   even when the (near-identical) titles beside it do. */
.plan-publish-library-kind { display: block; margin: 0; overflow: visible; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; font-weight: 700; }
.plan-publish-library-select .plan-publish-library-title { display: block; min-width: 0; }
.plan-publish-library-inspector-kind { color: var(--zc-brand-800); }
.plan-publish-library-select input[type="checkbox"] { flex: 0 0 22px; width: 22px; height: 22px; min-height: 22px; margin: 0; }
.plan-publish-library-select input[type="checkbox"]:disabled { cursor: not-allowed; }
.plan-publish-library-select:has(input:disabled) { cursor: not-allowed; }
.plan-publish-library-actions { align-items: end; }
.plan-publish-filters [aria-pressed="true"] { border-color: var(--zc-brand-600); color: var(--zc-brand-700); background: var(--zc-brand-050); font-weight: 700; }
.plan-publish-library-groups { display: grid; gap: 14px; }
.plan-publish-library-group { min-width: 0; border: 1px solid var(--zc-line); border-radius: var(--zc-radius-control); background: var(--zc-surface); }
.plan-publish-library-group > summary { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; cursor: pointer; color: var(--zc-brand-800); background: var(--zc-brand-050); border-radius: var(--zc-radius-control); }
.plan-publish-library-group[open] > summary { border-bottom: 1px solid var(--zc-line); border-radius: var(--zc-radius-control) var(--zc-radius-control) 0 0; }
.plan-publish-library-group > summary span { color: var(--zc-muted); font-variant-numeric: tabular-nums; }
.plan-publish-library-group-items { min-width: 0; padding-inline: 14px; }
.plan-publish-library-preview-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-block: 12px; }
.plan-publish-library-preview-actions p { margin: 0; }
.plan-publish-preview-unavailable { width: 100%; padding: 10px 12px; border-inline-start: 4px solid var(--zc-warning); color: var(--zc-warning); background: var(--zc-warning-bg); }
.plan-publish-material-notice { padding: 10px 12px; border-inline-start: 4px solid var(--zc-warning); color: var(--zc-warning); background: var(--zc-warning-bg); }
.plan-publish-material-manage { margin: 0 0 18px; padding: 14px; border: 1px solid var(--zc-line-strong); border-radius: var(--zc-radius-control); background: var(--zc-brand-050); }
.plan-publish-material-manage h4 { margin: 0; }
.plan-publish-material-rename-submit { justify-self: start; }
.plan-publish-material-advanced { margin-top: 4px; padding-top: 4px; border-top: 1px solid var(--zc-line); }
.plan-publish-material-advanced > summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 700; }
.plan-publish-material-advanced[open] { display: grid; gap: 10px; }
.plan-publish-library-item-summary { padding-top: 4px; border-top: 1px solid var(--zc-line); }
.plan-publish-material-source { min-width: 0; display: grid; gap: 10px; margin: 0; padding: 12px; }
.plan-publish-material-source > label:has(input[type="radio"]) { min-height: 44px; display: flex; align-items: center; gap: 8px; }
.plan-publish-material-source input[type="radio"] { width: 20px; min-height: 20px; }

/* DS-077: the map pane used to break out of its 932px container with a
   full-bleed hack (position/left/transform + 100vw width) so the horizontal
   week strip had somewhere to go. That is what pushed `.plan-publish-semester`
   to a 1,156px scrollWidth inside a 932px column — a 224px overflow at 1712,
   reported by ui_sweep on this screen before this change.

   The picker is a fixed-size control that fits the container, so the escape
   hatch is removed rather than inherited. Deleting it is the point: a full-bleed
   pane is a workaround for content that was the wrong shape. */

@media screen and (min-width: 2200px) {
  .plan-publish-library-group-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
  .plan-publish-journey-block-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .plan-publish-entry-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  .plan-publish-entry { align-content: start; }
}

@media screen and (min-width: 3400px) {
  .plan-publish-library-group-items { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media screen and (max-width: 1180px) {
  .plan-publish-library-details { top: 12px; }
}

@media screen and (max-width: 880px) {
  .plan-publish-header { grid-template-columns: minmax(0, 1fr); }
  .plan-publish-header-actions { grid-template-columns: minmax(0, 1fr); justify-items: stretch; }
  .plan-publish-header-preview { display: grid; grid-template-columns: minmax(0, 1fr) auto; padding: 10px; }
  .plan-publish-header-preview label { grid-column: 1 / -1; }
  .plan-publish .plan-publish-header-preview select { width: 100%; min-width: 0; }
  .plan-publish-header-actions > .btn { width: 100%; }
  .plan-publish-header-note { grid-column: 1; text-align: left; }
  .plan-publish-conflict-recovery > header { display: grid; }
  .plan-publish-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .plan-publish-semester, .plan-publish-journey-block-grid, .plan-publish-field-row, .plan-publish-recovery-actions { grid-template-columns: minmax(0, 1fr); }
  .plan-publish-map-header, .plan-publish-workspace-header { align-items: flex-start; }
  .plan-publish-row, .plan-publish-entry { flex-wrap: wrap; }
  .plan-publish button, .plan-publish a, .plan-publish input, .plan-publish select, .plan-publish summary { min-height: 44px; }
  .plan-publish-row > *, .plan-publish-entry > * { width: 100%; }
  .plan-publish-library-form { padding-bottom: 0; }
  .plan-publish-library-actionbar { position: static; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; margin: 0 0 14px; padding: 10px; }
  .plan-publish-library-actionbar > div { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
  .plan-publish-library-actionbar > div button { width: auto; }
  .plan-publish-library-actionbar label { min-width: 0; }
  .plan-publish-library-actionbar select, .plan-publish-library-actionbar > button { width: 100%; }
  .plan-publish-library-actionbar > button { white-space: normal; }
  .plan-publish-library-select { width: 100%; }
  .plan-publish-issue-list > li, .plan-publish-visibility-alert { align-items: stretch; flex-direction: column; }
  .plan-publish-issue-list .btn, .plan-publish-visibility-alert .btn { width: 100%; }
  .plan-publish-library-actions { display: flex; flex-direction: row; align-items: center; justify-content: space-between; width: 100%; }
}

/* TB-275: semester roadmap and designed weekly learning journey. */
.journey-roadmap,
.weekly-journey {
  --journey-ink: #173f38;
  --journey-moss: #356d5d;
  --journey-sage: #dfe9dc;
  --journey-sand: #f4eee2;
  --journey-sun: #e7b657;
  --journey-coral: #c96c54;
  min-width: 0;
  display: grid;
  gap: 28px;
  color: #1e3430;
}

.journey-roadmap-hero,
.weekly-journey-hero {
  position: relative;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(260px, .75fr);
  align-items: center;
  gap: 32px;
  padding: clamp(28px, 5vw, 54px);
  overflow: hidden;
  border: 1px solid rgba(53, 109, 93, .22);
  border-radius: 28px;
  background:
    radial-gradient(circle at 85% 12%, rgba(231, 182, 87, .3), transparent 28%),
    linear-gradient(135deg, #f8f5ec 0%, #edf3e8 58%, #dfe9dc 100%);
  box-shadow: 0 22px 60px -42px rgba(23, 63, 56, .72);
}

.journey-roadmap-hero::after,
.weekly-journey-hero::after {
  content: "";
  position: absolute;
  width: 170px;
  height: 170px;
  right: -78px;
  bottom: -78px;
  border: 28px solid rgba(53, 109, 93, .12);
  border-radius: 50%;
  pointer-events: none;
}

.journey-roadmap-hero {
  grid-template-columns: minmax(0, 1fr);
}

.journey-roadmap-hero h1,
.weekly-journey-hero h1 {
  max-width: 16ch;
  margin: 6px 0 14px;
  color: var(--journey-ink);
  font-size: clamp(2.25rem, 6vw, 4rem);
  line-height: .98;
  letter-spacing: -.045em;
}

.journey-roadmap-hero > div > p:last-child,
.journey-intro {
  max-width: 62ch;
  color: #4d625d;
  font-size: clamp(1rem, 2vw, 1.1875rem);
  line-height: 1.65;
}

.journey-kicker,
.journey-date-range,
.journey-type,
.journey-requirement {
  margin: 0;
  color: var(--journey-moss);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.journey-primary-action,
.journey-secondary-action,
.journey-card-action {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 11px 18px;
  border: 1px solid var(--journey-ink);
  border-radius: 999px;
  color: #fff;
  background: var(--journey-ink);
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
}

.journey-secondary-action {
  color: var(--journey-ink);
  background: #fff;
}

.journey-primary-action:hover,
.journey-card-action:hover {
  color: #fff;
  background: #245a4e;
}

.journey-secondary-action:hover {
  color: #fff;
  background: var(--journey-ink);
}

.journey-roadmap-hero > a {
  position: relative;
  z-index: 1;
  justify-self: end;
}

.journey-dispatch {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(240px, .65fr);
  gap: clamp(18px, 3vw, 32px);
  padding: clamp(22px, 4vw, 36px);
  border: 1px solid rgba(53, 109, 93, .24);
  border-radius: 24px;
  background: linear-gradient(135deg, #fff 0%, #f7f3e9 100%);
  box-shadow: 0 18px 46px -38px rgba(23, 63, 56, .72);
}

.journey-dispatch > div {
  min-width: 0;
}

.journey-dispatch-deadline {
  padding-inline-start: clamp(18px, 3vw, 32px);
  border-inline-start: 1px solid rgba(53, 109, 93, .22);
}

.journey-dispatch h2 {
  margin: 7px 0 10px;
  color: var(--journey-ink);
  font-size: clamp(1.35rem, 3vw, 2rem);
  line-height: 1.12;
  overflow-wrap: anywhere;
}

.journey-dispatch p:not(.journey-kicker) {
  margin: 0 0 16px;
  color: #4d625d;
  line-height: 1.55;
}

.journey-dispatch time {
  display: block;
  color: #4d625d;
  font-weight: 750;
}

.journey-dispatch time small {
  white-space: nowrap;
}

.journey-dispatch .journey-primary-action:disabled {
  cursor: not-allowed;
  opacity: .68;
}

.journey-roadmap-layout {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(220px, .65fr) minmax(0, 1.6fr);
  gap: clamp(24px, 5vw, 58px);
  padding: clamp(24px, 4vw, 42px);
  border: 1px solid #e2e8e5;
  border-radius: 24px;
  background: #fff;
}

.journey-roadmap-summary {
  align-self: start;
  padding: 22px;
  border-radius: 18px;
  background: var(--journey-sand);
}

.journey-roadmap-summary h2,
.journey-section-heading h2,
.journey-spotlight h2,
.journey-pacing h2,
.journey-completion h2,
.journey-empty h2 {
  margin: 7px 0 12px;
  color: var(--journey-ink);
  font-size: clamp(1.5rem, 3vw, 2.125rem);
  line-height: 1.1;
  letter-spacing: -.025em;
}

.journey-roadmap-list {
  position: relative;
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.journey-roadmap-list::before {
  content: "";
  position: absolute;
  top: 24px;
  bottom: 24px;
  left: 18px;
  width: 2px;
  background: #ccd9d4;
}

.journey-roadmap-week {
  position: relative;
}

.journey-roadmap-week a {
  position: relative;
  min-height: 88px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "title state"
    "date progress";
  align-items: center;
  gap: 4px 16px;
  margin-left: 0;
  padding: 18px 18px 18px 48px;
  border: 1px solid #e0e7e4;
  border-radius: 16px;
  color: #29423d;
  background: #fff;
  text-decoration: none;
}

.journey-roadmap-week a::before {
  content: "";
  position: absolute;
  left: 11px;
  width: 16px;
  height: 16px;
  border: 4px solid #fff;
  border-radius: 50%;
  background: #9db5ac;
  box-shadow: 0 0 0 2px #9db5ac;
}

.journey-roadmap-week.is-current a {
  border-color: var(--journey-moss);
  background: #f3f7f1;
  box-shadow: 0 14px 34px -28px rgba(23, 63, 56, .8);
}

.journey-roadmap-week.is-current a::before {
  background: var(--journey-sun);
  box-shadow: 0 0 0 2px var(--journey-moss);
}

.journey-roadmap-title { grid-area: title; color: var(--journey-ink); font-size: 1.0625rem; font-weight: 800; }
.journey-roadmap-state { grid-area: state; color: var(--journey-moss); font-weight: 800; }
.journey-roadmap-date { grid-area: date; color: #60736f; font-size: 0.8125rem; }
.journey-roadmap-progress { grid-area: progress; color: #60736f; font-size: 0.8125rem; text-align: right; }

.journey-empty,
.journey-spotlight,
.journey-pacing,
.journey-completion {
  padding: clamp(24px, 4vw, 42px);
  border: 1px solid #e0e7e4;
  border-radius: 22px;
  background: #fff;
}

.journey-empty {
  display: grid;
  justify-items: start;
  gap: 12px;
  background: var(--journey-sand);
}

.journey-breadcrumb {
  min-height: 44px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
  color: #60736f;
  font-size: 0.875rem;
}

.journey-breadcrumb a {
  color: var(--journey-moss);
  font-weight: 800;
}

.weekly-journey-hero-copy {
  position: relative;
  z-index: 1;
}

.journey-progress {
  margin: 22px 0 3px;
  color: var(--journey-ink);
  font-size: 1rem;
  font-weight: 800;
}

.weekly-journey-hero-copy .journey-primary-action {
  margin-top: 12px;
}

.weekly-journey-visual {
  position: relative;
  z-index: 1;
  min-height: 300px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 22px;
  background: rgba(255, 255, 255, .7);
  box-shadow: 0 18px 48px -34px rgba(23, 63, 56, .8);
}

.weekly-journey-visual img {
  width: 100%;
  height: 100%;
  min-height: 300px;
  object-fit: cover;
}

.journey-brand-surface {
  width: min(76%, 260px);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border: 2px solid rgba(53, 109, 93, .22);
  border-radius: 43% 57% 55% 45%;
  background:
    linear-gradient(140deg, rgba(255, 255, 255, .85), rgba(223, 233, 220, .5)),
    var(--journey-sage);
  transform: rotate(-5deg);
}

.journey-brand-surface span {
  color: var(--journey-ink);
  font-size: clamp(4.875rem, 11vw, 8.25rem);
  font-weight: 900;
  line-height: 1;
  transform: rotate(5deg);
}

.journey-path {
  min-width: 0;
  padding: clamp(24px, 4vw, 42px);
  border: 1px solid #e0e7e4;
  border-radius: 24px;
  background: #fff;
}

.journey-section-heading {
  margin-bottom: 30px;
}

.journey-phase {
  position: relative;
  min-width: 0;
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 20px;
  padding-bottom: 32px;
}

.journey-phase:not(:last-child)::before {
  content: "";
  position: absolute;
  top: 48px;
  bottom: 0;
  left: 23px;
  width: 2px;
  background: #cfdbd6;
}

.journey-phase-marker {
  position: relative;
  z-index: 1;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--journey-moss);
  font-weight: 900;
}

.journey-phase-content {
  min-width: 0;
}

.journey-phase-content h3 {
  margin: 8px 0 16px;
  color: var(--journey-ink);
  font-size: 1.375rem;
}

.journey-card-grid {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.journey-activity {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 13px;
  padding: 20px;
  border: 1px solid #dfe6e3;
  border-top: 5px solid var(--journey-moss);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 14px 32px -30px rgba(23, 63, 56, .85);
}

.journey-activity--material { border-top-color: var(--journey-moss); }
.journey-activity--quiz { border-top-color: var(--journey-coral); }
.journey-activity--module { border-top-color: #506f95; }
.journey-activity--engagement { border-top-color: var(--journey-sun); }
.journey-activity.is-complete { background: #f3f8f3; }
.journey-activity.is-optional { border-style: dashed; border-top-style: solid; }

.journey-activity > header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.journey-activity h4 {
  margin: 0;
  color: var(--journey-ink);
  font-size: 1.1875rem;
  line-height: 1.25;
}

.journey-requirement { color: #6e7774; }

.journey-activity-meta {
  display: grid;
  gap: 8px;
  margin: 0;
}

.journey-activity-meta div {
  display: grid;
  grid-template-columns: minmax(105px, .8fr) minmax(0, 1.2fr);
  gap: 10px;
}

.journey-activity-meta dt {
  color: #687a75;
  font-size: 0.75rem;
  font-weight: 700;
}

.journey-activity-meta dd {
  margin: 0;
  color: #2e4540;
  font-size: 0.8125rem;
  text-align: right;
  overflow-wrap: anywhere;
}

.journey-card-action {
  justify-self: start;
  margin-top: auto;
  color: var(--journey-ink);
  background: #fff;
}

.journey-unavailable {
  min-height: 44px;
  display: flex;
  align-items: center;
  margin: auto 0 0;
  color: #6e514a;
  font-weight: 750;
}

.journey-spotlight {
  background:
    linear-gradient(110deg, rgba(255, 255, 255, .94), rgba(244, 238, 226, .94)),
    var(--journey-sand);
}

.journey-spotlight dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 22px 0 0;
}

.journey-spotlight dl div {
  padding: 17px;
  border-radius: 14px;
  background: rgba(255, 255, 255, .82);
}

.journey-spotlight dt {
  color: var(--journey-moss);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.journey-spotlight dd {
  margin: 7px 0 0;
  line-height: 1.55;
}

.journey-pacing,
.journey-completion {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.journey-preview-banner {
  padding: 11px 16px;
  border: 1px solid #cf9f3e;
  border-radius: 12px;
  color: #4f3b15;
  background: #fff2c9;
  font-weight: 800;
}

.journey-union-notice {
  display: grid;
  gap: 4px;
  padding: 14px 16px;
  border: 1px solid #8fb8aa;
  border-inline-start: 5px solid var(--journey-moss);
  border-radius: 12px;
  color: var(--journey-ink);
  background: #edf7f3;
}

.journey-union-notice strong,
.journey-union-notice span {
  overflow-wrap: anywhere;
}

.journey-audience-marker {
  display: grid;
  gap: 3px;
  margin: 0;
  padding: 10px 12px;
  border-radius: 10px;
  color: #31594f;
  background: #edf7f3;
  font-size: .8125rem;
  line-height: 1.4;
}

.journey-audience-marker strong {
  font-size: .75rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.journey-roadmap :focus-visible,
.weekly-journey :focus-visible {
  outline: 3px solid var(--zc-focus);
  outline-offset: 3px;
}

@media screen and (max-width: 760px) {
  .journey-roadmap,
  .weekly-journey { gap: 20px; }
  .journey-roadmap-hero,
  .weekly-journey-hero,
  .journey-roadmap-layout,
  .journey-dispatch { grid-template-columns: minmax(0, 1fr); }
  .journey-roadmap-hero,
  .weekly-journey-hero { padding: 26px 20px; }
  .journey-roadmap-hero > a { width: 100%; justify-self: stretch; }
  .journey-dispatch-deadline {
    padding: 18px 0 0;
    border-inline-start: 0;
    border-top: 1px solid rgba(53, 109, 93, .22);
  }
  .weekly-journey-visual { min-height: 220px; order: -1; }
  .weekly-journey-visual img { min-height: 220px; max-height: 300px; }
  .journey-card-grid,
  .journey-spotlight dl { grid-template-columns: minmax(0, 1fr); }
  .journey-roadmap-week a {
    min-height: 96px;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "title state"
      "date progress";
  }
  .journey-pacing,
  .journey-completion { align-items: flex-start; flex-direction: column; }
  .journey-pacing .journey-secondary-action,
  .journey-completion .journey-secondary-action { width: 100%; }
}

@media screen and (max-width: 430px) {
  .journey-roadmap-hero h1,
  .weekly-journey-hero h1 { font-size: 2.375rem; }
  .journey-roadmap-layout,
  .journey-dispatch,
  .journey-path,
  .journey-empty,
  .journey-spotlight,
  .journey-pacing,
  .journey-completion { padding: 20px 16px; border-radius: 18px; }
  .journey-roadmap-summary { padding: 18px; }
  .journey-roadmap-week a {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "title" "state" "date" "progress";
    padding-left: 44px;
  }
  .journey-roadmap-progress { text-align: left; }
  .journey-phase { grid-template-columns: 40px minmax(0, 1fr); gap: 10px; }
  .journey-phase-marker { width: 38px; height: 38px; }
  .journey-phase:not(:last-child)::before { top: 38px; left: 18px; }
  .journey-activity > header {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }
  .journey-type,
  .journey-requirement { overflow-wrap: normal; word-break: normal; }
  .journey-activity-meta div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .journey-activity-meta dd { text-align: left; }
  .journey-card-action { width: 100%; }
}

.focused-learning-frame {
  min-width: 0;
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 0 auto 18px;
  padding: 10px 14px;
  border: 1px solid #cad9d3;
  border-radius: 14px;
  color: #29423d;
  background: #f3f7f1;
}

.focused-learning-context,
.focused-learning-actions {
  min-width: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
}

.focused-learning-context strong {
  color: #173f38;
}

.focused-learning-context span {
  color: #60736f;
  font-size: 0.8125rem;
}

.focused-learning-actions a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 13px;
  border: 1px solid #9db5ac;
  border-radius: 999px;
  color: #173f38;
  background: #fff;
  font-size: 0.8125rem;
  font-weight: 800;
  text-decoration: none;
}

.focused-learning-actions .focused-learning-return {
  color: #fff;
  border-color: #173f38;
  background: #173f38;
}

.focused-learning-frame :focus-visible {
  outline: 3px solid var(--zc-focus, #c96c54);
  outline-offset: 2px;
}

@media screen and (max-width: 620px) {
  .focused-learning-frame {
    display: grid;
    gap: 8px;
  }
  .focused-learning-context {
    font-size: 0.8125rem;
  }
  .focused-learning-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .focused-learning-actions .focused-learning-return {
    grid-column: 1 / -1;
    grid-row: 1;
  }
}
/* TB-278 Assess & Respond: dense, light Terminal workspace. */
.ar-workspace,
.ar-editor,
.ar-student-contract,
.ar-response-context,
.ar-confirmation {
  width: min(100%, 1320px);
  margin-inline: auto;
  color: var(--zc-ink);
  overflow-wrap: anywhere;
}

.ar-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 18px;
}
.ar-header > :first-child { min-width: 0; }

.ar-header h1,
.ar-student-contract h1,
.ar-response-context h1,
.ar-confirmation h1 {
  margin: 2px 0 0;
  font-size: clamp(1.75rem, 3vw, 2.35rem);
  line-height: 1.15;
}

.ar-course {
  margin: 0;
  color: var(--zc-muted);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.ar-banner {
  display: flex;
  gap: 12px;
  padding: 12px 16px;
  margin-bottom: 18px;
  border: 1px solid var(--zc-border);
  border-left: 4px solid var(--zc-warning);
  border-radius: 10px;
  background: var(--zc-surface);
}

.ar-editor-notices {
  margin-bottom: 18px;
  padding: 12px 16px;
  border: 1px solid var(--zc-positive);
  border-left: 4px solid var(--zc-positive);
  border-radius: 10px;
  background: var(--zc-surface);
}
.ar-editor-notices p { margin: 0; font-weight: 750; }
.ar-access-code {
  display: inline-block;
  padding: 2px 7px;
  border-radius: 6px;
  background: var(--zc-page);
  font-size: 1rem;
  overflow-wrap: anywhere;
}

.ar-switch {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 520px;
  margin-bottom: 14px;
  border: 1px solid var(--zc-border);
  border-radius: 10px;
  overflow: hidden;
}

.ar-switch a {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 14px;
  color: var(--zc-ink);
  font-weight: 700;
  text-decoration: none;
}

.ar-switch a + a { border-left: 1px solid var(--zc-border); }
.ar-switch a[aria-current="page"] {
  color: var(--zc-brand-700);
  background: var(--zc-brand-050);
  box-shadow: inset 0 -3px 0 var(--zc-brand-700);
}

.ar-status-rail {
  display: flex;
  gap: 4px;
  overflow-x: auto;
  margin-bottom: 14px;
  padding-bottom: 2px;
}

.ar-status-rail a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  padding: 8px 12px;
  border-radius: 10px;
  color: var(--zc-ink);
  font-weight: 700;
  text-decoration: none;
}

.ar-status-rail a:hover { background: var(--zc-surface); }
.ar-status-mobile { display: none; }

.ar-filters {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) minmax(150px, .42fr) minmax(150px, .42fr) auto;
  align-items: end;
  gap: 12px;
  padding: 14px;
  margin-bottom: 18px;
  border: 1px solid var(--zc-border);
  border-radius: 16px;
  background: var(--zc-surface);
}

.ar-filters label,
.ar-editor-form label,
.ar-student-contract label {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: var(--zc-ink);
  font-size: .82rem;
  font-weight: 750;
}

.ar-filters input,
.ar-filters select,
.ar-filters button,
.ar-editor input,
.ar-editor textarea,
.ar-editor select,
.ar-editor button,
.ar-student-contract input,
.ar-student-contract textarea,
.ar-student-contract button {
  min-height: 44px;
  max-width: 100%;
}

.ar-activity-layout {
  display: grid;
  grid-template-columns: 340px minmax(0, 1fr);
  min-height: 480px;
  border: 1px solid var(--zc-border);
  border-radius: 16px;
  background: var(--zc-surface);
  overflow: clip;
}

.ar-list,
.ar-queue {
  min-width: 0;
  border-right: 1px solid var(--zc-border);
}

.ar-list > h2,
.ar-queue > h2,
.ar-work-pane > h2,
.ar-context > h2,
.ar-selection > h2 {
  margin: 0;
  padding: 16px 18px;
  font-size: 1rem;
}

.ar-list-row {
  min-height: 64px;
  border-top: 1px solid var(--zc-border);
}

.ar-list-row > a,
.ar-list-row > div {
  min-height: 64px;
  display: grid;
  gap: 3px;
  padding: 12px 18px;
  color: var(--zc-ink);
  text-decoration: none;
}

.ar-list-row a:hover,
.ar-list-row a:focus-visible {
  background: var(--zc-brand-050);
  box-shadow: inset 4px 0 0 var(--zc-brand-700);
}

.ar-list-row small { color: var(--zc-brand-700); font-weight: 800; }
.ar-list-row strong { line-height: 1.3; }
.ar-list-row span { color: var(--zc-muted); font-size: .8rem; }
.ar-selection,
.ar-work-pane,
.ar-context { min-width: 0; padding: 22px; }

.ar-empty { padding: 32px 20px; }
.ar-empty h3 { margin-top: 0; }

.ar-respond-layout {
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr) 300px;
  min-height: 500px;
  border: 1px solid var(--zc-border);
  border-radius: 16px;
  background: var(--zc-surface);
  overflow: clip;
}

.ar-work-pane { border-right: 1px solid var(--zc-border); }
.ar-context details { padding: 12px 0; border-top: 1px solid var(--zc-border); }
.ar-context summary { min-height: 44px; cursor: pointer; font-weight: 750; }

.ar-create { position: relative; }
.ar-create > summary,
.ar-primary,
.ar-secondary,
.ar-back {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding: 9px 14px;
  border-radius: 10px;
  font-weight: 750;
  text-decoration: none;
  cursor: pointer;
}
.ar-create > summary,
.ar-primary { color: #f8fbfd; background: var(--zc-brand-700); }
.ar-secondary,
.ar-back { color: var(--zc-brand-700); border: 1px solid var(--zc-border); background: var(--zc-surface); }
.ar-create-menu {
  position: absolute;
  right: 0;
  z-index: 5;
  width: min(360px, calc(100vw - 32px));
  padding: 8px;
  margin-top: 6px;
  border: 1px solid var(--zc-border);
  border-radius: 16px;
  background: var(--zc-surface);
  box-shadow: 0 18px 50px rgb(8 69 104 / .16);
}
.ar-create-menu a {
  min-height: 54px;
  display: grid;
  gap: 2px;
  padding: 9px 10px;
  border-radius: 10px;
  color: var(--zc-ink);
  text-decoration: none;
}
.ar-create-menu a:hover { background: var(--zc-brand-050); }
.ar-create-menu small { color: var(--zc-muted); }
.ar-create-sheet-header { display: none; }
.ar-create-close-label { display: none; }

.ar-editor-layout {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}
.ar-editor-nav {
  position: sticky;
  top: calc(var(--zc-header-height) + 20px);
  display: grid;
  gap: 8px;
}
.ar-editor-nav > form { display: none; }
.ar-editor-links { display: grid; gap: 2px; }
.ar-editor-links a {
  min-height: 44px;
  display: flex;
  align-items: center;
  padding: 8px 10px;
  border-radius: 10px;
  color: var(--zc-ink);
  text-decoration: none;
}
.ar-editor-links a:hover { background: var(--zc-brand-050); }
.ar-editor-form {
  min-width: 0;
  padding-bottom: 88px;
}
.ar-editor-section {
  scroll-margin-top: calc(var(--zc-header-height) + 18px);
  padding: 22px;
  margin-bottom: 14px;
  border: 1px solid var(--zc-border);
  border-radius: 16px;
  background: var(--zc-surface);
}
.ar-editor-section h2 { margin-top: 0; }
.ar-editor-section textarea { min-height: 132px; resize: vertical; }
.ar-schedule-panel {
  grid-column: 2;
  min-width: 0;
  padding: 22px;
  border: 1px solid var(--zc-border);
  border-radius: 16px;
  background: var(--zc-surface);
}
.ar-schedule-panel h2 { margin-top: 0; }
.ar-schedule-panel form { display: grid; gap: 10px; margin-block: 14px; }
.ar-schedule-panel article {
  padding-block: 14px;
  border-top: 1px solid var(--zc-border);
}
.ar-schedule-panel #current-section-windows {
  margin-top: 24px;
}
.ar-schedule-panel #current-section-windows h3 {
  margin-bottom: 8px;
}
.ar-lifecycle {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin-bottom: 18px;
}
.ar-lifecycle h2,
.ar-lifecycle p {
  flex-basis: 100%;
  margin-block: 0;
}
.ar-lifecycle form { margin: 0; }
.ar-schedule-confirmation {
  max-width: 720px;
  padding: 22px;
  margin-block: 18px;
  border: 1px solid var(--zc-border);
  border-radius: 16px;
  background: var(--zc-surface);
}
.ar-rubric { display: grid; gap: 10px; padding-left: 28px; }
.ar-rubric li { padding: 12px; border: 1px solid var(--zc-border); border-radius: 10px; }
.ar-rubric li > span { float: right; font-variant-numeric: tabular-nums; }
.ar-sticky-actions {
  position: sticky;
  bottom: 12px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--zc-border);
  border-radius: 16px;
  background: var(--zc-surface);
  box-shadow: 0 12px 36px rgb(8 69 104 / .14);
}
.ar-sticky-actions span { margin-right: auto; color: var(--zc-muted); }

/* TB-369 two-pane editor: header actions, group cards, inline picker */
.ar-editor-pane { min-width: 0; }
.ar-editor-layout > .ar-editor-pane { grid-column: 2; }
.ar-header-actions {
  display: grid;
  flex: 0 0 auto;
  gap: 8px;
  justify-items: end;
  align-content: start;
}
.ar-header-actions .ar-primary {
  overflow-wrap: normal;
  white-space: nowrap;
}
.ar-pub-badge {
  margin: 0;
  padding: 4px 12px;
  border: 1px solid var(--zc-border);
  border-radius: 999px;
  font-weight: 800;
  font-size: .82rem;
  color: var(--zc-muted);
  background: var(--zc-surface);
}
.ar-preview-control summary { cursor: pointer; font-weight: 800; }
.ar-preview-control form { display: grid; gap: 8px; margin-top: 8px; }
.ar-question-groups,
.ar-quiz-picker {
  grid-column: 2;
  min-width: 0;
  padding: 22px;
  margin-bottom: 14px;
  border: 1px solid var(--zc-border);
  border-radius: 16px;
  background: var(--zc-surface);
}
.ar-question-groups h2,
.ar-quiz-picker h2 { margin-top: 0; }
.ar-group-card {
  scroll-margin-top: calc(var(--zc-header-height) + 18px);
  padding: 18px;
  margin-bottom: 12px;
  border: 1px solid var(--zc-border);
  border-radius: 10px;
}
.ar-group-card h3 { margin: 0 0 6px; }
.ar-group-kind { margin: 0 0 8px; color: var(--zc-muted); }
.ar-group-add { display: grid; gap: 8px; justify-items: start; }
.ar-group-header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
}
.ar-group-header > span,
.ar-group-count,
.ar-picker-match-count {
  flex: 0 0 auto;
  color: var(--zc-muted);
  font-size: .82rem;
  font-weight: 750;
}
.ar-group-draw {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: end;
  gap: 10px;
  margin-block: 14px;
  padding: 14px;
  border-radius: 10px;
  background: var(--zc-brand-050);
}
.ar-group-draw > label { min-width: 0; }
.ar-group-draw input,
.ar-group-draw select { width: 100%; min-width: 0; }
.ar-group-draw button { justify-self: start; }
.ar-group-empty { color: var(--zc-muted); }
.ar-group-empty-state {
  padding: 18px;
  margin-bottom: 14px;
  border: 1px dashed var(--zc-border);
  border-radius: 10px;
}
.ar-group-empty-state h3 { margin-top: 0; }
.ar-legacy-fallback summary,
.ar-bank-filter summary { cursor: pointer; font-weight: 750; }
.ar-group-delete { margin-top: 14px; }
.ar-group-delete > summary {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 7px 12px;
  border: 1px solid var(--zc-border);
  border-radius: 8px;
  color: var(--zc-danger);
  font-weight: 750;
  cursor: pointer;
  list-style: none;
}
.ar-group-delete > summary::-webkit-details-marker { display: none; }
.ar-group-delete form { margin-top: 10px; }
.ar-picker-filters { display: grid; gap: 10px; margin-bottom: 14px; }
.ar-picker-filters fieldset {
  display: grid;
  gap: 4px;
  border: 1px solid var(--zc-border);
  border-radius: 10px;
}
.ar-bank-filter {
  padding: 12px;
  border: 1px solid var(--zc-border);
  border-radius: 10px;
}
.ar-bank-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  gap: 8px 14px;
  max-height: 18rem;
  overflow-y: auto;
  margin-top: 12px;
}
.ar-checkbox-label,
.ar-editor-form label.ar-checkbox-label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
}
.ar-checkbox-label input,
.ar-table-checkbox input {
  flex: 0 0 auto;
  width: 1.1rem;
  min-height: 1.1rem;
  margin: 0;
}
.ar-choice-fieldset {
  display: grid;
  gap: 8px;
  margin: 14px 0;
  padding: 14px;
  border: 1px solid var(--zc-border);
  border-radius: 12px;
}
.ar-choice-fieldset legend { padding-inline: 5px; font-weight: 800; }
.ar-choice-fieldset > p { margin: 0 0 2px; color: var(--zc-muted); }
.ar-radio-label,
.ar-editor-form label.ar-radio-label {
  display: grid;
  grid-template-columns: 1.1rem minmax(0, 1fr);
  align-items: start;
  gap: 9px;
  min-height: 40px;
  padding: 8px;
  border-radius: 9px;
}
.ar-radio-label:has(input:checked) { background: var(--zc-brand-050); }
.ar-radio-label input { width: 1.1rem; min-height: 1.1rem; margin: 2px 0 0; }
.ar-picker-filter-row {
  display: grid;
  grid-template-columns: minmax(9rem, .7fr) minmax(9rem, .7fr) minmax(14rem, 1.4fr) auto;
  align-items: end;
  gap: 10px;
}
.ar-picker-scroll { overflow-x: auto; }
.ar-picker-table { width: 100%; min-width: 760px; table-layout: fixed; border-collapse: collapse; }
.ar-picker-table .ar-col-add { width: 4rem; }
.ar-picker-table .ar-col-id { width: 8.5rem; }
.ar-picker-table .ar-col-question { width: auto; }
.ar-picker-table .ar-col-bank { width: 12rem; }
.ar-picker-table .ar-col-topic { width: 6.5rem; }
.ar-picker-table .ar-col-difficulty { width: 7.5rem; }
.ar-picker-table th,
.ar-picker-table td {
  padding: 6px 8px;
  border-bottom: 1px solid var(--zc-border);
  text-align: left;
  overflow-wrap: normal;
}
.ar-picker-table th,
.ar-question-id,
.ar-bank-short { white-space: nowrap; }
.ar-picker-table td:nth-child(3) { overflow-wrap: anywhere; }
.ar-table-checkbox { display: inline-flex; align-items: center; }
.ar-inline-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.ar-quiz-total { font-weight: 700; }

.ar-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  padding: 14px 0;
  margin: 0 0 18px;
  border-block: 1px solid var(--zc-border);
}
.ar-summary div { min-width: 170px; flex: 1 1 170px; padding: 8px 14px; }
.ar-summary dt { font-weight: 800; }
.ar-summary dd { margin: 4px 0 0; color: var(--zc-muted); font-size: .82rem; }
.ar-summary a { color: var(--zc-brand-700); font-weight: 800; }
.ar-summary a[aria-current="true"] { text-decoration-thickness: 3px; }
.ar-results-filters,
.ar-response-filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(140px, 1fr)) auto;
  align-items: end;
  gap: 12px;
  padding: 14px;
  margin-bottom: 16px;
  border: 1px solid var(--zc-border);
  border-radius: 16px;
  background: var(--zc-surface);
}
.ar-results-filters label,
.ar-response-filters label {
  display: grid;
  gap: 6px;
  font-size: .82rem;
  font-weight: 750;
}
.ar-results-filters select,
.ar-results-filters button,
.ar-response-filters input,
.ar-response-filters select,
.ar-response-filters button { min-height: 44px; max-width: 100%; }
.ar-response-filters label:first-of-type { grid-column: span 2; }
.ar-response-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 14px;
}
.ar-response-categories a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding: 8px 12px;
  border: 1px solid var(--zc-border);
  border-radius: 10px;
  color: var(--zc-ink);
  text-decoration: none;
}
.ar-results details { padding: 14px 0; border-bottom: 1px solid var(--zc-border); }
.ar-results summary { min-height: 44px; display: flex; justify-content: space-between; align-items: center; cursor: pointer; }
.ar-results dl > div,
.ar-confirmation dl > div { display: grid; grid-template-columns: minmax(150px, .35fr) 1fr; gap: 12px; padding: 8px 0; }
.ar-results dd,
.ar-confirmation dd { margin: 0; }
.ar-quiz-results { margin-top: 18px; }
.ar-quiz-results-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.ar-quiz-results-heading h3 { margin: 0; }
.ar-quiz-section {
  margin-top: 14px;
  padding: 14px;
  border: 1px solid var(--zc-border);
  border-radius: 12px;
  background: var(--zc-surface);
}
.ar-quiz-section h4,
.ar-quiz-section p { margin-top: 0; }
.ar-result-students {
  display: grid;
  gap: 6px;
  padding: 0;
  margin: 0;
  list-style: none;
}
.ar-result-students li {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) minmax(100px, .5fr) minmax(110px, .5fr) auto;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 8px 0;
  border-top: 1px solid var(--zc-border);
}
.ar-result-students li:first-child { border-top: 0; }
.ar-score-distribution { margin-top: 18px; }
.ar-score-distribution dl {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}
.ar-score-distribution dl > div {
  display: block;
  padding: 10px;
  border: 1px solid var(--zc-border);
  border-radius: 10px;
  text-align: center;
}
.ar-score-distribution dt { font-weight: 750; }
.ar-score-distribution dd { margin-top: 4px; font-size: 1.15rem; font-weight: 800; }
.ar-results-limit {
  padding: 12px 14px;
  border-left: 4px solid var(--zc-warning);
  background: var(--zc-surface);
}

.ar-student-contract { max-width: 760px; }
.ar-student-contract section { margin-block: 24px; }
.ar-student-text,
.ar-response-context pre { white-space: pre-wrap; overflow-wrap: anywhere; }
.ar-response-context {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, .55fr) minmax(320px, .8fr);
  align-items: start;
  gap: 16px;
}
.ar-response-context > .ar-back,
.ar-response-context > .ar-course,
.ar-response-context > h1,
.ar-response-context > .ar-response-switch { grid-column: 1 / -1; }
.ar-response-switch {
  display: flex;
  gap: 6px;
}
.ar-response-switch a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding: 8px 14px;
  border: 1px solid var(--zc-border);
  border-radius: 10px;
  color: var(--zc-brand-700);
}
.ar-response-work,
.ar-response-detail-context,
.ar-response-outcome {
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--zc-border);
  border-radius: 16px;
  background: var(--zc-surface);
}
.ar-response-work h2,
.ar-response-detail-context h2,
.ar-response-outcome h2 { margin-top: 0; }
.ar-response-outcome form { display: grid; gap: 10px; margin-block: 12px; }
.ar-response-outcome label { display: grid; gap: 5px; }
.ar-error-summary {
  padding: 16px;
  border: 2px solid var(--zc-danger);
  border-radius: 10px;
}

@media (max-width: 1100px) {
  .ar-editor-layout { grid-template-columns: 1fr; }
  .ar-editor-nav { position: static; }
  .ar-editor-links {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
  }
  .ar-schedule-panel { grid-column: 1; }
  .ar-editor-layout > .ar-editor-pane { grid-column: 1; }
  .ar-question-groups,
  .ar-quiz-picker { grid-column: 1; }
  .ar-group-draw { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ar-picker-filter-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ar-picker-filter-row button { grid-column: 1 / -1; }
  .ar-respond-layout { grid-template-columns: 280px minmax(0, 1fr); }
  .ar-context { grid-column: 1 / -1; border-top: 1px solid var(--zc-border); }
}

@media screen and (max-width: 880px) {
  .ar-workspace,
  .ar-editor,
  .ar-student-contract,
  .ar-response-context,
  .ar-confirmation { width: 100%; }
  .ar-header { gap: 12px; }
  .ar-header h1 { font-size: 1.55rem; }
  .ar-status-rail { display: none; }
  .ar-status-mobile {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 10px;
    padding: 14px;
    margin-bottom: 14px;
    border: 1px solid var(--zc-border);
    border-radius: 12px;
    background: var(--zc-surface);
  }
  .ar-status-mobile label { display: grid; gap: 6px; font-weight: 750; }
  .ar-status-mobile select,
  .ar-status-mobile button,
  .ar-status-mobile a { min-height: 44px; max-width: 100%; }
  .ar-status-mobile p { margin: 0; color: var(--zc-muted); }
  .ar-editor-nav > form { display: grid; gap: 8px; }
  .ar-editor-nav > form label { font-weight: 750; }
  .ar-editor-nav > form select,
  .ar-editor-nav > form button { min-height: 44px; max-width: 100%; }
  .ar-editor-links { display: none; }
  .ar-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ar-filters label:first-of-type { grid-column: 1 / -1; }
  .ar-filters button { grid-column: 1 / -1; }
  .ar-activity-layout,
  .ar-respond-layout { grid-template-columns: 1fr; min-height: 0; }
  .ar-list,
  .ar-queue,
  .ar-work-pane { border-right: 0; }
  .ar-selection,
  .ar-work-pane,
  .ar-context { display: none; }
  .ar-sticky-actions {
    bottom: calc(68px + env(safe-area-inset-bottom));
    flex-wrap: wrap;
  }
  .ar-sticky-actions span { flex-basis: 100%; }
  .ar-sticky-actions button,
  .ar-sticky-actions a { flex: 1 1 44%; min-height: 44px; }
  .ar-group-draw,
  .ar-picker-filter-row { grid-template-columns: minmax(0, 1fr); }
  .ar-group-header { display: grid; }
  .ar-summary { display: grid; }
  .ar-results-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ar-response-filters { grid-template-columns: minmax(0, 1fr); }
  .ar-results-filters label,
  .ar-response-filters label,
  .ar-response-filters label:first-of-type { grid-column: auto; }
  .ar-response-filters label { min-width: 0; overflow-wrap: anywhere; }
  .ar-response-filters input,
  .ar-response-filters select { width: 100%; min-width: 0; }
  .ar-results-filters button,
  .ar-response-filters button { grid-column: 1 / -1; }
  .ar-results summary { align-items: flex-start; gap: 8px; }
  .ar-result-students li {
    grid-template-columns: minmax(0, 1fr) minmax(100px, .5fr);
  }
  .ar-score-distribution dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ar-response-context { grid-template-columns: 1fr; }
  .ar-response-context > * { grid-column: 1; }
  .ar-response-switch {
    position: sticky;
    top: var(--zc-header-height);
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    background: var(--zc-page);
  }
  .ar-create-menu {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow-y: auto;
    margin: 0;
    padding: 12px 16px calc(24px + env(safe-area-inset-bottom));
    border: 0;
    border-radius: 0;
    z-index: 100;
  }
  .ar-create-sheet-header {
    position: sticky;
    top: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 56px;
    padding: env(safe-area-inset-top) 88px 8px 0;
    background: var(--zc-surface);
  }
  .ar-create-sheet-header h2 { margin: 0; }
  .ar-create[open] > summary {
    position: fixed;
    top: calc(12px + env(safe-area-inset-top));
    right: 16px;
    z-index: 101;
  }
  .ar-create[open] .ar-create-open-label { display: none; }
  .ar-create[open] .ar-create-close-label { display: inline; }
  .ar-create-menu > a {
    min-height: 64px;
  }
}

@media screen and (max-width: 480px) {
  .ar-quiz-results-heading,
  .ar-result-students li { display: grid; grid-template-columns: minmax(0, 1fr); }
  .ar-quiz-results-heading .ar-secondary { justify-self: start; }
}

@media (max-width: 320px) {
  .ar-filters { grid-template-columns: 1fr; }
  .ar-filters label { grid-column: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .ar-workspace *,
  .ar-editor * {
    scroll-behavior: auto;
    transition-duration: .01ms;
    animation-duration: .01ms;
  }
}

/* TB-279: factual student Progress -------------------------------------- */
.contextual-coach {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(250px, .6fr);
  gap: 20px;
  min-width: 0;
  padding: 22px;
  border: 1px solid var(--zc-line);
  border-inline-start: 4px solid var(--zc-brand-600);
  border-radius: 16px;
  background: var(--zc-surface);
  color: var(--zc-ink);
}
.contextual-coach-copy,
.contextual-coach-secondary,
.contextual-coach-secondary li { min-width: 0; }
.contextual-coach-kicker {
  margin: 0 0 5px;
  color: var(--zc-muted);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.contextual-coach h2 { margin: 0 0 10px; font-size: 1.15rem; }
.contextual-coach-fact {
  margin: 0;
  font-weight: 750;
  overflow-wrap: anywhere;
}
.contextual-coach-recommendation {
  margin: 6px 0 0;
  color: var(--zc-muted);
  overflow-wrap: anywhere;
}
.contextual-coach-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 16px;
  margin-top: 10px;
}
.contextual-coach-links a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-weight: 750;
}
.contextual-coach-action {
  justify-content: center;
  padding: 10px 16px;
  border-radius: 10px;
  background: var(--zc-brand-600);
  color: #fff;
  text-decoration: none;
}
.contextual-coach-secondary { align-self: start; }
.contextual-coach-secondary > summary {
  min-height: 44px;
  padding-block: 10px;
  cursor: pointer;
  font-weight: 750;
}
.contextual-coach-secondary ol {
  display: grid;
  gap: 12px;
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}
.contextual-coach-secondary li {
  padding: 14px;
  border: 1px solid var(--zc-line);
  border-radius: 10px;
}
[data-progress-focus="coach"] .contextual-coach {
  outline: 3px solid var(--zc-focus);
  outline-offset: 3px;
}

.progress-workspace {
  --zc-border: var(--zc-line);
  --zc-accent: var(--zc-brand-600);
  display: grid;
  gap: 24px;
  min-width: 0;
  color: var(--zc-ink);
}
.progress-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}
.progress-heading h1 { margin: 0 0 4px; }
.progress-heading p { margin: 0; color: var(--zc-muted); overflow-wrap: anywhere; }
.progress-read-only {
  padding: 8px 12px;
  border: 1px solid var(--zc-border);
  border-radius: 10px;
}
.progress-summary-region,
.progress-panel,
.progress-provider-status {
  min-width: 0;
  border: 1px solid var(--zc-border);
  border-radius: 16px;
  background: var(--zc-surface);
}
.progress-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
}
.progress-summary > div {
  min-width: 0;
  padding: 18px 20px;
  border-inline-end: 1px solid var(--zc-border);
}
.progress-summary > div:last-child { border-inline-end: 0; }
.progress-summary dt,
.progress-eyebrow,
.progress-item-state,
.progress-week-heading span {
  color: var(--zc-muted);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.progress-summary dd {
  margin: 6px 0 0;
  font-weight: 750;
  overflow-wrap: anywhere;
}
.progress-definitions { border-top: 1px solid var(--zc-border); }
.progress-definitions > summary {
  min-height: 44px;
  padding: 12px 20px;
  cursor: pointer;
  font-weight: 700;
}
.progress-definitions dl {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0 20px 20px;
}
.progress-definitions dl > div { display: grid; grid-template-columns: 150px 1fr; gap: 16px; }
.progress-definitions dt { font-weight: 750; }
.progress-definitions dd { margin: 0; color: var(--zc-muted); }
.progress-primary-grid,
.progress-secondary-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 24px;
  min-width: 0;
}
.progress-panel,
.progress-provider-status { padding: 22px; }
.progress-panel h2,
.progress-provider-status h2 { margin: 0 0 18px; font-size: 1.05rem; }
.progress-panel h3 { margin: 6px 0 8px; font-size: 1rem; overflow-wrap: anywhere; }
.progress-panel p { overflow-wrap: anywhere; }
.progress-primary-action,
.progress-action,
.progress-item-links a,
.progress-feedback-list a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-weight: 750;
}
.progress-primary-action,
.progress-action {
  justify-content: center;
  margin-top: 10px;
  padding: 10px 16px;
  border-radius: 10px;
  background: var(--zc-accent);
  color: #fff;
  text-decoration: none;
}
.progress-action-list,
.progress-feedback-list,
.progress-path > ol {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.progress-action-list > li,
.progress-feedback-list > li,
.progress-week {
  min-width: 0;
  padding: 14px 16px;
  border: 1px solid var(--zc-border);
  border-radius: 10px;
}
.progress-item-state { margin: 0; }
.progress-item-links { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.progress-week { position: relative; }
.progress-week::before {
  content: "";
  position: absolute;
  inset-block: -13px;
  inset-inline-start: -1px;
  width: 3px;
  background: var(--zc-border);
}
.progress-week:first-child::before { inset-block-start: 18px; }
.progress-week:last-child::before { inset-block-end: 18px; }
.progress-week--current::before { background: var(--zc-accent); }
.progress-week-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}
.progress-week-heading p { margin: 0; text-align: end; }
.progress-week details { margin-top: 12px; }
.progress-week summary { min-height: 44px; padding-block: 10px; cursor: pointer; font-weight: 700; }
.progress-week ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.progress-week ul li,
.progress-feedback-list li {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  overflow-wrap: anywhere;
}
.progress-focused-item { outline: 3px solid var(--zc-focus); outline-offset: 2px; }
.progress-provider-status p:last-child { margin-bottom: 0; }

@media (max-width: 700px) {
  .contextual-coach { grid-template-columns: minmax(0, 1fr); padding: 18px 16px; }
  .contextual-coach-action { width: 100%; }
  .progress-workspace { gap: 16px; }
  .progress-heading,
  .progress-week-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
  .progress-summary { grid-template-columns: 1fr; }
  .progress-summary > div {
    display: grid;
    grid-template-columns: minmax(110px, .75fr) minmax(0, 1.25fr);
    gap: 12px;
    border-inline-end: 0;
    border-bottom: 1px solid var(--zc-border);
  }
  .progress-summary > div:last-child { border-bottom: 0; }
  .progress-summary dd { margin: 0; }
  .progress-definitions dl > div { grid-template-columns: 1fr; gap: 2px; }
  .progress-primary-grid,
  .progress-secondary-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .progress-primary-action,
  .progress-action { width: 100%; }
  .progress-panel,
  .progress-provider-status { padding: 18px 16px; }
  .progress-week-heading p { text-align: start; }
  .progress-week ul li,
  .progress-feedback-list li { flex-direction: column; gap: 4px; }
}

@media (max-width: 240px) {
  .progress-summary > div {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }
  .progress-summary dd { margin: 6px 0 0; }
}

@media (prefers-reduced-motion: reduce) {
  .contextual-coach *,
  .progress-workspace * {
    scroll-behavior: auto;
    transition-duration: .01ms;
    animation-duration: .01ms;
  }
}

/* TB-279: factual instructor Insights ----------------------------------- */
.insights-workspace {
  --zc-border: var(--zc-line);
  --zc-accent: var(--zc-brand-600);
  display: grid;
  gap: 20px;
  min-width: 0;
  color: var(--zc-ink);
}
.insights-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}
.insights-heading h1 { margin: 0 0 4px; }
.insights-heading p { margin: 0; color: var(--zc-muted); overflow-wrap: anywhere; }
.insights-read-only,
.insights-filter-notice {
  padding: 10px 14px;
  border: 1px solid var(--zc-border);
  border-radius: 10px;
  background: var(--zc-surface);
}
.insights-filter-notice { border-inline-start: 4px solid var(--zc-accent); }
.insights-switch {
  display: flex;
  min-width: 0;
  border-bottom: 1px solid var(--zc-border);
  overflow-x: auto;
}
.insights-switch a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 44px;
  padding: 8px 14px;
  border-bottom: 3px solid transparent;
  color: var(--zc-muted);
  font-weight: 750;
  text-decoration: none;
  white-space: nowrap;
}
.insights-switch a[aria-current="page"] {
  border-bottom-color: var(--zc-accent);
  color: var(--zc-ink);
}
.insights-switch a span {
  display: inline-grid;
  place-items: center;
  min-width: 24px;
  min-height: 24px;
  padding-inline: 6px;
  border-radius: 999px;
  background: var(--zc-surface-2);
  font-size: .78rem;
}
.insights-mobile-switch { display: none; }
.insights-filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr)) auto;
  align-items: end;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--zc-border);
  border-radius: 14px;
  background: var(--zc-surface);
}
.insights-filters label,
.insights-mobile-switch label,
.insights-owned-scope {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: var(--zc-muted);
  font-size: .8rem;
  font-weight: 750;
}
.insights-filters select,
.insights-filters input,
.insights-mobile-switch select {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 8px 10px;
  border: 1px solid var(--zc-border);
  border-radius: 8px;
  background: var(--zc-bg);
  color: var(--zc-ink);
}
.insights-filters button,
.insights-mobile-switch button,
.insights-export-actions a,
.insights-row-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 9px 15px;
  border: 0;
  border-radius: 9px;
  background: var(--zc-accent);
  color: #fff;
  font: inherit;
  font-weight: 750;
  text-decoration: none;
}
.insights-owned-scope strong {
  min-height: 44px;
  padding: 11px 0;
  color: var(--zc-ink);
  overflow-wrap: anywhere;
}
.insights-summary-region,
.insights-region,
.insights-history {
  min-width: 0;
  border: 1px solid var(--zc-border);
  border-radius: 15px;
  background: var(--zc-surface);
}
.insights-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
}
.insights-summary > div {
  min-width: 0;
  padding: 18px;
  border-inline-end: 1px solid var(--zc-border);
}
.insights-summary > div:last-child { border-inline-end: 0; }
.insights-summary dt,
.insights-eyebrow {
  color: var(--zc-muted);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.insights-summary dd { margin: 6px 0 0; font-weight: 760; overflow-wrap: anywhere; }
.insights-definitions { border-top: 1px solid var(--zc-border); }
.insights-definitions > summary,
.insights-history > summary {
  min-height: 44px;
  padding: 12px 18px;
  cursor: pointer;
  font-weight: 750;
}
.insights-definitions dl,
.insights-provider-list,
.insights-provider dl {
  display: grid;
  gap: 10px;
  margin: 0;
}
.insights-definitions dl { padding: 0 18px 14px; }
.insights-definitions dl > div,
.insights-provider-list > div,
.insights-provider dl > div {
  display: grid;
  grid-template-columns: minmax(150px, .4fr) minmax(0, 1fr);
  gap: 16px;
}
.insights-definitions dt,
.insights-provider-list dt,
.insights-provider dt { font-weight: 750; }
.insights-definitions dd,
.insights-provider-list dd,
.insights-provider dd { margin: 0; color: var(--zc-muted); overflow-wrap: anywhere; }
.insights-definitions > a { display: inline-flex; min-height: 44px; align-items: center; margin: 0 18px 10px; }
.insights-region { padding: 20px; }
.insights-region-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 16px;
}
.insights-region-heading h2 { margin: 2px 0 0; font-size: 1.08rem; }
.insights-region-heading a { display: inline-flex; align-items: center; min-height: 44px; }
.insights-eyebrow { margin: 0; }
.insights-overview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
.insights-table-wrap { min-width: 0; overflow-x: auto; }
.insights-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.insights-table th,
.insights-table td {
  padding: 12px 10px;
  border-bottom: 1px solid var(--zc-border);
  text-align: start;
  vertical-align: top;
  overflow-wrap: anywhere;
}
.insights-table th { color: var(--zc-muted); font-size: .78rem; text-transform: uppercase; }
.insights-table td:first-child { width: 26%; }
.insights-table td span { display: block; margin-top: 5px; color: var(--zc-muted); }
.insights-table a { overflow-wrap: anywhere; }
.insights-items-table td:first-child { width: 22%; }
.insights-empty {
  padding: 18px;
  border: 1px dashed var(--zc-border);
  border-radius: 10px;
}
.insights-empty p { margin-top: 0; }
.insights-empty a { display: inline-flex; min-height: 44px; align-items: center; }
.insights-pagination {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
  margin-top: 14px;
}
.insights-pagination a,
.insights-pagination > span:first-child,
.insights-pagination > span:last-child {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.insights-provider { border-top: 1px solid var(--zc-border); }
.insights-provider > summary { min-height: 44px; padding: 12px 0; cursor: pointer; font-weight: 750; }
.insights-provider dl { padding-bottom: 16px; }
.insights-provider-list { padding: 0; }
.insights-export-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.insights-history { padding-bottom: 12px; }
.insights-history p { margin: 4px 18px 10px; overflow-wrap: anywhere; }

@media (max-width: 900px) {
  .insights-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .insights-filters button { width: 100%; }
}

@media (max-width: 700px) {
  .insights-workspace { gap: 16px; }
  .insights-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
  .insights-switch { display: none; }
  .insights-mobile-switch {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 10px;
  }
  .insights-filters { grid-template-columns: minmax(0, 1fr); padding: 14px; }
  .insights-summary { grid-template-columns: minmax(0, 1fr); }
  .insights-summary > div {
    display: grid;
    grid-template-columns: minmax(110px, .75fr) minmax(0, 1.25fr);
    gap: 12px;
    border-inline-end: 0;
    border-bottom: 1px solid var(--zc-border);
  }
  .insights-summary > div:last-child { border-bottom: 0; }
  .insights-summary dd { margin: 0; }
  .insights-definitions dl > div,
  .insights-provider-list > div,
  .insights-provider dl > div { grid-template-columns: 1fr; gap: 3px; }
  .insights-overview-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .insights-region { padding: 16px; }
  .insights-region-heading { flex-direction: column; gap: 6px; }
  .insights-table-wrap { overflow: visible; }
  .insights-table,
  .insights-table thead,
  .insights-table tbody,
  .insights-table tr,
  .insights-table th,
  .insights-table td { display: block; width: 100%; }
  .insights-table thead { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .insights-table tr { margin-bottom: 12px; padding: 10px; border: 1px solid var(--zc-border); border-radius: 10px; }
  .insights-table td,
  .insights-table td:first-child { display: grid; grid-template-columns: minmax(90px, .4fr) minmax(0, 1fr); gap: 10px; width: 100%; border-bottom: 1px solid var(--zc-border); }
  .insights-table td:last-child { border-bottom: 0; }
  .insights-table td::before { content: attr(data-label); color: var(--zc-muted); font-size: .76rem; font-weight: 800; text-transform: uppercase; }
  .insights-pagination { justify-content: space-between; gap: 8px; }
  .insights-export-actions { display: grid; }
  .insights-export-actions a { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .insights-workspace * {
    scroll-behavior: auto;
    transition-duration: .01ms;
    animation-duration: .01ms;
  }
}

/* TB-280: canonical Z-Change Experiences workspace. */
.zchange-workspace {
  min-width: 0;
  display: grid;
  gap: 22px;
}

.zchange-workspace h1,
.zchange-workspace h2,
.zchange-workspace h3,
.zchange-workspace p { overflow-wrap: anywhere; }

.zchange-page-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 28px;
}

.zchange-page-heading h1,
.zchange-reader h1,
.zchange-credential h1 { margin: 0; }
.zchange-page-heading p { max-width: 68ch; margin: 8px 0 0; color: var(--zc-muted); }
.zchange-page-heading > p { flex: 0 0 auto; margin-top: 7px; }

.zchange-local-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-radius-control);
  background: var(--zc-surface);
  overflow: hidden;
}

.zchange-local-nav a {
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border-inline-end: 1px solid var(--zc-line);
  color: var(--zc-muted);
  font-weight: 760;
  text-align: center;
  text-decoration: none;
}
.zchange-local-nav a:last-child { border-inline-end: 0; }
.zchange-local-nav a[aria-current="page"] {
  color: var(--zc-brand-800);
  background: var(--zc-brand-050);
  box-shadow: inset 0 -3px 0 var(--zc-brand-600);
}
.zchange-local-switch { display: none; }

.zchange-filters,
.zchange-company-filters {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(150px, .7fr) minmax(170px, .8fr) minmax(240px, 1.5fr) auto;
  align-items: end;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-radius-panel);
  background: var(--zc-surface);
  box-shadow: var(--zc-shadow-panel);
}
.zchange-company-filters { grid-template-columns: minmax(260px, 1.5fr) minmax(180px, .75fr) auto; }
.zchange-filters label,
.zchange-company-filters label,
.zchange-local-switch label {
  min-width: 0;
  display: grid;
  gap: 6px;
  color: var(--zc-muted);
  font-size: .82rem;
  font-weight: 760;
}
.zchange-filters input,
.zchange-filters select,
.zchange-company-filters input,
.zchange-company-filters select,
.zchange-local-switch select {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 9px 11px;
  border: 1px solid var(--zc-line-strong);
  border-radius: var(--zc-radius-control);
  color: var(--zc-ink);
  background: var(--zc-surface);
}
.zchange-filters button,
.zchange-company-filters button,
.zchange-local-switch button,
.zchange-credential button {
  min-height: 44px;
  padding: 9px 15px;
  border: 1px solid var(--zc-brand-700);
  border-radius: var(--zc-radius-control);
  color: #fff;
  background: var(--zc-brand-700);
  cursor: pointer;
  font-weight: 760;
}

.zchange-result-count { margin: -6px 0; color: var(--zc-muted); font-weight: 720; }
.zchange-workspace section > h2 { margin: 0 0 12px; font-size: 1.08rem; }
.zchange-card-grid,
.zchange-company-results,
.zchange-tool-list {
  min-width: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.zchange-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
  gap: 16px;
}
.zchange-card-grid > li { min-width: 0; display: flex; }
.zchange-experience-card {
  min-width: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-radius-panel);
  background: var(--zc-surface);
  box-shadow: var(--zc-shadow-panel);
}
.zchange-experience-card > header,
.zchange-experience-card > footer { padding: 18px; }
.zchange-experience-card > header { border-bottom: 1px solid var(--zc-line); }
.zchange-experience-card > header > div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 14px;
  color: var(--zc-muted);
  font-size: .8rem;
}
.zchange-experience-card h3 { margin: 12px 0 3px; font-size: 1.08rem; }
.zchange-experience-card header p { margin: 0; color: var(--zc-muted); }
.zchange-state {
  color: var(--zc-brand-800);
  font-size: .75rem;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.zchange-professional-facts { margin: 0; padding: 0 18px; }
.zchange-professional-facts > div {
  display: grid;
  grid-template-columns: minmax(126px, .38fr) minmax(0, 1fr);
  gap: 14px;
  padding: 13px 0;
  border-bottom: 1px solid var(--zc-line);
}
.zchange-professional-facts dt { font-weight: 760; }
.zchange-professional-facts dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.zchange-professional-facts details summary { min-height: 32px; cursor: pointer; font-weight: 700; }
.zchange-professional-facts ul { margin: 8px 0 0; padding-inline-start: 20px; }
.zchange-professional-facts a { overflow-wrap: anywhere; }
.zchange-secondary-fact { display: block; margin-top: 5px; color: var(--zc-muted); }
.zchange-experience-card > footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin-top: auto;
}
.zchange-experience-card footer a,
.zchange-primary-action,
.zchange-return-link,
.zchange-empty a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  overflow-wrap: anywhere;
}
.zchange-primary-action {
  padding: 9px 14px;
  border-radius: var(--zc-radius-control);
  color: #fff;
  background: var(--zc-brand-700);
  font-weight: 760;
  text-decoration: none;
}

.zchange-empty,
.zchange-panel,
.zchange-reader > article,
.zchange-reader > aside {
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-radius-panel);
  background: var(--zc-surface);
  box-shadow: var(--zc-shadow-panel);
}
.zchange-empty { border-style: dashed; }
.zchange-empty h2,
.zchange-empty p { margin-top: 0; }
.zchange-company-results { border-top: 1px solid var(--zc-line); }
.zchange-company-results li { border-bottom: 1px solid var(--zc-line); }
.zchange-company-results a {
  min-height: 64px;
  display: grid;
  gap: 4px;
  padding: 12px 10px;
  text-decoration: none;
}
.zchange-company-results a:hover { background: var(--zc-brand-050); }
.zchange-company-results span { color: var(--zc-muted); font-size: .85rem; }
.zchange-pagination { display: flex; justify-content: flex-end; color: var(--zc-muted); }
.zchange-pagination span { min-height: 44px; display: inline-flex; align-items: center; }

.zchange-reader { max-width: 920px; margin-inline: auto; }
.zchange-reader article > header { padding-bottom: 14px; border-bottom: 1px solid var(--zc-line); }
.zchange-reader article > header p { margin-bottom: 0; color: var(--zc-muted); }
.zchange-source-content { min-width: 0; padding-top: 10px; overflow-wrap: anywhere; }
.zchange-source-content table { width: 100%; border-collapse: collapse; }
.zchange-source-content th,
.zchange-source-content td { padding: 9px; border: 1px solid var(--zc-line); text-align: start; }
.zchange-reader details > summary { min-height: 44px; cursor: pointer; font-weight: 760; }
.zchange-reader dl { display: grid; gap: 10px; margin-bottom: 0; }
.zchange-reader dl > div { display: grid; grid-template-columns: minmax(120px, .3fr) minmax(0, 1fr); gap: 14px; }
.zchange-reader dt { font-weight: 760; }
.zchange-reader dd { margin: 0; overflow-wrap: anywhere; }

.zchange-tools-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
  gap: 18px;
  align-items: start;
}
.zchange-tool-list { display: grid; gap: 12px; }
.zchange-tool-list li { padding: 16px; border: 1px solid var(--zc-line); border-radius: var(--zc-radius-control); }
.zchange-tool-list h3 { margin: 0; }
.zchange-tool-list dl { display: grid; grid-template-columns: minmax(110px, .35fr) minmax(0, 1fr); gap: 7px 12px; margin-bottom: 0; }
.zchange-tool-list dt { font-weight: 760; }
.zchange-tool-list dd { margin: 0; overflow-wrap: anywhere; }
.zchange-credential-state { color: var(--zc-muted); font-weight: 720; }
.zchange-key-warning,
.zchange-error {
  margin: 0;
  padding: 14px 16px;
  border: 1px solid #d8bb74;
  border-radius: var(--zc-radius-control);
  color: #5d4308;
  background: var(--zc-warning-bg);
}
.zchange-error { border-color: var(--zc-danger); color: var(--zc-danger); background: var(--zc-danger-bg); }
.zchange-revealed-key {
  min-width: 0;
  display: block;
  margin: 12px 0;
  padding: 13px;
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-radius-control);
  background: var(--zc-canvas);
  overflow-wrap: anywhere;
  user-select: all;
}
.zchange-credential-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.zchange-confirmation { min-height: 44px; display: flex; align-items: center; gap: 8px; overflow-wrap: anywhere; }
.zchange-confirmation input { width: 20px; height: 20px; flex: 0 0 auto; }
.zchange-credential pre {
  max-width: 100%;
  padding: 14px;
  border-radius: var(--zc-radius-control);
  background: var(--zc-canvas);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

@media (max-width: 900px) {
  .zchange-filters,
  .zchange-company-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .zchange-filters button,
  .zchange-company-filters button { width: 100%; }
  .zchange-tools-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 700px) {
  .zchange-workspace { gap: 16px; }
  .zchange-page-heading { flex-direction: column; gap: 2px; }
  .zchange-page-heading > p { margin-top: 0; }
  .zchange-local-nav { display: none; }
  .zchange-local-switch { display: grid; gap: 6px; }
  .zchange-local-switch > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
  .zchange-filters,
  .zchange-company-filters { grid-template-columns: minmax(0, 1fr); padding: 14px; }
  .zchange-card-grid { grid-template-columns: minmax(0, 1fr); }
  .zchange-professional-facts > div,
  .zchange-reader dl > div,
  .zchange-tool-list dl { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .zchange-experience-card > footer,
  .zchange-credential-actions { display: grid; }
  .zchange-experience-card footer a,
  .zchange-primary-action,
  .zchange-credential-actions button { width: 100%; justify-content: center; }
  .zchange-empty,
  .zchange-panel,
  .zchange-reader > article,
  .zchange-reader > aside { padding: 16px; }
  .zchange-source-content { max-width: 100%; overflow-x: auto; }
}

@media (max-width: 430px) {
  .zchange-workspace { margin-inline: 2px; }
}

@media (max-width: 240px) {
  .zchange-local-switch > div { grid-template-columns: minmax(0, 1fr); }
  .zchange-local-switch button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .zchange-workspace * {
    scroll-behavior: auto;
    transition-duration: .01ms;
    animation-duration: .01ms;
  }
}

/* TB-284: shared utility, strict-CSP, reflow, and preference contract. */
[hidden] { display: none !important; }

.terminal-native-progress {
  width: 100%;
  min-height: 8px;
  border: 0;
  border-radius: 999px;
  overflow: hidden;
  accent-color: var(--zc-brand-600);
}

.terminal-help-link,
.terminal-notifications,
.terminal-account-trigger,
.terminal-search-link,
.terminal-utility-action,
.terminal-utility-page button,
.terminal-utility-page input,
.terminal-utility-page select,
.terminal-utility-page summary,
.terminal-notification-filters > *,
.qmapdot {
  min-height: 44px;
}

.terminal-help-link,
.terminal-notifications,
.terminal-search-link {
  display: inline-flex;
  align-items: center;
  padding-inline: 12px;
  border-radius: var(--zc-radius-control);
  color: var(--zc-brand-800);
  font-weight: 720;
  text-decoration: none;
}

.terminal-notification-header { position: relative; }
.terminal-notifications {
  border: 0;
  background: transparent;
  cursor: pointer;
}
.terminal-notifications-mobile { display: none; }
.terminal-notification-panel {
  position: absolute;
  z-index: 90;
  inset-block-start: calc(100% + 8px);
  inset-inline-end: 0;
  width: min(420px, calc(100vw - 24px));
  max-height: min(620px, calc(100vh - 88px));
  padding: 16px;
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-radius-panel);
  background: var(--zc-surface);
  box-shadow: var(--zc-shadow-menu);
  overflow-y: auto;
}
.terminal-notification-panel > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.terminal-notification-panel h2,
.terminal-notification-panel p { margin-block: 0 10px; }
.terminal-notification-panel > header button,
.terminal-notification-panel form button,
.terminal-notification-panel > a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding-inline: 12px;
}
.terminal-notification-panel ol {
  display: grid;
  gap: 8px;
  margin: 0 0 10px;
  padding: 0;
  list-style: none;
}
.terminal-notification-panel li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3px 12px;
  padding: 11px 0;
  border-top: 1px solid var(--zc-line);
}
.terminal-notification-panel li > span {
  grid-column: 1 / -1;
  color: var(--zc-muted);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.terminal-notification-panel li > strong { align-self: center; overflow-wrap: anywhere; }
.terminal-notification-panel li > form { margin: 0; }

.terminal-utility-page {
  width: min(100%, 920px);
  display: grid;
  gap: 20px;
  margin-inline: auto;
  overflow-wrap: anywhere;
}

.terminal-utility-heading,
.terminal-search-form,
.terminal-result-card,
.terminal-neutral-state,
.terminal-form-error,
.terminal-utility-form,
.terminal-help-copy,
.terminal-utility-actions,
.terminal-notification-filters {
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-radius-panel);
  background: var(--zc-surface);
  box-shadow: var(--zc-shadow-panel);
}

.terminal-utility-heading h1,
.terminal-utility-heading p { margin-block: 0; }
.terminal-utility-heading h1 { font-size: clamp(1.65rem, 3vw, 2.35rem); }
.terminal-utility-heading > p:last-child { margin-top: 8px; color: var(--zc-muted); }
.terminal-eyebrow,
.terminal-result-kind {
  color: var(--zc-brand-700);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.terminal-search-form,
.terminal-utility-form { display: grid; gap: 12px; }
.terminal-search-fields { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
.terminal-search-fields input,
.terminal-utility-form input:not([type="hidden"]),
.terminal-utility-form select {
  width: 100%;
  min-width: 0;
  padding: 9px 11px;
  border: 1px solid var(--zc-line-strong);
  border-radius: var(--zc-radius-control);
  background: var(--zc-surface);
  color: var(--zc-ink);
}
.terminal-search-form button,
.terminal-utility-form button,
.terminal-notifications-page > form button,
.terminal-result-card button {
  padding: 9px 16px;
  border: 1px solid var(--zc-brand-700);
  border-radius: var(--zc-radius-control);
  color: #fff;
  background: var(--zc-brand-700);
  font-weight: 760;
  cursor: pointer;
}
.terminal-utility-form fieldset {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 14px;
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-radius-control);
}
.terminal-utility-form fieldset label { min-height: 44px; display: flex; align-items: center; gap: 10px; }
.terminal-utility-form input[type="radio"] { width: 20px; height: 20px; }
.terminal-feature-choice {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  min-height: 44px;
  padding: 14px;
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-radius-control);
  background: var(--zc-surface);
}
.terminal-feature-choice + .terminal-feature-choice { margin-top: 10px; }
.terminal-feature-choice.is-available { cursor: pointer; }
.terminal-feature-choice input[type="checkbox"] { width: 20px; height: 20px; margin: 2px 0 0; }
.terminal-feature-choice:focus-within { outline: 3px solid var(--zc-focus); outline-offset: 2px; }
.terminal-utility-actions { display: grid; gap: 10px; }
.terminal-utility-actions form { margin: 0; }
.terminal-utility-action {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-radius-control);
  color: var(--zc-ink);
  background: var(--zc-surface);
  font: inherit;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}
a.terminal-utility-action { text-decoration: none; }
.terminal-result-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.terminal-result-card h3 { margin-block: 4px; }
.terminal-result-card p { margin-block: 5px; color: var(--zc-muted); }
.terminal-notification-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.terminal-notification-filters > * { display: inline-flex; align-items: center; padding-inline: 12px; }
.terminal-form-error { border-color: var(--zc-danger); color: var(--zc-danger); background: var(--zc-danger-bg); }

body[data-focus-emphasis="enhanced"] :focus-visible {
  outline-width: 4px;
  outline-offset: 4px;
}

body[data-user-motion="reduce"] *,
body[data-user-motion="reduce"] *::before,
body[data-user-motion="reduce"] *::after {
  scroll-behavior: auto !important;
  transition-duration: .01ms !important;
  animation-duration: .01ms !important;
  animation-iteration-count: 1 !important;
}

body,
.terminal-content,
.terminal-utility-page,
.terminal-result-card,
.terminal-header-actions { overflow-wrap: anywhere; }

/* TB-344: instructor feedback compose + complete triage dossiers. */
.feedback-triage-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
}

.feedback-triage-head > div { min-width: 0; }

.feedback-triage-head__action {
  flex: 0 0 auto;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.feedback-message {
  border-left: 4px solid var(--zc-positive);
  background: var(--zc-positive-bg);
}

.feedback-message p { margin: 0; }

.feedback-compose > summary,
.feedback-dossier > summary {
  min-height: 44px;
  cursor: pointer;
  color: var(--zc-brand-700);
  font-weight: 700;
}

.feedback-compose > summary {
  display: flex;
  align-items: center;
  font-size: 1.0625rem;
}

.feedback-compose[open] > summary { margin-bottom: 18px; }
.feedback-compose__intro { margin-bottom: 18px; }
.feedback-compose__intro h2 { margin: 0 0 4px; font-size: 1.25rem; }
.feedback-compose__intro p { margin: 0; }

.feedback-compose-form {
  display: grid;
  gap: 16px;
}

.feedback-compose-form__selectors {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(180px, .8fr);
  gap: 12px;
  align-items: end;
}

.feedback-compose-form label,
.feedback-compose-form__course {
  min-width: 0;
  display: grid;
  gap: 6px;
  color: var(--zc-ink);
  font-weight: 650;
}

.feedback-compose-form input:not([type="radio"]):not([type="file"]),
.feedback-compose-form textarea,
.feedback-compose-form select {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  border: 1px solid var(--zc-line-strong);
  border-radius: var(--zc-radius-control);
  padding: 10px 12px;
  color: var(--zc-ink);
  background: var(--zc-surface);
}

.feedback-compose-form textarea {
  resize: vertical;
  min-height: 118px;
}

.feedback-compose-form input[type="file"] {
  max-width: 100%;
  min-height: 44px;
  padding: 8px 0;
  font-weight: 400;
}

.feedback-compose-form__course {
  min-height: 44px;
  align-content: center;
  padding: 7px 12px;
  border-left: 3px solid var(--zc-brand-600);
  background: var(--zc-brand-050);
}

.feedback-compose-form__course span,
.feedback-report__number {
  color: var(--zc-muted);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.feedback-compose-form__help { margin: -12px 0 0; }

.feedback-compose-form__visibility {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  margin: 0;
  padding: 14px;
  border: 1px solid var(--zc-line);
  border-radius: var(--zc-radius-control);
}

.feedback-compose-form__visibility legend { padding: 0 6px; font-weight: 700; }
.feedback-compose-form__visibility label { display: block; font-weight: 650; }
.feedback-compose-form > .btn { justify-self: start; min-height: 44px; }
.feedback-compose-card h2,
.feedback-glance h2 { margin-top: 0; }

.feedback-cluster {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(150px, auto);
  gap: 16px;
  align-items: start;
  max-width: 100%;
}

.feedback-cluster--targeted {
  border-color: var(--zc-brand-600);
  box-shadow: inset 4px 0 0 var(--zc-brand-600), var(--zc-shadow-panel);
}

.feedback-cluster__report { min-width: 0; }
.feedback-cluster__report h3 { margin: 0 0 6px; font-size: 1.125rem; }
.feedback-cluster__signals { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.feedback-cluster__preview { margin: 12px 0; }
.feedback-cluster__actions,
.feedback-cluster__actions label { min-width: 0; }
.feedback-cluster__actions select { max-width: 100%; }

.feedback-dossier {
  margin-top: 12px;
  border-top: 1px solid var(--zc-line);
}

.feedback-dossier > summary {
  display: flex;
  align-items: center;
  padding: 10px 0 0;
}

.feedback-dossier__members {
  display: grid;
  gap: 12px;
  margin-top: 12px;
}

.feedback-report {
  min-width: 0;
  padding: 16px 16px 16px 20px;
  border: 1px solid var(--zc-line);
  border-left: 4px solid var(--zc-line-strong);
  border-radius: var(--zc-radius-control);
  background: var(--zc-surface);
}

.feedback-report--targeted {
  border-left-color: var(--zc-focus);
  background: var(--zc-brand-050);
}

.feedback-report__head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: start;
}

.feedback-report__head > div { min-width: 0; }
.feedback-report__head h4 { margin: 2px 0 0; font-size: 1.0625rem; }

.feedback-report__meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px 14px;
  margin: 14px 0;
}

.feedback-report__meta div { min-width: 0; }
.feedback-report__meta dt { color: var(--zc-muted); font-size: 0.75rem; font-weight: 700; }
.feedback-report__meta dd { margin: 0; overflow-wrap: anywhere; }

.feedback-report__body {
  margin: 0;
  padding: 14px;
  border-radius: var(--zc-radius-control);
  color: var(--zc-ink);
  background: var(--zc-canvas);
  white-space: normal;
  overflow-wrap: anywhere;
}

.feedback-report__attachments,
.feedback-attachments {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-top: 12px;
}

.feedback-board-row { display: flex; gap: 14px; align-items: start; }
.feedback-board-row__vote,
.feedback-board-row__private { flex: 0 0 auto; }
.feedback-board-row__content { min-width: 0; flex: 1; }
.feedback-board-row__body { margin-top: 8px; }
.feedback-board-row__visibility { margin-top: 10px; }
.feedback-attachments img { width: 72px; height: 52px; object-fit: cover; border-radius: 6px; }

@media (max-width: 760px) {
  .feedback-triage-head { align-items: stretch; flex-direction: column; }
  .feedback-triage-head__action { align-self: start; }
  .feedback-compose-form__selectors,
  .feedback-cluster,
  .feedback-report__meta { grid-template-columns: minmax(0, 1fr); }
  .feedback-cluster__score { justify-self: start; }
  .feedback-cluster__actions,
  .feedback-cluster__actions label,
  .feedback-cluster__actions select { width: 100%; }
  .feedback-report__head { align-items: start; }
}

@media (max-width: 390px) {
  .feedback-compose-form__visibility { display: grid; grid-template-columns: minmax(0, 1fr); }
  .feedback-compose-form > .btn,
  .feedback-triage-head__action { width: 100%; justify-content: center; }
  .feedback-report { padding: 14px; }
  .feedback-report__head { flex-direction: column; gap: 8px; }
  .feedback-board-row { display: grid; grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 390px) {
  :root { --zc-header-height: 112px; }
  .terminal-header,
  body[data-shell-mode="gate"] .terminal-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    grid-template-rows: 64px 48px;
    padding-inline: 10px;
  }
  .terminal-brand { display: none; }
  .terminal-course {
    grid-column: 1 / 3;
    grid-row: 1;
    padding-inline: 2px 10px;
  }
  .terminal-header-actions { display: contents; }
  .terminal-account-trigger {
    grid-column: 3;
    grid-row: 1;
  }
  .terminal-search {
    grid-column: 1;
    grid-row: 2;
    display: block;
    padding: 0;
  }
  .terminal-search-link {
    width: 100%;
    justify-content: center;
    white-space: nowrap;
  }
  .terminal-notification-header {
    grid-column: 2;
    grid-row: 2;
  }
  .terminal-help-link {
    grid-column: 3;
    grid-row: 2;
    white-space: nowrap;
  }
  .terminal-notifications-desktop,
  .terminal-notification-panel { display: none !important; }
  .terminal-notifications-mobile {
    width: auto;
    display: inline-flex;
    justify-content: center;
    overflow: visible;
    color: var(--zc-brand-800);
    white-space: nowrap;
  }
  .terminal-utility-page { gap: 14px; }
  .terminal-utility-heading,
  .terminal-search-form,
  .terminal-result-card,
  .terminal-neutral-state,
  .terminal-form-error,
  .terminal-utility-form,
  .terminal-help-copy,
  .terminal-utility-actions,
  .terminal-notification-filters { padding: 16px; }
  .terminal-search-fields { grid-template-columns: minmax(0, 1fr); }
  .terminal-search-fields button,
  .terminal-notifications-page > form button { width: 100%; }
  .terminal-notification-filters { display: grid; grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Course Home — self-hosted theme-song anthem band (media-src 'self'; no CSP change) */
.course-home-anthem {
  margin: 0 0 18px;
  border: 1px solid #d8d1bc;
  border-radius: 16px;
  overflow: hidden;
  background: #0f1a17;
  color: #eef5f0;
  box-shadow: 0 10px 32px rgba(24, 53, 46, .06);
}
.course-home-anthem-head {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 12px 16px;
}
.course-home-anthem-head .k {
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #e7c780;
}
.course-home-anthem-head h2 { margin: 0; font-size: 1.05rem; color: #fff; }
.course-home-anthem video {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #000;
  border: 0;
}
