﻿:root {
  --green: #7ee600;
  --green-deep: #1fbf62;
  --green-ink: #183a2b;
  --ink: #20263a;
  --muted: #728095;
  --panel: rgba(255, 255, 255, 0.86);
  --line: #dce7f2;
  --bg: #eef3fb;
  --blue: #3478ff;
  --cyan: #27c7e9;
  --purple: #7166ff;
  --orange: #ffbd4a;
  --coral: #ff5a50;
  --teal: #21d5a3;
  --warning: #fff7df;
}

.textbook-courseware-center {
  margin: 20px 0 26px;
  padding: 20px;
  background: #f7faf9;
  border: 1px solid #d5e1e2;
  border-radius: 8px;
}

.textbook-courseware-head {
  align-items: flex-start;
  margin-bottom: 16px;
}

.textbook-courseware-head h4 {
  margin: 2px 0 5px;
  color: #17324d;
  font-size: 20px;
}

.textbook-courseware-head p:last-child {
  margin: 0;
  color: #667681;
}

.textbook-courseware-empty {
  min-height: 110px;
  display: grid;
  place-content: center;
  gap: 6px;
  color: #667681;
  background: #fff;
  border: 1px dashed #cbd8da;
  border-radius: 6px;
  text-align: center;
}

.textbook-courseware-empty strong { color: #17324d; }

.courseware-generation-modes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 18px 0 0;
  border: 1px solid #cbd8da;
  border-radius: 6px 6px 0 0;
  overflow: hidden;
}

.courseware-generation-modes button {
  position: relative;
  min-width: 0;
  min-height: 86px;
  display: grid;
  align-content: center;
  gap: 4px;
  padding: 14px 42px 14px 16px;
  color: #53656c;
  background: #fff;
  border: 0;
  border-right: 1px solid #d5e1e2;
  border-radius: 0;
  text-align: left;
}

.courseware-generation-modes button:last-child { border-right: 0; }

.courseware-generation-modes button:hover { background: #f4f8f7; }

.courseware-generation-modes button.is-active {
  color: #17324d;
  background: #edf7f1;
  box-shadow: inset 0 -4px #24765f;
}

.courseware-generation-modes strong { font-size: 15px; }

.courseware-generation-modes span {
  overflow-wrap: anywhere;
  font-size: 12px;
  line-height: 1.55;
}

.courseware-generation-modes small {
  position: absolute;
  top: 10px;
  right: 10px;
  padding: 2px 6px;
  color: #fff;
  background: #24765f;
  border-radius: 4px;
  font-size: 11px;
}

.courseware-generation-workspace,
.courseware-reuse-workspace {
  padding: 20px 0 4px;
  border-top: 0;
}

.courseware-generation-workspace-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
}

.courseware-generation-workspace h5 {
  margin: 0 0 5px;
  color: #17324d;
  font-size: 16px;
}

.courseware-generation-workspace p {
  margin: 0;
  color: #667681;
  line-height: 1.6;
}

.courseware-generation-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 16px;
  background: #fff;
  border: 1px solid #d5e1e2;
  border-radius: 6px;
}

.courseware-generation-form label {
  min-width: 0;
  display: grid;
  gap: 6px;
}

.courseware-generation-form label.wide { grid-column: 1 / -1; }

.courseware-source-context-note {
  grid-column: 1 / -1;
  color: #53656c;
  font-size: 12px;
  line-height: 1.6;
}

.courseware-generation-form label > span {
  color: #53656c;
  font-size: 12px;
  font-weight: 700;
}

.courseware-generation-form input,
.courseware-generation-form select,
.courseware-generation-form textarea {
  width: 100%;
  min-width: 0;
  padding: 10px 11px;
  color: #17324d;
  background: #fbfcfc;
  border: 1px solid #cbd8da;
  border-radius: 5px;
  box-sizing: border-box;
}

.courseware-generation-form textarea {
  resize: vertical;
  line-height: 1.65;
}

.courseware-generation-form .courseware-ai-confirm {
  display: flex;
  grid-template-columns: none;
  align-items: flex-start;
  gap: 9px;
  padding: 11px 12px;
  background: #fff7df;
  border: 1px solid #ead8a3;
  border-radius: 5px;
}

.courseware-ai-confirm input {
  width: 18px;
  height: 18px;
  margin: 1px 0 0;
}

.courseware-ai-confirm span { line-height: 1.55; }

.courseware-generation-message {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 5px;
}

.courseware-generation-message.is-error {
  color: #8a2c25;
  background: #fff1ef;
  border: 1px solid #efc4bf;
}

.courseware-generation-results {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}

.courseware-generated-package {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 13px;
  color: #17324d;
  background: #eaf4ee;
  border: 1px solid #bdd8c7;
  border-radius: 6px;
}

.courseware-generation-results article {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 14px;
  background: #fff;
  border: 1px solid #d5e1e2;
  border-radius: 6px;
}

.courseware-generation-results article > div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.courseware-generation-results span {
  color: #667681;
  font-size: 12px;
}

.courseware-generation-results a {
  padding: 6px 9px;
  color: #155a70;
  background: #edf6f7;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}

.courseware-ai-unavailable {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 0 6px;
}

.textbook-courseware-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 12px;
  margin: 16px 0;
  padding: 14px 16px;
  background: #fff;
  border: 1px solid #d5e1e2;
  border-radius: 6px;
}

.textbook-courseware-filters label {
  min-width: 150px;
  display: grid;
  gap: 6px;
}

.textbook-courseware-filters label span {
  color: #667681;
  font-size: 12px;
  font-weight: 700;
}

.textbook-courseware-filters select {
  min-height: 40px;
  padding: 0 34px 0 11px;
  color: #17324d;
  background: #f8faf9;
  border: 1px solid #cbd8da;
  border-radius: 5px;
}

.textbook-courseware-filters strong {
  margin: 0 0 10px auto;
  color: #2d7b74;
  font-size: 13px;
}

.textbook-courseware-package {
  display: grid;
  grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr);
  overflow: hidden;
  background: #fff;
  border: 1px solid #cbd8da;
  border-radius: 8px;
}

.textbook-courseware-package + .textbook-courseware-package { margin-top: 18px; }

.textbook-courseware-visual {
  position: relative;
  align-self: start;
  height: 430px;
  min-height: 430px;
  overflow: hidden;
  background: #102631;
}

.textbook-courseware-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(16, 38, 49, .08), rgba(16, 38, 49, .88));
  pointer-events: none;
}

.textbook-courseware-visual img {
  width: 100%;
  height: 100%;
  min-height: 430px;
  display: block;
  object-fit: cover;
  object-position: 68% center;
}

.textbook-courseware-visual > div {
  position: absolute;
  z-index: 1;
  left: 26px;
  right: 26px;
  bottom: 28px;
  display: grid;
  gap: 8px;
  color: #fff;
}

.textbook-courseware-visual span {
  color: #f3e5b8;
  font-size: 13px;
  font-weight: 700;
}

.textbook-courseware-visual strong {
  font-size: clamp(25px, 3vw, 38px);
  line-height: 1.24;
}

.textbook-courseware-visual small { color: #d8e2e4; }

.textbook-courseware-body {
  min-width: 0;
  padding: 26px;
}

.textbook-courseware-meta,
.textbook-courseware-flow,
.textbook-courseware-actions,
.textbook-courseware-source {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.textbook-courseware-meta span {
  padding: 6px 9px;
  color: #1e6477;
  background: #edf4f3;
  border-radius: 5px;
  font-size: 12px;
  font-weight: 700;
}

.textbook-courseware-skills {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  margin-top: 10px;
  color: #53636b;
  font-size: 12px;
}

.textbook-courseware-skills b { color: #17324d; }

.textbook-courseware-skills span {
  padding: 4px 7px;
  border: 1px solid #d9e2df;
  border-radius: 4px;
  background: #fff;
}

.teaching-skill-manager {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px 18px;
  margin: 16px 0;
  padding: 14px 16px;
  border: 1px solid #d9e2df;
  border-left: 4px solid #2f6f62;
  background: #f8faf9;
}

.teaching-skill-manager > div:first-child {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
}

.teaching-skill-manager > div:first-child b { color: #17324d; }
.teaching-skill-manager > div:first-child span { color: #5f7078; font-size: 13px; }

.teaching-skill-manager-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.teaching-skill-manager-actions input {
  width: min(320px, 36vw);
  min-width: 210px;
}

.teaching-skill-active-list {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.teaching-skill-active-list > span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 8px;
  border: 1px solid #d9e2df;
  background: #fff;
  font-size: 12px;
}

.teaching-skill-active-list button { min-height: 30px; }

.teaching-skill-error {
  grid-column: 1 / -1;
  margin: 0;
  color: #9b2f2f;
  font-size: 13px;
}

.school-template-manager {
  grid-column: 1 / -1;
  display: grid;
  gap: 12px;
  padding-top: 14px;
  border-top: 1px solid #d9e3e0;
}

.school-template-summary,
.school-template-summary > div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.school-template-summary { justify-content: space-between; }
.school-template-summary b { color: #17324d; }
.school-template-summary span { color: #5f7078; font-size: 12px; }
.school-template-summary > div:last-child > span {
  padding: 5px 8px;
  border: 1px solid #cbdcd5;
  border-radius: 6px;
  background: #fff;
}

.school-template-editor {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 14px;
  border: 1px solid #d5e1e2;
  border-radius: 6px;
  background: #fff;
}

.school-template-editor label { display: grid; gap: 6px; min-width: 0; }
.school-template-editor label > span { color: #53656c; font-size: 12px; font-weight: 700; }
.school-template-editor input,
.school-template-editor select,
.school-template-editor textarea {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 9px 10px;
  border: 1px solid #c8d6d7;
  border-radius: 5px;
  background: #fff;
  color: #24343b;
}
.school-template-editor textarea { resize: vertical; line-height: 1.6; }
.school-template-editor .wide { grid-column: 1 / -1; }
.school-template-actions { display: flex; gap: 8px; }

.courseware-skill-migration {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px 14px;
  align-items: center;
  margin: 12px 0;
  padding: 12px;
  border-left: 4px solid #72828a;
  background: #f4f7f7;
}
.courseware-skill-migration.is-upgrade { border-left-color: #b56a2f; background: #fff8ef; }
.courseware-skill-migration > div { display: grid; gap: 3px; }
.courseware-skill-migration strong { color: #17324d; }
.courseware-skill-migration span,
.courseware-skill-migration li { color: #5a6970; font-size: 12px; line-height: 1.55; }
.courseware-skill-migration ul { grid-column: 1 / -1; margin: 0; padding-left: 18px; }

@media (max-width: 760px) {
  .teaching-skill-manager { grid-template-columns: minmax(0, 1fr); }
  .teaching-skill-manager-actions { align-items: stretch; flex-direction: column; }
  .teaching-skill-manager-actions input { width: 100%; min-width: 0; }
  .school-template-summary { align-items: flex-start; flex-direction: column; }
  .school-template-editor { grid-template-columns: 1fr; }
  .school-template-editor .wide { grid-column: auto; }
  .courseware-skill-migration { grid-template-columns: 1fr; }
}

.textbook-courseware-question {
  margin: 18px 0;
  padding: 16px 18px;
  background: #f8faf9;
  border-left: 5px solid #d7a84b;
}

.textbook-courseware-question small {
  display: block;
  margin-bottom: 5px;
  color: #667681;
}

.textbook-courseware-question strong {
  display: block;
  color: #17324d;
  font-size: 17px;
  line-height: 1.7;
}

.textbook-courseware-flow span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  padding-right: 10px;
  color: #24313a;
  background: #fff;
  border: 1px solid #d5e1e2;
  border-radius: 5px;
  font-size: 12px;
}

.textbook-courseware-flow b {
  min-width: 30px;
  align-self: stretch;
  display: grid;
  place-items: center;
  color: #fff;
  background: #2d7b74;
  border-radius: 4px 0 0 4px;
}

.textbook-courseware-actions {
  margin: 18px 0;
}

.textbook-courseware-actions button {
  min-height: 42px;
  padding: 0 18px;
}

.textbook-courseware-actions span {
  color: #667681;
  font-size: 13px;
}

.textbook-featured-plan {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(210px, auto);
  gap: 22px;
  margin: 20px 0;
  padding: 20px 0 20px 18px;
  background: #f5f9f7;
  border-top: 1px solid #d9e5e0;
  border-bottom: 1px solid #d9e5e0;
  border-left: 5px solid #2d7b74;
}

.textbook-featured-plan-copy > span {
  display: block;
  color: #b24f2f;
  font-size: 12px;
  font-weight: 800;
}

.textbook-featured-plan h4 {
  margin: 3px 0 6px;
  color: #17324d;
  font-size: 22px;
}

.textbook-featured-plan p {
  margin: 0;
  color: #53666e;
  font-size: 13px;
  line-height: 1.7;
}

.textbook-featured-plan-points {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 14px;
  margin-top: 12px;
}

.textbook-featured-plan-points b {
  color: #365157;
  font-size: 12px;
}

.textbook-featured-plan-actions {
  min-width: 210px;
  display: grid;
  align-content: center;
  gap: 8px;
  padding-right: 18px;
}

.textbook-featured-plan-actions > button,
.textbook-featured-plan-actions .textbook-artifact-button {
  width: 100%;
  min-height: 42px;
}

.textbook-featured-plan-actions > div {
  display: grid;
  gap: 8px;
}

.textbook-featured-plan-actions > label {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #53666e;
  font-size: 12px;
}

.textbook-featured-plan-actions input {
  width: 17px;
  height: 17px;
  accent-color: #1e6477;
}

.textbook-courseware-artifacts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.textbook-artifact-button {
  min-width: 0;
  min-height: 72px;
  display: grid;
  align-content: center;
  gap: 5px;
  padding: 12px 14px;
  color: #17324d;
  background: #fff;
  border: 1px solid #cbd8da;
  border-radius: 6px;
  text-align: left;
}

.textbook-artifact-button:hover {
  background: #f3f7f6;
  border-color: #2d7b74;
}

.textbook-artifact-button b {
  overflow-wrap: anywhere;
}

.textbook-artifact-button span {
  color: #667681;
  font-size: 12px;
}

.textbook-courseware-source {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #e2e9ea;
  font-size: 12px;
}

.textbook-courseware-source b { color: #17324d; }
.textbook-courseware-source span { color: #667681; }

.textbook-courseware-notice {
  margin: 10px 0 0;
  color: #667681;
  font-size: 12px;
  line-height: 1.7;
}

.textbook-package-builder {
  margin: 22px 0 8px;
  padding: 18px 0;
  border-top: 1px solid #dce6e7;
  border-bottom: 1px solid #dce6e7;
}

.textbook-package-builder-head,
.textbook-package-commands,
.textbook-resource-title,
.textbook-resource-group > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.textbook-package-builder h5,
.textbook-resource-group h5 {
  margin: 0;
  color: #17324d;
  font-size: 15px;
}

.textbook-package-builder p,
.textbook-resource-group header p,
.textbook-resource-main > p {
  margin: 4px 0 0;
  color: #667681;
  font-size: 12px;
  line-height: 1.6;
}

.textbook-package-summary {
  min-width: 70px;
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 5px;
  color: #667681;
}

.textbook-package-summary strong {
  color: #1e6477;
  font-size: 24px;
}

.textbook-package-summary span { font-size: 12px; }

.textbook-profile-switch {
  display: inline-flex;
  max-width: 100%;
  margin: 14px 0;
  overflow-x: auto;
  border: 1px solid #bfcfd1;
  border-radius: 6px;
}

.textbook-profile-button {
  min-height: 38px;
  padding: 0 14px;
  flex: 0 0 auto;
  color: #415761;
  background: #fff;
  border: 0;
  border-right: 1px solid #d7e1e2;
  border-radius: 0;
  font-weight: 700;
}

.textbook-profile-button:last-child { border-right: 0; }

.textbook-profile-button:hover { background: #f3f7f6; }

.textbook-profile-button.is-active {
  color: #fff;
  background: #1e6477;
}

.textbook-package-commands {
  justify-content: flex-start;
  flex-wrap: wrap;
}

.textbook-package-commands button {
  min-height: 38px;
  padding: 0 14px;
}

.textbook-package-commands button.primary { margin-left: auto; }

.textbook-package-commands button:disabled {
  cursor: not-allowed;
  opacity: .56;
}

.textbook-resource-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px 24px;
}

.textbook-resource-group {
  min-width: 0;
  padding-top: 18px;
  border-top: 3px solid #dbe6e6;
}

.textbook-resource-group > header {
  align-items: flex-start;
  min-height: 54px;
  margin-bottom: 4px;
}

.textbook-resource-group > header > span {
  flex: 0 0 auto;
  color: #667681;
  font-size: 12px;
}

.textbook-resource-row {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 10px;
  padding: 14px 0;
  border-bottom: 1px solid #e3e9ea;
}

.textbook-resource-select {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
}

.textbook-resource-select input {
  width: 18px;
  height: 18px;
  margin: 1px 0 0;
  accent-color: #1e6477;
}

.textbook-resource-main { min-width: 0; }

.textbook-resource-title {
  align-items: flex-start;
}

.textbook-resource-title > div {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
}

.textbook-resource-title strong {
  color: #17324d;
  font-size: 14px;
}

.textbook-resource-title small {
  padding: 2px 5px;
  color: #526b70;
  background: #edf4f3;
  border-radius: 4px;
}

.textbook-resource-open {
  flex: 0 0 auto;
  min-height: 30px;
  padding: 0 9px;
  color: #1e6477;
  background: #fff;
  border: 1px solid #bfcfd1;
}

.textbook-resource-artifacts {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 9px;
}

.textbook-resource-artifacts .textbook-artifact-button {
  width: auto;
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 9px;
  background: #f8faf9;
}

.textbook-resource-artifacts .textbook-artifact-button b {
  font-size: 12px;
}

.textbook-resource-artifacts .textbook-artifact-button span {
  white-space: nowrap;
  font-size: 11px;
}

.teacher-source-library {
  margin: 0 0 20px;
  padding: 18px 0 20px;
  border-top: 1px solid #dce6e7;
  border-bottom: 1px solid #dce6e7;
}

.teacher-source-library-head,
.teacher-source-item-head,
.teacher-source-editor-head,
.teacher-source-list-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.teacher-source-library-head h5 {
  margin: 0;
  color: #17324d;
  font-size: 16px;
}

.teacher-source-library-head p {
  margin: 5px 0 0;
  color: #667681;
  font-size: 13px;
  line-height: 1.6;
}

.teacher-source-library-head > span,
.teacher-source-list-head > span {
  flex: 0 0 auto;
  color: #2d6b64;
  font-size: 12px;
  font-weight: 700;
}

.teacher-source-entry-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.teacher-source-entry {
  min-width: 0;
  min-height: 112px;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-content: center;
  column-gap: 13px;
  padding: 18px;
  color: #17324d;
  background: #fff;
  border: 1px solid #cbd8da;
  border-radius: 8px;
  text-align: left;
}

.teacher-source-entry > span {
  grid-row: 1 / 3;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  align-self: center;
  color: #fff;
  background: #2d7b74;
  border-radius: 7px;
  font-size: 21px;
  font-weight: 800;
}

.teacher-source-entry.guide > span { background: #356fbb; }
.teacher-source-entry strong { align-self: end; font-size: 17px; }
.teacher-source-entry small { align-self: start; margin-top: 4px; color: #667681; }
.teacher-source-entry:hover,
.teacher-source-entry.is-active { border-color: #2d7b74; background: #f2f8f6; }
.teacher-source-entry.guide:hover,
.teacher-source-entry.guide.is-active { border-color: #356fbb; background: #f2f6fb; }

.teacher-source-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .82fr);
  gap: 18px;
  margin-top: 16px;
  padding: 18px;
  background: #fff;
  border: 1px solid #cbd8da;
  border-radius: 8px;
}

.teacher-source-editor,
.teacher-source-list {
  min-width: 0;
}

.teacher-source-editor-head strong,
.teacher-source-list-head strong,
.teacher-source-item-head strong {
  display: block;
  color: #17324d;
}

.teacher-source-editor-head span,
.teacher-source-item-head span {
  display: block;
  margin-top: 4px;
  color: #667681;
  font-size: 12px;
  line-height: 1.5;
}

.teacher-source-methods {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 14px 0;
  padding: 3px;
  background: #edf2f1;
  border-radius: 7px;
}

.teacher-source-methods button {
  min-height: 38px;
  color: #5d6d73;
  background: transparent;
  border: 0;
}

.teacher-source-methods button.is-active {
  color: #17324d;
  background: #fff;
  box-shadow: 0 1px 3px rgba(23, 50, 77, .12);
}

.teacher-source-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.teacher-source-fields label,
.teacher-source-url,
.teacher-source-file,
.teacher-source-rights label {
  min-width: 0;
  display: grid;
  gap: 6px;
  color: #344951;
  font-size: 12px;
  font-weight: 700;
}

.teacher-source-fields input,
.teacher-source-url input,
.teacher-source-file input,
.teacher-source-rights select {
  width: 100%;
  min-width: 0;
  min-height: 40px;
}

.teacher-source-url,
.teacher-source-file { margin-top: 12px; }

.teacher-source-file {
  padding: 14px;
  background: #f6f8f7;
  border: 1px dashed #aebfc1;
  border-radius: 7px;
}

.teacher-source-file small,
.teacher-source-note {
  color: #667681;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.6;
}

.teacher-source-note { margin-top: 7px; }

.teacher-source-rights {
  display: grid;
  gap: 10px;
  margin-top: 13px;
}

.teacher-source-confirm {
  grid-template-columns: 18px minmax(0, 1fr) !important;
  align-items: start;
  color: #40555c !important;
  font-weight: 500 !important;
  line-height: 1.55;
}

.teacher-source-confirm input {
  width: 16px;
  height: 16px;
  margin: 2px 0 0;
}

.teacher-source-submit {
  width: 100%;
  min-height: 42px;
  margin-top: 14px;
}

.teacher-source-list {
  display: grid;
  align-content: start;
  gap: 10px;
}

.teacher-source-item {
  padding: 13px;
  background: #f8faf9;
  border: 1px solid #d8e2e2;
  border-radius: 7px;
}

.teacher-source-item-actions {
  flex: 0 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.teacher-source-item-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 10px;
}

.teacher-source-item-meta span {
  padding: 4px 7px;
  color: #456268;
  background: #edf3f2;
  border-radius: 5px;
  font-size: 11px;
}

.teacher-source-item > small {
  display: block;
  margin-top: 8px;
  color: #667681;
}

.teacher-source-assets {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  margin-top: 10px;
}

.teacher-source-asset-row {
  min-width: 0;
  display: grid;
  gap: 6px;
}

.teacher-source-asset-row > button:not(.teacher-source-asset) {
  justify-self: start;
}

.teacher-source-asset {
  min-width: 0;
  min-height: 50px;
  display: grid;
  align-content: center;
  gap: 3px;
  padding: 8px 9px;
  color: #17324d;
  background: #fff;
  border: 1px solid #cbd8da;
  border-radius: 6px;
  text-align: left;
}

.teacher-source-asset b { overflow-wrap: anywhere; font-size: 12px; }
.teacher-source-asset span { color: #667681; font-size: 11px; }

.teacher-source-text-editor {
  grid-column: 1 / -1;
  display: grid;
  gap: 8px;
  padding: 10px;
  background: #f7faf8;
  border: 1px solid #cbd8da;
  border-radius: 6px;
}

.teacher-source-text-editor label { display: grid; gap: 6px; }
.teacher-source-text-editor textarea { width: 100%; box-sizing: border-box; resize: vertical; }
.teacher-source-text-editor > div { display: flex; flex-wrap: wrap; gap: 7px; }
.teacher-source-empty,
.teacher-source-error {
  padding: 14px;
  color: #667681;
  background: #f7f9f8;
  border: 1px dashed #cbd8da;
  border-radius: 6px;
  font-size: 12px;
  line-height: 1.6;
}

.teacher-source-error {
  margin-top: 12px;
  color: #8a3d35;
  background: #fff5f2;
  border-color: #e8b8ad;
}

.teacher-source-lessons {
  grid-column: 1 / -1;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #d5e1e2;
}

.teacher-source-lessons > header,
.teacher-source-lesson-actions,
.courseware-package-workflow-summary,
.courseware-resource-editor > header,
.courseware-feedback-form > header,
.courseware-package-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.teacher-source-lessons > header span,
.courseware-resource-editor > header span {
  color: #667681;
  font-size: 12px;
}

.teacher-source-lesson-list {
  display: grid;
  gap: 7px;
  margin-top: 10px;
}

.teacher-source-lesson-row {
  display: grid;
  grid-template-columns: minmax(90px, .8fr) minmax(150px, 1.4fr) minmax(90px, .8fr) 78px auto;
  gap: 7px;
}

.teacher-source-lesson-row input {
  width: 100%;
  min-width: 0;
}

.teacher-source-lesson-actions {
  justify-content: flex-end;
  flex-wrap: wrap;
  margin-top: 10px;
}

.courseware-generation-job {
  margin-top: 12px;
  padding: 12px 14px;
  background: #f2f7f5;
  border-left: 4px solid #24765f;
}

.courseware-generation-job.is-error {
  background: #fff3f1;
  border-left-color: #a8483e;
}

.courseware-generation-job > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.courseware-generation-job progress {
  width: 100%;
  height: 8px;
  margin-top: 8px;
  accent-color: #24765f;
}

.courseware-generation-job p {
  margin-top: 8px;
  color: #8a3d35;
  font-size: 12px;
}

.courseware-generation-job button { margin-top: 9px; }

.courseware-batch-generation {
  display: grid;
  gap: 12px;
  margin-top: 14px;
  padding: 14px;
  background: #f7fbf8;
  border: 1px solid #bdd8c7;
  border-radius: 6px;
}

.courseware-batch-head,
.courseware-batch-actions,
.courseware-batch-status > div:first-child {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.courseware-batch-head > div { display: grid; gap: 4px; }
.courseware-batch-head strong { color: #17324d; }
.courseware-batch-head span,
.courseware-batch-head b,
.courseware-batch-status small { color: #53656c; font-size: 12px; line-height: 1.55; }
.courseware-batch-head b { white-space: nowrap; }

.courseware-batch-lessons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.courseware-batch-lesson {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  min-width: 0;
  padding: 10px;
  background: #fff;
  border: 1px solid #d5e1e2;
  border-radius: 5px;
}

.courseware-batch-lesson input { width: 17px; height: 17px; margin: 1px 0 0; }
.courseware-batch-lesson span { min-width: 0; display: grid; gap: 3px; }
.courseware-batch-lesson strong { color: #17324d; font-size: 13px; overflow-wrap: anywhere; }
.courseware-batch-lesson small { color: #667681; font-size: 12px; line-height: 1.45; }
.courseware-batch-actions { flex-wrap: wrap; justify-content: flex-end; }

.courseware-batch-status {
  display: grid;
  gap: 8px;
  padding: 12px;
  background: #eff7f2;
  border-left: 4px solid #24765f;
}

.courseware-batch-status.is-error { background: #fff3f1; border-left-color: #a8483e; }
.courseware-batch-status progress { width: 100%; height: 8px; accent-color: #24765f; }
.courseware-batch-item-list { display: grid; gap: 5px; }
.courseware-batch-item-list > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 10px; padding-top: 6px; border-top: 1px solid #dbe7df; }
.courseware-batch-item-list span { color: #17324d; font-size: 12px; overflow-wrap: anywhere; }
.courseware-batch-item-list b { color: #225e50; font-size: 12px; }
.courseware-batch-item-list small { grid-column: 1 / -1; color: #8a3d35; }

.courseware-package-workflow {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid #d5e1e2;
}

.courseware-package-workflow-summary > div {
  min-width: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px 12px;
}

.courseware-package-workflow-summary span {
  padding: 4px 7px;
  color: #225e50;
  background: #eaf4f0;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 700;
}

.courseware-package-workflow-summary strong { color: #17324d; }
.courseware-package-workflow-summary small { color: #667681; }

.courseware-return-reason {
  display: grid;
  gap: 4px;
  margin-top: 10px;
  padding: 10px 12px;
  color: #7a3b31;
  background: #fff5ef;
  border-left: 4px solid #c06b55;
}

.courseware-package-workflow-body {
  display: grid;
  gap: 14px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #e1e8e8;
}

.courseware-resource-review-list {
  display: grid;
  gap: 7px;
}

.courseware-resource-review-row {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 9px 0;
  border-bottom: 1px solid #edf1f1;
}

.courseware-resource-review-row > div:first-child {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.courseware-resource-review-row > div:last-child {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}

.courseware-resource-review-row strong { overflow-wrap: anywhere; }
.courseware-resource-review-row span { color: #667681; font-size: 12px; }

.courseware-resource-editor,
.courseware-feedback-form {
  padding: 14px;
  background: #f7faf9;
  border: 1px solid #cbd8da;
  border-radius: 6px;
}

.courseware-resource-editor > header > div {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.courseware-resource-section-list {
  display: grid;
  gap: 10px;
  margin: 12px 0;
}

.courseware-resource-section {
  display: grid;
  gap: 7px;
}

.courseware-resource-section input,
.courseware-resource-section textarea,
.courseware-resource-editor > label textarea,
.courseware-review-note textarea,
.courseware-feedback-form input,
.courseware-feedback-form textarea {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.courseware-resource-section textarea,
.courseware-resource-editor > label textarea,
.courseware-review-note textarea,
.courseware-feedback-form textarea { resize: vertical; }

.courseware-resource-editor > label,
.courseware-review-note,
.courseware-feedback-form label {
  min-width: 0;
  display: grid;
  gap: 6px;
}

.courseware-resource-editor > label > span,
.courseware-review-note > span,
.courseware-feedback-form label > span {
  color: #465a61;
  font-size: 12px;
  font-weight: 700;
}

.courseware-resource-editor-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 10px;
}

.courseware-package-actions {
  justify-content: flex-start;
  flex-wrap: wrap;
}

.courseware-review-note { margin-top: -4px; }

.courseware-feedback-form > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 12px 0;
}

.courseware-feedback-form label.wide { grid-column: 1 / -1; }

.courseware-feedback-check {
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: start;
}

.courseware-feedback-check input {
  width: 16px;
  height: 16px;
  margin: 2px 0 0;
}

.courseware-review-history {
  display: grid;
  gap: 6px;
}

.courseware-review-history > span {
  display: grid;
  grid-template-columns: minmax(90px, auto) minmax(0, 1fr) auto;
  gap: 10px;
  padding: 7px 0;
  color: #53656c;
  border-bottom: 1px solid #edf1f1;
  font-size: 12px;
}

.courseware-review-history small { color: #7a898e; }

.courseware-workflow-loading {
  padding: 12px;
  color: #667681;
  background: #f5f8f7;
  border-left: 3px solid #8baaa2;
}

@media (max-width: 920px) {
  .textbook-courseware-package { grid-template-columns: 1fr; }
  .textbook-resource-groups { grid-template-columns: 1fr; }
  .teacher-source-workspace { grid-template-columns: 1fr; }
  .textbook-courseware-visual,
  .textbook-courseware-visual img { min-height: 310px; }
  .textbook-courseware-visual { height: 310px; }
}

@media (max-width: 620px) {
  .textbook-courseware-center { padding: 14px; }
  .courseware-generation-modes { grid-template-columns: 1fr; }
  .courseware-generation-modes button {
    min-height: 72px;
    border-right: 0;
    border-bottom: 1px solid #d5e1e2;
  }
  .courseware-generation-modes button:last-child { border-bottom: 0; }
  .courseware-generation-workspace-head,
  .courseware-ai-unavailable,
  .courseware-generation-results article { align-items: stretch; flex-direction: column; }
  .courseware-generation-form { grid-template-columns: 1fr; }
  .courseware-generation-form label.wide { grid-column: auto; }
  .courseware-batch-lessons { grid-template-columns: 1fr; }
  .courseware-batch-head,
  .courseware-batch-status > div:first-child { flex-direction: column; }
  .courseware-batch-actions { justify-content: stretch; }
  .courseware-batch-actions button { flex: 1 1 130px; }
  .textbook-courseware-filters label { min-width: 0; flex: 1 1 130px; }
  .textbook-courseware-filters strong { width: 100%; margin: 0; }
  .textbook-courseware-body { padding: 18px; }
  .textbook-courseware-artifacts { grid-template-columns: 1fr; }
  .teacher-source-entry-grid,
  .teacher-source-fields,
  .teacher-source-assets { grid-template-columns: 1fr; }
  .teacher-source-lesson-row,
  .courseware-resource-review-row,
  .courseware-feedback-form > div { grid-template-columns: 1fr; }
  .courseware-feedback-form label.wide { grid-column: auto; }
  .courseware-resource-review-row > div:last-child { justify-content: flex-start; }
  .courseware-package-workflow-summary,
  .courseware-resource-editor > header,
  .courseware-feedback-form > header { align-items: flex-start; flex-direction: column; }
  .courseware-review-history > span { grid-template-columns: 1fr; gap: 3px; }
  .teacher-source-library-head,
  .teacher-source-editor-head,
  .teacher-source-item-head { align-items: flex-start; }
  .textbook-package-builder-head,
  .textbook-resource-title { align-items: flex-start; }
  .textbook-featured-plan { grid-template-columns: 1fr; padding-right: 16px; }
  .textbook-featured-plan-actions { min-width: 0; padding-right: 0; }
  .textbook-package-commands button.primary { width: 100%; margin-left: 0; }
  .textbook-resource-artifacts { display: grid; grid-template-columns: 1fr; }
  .textbook-resource-artifacts .textbook-artifact-button { width: 100%; justify-content: space-between; }
  .textbook-courseware-visual,
  .textbook-courseware-visual img { min-height: 270px; }
  .textbook-courseware-visual { height: 270px; }
}

/* Teaching-quality coordination and student-support workspaces */
.instruction-workbench {
  display: grid;
  gap: 18px;
}

.instruction-head,
.instruction-workspace-head,
.instruction-section-head,
.instruction-material-list article,
.instruction-record-list article header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.instruction-head h3,
.instruction-workspace-head h3,
.instruction-section-head h4,
.instruction-archive-receipt h4 {
  margin: 0;
}

.instruction-head p,
.instruction-workspace-head p,
.instruction-section-head p,
.instruction-next p {
  margin: 5px 0 0;
  color: #52675c;
  line-height: 1.6;
}

.instruction-notice {
  border-left: 4px solid #2b6cb0;
  background: #edf5ff;
  color: #173d69;
  padding: 10px 12px;
}

.instruction-summary,
.instruction-source-preview {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.instruction-summary span,
.instruction-source-preview span {
  min-width: 0;
  border: 1px solid #ccd9d1;
  border-top: 3px solid #2f7a50;
  background: #fff;
  padding: 11px 12px;
  border-radius: 6px;
  color: #52675c;
}

.instruction-summary span:nth-child(2),
.instruction-source-preview span:nth-child(2) { border-top-color: #2b6cb0; }
.instruction-summary span:nth-child(3),
.instruction-source-preview span:nth-child(3) { border-top-color: #a46419; }
.instruction-summary span:nth-child(4),
.instruction-source-preview span:nth-child(4) { border-top-color: #a13d45; }
.instruction-summary span:nth-child(5),
.instruction-source-preview span:nth-child(5) { border-top-color: #5f5a9b; }

.instruction-summary b,
.instruction-source-preview b {
  display: block;
  margin-bottom: 3px;
  color: #18271f;
  font-size: 20px;
}

.instruction-create {
  border-block: 1px solid #ccd9d1;
  padding: 14px 0;
}

.instruction-create summary {
  cursor: pointer;
  font-weight: 750;
  color: #234c36;
}

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

.instruction-form-grid label,
.instruction-wide-field {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: #31473b;
  font-size: 13px;
}

.instruction-form-grid .wide,
.instruction-wide-field {
  grid-column: 1 / -1;
}

.instruction-form-grid input,
.instruction-form-grid select,
.instruction-form-grid textarea,
.instruction-wide-field textarea,
.instruction-inline-form input,
.instruction-material-form input,
.instruction-material-form select,
.instruction-task input,
.instruction-task select,
.instruction-task textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid #b9c9bf;
  border-radius: 4px;
  background: #fff;
  color: #1b2b22;
  padding: 9px 10px;
}

.instruction-form-grid textarea,
.instruction-wide-field textarea,
.instruction-task textarea {
  min-height: 84px;
  resize: vertical;
}

.instruction-record-strip {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(230px, 300px);
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 5px;
}

.instruction-record-strip button {
  min-height: 108px;
  display: grid;
  align-content: start;
  gap: 6px;
  text-align: left;
  border: 1px solid #c8d6cd;
  border-left: 4px solid #2f7a50;
  border-radius: 6px;
  background: #fff;
  color: #1d3025;
  padding: 11px 12px;
}

.instruction-record-strip button.active {
  border-color: #1f6942;
  background: #edf7f1;
  box-shadow: inset 0 0 0 1px #1f6942;
}

.instruction-record-strip button span,
.instruction-record-strip button small {
  color: #607269;
}

.instruction-workspace {
  display: grid;
  gap: 14px;
  border-top: 3px solid #285f43;
  padding-top: 16px;
}

.instruction-workspace-head > div:first-child {
  min-width: 0;
}

.instruction-workspace-head > div:first-child > span {
  color: #285f43;
  font-weight: 750;
}

.instruction-next {
  flex: 0 1 430px;
  border-left: 4px solid #a46419;
  background: #fff7e9;
  padding: 10px 12px;
}

.instruction-tabs {
  display: flex;
  gap: 4px;
  overflow-x: auto;
  border-bottom: 1px solid #bdcbc2;
}

.instruction-tabs button {
  flex: 0 0 auto;
  border: 0;
  border-bottom: 3px solid transparent;
  border-radius: 0;
  background: transparent;
  color: #4d6257;
  padding: 10px 12px;
}

.instruction-tabs button.active {
  border-bottom-color: #276b46;
  color: #1f593b;
  font-weight: 750;
}

.instruction-tab-panel {
  display: grid;
  gap: 16px;
}

.instruction-section {
  display: grid;
  gap: 12px;
  border-bottom: 1px solid #ced9d2;
  padding: 4px 0 18px;
}

.instruction-findings,
.instruction-people,
.instruction-record-list,
.instruction-task-list,
.instruction-material-list {
  display: grid;
  gap: 10px;
}

.instruction-findings {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.instruction-findings article,
.instruction-people span,
.instruction-record-list article,
.instruction-task,
.instruction-material-list article {
  border: 1px solid #c9d6ce;
  border-radius: 6px;
  background: #fff;
  padding: 11px 12px;
}

.instruction-findings article { border-left: 4px solid #2f7a50; }
.instruction-findings article.severity-medium { border-left-color: #a46419; }
.instruction-findings article.severity-high { border-left-color: #a13d45; }
.instruction-findings p,
.instruction-record-list p { margin: 6px 0; line-height: 1.55; }
.instruction-findings span,
.instruction-record-list small,
.instruction-people small,
.instruction-material-list small { display: block; color: #607269; }

.instruction-people {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.instruction-record-list dl,
.instruction-fact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 16px;
  margin: 10px 0 0;
}

.instruction-record-list dl div,
.instruction-fact-grid div {
  min-width: 0;
}

.instruction-record-list dt,
.instruction-fact-grid dt {
  color: #607269;
  font-size: 12px;
}

.instruction-record-list dd,
.instruction-fact-grid dd {
  margin: 3px 0 0;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.instruction-fact-grid .wide { grid-column: 1 / -1; }
.instruction-fact-list { margin: 0; padding-left: 24px; line-height: 1.8; }

.instruction-inline-form,
.instruction-material-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  align-items: end;
}

.instruction-task {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  align-items: start;
}

.instruction-task textarea {
  grid-column: span 2;
}

.instruction-task button {
  min-height: 39px;
}

.instruction-material-list article {
  align-items: center;
}

.instruction-flow-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
  border-top: 1px solid #c5d1c9;
  padding-top: 14px;
}

.instruction-archive-receipt {
  display: grid;
  gap: 8px;
  border: 2px solid #2d6f4a;
  background: #f3faf6;
  padding: 16px;
}

.instruction-archive-receipt code {
  overflow-wrap: anywhere;
  color: #40594c;
}

@media (max-width: 980px) {
  .instruction-summary,
  .instruction-source-preview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .instruction-findings { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .instruction-people { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .instruction-task { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .instruction-inline-form,
  .instruction-material-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 660px) {
  .instruction-head,
  .instruction-workspace-head,
  .instruction-section-head { display: grid; }
  .instruction-next { width: 100%; }
  .instruction-form-grid,
  .instruction-summary,
  .instruction-source-preview,
  .instruction-findings,
  .instruction-people,
  .instruction-record-list dl,
  .instruction-fact-grid,
  .instruction-inline-form,
  .instruction-material-form,
  .instruction-task { grid-template-columns: minmax(0, 1fr); }
  .instruction-task textarea,
  .instruction-form-grid .wide,
  .instruction-fact-grid .wide { grid-column: 1; }
  .instruction-flow-actions { justify-content: stretch; }
  .instruction-flow-actions button { flex: 1 1 100%; }
}

/* Education research project application, action cycles, reports and filing. */
.research-project-workbench {
  display: grid;
  gap: 18px;
  color: #21372d;
}

.research-project-workbench h3,
.research-project-workbench h4,
.research-project-workbench p { margin: 0; letter-spacing: 0; }

.research-project-head,
.research-project-workspace-head,
.research-project-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.research-project-head > div,
.research-project-workspace-head > div,
.research-project-section-head > div { min-width: 0; }
.research-project-head h3 { margin: 2px 0 5px; font-size: 22px; }
.research-project-head p:last-child,
.research-project-workspace-head p,
.research-project-section-head p { color: #64746c; line-height: 1.55; }
.research-project-head .eyebrow { color: #206d49; }

.research-project-workbench button {
  min-height: 36px;
  padding: 7px 13px;
  border: 1px solid #216b47;
  border-radius: 6px;
  color: #fff;
  background: #216b47;
  font: inherit;
  font-weight: 750;
  letter-spacing: 0;
  cursor: pointer;
}
.research-project-workbench button:hover { background: #185638; }
.research-project-workbench button:disabled { opacity: .45; cursor: not-allowed; }
.research-project-workbench button.inline-action,
.research-project-workbench button.secondary { color: #205f40; background: #fff; }
.research-project-workbench button.inline-action:hover,
.research-project-workbench button.secondary:hover { background: #edf6f1; }
.research-project-workbench button.danger-action { color: #9e3f3a; border-color: #d5a5a0; background: #fff; }
.research-project-workbench button.danger-action:hover { background: #fff0ef; }

.research-project-notice {
  padding: 11px 13px;
  border-left: 4px solid #d28a25;
  border-radius: 4px;
  color: #6c4a17;
  background: #fff7e5;
}

.research-project-summary,
.research-project-metrics {
  display: grid;
  grid-template-columns: repeat(5, minmax(112px, 1fr));
  border: 1px solid #d9e5dd;
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
}
.research-project-summary span,
.research-project-metrics span {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 11px 13px;
  border-right: 1px solid #e3ebe6;
  color: #607068;
  font-size: 12px;
}
.research-project-summary span:last-child,
.research-project-metrics span:last-child { border-right: 0; }
.research-project-summary b,
.research-project-metrics b { color: #1b4933; font-size: 20px; }

.research-project-create {
  border: 1px solid #d5e3da;
  border-radius: 6px;
  background: #f8fbf9;
}
.research-project-create summary {
  padding: 12px 14px;
  color: #245d41;
  font-weight: 800;
  cursor: pointer;
}
.research-project-create > button { margin: 0 14px 14px; }

.research-project-form-grid,
.research-journal-form,
.research-report-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.research-project-form-grid { padding: 0 14px 12px; }
.research-project-form-grid label,
.research-journal-form label,
.research-report-grid label,
.research-report-note {
  display: grid;
  gap: 6px;
  min-width: 0;
}
.research-project-workbench label > span,
.research-project-workbench legend {
  color: #425b4e;
  font-size: 12px;
  font-weight: 750;
}
.research-project-form-grid .wide,
.research-journal-form .wide { grid-column: 1 / -1; }

.research-project-workbench input,
.research-project-workbench select,
.research-project-workbench textarea {
  width: 100%;
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid #cfdcd4;
  border-radius: 5px;
  color: #25392f;
  background: #fff;
  font: inherit;
  letter-spacing: 0;
}
.research-project-workbench textarea { min-height: 84px; resize: vertical; line-height: 1.55; }
.research-project-workbench input:focus,
.research-project-workbench select:focus,
.research-project-workbench textarea:focus { outline: 2px solid rgba(37, 132, 82, .17); border-color: #258452; }
.research-project-workbench input:disabled,
.research-project-workbench select:disabled,
.research-project-workbench textarea:disabled { color: #65746d; background: #eef2ef; }

.research-project-strip {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(250px, 330px);
  gap: 9px;
  overflow-x: auto;
  padding-bottom: 2px;
}
.research-project-workbench .research-project-choice {
  display: grid;
  gap: 4px;
  min-height: 92px;
  padding: 11px 13px;
  border-color: #d5dfd9;
  color: #2b3d34;
  text-align: left;
  background: #fff;
}
.research-project-workbench .research-project-choice:hover,
.research-project-workbench .research-project-choice.active { border-color: #258452; background: #edf7f1; }
.research-project-choice span { color: #9a641a; font-size: 12px; }
.research-project-choice strong { font-size: 15px; line-height: 1.35; overflow-wrap: anywhere; }
.research-project-choice small { color: #6b7972; line-height: 1.4; }

.research-project-workspace {
  display: grid;
  gap: 15px;
  padding: 16px;
  border: 1px solid #d6e2da;
  border-radius: 6px;
  background: #fff;
}
.research-project-workspace-head > div > span {
  display: inline-block;
  margin-bottom: 4px;
  color: #8e5c16;
  font-size: 12px;
  font-weight: 800;
}
.research-project-workspace-head h3 { margin-bottom: 4px; font-size: 20px; }
.research-project-flow-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; max-width: 440px; }
.research-project-metrics { background: #f7faf8; }

.research-project-tabs {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 4px;
  padding: 4px;
  border-radius: 6px;
  background: #edf2ef;
}
.research-project-workbench .research-project-tabs button {
  color: #3e5549;
  border-color: transparent;
  background: transparent;
}
.research-project-workbench .research-project-tabs button:hover { background: #fff; }
.research-project-workbench .research-project-tabs button.active { color: #fff; background: #216b47; }

.research-project-tab-panel { display: grid; gap: 20px; }
.research-project-section { display: grid; gap: 12px; padding-top: 18px; border-top: 1px solid #e1e9e4; }
.research-project-tab-panel .research-project-section:first-child { padding-top: 0; border-top: 0; }
.research-project-section-head h4 { margin-bottom: 3px; font-size: 17px; }
.research-project-section-head > span { color: #6c5b31; font-size: 12px; font-weight: 800; white-space: nowrap; }
.research-project-section > .research-project-form-grid { padding: 0; }
.research-project-section > .special-actions { display: flex; justify-content: flex-end; gap: 7px; }

.research-member-list,
.research-instrument-list,
.research-task-list,
.research-journal-list,
.research-material-list,
.research-achievement-list { display: grid; gap: 9px; }

.research-member-row {
  display: grid;
  grid-template-columns: minmax(150px, .8fr) minmax(130px, .7fr) minmax(260px, 1.7fr) auto;
  gap: 8px;
  align-items: center;
  padding: 10px;
  border: 1px solid #dce6df;
  border-radius: 5px;
  background: #fbfcfb;
}
.research-member-row > div:first-child { display: grid; gap: 3px; }
.research-member-row small { color: #6f7c75; overflow-wrap: anywhere; }
.research-member-row textarea { min-height: 58px; }
.research-member-row .special-actions { display: flex; gap: 6px; }

.research-inline-form,
.research-add-instrument,
.research-add-task,
.research-material-form,
.research-achievement-form {
  display: grid;
  gap: 9px;
  padding: 12px;
  border-left: 4px solid #4b916b;
  background: #f1f7f3;
}
.research-inline-form { grid-template-columns: repeat(3, minmax(120px, 1fr)) minmax(230px, 2fr) auto; align-items: center; }
.research-inline-form textarea { min-height: 44px; }

.research-instrument-row,
.research-task-row {
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid #dce5df;
  border-radius: 5px;
  background: #fbfcfb;
}
.research-instrument-row { grid-template-columns: repeat(4, minmax(120px, 1fr)); }
.research-instrument-row textarea { min-height: 70px; }
.research-instrument-row .special-actions,
.research-task-row .special-actions { display: flex; justify-content: flex-end; gap: 7px; grid-column: 1 / -1; }
.research-add-instrument { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.research-add-instrument textarea { grid-column: span 2; }
.research-add-instrument button { justify-self: start; }

.research-task-row { grid-template-columns: minmax(220px, 1.5fr) repeat(4, minmax(120px, .8fr)); }
.research-task-row textarea { grid-column: span 2; min-height: 64px; }
.research-add-task { grid-template-columns: minmax(220px, 1.5fr) repeat(3, minmax(120px, 1fr)); }
.research-add-task textarea { grid-column: 1 / -2; }
.research-add-task button { align-self: center; }

.research-journal-form fieldset,
.research-achievement-form fieldset {
  min-width: 0;
  margin: 0;
  padding: 9px 10px;
  border: 1px solid #d4dfd8;
  border-radius: 5px;
}
.research-journal-form fieldset { grid-column: 1 / -1; }
.research-check-grid { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 6px; }
.research-check-grid label { display: flex; align-items: center; gap: 6px; }
.research-check-grid input { width: 18px; height: 18px; accent-color: #26784f; }

.research-journal-row {
  padding: 12px 14px;
  border-left: 4px solid #2d8055;
  background: #f7faf8;
}
.research-journal-row header,
.research-achievement-list article header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.research-journal-row header > div { display: grid; gap: 3px; }
.research-journal-row header span,
.research-journal-row time,
.research-journal-row small { color: #6b7b72; font-size: 12px; }
.research-journal-row dl { display: grid; gap: 7px; margin: 12px 0; }
.research-journal-row dl > div { display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 10px; }
.research-journal-row dt { color: #315d46; font-weight: 800; }
.research-journal-row dd { margin: 0; line-height: 1.55; white-space: pre-wrap; }

.research-report-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.research-project-workbench .research-report-tabs button { display: grid; gap: 2px; color: #365044; border-color: #d2ddd6; background: #fff; }
.research-project-workbench .research-report-tabs button span { color: #7a887f; font-size: 11px; }
.research-project-workbench .research-report-tabs button.active { color: #fff; border-color: #246d48; background: #246d48; }
.research-project-workbench .research-report-tabs button.active span { color: #e7f3eb; }

.research-ai-reference,
.research-confirmed-receipt,
.research-archive-receipt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 14px;
  border: 1px solid #d5e3ec;
  border-radius: 5px;
  background: #f2f8fc;
}
.research-ai-reference > div { display: grid; gap: 4px; }
.research-ai-reference p { color: #516a7b; }
.research-ai-source { padding: 11px 13px; border-left: 4px solid #5d84a1; background: #f5f9fc; }
.research-ai-source summary { color: #2d5f80; font-weight: 800; cursor: pointer; }
.research-ai-source > div { padding: 10px 0; border-bottom: 1px solid #dce8ef; }
.research-ai-source > div:last-child { border-bottom: 0; }
.research-ai-source p { margin-top: 5px; color: #405d6f; line-height: 1.6; white-space: pre-wrap; }
.research-report-grid textarea { min-height: 150px; }
.research-report-note { margin-top: 2px; }
.research-confirmed-receipt,
.research-archive-receipt { display: grid; gap: 4px; border-color: #cce0d3; background: #eef8f1; }
.research-confirmed-receipt span,
.research-confirmed-receipt small,
.research-archive-receipt span,
.research-archive-receipt small { color: #5b7164; overflow-wrap: anywhere; }

.research-material-form { grid-template-columns: minmax(200px, 1.5fr) minmax(150px, .8fr) minmax(150px, .8fr) minmax(230px, 1.5fr) auto; align-items: center; }
.research-material-form textarea { min-height: 44px; }
.research-material-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid #dce6df;
  border-radius: 5px;
}
.research-material-row > div { display: grid; gap: 3px; }
.research-material-row small { color: #6b7972; }
.research-material-row p { color: #52665b; line-height: 1.5; }

.research-achievement-list article {
  padding: 11px 13px;
  border-left: 4px solid #c88a2b;
  background: #fff9ed;
}
.research-achievement-list article header span { color: #8a5b16; font-size: 12px; font-weight: 800; }
.research-achievement-list article p { margin: 7px 0; line-height: 1.55; }
.research-achievement-list article small { color: #706856; }
.research-achievement-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.research-achievement-form textarea { grid-column: span 3; }
.research-achievement-form fieldset { grid-column: 1 / -1; }
.research-achievement-form button { justify-self: start; }

@media (max-width: 1100px) {
  .research-member-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .research-member-row .special-actions { justify-content: flex-end; }
  .research-inline-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .research-inline-form textarea { grid-column: 1 / -1; }
  .research-add-instrument { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .research-task-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .research-material-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .research-material-form textarea { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
  .research-project-head,
  .research-project-workspace-head,
  .research-project-section-head,
  .research-ai-reference { align-items: stretch; flex-direction: column; }
  .research-project-flow-actions { justify-content: flex-start; max-width: none; }
  .research-project-summary,
  .research-project-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .research-project-summary span,
  .research-project-metrics span { border-bottom: 1px solid #e3ebe6; }
  .research-project-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .research-project-form-grid,
  .research-journal-form,
  .research-report-grid,
  .research-report-tabs,
  .research-member-row,
  .research-inline-form,
  .research-instrument-row,
  .research-add-instrument,
  .research-task-row,
  .research-add-task,
  .research-material-form,
  .research-achievement-form { grid-template-columns: 1fr; }
  .research-project-form-grid .wide,
  .research-journal-form .wide,
  .research-journal-form fieldset,
  .research-instrument-row .special-actions,
  .research-task-row .special-actions,
  .research-add-instrument textarea,
  .research-task-row textarea,
  .research-add-task textarea,
  .research-material-form textarea,
  .research-achievement-form textarea,
  .research-achievement-form fieldset { grid-column: 1; }
  .research-material-row { grid-template-columns: 1fr; }
  .research-journal-row dl > div { grid-template-columns: 1fr; gap: 2px; }
}

/* Public lesson application, rehearsal, classroom review and resource filing. */
.public-lesson-workbench {
  display: grid;
  gap: 18px;
  color: #21382d;
}

.public-lesson-workbench h3,
.public-lesson-workbench h4,
.public-lesson-workbench p { margin: 0; letter-spacing: 0; }

.public-lesson-head,
.public-lesson-workspace-head,
.public-lesson-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.public-lesson-head > div,
.public-lesson-workspace-head > div,
.public-lesson-section-head > div { min-width: 0; }
.public-lesson-head h3 { margin: 2px 0 5px; font-size: 22px; }
.public-lesson-head p:last-child,
.public-lesson-workspace-head p,
.public-lesson-section-head p { color: #64746c; line-height: 1.55; }
.public-lesson-head .eyebrow { color: #206d49; }

.public-lesson-workbench button {
  min-height: 36px;
  padding: 7px 13px;
  color: #fff;
  font: inherit;
  font-weight: 750;
  letter-spacing: 0;
  border: 1px solid #216b47;
  border-radius: 5px;
  background: #216b47;
  cursor: pointer;
}
.public-lesson-workbench button:hover { background: #185638; }
.public-lesson-workbench button:disabled { opacity: .45; cursor: not-allowed; }
.public-lesson-workbench button.secondary { color: #205f40; background: #fff; }
.public-lesson-workbench button.secondary:hover { background: #edf6f1; }
.public-lesson-workbench button.danger-action { color: #9e3f3a; border-color: #d5a5a0; background: #fff; }
.public-lesson-workbench button.danger-action:hover { background: #fff0ef; }

.public-lesson-notice {
  padding: 11px 13px;
  color: #704b18;
  line-height: 1.5;
  border-left: 4px solid #d28a25;
  background: #fff8e8;
}

.public-lesson-summary,
.public-lesson-metrics {
  display: grid;
  grid-template-columns: repeat(5, minmax(112px, 1fr));
  border: 1px solid #d8e3dc;
  background: #fff;
}
.public-lesson-summary span,
.public-lesson-metrics span {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 12px 14px;
  color: #607168;
  font-size: 12px;
  border-right: 1px solid #e1e9e4;
}
.public-lesson-summary span:last-child,
.public-lesson-metrics span:last-child { border-right: 0; }
.public-lesson-summary b,
.public-lesson-metrics b { color: #1b4933; font-size: 20px; }

.public-lesson-create {
  border: 1px solid #d5e3da;
  border-radius: 6px;
  background: #f8fbf9;
}
.public-lesson-create summary {
  padding: 12px 14px;
  color: #245d41;
  font-weight: 800;
  cursor: pointer;
}
.public-lesson-create > button { margin: 0 14px 14px; }

.public-lesson-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.public-lesson-create .public-lesson-form-grid { padding: 0 14px 12px; }
.public-lesson-form-grid label,
.public-lesson-response-row label {
  display: grid;
  gap: 5px;
  min-width: 0;
}
.public-lesson-workbench label > span {
  color: #425b4e;
  font-size: 12px;
  font-weight: 750;
}
.public-lesson-form-grid .wide { grid-column: 1 / -1; }

.public-lesson-workbench input,
.public-lesson-workbench select,
.public-lesson-workbench textarea {
  width: 100%;
  min-width: 0;
  padding: 8px 9px;
  color: #263d32;
  font: inherit;
  letter-spacing: 0;
  border: 1px solid #cbd9d0;
  border-radius: 4px;
  background: #fff;
}
.public-lesson-workbench textarea { min-height: 84px; resize: vertical; line-height: 1.55; }
.public-lesson-workbench input:focus,
.public-lesson-workbench select:focus,
.public-lesson-workbench textarea:focus { outline: 2px solid rgba(37, 132, 82, .17); border-color: #258452; }
.public-lesson-workbench input:disabled,
.public-lesson-workbench select:disabled,
.public-lesson-workbench textarea:disabled { color: #65746d; background: #eef2ef; }

.public-lesson-strip {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(230px, 1fr);
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
}
.public-lesson-workbench .public-lesson-choice {
  display: grid;
  gap: 4px;
  min-height: 84px;
  padding: 10px 12px;
  color: #2b4035;
  text-align: left;
  border-color: #d5e0d9;
  background: #fff;
}
.public-lesson-workbench .public-lesson-choice:hover,
.public-lesson-workbench .public-lesson-choice.active { border-color: #258452; background: #edf7f1; }
.public-lesson-choice span { color: #9a641a; font-size: 12px; }
.public-lesson-choice strong { font-size: 15px; line-height: 1.35; overflow-wrap: anywhere; }
.public-lesson-choice small { color: #6b7972; line-height: 1.4; }

.public-lesson-workspace {
  display: grid;
  gap: 15px;
  padding: 17px;
  border: 1px solid #d7e2db;
  background: #fff;
}
.public-lesson-workspace-head > div > span {
  display: inline-block;
  margin-bottom: 4px;
  color: #92601e;
  font-size: 12px;
  font-weight: 800;
}
.public-lesson-workspace-head h3 { margin-bottom: 4px; font-size: 20px; overflow-wrap: anywhere; }
.public-lesson-flow-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; max-width: 520px; }
.public-lesson-next { display: flex; gap: 10px; padding: 10px 12px; color: #315242; border-left: 4px solid #3c9162; background: #eff7f2; }
.public-lesson-next strong { white-space: nowrap; }
.public-lesson-next span { line-height: 1.5; }
.public-lesson-metrics { background: #f7faf8; }

.public-lesson-tabs {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 4px;
  padding: 4px;
  background: #edf2ef;
}
.public-lesson-workbench .public-lesson-tabs button { color: #3e5549; border-color: transparent; background: transparent; }
.public-lesson-workbench .public-lesson-tabs button:hover { background: #fff; }
.public-lesson-workbench .public-lesson-tabs button.active { color: #fff; background: #216b47; }

.public-lesson-tab-panel { display: grid; gap: 20px; }
.public-lesson-section { display: grid; gap: 12px; padding-top: 18px; border-top: 1px solid #e1e9e4; }
.public-lesson-tab-panel .public-lesson-section:first-child { padding-top: 0; border-top: 0; }
.public-lesson-section-head h4 { margin-bottom: 3px; font-size: 17px; }
.public-lesson-section-head > span { color: #6c5b31; font-size: 12px; font-weight: 800; white-space: nowrap; }
.public-lesson-section > .special-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }

.public-lesson-record-list,
.public-lesson-response-list,
.public-lesson-task-list,
.public-lesson-material-list { display: grid; gap: 9px; }
.public-lesson-record,
.public-lesson-response-row,
.public-lesson-task,
.public-lesson-material-list > article {
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid #dce6df;
  border-radius: 5px;
  background: #fafcfb;
}
.public-lesson-record header,
.public-lesson-response-row header,
.public-lesson-material-list > article {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.public-lesson-record header > div { display: grid; gap: 3px; min-width: 0; }
.public-lesson-record header span,
.public-lesson-record header code,
.public-lesson-response-row header span { color: #6a7a71; font-size: 12px; overflow-wrap: anywhere; }
.public-lesson-record dl { display: grid; gap: 6px; margin: 10px 0 0; }
.public-lesson-record dl > div { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 10px; }
.public-lesson-record dt { color: #5a6c62; font-size: 12px; font-weight: 800; }
.public-lesson-record dd { margin: 0; line-height: 1.55; overflow-wrap: anywhere; }

.public-lesson-observation-link { padding: 13px; border: 1px solid #cfe0d5; background: #f6faf7; }
.public-lesson-observation-steps { display: grid; grid-template-columns: repeat(6, minmax(90px, 1fr)); gap: 6px; }
.public-lesson-observation-steps span { padding: 8px; color: #375647; font-size: 12px; text-align: center; border: 1px solid #d2dfd7; background: #fff; }
.public-lesson-observation-link .special-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.public-lesson-observation-link code { overflow-wrap: anywhere; }

.public-lesson-response-row { display: grid; grid-template-columns: minmax(220px, 1.2fr) minmax(130px, .5fr) minmax(280px, 1fr); gap: 10px; align-items: start; }
.public-lesson-response-row.achievement-revision-row { grid-template-columns: minmax(260px, 1fr) minmax(300px, 1.25fr); }
.public-lesson-response-row header { display: grid; gap: 4px; }
.public-lesson-response-row textarea { min-height: 70px; }

.public-lesson-inline-form { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr 2fr auto; gap: 7px; align-items: end; }
.public-lesson-task { display: grid; grid-template-columns: 1.5fr .65fr .8fr .7fr .75fr 1fr 1.2fr auto; gap: 7px; align-items: start; }
.public-lesson-task textarea { min-height: 48px; }
.public-lesson-task > div { display: flex; gap: 5px; }

.public-lesson-material-form { display: grid; grid-template-columns: minmax(220px, 1.2fr) minmax(120px, .5fr) minmax(240px, 1fr) auto; gap: 8px; }
.public-lesson-material-list > article { align-items: center; }
.public-lesson-material-list label { display: flex; align-items: flex-start; gap: 8px; min-width: 0; }
.public-lesson-material-list label > input { width: auto; margin-top: 3px; }
.public-lesson-material-list label > span { display: grid; gap: 3px; min-width: 0; }
.public-lesson-material-list strong,
.public-lesson-material-list small { overflow-wrap: anywhere; }
.public-lesson-material-list small { color: #6e7d75; }

.public-lesson-archive { display: grid; gap: 5px; padding: 11px 12px; border-left: 4px solid #35855a; background: #edf7f1; }
.public-lesson-archive code { font-size: 11px; overflow-wrap: anywhere; }

@media (max-width: 1100px) {
  .public-lesson-response-row { grid-template-columns: 1fr 180px; }
  .public-lesson-response-row header { grid-column: 1 / -1; }
  .public-lesson-task { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .public-lesson-task textarea { grid-column: span 2; }
  .public-lesson-inline-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .public-lesson-observation-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .public-lesson-head,
  .public-lesson-workspace-head,
  .public-lesson-section-head { align-items: stretch; flex-direction: column; }
  .public-lesson-flow-actions { justify-content: flex-start; max-width: none; }
  .public-lesson-summary,
  .public-lesson-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-lesson-summary span,
  .public-lesson-metrics span { border-bottom: 1px solid #e3ebe6; }
  .public-lesson-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-lesson-form-grid,
  .public-lesson-response-row,
  .public-lesson-task,
  .public-lesson-inline-form,
  .public-lesson-material-form { grid-template-columns: 1fr; }
  .public-lesson-form-grid .wide,
  .public-lesson-response-row header,
  .public-lesson-task textarea { grid-column: auto; }
  .public-lesson-record header,
  .public-lesson-material-list > article { align-items: stretch; flex-direction: column; }
  .public-lesson-record dl > div { grid-template-columns: 1fr; gap: 2px; }
  .public-lesson-observation-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-lesson-next { display: grid; }
}

/* Classroom observation, recording, review and improvement workflow. */
.lesson-observation-workbench {
  display: grid;
  gap: 18px;
}

.observation-head,
.observation-workspace-head,
.observation-section-head,
.observation-review-row > div,
.observation-ai-action,
.observation-confirmed-receipt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.observation-head h3,
.observation-workspace-head h3,
.observation-section h4 {
  margin: 0;
  letter-spacing: 0;
}

.observation-head .eyebrow {
  margin: 0 0 4px;
}

.observation-notice {
  padding: 10px 12px;
  border-left: 4px solid #b7791f;
  background: #fff7df;
  color: #5f430d;
}

.observation-summary {
  display: grid;
  grid-template-columns: repeat(6, minmax(110px, 1fr));
  border: 1px solid #dce7e1;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}

.observation-summary span {
  min-height: 66px;
  padding: 12px;
  border-right: 1px solid #e7eeea;
  display: grid;
  align-content: center;
  gap: 2px;
  color: #53635b;
}

.observation-summary span:last-child { border-right: 0; }
.observation-summary b { color: #173e2c; font-size: 20px; }

.observation-create {
  border-block: 1px solid #dce7e1;
  padding: 12px 0 16px;
}

.observation-create summary {
  cursor: pointer;
  color: #174a34;
  font-weight: 700;
}

.observation-form-grid,
.observation-recording-policy,
.observation-note-form,
.observation-review-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 14px 0;
}

.observation-form-grid label,
.observation-recording-policy label,
.observation-note-form label,
.observation-review-form label,
.observation-report-grid label,
.observation-report-revision,
.observation-transcript,
.observation-confirm-box label {
  display: grid;
  gap: 6px;
}

.observation-form-grid label > span,
.observation-recording-policy label > span,
.observation-note-form label > span,
.observation-review-form label > span,
.observation-report-grid label > span,
.observation-report-revision > span,
.observation-transcript > span,
.observation-confirm-box label > span {
  color: #42564c;
  font-size: 13px;
  font-weight: 700;
}

.observation-form-grid .wide,
.observation-recording-policy .wide,
.observation-note-form .wide,
.observation-review-form .wide { grid-column: 1 / -1; }

.observation-strip {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(240px, 310px);
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 4px;
}

.observation-choice {
  min-height: 116px;
  padding: 12px;
  border: 1px solid #d7e3dd;
  border-radius: 8px;
  background: #fff;
  color: #253c31;
  text-align: left;
  display: grid;
  align-content: start;
  gap: 5px;
}

.observation-choice.active {
  border-color: #1e7a4e;
  box-shadow: inset 0 0 0 1px #1e7a4e;
}

.observation-choice span { color: #9a5b08; font-size: 12px; }
.observation-choice strong { font-size: 15px; }
.observation-choice small { color: #627269; line-height: 1.45; }

.observation-workspace {
  border-top: 3px solid #206744;
  padding-top: 16px;
}

.observation-workspace-head p,
.observation-section-head p {
  margin: 5px 0 0;
  color: #617169;
  line-height: 1.55;
}

.observation-workspace-head > div > span {
  color: #9a5b08;
  font-size: 12px;
  font-weight: 700;
}

.observation-flow-actions,
.observation-recorder .special-actions,
.observation-media-row .special-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.observation-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  margin-top: 16px;
  border-bottom: 1px solid #dbe5df;
}

.observation-tabs button {
  min-height: 44px;
  border: 0;
  border-bottom: 3px solid transparent;
  border-radius: 0;
  background: transparent;
  color: #52645b;
}

.observation-tabs button.active {
  border-bottom-color: #1e7a4e;
  color: #174a34;
  background: #f0f8f3;
}

.observation-tab-panel { display: grid; gap: 0; }

.observation-section {
  padding: 20px 0;
  border-bottom: 1px solid #e2eae6;
}

.observation-section:last-child { border-bottom: 0; }
.observation-section-head > span { color: #6c5b31; font-size: 13px; white-space: nowrap; }

.observation-observer-list,
.observation-note-list,
.observation-file-list,
.observation-review-list,
.observation-task-list {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}

.observation-observer-row {
  display: grid;
  grid-template-columns: minmax(150px, 1.2fr) minmax(120px, 1fr) minmax(110px, .8fr) minmax(150px, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 9px 0;
  border-bottom: 1px solid #edf2ef;
}

.observation-observer-row > div:first-child { display: grid; gap: 3px; }
.observation-observer-row small { color: #718078; }

.observation-check {
  display: flex !important;
  align-items: center;
  gap: 8px;
}

.observation-check input { width: 18px; height: 18px; margin: 0; }
.observation-check span { font-size: 13px; font-weight: 600; color: #40534a; }

.observation-inline-form,
.observation-upload-row,
.observation-task-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
  gap: 8px;
  margin-top: 12px;
}

.observation-dimension-grid,
.observation-dimension-findings {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.observation-dimension-grid article,
.observation-dimension-findings article {
  min-height: 112px;
  padding: 12px;
  border: 1px solid #dce6e1;
  border-radius: 8px;
  background: #f9fbfa;
}

.observation-dimension-grid p,
.observation-dimension-findings p { margin: 7px 0 0; color: #5e6d65; line-height: 1.55; }
.observation-dimension-findings small { display: block; margin-top: 7px; color: #53635b; }

.observation-recorder {
  display: grid;
  grid-template-columns: minmax(170px, .6fr) minmax(240px, 1.4fr);
  gap: 12px 18px;
  align-items: center;
  margin-top: 14px;
  padding: 14px;
  border: 1px solid #dfd9c8;
  border-radius: 8px;
  background: #fffaf0;
}

.observation-recorder > div:first-child { display: grid; gap: 6px; }
.observation-recorder > div:first-child span { color: #805a17; }
.observation-recorder > div:first-child strong { font-size: 28px; color: #372f1f; font-variant-numeric: tabular-nums; }
.observation-recorder video { width: 100%; max-height: 260px; background: #202723; border-radius: 6px; }
.observation-recorder .observation-upload-row { grid-column: 1 / -1; }

.observation-note-row {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #e8eeeb;
}

.observation-note-row time { color: #8b5411; font-weight: 800; font-variant-numeric: tabular-nums; }
.observation-note-row p { margin: 4px 0; line-height: 1.55; }
.observation-note-row small { display: block; margin-top: 4px; color: #66766e; }

.observation-media-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid #e6ede9;
}

.observation-media-row > div:first-child { display: grid; gap: 3px; }
.observation-media-row small { color: #6a7971; }
.observation-media-player { grid-column: 1 / -1; }
.observation-media-player audio,
.observation-media-player video { width: 100%; max-height: 420px; }

.observation-transcript { margin-top: 16px; }
.observation-transcript textarea { min-height: 260px; line-height: 1.7; }

.observation-review-row {
  padding: 12px 0;
  border-bottom: 1px solid #e5ece8;
}

.observation-review-row > div span { color: #8c5b13; font-size: 12px; }
.observation-review-row p { margin: 8px 0 0; line-height: 1.6; }

.observation-ai-action {
  margin-top: 14px;
  padding: 12px;
  border-left: 4px solid #3477a9;
  background: #f1f7fb;
}

.observation-ai-action p { margin: 0; color: #425b6e; }
.observation-ai-source { margin-top: 12px; padding: 10px 0; }
.observation-ai-source summary { cursor: pointer; color: #275b80; font-weight: 700; }
.observation-ai-source p { line-height: 1.6; }

.observation-report-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 14px 0;
}

.observation-report-grid label:nth-child(1),
.observation-report-grid label:nth-child(6),
.observation-report-grid label:nth-child(7) { grid-column: 1 / -1; }

.observation-report-revision { margin: 12px 0; }

.observation-task-row {
  display: grid;
  grid-template-columns: minmax(180px, 1.5fr) minmax(100px, .7fr) minmax(130px, .7fr) minmax(110px, .7fr);
  gap: 8px;
  padding: 10px 0;
  border-bottom: 1px solid #e5ece8;
}

.observation-task-row textarea { min-height: 64px; }
.observation-task-row .observation-task-evidence { grid-column: 1 / 3; }
.observation-task-row .observation-task-completion { grid-column: 3 / 5; }
.observation-task-row .special-actions { grid-column: 1 / -1; justify-content: flex-end; }
.observation-task-form textarea { grid-column: 1 / 3; }

.observation-confirm-box {
  display: grid;
  gap: 12px;
  margin-top: 14px;
  padding: 14px;
  border: 1px solid #d8e4de;
  border-radius: 8px;
  background: #f7faf8;
}

.observation-confirmed-receipt {
  margin-top: 14px;
  padding: 12px;
  border-left: 4px solid #218452;
  background: #eef8f2;
}

.observation-confirmed-receipt small { color: #5f7167; }

@media (max-width: 1100px) {
  .observation-summary { grid-template-columns: repeat(3, minmax(110px, 1fr)); }
  .observation-summary span:nth-child(3) { border-right: 0; }
  .observation-observer-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .observation-observer-row .special-actions { grid-column: 1 / -1; }
  .observation-dimension-grid,
  .observation-dimension-findings { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .observation-head,
  .observation-workspace-head,
  .observation-section-head,
  .observation-ai-action,
  .observation-confirmed-receipt { align-items: flex-start; flex-direction: column; }
  .observation-summary,
  .observation-form-grid,
  .observation-recording-policy,
  .observation-note-form,
  .observation-review-form,
  .observation-report-grid,
  .observation-dimension-grid,
  .observation-dimension-findings,
  .observation-observer-row,
  .observation-recorder,
  .observation-task-row,
  .observation-inline-form,
  .observation-upload-row,
  .observation-task-form { grid-template-columns: minmax(0, 1fr); }
  .observation-summary span { border-right: 0; border-bottom: 1px solid #e7eeea; }
  .observation-summary span:last-child { border-bottom: 0; }
  .observation-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .observation-form-grid .wide,
  .observation-recording-policy .wide,
  .observation-note-form .wide,
  .observation-review-form .wide,
  .observation-report-grid label:nth-child(n),
  .observation-recorder .observation-upload-row,
  .observation-task-row .observation-task-evidence,
  .observation-task-row .observation-task-completion,
  .observation-task-row .special-actions,
  .observation-task-form textarea { grid-column: 1; }
  .observation-media-row { grid-template-columns: minmax(0, 1fr); }
  .observation-media-player { grid-column: 1; }
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  font-family: "Microsoft YaHei", "Segoe UI", Arial, sans-serif;
  background: linear-gradient(135deg, #eff4ff 0%, #f9fbff 46%, #eef9f1 100%);
}

.hidden {
  display: none !important;
}

.account-session-body {
  min-height: 100vh;
  margin: 0;
  background: #eef4f1;
  color: #17231d;
}

.account-session-shell {
  width: min(1120px, calc(100% - 32px));
  margin: 0 auto;
  padding: 24px 0 48px;
}

.account-session-header,
.account-session-section {
  background: #ffffff;
  border: 1px solid #d4e2da;
  border-radius: 8px;
  box-shadow: 0 10px 28px rgba(24, 62, 43, 0.08);
}

.account-session-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 22px;
}

.account-session-header h1,
.account-session-section h2 {
  margin: 0;
  letter-spacing: 0;
}

.account-session-header p:last-child {
  margin: 6px 0 0;
  color: #50685b;
}

.account-session-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 16px 0;
}

.account-session-metrics article {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 18px;
  background: #183e2b;
  color: #ffffff;
  border-radius: 8px;
}

.account-session-metrics strong {
  font-size: 28px;
}

.account-session-section {
  margin-top: 16px;
  padding: 20px;
}

.account-session-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.account-session-card {
  min-width: 0;
  padding: 16px;
  border: 1px solid #d7e4dc;
  border-radius: 8px;
  background: #f8fbf9;
}

.account-session-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.account-session-card-head div {
  min-width: 0;
}

.account-session-card-head strong,
.account-session-card-head span {
  display: block;
  overflow-wrap: anywhere;
}

.account-session-card-head span,
.account-session-card p {
  margin: 6px 0 0;
  color: #52685c;
}

.account-session-card-head b {
  flex: 0 0 auto;
  color: #17663d;
}

.account-session-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 14px;
}

.account-security-form {
  display: grid;
  gap: 10px;
  margin-top: 14px;
  padding: 14px;
  border: 1px solid #d7e4dc;
  border-radius: 8px;
  background: #f8fbf9;
}

.account-security-form label {
  display: grid;
  gap: 5px;
  color: #40564a;
  font-size: 14px;
}

.account-security-form input,
.account-security-form select {
  min-height: 38px;
  padding: 7px 10px;
  border: 1px solid #c5d5cb;
  border-radius: 6px;
  background: #ffffff;
  color: #17231d;
}

.account-security-form button {
  justify-self: start;
}

.account-provider-list {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}

.account-security-ops {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid #d7e4dc;
}

.account-security-ops-grid {
  margin-top: 10px;
}

@media (max-width: 720px) {
  .account-session-shell {
    width: min(100% - 20px, 1120px);
    padding-top: 10px;
  }

  .account-session-header {
    grid-template-columns: 1fr auto;
  }

  .account-session-header .back-home {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .account-session-metrics,
  .account-session-list {
    grid-template-columns: 1fr;
  }
}

button {
  font: inherit;
}

.portal-page {
  min-height: 100vh;
  padding: 28px;
  display: grid;
  grid-template-rows: auto auto auto 1fr;
  gap: 24px;
}

.portal-header,
.portal-view-context,
.portal-intro,
.department-grid {
  width: min(1320px, 100%);
  margin: 0 auto;
}

.portal-view-context {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 16px;
  color: #edf3ff;
  border: 1px solid rgba(139, 156, 255, 0.34);
  border-radius: 8px;
  background: rgba(9, 14, 34, 0.76);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.portal-view-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.portal-view-copy strong,
.portal-view-copy small {
  overflow-wrap: anywhere;
}

.portal-view-copy small {
  color: #b9c7ee;
}

.portal-view-toggle {
  flex: 0 0 auto;
  min-height: 38px;
  padding: 8px 12px;
  color: #f7fbff;
  border: 1px solid rgba(80, 238, 143, 0.5);
  border-radius: 8px;
  background: rgba(28, 92, 70, 0.72);
  cursor: pointer;
  font: inherit;
  font-weight: 800;
}

.portal-view-toggle:hover {
  border-color: rgba(80, 238, 143, 0.86);
  background: rgba(34, 116, 85, 0.86);
}

.portal-header {
  min-height: 72px;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  padding: 16px 18px;
  border-radius: 8px;
  color: white;
  background: linear-gradient(135deg, #1e2946 0%, #243a4b 58%, #173426 100%);
  box-shadow: 0 18px 50px rgba(32, 38, 58, 0.16);
}

.portal-brand {
  margin-bottom: 0;
}

.portal-status {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 0 14px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(168, 255, 0, 0.2);
}

.auth-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}

.preview-link {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  padding: 8px 12px;
  color: #edfdf7;
  text-decoration: none;
  background: linear-gradient(135deg, rgba(48, 232, 135, 0.22), rgba(56, 216, 255, 0.14));
  border: 1px solid rgba(168, 255, 0, 0.25);
  font-weight: 800;
}

.auth-actions button,
.icon-button {
  min-height: 38px;
  border: 0;
  border-radius: 8px;
  padding: 8px 12px;
  color: #173426;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
  cursor: pointer;
  font-weight: 800;
}

.icon-button {
  min-width: 38px;
  font-size: 20px;
  line-height: 1;
}

.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 20;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(16, 25, 42, 0.42);
}

.auth-modal {
  width: min(860px, 100%);
  max-height: calc(100vh - 40px);
  overflow: auto;
  display: grid;
  gap: 14px;
  padding: 20px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 28px 80px rgba(16, 25, 42, 0.28);
}

.auth-grid,
.check-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.auth-grid label,
.auth-section {
  display: grid;
  gap: 8px;
  color: var(--ink);
  font-weight: 800;
}

.auth-grid input,
.auth-grid textarea,
.auth-grid select {
  width: 100%;
  border: 1px solid rgba(220, 231, 242, 0.95);
  border-radius: 8px;
  padding: 10px 12px;
  color: var(--ink);
  font: inherit;
  font-weight: 400;
  background: white;
}

.auth-grid textarea {
  resize: vertical;
}

.auth-grid select {
  min-height: 42px;
}

.check-option {
  min-height: 42px;
  display: flex;
  gap: 8px;
  align-items: center;
  padding: 8px 10px;
  border: 1px solid rgba(220, 231, 242, 0.9);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.78);
  font-weight: 700;
}

.modal-actions {
  justify-content: flex-end;
}

.auth-result {
  min-height: 72px;
}

.portal-intro {
  padding: 16px 4px 2px;
}

.portal-intro h1 {
  font-size: 34px;
  margin-bottom: 10px;
}

.portal-intro p:not(.eyebrow) {
  max-width: 760px;
  color: #536275;
  line-height: 1.8;
}

.department-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  align-content: start;
}

.department-card {
  position: relative;
  min-height: 178px;
  border: 0;
  border-radius: 8px;
  padding: 20px;
  color: white;
  text-align: left;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  cursor: pointer;
  box-shadow: 0 18px 46px rgba(32, 38, 58, 0.12);
  transition: transform 160ms ease, box-shadow 160ms ease;
  overflow: hidden;
}

.department-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 24px 56px rgba(32, 38, 58, 0.18);
}

.department-card::after {
  content: ">";
  position: absolute;
  right: 18px;
  bottom: 14px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: rgba(23, 52, 38, 0.82);
  background: rgba(255, 255, 255, 0.78);
  font-size: 28px;
  line-height: 1;
  transition: transform 160ms ease, background 160ms ease;
}

.department-card:hover::after {
  transform: translateX(2px);
  background: rgba(255, 255, 255, 0.94);
}

.department-card span,
.department-card small {
  color: rgba(255, 255, 255, 0.84);
}

.department-card strong {
  display: block;
  font-size: 24px;
  margin: 14px 0 10px;
}

.department-card small {
  padding-right: 30px;
  line-height: 1.65;
}

.department-card b {
  width: fit-content;
  margin-top: 14px;
  border-radius: 999px;
  padding: 6px 10px;
  color: #173426;
  background: rgba(255, 255, 255, 0.78);
  font-size: 12px;
}

@keyframes departmentNoticeShake {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  18% {
    transform: translate3d(-2px, 0, 0) rotate(-0.4deg);
  }
  36% {
    transform: translate3d(2px, 0, 0) rotate(0.4deg);
  }
  54% {
    transform: translate3d(-1px, 0, 0) rotate(-0.25deg);
  }
  72% {
    transform: translate3d(1px, 0, 0) rotate(0.25deg);
  }
}

@keyframes departmentNoticePulse {
  0%,
  100% {
    box-shadow: 0 18px 46px rgba(32, 38, 58, 0.12), 0 0 0 rgba(156, 255, 49, 0);
  }
  50% {
    box-shadow: 0 22px 56px rgba(32, 38, 58, 0.2), 0 0 0 5px rgba(156, 255, 49, 0.18);
  }
}

.department-card.has-new-notice {
  animation: departmentNoticeShake 900ms ease-in-out infinite, departmentNoticePulse 1.8s ease-in-out infinite;
}

.notice-badge {
  position: absolute;
  z-index: 2;
  top: 12px;
  right: 12px;
  min-width: 28px;
  height: 28px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  padding: 0 8px;
  color: #122033;
  background: linear-gradient(135deg, #9cff31, #3ceea4);
  box-shadow: 0 0 22px rgba(80, 238, 143, 0.5);
  font-size: 13px;
  font-style: normal;
  font-weight: 900;
}

.department-green {
  background: linear-gradient(135deg, #8ce900 0%, #20d87b 56%, #21d5a3 100%);
}

.department-blue {
  background: linear-gradient(135deg, #3478ff 0%, #27c7e9 100%);
}

.department-cyan {
  background: linear-gradient(135deg, #22c9e8 0%, #26d9a2 100%);
}

.department-purple {
  background: linear-gradient(135deg, #7166ff 0%, #a16dff 100%);
}

.department-orange {
  background: linear-gradient(135deg, #ffbd4a 0%, #ff8a3d 100%);
}

.department-red {
  background: linear-gradient(135deg, #ff5a50 0%, #ff7c97 100%);
}

.app-shell {
  display: grid;
  grid-template-columns: 248px minmax(0, 1fr);
  min-height: 100vh;
  padding: 20px;
  gap: 20px;
}

.sidebar {
  color: white;
  border-radius: 8px;
  padding: 20px;
  background: linear-gradient(180deg, #1e2946 0%, #243a4b 56%, #173426 100%);
  box-shadow: 0 18px 50px rgba(32, 38, 58, 0.18);
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 40px);
}

.brand {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 28px;
}

.brand-mark {
  width: 42px;
  height: 42px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  font-weight: 800;
  color: #1d2d24;
  background: linear-gradient(135deg, #a8ff00, #44f08d);
  box-shadow: 0 12px 24px rgba(126, 230, 0, 0.28);
}

.brand span,
.sidebar-note span {
  display: block;
  opacity: 0.78;
  font-size: 12px;
  margin-top: 3px;
}

.brand .brand-slogan {
  opacity: 1;
  color: #bfffd9;
  font-size: 13px;
  font-weight: 900;
  line-height: 1.45;
}

.topbar-slogan {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.45;
}

nav {
  display: grid;
  gap: 8px;
}

nav button {
  height: 42px;
  text-align: left;
  color: white;
  border: 0;
  border-radius: 8px;
  padding: 0 14px;
  background: transparent;
  cursor: pointer;
}

nav button.active,
nav button:hover {
  color: #173426;
  background: linear-gradient(135deg, #a8ff00, #5df09a);
  box-shadow: 0 10px 26px rgba(126, 230, 0, 0.22);
}

.sidebar-note {
  margin-top: auto;
  padding: 14px;
  border-radius: 8px;
  background: rgba(126, 230, 0, 0.16);
  border: 1px solid rgba(168, 255, 0, 0.22);
  line-height: 1.65;
}

.workspace {
  min-width: 0;
}

.topbar,
.hero-grid,
.content-grid {
  max-width: 1360px;
}

.topbar {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr) 360px 132px;
  gap: 16px;
  align-items: center;
  margin-bottom: 20px;
}

.eyebrow {
  margin: 0 0 6px;
  color: #1fbf62;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1 {
  margin-bottom: 0;
  font-size: 30px;
}

h2 {
  margin-bottom: 0;
  font-size: 20px;
}

h3 {
  font-size: 17px;
}

.search,
.operator {
  height: 46px;
  border: 1px solid rgba(220, 231, 242, 0.95);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.82);
  display: flex;
  align-items: center;
  padding: 0 16px;
  color: var(--muted);
}

.operator {
  justify-content: center;
  gap: 9px;
  color: var(--ink);
}

.back-home {
  height: 46px;
  border: 0;
  border-radius: 8px;
  color: #173426;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
  cursor: pointer;
  font-weight: 800;
  box-shadow: 0 10px 24px rgba(126, 230, 0, 0.2);
}

.status-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 6px rgba(126, 230, 0, 0.16);
}

.hero-grid {
  display: grid;
  grid-template-columns: 1.4fr repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 16px;
}

.teacher-card,
.metric-card,
.panel {
  border: 1px solid rgba(220, 231, 242, 0.9);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: 0 16px 48px rgba(32, 38, 58, 0.08);
}

.teacher-card {
  padding: 22px;
  min-height: 164px;
  color: white;
  background: linear-gradient(135deg, #8ce900 0%, #21d584 52%, #20c7df 100%);
  border-color: rgba(126, 230, 0, 0.3);
  box-shadow: 0 18px 48px rgba(33, 213, 132, 0.22);
}

.teacher-card p,
.teacher-card span {
  color: rgba(255, 255, 255, 0.78);
}

.metric-card span,
.metric-card small {
  color: rgba(255, 255, 255, 0.82);
}

.avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: white;
  font-weight: 800;
  color: #173426;
  background: rgba(255, 255, 255, 0.86);
  margin-bottom: 14px;
}

.metric-card {
  min-height: 164px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  color: white;
  border: 0;
  overflow: hidden;
}

.metric-card strong {
  color: white;
  font-size: 40px;
  line-height: 1;
}

.metric-card.department-priority-card,
.metric-card.teacher-priority-card {
  gap: 16px;
  align-items: flex-start;
  justify-content: flex-start;
}

.metric-card.department-priority-card span,
.metric-card.teacher-priority-card span {
  font-weight: 800;
}

.metric-card.department-priority-card strong,
.metric-card.teacher-priority-card strong {
  margin-top: auto;
  overflow-wrap: anywhere;
  font-size: 24px;
  line-height: 1.2;
}

.metric-card.department-priority-card small,
.metric-card.teacher-priority-card small {
  overflow-wrap: anywhere;
  line-height: 1.45;
}

.metric-card:nth-child(2) {
  background: linear-gradient(135deg, #91ed00 0%, #36d66d 100%);
  box-shadow: 0 16px 40px rgba(54, 214, 109, 0.22);
}

.metric-card:nth-child(3) {
  background: linear-gradient(135deg, #3186ff 0%, #4cc7ff 100%);
  box-shadow: 0 16px 40px rgba(49, 134, 255, 0.2);
}

.metric-card:nth-child(4) {
  background: linear-gradient(135deg, #22c9e8 0%, #26d9a2 100%);
  box-shadow: 0 16px 40px rgba(34, 201, 232, 0.2);
}

.metric-card:nth-child(5) {
  background: linear-gradient(135deg, #7166ff 0%, #a16dff 100%);
  box-shadow: 0 16px 40px rgba(113, 102, 255, 0.2);
}

.content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(320px, 0.9fr);
  gap: 16px;
  margin-bottom: 16px;
}

.content-grid.personal-workspace-grid {
  grid-template-columns: minmax(0, 1fr);
}

.personal-workspace-mode .teacher-personal-page {
  max-width: 1180px;
}

.lower {
  align-items: start;
}

.panel {
  padding: 20px;
  min-width: 0;
}

.panel-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  margin-bottom: 16px;
}

.panel-head button,
#run-demo {
  border: 0;
  border-radius: 8px;
  padding: 10px 14px;
  color: white;
  color: #173426;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(126, 230, 0, 0.22);
}

.workflow-list,
.module-list,
.inventory-list,
.subject-list,
.platform-list,
.data-foundation,
.audit-list,
.department-task-list,
.department-ai-list {
  display: grid;
  gap: 10px;
}

.department-scope-section {
  display: grid;
  gap: 12px;
}

.department-owned-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.workflow-row,
.module-row,
.inventory-row,
.subject-row,
.platform-row,
.data-row,
.audit-row,
.department-task,
.ai-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(220, 231, 242, 0.86);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 10px 28px rgba(32, 38, 58, 0.05);
}

.workflow-row:nth-child(6n + 1),
.platform-row:nth-child(6n + 1),
.data-row:nth-child(6n + 1) {
  background: linear-gradient(135deg, rgba(52, 120, 255, 0.13), rgba(255, 255, 255, 0.88));
}

.workflow-row:nth-child(6n + 2),
.platform-row:nth-child(6n + 2),
.data-row:nth-child(6n + 2) {
  background: linear-gradient(135deg, rgba(39, 199, 233, 0.16), rgba(255, 255, 255, 0.88));
}

.workflow-row:nth-child(6n + 3),
.platform-row:nth-child(6n + 3),
.module-row:nth-child(3n + 1) {
  background: linear-gradient(135deg, rgba(126, 230, 0, 0.18), rgba(255, 255, 255, 0.9));
}

.workflow-row:nth-child(6n + 4),
.platform-row:nth-child(6n + 4),
.module-row:nth-child(3n + 2) {
  background: linear-gradient(135deg, rgba(113, 102, 255, 0.14), rgba(255, 255, 255, 0.9));
}

.workflow-row:nth-child(6n + 5),
.platform-row:nth-child(6n + 5),
.subject-row:nth-child(3n + 1) {
  background: linear-gradient(135deg, rgba(255, 189, 74, 0.2), rgba(255, 255, 255, 0.9));
}

.workflow-row:nth-child(6n),
.platform-row:nth-child(6n),
.inventory-row:nth-child(3n + 1) {
  background: linear-gradient(135deg, rgba(255, 90, 80, 0.13), rgba(255, 255, 255, 0.9));
}

.workflow-row {
  grid-template-columns: 1fr;
}

.platform-row {
  grid-template-columns: 1fr;
}

.audit-row,
.data-row,
.department-task,
.ai-row {
  grid-template-columns: 1fr;
}

.department-task:nth-child(3n + 1),
.ai-row:nth-child(3n + 1) {
  background: linear-gradient(135deg, rgba(52, 120, 255, 0.13), rgba(255, 255, 255, 0.88));
}

.department-task:nth-child(3n + 2),
.ai-row:nth-child(3n + 2) {
  background: linear-gradient(135deg, rgba(126, 230, 0, 0.17), rgba(255, 255, 255, 0.9));
}

.department-task:nth-child(3n),
.ai-row:nth-child(3n) {
  background: linear-gradient(135deg, rgba(255, 189, 74, 0.18), rgba(255, 255, 255, 0.9));
}

.department-task small {
  color: var(--muted);
}

.department-portal-panel,
.department-detail-page {
  color: #eef4ff;
  border-color: rgba(139, 156, 255, 0.34);
  background:
    linear-gradient(145deg, rgba(20, 27, 61, 0.9), rgba(10, 15, 37, 0.86)),
    linear-gradient(120deg, rgba(80, 238, 143, 0.08), rgba(45, 214, 255, 0.05));
}

.department-entry-card {
  width: 100%;
  min-height: 132px;
  color: #eef4ff;
  text-align: left;
  cursor: pointer;
  border-color: rgba(139, 156, 255, 0.3);
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.78), rgba(11, 16, 39, 0.72));
}

.department-entry-card:nth-child(4n + 1) {
  background: linear-gradient(135deg, rgba(67, 106, 255, 0.34), rgba(14, 20, 48, 0.78));
}

.department-entry-card:nth-child(4n + 2) {
  background: linear-gradient(135deg, rgba(80, 238, 143, 0.28), rgba(14, 20, 48, 0.78));
}

.department-entry-card:nth-child(4n + 3) {
  background: linear-gradient(135deg, rgba(45, 214, 255, 0.28), rgba(14, 20, 48, 0.78));
}

.department-entry-card:nth-child(4n) {
  background: linear-gradient(135deg, rgba(133, 91, 255, 0.34), rgba(14, 20, 48, 0.78));
}

.department-entry-card.featured {
  border-color: rgba(80, 238, 143, 0.4);
}

.department-core-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.department-core-grid .department-entry-card {
  min-height: 154px;
  align-content: start;
}

.department-entry-card.core-priority {
  border-color: rgba(168, 255, 0, 0.58);
  box-shadow: inset 0 3px 0 rgba(168, 255, 0, 0.52);
}

.department-entry-card strong,
.department-entry-card small {
  overflow-wrap: anywhere;
}

.department-entry-card em {
  align-self: end;
  color: rgba(223, 235, 255, 0.78);
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
}

.department-support-panel {
  border-color: rgba(139, 156, 255, 0.24);
}

.department-support-panel > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  list-style: none;
}

.department-support-panel > summary::-webkit-details-marker {
  display: none;
}

.department-support-panel > summary span {
  display: grid;
  gap: 3px;
}

.department-support-panel > summary small {
  color: #aeb9dd;
  font-size: 12px;
  font-weight: 800;
}

.department-support-panel > summary strong {
  color: #eef4ff;
}

.department-support-panel > summary b {
  color: #173426;
  border-radius: 999px;
  padding: 5px 9px;
  background: #a8ff00;
}

.department-support-panel[open] > summary {
  margin-bottom: 12px;
}

.department-support-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.department-entry-card.support-entry {
  min-height: 118px;
  background: rgba(17, 24, 56, 0.7);
  border-color: rgba(139, 156, 255, 0.22);
}

.business-page-path {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0 0 12px;
  color: #dbe7ff;
}

.business-page-path span,
.business-page-path b,
.business-page-path strong {
  padding: 5px 8px;
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 6px;
  background: rgba(17, 24, 56, 0.72);
}

.business-page-path b::before {
  content: "→ ";
  color: #a8ff00;
}

.business-page-path strong::before {
  content: "→ ";
  color: #50ee8f;
}

.department-entry-card small,
.department-detail-page .summary-card small,
.department-detail-page .department-task small {
  color: #dbe7ff;
}

.department-entry-card span,
.department-detail-page .summary-card span,
.department-detail-page .department-task span {
  color: #fff7df;
  font-size: 13px;
  font-weight: 800;
}

.department-detail-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.department-detail-page .summary-card,
.department-detail-page .department-task,
.department-detail-page .ai-row {
  color: #eef4ff;
  border-color: rgba(139, 156, 255, 0.28);
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.74), rgba(11, 16, 39, 0.7));
}

.department-detail-page > .special-head button,
.department-workflow-form button,
.department-workflow-card button {
  min-height: 36px;
  border: 0;
  border-radius: 8px;
  padding: 8px 12px;
  color: #173426;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
  font-weight: 900;
  cursor: pointer;
}

.department-workflow-form {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  padding: 14px;
  border: 1px solid rgba(139, 156, 255, 0.26);
  border-radius: 8px;
  background: rgba(12, 18, 42, 0.42);
}

.department-workflow-form label {
  display: grid;
  gap: 7px;
  color: #eef4ff;
  font-weight: 800;
}

.department-workflow-form label.wide,
.department-workflow-form .workflow-template-block,
.department-workflow-form .workflow-sensitive-option,
.department-workflow-form .today-classroom-actions {
  grid-column: 1 / -1;
}

.workflow-template-block {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px dashed rgba(80, 238, 143, 0.34);
  border-radius: 8px;
  background: rgba(13, 38, 32, 0.32);
}

.workflow-template-block strong {
  color: #fff7df;
}

.workflow-template-block small {
  color: #dbe7ff;
  line-height: 1.7;
}

.department-template-checklist {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.department-workflow-form input,
.department-workflow-form select,
.department-workflow-form textarea,
.department-workflow-card textarea {
  width: 100%;
  border: 1px solid rgba(139, 156, 255, 0.26);
  border-radius: 8px;
  padding: 10px 12px;
  color: #eef4ff;
  background: rgba(8, 13, 31, 0.82);
  font: inherit;
}

.department-workflow-form textarea,
.department-workflow-card textarea {
  resize: vertical;
}

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

.department-workflow-card {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 8px;
  color: #eef4ff;
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.74), rgba(11, 16, 39, 0.7));
}

.workflow-meta-grid,
.workflow-extra-grid,
.department-flow-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.workflow-meta-grid span,
.workflow-extra-grid span,
.flow-step {
  display: grid;
  gap: 3px;
  min-height: 54px;
  padding: 9px;
  border: 1px solid rgba(139, 156, 255, 0.24);
  border-radius: 8px;
  background: rgba(8, 13, 31, 0.56);
}

.workflow-extra-grid span {
  border-color: rgba(80, 238, 143, 0.24);
}

.workflow-extra-grid b {
  color: #fff7df;
}

.permission-notice {
  border-color: rgba(139, 156, 255, 0.28);
  color: #dbe7ff;
  background: linear-gradient(135deg, rgba(22, 30, 68, 0.88), rgba(12, 18, 42, 0.86));
}

.permission-notice.can-operate {
  border-color: rgba(80, 238, 143, 0.38);
  color: #e9fff2;
  background:
    linear-gradient(90deg, rgba(80, 238, 143, 0.26) 0 5px, transparent 5px),
    linear-gradient(135deg, rgba(22, 50, 50, 0.88), rgba(12, 18, 42, 0.86));
}

.permission-notice.readonly {
  border-color: rgba(255, 189, 74, 0.32);
  color: #fff1d2;
  background:
    linear-gradient(90deg, rgba(255, 189, 74, 0.22) 0 5px, transparent 5px),
    linear-gradient(135deg, rgba(48, 38, 28, 0.86), rgba(12, 18, 42, 0.86));
}

.permission-audit-panel {
  gap: 14px;
}

.permission-audit-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.department-material-workspace {
  display: grid;
  gap: 14px;
  margin-top: 14px;
  padding: 16px;
  border: 1px solid rgba(80, 238, 143, 0.3);
  border-radius: 8px;
  color: #eef8f2;
  background: linear-gradient(150deg, rgba(14, 39, 34, 0.92), rgba(12, 18, 32, 0.94));
}

.department-material-workspace > .special-head p {
  margin: 4px 0 0;
  color: #cfe4d8;
  line-height: 1.6;
}

.department-material-workspace button {
  min-height: 36px;
  border: 1px solid rgba(80, 238, 143, 0.34);
  border-radius: 8px;
  padding: 8px 12px;
  color: #eafff1;
  background: rgba(18, 52, 42, 0.9);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.department-material-workspace button:hover:not(:disabled),
.department-material-workspace button.active {
  color: #173426;
  background: #a8ff00;
}

.department-material-workspace button:disabled {
  cursor: not-allowed;
  opacity: 0.48;
}

.department-material-modes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.department-material-mode {
  display: grid;
  gap: 3px;
  min-height: 66px;
  text-align: left;
}

.department-material-mode small {
  color: inherit;
  font-size: 12px;
  font-weight: 500;
  opacity: 0.82;
}

.department-material-match {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 10px;
}

.department-material-match > div,
.department-material-result,
.department-material-history > article {
  border: 1px solid rgba(207, 228, 216, 0.2);
  border-radius: 8px;
  background: rgba(7, 20, 18, 0.5);
}

.department-material-match > div {
  display: grid;
  align-content: start;
  gap: 7px;
  padding: 12px;
}

.department-material-match span,
.department-material-result span,
.department-material-history span,
.department-material-artifact span {
  color: #b9d4c5;
  font-size: 12px;
}

.department-material-match p {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
}

.department-material-match p b {
  padding: 5px 7px;
  border: 1px solid rgba(80, 238, 143, 0.26);
  border-radius: 6px;
  color: #eafff1;
  background: rgba(80, 238, 143, 0.08);
  font-size: 12px;
}

.department-material-match .department-material-required {
  grid-column: 1 / -1;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.department-material-required span {
  display: grid;
  grid-template-columns: 24px 1fr;
  align-items: center;
  gap: 7px;
  color: #eafff1;
}

.department-material-required b {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 50%;
  color: #173426;
  background: #a8ff00;
}

.department-material-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  padding: 14px;
  border: 1px solid rgba(207, 228, 216, 0.2);
  border-radius: 8px;
  background: rgba(7, 20, 18, 0.42);
}

.department-material-form label {
  display: grid;
  gap: 6px;
  color: #dcece3;
  font-weight: 700;
}

.department-material-form label.wide,
.department-material-sensitive,
.department-material-generate-actions {
  grid-column: 1 / -1;
}

.department-material-form input,
.department-material-form select,
.department-material-form textarea {
  width: 100%;
  border: 1px solid rgba(207, 228, 216, 0.24);
  border-radius: 8px;
  padding: 10px 12px;
  color: #f3fff8;
  background: rgba(7, 14, 18, 0.84);
  font: inherit;
}

.department-material-form textarea {
  resize: vertical;
}

.department-material-form .department-material-sensitive {
  display: flex;
  grid-template-columns: none;
  align-items: center;
}

.department-material-sensitive input {
  width: 18px;
  height: 18px;
}

.department-material-generate-actions,
.department-material-result-head,
.department-material-artifact,
.department-material-history > article {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.department-material-generate-actions small,
.department-material-result small,
.department-material-history small,
.department-material-artifact small {
  color: #b9d4c5;
}

.department-material-result {
  display: grid;
  gap: 10px;
  padding: 14px;
}

.department-material-result-head > div,
.department-material-artifact > div,
.department-material-history article > div {
  display: grid;
  gap: 4px;
}

.department-material-artifacts,
.department-material-history {
  display: grid;
  gap: 8px;
}

.department-material-artifact {
  flex-wrap: wrap;
  min-height: 62px;
  padding: 9px 10px;
  border-top: 1px solid rgba(207, 228, 216, 0.16);
}

.department-material-row-actions {
  display: flex;
  gap: 6px;
}

.department-material-row-actions button {
  min-height: 32px;
  padding: 6px 10px;
}

.department-material-editor {
  display: grid;
  flex: 0 0 100%;
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(168, 255, 0, 0.24);
  border-radius: 8px;
  background: rgba(8, 21, 18, 0.76);
}

.department-material-editor label,
.department-material-review-actions label {
  display: grid;
  gap: 6px;
  color: #dcece3;
  font-weight: 700;
}

.department-material-editor input,
.department-material-editor textarea,
.department-material-review-actions textarea {
  width: 100%;
  border: 1px solid rgba(207, 228, 216, 0.24);
  border-radius: 8px;
  padding: 10px 12px;
  color: #f3fff8;
  background: rgba(7, 14, 18, 0.84);
  font: inherit;
}

.department-material-editor textarea,
.department-material-review-actions textarea {
  resize: vertical;
}

.department-material-review-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 10px;
  padding-top: 12px;
  border-top: 1px solid rgba(207, 228, 216, 0.18);
}

.department-material-review-actions > div {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.department-material-review-history {
  display: grid;
  gap: 7px;
  padding-top: 12px;
  border-top: 1px solid rgba(207, 228, 216, 0.18);
}

.department-material-review-history > span {
  display: grid;
  grid-template-columns: minmax(180px, 0.8fr) minmax(180px, 0.7fr) minmax(240px, 1.5fr);
  gap: 8px;
  padding: 8px 10px;
  border-radius: 6px;
  background: rgba(7, 20, 18, 0.46);
}

.department-material-workflow-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-left: 3px solid #a8ff00;
  background: rgba(168, 255, 0, 0.07);
}

.department-material-history > article {
  padding: 12px;
}

.department-material-empty {
  padding: 16px;
  border: 1px dashed rgba(207, 228, 216, 0.24);
  border-radius: 8px;
  color: #cfe4d8;
  text-align: center;
}

.department-material-error {
  border-color: rgba(255, 185, 92, 0.45);
  color: #fff1d2;
  background: rgba(82, 49, 22, 0.46);
}

@media (max-width: 900px) {
  .department-material-modes,
  .department-material-match,
  .department-material-form {
    grid-template-columns: 1fr;
  }

  .department-material-match .department-material-required,
  .department-material-form label.wide,
  .department-material-sensitive,
  .department-material-generate-actions {
    grid-column: auto;
  }

  .department-material-match .department-material-required {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .department-material-match .department-material-required {
    grid-template-columns: 1fr;
  }

  .department-material-generate-actions,
  .department-material-result-head,
  .department-material-artifact,
  .department-material-history > article {
    align-items: stretch;
    flex-direction: column;
  }

  .department-material-review-actions,
  .department-material-review-history > span {
    grid-template-columns: 1fr;
  }

  .department-material-row-actions {
    width: 100%;
  }

  .department-material-row-actions button {
    flex: 1;
  }
}

.permission-audit-filters {
  display: grid;
  gap: 8px;
}

.audit-filter-group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  padding: 8px;
  border: 1px solid rgba(139, 156, 255, 0.24);
  border-radius: 8px;
  background: rgba(12, 18, 42, 0.54);
}

.audit-filter-group span {
  color: #dbe7ff;
  font-size: 12px;
  font-weight: 800;
}

.audit-filter-group button {
  min-height: 28px;
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 8px;
  padding: 4px 9px;
  color: #eaf2ff;
  background: rgba(24, 31, 70, 0.78);
  font-weight: 800;
  cursor: pointer;
}

.audit-filter-group button.active {
  color: #07120c;
  border-color: rgba(92, 255, 168, 0.72);
  background: linear-gradient(135deg, #b8ffd0, #41e997);
}

.audit-column {
  display: grid;
  align-content: start;
  gap: 8px;
  min-width: 0;
}

.audit-column h4 {
  margin: 0;
  color: #f8fbff;
  font-size: 15px;
}

.permission-audit-row {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
}

.audit-row-actions {
  display: grid;
  justify-items: end;
  gap: 6px;
}

.audit-row-actions button {
  min-height: 30px;
  border: 0;
  border-radius: 8px;
  padding: 6px 10px;
  color: #07120c;
  background: linear-gradient(135deg, #8cffb3, #32e68a);
  font-weight: 800;
  cursor: pointer;
}

.audit-row-actions .remediation-pill {
  color: #eafff3;
  border-color: rgba(80, 238, 143, 0.42);
  background: rgba(31, 126, 84, 0.34);
}

.permission-remediation-queue {
  gap: 12px;
}

.remediation-queue-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.remediation-queue-filters button {
  display: grid;
  gap: 2px;
  min-width: 92px;
  min-height: 54px;
  border: 1px solid rgba(139, 156, 255, 0.3);
  border-radius: 8px;
  padding: 8px 10px;
  color: #eef4ff;
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.78), rgba(11, 16, 39, 0.72));
  cursor: pointer;
}

.remediation-queue-filters button.active {
  color: #07120c;
  border-color: rgba(92, 255, 168, 0.72);
  background: linear-gradient(135deg, #b8ffd0, #41e997);
}

.remediation-queue-filters b {
  font-size: 18px;
}

.remediation-queue-filters small {
  font-weight: 800;
}

.remediation-queue-list {
  display: grid;
  gap: 8px;
}

.remediation-queue-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  color: #eef4ff;
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 8px;
  padding: 10px;
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.78), rgba(11, 16, 39, 0.72));
}

.remediation-queue-row > button {
  display: grid;
  gap: 4px;
  min-width: 0;
  border: 0;
  padding: 0;
  color: inherit;
  text-align: left;
  background: transparent;
  cursor: pointer;
}

.remediation-queue-row span {
  width: max-content;
  border-radius: 999px;
  padding: 3px 8px;
  color: #eafff3;
  background: rgba(31, 126, 84, 0.34);
  font-size: 12px;
  font-weight: 800;
}

.remediation-queue-row strong,
.remediation-queue-row small {
  overflow-wrap: anywhere;
}

.remediation-stage-board span {
  min-height: 72px;
}

.remediation-history-section {
  margin-top: 12px;
}

.remediation-history-list {
  display: grid;
  gap: 8px;
}

.remediation-history-row {
  display: grid;
  gap: 4px;
  color: #eef4ff;
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 8px;
  padding: 10px;
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.78), rgba(11, 16, 39, 0.72));
}

.remediation-history-row span {
  width: max-content;
  border-radius: 999px;
  padding: 3px 8px;
  color: #07120c;
  background: linear-gradient(135deg, #b8ffd0, #41e997);
  font-size: 12px;
  font-weight: 800;
}

.remediation-history-row strong,
.remediation-history-row small {
  overflow-wrap: anywhere;
}

.portal-config-tabs {
  margin: 14px 0;
}

.portal-config-item.is-disabled {
  opacity: 0.72;
  border-style: dashed;
}

.portal-config-inline-form {
  margin-top: 10px;
  grid-template-columns: minmax(120px, 220px);
}

.portal-config-revision {
  grid-template-columns: 64px minmax(180px, 1fr) minmax(220px, 1.5fr) auto;
}

@media (max-width: 760px) {
  .portal-config-revision {
    grid-template-columns: 1fr;
  }
}

.permission-audit-row div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.permission-audit-row strong,
.permission-audit-row small {
  overflow-wrap: anywhere;
}

.workflow-inbox-panel {
  order: -1;
}

.workflow-inbox-stats,
.workflow-inbox-list {
  display: grid;
  gap: 8px;
}

.workflow-inbox-stats {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.workflow-inbox-stats span,
.workflow-inbox-row {
  min-width: 0;
  border: 1px solid rgba(139, 156, 255, 0.24);
  border-radius: 8px;
  padding: 10px;
  color: #eef4ff;
  background: rgba(8, 13, 31, 0.56);
}

.workflow-inbox-stats span {
  display: grid;
  gap: 4px;
}

.workflow-inbox-stats b {
  color: #a8ff00;
  font-size: 20px;
}

.workflow-inbox-stats small,
.workflow-inbox-row small {
  color: #dbe7ff;
}

.workflow-inbox-row {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 8px 12px;
  text-align: left;
  cursor: pointer;
  font: inherit;
}

.workflow-inbox-row span {
  grid-row: span 2;
  align-self: center;
  color: #173426;
  border-radius: 999px;
  padding: 6px 9px;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
  font-weight: 900;
  text-align: center;
}

.workflow-inbox-row strong,
.workflow-inbox-row small {
  overflow-wrap: anywhere;
}

.flow-step.done {
  border-color: rgba(80, 238, 143, 0.34);
}

.flow-step.current {
  border-color: rgba(168, 255, 0, 0.55);
  box-shadow: 0 0 22px rgba(80, 238, 143, 0.18);
}

.flow-step small,
.workflow-extra-grid small,
.workflow-meta-grid span {
  color: #dbe7ff;
}

.special-panel {
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid rgba(220, 231, 242, 0.9);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(238, 255, 246, 0.76));
  box-shadow: 0 12px 32px rgba(32, 38, 58, 0.06);
}

.special-panel.department-portal-panel,
.special-panel.department-detail-page {
  color: #eef4ff;
  border-color: rgba(139, 156, 255, 0.34);
  background:
    linear-gradient(145deg, rgba(20, 27, 61, 0.9), rgba(10, 15, 37, 0.86)),
    linear-gradient(120deg, rgba(80, 238, 143, 0.08), rgba(45, 214, 255, 0.05));
}

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

.special-head h3 {
  margin-bottom: 0;
}

.control-actions,
.special-actions,
.subject-editor,
.registration-form {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.control-actions button,
.special-actions button,
.subject-editor button,
.subject-card button,
.registration-form button {
  min-height: 34px;
  border: 0;
  border-radius: 8px;
  padding: 7px 10px;
  color: #173426;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
  cursor: pointer;
  font-weight: 800;
}

.subject-editor input,
.registration-form input {
  min-height: 34px;
  width: 190px;
  border: 1px solid rgba(220, 231, 242, 0.95);
  border-radius: 8px;
  padding: 0 10px;
  color: var(--ink);
  background: white;
}

.timetable-form {
  justify-content: flex-start;
}

.timetable-textarea {
  width: 100%;
  min-height: 132px;
  border: 1px solid rgba(220, 231, 242, 0.95);
  border-radius: 8px;
  padding: 12px;
  color: var(--ink);
  font: inherit;
  line-height: 1.7;
  resize: vertical;
  background: white;
}

.role-grid,
.subject-card-grid,
.grade-card-grid,
.class-team-grid,
.teacher-person-grid,
.staff-card-grid,
.student-card-grid,
.summary-grid,
.archive-field-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.role-card,
.subject-card,
.grade-card,
.class-team-card,
.teacher-person-card,
.staff-card,
.student-card,
.summary-card,
.archive-field-card,
.registration-row,
.empty-card {
  min-height: 126px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  justify-content: space-between;
  padding: 14px;
  border-radius: 8px;
  border: 1px solid rgba(220, 231, 242, 0.88);
  background: rgba(255, 255, 255, 0.84);
}

.grade-card,
.class-team-card,
.staff-card,
.subject-card,
.teacher-person-card,
.student-card {
  text-align: left;
  cursor: pointer;
}

.grade-card.active,
.class-team-card.active,
.staff-card.active,
.subject-card.active,
.teacher-person-card.active,
.student-card.active {
  color: white;
  border-color: transparent;
  background: linear-gradient(135deg, #3478ff 0%, #27c7e9 100%);
  box-shadow: 0 14px 34px rgba(52, 120, 255, 0.16);
}

.grade-card.active small,
.grade-card.active span,
.class-team-card.active small,
.class-team-card.active span,
.staff-card.active small,
.staff-card.active span,
.subject-card.active small,
.teacher-person-card.active small,
.teacher-person-card.active span,
.student-card.active small,
.student-card.active span {
  color: rgba(255, 255, 255, 0.86);
}

.grade-card strong {
  font-size: 34px;
  line-height: 1;
}

.class-team-card strong {
  font-size: 17px;
}

.grade-drill-hint {
  padding: 10px 12px;
  border: 1px solid rgba(80, 238, 143, 0.24);
  border-left: 4px solid #50ee8f;
  border-radius: 8px;
  color: #dbe7ff;
  background: rgba(12, 18, 42, 0.58);
}

.grade-drill-subhead {
  margin-top: 6px;
}

.workbench-section,
.nested-workbench,
.student-workbench {
  display: grid;
  gap: 12px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px dashed rgba(114, 128, 149, 0.28);
}

.student-workbench {
  padding: 14px;
  border: 1px solid rgba(220, 231, 242, 0.9);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(240, 248, 255, 0.82));
}

.evaluation-form {
  display: grid;
  grid-template-columns: 120px 90px minmax(160px, 1fr) minmax(220px, 1.5fr) auto;
  gap: 8px;
  align-items: center;
}

.evaluation-form input,
.evaluation-form select {
  min-height: 36px;
  width: 100%;
  border: 1px solid rgba(220, 231, 242, 0.95);
  border-radius: 8px;
  padding: 0 10px;
  color: var(--ink);
  background: white;
  font: inherit;
}

.evaluation-form button {
  min-height: 36px;
  border: 0;
  border-radius: 8px;
  padding: 7px 12px;
  color: #173426;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
  cursor: pointer;
  font-weight: 800;
}

.special-head > button,
.summary-card button,
.registration-row button {
  min-height: 34px;
  border: 0;
  border-radius: 8px;
  padding: 7px 10px;
  color: #173426;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
  cursor: pointer;
  font-weight: 800;
}

.summary-card button,
.registration-row button {
  width: 100%;
}

.signature-input {
  width: 100%;
  min-height: 34px;
  border: 1px dashed rgba(31, 191, 98, 0.42);
  border-radius: 8px;
  padding: 7px 10px;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.82);
}

.signature-preview {
  width: 100%;
  max-height: 96px;
  object-fit: contain;
  border: 1px solid rgba(220, 231, 242, 0.95);
  border-radius: 8px;
  background: white;
}

.mark-manager {
  padding: 14px;
  border: 1px solid rgba(31, 191, 98, 0.2);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(238, 255, 246, 0.68));
}

.mark-flow,
.mark-editor-grid {
  display: grid;
  gap: 10px;
}

.mark-flow {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.mark-flow span {
  min-height: 44px;
  display: grid;
  align-items: center;
  padding: 8px 10px;
  border-radius: 8px;
  color: #173426;
  background: rgba(168, 255, 0, 0.16);
  font-weight: 800;
}

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

.mark-editor,
.mark-asset-card {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid rgba(220, 231, 242, 0.9);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.86);
}

.mark-editor button {
  min-height: 34px;
  border: 0;
  border-radius: 8px;
  padding: 7px 10px;
  color: #173426;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
  cursor: pointer;
  font-weight: 800;
}

.mark-placeholder {
  min-height: 72px;
  display: grid;
  place-items: center;
  border: 1px dashed rgba(31, 191, 98, 0.38);
  border-radius: 8px;
  color: var(--green-deep);
  font-weight: 900;
  background: rgba(238, 255, 246, 0.72);
}

.immutable-mark {
  position: relative;
  padding: 8px;
  border: 2px solid rgba(255, 90, 80, 0.42);
  border-radius: 8px;
  background: rgba(255, 247, 223, 0.82);
}

.immutable-mark span {
  position: absolute;
  right: 8px;
  bottom: 8px;
  padding: 3px 6px;
  border-radius: 6px;
  color: white;
  background: rgba(255, 90, 80, 0.9);
  font-size: 12px;
  font-weight: 900;
}

.summary-card {
  min-height: 104px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(238, 255, 246, 0.76));
}

.summary-card strong {
  font-size: 28px;
}

.archive-field-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.archive-field-card {
  min-height: 118px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(242, 247, 255, 0.86));
}

.archive-field-card small {
  color: #536275;
  line-height: 1.65;
}

.archive-demo {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(39, 199, 150, 0.2);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(239, 255, 246, 0.82)),
    radial-gradient(circle at 100% 0%, rgba(52, 120, 255, 0.12), transparent 34%);
}

.archive-role-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.archive-role-card {
  min-height: 112px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 8px;
  padding: 12px;
  border: 1px solid rgba(220, 231, 242, 0.88);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(242, 247, 255, 0.86));
}

.archive-role-card:nth-child(2) {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(255, 247, 223, 0.88));
}

.archive-role-card:nth-child(3) {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(231, 250, 255, 0.88));
}

.archive-role-card:nth-child(4) {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(241, 238, 255, 0.88));
}

.archive-role-card:nth-child(5) {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(238, 255, 246, 0.88));
}

.archive-role-card span {
  color: var(--green-deep);
  font-size: 12px;
  font-weight: 900;
}

.archive-role-card strong {
  font-size: 18px;
}

.archive-role-card small {
  color: #536275;
  line-height: 1.55;
}

.archive-table-wrap {
  width: 100%;
  overflow-x: auto;
  border: 1px solid rgba(220, 231, 242, 0.92);
  border-radius: 8px;
  background: white;
}

.archive-table-wrap td small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  line-height: 1.45;
}

.archive-demo-table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
  color: var(--ink);
  font-size: 14px;
}

.archive-demo-table.wide-table {
  min-width: 980px;
}

.archive-demo-table caption {
  padding: 12px 14px;
  color: #173426;
  text-align: left;
  font-weight: 900;
  background: linear-gradient(135deg, rgba(168, 255, 0, 0.18), rgba(80, 238, 143, 0.12));
}

.archive-demo-table th,
.archive-demo-table td {
  padding: 11px 12px;
  border-top: 1px solid rgba(220, 231, 242, 0.85);
  text-align: left;
  vertical-align: top;
  line-height: 1.55;
}

.archive-demo-table thead th {
  color: #173426;
  background: rgba(238, 255, 246, 0.82);
  font-weight: 900;
}

.archive-demo-table tbody th {
  width: 140px;
  color: #1b4332;
  background: rgba(248, 252, 249, 0.9);
}

.archive-demo-table tbody tr:nth-child(even) td,
.archive-demo-table tbody tr:nth-child(even) th {
  background: rgba(248, 251, 255, 0.72);
}

.reserved-cell {
  color: #66758a;
  background: rgba(255, 247, 223, 0.58);
  font-weight: 800;
}

.status-chip {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 8px;
  border-radius: 999px;
  color: #173426;
  background: linear-gradient(135deg, rgba(168, 255, 0, 0.42), rgba(80, 238, 143, 0.32));
  font-size: 12px;
  font-weight: 900;
}

.extension-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.extension-strip span {
  padding: 7px 10px;
  border: 1px dashed rgba(52, 120, 255, 0.28);
  border-radius: 8px;
  color: #245177;
  background: rgba(242, 247, 255, 0.88);
  font-size: 12px;
  font-weight: 900;
}

.status-archive {
  border-color: rgba(52, 120, 255, 0.18);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(242, 247, 255, 0.86)),
    radial-gradient(circle at 100% 0%, rgba(168, 255, 0, 0.14), transparent 34%);
}

.status-flow {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}

.status-flow span {
  min-height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(220, 231, 242, 0.88);
  border-radius: 8px;
  color: #536275;
  background: rgba(255, 255, 255, 0.8);
  font-size: 12px;
  font-weight: 900;
  text-align: center;
}

.status-flow span.active {
  color: #173426;
  border-color: rgba(126, 230, 0, 0.42);
  background: linear-gradient(135deg, rgba(168, 255, 0, 0.34), rgba(80, 238, 143, 0.2));
}

.archive-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.archive-actions button {
  min-height: 34px;
  border: 0;
  border-radius: 8px;
  padding: 7px 10px;
  color: #173426;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
  cursor: pointer;
  font-weight: 800;
}

.archive-actions .danger-action {
  color: white;
  background: linear-gradient(135deg, #ff5a50, #ff8a3d);
}

.compact-row {
  min-height: 76px;
}

.primary-role {
  color: white;
  border: 0;
  background: linear-gradient(135deg, #3478ff 0%, #27c7e9 100%);
  box-shadow: 0 14px 34px rgba(52, 120, 255, 0.16);
}

.role-card span {
  color: var(--green-deep);
  font-size: 12px;
  font-weight: 900;
}

.primary-role span,
.primary-role small {
  color: rgba(255, 255, 255, 0.84);
}

.role-card small,
.subject-card small,
.grade-card small,
.class-team-card small,
.teacher-person-card small,
.registration-row small,
.empty-card {
  color: var(--muted);
  line-height: 1.55;
}

.teacher-person-card span {
  width: fit-content;
  border-radius: 999px;
  padding: 5px 9px;
  color: #173426;
  background: rgba(126, 230, 0, 0.18);
  font-size: 12px;
  font-weight: 900;
}

.staff-card span {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #173426;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
  font-weight: 900;
}

.registration-panel {
  display: grid;
  gap: 10px;
  padding: 14px;
  border-radius: 8px;
  border: 1px solid rgba(220, 231, 242, 0.88);
  background: linear-gradient(135deg, rgba(52, 120, 255, 0.09), rgba(255, 255, 255, 0.9));
}

.registration-list {
  display: grid;
  gap: 8px;
}

.registration-row {
  min-height: auto;
  gap: 4px;
  padding: 10px 12px;
}

.today-classroom-panel {
  display: grid;
  gap: 12px;
  margin: 12px 0;
  padding: 14px;
  border: 1px solid rgba(220, 231, 242, 0.88);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(52, 120, 255, 0.1), rgba(255, 255, 255, 0.92)),
    radial-gradient(circle at 100% 0%, rgba(126, 230, 0, 0.16), transparent 34%);
}

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

.today-classroom-form label {
  display: grid;
  gap: 6px;
  color: #29443b;
  font-size: 13px;
  font-weight: 900;
}

.today-classroom-form label:first-child,
.today-classroom-form label:last-of-type,
.today-classroom-form button {
  grid-column: 1 / -1;
}

.today-classroom-form input,
.today-classroom-form textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid rgba(202, 218, 231, 0.9);
  border-radius: 8px;
  padding: 10px 11px;
  color: #173426;
  background: rgba(255, 255, 255, 0.92);
  font: inherit;
  font-weight: 500;
  line-height: 1.5;
  resize: vertical;
}

.today-classroom-form button {
  min-height: 40px;
  border: 0;
  border-radius: 8px;
  padding: 10px 14px;
  color: #173426;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
  cursor: pointer;
  font-weight: 900;
}

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

.today-classroom-brief {
  display: grid;
  grid-template-columns: minmax(180px, 0.42fr) minmax(0, 1fr);
  gap: 12px;
  padding: 12px;
  border: 1px solid rgba(220, 231, 242, 0.88);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.82);
}

.today-classroom-brief span {
  width: fit-content;
  border-radius: 999px;
  padding: 5px 8px;
  color: #173426;
  background: rgba(126, 230, 0, 0.18);
  font-size: 12px;
  font-weight: 900;
}

.today-classroom-brief strong,
.today-classroom-brief small {
  display: block;
  margin-top: 5px;
}

.today-classroom-brief small {
  color: var(--muted);
  line-height: 1.5;
}

.today-classroom-brief dl {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 6px 8px;
  margin: 0;
}

.today-classroom-brief dt {
  color: #1d5b3a;
  font-weight: 900;
}

.today-classroom-brief dd {
  min-width: 0;
  margin: 0;
  color: #3c4d47;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.today-classroom-brief dd ul {
  display: grid;
  gap: 4px;
  margin: 0;
  padding-left: 18px;
}

.today-classroom-brief dd li {
  padding-left: 2px;
}

.today-classroom-toolbar,
.today-classroom-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.today-classroom-actions {
  grid-column: 1 / -1;
  justify-content: flex-end;
  padding-top: 4px;
  border-top: 1px solid rgba(220, 231, 242, 0.74);
}

.today-classroom-toolbar button,
.today-classroom-actions button,
.inline-action {
  min-height: 36px;
  border: 0;
  border-radius: 8px;
  padding: 8px 12px;
  color: #173426;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 900;
  text-decoration: none;
}

.inline-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(52, 120, 255, 0.15), rgba(80, 238, 143, 0.22));
  border: 1px solid rgba(172, 211, 226, 0.72);
}

.empty-card {
  justify-content: center;
  min-height: 100px;
}

.subject-card:nth-child(6n + 1) {
  background: linear-gradient(135deg, rgba(52, 120, 255, 0.13), rgba(255, 255, 255, 0.9));
}

.subject-card:nth-child(6n + 2) {
  background: linear-gradient(135deg, rgba(39, 199, 233, 0.15), rgba(255, 255, 255, 0.9));
}

.subject-card:nth-child(6n + 3) {
  background: linear-gradient(135deg, rgba(126, 230, 0, 0.16), rgba(255, 255, 255, 0.9));
}

.subject-card:nth-child(6n + 4) {
  background: linear-gradient(135deg, rgba(113, 102, 255, 0.13), rgba(255, 255, 255, 0.9));
}

.subject-card:nth-child(6n + 5) {
  background: linear-gradient(135deg, rgba(255, 189, 74, 0.18), rgba(255, 255, 255, 0.9));
}

.subject-card:nth-child(6n) {
  background: linear-gradient(135deg, rgba(255, 90, 80, 0.12), rgba(255, 255, 255, 0.9));
}

.ai-row {
  grid-template-columns: auto 1fr;
  align-items: center;
}

.ai-row span {
  width: 38px;
  height: 38px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  color: #173426;
  font-weight: 900;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
}

.workflow-row ul {
  margin: 10px 0 0;
  padding-left: 18px;
  color: #3f514c;
  line-height: 1.8;
}

.platform-row ul,
.role-card ul,
.phone-card ul {
  margin: 10px 0 0;
  padding-left: 18px;
  line-height: 1.8;
}

.module-row small,
.inventory-row small,
.subject-row small,
.workflow-row small,
.platform-row small,
.data-row small,
.audit-row small {
  color: var(--muted);
}

.platform-meta {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}

.family-school-delivery-summary {
  display: grid;
  gap: 4px;
  margin-top: 12px;
  padding: 10px 12px;
  border-left: 4px solid #16a873;
  background: rgba(232, 249, 241, 0.72);
}

.family-school-delivery-summary .platform-meta {
  margin-top: 4px;
}

.family-school-provider-card {
  margin-top: 12px;
}

.family-provider-list {
  display: grid;
  gap: 8px;
  margin: 10px 0;
}

.family-provider-list > span {
  display: grid;
  grid-template-columns: minmax(112px, auto) minmax(0, 1fr);
  gap: 10px;
  align-items: center;
}

.family-provider-list small {
  overflow-wrap: anywhere;
}

.contract-box {
  line-height: 1.75;
}

.notice {
  margin-top: 10px;
  padding: 10px 12px;
  border-left: 4px solid #8ce900;
  background: linear-gradient(135deg, rgba(255, 247, 223, 0.9), rgba(237, 255, 220, 0.86));
  color: #52621c;
}

.pill {
  align-self: center;
  border-radius: 999px;
  padding: 6px 10px;
  color: #173426;
  background: rgba(126, 230, 0, 0.18);
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.parent-phone {
  min-height: 320px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: linear-gradient(145deg, #e7efff 0%, #f2eaff 42%, #e9fff4 100%);
}

.phone-card {
  width: min(280px, 92%);
  padding: 22px;
  border-radius: 8px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.88), rgba(238, 255, 246, 0.88));
  box-shadow: 0 14px 42px rgba(64, 115, 255, 0.16);
  text-align: center;
}

.child-avatar {
  width: 70px;
  height: 70px;
  margin: 0 auto 14px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: white;
  font-weight: 800;
  background: linear-gradient(135deg, #7166ff, #22c9e8);
}

.phone-card p {
  color: #6e6081;
  line-height: 1.65;
}

.phone-card button {
  border: 0;
  color: white;
  border-radius: 8px;
  padding: 12px 22px;
  background: linear-gradient(135deg, #7166ff, #22c9e8);
  box-shadow: 0 10px 20px rgba(34, 201, 232, 0.22);
}

.playground {
  display: grid;
  gap: 12px;
}

.demo-buttons {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.demo-buttons button {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 8px 12px;
  background: white;
  cursor: pointer;
}

.demo-buttons button.active {
  color: #173426;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
  border-color: #a8ff00;
}

pre {
  overflow: auto;
  min-height: 120px;
  max-height: 280px;
  margin: 0;
  padding: 14px;
  border-radius: 8px;
  background: #16231f;
  color: #d6f8e8;
  font-size: 13px;
  line-height: 1.55;
}

@media (max-width: 1080px) {
  .portal-page {
    padding: 12px;
  }

  .portal-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .portal-view-context {
    align-items: stretch;
    flex-direction: column;
  }

  .portal-view-toggle {
    width: 100%;
  }

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

  .auth-grid,
  .check-grid {
    grid-template-columns: 1fr;
  }

  .special-head,
  .control-actions,
  .subject-editor,
  .registration-form,
  .auth-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .subject-editor input {
    width: 100%;
  }

  .role-grid,
  .subject-card-grid,
  .grade-card-grid,
  .class-team-grid,
  .teacher-person-grid,
  .staff-card-grid,
  .student-card-grid,
  .summary-grid,
  .archive-field-grid,
  .archive-role-grid,
  .status-flow,
  .mark-flow,
  .mark-editor-grid,
  .evaluation-form,
  .today-classroom-form,
  .today-classroom-brief {
    grid-template-columns: 1fr;
  }

  .app-shell {
    grid-template-columns: 1fr;
    padding: 12px;
  }

  .sidebar {
    min-height: auto;
  }

  .topbar,
  .hero-grid,
  .content-grid {
    grid-template-columns: 1fr;
  }
}

/* Obsidian-inspired neon dashboard theme */
:root {
  --green: #74f45d;
  --green-deep: #35d66d;
  --green-ink: #c9ffd6;
  --ink: #f2f6ff;
  --muted: #a7b3d6;
  --panel: rgba(18, 24, 52, 0.78);
  --line: rgba(139, 156, 255, 0.32);
  --bg: #070b18;
  --blue: #5178ff;
  --cyan: #35d9ff;
  --purple: #8b5cff;
  --orange: #ffb34d;
  --coral: #ff667e;
  --teal: #35f0c0;
  --warning: rgba(255, 178, 77, 0.16);
}

body {
  color: var(--ink);
  background:
    linear-gradient(115deg, rgba(30, 42, 104, 0.46) 0%, rgba(7, 11, 24, 0) 42%),
    linear-gradient(245deg, rgba(91, 62, 255, 0.24) 0%, rgba(7, 11, 24, 0) 38%),
    repeating-linear-gradient(90deg, rgba(130, 151, 255, 0.055) 0 1px, transparent 1px 84px),
    repeating-linear-gradient(0deg, rgba(130, 151, 255, 0.04) 0 1px, transparent 1px 84px),
    #070b18;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background:
    linear-gradient(135deg, transparent 0 68%, rgba(79, 122, 255, 0.16) 68% 69%, transparent 69% 100%),
    linear-gradient(35deg, transparent 0 72%, rgba(96, 246, 206, 0.12) 72% 73%, transparent 73% 100%);
  opacity: 0.85;
}

.portal-page {
  position: relative;
  padding: 24px;
  gap: 18px;
}

.portal-header {
  border: 1px solid rgba(153, 168, 255, 0.32);
  color: #f8fbff;
  background:
    linear-gradient(135deg, rgba(16, 22, 52, 0.92), rgba(20, 28, 72, 0.72)),
    linear-gradient(90deg, rgba(102, 72, 255, 0.24), rgba(38, 215, 255, 0.08));
  box-shadow: 0 0 0 1px rgba(108, 88, 255, 0.12), 0 24px 70px rgba(0, 0, 0, 0.42);
  backdrop-filter: blur(18px);
}

.brand-mark {
  color: #f9fbff;
  background: linear-gradient(145deg, #7e5cff 0%, #4c8cff 52%, #42f0c4 100%);
  box-shadow: 0 0 18px rgba(106, 93, 255, 0.72), 0 0 34px rgba(50, 217, 255, 0.28);
}

.portal-brand strong,
.brand strong {
  color: #ffffff;
}

.portal-status,
.sidebar-note {
  color: #dce5ff;
  border-color: rgba(123, 137, 255, 0.36);
  background: rgba(12, 18, 44, 0.64);
  box-shadow: inset 0 0 22px rgba(92, 73, 255, 0.12);
}

.status-dot {
  background: #74f45d;
  box-shadow: 0 0 0 5px rgba(116, 244, 93, 0.14), 0 0 22px rgba(116, 244, 93, 0.72);
}

.auth-actions button,
.icon-button,
.back-home,
.panel-head button,
#run-demo,
.control-actions button,
.subject-editor button,
.subject-card button,
.registration-form button,
.special-head > button,
.summary-card button,
.registration-row button,
.phone-card button {
  color: #ffffff;
  border: 1px solid rgba(151, 162, 255, 0.34);
  background: linear-gradient(135deg, #6f4dff 0%, #3c6fff 52%, #28d5ff 100%);
  box-shadow: 0 0 18px rgba(83, 98, 255, 0.3), 0 10px 28px rgba(0, 0, 0, 0.28);
}

.auth-actions button:hover,
.icon-button:hover,
.back-home:hover,
.panel-head button:hover,
#run-demo:hover,
.demo-buttons button:hover {
  transform: translateY(-1px);
  box-shadow: 0 0 22px rgba(119, 93, 255, 0.55), 0 14px 34px rgba(0, 0, 0, 0.34);
}

.portal-intro {
  position: relative;
  min-height: 245px;
  padding: 28px 34px 30px 184px;
  overflow: hidden;
  border: 1px solid rgba(136, 151, 255, 0.42);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(43, 31, 108, 0.86), rgba(20, 29, 72, 0.72) 50%, rgba(7, 12, 31, 0.9)),
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.05) 0 1px, transparent 1px 60px);
  box-shadow: 0 0 0 1px rgba(117, 98, 255, 0.24), 0 28px 78px rgba(0, 0, 0, 0.46);
}

.portal-intro::before {
  content: "";
  position: absolute;
  left: 42px;
  top: 50%;
  width: 88px;
  height: 112px;
  transform: translateY(-50%) rotate(8deg);
  clip-path: polygon(50% 0, 88% 24%, 72% 100%, 24% 100%, 8% 24%);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.95) 0 8%, transparent 8%),
    linear-gradient(135deg, #bb8cff 0%, #7f5cff 38%, #4f7fff 68%, #38f2d2 100%);
  box-shadow: 0 0 24px rgba(151, 95, 255, 0.86), 0 0 54px rgba(48, 207, 255, 0.38);
}

.portal-intro::after {
  content: "";
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: 24px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(126, 99, 255, 0.82), rgba(53, 217, 255, 0.62), transparent);
}

.eyebrow {
  color: #8c77ff;
  text-shadow: 0 0 18px rgba(119, 93, 255, 0.52);
}

.portal-intro h1 {
  max-width: 980px;
  margin-bottom: 8px;
  color: #ffffff;
  font-size: 56px;
  line-height: 1.08;
  font-weight: 900;
  text-shadow: 0 0 22px rgba(107, 80, 255, 0.62), 0 6px 0 rgba(45, 72, 210, 0.32);
}

.portal-intro p:not(.eyebrow) {
  max-width: 860px;
  color: #c8d4ff;
  line-height: 1.75;
}

.portal-intro .eyebrow {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  padding: 0 12px;
  border-radius: 8px;
  color: #dcd8ff;
  background: rgba(8, 12, 32, 0.6);
  border: 1px solid rgba(139, 113, 255, 0.42);
}

.department-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  align-content: start;
  align-items: stretch;
}


.department-card {
  min-height: 172px;
  border: 1px solid rgba(147, 163, 255, 0.34);
  color: #f7fbff;
  background:
    linear-gradient(145deg, rgba(20, 27, 60, 0.58), rgba(9, 14, 34, 0.48)),
    linear-gradient(135deg, rgba(122, 95, 255, 0.22), rgba(40, 216, 255, 0.08));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 22px 60px rgba(0, 0, 0, 0.36);
  backdrop-filter: blur(8px) saturate(125%);
  -webkit-backdrop-filter: blur(8px) saturate(125%);
}

.department-card::before {
  position: absolute;
  inset: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.24);
  background: linear-gradient(120deg, rgba(255, 255, 255, 0.12), transparent 36%);
  pointer-events: none;
}

.department-card::after {
  content: ">";
  color: #ffffff;
  background: linear-gradient(135deg, rgba(126, 92, 255, 0.92), rgba(45, 198, 255, 0.92));
  box-shadow: 0 0 18px rgba(91, 111, 255, 0.5);
}

.department-card:hover {
  transform: translateY(-4px);
  border-color: rgba(125, 104, 255, 0.76);
  box-shadow: 0 0 30px rgba(99, 87, 255, 0.34), 0 26px 70px rgba(0, 0, 0, 0.44);
}

.department-card strong {
  color: #ffffff;
  text-shadow: 0 0 18px rgba(112, 91, 255, 0.48);
}

.department-card b,
.pill {
  color: #eaf0ff;
  border: 1px solid rgba(139, 156, 255, 0.28);
  background: rgba(9, 14, 34, 0.48);
}

.department-green,
.metric-card:nth-child(2) {
  background: linear-gradient(135deg, rgba(41, 226, 142, 0.54), rgba(41, 222, 185, 0.24) 45%, rgba(18, 24, 52, 0.46));
}

.department-blue,
.metric-card:nth-child(3) {
  background: linear-gradient(135deg, rgba(57, 111, 255, 0.54), rgba(49, 217, 255, 0.24) 48%, rgba(17, 25, 58, 0.46));
}

.department-cyan,
.metric-card:nth-child(4) {
  background: linear-gradient(135deg, rgba(35, 211, 242, 0.5), rgba(48, 237, 194, 0.24) 50%, rgba(17, 25, 58, 0.46));
}

.department-purple,
.metric-card:nth-child(5) {
  background: linear-gradient(135deg, rgba(132, 88, 255, 0.56), rgba(84, 115, 255, 0.26) 50%, rgba(17, 25, 58, 0.46));
}

.department-orange {
  background: linear-gradient(135deg, rgba(255, 166, 67, 0.54), rgba(130, 87, 255, 0.22) 52%, rgba(17, 25, 58, 0.46));
}

.department-red {
  background: linear-gradient(135deg, rgba(255, 92, 126, 0.52), rgba(111, 77, 255, 0.24) 52%, rgba(17, 25, 58, 0.46));
}

.app-shell {
  background:
    linear-gradient(115deg, rgba(22, 32, 88, 0.42), transparent 44%),
    repeating-linear-gradient(90deg, rgba(130, 151, 255, 0.045) 0 1px, transparent 1px 88px),
    #070b18;
}

.sidebar {
  border: 1px solid rgba(146, 160, 255, 0.32);
  background: linear-gradient(180deg, rgba(14, 21, 50, 0.95), rgba(12, 18, 42, 0.9));
  box-shadow: 0 0 0 1px rgba(100, 78, 255, 0.14), 0 28px 72px rgba(0, 0, 0, 0.42);
}

nav button {
  position: relative;
  color: #cbd6ff;
}

nav button.active,
nav button:hover {
  color: #ffffff;
  background: linear-gradient(135deg, rgba(111, 77, 255, 0.95), rgba(51, 112, 255, 0.88));
  box-shadow: 0 0 20px rgba(105, 86, 255, 0.36);
}

nav button.has-new-notice::after {
  content: attr(data-notice-count);
  position: absolute;
  right: 8px;
  top: 7px;
  min-width: 20px;
  height: 20px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  padding: 0 6px;
  color: #122033;
  background: linear-gradient(135deg, #9cff31, #3ceea4);
  font-size: 11px;
  font-weight: 900;
}

nav button.has-new-notice {
  animation: departmentNoticeShake 1.2s ease-in-out infinite;
}

.topbar h1,
h1,
h2,
h3 {
  color: #f9fbff;
}

.search,
.operator,
.auth-grid input,
.auth-grid textarea,
.auth-grid select,
.subject-editor input,
.registration-form input {
  color: #eef4ff;
  border-color: rgba(139, 156, 255, 0.3);
  background: rgba(12, 18, 42, 0.72);
}

.search,
.operator {
  color: #aeb9dd;
}

.auth-modal,
.panel,
.metric-card,
.special-panel,
.student-workbench,
.registration-panel,
.today-classroom-panel,
.phone-card {
  color: #eef4ff;
  border: 1px solid rgba(139, 156, 255, 0.34);
  background:
    linear-gradient(145deg, rgba(20, 27, 61, 0.88), rgba(10, 15, 37, 0.84)),
    linear-gradient(120deg, rgba(111, 77, 255, 0.12), rgba(45, 214, 255, 0.05));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.055), 0 20px 60px rgba(0, 0, 0, 0.32);
  backdrop-filter: blur(16px);
}

.workflow-row,
.module-row,
.inventory-row,
.subject-row,
.platform-row,
.data-row,
.audit-row,
.department-task,
.ai-row,
.role-card,
.subject-card,
.grade-card,
.class-team-card,
.teacher-person-card,
.staff-card,
.student-card,
.summary-card,
.archive-field-card,
.registration-row,
.empty-card,
.today-classroom-brief,
.check-option,
.mark-editor,
.status-node,
.flow-step {
  color: #eef4ff;
  border-color: rgba(139, 156, 255, 0.28);
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.78), rgba(11, 16, 39, 0.72));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045);
}

.workflow-row:nth-child(6n + 1),
.platform-row:nth-child(6n + 1),
.data-row:nth-child(6n + 1),
.subject-card:nth-child(6n + 1) {
  background: linear-gradient(135deg, rgba(67, 106, 255, 0.34), rgba(14, 20, 48, 0.78));
}

.workflow-row:nth-child(6n + 2),
.platform-row:nth-child(6n + 2),
.data-row:nth-child(6n + 2),
.subject-card:nth-child(6n + 2) {
  background: linear-gradient(135deg, rgba(38, 211, 255, 0.28), rgba(14, 20, 48, 0.78));
}

.workflow-row:nth-child(6n + 3),
.platform-row:nth-child(6n + 3),
.module-row:nth-child(3n + 1),
.subject-card:nth-child(6n + 3) {
  background: linear-gradient(135deg, rgba(78, 228, 130, 0.28), rgba(14, 20, 48, 0.78));
}

.workflow-row:nth-child(6n + 4),
.platform-row:nth-child(6n + 4),
.module-row:nth-child(3n + 2),
.subject-card:nth-child(6n + 4) {
  background: linear-gradient(135deg, rgba(133, 91, 255, 0.34), rgba(14, 20, 48, 0.78));
}

.workflow-row:nth-child(6n + 5),
.platform-row:nth-child(6n + 5),
.subject-row:nth-child(3n + 1),
.subject-card:nth-child(6n + 5) {
  background: linear-gradient(135deg, rgba(255, 176, 71, 0.28), rgba(14, 20, 48, 0.78));
}

.workflow-row:nth-child(6n),
.platform-row:nth-child(6n),
.inventory-row:nth-child(3n + 1),
.subject-card:nth-child(6n) {
  background: linear-gradient(135deg, rgba(255, 94, 126, 0.26), rgba(14, 20, 48, 0.78));
}

.department-task:nth-child(3n + 1),
.ai-row:nth-child(3n + 1),
.subject-row:nth-child(3n + 1) {
  border-color: rgba(86, 151, 255, 0.34);
  background:
    linear-gradient(90deg, rgba(67, 106, 255, 0.28) 0 5px, transparent 5px),
    linear-gradient(145deg, rgba(24, 31, 70, 0.88), rgba(10, 15, 37, 0.82));
}

.department-task:nth-child(3n + 2),
.ai-row:nth-child(3n + 2),
.subject-row:nth-child(3n + 2) {
  border-color: rgba(80, 238, 143, 0.34);
  background:
    linear-gradient(90deg, rgba(80, 238, 143, 0.28) 0 5px, transparent 5px),
    linear-gradient(145deg, rgba(22, 38, 54, 0.9), rgba(10, 15, 37, 0.82));
}

.department-task:nth-child(3n),
.ai-row:nth-child(3n),
.subject-row:nth-child(3n) {
  border-color: rgba(133, 91, 255, 0.34);
  background:
    linear-gradient(90deg, rgba(133, 91, 255, 0.3) 0 5px, transparent 5px),
    linear-gradient(145deg, rgba(24, 31, 70, 0.88), rgba(10, 15, 37, 0.82));
}

.department-task strong,
.ai-row strong,
.subject-row strong,
.empty-card strong {
  color: #f8fbff;
}

.department-task em {
  width: fit-content;
  max-width: 100%;
  padding: 3px 8px;
  border: 1px solid rgba(123, 232, 167, 0.34);
  border-radius: 999px;
  color: #dfffee;
  background: rgba(34, 97, 67, 0.28);
  font-size: 12px;
  font-style: normal;
  line-height: 1.45;
}

.grade-card.active,
.class-team-card.active,
.staff-card.active,
.subject-card.active,
.teacher-person-card.active,
.student-card.active {
  color: #ffffff;
  border-color: rgba(100, 223, 255, 0.58);
  background: linear-gradient(135deg, #6f4dff, #336fff 54%, #25d3ff);
  box-shadow: 0 0 28px rgba(88, 105, 255, 0.46);
}

.module-row small,
.inventory-row small,
.subject-row small,
.workflow-row small,
.platform-row small,
.data-row small,
.audit-row small,
.department-task small,
.ai-row small,
.role-card small,
.subject-card small,
.grade-card small,
.class-team-card small,
.teacher-person-card small,
.registration-row small,
.student-card small,
.empty-card,
.department-card span,
.department-card small,
.phone-card p {
  color: #c8d4ff;
}

.workflow-row ul,
.platform-row ul,
.role-card ul,
.phone-card ul,
.workflow-row li,
.platform-row li,
.role-card li,
.phone-card li,
.today-classroom-brief dd li,
.receiver-section li,
.receiver-section p {
  color: #dbe7ff;
}

.workflow-row li::marker,
.platform-row li::marker,
.role-card li::marker,
.phone-card li::marker,
.today-classroom-brief dd li::marker,
.receiver-section li::marker {
  color: #50ee8f;
}

.workflow-row .notice,
.platform-row .notice,
.department-task .notice,
.ai-row .notice,
.role-card .notice,
.phone-card .notice {
  color: #fff7df;
  border-left-color: #8ce900;
  background: linear-gradient(135deg, rgba(113, 102, 255, 0.24), rgba(16, 24, 58, 0.72));
}

.today-classroom-form label {
  color: #dbe7ff;
}

.today-classroom-form input,
.today-classroom-form textarea {
  color: #eef4ff;
  border-color: rgba(139, 156, 255, 0.3);
  background: rgba(12, 18, 42, 0.72);
}

.today-classroom-brief dt {
  color: #8eefff;
}

.today-classroom-brief dd {
  color: #dbe7ff;
}

.role-card span,
.staff-card span {
  color: #8eefff;
}

.leadership-daily-workbench {
  display: grid;
  gap: 14px;
  padding-top: 12px;
  border-top: 1px dashed rgba(139, 156, 255, 0.3);
}

.leadership-source-note {
  max-width: 360px;
  color: #aeb9dd;
  line-height: 1.55;
  text-align: right;
}

.notification-delivery-dashboard {
  display: grid;
  gap: 16px;
}

.notification-ops-head,
.notification-provider-card > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.notification-ops-head h3,
.notification-ops-section h3 {
  margin: 0;
}

.notification-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

#repository-operations-dashboard .summary-card strong {
  font-size: 18px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.repository-binding-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 12px 0 2px;
}

.repository-binding-row > div {
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(8, 13, 32, 0.58);
}

.repository-binding-row strong,
.repository-binding-row small {
  display: block;
}

.repository-binding-row small {
  margin-top: 5px;
  color: var(--muted);
  line-height: 1.45;
}

#repository-operations-dashboard .notification-table-wrap + .notification-table-wrap {
  margin-top: 10px;
}

.notification-provider-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.notification-provider-card {
  min-width: 0;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(10, 16, 39, 0.74);
}

.notification-provider-card.ready {
  border-left: 4px solid #25845f;
}

.notification-provider-card.pending {
  border-left: 4px solid #ffb34d;
}

.notification-provider-card span,
.notification-provider-card small {
  display: block;
  color: var(--muted);
}

.notification-provider-card strong,
.notification-provider-card b {
  color: var(--ink);
}

.notification-provider-card small {
  margin-top: 8px;
  line-height: 1.55;
}

.notification-ops-section {
  min-width: 0;
  padding-top: 4px;
}

.notification-table-wrap {
  width: 100%;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(8, 13, 32, 0.72);
}

.notification-ops-table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
}

.notification-ops-table th,
.notification-ops-table td {
  padding: 9px 10px;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  text-align: left;
  vertical-align: top;
  font-size: 12px;
}

.notification-ops-table th {
  color: #d8ffe7;
  background: rgba(38, 113, 78, 0.48);
}

.notification-status.permanent_failure {
  color: #ffd8db;
  background: rgba(185, 53, 66, 0.44);
}

.notification-status.retry_scheduled,
.notification-status.unconfigured {
  color: #ffe6b7;
  background: rgba(176, 101, 31, 0.42);
}

.notification-status.device_received,
.notification-status.opened,
.notification-status.delivered_to_provider {
  color: #d8ffe7;
  background: rgba(38, 132, 93, 0.42);
}

@media (max-width: 820px) {
  .notification-summary-grid,
  .notification-provider-grid {
    grid-template-columns: 1fr 1fr;
  }

  .notification-ops-head {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 520px) {
  .notification-summary-grid,
  .notification-provider-grid,
  .repository-binding-row {
    grid-template-columns: 1fr;
  }
}

.leadership-directive-desk {
  display: grid;
  gap: 14px;
  padding-top: 12px;
  border-top: 1px dashed rgba(139, 156, 255, 0.3);
}

.directive-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  align-items: start;
}

.directive-column {
  display: grid;
  gap: 10px;
  min-width: 0;
  border: 1px solid rgba(139, 156, 255, 0.24);
  border-radius: 8px;
  padding: 12px;
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.66), rgba(11, 16, 39, 0.62));
}

.directive-column-head,
.directive-card-head {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
}

.directive-column-head strong {
  color: #f8fbff;
}

.directive-column-head span,
.directive-card-head span,
.directive-card-head b {
  border-radius: 999px;
  padding: 5px 8px;
  color: #11223a;
  background: linear-gradient(135deg, #9cff31, #3ceea4);
  font-size: 12px;
  font-weight: 900;
}

.directive-card-head b {
  color: #dce8ff;
  background: rgba(139, 156, 255, 0.18);
}

.directive-form {
  display: grid;
  gap: 8px;
}

.directive-form input,
.directive-form textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid rgba(139, 156, 255, 0.24);
  border-radius: 8px;
  padding: 10px 11px;
  color: #eef5ff;
  background: rgba(8, 13, 32, 0.58);
  font: inherit;
  resize: vertical;
}

.directive-form input::placeholder,
.directive-form textarea::placeholder {
  color: #8f9bc4;
}

.directive-form button {
  min-height: 38px;
  border: 0;
  border-radius: 8px;
  padding: 9px 12px;
  color: #11223a;
  background: linear-gradient(135deg, #9cff31, #3ceea4);
  cursor: pointer;
  font-weight: 900;
}

.directive-check-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.directive-check {
  display: flex;
  gap: 7px;
  align-items: center;
  border-radius: 8px;
  padding: 8px;
  color: #dce8ff;
  background: rgba(139, 156, 255, 0.1);
  font-size: 13px;
  font-weight: 800;
}

.directive-list {
  display: grid;
  gap: 8px;
}

.directive-card {
  display: grid;
  gap: 8px;
  border: 1px solid rgba(139, 156, 255, 0.26);
  border-radius: 8px;
  padding: 11px;
  background: linear-gradient(135deg, rgba(67, 106, 255, 0.18), rgba(14, 20, 48, 0.78));
}

.directive-card.issued {
  background: linear-gradient(135deg, rgba(78, 228, 130, 0.2), rgba(14, 20, 48, 0.78));
}

.department-feedback-desk {
  margin-top: 12px;
}

.directive-card.feedback {
  background: linear-gradient(135deg, rgba(38, 211, 255, 0.2), rgba(14, 20, 48, 0.78));
}

.directive-card strong {
  color: #f8fbff;
  line-height: 1.35;
}

.directive-card small,
.directive-card p {
  margin: 0;
  color: #aeb9dd;
  line-height: 1.55;
}

.directive-card textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid rgba(139, 156, 255, 0.24);
  border-radius: 8px;
  padding: 10px 11px;
  color: #eef5ff;
  background: rgba(8, 13, 32, 0.58);
  font: inherit;
  resize: vertical;
}

.directive-feedback-record {
  gap: 14px;
  border-left: 3px solid #3ceea4;
}

.directive-feedback-record.archived {
  border-left-color: #f6c85f;
  background: linear-gradient(135deg, rgba(78, 228, 130, 0.16), rgba(44, 31, 69, 0.78));
}

.directive-feedback-title-row,
.directive-feedback-section-head {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  justify-content: space-between;
}

.directive-feedback-title-row > div {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.directive-feedback-source,
.directive-feedback-section-head > span {
  flex: 0 0 auto;
  border: 1px solid rgba(246, 200, 95, 0.34);
  border-radius: 999px;
  padding: 4px 8px;
  color: #fff1b7;
  background: rgba(246, 200, 95, 0.12);
  font-size: 12px;
  font-weight: 800;
}

.directive-feedback-status-grid,
.directive-archive-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.directive-feedback-status-grid > span,
.directive-archive-meta > span {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 9px 10px;
  border-top: 2px solid rgba(80, 238, 143, 0.7);
  background: rgba(8, 13, 32, 0.42);
}

.directive-feedback-status-grid > span.process {
  border-top-color: rgba(38, 211, 255, 0.8);
}

.directive-feedback-status-grid > span.archive {
  border-top-color: rgba(246, 200, 95, 0.84);
}

.directive-feedback-status-grid b,
.directive-archive-meta b {
  color: #aeb9dd;
  font-size: 12px;
}

.directive-feedback-status-grid small,
.directive-archive-meta small {
  overflow-wrap: anywhere;
  color: #f8fbff;
  font-weight: 900;
}

.directive-feedback-status-grid em {
  color: #aeb9dd;
  font-size: 12px;
  font-style: normal;
  line-height: 1.45;
}

.directive-feedback-flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.directive-feedback-step {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 9px;
  border: 1px solid rgba(139, 156, 255, 0.2);
  border-radius: 8px;
  color: #aeb9dd;
  background: rgba(8, 13, 32, 0.34);
}

.directive-feedback-step.current {
  border-color: rgba(38, 211, 255, 0.58);
  background: rgba(38, 211, 255, 0.12);
}

.directive-feedback-step.done {
  border-color: rgba(80, 238, 143, 0.46);
  background: rgba(80, 238, 143, 0.1);
}

.directive-feedback-step b {
  color: #f8fbff;
}

.directive-feedback-step small {
  overflow-wrap: anywhere;
  font-size: 12px;
}

.directive-feedback-content-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.directive-feedback-section {
  display: grid;
  gap: 9px;
  min-width: 0;
  padding-top: 12px;
  border-top: 1px solid rgba(139, 156, 255, 0.2);
}

.directive-feedback-section h5 {
  margin: 0;
  color: #f8fbff;
  font-size: 14px;
}

.directive-task-list {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 20px;
  color: #dce8ff;
  line-height: 1.55;
}

.directive-material-list,
.directive-feedback-history-list {
  display: grid;
  gap: 0;
}

.directive-material-list > span,
.directive-feedback-history-list > article {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 8px 0;
  border-bottom: 1px solid rgba(139, 156, 255, 0.14);
}

.directive-material-list > span:last-child,
.directive-feedback-history-list > article:last-child {
  border-bottom: 0;
}

.directive-material-list b,
.directive-feedback-history-list strong {
  color: #dce8ff;
}

.directive-material-list small,
.directive-feedback-history-list small,
.directive-feedback-history-list p,
.directive-feedback-empty {
  overflow-wrap: anywhere;
  color: #aeb9dd;
  line-height: 1.5;
}

.directive-feedback-history-list > article {
  grid-template-columns: minmax(110px, 0.45fr) minmax(150px, 0.8fr) minmax(180px, 1fr);
  column-gap: 10px;
}

.directive-feedback-history-list > article > span {
  color: #80f0d1;
  font-size: 12px;
  font-weight: 900;
}

.directive-feedback-history-list > article > p {
  grid-column: 1 / -1;
}

.directive-archive-section.complete {
  border-top-color: rgba(80, 238, 143, 0.4);
}

.directive-archive-section.pending {
  border-top-color: rgba(246, 200, 95, 0.34);
}

.directive-feedback-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding-top: 12px;
  border-top: 1px dashed rgba(80, 238, 143, 0.34);
}

.directive-feedback-form label {
  display: grid;
  gap: 7px;
  min-width: 0;
  color: #f8fbff;
  font-weight: 800;
}

.directive-feedback-form .today-classroom-actions {
  grid-column: 1 / -1;
}

.directive-feedback-empty {
  margin: 0;
  padding: 8px 0;
}

@media (max-width: 920px) {
  .directive-feedback-flow,
  .directive-feedback-content-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .directive-feedback-status-grid,
  .directive-archive-meta,
  .directive-feedback-form {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .directive-feedback-title-row,
  .directive-feedback-section-head {
    align-items: stretch;
    flex-direction: column;
  }

  .directive-feedback-source,
  .directive-feedback-section-head > span {
    align-self: flex-start;
  }

  .directive-feedback-flow,
  .directive-feedback-content-grid {
    grid-template-columns: 1fr;
  }

  .directive-feedback-history-list > article {
    grid-template-columns: 1fr;
  }

  .directive-feedback-history-list > article > p {
    grid-column: auto;
  }
}

.notification-center {
  border-color: rgba(80, 238, 143, 0.28);
  background:
    radial-gradient(circle at 100% 0%, rgba(80, 238, 143, 0.16), transparent 32%),
    linear-gradient(145deg, rgba(24, 31, 70, 0.7), rgba(11, 16, 39, 0.66));
}

.notification-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(240px, 0.85fr);
  gap: 10px;
  align-items: start;
}

.notification-row,
.mobile-push-row {
  display: grid;
  gap: 6px;
  border: 1px solid rgba(139, 156, 255, 0.24);
  border-radius: 8px;
  padding: 11px;
  background: rgba(8, 13, 32, 0.46);
}

.notification-row {
  grid-template-columns: 74px minmax(0, 1fr);
}

.notification-row.unread {
  border-color: rgba(80, 238, 143, 0.42);
  background: linear-gradient(135deg, rgba(78, 228, 130, 0.16), rgba(8, 13, 32, 0.5));
}

.notification-row span {
  width: fit-content;
  height: fit-content;
  border-radius: 999px;
  padding: 5px 8px;
  color: #122033;
  background: linear-gradient(135deg, #9cff31, #3ceea4);
  font-size: 12px;
  font-weight: 900;
}

.notification-row strong,
.mobile-push-row strong {
  color: #f8fbff;
}

.notification-row small,
.notification-row p,
.mobile-push-row small {
  margin: 0;
  color: #aeb9dd;
  line-height: 1.55;
}

.directive-attachments {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.directive-attachments em {
  border-radius: 999px;
  padding: 5px 8px;
  color: #dff8ff;
  background: rgba(255, 255, 255, 0.1);
  font-size: 12px;
  font-style: normal;
}

.leadership-daily-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(260px, 0.65fr);
  gap: 12px;
  align-items: start;
}

.leadership-schedule-list,
.leadership-ai-list {
  display: grid;
  gap: 8px;
}

.leadership-schedule-row,
.leadership-work-card {
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 8px;
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.78), rgba(11, 16, 39, 0.72));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045);
}

.leadership-schedule-row {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 10px;
  padding: 11px 12px;
}

.leadership-schedule-row span {
  width: fit-content;
  height: fit-content;
  border-radius: 999px;
  padding: 5px 8px;
  color: #11223a;
  background: linear-gradient(135deg, #9cff31, #3ceea4);
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}

.leadership-schedule-row strong,
.leadership-work-card strong {
  display: block;
  color: #f8fbff;
  line-height: 1.35;
}

.leadership-schedule-row small,
.leadership-work-card small {
  display: block;
  margin-top: 4px;
  color: #aeb9dd;
  line-height: 1.55;
}

.leadership-work-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.leadership-work-card {
  min-height: 126px;
  padding: 13px;
}

.leadership-work-card:nth-child(6n + 1) {
  background: linear-gradient(135deg, rgba(67, 106, 255, 0.34), rgba(14, 20, 48, 0.78));
}

.leadership-work-card:nth-child(6n + 2) {
  background: linear-gradient(135deg, rgba(38, 211, 255, 0.28), rgba(14, 20, 48, 0.78));
}

.leadership-work-card:nth-child(6n + 3) {
  background: linear-gradient(135deg, rgba(78, 228, 130, 0.28), rgba(14, 20, 48, 0.78));
}

.leadership-work-card:nth-child(6n + 4) {
  background: linear-gradient(135deg, rgba(133, 91, 255, 0.34), rgba(14, 20, 48, 0.78));
}

.leadership-work-card:nth-child(6n + 5) {
  background: linear-gradient(135deg, rgba(255, 176, 71, 0.28), rgba(14, 20, 48, 0.78));
}

.leadership-work-card:nth-child(6n) {
  background: linear-gradient(135deg, rgba(255, 94, 126, 0.26), rgba(14, 20, 48, 0.78));
}

.daily-progress-panel {
  gap: 14px;
}

.daily-progress-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
}

.daily-progress-card {
  min-height: 168px;
  display: grid;
  align-content: start;
  gap: 10px;
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 8px;
  padding: 14px;
  color: #f7fbff;
  text-decoration: none;
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.82), rgba(11, 16, 39, 0.74));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 16px 44px rgba(0, 0, 0, 0.24);
}

.daily-progress-card span {
  width: fit-content;
  border-radius: 999px;
  padding: 5px 9px;
  color: #122033;
  background: rgba(255, 255, 255, 0.82);
  font-weight: 900;
}

.daily-progress-card strong {
  font-size: 18px;
  line-height: 1.28;
}

.daily-progress-card small {
  color: #c8d4ff;
  line-height: 1.58;
}

.daily-progress-card b {
  width: fit-content;
  margin-top: auto;
  border-radius: 999px;
  padding: 6px 10px;
  color: #effcff;
  background: rgba(255, 255, 255, 0.12);
  font-size: 12px;
}

.daily-green {
  background: linear-gradient(135deg, rgba(78, 228, 130, 0.34), rgba(14, 20, 48, 0.82));
}

.daily-jade {
  background: linear-gradient(135deg, rgba(92, 214, 173, 0.36), rgba(54, 89, 65, 0.24), rgba(14, 20, 48, 0.82));
}

.daily-blue {
  background: linear-gradient(135deg, rgba(67, 106, 255, 0.36), rgba(14, 20, 48, 0.82));
}

.daily-orange {
  background: linear-gradient(135deg, rgba(255, 176, 71, 0.34), rgba(14, 20, 48, 0.82));
}

.daily-purple {
  background: linear-gradient(135deg, rgba(133, 91, 255, 0.36), rgba(14, 20, 48, 0.82));
}

.shuowen-courseware-workbench {
  border-color: rgba(80, 238, 143, 0.22);
  background:
    linear-gradient(135deg, rgba(80, 238, 143, 0.08), rgba(59, 91, 219, 0.07)),
    rgba(10, 16, 34, 0.62);
}

.shuowen-generator-form {
  display: grid;
  grid-template-columns: minmax(180px, 1.1fr) minmax(180px, 1fr) minmax(220px, 1.2fr) auto;
  gap: 10px;
  align-items: stretch;
}

.shuowen-generator-form input {
  min-width: 0;
  border: 1px solid rgba(192, 208, 255, 0.22);
  border-radius: 8px;
  padding: 11px 12px;
  color: #f7fbff;
  background: rgba(6, 12, 28, 0.62);
  outline: none;
}

.shuowen-generator-form input:focus {
  border-color: rgba(80, 238, 143, 0.65);
  box-shadow: 0 0 0 3px rgba(80, 238, 143, 0.12);
}

.shuowen-generator-form button,
.shuowen-draft-actions button {
  border: 1px solid rgba(80, 238, 143, 0.38);
  border-radius: 8px;
  padding: 10px 12px;
  color: #0c1b17;
  background: linear-gradient(135deg, #8df6b1, #3edb82);
  font-weight: 900;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(25, 198, 118, 0.16);
}

.shuowen-flow-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.shuowen-flow-grid span {
  border: 1px solid rgba(139, 156, 255, 0.2);
  border-radius: 8px;
  padding: 10px;
  color: #eaf2ff;
  background: rgba(255, 255, 255, 0.06);
  font-size: 12px;
  font-weight: 800;
}

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

.shuowen-draft-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid rgba(139, 156, 255, 0.22);
  border-radius: 8px;
  padding: 12px;
  background: rgba(255, 255, 255, 0.055);
}

.shuowen-draft-card span {
  display: inline-flex;
  width: fit-content;
  border-radius: 999px;
  margin-bottom: 7px;
  padding: 4px 8px;
  color: #102019;
  background: #ddffe9;
  font-size: 12px;
  font-weight: 900;
}

.shuowen-draft-card strong,
.shuowen-draft-card small {
  display: block;
}

.shuowen-draft-card strong {
  color: #f7fbff;
}

.shuowen-draft-card small {
  margin-top: 4px;
  color: #cbd7f6;
  line-height: 1.55;
}

.shuowen-draft-card.draft_generated {
  border-color: rgba(255, 193, 89, 0.32);
  background: linear-gradient(135deg, rgba(255, 193, 89, 0.1), rgba(255, 255, 255, 0.05));
}

.shuowen-draft-card.pushed_to_family {
  border-color: rgba(80, 238, 143, 0.34);
  background: linear-gradient(135deg, rgba(80, 238, 143, 0.11), rgba(255, 255, 255, 0.05));
}

.shuowen-draft-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.receiver-page {
  min-height: 100vh;
  padding: 28px;
  color: var(--ink);
  background:
    radial-gradient(circle at 12% 10%, rgba(80, 238, 143, 0.22), transparent 30%),
    radial-gradient(circle at 82% 0%, rgba(52, 120, 255, 0.2), transparent 30%),
    linear-gradient(135deg, #f6fbf5 0%, #eef5ec 45%, #f8f1e4 100%);
}

.receiver-shell {
  width: min(1120px, 100%);
  margin: 0 auto;
  display: grid;
  gap: 16px;
}

.receiver-hero,
.receiver-card {
  border: 1px solid rgba(207, 221, 216, 0.9);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 18px 50px rgba(32, 62, 47, 0.08);
}

.receiver-hero {
  display: grid;
  gap: 10px;
  padding: 20px;
}

.receiver-hero h1 {
  margin: 0;
  font-size: clamp(26px, 4vw, 42px);
  letter-spacing: 0;
}

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

.receiver-card {
  display: grid;
  gap: 12px;
  padding: 16px;
}

.receiver-card-head {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: flex-start;
  justify-content: space-between;
}

.receiver-card h2 {
  margin: 0;
  font-size: 21px;
}

.receiver-section-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.receiver-section {
  border-radius: 8px;
  padding: 12px;
  background: linear-gradient(135deg, rgba(52, 120, 255, 0.08), rgba(80, 238, 143, 0.1));
}

.receiver-section strong {
  display: block;
  margin-bottom: 6px;
  color: #1d5b3a;
}

.receiver-section ul {
  margin: 0;
  padding-left: 18px;
  line-height: 1.7;
}

.receiver-section p {
  margin: 0;
  line-height: 1.7;
}

.receiver-section .correction-receipt {
  display: grid;
  gap: 4px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(31, 110, 72, 0.16);
  color: #274638;
}

.receiver-section .correction-receipt:last-child { border-bottom: 0; }
.receiver-section .correction-receipt strong { margin: 0; }
.receiver-section .correction-receipt small { color: #607469; }
.receiver-section .correction-receipt .inline-action { justify-self: start; }
.receiver-question-list { display: grid; gap: 0; }
.receiver-question-row {
  display: grid;
  grid-template-columns: minmax(70px, 0.7fr) auto minmax(120px, 1.3fr);
  gap: 8px;
  align-items: center;
  padding: 7px 0;
  border-bottom: 1px solid rgba(31, 92, 61, 0.12);
}
.receiver-question-row:last-child { border-bottom: 0; }
.receiver-question-row strong { margin: 0; }
.receiver-question-row small { color: #607469; overflow-wrap: anywhere; }

.illustration-asset-panel {
  margin-top: 4px;
  gap: 14px;
}

.illustration-status-grid {
  display: grid;
  grid-template-columns: 1.15fr repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.illustration-hero-card,
.illustration-asset-card {
  display: grid;
  gap: 9px;
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 8px;
  padding: 14px;
  color: #f7fbff;
  background:
    linear-gradient(145deg, rgba(24, 31, 70, 0.84), rgba(11, 16, 39, 0.78)),
    linear-gradient(120deg, rgba(78, 228, 130, 0.12), rgba(67, 106, 255, 0.08));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.illustration-hero-card {
  grid-row: span 2;
  min-height: 210px;
  align-content: start;
  background:
    linear-gradient(145deg, rgba(34, 42, 89, 0.88), rgba(10, 15, 37, 0.82)),
    radial-gradient(circle at 20% 12%, rgba(80, 238, 143, 0.24), transparent 34%);
}

.illustration-hero-card span,
.illustration-asset-card span {
  width: fit-content;
  border-radius: 999px;
  padding: 5px 9px;
  color: #102235;
  background: linear-gradient(135deg, #b9ff4d, #50ee8f);
  font-size: 12px;
  font-weight: 900;
}

.illustration-hero-card strong,
.illustration-asset-card strong {
  font-size: 17px;
  line-height: 1.35;
}

.illustration-hero-card small,
.illustration-asset-card small {
  color: #c8d4ff;
  line-height: 1.58;
}

.illustration-hero-card a {
  width: fit-content;
  margin-top: auto;
  border-radius: 8px;
  padding: 8px 11px;
  color: #122033;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
  font-weight: 900;
  text-decoration: none;
}

.illustration-rules {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  border-left: 3px solid #50ee8f;
  border-radius: 8px;
  padding: 11px 12px;
  color: #dfe8ff;
  background: rgba(80, 238, 143, 0.08);
}

.illustration-rules strong {
  color: #b9ff4d;
  white-space: nowrap;
}

.courseware-illustration-workbench,
.illustration-pipeline-panel {
  display: grid;
  gap: 14px;
  min-width: 0;
}

.illustration-job-form textarea {
  min-height: 88px;
  resize: vertical;
}

.illustration-prompt-preview {
  max-height: 132px;
  overflow: auto;
  line-height: 1.55;
}

.illustration-version-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.illustration-version-strip button {
  border: 1px solid rgba(139, 156, 255, 0.35);
  border-radius: 6px;
  padding: 7px 9px;
  color: #dfe8ff;
  background: rgba(19, 27, 61, 0.72);
  cursor: pointer;
}

.illustration-review-box {
  border-top: 1px solid rgba(139, 156, 255, 0.22);
  padding-top: 10px;
}

.illustration-review-box summary {
  cursor: pointer;
  color: #f4f7ff;
  font-weight: 800;
}

.illustration-check-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0;
}

.illustration-check-grid label {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  min-width: 0;
}

.illustration-rights-form {
  margin-top: 12px;
}

.notice {
  color: #ffe7b6;
  border-left-color: #8b5cff;
  background: linear-gradient(135deg, rgba(255, 179, 77, 0.16), rgba(107, 77, 255, 0.12));
}

.parent-phone {
  background:
    linear-gradient(145deg, rgba(20, 27, 61, 0.88), rgba(10, 15, 37, 0.84)),
    repeating-linear-gradient(90deg, rgba(139, 156, 255, 0.06) 0 1px, transparent 1px 44px);
}

.child-avatar {
  background: linear-gradient(135deg, #8b5cff, #3f75ff 54%, #35d9ff);
  box-shadow: 0 0 26px rgba(111, 77, 255, 0.52);
}

.demo-buttons button {
  color: #dbe4ff;
  border-color: rgba(139, 156, 255, 0.3);
  background: rgba(15, 22, 52, 0.78);
}

.demo-buttons button.active {
  color: #ffffff;
  border-color: rgba(96, 226, 255, 0.68);
  background: linear-gradient(135deg, #6f4dff, #2e77ff, #24d8ff);
}

pre {
  color: #dbe7ff;
  border: 1px solid rgba(139, 156, 255, 0.24);
  background: #080d20;
  box-shadow: inset 0 0 22px rgba(83, 98, 255, 0.12);
}

.packet-flow-panel {
  gap: 14px;
}

.moral-workbench {
  display: grid;
  gap: 14px;
}

.moral-summary-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.moral-summary-grid article {
  min-width: 0;
  display: grid;
  gap: 5px;
  padding: 12px;
  border: 1px solid rgba(111, 227, 167, 0.32);
  border-radius: 8px;
  color: #eef4ff;
  background: rgba(15, 42, 34, 0.64);
}

.moral-summary-grid strong {
  font-size: 24px;
  color: #b7ffcf;
}

.moral-summary-grid small,
.moral-case-list-row small,
.moral-case-detail small,
.moral-history small {
  color: #cbd7eb;
}

.moral-filter-bar {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

.moral-filter-bar > div {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.moral-filter-bar b {
  color: #eef4ff;
}

.moral-filter-bar button,
.moral-filter-bar select,
.moral-actions button {
  min-height: 34px;
  border: 1px solid rgba(139, 156, 255, 0.34);
  border-radius: 8px;
  padding: 7px 10px;
  color: #eef4ff;
  background: rgba(16, 23, 53, 0.82);
}

.moral-filter-bar button.active,
.moral-actions button {
  border-color: transparent;
  color: #173426;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
  font-weight: 800;
  cursor: pointer;
}

.moral-filter-bar label {
  display: grid;
  gap: 4px;
  color: #dbe7ff;
}

.moral-create-panel,
.moral-followup-form {
  padding: 12px;
  border: 1px solid rgba(96, 226, 255, 0.3);
  border-radius: 8px;
  color: #eef4ff;
  background: rgba(10, 22, 45, 0.62);
}

.moral-create-panel summary {
  cursor: pointer;
  font-weight: 800;
}

.moral-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.moral-form-grid label {
  min-width: 0;
  display: grid;
  gap: 5px;
  color: #dbe7ff;
}

.moral-form-grid input,
.moral-form-grid select,
.moral-form-grid textarea {
  min-width: 0;
  width: 100%;
  border: 1px solid rgba(184, 202, 231, 0.5);
  border-radius: 8px;
  padding: 8px 10px;
  color: #142033;
  background: rgba(255, 255, 255, 0.96);
  font: inherit;
  letter-spacing: 0;
}

.moral-form-grid .span-2 {
  grid-column: 1 / -1;
}

.moral-form-grid .moral-check {
  display: flex;
  align-items: center;
  grid-column: 1 / -1;
}

.moral-form-grid .moral-check input {
  width: 18px;
}

.moral-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}

.moral-evidence-upload {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) auto;
  gap: 8px;
  align-items: center;
  margin-top: 10px;
}

.moral-evidence-upload input {
  min-width: 0;
  min-height: 36px;
  border: 1px solid rgba(184, 202, 231, 0.5);
  border-radius: 8px;
  padding: 7px 9px;
  color: #142033;
  background: rgba(255, 255, 255, 0.96);
}

.moral-evidence-upload button,
.moral-history button {
  min-height: 34px;
  border: 0;
  border-radius: 8px;
  padding: 7px 10px;
  color: #173426;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
  cursor: pointer;
  font-weight: 800;
}

.moral-artifact-panel {
  padding: 12px;
  border: 1px solid rgba(80, 238, 143, 0.34);
  border-radius: 8px;
  background: rgba(16, 53, 39, 0.48);
}

.moral-actions button.danger {
  color: #fff;
  background: linear-gradient(135deg, #d3485c, #ff795f);
}

.moral-master-detail {
  display: grid;
  grid-template-columns: minmax(240px, 0.72fr) minmax(0, 2fr);
  gap: 12px;
  align-items: start;
}

.moral-case-list {
  display: grid;
  gap: 8px;
  max-height: 720px;
  overflow: auto;
}

.moral-case-list-row {
  min-width: 0;
  display: grid;
  gap: 5px;
  padding: 11px;
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 8px;
  color: #eef4ff;
  text-align: left;
  background: rgba(10, 15, 37, 0.62);
  cursor: pointer;
}

.moral-case-list-row.active {
  border-color: rgba(80, 238, 143, 0.78);
  background: rgba(18, 57, 43, 0.74);
}

.severity {
  justify-self: start;
  padding: 3px 7px;
  border-radius: 6px;
  color: #102719;
  background: #8ef0b5;
  font-size: 12px;
  font-weight: 800;
}

.severity.high,
.severity.critical {
  color: #fff;
  background: #d3485c;
}

.severity.medium {
  color: #382609;
  background: #ffd17d;
}

.moral-case-detail {
  min-width: 0;
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(139, 156, 255, 0.3);
  border-radius: 8px;
  color: #eef4ff;
  background: linear-gradient(145deg, rgba(23, 31, 66, 0.86), rgba(10, 16, 38, 0.8));
}

.moral-case-detail header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.moral-case-detail h4,
.moral-case-detail h5,
.moral-case-detail p {
  margin: 0;
}

.moral-case-detail header h4 {
  margin-top: 6px;
  font-size: 20px;
}

.moral-meta-grid,
.moral-flow-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.moral-meta-grid span,
.moral-flow-strip span,
.moral-history > div {
  min-width: 0;
  display: grid;
  gap: 4px;
  padding: 8px 10px;
  border: 1px solid rgba(139, 156, 255, 0.24);
  border-radius: 8px;
  background: rgba(7, 13, 31, 0.52);
  overflow-wrap: anywhere;
}

.moral-flow-strip {
  grid-template-columns: repeat(8, minmax(86px, 1fr));
  overflow-x: auto;
}

.moral-flow-strip span.current {
  border-color: rgba(96, 226, 255, 0.78);
  background: rgba(28, 111, 133, 0.38);
}

.moral-flow-strip span.done {
  border-color: rgba(80, 238, 143, 0.58);
  background: rgba(23, 83, 57, 0.42);
}

.moral-history {
  display: grid;
  gap: 7px;
}

.moral-history > div {
  grid-template-columns: minmax(100px, 0.45fr) minmax(120px, 0.55fr) minmax(0, 2fr) minmax(100px, 0.6fr);
  align-items: start;
}

@media (max-width: 1080px) {
  .moral-summary-grid,
  .moral-master-detail,
  .moral-meta-grid,
  .moral-form-grid,
  .moral-history > div {
    grid-template-columns: 1fr;
  }

  .moral-evidence-upload {
    grid-template-columns: 1fr;
  }

  .moral-form-grid .span-2 {
    grid-column: auto;
  }

  .moral-case-list {
    max-height: 360px;
  }
}

.packet-toolbar,
.packet-actions,
.packet-artifact-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.packet-toolbar button,
.packet-actions button,
.packet-artifact-links a,
.packet-artifact-links button {
  min-height: 34px;
  border: 0;
  border-radius: 8px;
  padding: 7px 11px;
  color: #173426;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
  cursor: pointer;
  font-weight: 800;
  text-decoration: none;
}

.packet-version-comparison {
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid rgba(96, 226, 255, 0.34);
  border-radius: 8px;
  color: #eef4ff;
  background: rgba(12, 30, 46, 0.52);
}

.packet-version-comparison.muted {
  color: #dbe7ff;
  border-style: dashed;
}

.packet-retention-panel {
  border-color: rgba(94, 205, 137, 0.5);
  background: rgba(20, 48, 39, 0.58);
}

.packet-retention-panel.warn {
  border-color: rgba(255, 193, 92, 0.7);
  background: rgba(74, 49, 18, 0.46);
}

.packet-version-comparison > small {
  color: #dbe7ff;
}

.packet-version-comparison > button {
  justify-self: start;
  min-height: 34px;
  border: 0;
  border-radius: 8px;
  padding: 7px 11px;
  color: #173426;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
  cursor: pointer;
  font-weight: 800;
}

.packet-actions button.danger {
  color: #fff7f7;
  background: linear-gradient(135deg, #ff5f7e, #ff9e5e);
}

.packet-actions button:disabled {
  cursor: wait;
  opacity: 0.62;
}

.packet-flow-grid {
  display: grid;
  gap: 12px;
}

.packet-flow-card {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 8px;
  color: #eef4ff;
  background:
    linear-gradient(145deg, rgba(24, 31, 70, 0.82), rgba(11, 16, 39, 0.76)),
    linear-gradient(120deg, rgba(78, 228, 130, 0.12), rgba(45, 214, 255, 0.07));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045);
}

.packet-flow-card.active {
  border-color: rgba(80, 238, 143, 0.72);
  box-shadow: 0 0 26px rgba(80, 238, 143, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.packet-card-head,
.packet-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
}

.packet-card-head h4 {
  margin: 2px 0 0;
  font-size: 18px;
}

.packet-meta-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.packet-meta-grid span,
.packet-materials span,
.packet-mini-row,
.packet-flow-step {
  min-width: 0;
  border: 1px solid rgba(139, 156, 255, 0.24);
  border-radius: 8px;
  padding: 8px 10px;
  color: #dbe7ff;
  background: rgba(10, 15, 37, 0.52);
}

.student-status-case-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.student-status-case-form label {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: #e6f0ff;
}

.student-status-case-form input,
.student-status-case-form select,
.student-status-case-form textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid rgba(79, 219, 171, 0.42);
  border-radius: 6px;
  padding: 10px 12px;
  color: #f6fbff;
  background: rgba(7, 22, 31, 0.88);
}

.student-status-case-wide {
  grid-column: 1 / -1;
}

.student-status-case-flow {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
}

.student-status-case-flow .summary-card.active {
  border-color: rgba(76, 226, 152, 0.76);
  box-shadow: 0 0 20px rgba(45, 214, 142, 0.14);
}

.student-status-case-flow .summary-card.completed {
  border-color: rgba(78, 185, 255, 0.56);
  background: rgba(13, 48, 65, 0.72);
}

.student-status-case-record {
  min-width: 0;
}

.student-status-case-record.active {
  border-color: rgba(76, 226, 152, 0.76);
}

.student-status-case-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.student-status-case-details span {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid rgba(111, 182, 213, 0.28);
  border-radius: 6px;
  background: rgba(8, 27, 38, 0.64);
}

.student-status-case-details small {
  color: #d9e8ef;
  overflow-wrap: anywhere;
}

.student-status-material-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.student-status-material-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.student-status-material {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(101, 174, 204, 0.3);
  border-radius: 7px;
  color: #edf7fb;
  background: rgba(8, 28, 37, 0.72);
}

.student-status-material > div:first-child {
  display: grid;
  gap: 3px;
}

.student-status-material small {
  color: #c7dce5;
  overflow-wrap: anywhere;
}

.student-status-material.submitted {
  border-color: rgba(255, 196, 83, 0.5);
}

.student-status-material.approved {
  border-color: rgba(72, 225, 147, 0.56);
}

.student-status-material.returned {
  border-color: rgba(255, 112, 112, 0.56);
}

.student-status-material input[type="file"] {
  max-width: 100%;
  color: #e5f2f7;
}

.student-status-ocr-panel,
.student-status-consistency {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(82, 190, 218, 0.34);
  border-radius: 7px;
  background: rgba(5, 22, 31, 0.8);
}

.student-status-consistency {
  margin-top: 12px;
}

.student-status-consistency.blocking {
  border-color: rgba(255, 112, 112, 0.7);
}

.student-status-consistency.warning {
  border-color: rgba(255, 196, 83, 0.64);
}

.student-status-ocr-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.student-status-ocr-panel details,
.student-status-ocr-panel pre {
  min-width: 0;
  max-width: 100%;
}

.student-status-ocr-panel pre {
  max-height: 180px;
  overflow: auto;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  color: #eaf7fb;
  background: rgba(3, 13, 19, 0.86);
  padding: 8px;
  border-radius: 5px;
}

.student-status-ocr-fields,
.student-status-consistency-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}

.student-status-ocr-field,
.student-status-consistency-check {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 8px;
  border: 1px solid rgba(111, 182, 213, 0.3);
  border-radius: 6px;
  background: rgba(10, 35, 45, 0.72);
}

.student-status-ocr-field small,
.student-status-consistency-check small {
  color: #d9e8ef;
  overflow-wrap: anywhere;
}

.student-status-ocr-field em {
  color: #ffd071;
  font-style: normal;
}

.student-status-ocr-field.confirmed {
  border-color: rgba(72, 225, 147, 0.54);
}

.student-status-ocr-field.confirmed em {
  color: #83edb5;
}

.student-status-consistency-check.high {
  border-color: rgba(255, 112, 112, 0.62);
}

.student-status-consistency-check.medium {
  border-color: rgba(255, 196, 83, 0.56);
}

.student-status-ocr-review-row {
  min-width: 0;
}

.student-status-ocr-review-row.conflict {
  border-color: rgba(255, 112, 112, 0.68);
}

.student-status-ocr-review-row.pending_confirmation,
.student-status-ocr-review-row.warning {
  border-color: rgba(255, 196, 83, 0.58);
}

.student-status-ocr-review-row.completed {
  border-color: rgba(72, 225, 147, 0.5);
}

.student-status-ocr-review-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
}

.student-status-ocr-review-metrics span {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 8px;
  border: 1px solid rgba(111, 182, 213, 0.28);
  border-radius: 6px;
  background: rgba(8, 27, 38, 0.64);
}

.student-status-ocr-review-metrics b,
.student-status-ocr-review-metrics small {
  overflow-wrap: anywhere;
}

.student-status-exam-toolbar {
  display: grid;
  grid-template-columns: minmax(180px, 260px) max-content;
  align-items: end;
  gap: 10px;
}

.student-status-exam-toolbar label {
  display: grid;
  gap: 5px;
  color: #e6f0ff;
}

.student-status-exam-toolbar input {
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid rgba(79, 219, 171, 0.42);
  border-radius: 6px;
  color: #f6fbff;
  background: rgba(7, 22, 31, 0.88);
}

.student-status-exam-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.student-status-exam-row {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 11px;
  border: 1px solid rgba(101, 174, 204, 0.34);
  border-radius: 7px;
  background: rgba(8, 28, 37, 0.72);
}

.student-status-exam-row.conflict {
  border-color: rgba(255, 112, 112, 0.68);
}

.student-status-exam-row.missing,
.student-status-exam-row.pending_review {
  border-color: rgba(255, 196, 83, 0.58);
}

.student-status-exam-row.ready {
  border-color: rgba(72, 225, 147, 0.5);
}

.student-status-exam-reminders {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.student-status-exam-reminders span {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid rgba(111, 182, 213, 0.28);
  border-radius: 6px;
  background: rgba(8, 27, 38, 0.64);
}

.student-status-exam-reminders small {
  color: #d9e8ef;
  overflow-wrap: anywhere;
}

.packet-flow-steps,
.packet-materials {
  display: grid;
  gap: 8px;
}

.packet-flow-steps {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

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

.packet-flow-step {
  display: grid;
  gap: 4px;
}

.packet-flow-step b,
.packet-mini-row strong {
  overflow-wrap: anywhere;
}

.packet-flow-step small,
.packet-mini-row small,
.packet-artifact-links span {
  color: #aeb9dd;
  overflow-wrap: anywhere;
}

.packet-flow-step.current {
  border-color: rgba(96, 226, 255, 0.7);
  background: linear-gradient(135deg, rgba(38, 211, 255, 0.24), rgba(14, 20, 48, 0.78));
}

.packet-flow-step.approved {
  border-color: rgba(80, 238, 143, 0.52);
  background: linear-gradient(135deg, rgba(78, 228, 130, 0.22), rgba(14, 20, 48, 0.78));
}

.packet-mini-row {
  display: grid;
  gap: 4px;
  margin-top: 7px;
}

.packet-mini-row.warn {
  border-color: rgba(255, 176, 71, 0.42);
  background: linear-gradient(135deg, rgba(255, 176, 71, 0.16), rgba(14, 20, 48, 0.72));
}

.packet-artifact-links {
  padding: 10px;
  border: 1px dashed rgba(80, 238, 143, 0.42);
  border-radius: 8px;
  background: rgba(13, 38, 32, 0.38);
}

.packet-artifact-links.muted {
  color: #aeb9dd;
}

@media (max-width: 1080px) {
  .daily-progress-grid {
    grid-template-columns: 1fr;
  }

  .receiver-page {
    padding: 14px;
  }

  .receiver-section-grid {
    grid-template-columns: 1fr;
  }

  .directive-grid,
  .notification-grid,
  .directive-check-grid {
    grid-template-columns: 1fr;
  }

  .department-owned-grid {
    grid-template-columns: 1fr;
  }

  .department-detail-grid,
  .department-workflow-form,
  .department-template-checklist,
  .workflow-meta-grid,
  .workflow-extra-grid,
  .workflow-inbox-stats,
  .department-flow-steps,
  .permission-audit-grid {
    grid-template-columns: 1fr;
  }

  .workflow-inbox-row {
    grid-template-columns: 1fr;
  }

  .workflow-inbox-row span {
    grid-row: auto;
    justify-self: start;
  }

  .illustration-status-grid,
  .illustration-rules,
  .illustration-check-grid {
    grid-template-columns: 1fr;
  }

  .illustration-hero-card {
    grid-row: auto;
  }

  .packet-card-head,
  .packet-split,
  .packet-meta-grid,
  .packet-flow-steps,
  .packet-materials,
  .shuowen-generator-form,
  .shuowen-flow-grid,
  .shuowen-draft-card {
    grid-template-columns: 1fr;
  }

  .shuowen-draft-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 1080px) {
  .portal-page {
    padding: 12px;
  }

  .portal-intro {
    min-height: auto;
    padding: 104px 18px 22px;
  }

  .portal-intro::before {
    left: 22px;
    top: 24px;
    width: 56px;
    height: 72px;
    transform: none;
  }

  .portal-intro h1 {
    font-size: 36px;
  }

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

}

.signature-preview,
.mark-placeholder {
  color: #dbe7ff;
  border-color: rgba(139, 156, 255, 0.3);
  background: rgba(12, 18, 42, 0.76);
}

.immutable-mark {
  color: #eef4ff;
  border-color: rgba(255, 90, 80, 0.58);
  background: linear-gradient(145deg, rgba(46, 24, 37, 0.88), rgba(10, 15, 37, 0.82));
}

.metric-card {
  font: inherit;
  text-align: left;
}

.metric-card.is-action {
  cursor: pointer;
}

.metric-card.is-action:hover {
  transform: translateY(-2px);
  filter: brightness(1.04);
}

.metric-card.is-action.active {
  outline: 2px solid rgba(80, 238, 143, 0.56);
  box-shadow: 0 0 28px rgba(80, 238, 143, 0.26);
}

.teacher-avatar-portal,
.academic-interface-home,
.master-timetable-interface,
.academic-bridge-panel {
  color: #eef4ff;
  border: 1px solid rgba(139, 156, 255, 0.34);
  background:
    linear-gradient(145deg, rgba(20, 27, 61, 0.9), rgba(10, 15, 37, 0.86)),
    linear-gradient(120deg, rgba(80, 238, 143, 0.08), rgba(45, 214, 255, 0.05));
}

.teacher-avatar-grid,
.academic-interface-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.scenario-switcher {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.mini-action {
  min-height: 34px;
  border: 1px solid rgba(139, 156, 255, 0.3);
  border-radius: 999px;
  padding: 7px 12px;
  color: #dbe7ff;
  background: rgba(12, 18, 42, 0.72);
  font-weight: 800;
  cursor: pointer;
}

.mini-action.active {
  color: #173426;
  border-color: transparent;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
}

.teacher-avatar-entry,
.academic-interface-card {
  min-height: 148px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 8px;
  border: 1px solid rgba(139, 156, 255, 0.3);
  border-radius: 8px;
  padding: 14px;
  color: #eef4ff;
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.78), rgba(11, 16, 39, 0.72));
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.teacher-avatar-entry:nth-child(4n + 1),
.academic-interface-card:nth-child(4n + 1) {
  background: linear-gradient(135deg, rgba(67, 106, 255, 0.34), rgba(14, 20, 48, 0.78));
}

.teacher-avatar-entry:nth-child(4n + 2),
.academic-interface-card:nth-child(4n + 2) {
  background: linear-gradient(135deg, rgba(80, 238, 143, 0.28), rgba(14, 20, 48, 0.78));
}

.teacher-avatar-entry:nth-child(4n + 3),
.academic-interface-card:nth-child(4n + 3) {
  background: linear-gradient(135deg, rgba(45, 214, 255, 0.28), rgba(14, 20, 48, 0.78));
}

.teacher-avatar-entry:nth-child(4n),
.academic-interface-card:nth-child(4n) {
  background: linear-gradient(135deg, rgba(133, 91, 255, 0.34), rgba(14, 20, 48, 0.78));
}

.teacher-avatar-entry.active,
.academic-interface-card.active {
  border-color: rgba(80, 238, 143, 0.58);
  box-shadow: 0 0 26px rgba(80, 238, 143, 0.24);
}

.teacher-avatar-badge {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #173426;
  background: linear-gradient(135deg, #eaffd1, #50ee8f);
  font-weight: 900;
}

.teacher-avatar-entry small,
.academic-interface-card small,
.master-timetable-table small,
.master-lesson-detail small {
  color: #dbe7ff;
}

.teacher-avatar-entry b,
.academic-interface-card span {
  color: #fff7df;
  font-size: 13px;
}

.master-timetable-table {
  display: grid;
  gap: 8px;
  max-height: 620px;
  overflow: auto;
  padding-right: 4px;
}

.timetable-subsection {
  display: grid;
  gap: 12px;
  margin-top: 16px;
  padding: 14px;
  border: 1px solid rgba(139, 156, 255, 0.24);
  border-radius: 8px;
  background: rgba(12, 18, 42, 0.42);
}

.timetable-push-tools {
  border-color: rgba(80, 238, 143, 0.28);
}

.timetable-command-center {
  border-color: rgba(80, 238, 143, 0.34);
  background:
    linear-gradient(145deg, rgba(23, 46, 50, 0.72), rgba(11, 16, 39, 0.72)),
    linear-gradient(120deg, rgba(80, 238, 143, 0.08), rgba(45, 214, 255, 0.06));
}

.timetable-stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
  gap: 8px;
}

.timetable-stat-grid span {
  display: grid;
  gap: 2px;
  min-height: 64px;
  border: 1px solid rgba(139, 156, 255, 0.26);
  border-radius: 8px;
  padding: 10px;
  background: rgba(12, 18, 42, 0.62);
}

.timetable-stat-grid b {
  color: #fff7df;
  font-size: 20px;
}

.timetable-stat-grid small {
  color: #dbe7ff;
  font-weight: 800;
}

.teacher-business-summary {
  margin: 12px 0;
}

.teacher-business-summary .summary-action {
  min-height: 64px;
  border: 1px solid rgba(80, 238, 143, 0.42);
  border-radius: 8px;
  padding: 10px;
  color: #173426;
  background: linear-gradient(135deg, #a8ff00, #50ee8f);
  font-weight: 900;
  cursor: pointer;
}

.teacher-business-summary .summary-action:hover {
  filter: brightness(1.06);
}

.grading-filter-bar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  margin: 12px 0;
  padding: 10px 12px;
  border: 1px solid rgba(139, 156, 255, 0.25);
  border-radius: 8px;
  background: rgba(12, 18, 42, 0.58);
}

.grading-filter-bar label {
  display: grid;
  gap: 4px;
  min-width: 180px;
}

.grading-filter-bar label span,
.grading-filter-bar small {
  color: #dbe7ff;
}

.grading-filter-bar select {
  min-height: 34px;
  border: 1px solid rgba(139, 156, 255, 0.35);
  border-radius: 6px;
  padding: 6px 8px;
  color: #17251f;
  background: #fff;
}

.photo-grading-create-form {
  display: grid;
  gap: 10px;
  margin: 12px 0;
  padding: 12px;
  border: 1px solid rgba(80, 238, 143, 0.28);
  border-radius: 8px;
  background: rgba(12, 18, 42, 0.48);
}

.photo-grading-create-form .teacher-material-section-head {
  margin: 0;
}

.photo-grading-create-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.photo-grading-create-grid label {
  display: grid;
  gap: 4px;
}

.photo-grading-create-grid label.wide {
  grid-column: 1 / -1;
}

.photo-grading-create-grid label span {
  color: #dbe7ff;
  font-size: 12px;
  font-weight: 800;
}

.photo-grading-create-grid input,
.photo-grading-create-grid select {
  width: 100%;
  min-height: 34px;
  box-sizing: border-box;
  border: 1px solid rgba(139, 156, 255, 0.32);
  border-radius: 6px;
  padding: 7px 8px;
  color: #17251f;
  background: #fff;
  font: inherit;
}

.photo-grading-create-form > button {
  justify-self: start;
}

.grading-student-review {
  margin-top: 8px;
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 7px;
  background: rgba(7, 12, 31, 0.32);
}

.grading-student-review summary {
  cursor: pointer;
  padding: 9px 10px;
  color: #eaf2ff;
  font-weight: 800;
}

.grading-result-head,
.grading-result-row {
  display: grid;
  grid-template-columns: minmax(130px, 1.2fr) 82px 82px 120px minmax(150px, 1.5fr);
  gap: 8px;
  align-items: center;
  padding: 8px 10px;
}

.grading-result-head {
  color: #aebfe6;
  border-top: 1px solid rgba(139, 156, 255, 0.2);
  border-bottom: 1px solid rgba(139, 156, 255, 0.2);
  font-size: 12px;
}

.grading-result-row {
  color: #eaf2ff;
  border-bottom: 1px solid rgba(139, 156, 255, 0.14);
}

.grading-result-row:last-child { border-bottom: 0; }
.grading-result-row strong,
.grading-result-row small { display: block; overflow-wrap: anywhere; }
.grading-result-row small { color: #b9c8e7; }
.grading-result-row.needs-review { background: rgba(255, 176, 71, 0.12); }
.grading-result-row.missing { background: rgba(255, 94, 126, 0.12); }
.grading-result-row.ready { background: rgba(80, 238, 143, 0.06); }
.grading-result-row.confirmed { background: rgba(80, 185, 238, 0.08); }
.grading-result-status { font-weight: 800; }
.grading-result-row.needs-review .grading-result-status { color: #ffd27a; }
.grading-result-row.missing .grading-result-status { color: #ff9baa; }
.grading-result-row.confirmed .grading-result-status { color: #9fe7ff; }
.grading-student-cell {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  min-width: 0;
}
.grading-student-cell input[type="checkbox"] {
  width: 17px;
  height: 17px;
  margin: 2px 0 0;
  flex: 0 0 auto;
}
.grading-student-cell > div { min-width: 0; }
.grading-review-summary {
  display: grid;
  gap: 7px;
  margin: 10px 0 2px;
  padding: 10px 0;
  border-top: 1px solid rgba(139, 156, 255, 0.24);
  border-bottom: 1px solid rgba(139, 156, 255, 0.24);
}
.grading-review-summary > div:first-child {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  align-items: baseline;
}
.grading-review-summary strong { color: #f3f7ff; }
.grading-review-summary small { color: #b9c8e7; }
.grading-review-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
}
.grading-review-metrics span {
  padding-left: 8px;
  border-left: 2px solid rgba(80, 238, 143, 0.68);
  color: #c9d7f2;
  font-size: 12px;
}
.grading-review-metrics span:nth-child(2),
.grading-review-metrics span:nth-child(5) { border-left-color: rgba(255, 176, 71, 0.86); }
.grading-review-metrics b { color: #fff; }
.grading-review-focus { overflow-wrap: anywhere; }
.grading-page-list {
  display: grid;
  gap: 4px;
  margin-top: 5px;
}
.grading-page-item {
  display: flex;
  min-width: 0;
  gap: 5px;
  align-items: center;
}
.grading-page-item > a {
  min-width: 44px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.grading-page-actions { display: flex; gap: 3px; }
.grading-page-action.icon-button {
  width: 28px;
  min-width: 28px;
  height: 28px;
  min-height: 28px;
  padding: 0;
  border: 1px solid rgba(139, 156, 255, 0.3);
  border-radius: 6px;
  color: #eaf2ff;
  background: rgba(27, 43, 77, 0.7);
  font-size: 15px;
}
.grading-page-action.icon-button.remove { color: #ffb5c1; border-color: rgba(255, 94, 126, 0.4); }
.grading-page-action.icon-button:disabled { opacity: 0.35; cursor: default; }
.grading-question-editor {
  grid-column: 1 / -1;
  border-bottom: 1px dashed rgba(139, 156, 255, 0.2);
  padding-bottom: 8px;
}
.grading-question-editor summary {
  cursor: pointer;
  color: #dbe7ff;
  font-size: 12px;
  font-weight: 800;
  padding: 3px 0 7px;
}
.grading-question-head,
.grading-question-row {
  display: grid;
  grid-template-columns: 88px 70px 70px minmax(120px, 0.8fr) minmax(180px, 1.3fr) 30px;
  gap: 6px;
  align-items: center;
}
.grading-question-head {
  padding: 0 0 5px;
  color: #9fb3dc;
  font-size: 11px;
}
.grading-question-list { display: grid; gap: 6px; }
.grading-question-row input { min-width: 0; }
.grading-question-remove.icon-button {
  width: 28px;
  min-width: 28px;
  height: 28px;
  min-height: 28px;
  padding: 0;
  border: 1px solid rgba(255, 94, 126, 0.4);
  border-radius: 6px;
  color: #ffb5c1;
  background: rgba(27, 43, 77, 0.7);
  font-size: 15px;
  justify-self: center;
}
.grading-question-footer {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  align-items: center;
  margin-top: 8px;
}
.grading-question-footer output { color: #f3f7ff; font-size: 12px; font-weight: 800; }
.grading-class-analysis {
  margin-top: 10px;
  border-top: 1px solid rgba(80, 238, 143, 0.28);
  border-bottom: 1px solid rgba(80, 238, 143, 0.22);
}
.grading-class-analysis > summary {
  cursor: pointer;
  padding: 10px 0;
  color: #eefbf4;
  font-weight: 800;
}
.grading-analysis-toolbar,
.grading-analysis-section-head,
.grading-analysis-layer > div:first-child {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 12px;
  align-items: center;
  justify-content: space-between;
}
.grading-analysis-toolbar { padding: 2px 0 10px; }
.grading-analysis-toolbar > div:first-child { display: grid; gap: 3px; }
.grading-analysis-toolbar small,
.grading-analysis-section-head small,
.grading-class-analysis small { color: #b9c8e7; }
.grading-analysis-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(260px, 0.85fr);
  gap: 14px;
  padding: 10px 0;
  border-top: 1px solid rgba(139, 156, 255, 0.2);
}
.grading-analysis-grid > section { min-width: 0; }
.grading-analysis-section-head { margin-bottom: 7px; }
.grading-analysis-question-list,
.grading-analysis-error-list { display: grid; gap: 5px; }
.grading-analysis-question-row {
  display: grid;
  grid-template-columns: minmax(100px, 0.8fr) minmax(120px, 1fr) 54px minmax(145px, 1fr);
  gap: 8px;
  align-items: center;
  min-height: 38px;
}
.grading-analysis-question-row > div:first-child { min-width: 0; }
.grading-analysis-question-row strong,
.grading-analysis-question-row small { display: block; overflow-wrap: anywhere; }
.grading-analysis-question-row > b { color: #fff; text-align: right; }
.grading-analysis-rate {
  height: 7px;
  overflow: hidden;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.13);
}
.grading-analysis-rate span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: #50ee8f;
}
.grading-analysis-error-row {
  display: grid;
  grid-template-columns: minmax(92px, 0.8fr) 88px minmax(120px, 1fr);
  gap: 8px;
  align-items: center;
  min-height: 38px;
  border-bottom: 1px solid rgba(255, 176, 71, 0.15);
}
.grading-analysis-error-row strong { color: #ffe08a; overflow-wrap: anywhere; }
.grading-analysis-error-row span { color: #fff; font-size: 12px; font-weight: 800; }
.grading-analysis-layers {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  padding: 8px 0 12px;
}
.grading-analysis-layer {
  min-width: 0;
  padding-top: 7px;
  border-top: 3px solid #8b9cff;
}
.grading-analysis-layer.teacher_guided { border-top-color: #ff5e7e; }
.grading-analysis-layer.focused_correction { border-top-color: #ffb047; }
.grading-analysis-layer.self_consolidation { border-top-color: #4fc3e8; }
.grading-analysis-layer.mastery_extension { border-top-color: #50ee8f; }
.grading-analysis-layer > div:first-child { margin-bottom: 5px; }
.grading-analysis-layer > div:first-child span { color: #fff; font-size: 12px; font-weight: 800; }
.grading-analysis-student-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 7px;
  padding: 5px 0;
  border-bottom: 1px solid rgba(139, 156, 255, 0.13);
}
.grading-analysis-student-row strong { min-width: 0; overflow-wrap: anywhere; }
.grading-analysis-student-row span { color: #fff; font-size: 12px; }
.grading-analysis-student-row small { grid-column: 1 / -1; overflow-wrap: anywhere; }
.grading-batch-feedback,
.grading-confirmation-check {
  display: grid;
  gap: 8px;
  margin-top: 10px;
  padding: 10px 0;
  border-top: 1px solid rgba(139, 156, 255, 0.24);
}
.grading-batch-feedback > div:first-child,
.grading-confirmation-check > div:first-child {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  align-items: baseline;
}
.grading-batch-feedback small,
.grading-confirmation-check small { color: #b9c8e7; }
.grading-batch-feedback-controls {
  display: grid;
  grid-template-columns: minmax(130px, 0.8fr) minmax(160px, 1fr) minmax(160px, 1fr);
  gap: 8px;
  align-items: end;
}
.grading-batch-feedback-controls label { display: grid; gap: 4px; }
.grading-batch-feedback-controls label span { color: #dbe7ff; font-size: 12px; font-weight: 800; }
.grading-batch-feedback-controls input,
.grading-batch-feedback-controls select,
.grading-batch-feedback-controls textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(139, 156, 255, 0.32);
  border-radius: 6px;
  padding: 7px 8px;
  color: #17251f;
  background: #fff;
  font: inherit;
}
.grading-batch-feedback-controls .wide { grid-column: 1 / -1; }
.grading-batch-feedback-controls button { justify-self: start; }
.grading-confirmation-check { border-left: 3px solid rgba(139, 156, 255, 0.42); padding-left: 10px; }
.grading-confirmation-check.ready { border-left-color: #50ee8f; }
.grading-confirmation-check.warning { border-left-color: #ffb047; }
.grading-confirmation-check.blocked { border-left-color: #ff5e7e; }
.grading-confirmation-check span { color: #dbe7ff; font-size: 12px; font-weight: 800; }
.grading-confirmation-issues { display: grid; gap: 3px; }
.grading-confirmation-issues b { color: #f3f7ff; }
.grading-result-edit {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 110px minmax(200px, 1fr);
  gap: 8px;
  align-items: end;
  padding-top: 8px;
  border-top: 1px dashed rgba(139, 156, 255, 0.2);
}
.grading-result-edit label { display: grid; gap: 4px; }
.grading-result-edit label span { color: #dbe7ff; font-size: 12px; font-weight: 800; }
.grading-result-edit input,
.grading-result-edit textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(139, 156, 255, 0.32);
  border-radius: 6px;
  padding: 7px 8px;
  color: #17251f;
  background: #fff;
  font: inherit;
}
.grading-result-edit .wide { grid-column: 1 / -1; }
.grading-result-edit button { justify-self: start; }
.grading-batch-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.photo-grading-file-input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.photo-grading-bulk-receiver {
  display: grid;
  gap: 8px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(139, 156, 255, 0.24);
}
.photo-grading-bulk-receiver .teacher-material-section-head { margin: 0; }
.photo-grading-bulk-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  color: #c9d7f2;
  font-size: 12px;
  font-weight: 800;
}
.photo-grading-bulk-list {
  border-top: 1px solid rgba(139, 156, 255, 0.18);
}
.photo-grading-bulk-row {
  display: grid;
  grid-template-columns: minmax(150px, 1.3fr) minmax(180px, 1fr) minmax(150px, 1fr) 60px;
  gap: 8px;
  align-items: center;
  min-height: 48px;
  padding: 7px 0;
  border-bottom: 1px solid rgba(139, 156, 255, 0.14);
}
.photo-grading-bulk-row strong,
.photo-grading-bulk-row small { display: block; overflow-wrap: anywhere; }
.photo-grading-bulk-row small { color: #b9c8e7; }
.photo-grading-bulk-row select {
  width: 100%;
  min-height: 34px;
  box-sizing: border-box;
  border: 1px solid rgba(139, 156, 255, 0.32);
  border-radius: 6px;
  padding: 6px 8px;
  color: #17251f;
  background: #fff;
  font: inherit;
}
.photo-grading-bulk-row.matched b { color: #91efbc; }
.photo-grading-bulk-row.unmatched b,
.photo-grading-bulk-row.error b { color: #ffd27a; }
.photo-grading-bulk-row.invalid b { color: #ff9baa; }
.photo-grading-bulk-row.uploaded b { color: #9fe7ff; }
.photo-grading-bulk-message { color: #dbe7ff; font-weight: 800; }
.grading-result-row .correction-receipt { display: block; margin-top: 4px; color: #f4d27a; }
.grading-result-row .correction-receipt .inline-action { margin-left: 4px; }

.student-followup-state { color: #ffe08a !important; }
.student-correction-state { color: #9fe7ff !important; }
.compact-head { margin-top: 14px; margin-bottom: 8px; }
.correction-followup-row strong { color: #f4d27a; }

.student-followup-form {
  display: grid;
  grid-template-columns: 150px minmax(180px, 1fr) 150px;
  gap: 8px;
  align-items: end;
  padding: 12px;
  border: 1px solid rgba(80, 238, 143, 0.24);
  border-radius: 8px;
  background: rgba(12, 18, 42, 0.45);
}

.student-followup-form label { display: grid; gap: 4px; }
.student-followup-form label span { color: #dbe7ff; font-size: 12px; font-weight: 800; }
.student-followup-form input,
.student-followup-form select,
.student-followup-form textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(139, 156, 255, 0.32);
  border-radius: 6px;
  padding: 7px 8px;
  color: #17251f;
  background: #fff;
  font: inherit;
}
.student-followup-form .wide { grid-column: 1 / -1; }
.student-followup-form button { justify-self: start; }

@media (max-width: 760px) {
  .grading-filter-bar { align-items: stretch; flex-direction: column; }
  .grading-filter-bar label { min-width: 0; }
  .photo-grading-create-grid { grid-template-columns: 1fr; }
  .photo-grading-create-grid label.wide { grid-column: auto; }
  .grading-result-head { display: none; }
  .grading-result-row { grid-template-columns: minmax(0, 1fr) auto; }
  .grading-result-row > :nth-child(2),
  .grading-result-row > :nth-child(3),
  .grading-result-row > :nth-child(4) { text-align: right; }
  .grading-result-row > :last-child { grid-column: 1 / -1; }
  .grading-result-edit { grid-template-columns: 1fr; }
  .grading-result-edit .wide { grid-column: auto; }
  .grading-question-head { display: none; }
  .grading-question-row { grid-template-columns: minmax(0, 1fr) minmax(72px, 0.55fr) minmax(72px, 0.55fr) 30px; }
  .grading-question-row .grading-question-error,
  .grading-question-row .grading-question-note { grid-column: 1 / -1; }
  .grading-question-row .grading-question-remove { grid-column: 4; grid-row: 1; }
  .grading-analysis-toolbar { align-items: stretch; flex-direction: column; }
  .grading-analysis-grid { grid-template-columns: 1fr; }
  .grading-analysis-question-row { grid-template-columns: minmax(94px, 0.8fr) minmax(90px, 1fr) 48px; }
  .grading-analysis-question-row > small { grid-column: 1 / -1; }
  .grading-analysis-error-row { grid-template-columns: minmax(90px, 1fr) auto; }
  .grading-analysis-error-row > small { grid-column: 1 / -1; }
  .grading-analysis-layers { grid-template-columns: 1fr 1fr; }
  .grading-batch-feedback-controls { grid-template-columns: 1fr; }
  .grading-batch-feedback-controls .wide { grid-column: auto; }
  .photo-grading-bulk-receiver .teacher-material-section-head { align-items: stretch; flex-direction: column; }
  .photo-grading-bulk-row { grid-template-columns: minmax(0, 1fr) auto; }
  .photo-grading-bulk-row select { grid-column: 1 / -1; }
  .student-followup-form { grid-template-columns: 1fr; }
  .student-followup-form .wide { grid-column: auto; }
}

.timetable-selector-row,
.timetable-teacher-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.timetable-selector-row.compact,
.timetable-teacher-strip {
  max-height: 126px;
  overflow: auto;
  padding-right: 4px;
}

.timetable-selector-row button,
.timetable-teacher-strip button,
.class-period-card button,
.mini-period-strip button {
  min-height: 34px;
  border: 1px solid rgba(139, 156, 255, 0.3);
  border-radius: 8px;
  padding: 7px 10px;
  color: #eaf2ff;
  background: rgba(24, 31, 70, 0.78);
  font-weight: 800;
  cursor: pointer;
}

.timetable-selector-row button.active,
.timetable-teacher-strip button.active {
  color: #07120c;
  border-color: rgba(92, 255, 168, 0.72);
  background: linear-gradient(135deg, #b8ffd0, #41e997);
}

.timetable-teacher-strip button {
  display: grid;
  gap: 2px;
  text-align: left;
}

.timetable-teacher-strip small {
  color: inherit;
  opacity: 0.78;
}

.grade-timetable-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.grade-timetable-card {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 8px;
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.74), rgba(11, 16, 39, 0.7));
}

.grade-timetable-card h4 {
  margin: 0;
  color: #f8fbff;
}

.teacher-personal-timetable-list {
  max-height: 420px;
  overflow: auto;
  padding-right: 4px;
}

.master-timetable-row {
  display: grid;
  grid-template-columns: minmax(128px, 1.1fr) repeat(7, minmax(96px, 1fr));
  gap: 8px;
  align-items: stretch;
}

.master-timetable-row > strong,
.master-timetable-head span,
.timetable-empty-cell,
.timetable-lesson-cell,
.master-lesson-detail {
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 8px;
  padding: 10px;
  background: rgba(12, 18, 42, 0.72);
}

.master-timetable-row > strong,
.master-timetable-head span {
  color: #f8fbff;
}

.timetable-lesson-cell {
  min-height: 72px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  color: #eef4ff;
  font: inherit;
  text-align: left;
  cursor: pointer;
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.82), rgba(11, 16, 39, 0.76));
}

.timetable-lesson-cell.active {
  border-color: rgba(80, 238, 143, 0.72);
  background: linear-gradient(135deg, rgba(80, 238, 143, 0.36), rgba(14, 20, 48, 0.82));
}

.timetable-empty-cell {
  color: #8ea0cc;
  display: grid;
  place-items: center;
}

.master-lesson-detail {
  margin-bottom: 12px;
  display: grid;
  gap: 4px;
  border-left: 4px solid #50ee8f;
}

.master-lesson-detail.empty {
  border-left-color: rgba(139, 156, 255, 0.64);
}

.master-lesson-detail.unpushed {
  border-left-color: #ffbd4a;
}

.master-lesson-detail.locked,
.timetable-lesson-cell.locked {
  border-color: rgba(255, 213, 112, 0.7);
  box-shadow: inset 0 0 0 1px rgba(255, 213, 112, 0.18);
}

.master-lesson-detail.forbidden,
.timetable-lesson-cell.forbidden {
  border-color: rgba(255, 142, 113, 0.8);
  background: linear-gradient(135deg, rgba(255, 142, 113, 0.25), rgba(14, 20, 48, 0.86));
}

.lesson-detail-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 8px;
}

.lesson-detail-grid span {
  display: grid;
  gap: 4px;
  border: 1px solid rgba(139, 156, 255, 0.24);
  border-radius: 8px;
  padding: 9px 10px;
  background: rgba(7, 12, 30, 0.42);
}

.lesson-detail-grid b {
  color: #fff7df;
  font-size: 12px;
}

.lesson-detail-grid small,
.status-ok,
.status-warn {
  overflow-wrap: anywhere;
}

.status-ok {
  color: #b8ffd0;
}

.status-warn {
  color: #ffe3b0;
}

.timetable-lesson-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.timetable-slot-edit-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin-top: 8px;
}

.timetable-slot-edit-grid label {
  display: grid;
  gap: 5px;
  color: #fff7df;
  font-size: 12px;
  font-weight: 800;
}

.timetable-slot-edit-grid input,
.timetable-slot-edit-grid select {
  width: 100%;
  min-width: 0;
  min-height: 36px;
  border: 1px solid rgba(139, 156, 255, 0.34);
  border-radius: 6px;
  padding: 7px 9px;
  color: #f8fbff;
  background: rgba(7, 12, 30, 0.82);
}

.timetable-slot-edit-grid input:disabled,
.timetable-slot-edit-grid select:disabled,
.timetable-lesson-actions button:disabled {
  cursor: not-allowed;
  opacity: 0.52;
}

.timetable-repair-list {
  display: grid;
  gap: 8px;
  margin-top: 8px;
}

.timetable-repair-suggestion {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border: 1px solid rgba(80, 238, 143, 0.34);
  border-radius: 8px;
  padding: 9px 10px;
  background: rgba(80, 238, 143, 0.08);
}

.timetable-repair-suggestion > div {
  display: grid;
  gap: 3px;
}

.timetable-repair-suggestion button,
.timetable-diagnostic-actions button {
  min-height: 32px;
  border: 0;
  border-radius: 6px;
  padding: 7px 10px;
  color: #07120c;
  background: #b8ffd0;
  font-weight: 900;
  cursor: pointer;
}

.timetable-lesson-actions button,
.timetable-rule-row button {
  min-height: 32px;
  border: 0;
  border-radius: 8px;
  padding: 7px 10px;
  color: #07120c;
  background: linear-gradient(135deg, #b8ffd0, #41e997);
  font-weight: 900;
  cursor: pointer;
}

.timetable-rule-workbench {
  border-color: rgba(80, 238, 143, 0.32);
}

.timetable-template-studio {
  border-color: rgba(80, 238, 143, 0.34);
  background:
    linear-gradient(145deg, rgba(24, 31, 70, 0.66), rgba(11, 16, 39, 0.72)),
    linear-gradient(120deg, rgba(80, 238, 143, 0.08), rgba(255, 242, 214, 0.06));
}

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

.template-card {
  min-height: 118px;
  display: grid;
  gap: 6px;
  align-content: start;
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 8px;
  padding: 12px;
  color: #eef4ff;
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.78), rgba(11, 16, 39, 0.74));
  text-align: left;
  cursor: pointer;
}

.template-card strong {
  color: #fff7df;
  font-size: 15px;
}

.template-card small {
  color: #dbe7ff;
  line-height: 1.55;
}

.template-card span {
  width: fit-content;
  border: 1px solid rgba(80, 238, 143, 0.28);
  border-radius: 999px;
  padding: 4px 8px;
  color: #b8ffd0;
  font-size: 12px;
  font-weight: 900;
}

.template-card.active {
  border-color: rgba(80, 238, 143, 0.72);
  box-shadow: 0 0 28px rgba(80, 238, 143, 0.2);
}

.timetable-designer-preview {
  max-height: 760px;
  overflow: auto;
  border: 1px solid rgba(139, 156, 255, 0.22);
  border-radius: 8px;
  padding: 14px;
  background: rgba(7, 12, 30, 0.42);
}

.timetable-designer-sheet {
  position: relative;
  width: min(980px, 100%);
  min-width: 760px;
  margin: 0 auto;
  overflow: hidden;
  border: 2px solid #d4dfd7;
  border-radius: 8px;
  padding: 28px;
  color: #1d2a24;
  background: #fffef8;
  box-shadow: 0 24px 60px rgba(7, 12, 30, 0.25);
}

.timetable-designer-sheet header {
  position: relative;
  z-index: 1;
  text-align: center;
  margin-bottom: 18px;
}

.timetable-designer-sheet header p {
  margin: 0 0 6px;
  color: #65746d;
  font-weight: 900;
  letter-spacing: 0;
}

.timetable-designer-sheet h2 {
  margin: 0 0 8px;
  color: #17251f;
  font-size: 34px;
  line-height: 1.2;
  letter-spacing: 0;
}

.timetable-designer-sheet header small,
.timetable-designer-sheet footer {
  color: #596b62;
  font-weight: 800;
}

.timetable-designer-sheet table {
  position: relative;
  z-index: 1;
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  background: rgba(255, 255, 255, 0.82);
}

.timetable-designer-sheet th,
.timetable-designer-sheet td {
  height: 68px;
  border: 1.5px solid #c9d2ce;
  padding: 8px;
  text-align: center;
  vertical-align: middle;
}

.timetable-designer-sheet th {
  color: #17251f;
  background: rgba(232, 241, 225, 0.86);
  font-size: 16px;
  font-weight: 900;
}

.timetable-designer-sheet td strong {
  display: block;
  color: #1d2a24;
  font-size: 17px;
  line-height: 1.25;
}

.timetable-designer-sheet td small,
.timetable-designer-sheet th small {
  display: block;
  margin-top: 4px;
  color: #65746d;
  font-size: 11px;
  line-height: 1.3;
}

.timetable-designer-sheet .designer-time {
  color: #506057;
  font-weight: 900;
  font-size: 13px;
}

.timetable-designer-sheet .designer-break td {
  height: 48px;
  color: #31443a;
  background: rgba(232, 241, 225, 0.9);
  font-size: 24px;
  font-weight: 900;
  letter-spacing: 0;
}

.timetable-designer-sheet footer {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  margin-top: 18px;
}

.timetable-master-sheet {
  width: min(1180px, 100%);
  min-width: 980px;
  padding: 24px;
}

.timetable-master-sheet h2 {
  font-size: 36px;
}

.timetable-master-sheet th,
.timetable-master-sheet td {
  height: 52px;
  padding: 5px;
  font-size: 12px;
}

.timetable-master-sheet td strong {
  font-size: 13px;
}

.timetable-master-sheet td small {
  font-size: 10px;
}

.timetable-designer-sheet.school-traditional {
  border: 2px solid #111;
  color: #111;
  background: #f7f7f3;
}

.timetable-designer-sheet.school-traditional h2 {
  color: #111;
}

.timetable-designer-sheet.school-traditional th,
.timetable-designer-sheet.school-traditional td {
  border: 2px solid #111;
  background: rgba(255, 255, 255, 0.72);
}

.timetable-designer-sheet.school-traditional th {
  background: #f0f0ec;
}

.timetable-designer-sheet.classic-black {
  border-color: #222;
  background: #f4f4f0;
}

.timetable-designer-sheet.classic-black th,
.timetable-designer-sheet.classic-black td {
  border-color: #333;
}

.timetable-designer-sheet.classic-black h2 {
  font-family: SimSun, "Microsoft YaHei", serif;
  font-size: 38px;
  font-weight: 500;
}

.timetable-designer-sheet.jade-oat {
  border-color: #b8cfc3;
  background:
    linear-gradient(135deg, rgba(246, 250, 248, 0.96), rgba(255, 251, 241, 0.94)),
    #fffef8;
}

.timetable-designer-sheet.jade-oat th {
  color: #12392b;
  background: #e5f3eb;
}

.timetable-designer-sheet.jade-oat h2 {
  color: #0d6b45;
}

.timetable-designer-sheet.spring-green {
  border: 10px solid #98f23d;
  background:
    linear-gradient(180deg, #eaffc8 0 70px, rgba(255, 255, 255, 0.92) 70px),
    #ffffff;
}

.timetable-designer-sheet.spring-green .designer-decoration::before {
  content: "";
  position: absolute;
  left: -28px;
  bottom: -18px;
  width: 260px;
  height: 80px;
  border-radius: 50% 50% 0 0;
  background: linear-gradient(135deg, #55d653, #b7ff64);
  opacity: 0.78;
}

.timetable-designer-sheet.spring-green h2 {
  color: #0d6b2c;
}

.timetable-designer-sheet.spring-green th {
  background: #e8f5c9;
}

.timetable-designer-sheet.botanical-frame {
  border-color: #7f9489;
  background:
    radial-gradient(circle at 7% 10%, rgba(128, 164, 143, 0.24), transparent 22%),
    radial-gradient(circle at 96% 88%, rgba(128, 164, 143, 0.18), transparent 20%),
    #fffdfa;
}

.timetable-designer-sheet.botanical-frame::before {
  content: "";
  position: absolute;
  inset: 14px;
  border: 2px dotted #7f9489;
  pointer-events: none;
}

.timetable-designer-sheet.botanical-frame h2 {
  font-size: 48px;
  font-weight: 900;
}

.timetable-designer-sheet.sunshine-rainbow {
  border-color: #ffc400;
  background:
    radial-gradient(circle at 86% 7%, #ffca29 0 34px, transparent 35px),
    linear-gradient(180deg, #fffdf5 0 72%, #fff8e7 72%),
    #fffdf5;
}

.timetable-designer-sheet.sunshine-rainbow h2 {
  color: #fff;
  background: #ffc000;
  border-radius: 8px;
  padding: 10px;
  font-size: 30px;
}

.timetable-designer-sheet.sunshine-rainbow th {
  color: #66717a;
  background: #fff9df;
}

.timetable-designer-sheet.sunshine-rainbow .designer-decoration::after {
  content: "";
  position: absolute;
  left: 6%;
  right: 6%;
  bottom: -38px;
  height: 120px;
  border-top: 10px solid #ff4f4f;
  border-radius: 50% 50% 0 0;
  box-shadow: 0 -16px 0 #ffc000, 0 -32px 0 #38c96d, 0 -48px 0 #35a7ff;
  opacity: 0.82;
}

.timetable-base-settings {
  border-color: rgba(45, 214, 255, 0.28);
  background:
    linear-gradient(145deg, rgba(24, 31, 70, 0.66), rgba(11, 16, 39, 0.72)),
    linear-gradient(120deg, rgba(80, 238, 143, 0.06), rgba(45, 214, 255, 0.08));
}

.teacher-assignment-panel {
  border-color: rgba(80, 238, 143, 0.32);
  background:
    linear-gradient(145deg, rgba(16, 38, 40, 0.72), rgba(11, 16, 39, 0.72)),
    linear-gradient(120deg, rgba(80, 238, 143, 0.08), rgba(255, 213, 112, 0.05));
}

.teacher-assignment-form {
  display: grid;
  grid-template-columns: 1.1fr 1fr 1fr 0.65fr;
  gap: 10px;
}

.teacher-assignment-form label,
.timetable-assignment-schedule {
  display: grid;
  gap: 6px;
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 8px;
  padding: 10px;
  color: #eef4ff;
  background: rgba(12, 18, 42, 0.62);
}

.teacher-assignment-form span,
.timetable-assignment-schedule span {
  color: #dbe7ff;
  font-size: 12px;
  font-weight: 900;
}

.teacher-assignment-form input,
.teacher-assignment-form select,
.timetable-assignment-schedule textarea {
  width: 100%;
  border: 1px solid rgba(139, 156, 255, 0.32);
  border-radius: 8px;
  padding: 9px 10px;
  color: #f8fbff;
  background: rgba(7, 12, 30, 0.72);
  font: inherit;
  font-weight: 800;
}

.teacher-artifact-center {
  border-color: rgba(80, 238, 143, 0.3);
  background:
    linear-gradient(145deg, rgba(16, 38, 40, 0.72), rgba(11, 16, 39, 0.72)),
    linear-gradient(120deg, rgba(80, 238, 143, 0.08), rgba(255, 242, 214, 0.05));
}

.artifact-template-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
}

.artifact-template-card,
.artifact-output-panel {
  display: grid;
  gap: 6px;
  border: 1px solid rgba(139, 156, 255, 0.24);
  border-radius: 8px;
  padding: 11px;
  color: #eef4ff;
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.68), rgba(11, 16, 39, 0.7));
}

.artifact-template-card small,
.artifact-output-panel small {
  color: #dbe7ff;
}

.artifact-template-card span {
  width: fit-content;
  border-radius: 999px;
  padding: 4px 8px;
  color: #173426;
  background: #b8ffd0;
  font-size: 12px;
  font-weight: 900;
}

.artifact-render-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.artifact-render-form label {
  display: grid;
  gap: 6px;
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 8px;
  padding: 10px;
  color: #eef4ff;
  background: rgba(12, 18, 42, 0.62);
}

.artifact-render-form label.wide {
  grid-column: 1 / -1;
}

.artifact-render-form span {
  color: #dbe7ff;
  font-size: 12px;
  font-weight: 900;
}

.artifact-render-form input,
.artifact-render-form select,
.artifact-render-form textarea {
  width: 100%;
  border: 1px solid rgba(139, 156, 255, 0.32);
  border-radius: 8px;
  padding: 9px 10px;
  color: #f8fbff;
  background: rgba(7, 12, 30, 0.72);
  font: inherit;
  font-weight: 800;
}

.artifact-download-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.artifact-download-links a {
  border-radius: 999px;
  padding: 6px 10px;
  color: #07120c;
  background: linear-gradient(135deg, #b8ffd0, #41e997);
  font-size: 12px;
  font-weight: 900;
  text-decoration: none;
}

.fixed-template-center {
  border-color: rgba(45, 214, 255, 0.26);
  background:
    linear-gradient(145deg, rgba(13, 31, 38, 0.72), rgba(11, 16, 39, 0.72)),
    linear-gradient(120deg, rgba(45, 214, 255, 0.08), rgba(80, 238, 143, 0.06));
}

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

.fixed-template-center h4 {
  margin: 12px 0 8px;
  color: #f8fbff;
}

.fixed-template-card {
  display: grid;
  gap: 7px;
  border: 1px solid rgba(139, 156, 255, 0.24);
  border-radius: 8px;
  padding: 11px;
  color: #eef4ff;
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.68), rgba(11, 16, 39, 0.7));
}

.fixed-template-card small,
.fixed-template-card span {
  color: #dbe7ff;
}

.fixed-template-card b,
.warning-pill {
  width: fit-content;
  border-radius: 999px;
  padding: 4px 8px;
  color: #082018;
  background: #c9f7db;
  font-size: 12px;
  font-weight: 900;
}

.fixed-template-card button:disabled {
  cursor: default;
  opacity: 0.55;
}

.fixed-template-card pre {
  max-height: 120px;
  overflow: auto;
  white-space: pre-wrap;
  word-break: break-word;
  border: 1px solid rgba(139, 156, 255, 0.18);
  border-radius: 8px;
  padding: 8px;
  color: #f8fbff;
  background: rgba(3, 9, 23, 0.58);
}

.fixed-template-result pre {
  max-height: 260px;
  overflow: auto;
  margin: 0;
  border: 1px solid rgba(139, 156, 255, 0.26);
  border-radius: 8px;
  padding: 10px;
  color: #f8fbff;
  background: rgba(7, 12, 30, 0.72);
  white-space: pre-wrap;
}

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

.teacher-package-quick-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.teacher-package-quick-actions button {
  display: grid;
  min-height: 72px;
  gap: 4px;
  align-content: center;
  border: 1px solid rgba(80, 238, 143, 0.42);
  border-radius: 8px;
  padding: 12px 16px;
  color: #f8fff9;
  text-align: left;
  background: linear-gradient(135deg, rgba(28, 112, 72, 0.92), rgba(13, 63, 50, 0.94));
}

.teacher-package-quick-actions button.ai {
  border-color: rgba(246, 200, 95, 0.48);
  background: linear-gradient(135deg, rgba(111, 75, 24, 0.94), rgba(54, 43, 25, 0.96));
}

.teacher-package-quick-actions strong { font-size: 16px; }
.teacher-package-quick-actions small { color: #e1ece6; }

.teacher-tool-card {
  display: grid;
  min-height: 138px;
  gap: 8px;
  align-content: start;
  border: 1px solid rgba(139, 156, 255, 0.24);
  border-radius: 8px;
  padding: 14px;
  color: #eef4ff;
  text-align: left;
  background:
    linear-gradient(145deg, rgba(24, 31, 70, 0.72), rgba(11, 16, 39, 0.74)),
    linear-gradient(120deg, rgba(80, 238, 143, 0.08), rgba(45, 214, 255, 0.06));
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.16);
}

.teacher-tool-card:hover,
.teacher-tool-card.active {
  border-color: rgba(80, 238, 143, 0.58);
  transform: translateY(-1px);
}

.teacher-tool-card.priority {
  border-top: 3px solid #a8ff00;
  background:
    linear-gradient(145deg, rgba(22, 64, 54, 0.78), rgba(11, 16, 39, 0.76)),
    linear-gradient(120deg, rgba(80, 238, 143, 0.14), rgba(45, 214, 255, 0.08));
}

.teacher-tool-card.priority:nth-child(2) {
  border-top-color: #2dd6ff;
}

.teacher-tool-card.priority:nth-child(3) {
  border-top-color: #ff8b7b;
}

.teacher-tool-card.priority:nth-child(4) {
  border-top-color: #f6c85f;
}

.teacher-tool-card span {
  width: fit-content;
  border-radius: 999px;
  padding: 4px 8px;
  color: #082018;
  background: #c9f7db;
  font-size: 12px;
  font-weight: 900;
}

.teacher-tool-card strong {
  color: #ffffff;
  font-size: 17px;
}

.teacher-tool-card small {
  color: #dbe7ff;
  line-height: 1.55;
}

.teacher-tool-back {
  display: flex;
  justify-content: flex-start;
  margin: 10px 0;
}

.semester-assignment-panel {
  border-color: rgba(45, 214, 255, 0.3);
  background:
    linear-gradient(145deg, rgba(24, 31, 70, 0.72), rgba(11, 16, 39, 0.72)),
    linear-gradient(120deg, rgba(45, 214, 255, 0.08), rgba(80, 238, 143, 0.06));
}

.semester-assignment-stats {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.semester-assignment-table {
  display: grid;
  gap: 8px;
  max-height: 520px;
  overflow: auto;
  padding-right: 4px;
}

.semester-assignment-row {
  display: grid;
  grid-template-columns:
    46px
    minmax(120px, 0.8fr)
    minmax(90px, 0.7fr)
    minmax(120px, 0.8fr)
    minmax(220px, 1.5fr)
    minmax(88px, 0.6fr)
    minmax(130px, 0.8fr)
    minmax(92px, 0.6fr)
    minmax(92px, 0.6fr)
    minmax(110px, 0.7fr);
  gap: 8px;
  align-items: center;
  min-width: 1280px;
  border: 1px solid rgba(139, 156, 255, 0.24);
  border-radius: 8px;
  padding: 10px;
  color: #eef4ff;
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.74), rgba(11, 16, 39, 0.72));
}

.semester-assignment-head {
  border-color: rgba(80, 238, 143, 0.34);
  background: rgba(80, 238, 143, 0.12);
  color: #f8fbff;
  font-weight: 900;
}

.semester-assignment-row span,
.semester-assignment-row strong,
.semester-assignment-row small {
  overflow-wrap: anywhere;
}

.semester-archive-panel {
  display: grid;
  gap: 12px;
  margin-top: 14px;
  border: 1px solid rgba(45, 214, 255, 0.24);
  border-radius: 8px;
  padding: 12px;
  background: rgba(7, 12, 30, 0.46);
}

.semester-archive-list {
  display: grid;
  gap: 8px;
}

.semester-archive-row {
  display: grid;
  gap: 4px;
  border: 1px solid rgba(139, 156, 255, 0.24);
  border-radius: 8px;
  padding: 10px;
  color: #eef4ff;
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.68), rgba(11, 16, 39, 0.7));
}

.semester-archive-row small {
  color: #dbe7ff;
  overflow-wrap: anywhere;
}

.timetable-diagnostics-panel {
  border-color: rgba(255, 213, 112, 0.3);
}

.timetable-diagnostic-stats {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.timetable-diagnostic-list {
  max-height: 420px;
  overflow: auto;
  padding-right: 4px;
}

.timetable-diagnostic-row {
  display: grid;
  gap: 6px;
  border: 1px solid rgba(139, 156, 255, 0.26);
  border-radius: 8px;
  padding: 10px;
  color: #eef4ff;
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.74), rgba(11, 16, 39, 0.72));
}

.timetable-diagnostic-row span {
  width: fit-content;
  border-radius: 999px;
  padding: 4px 8px;
  color: #07120c;
  background: #dbe7ff;
  font-size: 12px;
  font-weight: 900;
}

.timetable-diagnostic-row.high {
  border-color: rgba(255, 142, 113, 0.56);
}

.timetable-diagnostic-row.high span {
  background: #ffb49f;
}

.timetable-diagnostic-row.medium {
  border-color: rgba(255, 213, 112, 0.42);
}

.timetable-diagnostic-row.medium span {
  background: #ffe29a;
}

.timetable-diagnostic-row.low span {
  background: #b8ffd0;
}

.timetable-diagnostic-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

@media (max-width: 920px) {
  .timetable-slot-edit-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .timetable-repair-suggestion {
    align-items: stretch;
    flex-direction: column;
  }
}

.timetable-day-structure,
.weekly-period-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.timetable-day-structure label,
.weekly-period-field,
.timetable-after-school-courses {
  display: grid;
  gap: 6px;
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 8px;
  padding: 10px;
  color: #eef4ff;
  background: rgba(12, 18, 42, 0.62);
}

.timetable-day-structure label span,
.weekly-period-field span,
.timetable-after-school-courses span {
  color: #dbe7ff;
  font-size: 12px;
  font-weight: 900;
}

.timetable-day-structure input,
.weekly-period-field input,
.timetable-after-school-courses textarea {
  width: 100%;
  border: 1px solid rgba(139, 156, 255, 0.32);
  border-radius: 8px;
  padding: 9px 10px;
  color: #f8fbff;
  background: rgba(7, 12, 30, 0.7);
  font: inherit;
  font-weight: 800;
}

.timetable-day-structure button {
  min-height: 56px;
  align-self: stretch;
  border: 0;
  border-radius: 8px;
  padding: 8px 12px;
  color: #07120c;
  background: linear-gradient(135deg, #b8ffd0, #41e997);
  font-weight: 900;
  cursor: pointer;
}

.timetable-after-school-courses {
  margin-top: 2px;
}

.after-school-cell {
  border-color: rgba(255, 213, 112, 0.42);
  background:
    linear-gradient(145deg, rgba(58, 45, 20, 0.72), rgba(11, 16, 39, 0.78)),
    linear-gradient(120deg, rgba(255, 213, 112, 0.08), rgba(80, 238, 143, 0.06));
}

.after-school-cell strong::before {
  content: "托管 · ";
  color: #ffe6a3;
}

.weekly-demand-audit {
  display: grid;
  gap: 12px;
  margin-top: 4px;
  border-top: 1px solid rgba(139, 156, 255, 0.22);
  padding-top: 14px;
}

.weekly-demand-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
  gap: 8px;
}

.weekly-demand-card {
  display: grid;
  gap: 4px;
  border: 1px solid rgba(139, 156, 255, 0.26);
  border-radius: 8px;
  padding: 10px;
  color: #eef4ff;
  background: rgba(12, 18, 42, 0.62);
}

.weekly-demand-card span,
.weekly-demand-card small {
  color: #dbe7ff;
  font-weight: 800;
}

.weekly-demand-card strong {
  color: #f8fbff;
  font-size: 18px;
}

.weekly-demand-card.available {
  border-color: rgba(80, 238, 143, 0.3);
}

.weekly-demand-card.balanced {
  border-color: rgba(45, 214, 255, 0.36);
}

.weekly-demand-card.over {
  border-color: rgba(255, 142, 113, 0.52);
  background: linear-gradient(145deg, rgba(62, 27, 28, 0.62), rgba(11, 16, 39, 0.72));
}

.notice.warning {
  border-left-color: #ff8e71;
  color: #ffe3d7;
  background: rgba(80, 28, 28, 0.36);
}

.weekly-demand-subject-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(176px, 1fr));
  gap: 8px;
}

.weekly-demand-subject-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 8px;
  align-items: center;
  border: 1px solid rgba(139, 156, 255, 0.24);
  border-radius: 8px;
  padding: 9px 10px;
  color: #eef4ff;
  background: rgba(7, 12, 30, 0.46);
}

.weekly-demand-subject-row strong {
  color: #f8fbff;
}

.weekly-demand-subject-row span {
  color: #b8ffd0;
  font-weight: 900;
}

.weekly-demand-subject-row small {
  grid-column: 1 / -1;
  color: #dbe7ff;
}

.weekly-demand-subject-row.configured {
  border-color: rgba(80, 238, 143, 0.34);
}

.timetable-rule-stats {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.timetable-rule-list {
  max-height: 360px;
  overflow: auto;
  padding-right: 4px;
}

.timetable-rule-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(180px, 0.45fr) auto;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 8px;
  padding: 10px;
  color: #eef4ff;
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.78), rgba(11, 16, 39, 0.72));
}

.timetable-rule-row span {
  border-radius: 999px;
  padding: 4px 8px;
  color: #07120c;
  background: linear-gradient(135deg, #b8ffd0, #41e997);
  font-size: 12px;
  font-weight: 900;
}

.timetable-rule-row strong,
.timetable-rule-row small {
  overflow-wrap: anywhere;
}

.class-period-grid,
.teacher-timetable-grid,
.relation-matrix-list {
  display: grid;
  gap: 10px;
}

.class-period-grid {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.class-period-card,
.teacher-timetable-card,
.relation-matrix-row {
  display: grid;
  gap: 8px;
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 8px;
  padding: 12px;
  color: #eef4ff;
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.78), rgba(11, 16, 39, 0.72));
}

.class-period-card span {
  color: #fff7df;
  font-size: 12px;
  font-weight: 900;
}

.teacher-timetable-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.mini-period-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.mini-period-strip .pill {
  align-self: center;
}

.relation-matrix-row {
  grid-template-columns: minmax(120px, 0.35fr) minmax(0, 1fr);
  align-items: start;
}

.relation-matrix-row > div {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.relation-chip {
  display: grid;
  gap: 2px;
  min-width: 120px;
  border: 1px solid rgba(80, 238, 143, 0.26);
  border-radius: 8px;
  padding: 7px 9px;
  background: rgba(31, 126, 84, 0.2);
}

.relation-chip.empty {
  border-color: rgba(255, 189, 74, 0.3);
  background: rgba(48, 38, 28, 0.36);
}

.relation-chip b {
  color: #f8fbff;
}

.relation-chip small {
  color: #dbe7ff;
}

.department-filter-block {
  display: grid;
  gap: 9px;
  margin: 12px 0;
  padding: 12px;
  border: 1px solid rgba(134, 255, 194, 0.18);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.045);
}

.department-filter-block strong {
  color: #f4fff9;
}

.department-filter-block button.active,
.platform-meta button.active {
  color: #062015;
  border-color: rgba(181, 255, 125, 0.78);
  background: linear-gradient(135deg, #31ec8a, #b5ff7d);
}

.office-document-workbench,
.office-document-list,
.office-document-create {
  display: grid;
  gap: 12px;
}

.office-document-head,
.office-document-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.office-document-head h3,
.office-document-card-head strong {
  color: #f7fff9;
}

.office-document-summary {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}

.office-document-summary .summary-card {
  min-height: 82px;
  border: 1px solid rgba(128, 239, 176, 0.22);
  border-radius: 8px;
  padding: 12px;
  color: #dff9e9;
  background: linear-gradient(145deg, rgba(28, 61, 47, 0.7), rgba(12, 22, 28, 0.78));
}

.office-document-summary .summary-card strong {
  display: block;
  margin-top: 8px;
  color: #b8ffd0;
  font-size: 24px;
}

.office-document-create,
.office-document-card {
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 8px;
  padding: 14px;
  color: #eef4ff;
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.8), rgba(11, 16, 39, 0.76));
}

.office-document-card.overdue {
  border-color: rgba(255, 112, 112, 0.72);
}

.office-document-card-head > div {
  display: grid;
  gap: 4px;
}

.office-document-card-head > div > span,
.office-document-card-head > b {
  color: #b8ffd0;
  font-size: 12px;
}

.office-document-card-head > b {
  border: 1px solid rgba(80, 238, 143, 0.32);
  border-radius: 999px;
  padding: 5px 9px;
  background: rgba(31, 126, 84, 0.2);
}

.office-document-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.office-document-form label,
.office-document-targets {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.office-document-form label > span,
.office-document-targets legend {
  color: #dce8ff;
  font-size: 12px;
  font-weight: 800;
}

.office-document-form .wide,
.office-document-targets {
  grid-column: 1 / -1;
}

.office-document-targets {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid rgba(139, 156, 255, 0.24);
  border-radius: 8px;
  padding: 10px;
}

.office-document-target {
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  border: 1px solid rgba(128, 239, 176, 0.16);
  border-radius: 8px;
  padding: 7px 8px;
  background: rgba(6, 15, 25, 0.34);
}

.office-document-target input {
  width: 16px;
  height: 16px;
}

.office-document-meta,
.office-document-feedback {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.office-document-meta span,
.office-document-feedback span {
  min-width: 0;
  border: 1px solid rgba(139, 156, 255, 0.18);
  border-radius: 8px;
  padding: 8px;
  color: #e8efff;
  background: rgba(5, 11, 28, 0.4);
  overflow-wrap: anywhere;
}

.office-document-feedback span {
  display: grid;
  gap: 3px;
}

.office-document-feedback span.completed {
  border-color: rgba(80, 238, 143, 0.38);
  background: rgba(31, 126, 84, 0.18);
}

.office-document-feedback small {
  color: #dce8ff;
}

.office-document-flow {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 6px;
}

.office-document-flow span {
  display: grid;
  gap: 4px;
  min-height: 60px;
  border: 1px solid rgba(139, 156, 255, 0.2);
  border-radius: 8px;
  padding: 8px;
  color: #dce8ff;
  background: rgba(5, 11, 28, 0.46);
}

.office-document-flow span.done {
  border-color: rgba(80, 238, 143, 0.34);
  color: #ddffea;
  background: rgba(31, 126, 84, 0.18);
}

.office-document-flow span.current {
  border-color: rgba(255, 209, 102, 0.58);
  color: #fff5cf;
  background: rgba(102, 74, 12, 0.28);
}

.office-document-flow small {
  color: inherit;
  opacity: 0.9;
}

.hr-record-workbench,
.hr-record-list,
.hr-record-create {
  display: grid;
  gap: 12px;
}

.hr-record-head,
.hr-record-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.hr-record-head h3,
.hr-record-card-head strong,
.hr-roster-card strong {
  color: #f7fff9;
}

.hr-record-summary {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}

.hr-record-summary article {
  min-height: 82px;
  border: 1px solid rgba(128, 239, 176, 0.22);
  border-radius: 8px;
  padding: 12px;
  color: #dff9e9;
  background: linear-gradient(145deg, rgba(28, 61, 47, 0.7), rgba(12, 22, 28, 0.78));
}

.hr-record-summary strong {
  display: block;
  margin-top: 8px;
  color: #b8ffd0;
  font-size: 24px;
}

.hr-record-create,
.hr-record-card,
.hr-roster-card {
  border: 1px solid rgba(139, 156, 255, 0.28);
  border-radius: 8px;
  padding: 14px;
  color: #eef4ff;
  background: linear-gradient(145deg, rgba(24, 31, 70, 0.8), rgba(11, 16, 39, 0.76));
}

.hr-record-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.hr-record-form label {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.hr-record-form label > span {
  color: #dce8ff;
  font-size: 12px;
  font-weight: 800;
}

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

.hr-record-form textarea,
.hr-record-form input[type="file"] {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.hr-record-form textarea {
  min-height: 86px;
  resize: vertical;
  line-height: 1.55;
}

.hr-record-form label > small {
  color: #c8d6ef;
  line-height: 1.45;
}

.safety-stage-editor,
.health-stage-editor {
  display: grid;
  gap: 12px;
  border-top: 1px solid rgba(139, 156, 255, 0.2);
  padding-top: 14px;
}

.safety-stage-editor h4,
.health-stage-editor h4 {
  margin: 0;
  color: #f3f7ff;
  font-size: 15px;
}

.hr-record-details button {
  justify-self: start;
  margin-top: 4px;
}

.hr-record-card-head > div {
  display: grid;
  gap: 4px;
}

.hr-record-card-head > div > span,
.hr-record-card-head > b {
  color: #b8ffd0;
  font-size: 12px;
}

.hr-record-card-head > b {
  border: 1px solid rgba(80, 238, 143, 0.32);
  border-radius: 999px;
  padding: 5px 9px;
  background: rgba(31, 126, 84, 0.2);
}

.hr-record-person,
.hr-record-details {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.hr-record-person span,
.hr-record-details span {
  min-width: 0;
  border: 1px solid rgba(139, 156, 255, 0.18);
  border-radius: 8px;
  padding: 8px;
  color: #e8efff;
  background: rgba(5, 11, 28, 0.4);
  overflow-wrap: anywhere;
}

.hr-record-details span {
  display: grid;
  gap: 3px;
}

.hr-record-details b {
  color: #b8ffd0;
  font-size: 11px;
}

.hr-record-details small {
  color: #eef4ff;
}

.hr-record-flow {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 6px;
}

.hr-record-flow span {
  display: grid;
  gap: 4px;
  min-height: 60px;
  border: 1px solid rgba(139, 156, 255, 0.2);
  border-radius: 8px;
  padding: 8px;
  color: #dce8ff;
  background: rgba(5, 11, 28, 0.46);
}

.hr-record-flow span.done {
  border-color: rgba(80, 238, 143, 0.34);
  color: #ddffea;
  background: rgba(31, 126, 84, 0.18);
}

.hr-record-flow span.current {
  border-color: rgba(255, 209, 102, 0.58);
  color: #fff5cf;
  background: rgba(102, 74, 12, 0.28);
}

.hr-record-flow small {
  color: inherit;
  opacity: 0.9;
}

.hr-roster-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
}

.hr-roster-card {
  display: grid;
  gap: 6px;
  align-content: start;
}

.hr-roster-card .avatar-token {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  color: #062016;
  background: linear-gradient(135deg, #31ec8a, #b5ff7d);
  font-weight: 900;
}

.hr-roster-card span,
.hr-roster-card small {
  color: #dce8ff;
  overflow-wrap: anywhere;
}

.finance-record-summary strong {
  font-size: 18px;
  overflow-wrap: anywhere;
}

.finance-record-card {
  border-color: rgba(239, 214, 167, 0.34);
}

.finance-compliance-checks {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.finance-compliance-checks span {
  border: 1px solid rgba(255, 189, 74, 0.34);
  border-radius: 999px;
  padding: 5px 9px;
  color: #fff5cf;
  background: rgba(102, 74, 12, 0.28);
  font-size: 12px;
  font-weight: 800;
}

.finance-compliance-checks span.passed {
  border-color: rgba(80, 238, 143, 0.34);
  color: #ddffea;
  background: rgba(31, 126, 84, 0.18);
}

.finance-ledger-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.finance-ledger-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 7px 12px;
  align-items: center;
  border: 1px solid rgba(239, 214, 167, 0.3);
  border-radius: 8px;
  padding: 12px;
  color: #eef4ff;
  background: linear-gradient(145deg, rgba(40, 34, 52, 0.78), rgba(11, 16, 39, 0.76));
}

.finance-ledger-row strong,
.finance-ledger-row b {
  color: #f8fbff;
}

.finance-ledger-row b {
  color: #b8ffd0;
}

.finance-ledger-row small {
  grid-column: 1 / -1;
  color: #dce8ff;
}

.logistics-record-summary strong {
  font-size: 18px;
  overflow-wrap: anywhere;
}

.logistics-record-card {
  border-color: rgba(45, 214, 255, 0.34);
}

.logistics-ledger-row {
  border-color: rgba(45, 214, 255, 0.3);
  background: linear-gradient(145deg, rgba(16, 45, 58, 0.78), rgba(11, 16, 39, 0.76));
}

.research-record-summary strong {
  font-size: 18px;
  overflow-wrap: anywhere;
}

.research-record-card {
  border-color: rgba(91, 220, 155, 0.38);
}

.research-record-form {
  border-color: rgba(91, 220, 155, 0.26);
}

.research-ledger-row {
  border-color: rgba(91, 220, 155, 0.32);
  background: linear-gradient(145deg, rgba(19, 54, 45, 0.8), rgba(11, 16, 39, 0.76));
}

.research-ledger-row b {
  color: #d8ffe7;
}

.safety-record-summary strong {
  font-size: 18px;
  overflow-wrap: anywhere;
}

.safety-record-card,
.safety-record-create {
  border-color: rgba(255, 189, 74, 0.38);
}

.safety-record-card .hr-record-card-head > b {
  border-color: rgba(255, 189, 74, 0.46);
  color: #fff5cf;
  background: rgba(102, 74, 12, 0.28);
}

.safety-ledger-row {
  border-color: rgba(255, 189, 74, 0.34);
  background: linear-gradient(145deg, rgba(58, 45, 19, 0.8), rgba(11, 16, 39, 0.76));
}

.safety-ledger-row b {
  color: #fff0b8;
}

.safety-privacy-note {
  border-color: rgba(255, 189, 74, 0.34);
  color: #fff8dc;
  background: rgba(82, 60, 16, 0.3);
}

.health-record-summary strong {
  font-size: 18px;
  overflow-wrap: anywhere;
}

.health-record-card,
.health-record-create {
  border-color: rgba(67, 210, 194, 0.4);
}

.health-record-card.critical {
  border-color: rgba(255, 112, 112, 0.68);
}

.health-ledger-row {
  border-color: rgba(67, 210, 194, 0.34);
  background: linear-gradient(145deg, rgba(15, 55, 56, 0.8), rgba(11, 16, 39, 0.76));
}

.health-ledger-row b {
  color: #c9fff6;
}

.health-privacy-note {
  border-color: rgba(67, 210, 194, 0.36);
  color: #e5fffb;
  background: rgba(12, 69, 67, 0.3);
}

.it-record-summary strong {
  font-size: 18px;
  overflow-wrap: anywhere;
}

.it-record-card,
.it-record-create {
  border-color: rgba(94, 164, 255, 0.42);
}

.it-record-card.high-risk {
  border-color: rgba(255, 112, 112, 0.68);
}

.it-record-card .hr-record-card-head > b {
  border-color: rgba(94, 164, 255, 0.45);
  color: #e8f2ff;
  background: rgba(31, 75, 131, 0.34);
}

.it-ledger-row {
  border-color: rgba(94, 164, 255, 0.34);
  background: linear-gradient(145deg, rgba(20, 44, 76, 0.82), rgba(11, 16, 39, 0.76));
}

.it-ledger-row b {
  color: #d9eaff;
}

.it-privacy-note,
.it-secret-warning {
  border-color: rgba(94, 164, 255, 0.38);
  color: #edf6ff;
  background: rgba(24, 58, 100, 0.34);
}

.it-secret-warning strong {
  color: #ffd6d6;
}

.it-room-filter {
  width: min(180px, 100%);
}

.library-lab-summary strong {
  font-size: 18px;
  overflow-wrap: anywhere;
}

.library-lab-card,
.library-lab-create {
  border-color: rgba(108, 205, 156, 0.42);
}

.library-lab-card.high-risk {
  border-color: rgba(255, 112, 112, 0.68);
}

.library-lab-card .hr-record-card-head > b {
  border-color: rgba(108, 205, 156, 0.46);
  color: #e5ffef;
  background: rgba(31, 91, 63, 0.34);
}

.library-lab-ledger-row {
  border-color: rgba(108, 205, 156, 0.34);
  background: linear-gradient(145deg, rgba(20, 60, 44, 0.82), rgba(11, 16, 39, 0.76));
}

.library-lab-ledger-row b {
  color: #d8ffe7;
}

.library-lab-privacy-note,
.library-lab-warning {
  border-color: rgba(108, 205, 156, 0.38);
  color: #effff5;
  background: rgba(24, 76, 52, 0.34);
}

.library-lab-room-filter {
  width: min(180px, 100%);
}

.youth-summary strong {
  font-size: 18px;
  overflow-wrap: anywhere;
}

.youth-card,
.youth-create {
  border-color: rgba(117, 206, 170, 0.42);
}

.youth-card.high-risk {
  border-color: rgba(245, 181, 78, 0.68);
}

.youth-card .hr-record-card-head > b {
  border-color: rgba(117, 206, 170, 0.46);
  color: #effff6;
  background: rgba(31, 91, 67, 0.36);
}

.youth-ledger-row {
  border-color: rgba(117, 206, 170, 0.34);
  background: linear-gradient(145deg, rgba(25, 66, 49, 0.82), rgba(29, 30, 42, 0.78));
}

.youth-ledger-row b {
  color: #fff0c8;
}

.youth-privacy-note,
.youth-warning {
  border-color: rgba(117, 206, 170, 0.38);
  color: #f4fff8;
  background: rgba(27, 75, 55, 0.36);
}

.youth-grade-filter,
.youth-class-filter {
  width: min(150px, 100%);
}

.bureau-summary strong {
  font-size: 18px;
  overflow-wrap: anywhere;
}

.bureau-card,
.bureau-create {
  border-color: rgba(90, 190, 184, 0.44);
}

.bureau-card.high-risk {
  border-color: rgba(245, 181, 78, 0.68);
}

.bureau-card .hr-record-card-head > b {
  border-color: rgba(90, 190, 184, 0.46);
  color: #effffd;
  background: rgba(21, 83, 79, 0.38);
}

.bureau-ledger-row {
  border-color: rgba(90, 190, 184, 0.34);
  background: linear-gradient(145deg, rgba(20, 67, 64, 0.84), rgba(28, 31, 43, 0.78));
}

.bureau-ledger-row b {
  color: #fff0c8;
}

.bureau-privacy-note,
.bureau-warning {
  border-color: rgba(90, 190, 184, 0.4);
  color: #f2fffd;
  background: rgba(21, 75, 71, 0.38);
}

.bureau-region-filter,
.bureau-school-filter {
  width: min(170px, 100%);
}

.family-service-summary strong {
  font-size: 18px;
  overflow-wrap: anywhere;
}

.family-service-card,
.family-service-create {
  border-color: rgba(130, 194, 151, 0.46);
}

.family-service-card.high-risk {
  border-color: rgba(231, 177, 91, 0.7);
}

.family-service-card .hr-record-card-head > b {
  border-color: rgba(130, 194, 151, 0.5);
  color: #f5fff7;
  background: rgba(39, 86, 58, 0.42);
}

.family-service-ledger-row {
  border-color: rgba(130, 194, 151, 0.38);
  background: rgba(35, 69, 49, 0.78);
}

.family-service-ledger-row b {
  color: #fff0c8;
}

.family-service-privacy-note,
.family-service-warning {
  border-color: rgba(130, 194, 151, 0.42);
  color: #f6fff8;
  background: rgba(39, 81, 55, 0.4);
}

.family-service-workbench [data-family-service-filter="grade"],
.family-service-workbench [data-family-service-filter="class"] {
  width: min(150px, 100%);
}

@media (max-width: 1100px) {
  .teacher-avatar-grid,
  .academic-interface-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .timetable-stat-grid,
  .lesson-detail-grid,
  .teacher-assignment-form,
  .artifact-render-form,
  .class-period-grid,
  .teacher-timetable-grid,
  .timetable-rule-stats,
  .timetable-day-structure,
  .weekly-period-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .office-document-summary,
  .office-document-flow,
  .hr-record-summary,
  .hr-record-flow {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .office-document-form,
  .office-document-meta,
  .office-document-feedback {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hr-record-form,
  .hr-record-person,
  .hr-record-details {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

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

  .timetable-rule-row {
    grid-template-columns: 1fr;
  }

  .master-timetable-row {
    grid-template-columns: minmax(110px, 1fr) repeat(7, minmax(92px, 1fr));
    min-width: 820px;
  }

  .grade-timetable-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .student-status-case-form,
  .student-status-case-details,
  .student-status-material-grid,
  .student-status-ocr-fields,
  .student-status-consistency-grid,
  .student-status-ocr-review-metrics,
  .student-status-exam-grid,
  .student-status-exam-reminders {
    grid-template-columns: 1fr;
  }

  .student-status-exam-toolbar {
    grid-template-columns: 1fr;
  }

  .student-status-case-wide {
    grid-column: auto;
  }
  .teacher-avatar-grid,
  .academic-interface-grid {
    grid-template-columns: 1fr;
  }

  .timetable-stat-grid,
  .lesson-detail-grid,
  .teacher-assignment-form,
  .class-period-grid,
  .teacher-timetable-grid,
  .timetable-rule-stats,
  .timetable-day-structure,
  .weekly-period-grid,
  .semester-assignment-stats,
  .relation-matrix-row {
    grid-template-columns: 1fr;
  }

  .office-document-head,
  .office-document-card-head {
    display: grid;
  }

  .hr-record-head,
  .hr-record-card-head {
    display: grid;
  }

  .office-document-summary,
  .office-document-flow,
  .office-document-form,
  .office-document-meta,
  .office-document-feedback,
  .office-document-targets {
    grid-template-columns: 1fr;
  }

  .hr-record-summary,
  .hr-record-flow,
  .hr-record-form,
  .hr-record-person,
  .hr-record-details {
    grid-template-columns: 1fr;
  }

  .finance-ledger-grid {
    grid-template-columns: 1fr;
  }
}
.student-safety-policy {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid rgba(72, 120, 93, 0.28);
  background: rgba(241, 246, 237, 0.76);
  margin: 14px 0;
}

.student-safety-policy article {
  min-width: 0;
  padding: 14px;
  border-right: 1px solid rgba(72, 120, 93, 0.2);
}

.student-safety-policy article:last-child {
  border-right: 0;
}

.student-safety-policy strong,
.student-safety-policy p {
  display: block;
  color: #173d2c;
}

.student-safety-policy p {
  margin: 6px 0 0;
  line-height: 1.65;
}

.student-safety-incident-card.high-risk {
  border-left: 4px solid #b94b45;
}

@media (max-width: 900px) {
  .student-safety-policy {
    grid-template-columns: 1fr 1fr;
  }

  .student-safety-policy article:nth-child(2) {
    border-right: 0;
  }
}

@media (max-width: 560px) {
  .student-safety-policy {
    grid-template-columns: 1fr;
  }

  .student-safety-policy article {
    border-right: 0;
    border-bottom: 1px solid rgba(72, 120, 93, 0.2);
  }

  .student-safety-policy article:last-child {
    border-bottom: 0;
  }
}

.student-evaluation-head,
.student-evaluation-card-head,
.student-evaluation-meta,
.student-evaluation-summary,
.student-evaluation-form,
.student-evaluation-details,
.student-evaluation-events {
  display: grid;
  gap: 10px;
}

.student-evaluation-head,
.student-evaluation-card-head {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
}

.student-evaluation-summary {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 14px 0;
}

.student-evaluation-summary article,
.student-evaluation-card,
.student-evaluation-create {
  border: 1px solid rgba(72, 120, 93, 0.28);
  background: rgba(250, 252, 248, 0.94);
  border-radius: 6px;
}

.student-evaluation-summary article {
  padding: 12px;
}

.student-evaluation-summary span,
.student-evaluation-summary strong {
  display: block;
  color: #173d2c;
}

.student-evaluation-summary strong {
  margin-top: 4px;
  font-size: 22px;
}

.student-evaluation-create,
.student-evaluation-card {
  padding: 16px;
  margin-top: 14px;
}

.student-evaluation-card.returned {
  border-left: 4px solid #b94b45;
}

.student-evaluation-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 12px 0;
}

.student-evaluation-form label,
.student-evaluation-form label span {
  display: block;
  min-width: 0;
}

.student-evaluation-form label span {
  margin-bottom: 6px;
  color: #294f3d;
  font-weight: 700;
}

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

.student-evaluation-form textarea {
  width: 100%;
  min-height: 78px;
  resize: vertical;
}

.student-evaluation-meta {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 12px 0;
}

.student-evaluation-meta span {
  color: #365b49;
}

.student-evaluation-details {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.student-evaluation-details span,
.student-evaluation-events span {
  min-width: 0;
  padding: 10px;
  background: rgba(232, 241, 232, 0.78);
  border-left: 3px solid #3d8a62;
}

.student-evaluation-details b,
.student-evaluation-details small,
.student-evaluation-events b,
.student-evaluation-events small,
.student-evaluation-events em {
  display: block;
  color: #173d2c;
}

.student-evaluation-details small,
.student-evaluation-events small,
.student-evaluation-events em {
  margin-top: 4px;
  line-height: 1.55;
}

.student-evaluation-events {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 12px;
}

@media (max-width: 900px) {
  .student-evaluation-summary,
  .student-evaluation-meta,
  .student-evaluation-events {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .student-evaluation-head,
  .student-evaluation-card-head,
  .student-evaluation-summary,
  .student-evaluation-form,
  .student-evaluation-meta,
  .student-evaluation-details,
  .student-evaluation-events {
    grid-template-columns: 1fr;
  }

  .student-evaluation-form .wide {
    grid-column: auto;
  }
}

.class-evaluation-batch-head,
.class-evaluation-batch-card-head,
.class-evaluation-batch-meta,
.class-evaluation-batch-summary,
.class-evaluation-source-grid,
.class-evaluation-batch-details,
.class-evaluation-batch-edit,
.class-evaluation-batch-events {
  display: grid;
  gap: 10px;
}

.class-evaluation-batch-head,
.class-evaluation-batch-card-head {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
}

.class-evaluation-batch-summary {
  grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
  margin: 14px 0;
}

.class-evaluation-batch-summary article,
.class-evaluation-source-card,
.class-evaluation-batch-card,
.class-evaluation-student-card,
.class-evaluation-batch-create {
  border: 1px solid rgba(72, 120, 93, 0.28);
  background: rgba(250, 252, 248, 0.96);
  border-radius: 6px;
}

.class-evaluation-batch-summary article,
.class-evaluation-source-card,
.class-evaluation-student-card {
  padding: 12px;
}

.class-evaluation-batch-summary span,
.class-evaluation-batch-summary strong,
.class-evaluation-source-card span,
.class-evaluation-source-card strong,
.class-evaluation-source-card small,
.class-evaluation-student-card span,
.class-evaluation-student-card strong {
  display: block;
  color: #173d2c;
}

.class-evaluation-batch-summary strong {
  margin-top: 4px;
  font-size: 22px;
}

.class-evaluation-batch-create,
.class-evaluation-batch-card,
.authorized-evaluation-summary-card {
  padding: 16px;
  margin-top: 14px;
}

.authorized-evaluation-summary-card {
  border: 1px solid rgba(72, 120, 93, 0.28);
  background: rgba(250, 252, 248, 0.96);
  border-radius: 6px;
}

.class-evaluation-batch-card.returned {
  border-left: 4px solid #b94b45;
}

.class-evaluation-source-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 12px;
}

.class-evaluation-source-card p,
.class-evaluation-student-card p {
  color: #365b49;
  line-height: 1.55;
}

.class-evaluation-batch-meta {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 12px 0;
}

.class-evaluation-batch-meta span {
  color: #365b49;
}

.class-evaluation-batch-details,
.class-evaluation-batch-edit {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.class-evaluation-batch-details span {
  padding: 10px;
  background: rgba(232, 241, 232, 0.78);
  border-left: 3px solid #3d8a62;
}

.class-evaluation-batch-details b,
.class-evaluation-batch-details small,
.class-evaluation-batch-edit label span {
  display: block;
  color: #173d2c;
}

.class-evaluation-batch-details small {
  margin-top: 4px;
  line-height: 1.55;
}

.class-evaluation-batch-edit label:last-child {
  grid-column: 1 / -1;
}

.class-evaluation-batch-edit textarea {
  width: 100%;
  min-height: 84px;
  margin-top: 6px;
  resize: vertical;
}

.class-evaluation-student-summaries {
  margin-top: 12px;
}

.class-evaluation-student-summaries summary {
  color: #173d2c;
  cursor: pointer;
  font-weight: 700;
}

.class-evaluation-student-summaries > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}

.class-evaluation-student-card div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}

.class-evaluation-batch-events {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 12px;
}

.class-evaluation-batch-events span {
  min-width: 0;
  padding: 10px;
  background: rgba(232, 241, 232, 0.78);
  border-left: 3px solid #3d8a62;
}

.class-evaluation-batch-events b,
.class-evaluation-batch-events small,
.class-evaluation-batch-events em {
  display: block;
  color: #173d2c;
}

.class-evaluation-batch-events small,
.class-evaluation-batch-events em {
  margin-top: 4px;
  line-height: 1.5;
}

@media (max-width: 1000px) {
  .class-evaluation-batch-summary,
  .class-evaluation-source-grid,
  .class-evaluation-batch-meta,
  .class-evaluation-batch-events {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .class-evaluation-batch-head,
  .class-evaluation-batch-card-head,
  .class-evaluation-batch-summary,
  .class-evaluation-source-grid,
  .class-evaluation-batch-meta,
  .class-evaluation-batch-details,
  .class-evaluation-batch-edit,
  .class-evaluation-batch-events,
  .class-evaluation-student-summaries > div {
    grid-template-columns: 1fr;
  }

  .class-evaluation-batch-edit label:last-child {
    grid-column: auto;
  }

  .class-evaluation-student-card div {
    display: block;
  }
}

.semester-growth-head,
.semester-growth-card-head,
.semester-growth-summary,
.semester-growth-create-form,
.semester-growth-meta,
.semester-growth-details,
.semester-growth-dimensions,
.semester-growth-events {
  display: grid;
  gap: 10px;
}

.semester-growth-head,
.semester-growth-card-head {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
}

.semester-growth-summary {
  grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
  margin: 14px 0;
}

.semester-growth-summary article,
.semester-growth-create,
.semester-growth-card {
  border: 1px solid rgba(72, 120, 93, 0.28);
  background: rgba(250, 252, 248, 0.96);
  border-radius: 6px;
}

.semester-growth-summary article {
  min-width: 0;
  padding: 12px;
}

.semester-growth-summary span,
.semester-growth-summary strong {
  display: block;
  color: #173d2c;
}

.semester-growth-summary strong {
  margin-top: 4px;
  font-size: 22px;
}

.semester-growth-create,
.semester-growth-card {
  padding: 16px;
  margin-top: 14px;
}

.semester-growth-card.disputed {
  border-left: 4px solid #b94b45;
}

.semester-growth-create-form {
  grid-template-columns: minmax(180px, 1.2fr) minmax(220px, 1fr) auto;
  align-items: end;
  margin: 12px 0;
}

.semester-growth-create-form label span {
  display: block;
  margin-bottom: 6px;
  color: #173d2c;
  font-weight: 700;
}

.semester-growth-create-form input,
.semester-growth-create-form select,
.semester-growth-head select {
  width: 100%;
}

.semester-growth-card-head strong,
.semester-growth-card-head span {
  display: block;
  color: #173d2c;
}

.semester-growth-card-head strong {
  margin-top: 4px;
  font-size: 18px;
}

.semester-growth-card-head > b {
  color: #225f42;
}

.semester-growth-meta {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 12px 0;
}

.semester-growth-meta span {
  min-width: 0;
  color: #365b49;
}

.semester-growth-details {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.semester-growth-dimensions {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 12px 0;
}

.semester-growth-dimensions > span {
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(72, 120, 93, 0.22);
  background: rgba(244, 249, 244, 0.92);
}

.semester-growth-dimensions > span.missing {
  border-color: rgba(178, 121, 32, 0.42);
  background: rgba(255, 247, 224, 0.92);
}

.semester-growth-dimensions b,
.semester-growth-dimensions small {
  display: block;
  color: #173d2c;
}

.semester-growth-dimensions small {
  margin-top: 4px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.semester-growth-details > span {
  min-width: 0;
  padding: 10px;
  background: rgba(232, 241, 232, 0.78);
  border-left: 3px solid #3d8a62;
}

.semester-growth-details b,
.semester-growth-details small {
  display: block;
  color: #173d2c;
}

.semester-growth-details small {
  margin-top: 4px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.semester-growth-events {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 12px;
}

.semester-growth-events span {
  min-width: 0;
  padding: 10px;
  background: rgba(232, 241, 232, 0.78);
  border-left: 3px solid #3d8a62;
}

.semester-growth-events b,
.semester-growth-events small,
.semester-growth-events em {
  display: block;
  color: #173d2c;
}

.semester-growth-events small,
.semester-growth-events em {
  margin-top: 4px;
  line-height: 1.5;
}

.semester-growth-artifacts {
  margin-top: 12px;
}

.semester-growth-artifact-versions {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.semester-growth-artifact-versions > div {
  padding: 10px;
  border: 1px solid rgba(72, 120, 93, 0.22);
  background: rgba(244, 249, 244, 0.92);
}

.semester-growth-artifact-versions > div > strong {
  color: #173d2c;
}

@media (max-width: 1000px) {
  .semester-growth-meta,
  .semester-growth-dimensions,
  .semester-growth-events {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .semester-growth-head,
  .semester-growth-card-head,
  .semester-growth-summary,
  .semester-growth-create-form,
  .semester-growth-meta,
  .semester-growth-details,
  .semester-growth-dimensions,
  .semester-growth-events {
    grid-template-columns: 1fr;
  }
}

.grade-coordination-summary {
  margin: 14px 0;
  padding: 14px;
  border: 1px solid rgba(72, 120, 93, 0.26);
  border-radius: 6px;
  background: rgba(250, 252, 248, 0.96);
}

.grade-coordination-metrics,
.grade-coordination-columns {
  display: grid;
  gap: 10px;
}

.grade-coordination-metrics {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  margin: 12px 0;
}

.grade-coordination-metrics article,
.grade-coordination-columns > div {
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(72, 120, 93, 0.2);
  background: rgba(232, 241, 232, 0.72);
}

.grade-coordination-metrics span,
.grade-coordination-metrics strong,
.grade-coordination-columns > div > b,
.grade-coordination-columns > div > span {
  display: block;
  color: #173d2c;
}

.grade-coordination-metrics strong {
  margin-top: 4px;
  font-size: 21px;
}

.grade-coordination-columns {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grade-coordination-columns > div > span {
  padding-top: 9px;
  margin-top: 8px;
  border-top: 1px solid rgba(72, 120, 93, 0.16);
}

.grade-coordination-columns small,
.grade-coordination-columns strong {
  display: block;
  overflow-wrap: anywhere;
}

.grade-coordination-columns strong {
  margin-top: 3px;
  font-size: 12px;
}

.grade-coordination-columns em {
  display: block;
  margin-top: 9px;
  color: #557064;
}

@media (max-width: 900px) {
  .grade-coordination-columns {
    grid-template-columns: 1fr;
  }
}

/* Standalone account security page must not inherit the department console's
   dark neon heading and button treatments. */
.account-session-body h1,
.account-session-body h2,
.account-session-body h3 {
  color: #17231d;
}

.account-session-body .eyebrow {
  color: #17663d;
}

.account-session-body .back-home,
.account-session-body button {
  color: #ffffff;
  border: 1px solid #1f6b43;
  background: #1f6b43;
  box-shadow: none;
  text-decoration: none;
}

.account-session-body .back-home:hover,
.account-session-body button:hover:not(:disabled) {
  background: #174f33;
}

.account-session-body button:disabled {
  color: #718078;
  border-color: #cad7cf;
  background: #e6ece8;
  cursor: not-allowed;
}

.account-session-body .icon-button {
  width: 42px;
  min-width: 42px;
  padding: 0;
}

.account-session-body .empty-card,
.account-session-body .auth-result {
  color: #40564a;
  border: 1px solid #d7e4dc;
  background: #f3f7f4;
  box-shadow: none;
}

.account-session-body .auth-result:empty {
  display: none;
}

.teacher-material-workbench {
  border-top: 3px solid #246b45;
}

.teacher-material-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin: 16px 0 22px;
}

.teacher-material-business-summary {
  margin: 14px 0 18px;
  padding: 14px;
  border: 1px solid #cfe0d4;
  border-radius: 8px;
  background: #f7fbf8;
}

.teacher-material-business-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 12px;
}

.teacher-material-business-head h4 {
  margin: 0 0 4px;
  color: #173e2a;
}

.teacher-material-business-head p {
  margin: 0;
  color: #607267;
}

.teacher-material-business-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.teacher-material-business-card {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 12px;
  text-align: left;
  border: 1px solid #d7e4dc;
  border-radius: 6px;
  background: #fff;
  color: #193d2b;
}

button.teacher-material-business-card { cursor: pointer; }
.teacher-material-business-card:hover { border-color: #246b45; background: #edf6ef; }
.teacher-material-business-card.static { cursor: default; }
.teacher-material-business-card.static:hover { border-color: #d7e4dc; background: #fff; }
.teacher-material-business-card b { font-size: 22px; color: #174f33; }
.teacher-material-business-card span { font-weight: 700; overflow-wrap: anywhere; }
.teacher-material-business-card small { color: #607267; overflow-wrap: anywhere; }

.teacher-material-summary > div {
  display: grid;
  gap: 4px;
  padding: 14px;
  border: 1px solid #d7e4dc;
  background: #f3f7f4;
  border-radius: 6px;
}

.teacher-material-summary b {
  font-size: 24px;
  color: #174f33;
}

.teacher-material-summary span,
.teacher-material-template-card small,
.teacher-material-category-card small {
  color: #607267;
}

.teacher-material-section-head,
.teacher-material-form-head,
.teacher-material-breadcrumb {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 18px 0 12px;
}

.teacher-material-section-head h4,
.teacher-material-form-head h4 {
  margin: 0 0 4px;
  color: #173e2a;
}

.teacher-material-section-head p,
.teacher-material-form-head p {
  margin: 0;
  color: #607267;
}

.teacher-material-category-grid,
.teacher-material-template-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.teacher-material-category-card,
.teacher-material-template-card {
  min-height: 112px;
  padding: 16px;
  text-align: left;
  border: 1px solid #d2e0d6;
  border-radius: 6px;
  background: #fff;
  color: #193d2b;
  display: grid;
  align-content: start;
  gap: 8px;
}

.teacher-material-category-card:hover,
.teacher-material-template-card:hover,
.teacher-material-category-card.active,
.teacher-material-template-card.active {
  border-color: #246b45;
  background: #edf6ef;
}

.teacher-material-category-card strong,
.teacher-material-template-card strong {
  font-size: 16px;
}

.material-category-icon {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  color: #fff;
  background: #246b45;
  font-size: 13px;
}

.teacher-material-template-card div {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.teacher-material-template-card div span {
  color: #7b5b19;
  font-size: 12px;
}

.teacher-material-breadcrumb {
  justify-content: flex-start;
  color: #607267;
}

.teacher-material-breadcrumb button {
  border: 0;
  padding: 0;
  background: transparent;
  color: #246b45;
}

.teacher-material-generate-box {
  padding: 16px;
  border: 1px dashed #a9c6b2;
  background: #f6faf7;
  border-radius: 6px;
}

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

.teacher-material-field {
  display: grid;
  gap: 6px;
}

.teacher-material-field > span {
  color: #284c37;
  font-weight: 700;
}

.teacher-material-field em {
  color: #b34b34;
  font-style: normal;
  font-size: 12px;
}

.teacher-material-field i {
  color: #718078;
  font-style: normal;
  font-size: 12px;
}

.teacher-material-field input,
.teacher-material-field textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #c9d9ce;
  border-radius: 4px;
  padding: 9px 10px;
  font: inherit;
  color: #213a2b;
  background: #fff;
}

.teacher-material-confirm {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 18px 0;
  color: #53665a;
}

@media (max-width: 760px) {
  .teacher-material-summary,
  .teacher-material-category-grid,
  .teacher-material-template-grid,
  .teacher-material-field-grid {
    grid-template-columns: 1fr;
  }

  .teacher-material-section-head,
  .teacher-material-form-head,
  .teacher-material-business-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .teacher-material-business-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
  .teacher-material-business-grid { grid-template-columns: 1fr; }
}
/* Teacher annual material self-check queue */
.teacher-material-attention { margin: 14px 0; border: 1px solid rgba(56, 112, 78, .22); border-radius: 8px; background: rgba(246, 251, 247, .82); }
.teacher-material-attention summary { cursor: pointer; padding: 11px 14px; font-weight: 700; color: #205d3c; }
.teacher-material-attention-list { display: grid; gap: 8px; padding: 0 12px 12px; }
.teacher-material-attention-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px; padding: 9px 10px; border-top: 1px solid rgba(56, 112, 78, .14); }
.teacher-material-attention-row strong, .teacher-material-attention-row small { display: block; }
.teacher-material-attention-row small { margin-top: 3px; color: #65756b; }
.teacher-material-attention-row .pill.high { color: #a2382f; }
.teacher-material-reference-panel { margin: 14px 0; padding: 14px; border: 1px solid rgba(56, 112, 78, .22); border-radius: 8px; background: rgba(246, 251, 247, .82); }
.teacher-material-reference-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 10px; }
.teacher-material-reference-card { display: grid; gap: 5px; min-width: 0; padding: 11px; border: 1px solid rgba(56, 112, 78, .16); border-radius: 6px; background: #fff; }
.teacher-material-reference-card strong { color: #205d3c; }
.teacher-material-reference-card span { color: #6b4a1f; font-size: 12px; font-weight: 700; }
.teacher-material-reference-card small, .teacher-material-reference-card p { margin: 0; color: #65756b; overflow-wrap: anywhere; }
.teacher-material-reference-row { display: grid; grid-template-columns: auto auto minmax(0, 1fr); gap: 6px; align-items: baseline; padding-top: 5px; border-top: 1px solid rgba(56, 112, 78, .12); }
.teacher-material-reference-row small { min-width: 0; }
.teacher-material-reference-editor { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)); gap: 8px; margin-top: 12px; }
.teacher-material-reference-editor input { min-width: 0; padding: 9px 10px; border: 1px solid rgba(56, 112, 78, .24); border-radius: 6px; background: #fff; }
.teacher-material-reference-editor textarea { grid-column: 1 / -1; min-width: 0; padding: 9px 10px; border: 1px solid rgba(56, 112, 78, .24); border-radius: 6px; background: #fff; resize: vertical; }
.teacher-material-reference-editor button { padding: 8px 12px; }
@media (max-width: 760px) { .teacher-material-reference-grid, .teacher-material-reference-editor { grid-template-columns: 1fr; } .teacher-material-reference-row { grid-template-columns: 1fr; } .teacher-material-reference-editor textarea { grid-column: auto; } }
@media (max-width: 640px) { .teacher-material-attention-row { grid-template-columns: minmax(0, 1fr) auto; } .teacher-material-attention-row button { grid-column: 1 / -1; justify-self: start; } }
.portal-config-class-list { display: grid; gap: 8px; margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(44, 101, 68, .16); }
.portal-config-class-row { display: grid; grid-template-columns: minmax(180px, 1fr) 92px minmax(260px, auto); gap: 10px; align-items: center; padding: 10px; border: 1px solid rgba(44, 101, 68, .14); border-radius: 6px; background: #f8fbf9; }
.portal-config-class-row small { display: block; margin-top: 4px; color: #65756b; }
.portal-config-class-row input { width: 100%; box-sizing: border-box; padding: 8px; border: 1px solid #c9d9ce; border-radius: 4px; }
.portal-config-class-row.is-disabled { opacity: .68; border-style: dashed; }
@media (max-width: 880px) { .portal-config-class-row { grid-template-columns: 1fr; } }
.portal-governance-workbench { display: grid; gap: 18px; }
.portal-governance-space-bar { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) auto; gap: 10px; align-items: end; padding: 14px; border: 1px solid rgba(44, 101, 68, .18); border-radius: 6px; background: #f6faf7; }
.portal-governance-space-bar label, .portal-governance-create-space label { display: grid; gap: 5px; }
.portal-governance-space-bar label span, .portal-governance-create-space label span { color: #385542; font-size: 12px; font-weight: 700; }
.portal-governance-space-bar select, .portal-governance-create-space select { min-width: 0; padding: 9px 10px; border: 1px solid #c9d9ce; border-radius: 4px; background: #fff; }
.portal-governance-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.portal-governance-columns > section, .portal-governance-create-space, .portal-governance-conflicts { padding: 14px; border: 1px solid rgba(44, 101, 68, .16); border-radius: 6px; background: #fff; }
.portal-governance-item-list, .portal-governance-change-list { display: grid; gap: 8px; }
.portal-governance-item-row, .portal-governance-diff-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px; border: 1px solid rgba(44, 101, 68, .13); border-radius: 5px; background: #f8fbf9; }
.portal-governance-item-row small, .portal-governance-change-list small, .portal-governance-diff-row small { display: block; margin-top: 4px; color: #65756b; overflow-wrap: anywhere; }
.portal-governance-diff-row { grid-template-columns: minmax(180px, 1fr) auto minmax(180px, 1fr); }
.portal-governance-diff-row label { display: flex; align-items: center; gap: 8px; }
.portal-governance-draft.active { border-color: #246b45; background: #edf6ef; }
.portal-governance-conflicts { border-color: rgba(179, 75, 52, .34); background: #fff8f5; }
@media (max-width: 900px) { .portal-governance-columns, .portal-governance-space-bar { grid-template-columns: 1fr; } .portal-governance-diff-row, .portal-governance-item-row { grid-template-columns: 1fr; } }

.school-module-activation-panel { display: grid; gap: 16px; }
.school-module-activation-group { padding: 12px 0; border-top: 1px solid rgba(44, 101, 68, .14); }
.school-module-activation-group:first-child { border-top: 0; }
.school-module-activation-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.school-module-activation-card { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 10px; align-items: start; cursor: pointer; }
.school-module-activation-card input { width: 18px; height: 18px; margin-top: 2px; accent-color: #2f7049; }
.school-module-activation-card span { min-width: 0; display: grid; gap: 5px; }
.school-module-activation-card small, .school-module-activation-card em, .school-module-activation-draft small { color: #647269; font-style: normal; overflow-wrap: anywhere; }
.school-module-activation-draft > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
@media (max-width: 760px) { .school-module-activation-grid { grid-template-columns: 1fr; } }
.school-launch-school { align-items: end; margin: 14px 0; }
.school-launch-check { min-height: 150px; border-left: 4px solid #a7b2bd; }
.school-launch-check.passed { border-left-color: #2f9e65; }
.school-launch-check.failed { border-left-color: #c94f57; }
.school-launch-check.pending { border-left-color: #d49432; }
.school-launch-check small, .school-launch-publication small { display: block; color: #647269; overflow-wrap: anywhere; }
.school-launch-publication { display: grid; gap: 6px; margin: 12px 0; padding: 12px; border: 1px solid rgba(44, 101, 68, .18); border-radius: 8px; background: rgba(255, 255, 255, .52); }
.school-launch-actions { justify-content: flex-start; }
.teacher-material-attachment-panel { grid-column: 1 / -1; margin-top: 10px; padding-top: 14px; border-top: 1px solid rgba(56, 112, 78, .2); }
.teacher-material-attachment-upload { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) auto; gap: 8px; margin: 10px 0; }
.teacher-material-attachment-list { display: grid; gap: 8px; }
.teacher-material-attachment-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px; border: 1px solid rgba(56, 112, 78, .16); border-radius: 6px; background: #fff; }
.teacher-material-attachment-row small, .teacher-material-attachment-row code { display: block; margin-top: 4px; overflow-wrap: anywhere; }
@media (max-width: 720px) { .teacher-material-attachment-upload, .teacher-material-attachment-row { grid-template-columns: 1fr; } }
.archive-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 54px;
  padding: 4px 7px;
  border: 1px solid #cbd8d1;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 700;
}

.archive-check.ready {
  color: #17613f;
  background: #edf8f1;
  border-color: #a8d0b9;
}

.archive-check.missing {
  color: #9b341c;
  background: #fff3ed;
  border-color: #edb9a8;
}

.archive-artifact-list {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}

.archive-artifact-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border-top: 1px solid #dce7e1;
}

.archive-artifact-row b {
  margin-right: auto;
}

.department-report-workbench { display: grid; gap: 14px; }
.department-report-head, .department-report-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.department-report-filter-grid { display: grid; grid-template-columns: repeat(3, minmax(150px, 1fr)); gap: 10px; }
.department-report-filter-grid label { display: grid; gap: 5px; min-width: 0; }
.department-report-filter-grid label span { color: #385542; font-size: 12px; font-weight: 700; }
.department-report-filter-grid input, .department-report-filter-grid select { min-width: 0; width: 100%; box-sizing: border-box; padding: 9px 10px; border: 1px solid #c9d9ce; border-radius: 4px; background: #fff; }
.department-report-search { grid-column: span 2; }
.department-report-summary { grid-template-columns: repeat(6, minmax(92px, 1fr)); }
.department-report-actions { justify-content: flex-start; }
.department-report-actions small { color: #65756b; }
.department-report-table code { font-size: 11px; overflow-wrap: anywhere; }
.department-report-state { display: inline-flex; padding: 3px 7px; border-radius: 4px; background: #edf4ef; color: #205d3c; font-size: 12px; font-weight: 700; }
.department-report-state.returned, .department-report-state.overdue { background: #fff0e9; color: #9b341c; }
.department-report-state.archived { background: #eef1f7; color: #46536c; }
.department-report-tabs { display: flex; gap: 4px; padding: 4px; border: 1px solid #c9d9ce; border-radius: 6px; background: #edf4ef; width: fit-content; max-width: 100%; overflow-x: auto; }
.department-report-tabs button { border: 0; background: transparent; color: #385542; padding: 8px 12px; white-space: nowrap; }
.department-report-tabs button.active { background: #174f36; color: #fff; }
.department-report-view { display: grid; gap: 14px; }
.department-report-definition-badge { padding: 8px 10px; border-left: 3px solid #33895c; background: #edf7f1; color: #28553d; font-size: 12px; }
.department-report-operations-summary { grid-template-columns: repeat(4, minmax(110px, 1fr)); }
.department-report-subscription-panel, .department-report-list-section, .department-report-definition-editor { display: grid; gap: 12px; padding: 14px; border: 1px solid #c9d9ce; border-radius: 6px; background: #f8fbf9; }
.department-report-section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.department-report-section-head h4, .department-report-list-section h4, .department-report-definition-editor h4 { margin: 0; }
.department-report-section-head span { color: #2f7350; font-size: 12px; font-weight: 700; }
.department-report-subscription-form { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: 10px; }
.department-report-subscription-form label { display: grid; gap: 5px; }
.department-report-subscription-form label span { color: #385542; font-size: 12px; font-weight: 700; }
.department-report-subscription-form select { width: 100%; min-width: 0; padding: 9px 10px; border: 1px solid #c9d9ce; border-radius: 4px; background: #fff; }
.department-report-inline-actions { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.department-report-inline-actions button { min-width: 42px; padding: 5px 7px; }
.department-report-metric-selector { display: flex; gap: 12px; flex-wrap: wrap; }
.department-report-metric-selector label { display: inline-flex; align-items: center; gap: 5px; }
.department-report-trend-summary { grid-template-columns: repeat(4, minmax(110px, 1fr)); }
.department-report-trend-summary small { display: block; margin-top: 4px; color: #64746a; }
.department-report-trend-panel { display: grid; gap: 10px; padding: 14px; border: 1px solid #c9d9ce; border-radius: 6px; background: #f8fbf9; color: #1f2a24; }
.department-report-trend-panel h4 { margin: 0; }
.department-report-trend-row { display: grid; grid-template-columns: minmax(92px, 130px) minmax(120px, 1fr) 42px 34px; gap: 9px; align-items: center; }
.department-report-trend-row > span, .department-report-trend-row > small { color: #53685b; font-size: 12px; }
.department-report-trend-row > strong { text-align: right; }
.department-report-trend-track { height: 12px; overflow: hidden; background: #dfeae3; border-radius: 3px; }
.department-report-trend-track i { display: block; height: 100%; background: #238554; }
.department-report-filter-grid select[multiple] { min-height: 112px; }
.department-report-check { display: inline-flex; align-items: center; gap: 7px; color: #385542; font-size: 13px; }
.department-report-collaboration-list, .department-report-evidence-list { display: grid; gap: 7px; margin-top: 8px; min-width: 220px; }
.department-report-collaboration-row, .department-report-evidence-row { display: grid; gap: 5px; padding-top: 7px; border-top: 1px solid #dce6df; }
.department-report-collaboration-row span, .department-report-evidence-row span { font-size: 12px; line-height: 1.45; }
.department-report-blockers { display: grid; gap: 3px; margin-top: 7px; color: #9b341c; }
.department-report-governance-summary { grid-template-columns: repeat(6, minmax(110px, 1fr)); }
.department-report-first-week-summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 16px 0; padding: 14px 16px; border: 1px solid var(--line, #d9e1e8); border-radius: 8px; background: var(--surface-muted, #f6f8fa); }
.department-report-first-week-summary > div:first-child { display: grid; gap: 4px; }
.department-report-first-week-summary > div:first-child span { color: var(--text-muted, #65727e); font-size: 12px; }
.department-report-first-week-metrics { display: flex; flex-wrap: wrap; gap: 14px; color: var(--text-muted, #65727e); font-size: 13px; }
.department-report-first-week-metrics strong { color: var(--text, #202b35); font-size: 17px; }
.department-governance-score { display: inline-grid; place-items: center; min-width: 46px; min-height: 32px; border: 1px solid #9fc6ae; border-radius: 4px; color: #174f36; background: #edf7f1; }
.department-governance-alerts { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.department-governance-alerts li { display: grid; grid-template-columns: auto minmax(100px, 160px) 1fr auto; gap: 9px; align-items: center; padding: 9px 0; border-bottom: 1px solid #dce6df; }
.department-governance-alerts small { color: #64746a; }
.department-report-state.high { background: #fff0e9; color: #9b341c; }
.department-report-state.medium { background: #fff8dc; color: #765b00; }
.department-report-state.due_for_review,
.department-report-state.disposition_review,
.department-report-state.disposal_execution_review_returned,
.department-report-state.replication_failed,
.department-report-state.integrity_check_failed { background: #fff0e9; color: #9b341c; }
.department-report-state.disposal_approved_pending_execution,
.department-report-state.disposal_execution_recorded_pending_final_verification,
.department-report-state.disposal_final_review_pending_second,
.department-report-state.replicated_pending_verification { background: #fff8dc; color: #765b00; }
.department-report-state.verified,
.department-report-state.remote_disposal_verified_tombstone { background: #e9f6ef; color: #176b50; }
.department-formal-provider { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 14px; border: 1px solid #c9d9ce; border-left: 4px solid #238554; background: #f5faf7; }
.department-formal-provider.pending { border-color: #e1c6a2; border-left-color: #b56a24; background: #fff9f1; }
.department-formal-provider > div { display: grid; gap: 3px; min-width: 0; }
.department-formal-provider span { color: #64746a; font-size: 12px; }
.department-formal-summary { grid-template-columns: repeat(4, minmax(110px, 1fr)); }
.department-formal-table { min-width: 1040px; }
.department-formal-table td { vertical-align: top; }
.department-formal-table td > strong,
.department-formal-table td > small { display: block; }
.department-formal-table td > small { margin-top: 4px; color: #64746a; }
.department-formal-attention { background: #fffaf4; }
@media (max-width: 900px) { .department-report-filter-grid, .department-report-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .department-report-search { grid-column: 1 / -1; } }
@media (max-width: 900px) { .department-report-subscription-form, .department-report-operations-summary, .department-report-trend-summary, .department-report-governance-summary, .department-formal-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .department-report-first-week-summary { align-items: flex-start; flex-direction: column; } .department-governance-alerts li { grid-template-columns: auto 1fr; } }
@media (max-width: 560px) { .department-report-filter-grid, .department-report-summary, .department-report-subscription-form, .department-report-operations-summary, .department-report-trend-summary, .department-report-governance-summary, .department-formal-summary { grid-template-columns: 1fr; } .department-report-search { grid-column: auto; } .department-report-tabs { width: 100%; } .department-report-trend-row { grid-template-columns: 90px minmax(80px, 1fr) 34px; } .department-report-trend-row > small { display: none; } .department-governance-alerts li { grid-template-columns: auto 1fr; } .department-formal-provider { align-items: stretch; flex-direction: column; } .department-formal-provider button { width: 100%; } }

/* Collective lesson planning workspace */
.collective-planning-workbench {
  display: grid;
  gap: 16px;
  color: #203429;
  border-color: #b8cec0;
  background: #f7faf8;
  box-shadow: none;
  letter-spacing: 0;
}

.collective-planning-workbench h3,
.collective-planning-workbench h4,
.collective-planning-workbench p {
  margin: 0;
}

.collective-planning-workbench h3,
.collective-planning-workbench h4,
.collective-planning-workbench strong {
  color: #183c2a;
}

.collective-planning-workbench small,
.collective-planning-workbench p {
  color: #607267;
  line-height: 1.55;
}

.collective-planning-workbench button {
  min-height: 36px;
  border: 1px solid #1f7248;
  border-radius: 6px;
  padding: 8px 13px;
  color: #fff;
  background: #246d48;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.collective-planning-workbench button:hover { background: #185b3a; }
.collective-planning-workbench button:disabled { cursor: not-allowed; opacity: .48; }
.collective-planning-workbench .inline-action { color: #205e3e; background: #fff; }
.collective-planning-workbench .inline-action:hover { background: #e9f4ed; }
.collective-planning-workbench .icon-button {
  display: inline-grid;
  place-items: center;
  width: 34px;
  min-width: 34px;
  min-height: 34px;
  padding: 0;
  border-color: #c6d6cb;
  color: #6b3d38;
  background: #fff;
  font-size: 20px;
}

.collective-head,
.collective-workspace-head,
.collective-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.collective-head > div,
.collective-workspace-head > div,
.collective-section-head > div { min-width: 0; }
.collective-head h3 { margin: 2px 0 5px; font-size: 22px; }
.collective-head .eyebrow { color: #246d48; }
.collective-planning-workbench > .notice {
  margin: 0;
  color: #60491b;
  border-left-color: #d29324;
  background: #fff8e7;
}

.collective-notice {
  padding: 10px 12px;
  border-left: 4px solid #2f78b7;
  color: #24445e;
  background: #eef6fc;
}

.collective-summary,
.collective-workspace-metrics {
  display: grid;
  grid-template-columns: repeat(6, minmax(92px, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid #c9d8ce;
  border-radius: 6px;
  background: #c9d8ce;
}

.collective-summary span,
.collective-workspace-metrics span {
  min-width: 0;
  padding: 11px 9px;
  color: #5d6f64;
  background: #fff;
  text-align: center;
  overflow-wrap: anywhere;
}

.collective-summary b,
.collective-workspace-metrics b {
  display: block;
  color: #17603c;
  font-size: 19px;
}

.collective-create {
  border-top: 1px solid #c9d8ce;
  border-bottom: 1px solid #c9d8ce;
  background: #eef5f0;
}

.collective-create summary {
  padding: 12px 14px;
  color: #174d34;
  font-weight: 800;
  cursor: pointer;
}

.collective-create-grid,
.collective-form-grid,
.collective-contribution-form,
.collective-recording-policy,
.collective-consensus-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 11px;
}

.collective-create-grid { padding: 0 14px 12px; }
.collective-create > button { margin: 0 14px 14px; }
.collective-create-grid label,
.collective-form-grid label,
.collective-contribution-form label,
.collective-recording-policy label,
.collective-consensus-grid label,
.collective-design-grid label,
.collective-material-form label {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.collective-planning-workbench label > span {
  color: #365747;
  font-size: 12px;
  font-weight: 800;
}

.collective-planning-workbench input,
.collective-planning-workbench select,
.collective-planning-workbench textarea {
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #bfcfc4;
  border-radius: 5px;
  padding: 9px 10px;
  color: #1f3529;
  background: #fff;
  font: inherit;
  letter-spacing: 0;
}

.collective-planning-workbench textarea { resize: vertical; }
.collective-planning-workbench input:disabled,
.collective-planning-workbench select:disabled,
.collective-planning-workbench textarea:disabled { color: #66766c; background: #edf1ee; }
.collective-create-grid .wide,
.collective-contribution-form .wide,
.collective-recording-policy .wide,
.collective-consensus-grid .wide { grid-column: 1 / -1; }

.collective-session-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 9px;
}

.collective-planning-workbench .collective-session-choice {
  display: grid;
  gap: 5px;
  min-height: 118px;
  padding: 12px;
  border-color: #c4d3c9;
  color: #263b2f;
  background: #fff;
  text-align: left;
}

.collective-session-choice:hover,
.collective-session-choice.active { border-color: #238452; background: #ecf6f0; }
.collective-session-choice span { color: #206944; font-size: 12px; font-weight: 800; }
.collective-session-choice small { overflow-wrap: anywhere; }

.collective-workspace {
  display: grid;
  gap: 14px;
  padding-top: 16px;
  border-top: 2px solid #a9c8b5;
}

.collective-workspace-head > div > span {
  display: inline-flex;
  margin-bottom: 5px;
  padding: 3px 7px;
  border-radius: 4px;
  color: #185b3a;
  background: #dff0e5;
  font-size: 12px;
  font-weight: 800;
}

.collective-workspace-head h3 { margin-bottom: 4px; font-size: 20px; }
.collective-flow-actions { display: flex; flex-wrap: wrap; gap: 7px; justify-content: flex-end; }
.collective-tabs {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 3px;
  padding: 4px;
  border: 1px solid #c3d2c8;
  border-radius: 6px;
  background: #e7efea;
}

.collective-planning-workbench .collective-tabs button {
  border: 0;
  color: #365747;
  background: transparent;
  white-space: normal;
}

.collective-planning-workbench .collective-tabs button:hover { background: #fff; }
.collective-planning-workbench .collective-tabs button.active { color: #fff; background: #1d6541; }
.collective-tab-panel { display: grid; gap: 18px; }
.collective-section {
  display: grid;
  gap: 12px;
  padding: 16px 0 0;
  border-top: 1px solid #d3dfd7;
}

.collective-tab-panel .collective-section:first-child { padding-top: 0; border-top: 0; }
.collective-section-head h4 { margin-bottom: 3px; font-size: 17px; }
.collective-section-head > span { color: #4f6659; font-size: 12px; font-weight: 800; white-space: nowrap; }
.collective-agenda-list,
.collective-participant-list,
.collective-contribution-list,
.collective-file-list,
.collective-task-list { display: grid; gap: 8px; }

.collective-agenda-row,
.collective-participant-row,
.collective-task-row,
.collective-file-row {
  display: grid;
  align-items: center;
  gap: 9px;
  padding: 10px 0;
  border-bottom: 1px solid #d8e2db;
}

.collective-agenda-row { grid-template-columns: minmax(220px, 2fr) minmax(120px, 1fr) 86px auto 34px; }
.collective-participant-row { grid-template-columns: minmax(130px, 1fr) minmax(120px, 1fr) 112px minmax(128px, auto) minmax(120px, auto) auto; }
.collective-participant-row > div:first-child { min-width: 0; }
.collective-participant-row small { display: block; margin-top: 2px; overflow-wrap: anywhere; }
.collective-task-row { grid-template-columns: minmax(210px, 2fr) minmax(110px, 1fr) 132px 112px auto auto; }
.collective-file-row { grid-template-columns: minmax(0, 1fr) auto; }
.collective-file-row small { display: block; margin-top: 3px; }
.collective-check {
  display: flex !important;
  align-items: center;
  gap: 7px;
  min-width: 0;
}

.collective-check input { width: 18px; height: 18px; flex: 0 0 auto; accent-color: #246d48; }
.collective-check span { min-width: 0; }
.collective-inline-form,
.collective-material-form,
.collective-recording-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  align-items: end;
  gap: 9px;
}

.collective-contribution-form { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 12px; background: #eef5f0; }
.collective-contribution-form button { justify-self: start; }
.collective-contribution {
  display: grid;
  gap: 7px;
  padding: 12px;
  border: 1px solid #cbd9d0;
  border-left: 4px solid #8ca397;
  border-radius: 6px;
  background: #fff;
}

.collective-contribution.adopted { border-left-color: #258153; }
.collective-contribution.partially_adopted { border-left-color: #d18b22; }
.collective-contribution.not_adopted { border-left-color: #b95752; }
.collective-contribution > div { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: baseline; }
.collective-contribution > div span { color: #51665a; font-size: 12px; }
.collective-contribution time { margin-left: auto; color: #75847b; font-size: 12px; }
.collective-contribution p { color: #24392d; white-space: pre-wrap; }
.collective-contribution small { padding-top: 5px; border-top: 1px solid #e1e8e3; }

.collective-design-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
}

.collective-base-package {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 10px 0 14px;
  border: 1px solid #badaca;
  border-left: 4px solid #24724b;
  border-radius: 8px;
  padding: 12px;
  background: #f1f8f4;
}

.collective-base-package > div:first-child {
  display: grid;
  min-width: 0;
  gap: 4px;
}

.collective-base-package span,
.collective-base-package small { color: #53685b; }
.collective-base-package.empty { display: grid; }

.collective-recording-policy { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 12px; background: #fff8e7; }
.collective-recording-actions { grid-template-columns: repeat(2, auto) minmax(190px, 1fr) auto; }
.collective-recording-preview {
  display: grid;
  grid-template-columns: minmax(0, 360px) minmax(150px, 1fr);
  align-items: center;
  gap: 14px;
  min-height: 52px;
  padding-top: 10px;
  border-top: 1px solid #d8e2db;
}

.collective-recording-preview video[hidden] { display: none; }
.collective-recording-preview video,
.collective-media-player video { width: 100%; max-height: 320px; background: #161d19; }
.collective-media-player { grid-column: 1 / -1; }
.collective-media-player audio { width: 100%; }

@media (max-width: 1060px) {
  .collective-summary,
  .collective-workspace-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .collective-create-grid,
  .collective-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .collective-participant-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .collective-participant-row .special-actions { justify-content: flex-start; }
  .collective-task-row { grid-template-columns: minmax(200px, 2fr) minmax(100px, 1fr) 130px 110px; }
}

@media (max-width: 760px) {
  .teacher-package-quick-actions { grid-template-columns: 1fr; }
  .collective-head,
  .collective-workspace-head,
  .collective-section-head { flex-direction: column; }
  .collective-flow-actions { justify-content: flex-start; }
  .collective-tabs { display: flex; overflow-x: auto; }
  .collective-tabs button { min-width: 116px; }
  .collective-create-grid,
  .collective-form-grid,
  .collective-contribution-form,
  .collective-recording-policy,
  .collective-consensus-grid,
  .collective-design-grid { grid-template-columns: 1fr; }
  .collective-create-grid .wide,
  .collective-contribution-form .wide,
  .collective-recording-policy .wide,
  .collective-consensus-grid .wide { grid-column: auto; }
  .collective-agenda-row,
  .collective-participant-row,
  .collective-task-row,
  .collective-inline-form,
  .collective-material-form,
  .collective-recording-actions,
  .collective-recording-preview { grid-template-columns: 1fr; }
  .collective-base-package { align-items: flex-start; flex-direction: column; }
  .collective-agenda-row .icon-button,
  .collective-task-row .icon-button { justify-self: start; }
}

@media (max-width: 480px) {
  .collective-planning-workbench { padding: 12px; }
  .collective-summary,
  .collective-workspace-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .collective-session-strip { grid-template-columns: 1fr; }
  .collective-contribution > div { align-items: flex-start; flex-direction: column; }
  .collective-contribution time { margin-left: 0; }
}

.operational-record-workbench {
  display: grid;
  gap: 16px;
}

.operational-record-head,
.operational-node-head,
.operational-section-title,
.operational-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.operational-record-head h3,
.operational-node-head h4,
.operational-section-title h4 {
  margin: 0;
}

.operational-node-head p {
  max-width: 760px;
  margin: 5px 0 0;
  color: var(--muted);
  line-height: 1.65;
}

.operational-node-head > span,
.operational-section-title > span {
  flex: 0 0 auto;
  color: #176b50;
  font-size: 12px;
  font-weight: 700;
}

.operational-summary {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.operational-record-card {
  position: relative;
  overflow: hidden;
}

.operational-card-head {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr) auto;
  align-items: center;
}

.operational-card-head > div {
  min-width: 0;
}

.operational-card-head strong {
  overflow-wrap: anywhere;
}

.operational-select {
  display: inline-grid;
  width: 22px;
  height: 22px;
  place-items: center;
  margin: 0;
}

.operational-select input {
  width: 18px;
  height: 18px;
  accent-color: #19795b;
}

.operational-record-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
}

.operational-flow {
  margin-top: 14px;
}

.operational-detail-grid {
  margin-top: 14px;
}

.operational-material-panel,
.operational-node-panel,
.operational-formal-panel {
  margin-top: 16px;
  padding-top: 15px;
  border-top: 1px solid #dbe6e1;
}

.operational-formal-panel {
  display: grid;
  gap: 12px;
}

.operational-formal-exports {
  align-items: center;
}

.operational-formal-statuses {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: #dbe6e1;
  border-left: 3px solid #238261;
}

.operational-formal-statuses > span {
  display: grid;
  gap: 3px;
  padding: 9px 11px;
  background: #f5f9f7;
}

.operational-formal-statuses small {
  color: var(--muted);
  font-size: 12px;
}

.operational-formal-row,
.operational-retention-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  align-items: end;
  gap: 10px;
}

.operational-formal-row label,
.operational-retention-row label,
.operational-retention-row > span {
  display: grid;
  min-width: 0;
  gap: 6px;
}

.operational-formal-row label span,
.operational-retention-row label span {
  color: #34433d;
  font-size: 13px;
  font-weight: 700;
}

.operational-formal-row select,
.operational-formal-row input,
.operational-retention-row input {
  width: 100%;
  min-width: 0;
}

.operational-retention-row {
  grid-template-columns: minmax(180px, 1fr) minmax(140px, 190px) auto;
  padding: 11px 12px;
  background: #f5f9f7;
  border-left: 3px solid #238261;
}

.operational-retention-row small,
.operational-policy-note {
  color: var(--muted);
  line-height: 1.6;
}

.operational-evidence-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.operational-evidence-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  padding: 10px 12px;
  color: inherit;
  text-decoration: none;
  background: #f5f9f7;
  border-left: 3px solid #238261;
}

.operational-evidence-item:hover {
  background: #edf6f2;
}

.operational-evidence-item span {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.operational-evidence-item b,
.operational-evidence-item small {
  overflow-wrap: anywhere;
}

.operational-evidence-item small,
.operational-evidence-item em,
.operational-evidence-empty {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
}

.operational-evidence-empty {
  padding: 11px 0;
}

.operational-node-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 13px;
}

.operational-node-fields label,
.operational-file-picker {
  display: grid;
  min-width: 0;
  gap: 6px;
}

.operational-node-fields label:has(textarea),
.operational-file-picker {
  grid-column: 1 / -1;
}

.operational-node-fields span,
.operational-file-picker span {
  color: #34433d;
  font-size: 13px;
  font-weight: 700;
}

.operational-node-fields input,
.operational-node-fields textarea,
.operational-file-picker input,
.operational-return-row textarea {
  width: 100%;
  min-width: 0;
}

.operational-file-picker {
  margin-top: 12px;
  padding: 11px 12px;
  background: #f6f8fb;
  border: 1px dashed #aebfca;
}

.operational-node-actions {
  justify-content: flex-end;
  margin-top: 12px;
}

.operational-return-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 10px;
  margin-top: 12px;
}

.operational-batch-panel {
  padding: 16px;
  background: #f4f8fb;
  border: 1px solid #bfd0dc;
  border-left: 4px solid #246f9c;
  border-radius: 6px;
}

.operational-batch-panel .control-actions {
  justify-content: flex-end;
  margin-top: 12px;
}

.bureau-platform-tools {
  display: grid;
  gap: 14px;
  padding: 16px 0;
  border-top: 1px solid #dbe6e1;
  border-bottom: 1px solid #dbe6e1;
}

.bureau-platform-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 14px;
  background: #f5f9f7;
  border-left: 4px solid #238261;
}

.bureau-platform-form label {
  display: grid;
  min-width: 0;
  gap: 6px;
}

.bureau-platform-form label span {
  color: #34433d;
  font-size: 13px;
  font-weight: 700;
}

.bureau-platform-form input,
.bureau-platform-form select,
.bureau-platform-form textarea {
  width: 100%;
  min-width: 0;
}

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

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

.bureau-platform-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 13px 14px;
  background: #fff;
  border: 1px solid #dbe6e1;
  border-radius: 6px;
}

.bureau-platform-row > div:not(.control-actions),
.bureau-platform-state {
  display: grid;
  min-width: 0;
  gap: 4px;
}

.bureau-platform-row span,
.bureau-platform-row small {
  color: var(--muted);
  overflow-wrap: anywhere;
}

.bureau-platform-row span {
  font-size: 12px;
  font-weight: 700;
}

.bureau-exchange-tools {
  display: grid;
  gap: 12px;
  padding-top: 14px;
  border-top: 1px solid #dbe6e1;
}

.bureau-exchange-summary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bureau-exchange-dispatch {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
  align-items: end;
  gap: 12px;
  padding: 14px;
  background: #f4f8fb;
  border: 1px solid #bfd0dc;
  border-left: 4px solid #246f9c;
  border-radius: 6px;
}

.bureau-exchange-dispatch label {
  display: grid;
  min-width: 0;
  gap: 6px;
}

.bureau-exchange-dispatch label span {
  color: #34433d;
  font-size: 13px;
  font-weight: 700;
}

.bureau-exchange-dispatch select {
  width: 100%;
  min-width: 0;
}

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

.bureau-exchange-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(240px, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 13px 14px;
  background: #fff;
  border: 1px solid #dbe6e1;
  border-radius: 6px;
}

.bureau-exchange-row.overdue {
  background: #fff8f3;
  border-color: #d99b72;
  border-left: 4px solid #b85c24;
}

.bureau-exchange-row > div:not(.control-actions) {
  display: grid;
  min-width: 0;
  gap: 4px;
}

.bureau-exchange-row span,
.bureau-exchange-row small {
  color: var(--muted);
  overflow-wrap: anywhere;
}

.bureau-exchange-row span {
  font-size: 12px;
  font-weight: 700;
}

.operational-create-panel .special-head h3 {
  margin: 0;
}

.primary-action {
  background: #176b50 !important;
  color: #fff !important;
}

.secondary-action {
  background: #eef3f6 !important;
  color: #31444f !important;
}

@media (max-width: 1120px) {
  .operational-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .bureau-platform-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bureau-platform-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bureau-platform-row > .control-actions,
  .bureau-exchange-row > .control-actions {
    grid-column: 1 / -1;
  }

  .bureau-exchange-dispatch,
  .bureau-exchange-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bureau-exchange-dispatch > button {
    grid-column: 1 / -1;
    justify-self: start;
  }
}

@media (max-width: 760px) {
  .app-shell {
    gap: 10px;
    max-width: 100%;
    min-width: 0;
    padding: 8px;
  }

  .sidebar {
    box-sizing: border-box;
    max-width: 100%;
    min-width: 0;
    min-height: 0;
    padding: 12px;
  }

  .sidebar .brand {
    margin-bottom: 10px;
  }

  .sidebar nav {
    display: none;
  }

  .sidebar nav button {
    display: none;
  }

  .sidebar-note {
    display: none;
  }

  .workspace {
    max-width: 100%;
    min-width: 0;
  }

  .operational-record-head,
  .operational-node-head,
  .operational-section-title {
    flex-direction: column;
  }

  .operational-card-head {
    grid-template-columns: 24px minmax(0, 1fr);
  }

  .operational-card-head > b {
    grid-column: 2;
    justify-self: start;
  }

  .operational-node-fields,
  .operational-return-row,
  .operational-formal-row,
  .operational-retention-row {
    grid-template-columns: 1fr;
  }

  .operational-formal-statuses {
    grid-template-columns: 1fr;
  }

  .operational-node-fields label:has(textarea),
  .operational-file-picker {
    grid-column: auto;
  }

  .operational-evidence-item {
    align-items: flex-start;
    flex-direction: column;
  }

  .bureau-platform-form,
  .bureau-platform-row,
  .bureau-exchange-dispatch,
  .bureau-exchange-row {
    grid-template-columns: 1fr;
  }

  .bureau-platform-form .wide,
  .bureau-platform-row > .control-actions,
  .bureau-exchange-dispatch > button,
  .bureau-exchange-row > .control-actions {
    grid-column: auto;
  }

  .bureau-exchange-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bureau-exchange-dispatch > button {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .family-school-delivery-summary .platform-meta,
  .family-provider-list > span {
    display: grid;
    grid-template-columns: 1fr;
  }

  .family-school-delivery-summary .pill {
    justify-self: stretch;
    white-space: normal;
  }

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

  .operational-node-actions,
  .operational-batch-panel .control-actions,
  .bureau-exchange-row > .control-actions {
    align-items: stretch;
    flex-direction: column;
  }
}
