/* Skolverket curriculum mapping — shared teacher/admin presentation layer.
   Official source text, RoboLabs guidance, and review state remain visually
   distinct. No simulator or robot-workspace selectors belong in this file. */

.curriculum-page {
  --curriculum-bg: #f6f8fb;
  --curriculum-surface: #fff;
  --curriculum-subtle: #f9fafb;
  --curriculum-text: #101828;
  --curriculum-muted: #667085;
  --curriculum-border: #e4e7ec;
  --curriculum-border-strong: #d0d5dd;
  --curriculum-blue: #2f6bff;
  --curriculum-blue-hover: #2458d8;
  --curriculum-blue-subtle: #eef4ff;
  --curriculum-cyan: #16b8d4;
  --curriculum-cyan-subtle: #ecfbfd;
  --curriculum-success: #15803d;
  --curriculum-success-bg: #ecfdf3;
  --curriculum-warning: #b54708;
  --curriculum-warning-bg: #fffaeb;
  --curriculum-error: #b42318;
  --curriculum-error-bg: #fef3f2;
  --curriculum-radius-sm: 6px;
  --curriculum-radius: 10px;
  --curriculum-radius-lg: 12px;
  display: grid;
  width: 100%;
  max-width: 1600px;
  margin-inline: auto;
  gap: 24px;
  color: var(--curriculum-text);
  color-scheme: light;
}

.curriculum-page :where(button, input, select, textarea, summary, a):focus-visible {
  outline: 2px solid var(--curriculum-blue);
  outline-offset: 2px;
}

.curriculum-page :where(button, input, select, textarea):disabled {
  cursor: not-allowed;
  opacity: .55;
}

.curriculum-page .teacher-page-kicker,
.curriculum-mapping-dialog .teacher-page-kicker {
  color: var(--curriculum-blue-hover);
  font-family: var(--mono, ui-monospace, monospace);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .08em;
}

.curriculum-page-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 23px;
  border-bottom: 1px solid var(--curriculum-border);
}

.curriculum-page-header h1 {
  margin: 5px 0 4px;
  color: var(--curriculum-text);
  font-size: clamp(28px, 3vw, 32px);
  font-weight: 680;
  letter-spacing: -.035em;
  line-height: 1.2;
}

.curriculum-page-header p,
.curriculum-admin-section-header p,
.curriculum-browser-heading p {
  max-width: 74ch;
  margin: 0;
  color: var(--curriculum-muted);
  font-size: 13px;
  line-height: 1.55;
}

.curriculum-breadcrumbs {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 8px;
  color: var(--curriculum-muted);
  font-size: 12px;
}

.curriculum-breadcrumbs a {
  color: var(--curriculum-blue-hover);
  text-decoration: none;
}

.curriculum-sync-note {
  display: grid;
  flex: 0 0 auto;
  gap: 2px;
  min-width: 180px;
  padding: 12px 14px;
  border: 1px solid var(--curriculum-border);
  border-radius: var(--curriculum-radius);
  background: var(--curriculum-surface);
}

.curriculum-sync-note span,
.curriculum-sync-note small {
  color: var(--curriculum-muted);
  font-size: 10px;
}

.curriculum-sync-note strong {
  font-size: 13px;
}

.curriculum-section-nav {
  display: flex;
  gap: 4px;
  padding: 4px;
  overflow-x: auto;
  border: 1px solid var(--curriculum-border);
  border-radius: var(--curriculum-radius);
  background: var(--curriculum-surface);
}

.curriculum-section-nav button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  gap: 8px;
  padding: 8px 14px;
  border: 0;
  border-radius: var(--curriculum-radius-sm);
  background: transparent;
  color: var(--curriculum-muted);
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}

.curriculum-section-nav button:hover {
  background: var(--curriculum-subtle);
  color: var(--curriculum-text);
}

.curriculum-section-nav button.is-active {
  background: var(--curriculum-blue-subtle);
  color: var(--curriculum-blue-hover);
}

.curriculum-section-nav button span {
  display: inline-grid;
  min-width: 20px;
  min-height: 20px;
  place-items: center;
  padding-inline: 5px;
  border-radius: 5px;
  background: rgba(47, 107, 255, .1);
  font-family: var(--mono, ui-monospace, monospace);
  font-size: 10px;
}

.curriculum-warning {
  padding: 13px 15px;
  border: 1px solid #fedf89;
  border-radius: var(--curriculum-radius);
  background: var(--curriculum-warning-bg);
  color: var(--curriculum-warning);
}

.curriculum-warning p,
.curriculum-warning ul {
  margin: 4px 0 0;
  font-size: 12px;
}

.curriculum-explore,
.curriculum-browser,
.curriculum-admin-overview,
.curriculum-admin-section {
  display: grid;
  gap: 20px;
}

.curriculum-global-search {
  display: grid;
  gap: 14px;
  padding: 20px 22px;
  border: 1px solid var(--curriculum-border);
  border-radius: var(--curriculum-radius-lg);
  background: linear-gradient(105deg, var(--curriculum-surface) 0%, #f8fbff 100%);
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
}

.curriculum-global-search h2 {
  margin: 4px 0 3px;
  font-size: 18px;
}

.curriculum-global-search header p {
  max-width: 78ch;
  margin: 0;
  color: var(--curriculum-muted);
  font-size: 12px;
  line-height: 1.55;
}

.curriculum-global-search-form {
  display: grid;
  gap: 6px;
}

.curriculum-global-search-form > label {
  color: var(--curriculum-muted);
  font-size: 11px;
  font-weight: 650;
}

.curriculum-global-search-form > div {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto auto;
  gap: 8px;
}

.curriculum-global-search-context {
  margin: 0;
  color: var(--curriculum-blue-hover);
  font-size: 11px;
}

.curriculum-global-results {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
  gap: 8px;
}

.curriculum-global-result {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3px 10px;
  min-height: 78px;
  padding: 12px 13px;
  border: 1px solid var(--curriculum-border);
  border-radius: var(--curriculum-radius-sm);
  background: var(--curriculum-surface);
  color: var(--curriculum-text);
  text-decoration: none;
}

.curriculum-global-result:hover {
  border-color: #b2ccff;
  background: var(--curriculum-blue-subtle);
}

.curriculum-global-result > :not(:last-child) { grid-column: 1; }
.curriculum-global-result > :last-child { grid-column: 2; grid-row: 1 / span 3; align-self: center; color: var(--curriculum-blue-hover); }
.curriculum-global-result strong { font-size: 13px; line-height: 1.35; }
.curriculum-global-result small { color: var(--curriculum-muted); font-size: 11px; }

.curriculum-search-result-type {
  width: fit-content;
  color: var(--curriculum-blue-hover);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.curriculum-filter-shell,
.curriculum-subject-context,
.curriculum-item-browser,
.curriculum-detail-column > section,
.curriculum-planning-sidebar,
.curriculum-plan-detail,
.curriculum-admin-section,
.curriculum-admin-summary,
.curriculum-admin-principles {
  border: 1px solid var(--curriculum-border);
  border-radius: var(--curriculum-radius-lg);
  background: var(--curriculum-surface);
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
}

.curriculum-filter-shell,
.curriculum-admin-section {
  padding: 22px 24px 24px;
}

.curriculum-filter-shell > .teacher-section-heading {
  justify-content: flex-start;
}

.curriculum-filter-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(145px, 1fr));
  gap: 12px;
  margin-top: 20px;
  padding: 14px;
  border: 1px solid var(--curriculum-border);
  border-radius: var(--curriculum-radius);
  background: var(--curriculum-subtle);
}

.curriculum-filter-grid .teacher-filter-field,
.curriculum-admin-filter-row label,
.curriculum-admin-search,
.curriculum-mapping-form .teacher-form-field,
.curriculum-create-plan .teacher-filter-field,
.curriculum-edit-plan .teacher-filter-field {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.curriculum-filter-grid label > span,
.curriculum-admin-filter-row label > span,
.curriculum-admin-search > span,
.curriculum-mapping-form .teacher-form-field > span,
.curriculum-create-plan .teacher-filter-field > span,
.curriculum-edit-plan .teacher-filter-field > span {
  color: var(--curriculum-muted);
  font-size: 10px;
  font-weight: 650;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.curriculum-page :where(input, select, textarea) {
  width: 100%;
  min-width: 0;
  min-height: 40px;
  padding: 9px 11px;
  border: 1px solid var(--curriculum-border-strong);
  border-radius: var(--curriculum-radius-sm);
  background: var(--curriculum-surface);
  color: var(--curriculum-text);
  font: inherit;
  font-size: 13px;
}

.curriculum-page textarea {
  resize: vertical;
  line-height: 1.55;
}

.curriculum-search {
  display: grid;
  grid-column: 1 / -1;
  gap: 6px;
}

.curriculum-search > label {
  color: var(--curriculum-muted);
  font-size: 10px;
  font-weight: 650;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.curriculum-search > div {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto auto;
  gap: 8px;
}

.curriculum-target-context {
  padding: 16px;
  border: 1px solid #b2e9f2;
  border-radius: var(--curriculum-radius-lg);
  background: var(--curriculum-cyan-subtle);
}

.curriculum-target-context > p {
  margin: 0 0 12px;
  color: #087990;
  font-size: 12px;
}

.curriculum-subject-context {
  display: grid;
  grid-template-columns: minmax(220px, .75fr) minmax(420px, 1.4fr) minmax(260px, .85fr);
  align-items: stretch;
  overflow: hidden;
}

.curriculum-subject-heading,
.curriculum-robolabs-context {
  padding: 20px 22px;
}

.curriculum-subject-heading h2 {
  margin: 6px 0 3px;
  font-size: 22px;
}

.curriculum-subject-heading p,
.curriculum-robolabs-context p {
  margin: 4px 0 0;
  color: var(--curriculum-muted);
  font-size: 12px;
  line-height: 1.5;
}

.curriculum-context-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  border-inline: 1px solid var(--curriculum-border);
}

.curriculum-context-facts > div,
.curriculum-plan-meta > div {
  display: grid;
  align-content: center;
  gap: 3px;
  padding: 13px 15px;
  border-top: 1px solid var(--curriculum-border);
  border-left: 1px solid var(--curriculum-border);
}

.curriculum-context-facts > div:nth-child(-n + 2) { border-top: 0; }
.curriculum-context-facts > div:nth-child(odd) { border-left: 0; }

.curriculum-context-facts dt,
.curriculum-plan-meta dt,
.curriculum-source-meta dt {
  color: var(--curriculum-muted);
  font-size: 9px;
  font-weight: 650;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.curriculum-context-facts dd,
.curriculum-plan-meta dd,
.curriculum-source-meta dd {
  margin: 0;
  font-size: 12px;
  font-weight: 600;
}

.curriculum-robolabs-context {
  border-top: 3px solid var(--curriculum-cyan);
  background: var(--curriculum-cyan-subtle);
}

.curriculum-robolabs-context strong {
  display: block;
  margin-top: 8px;
  font-size: 13px;
}

.curriculum-browser-grid {
  display: grid;
  grid-template-columns: minmax(360px, .9fr) minmax(0, 1.35fr);
  align-items: start;
  gap: 20px;
}

.curriculum-item-browser {
  min-width: 0;
  overflow: hidden;
}

.curriculum-browser-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 22px 16px;
  border-bottom: 1px solid var(--curriculum-border);
}

.curriculum-browser-heading h2,
.curriculum-provenance-header h2,
.curriculum-mapped-activities h2 {
  margin: 2px 0 3px;
  font-size: 18px;
}

.curriculum-selection-count {
  flex: 0 0 auto;
  color: var(--curriculum-blue-hover);
  font-family: var(--mono, ui-monospace, monospace);
  font-size: 11px;
  font-weight: 700;
}

.curriculum-item-groups {
  max-height: min(960px, calc(100vh - 220px));
  overflow-y: auto;
}

.curriculum-item-group > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 16px;
  border-bottom: 1px solid var(--curriculum-border);
  background: var(--curriculum-subtle);
}

.curriculum-item-group > header h3 {
  margin: 0;
  font-size: 12px;
  font-weight: 650;
}

.curriculum-item-group > header span {
  color: var(--curriculum-muted);
  font-family: var(--mono, ui-monospace, monospace);
  font-size: 10px;
}

.curriculum-item-row {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  border-bottom: 1px solid var(--curriculum-border);
  background: var(--curriculum-surface);
}

.curriculum-item-row.is-active {
  box-shadow: inset 3px 0 0 var(--curriculum-blue);
  background: var(--curriculum-blue-subtle);
}

.curriculum-item-check {
  display: grid;
  place-items: start center;
  padding-top: 17px;
}

.curriculum-item-check input {
  width: 18px;
  min-height: 18px;
  margin: 0;
  padding: 0;
  accent-color: var(--curriculum-blue);
}

.curriculum-item-open {
  display: grid;
  min-height: 44px;
  gap: 6px;
  padding: 14px 16px 14px 4px;
  border: 0;
  background: transparent;
  color: var(--curriculum-text);
  font: inherit;
  text-align: left;
}

.curriculum-item-open:hover .curriculum-item-row-heading {
  color: var(--curriculum-blue-hover);
}

.curriculum-item-row-heading {
  font-size: 13px;
  font-weight: 650;
  line-height: 1.45;
}

.curriculum-item-row-text {
  display: -webkit-box;
  overflow: hidden;
  color: var(--curriculum-muted);
  font-size: 11px;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.curriculum-item-row-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  color: var(--curriculum-muted);
  font-size: 10px;
}

.curriculum-selection-actions {
  display: grid;
  gap: 12px;
  padding: 16px 18px 18px;
  border-top: 1px solid var(--curriculum-border);
  background: var(--curriculum-subtle);
}

.curriculum-selection-actions > div:first-child strong { font-size: 13px; }
.curriculum-selection-actions > div:first-child p { margin: 3px 0 0; color: var(--curriculum-muted); font-size: 11px; }

.curriculum-selection-controls {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 8px;
}

.curriculum-plan-quick-save {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) auto;
  align-items: end;
  gap: 6px 8px;
  min-width: min(100%, 310px);
}

.curriculum-plan-quick-save label {
  grid-column: 1 / -1;
  color: var(--curriculum-muted);
  font-size: 9px;
  text-transform: uppercase;
}

.curriculum-action-status {
  min-height: 18px;
  margin: 0;
  color: var(--curriculum-muted);
  font-size: 11px;
  line-height: 1.45;
}

.curriculum-action-status.is-saving { color: #175cd3; }
.curriculum-action-status.is-saved { color: var(--curriculum-success); }
.curriculum-action-status.is-error { color: var(--curriculum-error); }

.curriculum-detail-column {
  display: grid;
  min-width: 0;
  gap: 20px;
}

.curriculum-source-panel {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(240px, .75fr);
  overflow: hidden;
}

.curriculum-provenance {
  padding: 22px 24px;
}

.curriculum-provenance--official {
  border-top: 3px solid var(--curriculum-blue);
}

.curriculum-provenance--robolabs {
  border-top: 3px solid var(--curriculum-cyan);
  border-left: 1px solid var(--curriculum-border);
  background: var(--curriculum-cyan-subtle);
}

.curriculum-provenance-header {
  margin-bottom: 16px;
}

.curriculum-provenance-label {
  color: var(--curriculum-blue-hover);
  font-family: var(--mono, ui-monospace, monospace);
  font-size: 9px;
  font-weight: 750;
  letter-spacing: .09em;
}

.curriculum-provenance--robolabs .curriculum-provenance-label,
.curriculum-robolabs-explanation strong {
  color: #087990;
}

.curriculum-source-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0 0 18px;
  border: 1px solid var(--curriculum-border);
  border-radius: var(--curriculum-radius);
}

.curriculum-source-meta > div {
  display: grid;
  gap: 3px;
  padding: 10px 12px;
  border-top: 1px solid var(--curriculum-border);
  border-left: 1px solid var(--curriculum-border);
}

.curriculum-source-meta > div:nth-child(-n + 2) { border-top: 0; }
.curriculum-source-meta > div:nth-child(odd) { border-left: 0; }

.curriculum-provenance h3 {
  margin: 0 0 8px;
  font-size: 15px;
}

.curriculum-official-text,
.curriculum-provenance--robolabs > p,
.curriculum-change-comparison p {
  max-width: 72ch;
  margin: 0;
  white-space: pre-line;
  font-size: 13px;
  line-height: 1.65;
}

.curriculum-provenance--robolabs > p { color: #344054; }
.curriculum-provenance-note { margin-top: 16px !important; color: var(--curriculum-muted) !important; font-size: 11px !important; }
.curriculum-source-link { margin-top: 18px; }
.curriculum-source-missing { margin-top: 16px !important; color: var(--curriculum-muted); font-size: 11px !important; }

.curriculum-mapped-activities {
  padding: 20px 22px;
}

.curriculum-mapped-activities > header {
  margin-bottom: 14px;
}

.curriculum-mapped-activities > div:not(.edu-state) {
  display: grid;
  gap: 10px;
}

.curriculum-mapped-activities article {
  display: grid;
  grid-template-columns: minmax(170px, .65fr) minmax(0, 1.35fr) auto;
  gap: 12px;
  padding: 13px 14px;
  border: 1px solid var(--curriculum-border);
  border-radius: var(--curriculum-radius);
}

.curriculum-mapped-activities article > div {
  display: grid;
  gap: 2px;
}

.curriculum-mapped-activities article span,
.curriculum-mapped-activities article small { color: var(--curriculum-muted); font-size: 10px; }
.curriculum-mapped-activities article strong { font-size: 12px; }
.curriculum-mapped-activities article p { margin: 0; color: var(--curriculum-muted); font-size: 11px; line-height: 1.5; }

.curriculum-mapping-evidence {
  grid-column: 1 / -1;
  border-top: 1px solid var(--curriculum-border);
  padding-top: 9px;
}

.curriculum-mapping-evidence summary {
  width: fit-content;
  cursor: pointer;
  color: var(--curriculum-blue-hover);
  font-size: 11px;
  font-weight: 650;
}

.curriculum-mapping-evidence > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}

.curriculum-mapping-evidence section {
  padding: 10px 11px;
  border-left: 3px solid var(--curriculum-cyan);
  background: var(--curriculum-cyan-subtle);
}

.curriculum-mapping-evidence section strong { font-size: 11px; }
.curriculum-mapping-evidence section ul { margin: 6px 0 0; padding-left: 18px; }
.curriculum-mapping-evidence section li { font-size: 11px; }

.curriculum-coverage {
  padding: 20px 22px;
}

.curriculum-coverage > .edu-state {
  margin: 0;
}

.curriculum-coverage-header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 18px;
}

.curriculum-coverage-header h2 {
  margin: 4px 0 3px;
  font-size: 18px;
}

.curriculum-coverage-header p {
  margin: 0;
  color: var(--curriculum-muted);
  font-size: 12px;
}

.curriculum-coverage-count {
  display: grid;
  justify-items: end;
  color: var(--curriculum-blue-hover);
}

.curriculum-coverage-count strong { font-family: var(--mono, ui-monospace, monospace); font-size: 22px; }
.curriculum-coverage-count span { color: var(--curriculum-muted); font-size: 9px; }

.curriculum-coverage-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 16px;
  border: 1px solid var(--curriculum-border);
  border-radius: var(--curriculum-radius);
}

.curriculum-coverage-metric {
  display: grid;
  gap: 3px;
  padding: 12px 14px;
  border-left: 1px solid var(--curriculum-border);
}

.curriculum-coverage-metric:first-child { border-left: 0; }
.curriculum-coverage-metric span { color: var(--curriculum-muted); font-size: 10px; }
.curriculum-coverage-metric strong { font-family: var(--mono, ui-monospace, monospace); font-size: 18px; }
.curriculum-coverage-metric.is-covered strong { color: var(--curriculum-success); }
.curriculum-coverage-metric.is-partial strong { color: var(--curriculum-warning); }

.curriculum-coverage-groups {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}

.curriculum-coverage-group {
  border: 1px solid var(--curriculum-border);
  border-radius: var(--curriculum-radius-sm);
}

.curriculum-coverage-group summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 44px;
  padding: 9px 12px;
  cursor: pointer;
  font-size: 12px;
}

.curriculum-coverage-group ul { display: grid; gap: 7px; margin: 0; padding: 0 14px 12px 30px; }
.curriculum-coverage-group li { padding-left: 3px; font-size: 11px; }
.curriculum-coverage-group li small { display: block; color: var(--curriculum-muted); }
.curriculum-coverage-group > p { margin: 0; padding: 0 14px 12px; color: var(--curriculum-muted); font-size: 11px; }
.curriculum-coverage-disclaimer,
.curriculum-coverage-note { margin: 14px 0 0; color: var(--curriculum-muted); font-size: 10px; line-height: 1.5; }

/* Activity → curriculum, shared with lesson preview. */
.activity-curriculum-mappings {
  display: grid;
  gap: 14px;
  padding-top: 20px;
  border-top: 1px solid var(--curriculum-border, #e4e7ec);
  color: var(--curriculum-text, #101828);
}

.activity-curriculum-header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
}

.activity-curriculum-header h3 { margin: 3px 0; font-size: 16px; }
.activity-curriculum-header p { margin: 0; color: var(--curriculum-muted, #667085); font-size: 11px; }
.activity-curriculum-groups { display: grid; gap: 10px; }

.activity-curriculum-subject {
  border: 1px solid var(--curriculum-border, #e4e7ec);
  border-radius: var(--curriculum-radius, 10px);
  background: var(--curriculum-surface, #fff);
}

.activity-curriculum-subject > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 48px;
  gap: 12px;
  padding: 10px 13px;
  cursor: pointer;
}

.activity-curriculum-subject > summary > span:first-child { display: grid; gap: 2px; }
.activity-curriculum-subject > summary strong { font-size: 12px; }
.activity-curriculum-subject > summary small { color: var(--curriculum-muted, #667085); font-size: 10px; }
.activity-curriculum-count { flex: 0 0 auto; color: var(--curriculum-blue-hover, #2458d8); font-size: 10px; }
.activity-curriculum-items { display: grid; border-top: 1px solid var(--curriculum-border, #e4e7ec); }

.activity-curriculum-item {
  display: grid;
  gap: 8px;
  padding: 14px;
  border-bottom: 1px solid var(--curriculum-border, #e4e7ec);
}

.activity-curriculum-item:last-child { border-bottom: 0; }
.activity-curriculum-item > header { display: flex; flex-wrap: wrap; gap: 7px; }
.activity-curriculum-item h4 { margin: 0; font-size: 13px; }
.activity-curriculum-item > p { margin: 0; color: var(--curriculum-muted, #667085); font-size: 11px; line-height: 1.6; }
.activity-curriculum-item > a { width: fit-content; color: var(--curriculum-blue-hover, #2458d8); font-size: 11px; }

.curriculum-review-state,
.curriculum-item-type {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 22px;
  padding: 3px 7px;
  border: 1px solid var(--curriculum-border, #e4e7ec);
  border-radius: 5px;
  background: var(--curriculum-subtle, #f9fafb);
  color: var(--curriculum-muted, #667085);
  font-size: 9px;
  font-weight: 650;
}

.curriculum-review-state.is-success { border-color: #abefc6; background: var(--curriculum-success-bg, #ecfdf3); color: var(--curriculum-success, #15803d); }
.curriculum-review-state.is-info { border-color: #b2ccff; background: var(--curriculum-blue-subtle, #eef4ff); color: var(--curriculum-blue-hover, #2458d8); }
.curriculum-review-state.is-warning { border-color: #fedf89; background: var(--curriculum-warning-bg, #fffaeb); color: var(--curriculum-warning, #b54708); }
.curriculum-review-state.is-error { border-color: #fecdca; background: var(--curriculum-error-bg, #fef3f2); color: var(--curriculum-error, #b42318); }
.curriculum-review-state.is-ai { border-color: #d9d6fe; background: #f4f3ff; color: #5925dc; }

.curriculum-robolabs-explanation,
.activity-curriculum-evidence {
  padding: 10px 11px;
  border-left: 3px solid var(--curriculum-cyan, #16b8d4);
  background: var(--curriculum-cyan-subtle, #ecfbfd);
}

.curriculum-robolabs-explanation p { margin: 3px 0 0; color: #344054; font-size: 11px; line-height: 1.5; }
.activity-curriculum-evidence strong { font-size: 10px; }
.activity-curriculum-evidence ul { display: grid; gap: 4px; margin: 6px 0 0; padding-left: 18px; }
.activity-curriculum-evidence li { font-size: 10px; }
.activity-curriculum-subject > .teacher-follow-link { margin: 0 13px 12px; }

/* Private teacher planning. */
.curriculum-planning {
  display: grid;
  grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
  align-items: start;
  gap: 20px;
}

.curriculum-planning > .curriculum-warning { grid-column: 1 / -1; }
.curriculum-planning-sidebar,
.curriculum-plan-detail { padding: 22px; }
.curriculum-plan-list { display: grid; gap: 7px; margin-top: 16px; }

.curriculum-plan-list button {
  display: grid;
  min-height: 48px;
  gap: 2px;
  padding: 10px 12px;
  border: 1px solid var(--curriculum-border);
  border-radius: var(--curriculum-radius-sm);
  background: var(--curriculum-surface);
  color: var(--curriculum-text);
  font: inherit;
  text-align: left;
}

.curriculum-plan-list button:hover,
.curriculum-plan-list button.is-active { border-color: #b2ccff; background: var(--curriculum-blue-subtle); }
.curriculum-plan-list strong { font-size: 12px; }
.curriculum-plan-list span { color: var(--curriculum-muted); font-size: 10px; }

.curriculum-create-plan {
  display: grid;
  gap: 12px;
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--curriculum-border);
}

.curriculum-create-plan h3 { margin: 0; font-size: 14px; }
.curriculum-create-plan .btn { justify-content: center; }
.curriculum-plan-detail-content { display: grid; gap: 20px; }

.curriculum-plan-detail-header,
.curriculum-plan-items > header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
}

.curriculum-plan-detail-header h2 { margin: 4px 0; font-size: 22px; }
.curriculum-plan-detail-header p { margin: 0; color: var(--curriculum-muted); font-size: 12px; }

.curriculum-plan-meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  border: 1px solid var(--curriculum-border);
  border-radius: var(--curriculum-radius);
}

.curriculum-plan-meta > div { border-top: 0; }
.curriculum-plan-meta > div:first-child { border-left: 0; }
.curriculum-edit-plan { display: grid; grid-template-columns: minmax(180px, .7fr) minmax(260px, 1.3fr) auto; align-items: end; gap: 12px; }
.curriculum-edit-plan .curriculum-action-status { grid-column: 1 / -1; }
.curriculum-plan-items { display: grid; gap: 12px; padding-top: 18px; border-top: 1px solid var(--curriculum-border); }
.curriculum-plan-items h3 { margin: 0; font-size: 16px; }
.curriculum-plan-items ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.curriculum-plan-items li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 12px; border: 1px solid var(--curriculum-border); border-radius: var(--curriculum-radius-sm); }
.curriculum-plan-items li > div { display: grid; gap: 2px; }
.curriculum-plan-items li span,
.curriculum-plan-items li small { color: var(--curriculum-muted); font-size: 9px; }
.curriculum-plan-items li strong { font-size: 11px; }

/* Admin Curriculum Manager. */
.curriculum-admin-page {
  padding: 0;
}

/* The admin shell is dark while curriculum cards intentionally stay light.
   Keep the uncarded page heading readable without changing the global admin
   theme or any robot/control-center surface. */
body.edu-role-admin .curriculum-admin-page .curriculum-page-header {
  border-bottom-color: rgba(148, 163, 184, .28);
}

body.edu-role-admin .curriculum-admin-page .curriculum-page-header h1 {
  color: #f8fafc;
}

body.edu-role-admin .curriculum-admin-page .curriculum-page-header p,
body.edu-role-admin .curriculum-admin-page .curriculum-breadcrumbs {
  color: #94a3b8;
}

body.edu-role-admin .curriculum-admin-page .curriculum-breadcrumbs a,
body.edu-role-admin .curriculum-admin-page .teacher-page-kicker {
  color: #22d3ee;
}

.curriculum-admin-metrics {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--curriculum-border);
  border-radius: var(--curriculum-radius-lg);
  background: var(--curriculum-surface);
}

.curriculum-admin-metric {
  position: relative;
  display: grid;
  gap: 5px;
  padding: 18px 20px;
  border-left: 1px solid var(--curriculum-border);
}

.curriculum-admin-metric:first-child { border-left: 0; }
.curriculum-admin-metric span { color: var(--curriculum-muted); font-size: 10px; }
.curriculum-admin-metric strong { font-family: var(--mono, ui-monospace, monospace); font-size: 24px; }
.curriculum-admin-metric.is-success strong { color: var(--curriculum-success); }
.curriculum-admin-metric.is-warning strong { color: var(--curriculum-warning); }

.curriculum-admin-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.curriculum-admin-summary,
.curriculum-admin-principles { padding: 20px 22px; }
.curriculum-admin-summary h2,
.curriculum-admin-principles h2 { margin: 0 0 7px; font-size: 16px; }
.curriculum-admin-summary p,
.curriculum-admin-principles p { margin: 0 0 14px; color: var(--curriculum-muted); font-size: 12px; line-height: 1.55; }
.curriculum-admin-principles { border-left: 3px solid var(--curriculum-blue); }

.curriculum-admin-section-header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 20px;
}

.curriculum-admin-section-header h2 { margin: 0 0 4px; font-size: 20px; }
.curriculum-admin-search { max-width: 420px; }
.curriculum-admin-page .teacher-filter-summary { margin: 0; color: var(--curriculum-muted); font-size: 11px; }
.curriculum-admin-filter-row { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(180px, 260px); gap: 12px; }

.curriculum-admin-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--curriculum-border);
  border-radius: var(--curriculum-radius);
}

.curriculum-admin-table {
  width: 100%;
  min-width: 900px;
  border-collapse: collapse;
  text-align: left;
}

.curriculum-admin-table th {
  padding: 10px 13px;
  background: var(--curriculum-subtle);
  color: var(--curriculum-muted);
  font-size: 9px;
  font-weight: 650;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.curriculum-admin-table td {
  padding: 12px 13px;
  border-top: 1px solid var(--curriculum-border);
  font-size: 11px;
  vertical-align: middle;
}

.curriculum-admin-table td strong,
.curriculum-admin-table td small { display: block; }
.curriculum-admin-table td small { margin-top: 2px; color: var(--curriculum-muted); font-size: 9px; }

.curriculum-admin-mapping-list,
.curriculum-change-list { display: grid; gap: 12px; }

.curriculum-admin-mapping-card,
.curriculum-change-card {
  display: grid;
  gap: 14px;
  padding: 16px 18px;
  border: 1px solid var(--curriculum-border);
  border-radius: var(--curriculum-radius);
}

.curriculum-admin-mapping-card > header,
.curriculum-admin-mapping-card > footer,
.curriculum-change-card > header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 14px;
}

.curriculum-admin-mapping-card > header > div { display: flex; flex-wrap: wrap; gap: 7px; }
.curriculum-admin-mapping-main { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--curriculum-border); border-radius: var(--curriculum-radius-sm); }
.curriculum-admin-mapping-main > div { display: grid; gap: 4px; padding: 12px 14px; }
.curriculum-admin-mapping-main > div + div { border-left: 1px solid var(--curriculum-border); background: var(--curriculum-cyan-subtle); }
.curriculum-admin-mapping-main span { color: var(--curriculum-muted); font-size: 9px; text-transform: uppercase; }
.curriculum-admin-mapping-main strong { font-size: 12px; }
.curriculum-admin-mapping-main p { margin: 0; color: var(--curriculum-muted); font-size: 11px; line-height: 1.5; }
.curriculum-admin-mapping-card > footer { color: var(--curriculum-muted); font-size: 10px; }
.curriculum-admin-mapping-card > footer a,
.curriculum-change-card > a { color: var(--curriculum-blue-hover); }

.curriculum-change-card > header h3 { margin: 6px 0 3px; font-size: 15px; }
.curriculum-change-card > header p { margin: 0; color: var(--curriculum-muted); font-size: 10px; }
.curriculum-change-card > header > strong { color: var(--curriculum-muted); font-size: 11px; }
.curriculum-change-card > header > strong.is-warning { color: var(--curriculum-warning); }
.curriculum-change-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--curriculum-border); border-radius: var(--curriculum-radius-sm); }
.curriculum-change-comparison.is-created { grid-template-columns: 1fr; }
.curriculum-change-comparison section { padding: 14px 16px; }
.curriculum-change-comparison section + section { border-left: 1px solid var(--curriculum-border); background: var(--curriculum-blue-subtle); }
.curriculum-change-comparison h4 { margin: 0 0 8px; font-size: 11px; }
.curriculum-change-comparison p { color: #344054; font-size: 11px; }

.curriculum-mapping-dialog {
  width: min(720px, calc(100vw - 32px));
  max-height: calc(100vh - 48px);
  margin: auto;
  padding: 0;
  overflow: auto;
  border: 1px solid var(--curriculum-border-strong);
  border-radius: var(--curriculum-radius-lg);
  background: var(--curriculum-surface);
  color: var(--curriculum-text);
  box-shadow: 0 18px 48px rgba(16, 24, 40, .18);
}

.curriculum-mapping-dialog::backdrop { background: rgba(11, 21, 38, .48); }
.curriculum-mapping-dialog .teacher-dialog-header { display: flex; align-items: start; justify-content: space-between; gap: 18px; padding: 20px 22px 16px; border-bottom: 1px solid var(--curriculum-border); }
.curriculum-mapping-dialog .teacher-dialog-header h2 { margin: 4px 0 0; font-size: 20px; }
.curriculum-mapping-dialog .teacher-dialog-close { display: grid; flex: 0 0 34px; width: 34px; height: 34px; place-items: center; padding: 0; border: 1px solid var(--curriculum-border); border-radius: var(--curriculum-radius-sm); background: var(--curriculum-surface); color: var(--curriculum-muted); font-size: 20px; }
.curriculum-mapping-dialog .teacher-dialog-content { padding: 20px 22px 22px; }
.curriculum-mapping-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.curriculum-mapping-form .teacher-form-field:nth-of-type(n + 6),
.curriculum-mapping-form .curriculum-admin-form-note,
.curriculum-mapping-form .curriculum-action-status,
.curriculum-mapping-form .teacher-assessment-actions { grid-column: 1 / -1; }
.curriculum-admin-form-note { margin: 0; padding: 10px 12px; border-left: 3px solid var(--curriculum-blue); background: var(--curriculum-blue-subtle); color: var(--curriculum-muted); font-size: 11px; }
.curriculum-mapping-create-state { display: grid; align-content: center; gap: 3px; min-height: 40px; padding: 9px 11px; border: 1px solid var(--curriculum-border); border-radius: var(--curriculum-radius-sm); background: var(--curriculum-subtle); }
.curriculum-mapping-create-state span { color: var(--curriculum-muted); font-size: 10px; font-weight: 650; letter-spacing: .055em; text-transform: uppercase; }
.curriculum-mapping-create-state strong { font-size: 12px; }
.curriculum-mapping-create-state small { color: var(--curriculum-muted); font-size: 10px; }
.curriculum-picker-control { display: grid; gap: 5px; min-width: 0; }
.curriculum-picker-status { color: var(--curriculum-muted); font-size: 10px; line-height: 1.45; }
.curriculum-mapping-form .teacher-assessment-actions { display: flex; justify-content: flex-end; gap: 8px; }

.curriculum-page .edu-state {
  padding: 22px;
  border: 1px dashed var(--curriculum-border-strong);
  border-radius: var(--curriculum-radius);
  background: var(--curriculum-subtle);
}

.curriculum-page .edu-state__title { display: block; color: var(--curriculum-text); font-size: 13px; }
.curriculum-page .edu-state__description { margin: 5px 0 0; color: var(--curriculum-muted); font-size: 12px; }
.curriculum-page .edu-state--error { border-style: solid; border-color: #fecdca; background: var(--curriculum-error-bg); }

@media (max-width: 1380px) {
  .curriculum-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .curriculum-admin-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .curriculum-admin-metric:nth-child(4) { border-top: 1px solid var(--curriculum-border); border-left: 0; }
  .curriculum-admin-metric:nth-child(5),
  .curriculum-admin-metric:nth-child(6) { border-top: 1px solid var(--curriculum-border); }
}

@media (max-width: 1180px) {
  .curriculum-subject-context { grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr); }
  .curriculum-robolabs-context { grid-column: 1 / -1; border-top: 1px solid var(--curriculum-border); }
  .curriculum-browser-grid { grid-template-columns: 1fr; }
  .curriculum-item-groups { max-height: 720px; }
  .curriculum-planning { grid-template-columns: 1fr; }
  .curriculum-planning-sidebar { position: static; }
}

@media (max-width: 900px) {
  .curriculum-source-panel,
  .curriculum-admin-summary-grid { grid-template-columns: 1fr; }
  .curriculum-provenance--robolabs { border-left: 0; border-top: 1px solid var(--curriculum-border); }
  .curriculum-plan-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .curriculum-plan-meta > div:nth-child(3) { border-top: 1px solid var(--curriculum-border); border-left: 0; }
  .curriculum-plan-meta > div:nth-child(4) { border-top: 1px solid var(--curriculum-border); }
  .curriculum-edit-plan { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .curriculum-edit-plan .btn { grid-column: 1 / -1; }
  .curriculum-admin-mapping-main,
  .curriculum-change-comparison { grid-template-columns: 1fr; }
  .curriculum-admin-mapping-main > div + div,
  .curriculum-change-comparison section + section { border-top: 1px solid var(--curriculum-border); border-left: 0; }
}

@media (max-width: 700px) {
  .curriculum-page-header,
  .curriculum-admin-section-header,
  .curriculum-plan-detail-header,
  .curriculum-plan-items > header,
  .activity-curriculum-header { align-items: stretch; flex-direction: column; }
  .curriculum-sync-note { width: 100%; }
  .curriculum-filter-shell,
  .curriculum-admin-section,
  .curriculum-planning-sidebar,
  .curriculum-plan-detail { padding: 18px; }
  .curriculum-filter-grid,
  .curriculum-admin-filter-row,
  .curriculum-mapping-form { grid-template-columns: 1fr; }
  .curriculum-search > div { grid-template-columns: 1fr; }
  .curriculum-global-search-form > div { grid-template-columns: 1fr; }
  .curriculum-subject-context { grid-template-columns: 1fr; }
  .curriculum-context-facts { border-inline: 0; border-top: 1px solid var(--curriculum-border); }
  .curriculum-robolabs-context { grid-column: 1; }
  .curriculum-source-meta { grid-template-columns: 1fr; }
  .curriculum-source-meta > div,
  .curriculum-source-meta > div:nth-child(2) { border-top: 1px solid var(--curriculum-border); border-left: 0; }
  .curriculum-source-meta > div:first-child { border-top: 0; }
  .curriculum-mapped-activities article { grid-template-columns: 1fr; }
  .curriculum-selection-controls { display: grid; }
  .curriculum-plan-quick-save { grid-template-columns: 1fr; }
  .curriculum-plan-quick-save label { grid-column: 1; }
  .curriculum-admin-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .curriculum-admin-metric:nth-child(3),
  .curriculum-admin-metric:nth-child(5) { border-top: 1px solid var(--curriculum-border); border-left: 0; }
  .curriculum-admin-metric:nth-child(4) { border-left: 1px solid var(--curriculum-border); }
  .curriculum-admin-mapping-card > header,
  .curriculum-admin-mapping-card > footer,
  .curriculum-change-card > header { align-items: stretch; flex-direction: column; }
  .curriculum-mapping-form > * { grid-column: 1 !important; }
  .curriculum-mapping-evidence > div { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .curriculum-context-facts,
  .curriculum-coverage-metrics,
  .curriculum-plan-meta,
  .curriculum-admin-metrics { grid-template-columns: 1fr; }
  .curriculum-context-facts > div,
  .curriculum-context-facts > div:nth-child(2),
  .curriculum-plan-meta > div,
  .curriculum-admin-metric,
  .curriculum-admin-metric:nth-child(2),
  .curriculum-admin-metric:nth-child(4),
  .curriculum-admin-metric:nth-child(6) { border-top: 1px solid var(--curriculum-border); border-left: 0; }
  .curriculum-context-facts > div:first-child,
  .curriculum-plan-meta > div:first-child,
  .curriculum-admin-metric:first-child { border-top: 0; }
  .curriculum-coverage-metric { border-top: 1px solid var(--curriculum-border); border-left: 0; }
  .curriculum-coverage-metric:first-child { border-top: 0; }
  .curriculum-edit-plan { grid-template-columns: 1fr; }
  .curriculum-plan-items li { align-items: stretch; flex-direction: column; }
}

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

/* Objective-based planning references; official text is resolved by the API. */
.objective-curriculum { margin: 20px 0; color: var(--text, #172a3a); }
.objective-curriculum > header p, .objective-curriculum-footnote { color: #526274; font-size: 13px; line-height: 1.55; }
.objective-curriculum h3 { margin: 5px 0 8px; }
.objective-curriculum h4 { margin: 0 0 8px; font-size: 14px; }
.objective-curriculum-learning { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 16px 0; padding: 16px; background: #f3f6f8; border-radius: 10px; font-size: 13px; line-height: 1.55; }
.objective-curriculum-learning ul { padding-left: 18px; margin: 0; }
.objective-curriculum-learning p { margin: 0 0 10px; }
.objective-curriculum-group { border: 1px solid #d9e2e8; border-radius: 10px; margin: 10px 0; overflow: hidden; }
.objective-curriculum-group > summary { padding: 15px 16px; cursor: pointer; display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; }
.objective-curriculum-group > summary > span:first-child { flex: 1 1 270px; min-width: 0; }
.objective-curriculum-group summary strong { font-size: 14px; }
.objective-curriculum-group summary small { display: block; font-size: 12px; color: #526274; margin-top: 5px; line-height: 1.5; }
.objective-curriculum-group summary:focus-visible { outline: 3px solid #227b85; outline-offset: -3px; }
.objective-curriculum-strength { font-size: 11px; color: #22606b; background: #eef6f6; padding: 5px 8px; border-radius: 5px; }
.objective-curriculum-toggle { font-size: 12px; color: #315e77; }
.objective-curriculum-group[open] .objective-curriculum-toggle { display: none; }
.objective-curriculum-details { padding: 0 16px; border-top: 1px solid #e3e9ee; }
.objective-curriculum-item { padding: 18px 0; font-size: 13px; line-height: 1.6; border-bottom: 1px solid #e3e9ee; overflow-wrap: anywhere; }
.objective-curriculum-item:last-child { border-bottom: 0; }
.objective-curriculum-official { padding: 12px 14px; border-left: 3px solid #829bb0; background: #f5f7fa; }
.objective-curriculum-official blockquote { padding: 0; margin: 6px 0 0; border: 0; }
.objective-curriculum-label { display: block; font-size: 11px; color: #526274; letter-spacing: .02em; }
.objective-curriculum-rationale { margin-top: 16px; }
.objective-curriculum-rationale > strong { display: block; color: #22606b; margin-bottom: 5px; }
.objective-curriculum-rationale p { margin: 5px 0; }
.objective-curriculum-item footer { display: grid; gap: 5px; margin-top: 15px; color: #526274; }
.objective-curriculum-item footer a { color: #236379; text-decoration: underline; }
.objective-curriculum-warning { background: #fff6e7; padding: 12px; border-radius: 6px; font-size: 13px; }
.curriculum-reviewed-disclosure > summary { cursor: pointer; font-size: 13px; padding: 12px 0; color: #526274; }
@media (max-width: 700px) { .objective-curriculum-learning { grid-template-columns: 1fr; gap: 12px; } }

body.edu-role-teacher .teacher-curriculum-preview { width: min(840px, calc(100vw - 32px)); }
