/* Généré par scripts/build_frontend_css.py — ne pas modifier directement. */

/* Source : tokens/tokens-01.css */
:root {
  --cobalt-green: #3d9140;
  --lemon-yellow: #fff44f;
  --burnt-sienna: #e97451;
  --blue: #315ed6;
  --dictionary-blue: #0000ff;
  --ink: #101326;
  --muted: #4f587c;
  --line: #dee3ee;
  --surface: #ffffff;
  --surface-soft: #f8f9fe;
  --danger: #c92929;
  --green-soft: #ecf7ed;
  --yellow-soft: #fffbd1;
  --sienna-soft: #fff0ea;
  --blue-soft: #eef3ff;
  --radius: 18px;
  --shadow: 0 18px 42px rgba(49, 94, 214, 0.12);
  --page-gutter: clamp(10px, 2vw, 32px);
  --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --text-body: 1rem;
  --line-height-body: 1.5;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --layer-decoration: 0;
  --layer-content: 1;
  --layer-sticky: 20;
}

/* Source : pages/legacy-01.css */

.student-textbook-filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
  gap: 0.75rem;
  align-items: end;
}

.student-textbook-filters label,
.student-textbook-controls details nav {
  display: grid;
  gap: 0.35rem;
}

.student-textbook-table {
  margin-top: 1rem;
}

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

@media (max-width: 520px) {
  .student-textbook-filters {
    grid-template-columns: 1fr;
  }
}

@media print {
  .topbar,
  .legal-footer,
  .student-textbook-controls form,
  .textbook-heading-actions,
  .class-rail,
  .homework-card form {
    display: none !important;
  }

  .page-shell,
  .textbook-layout {
    display: block;
    max-width: none;
  }
}

.assessment-reminder-dialog[open] {
  box-sizing: border-box;
  color: inherit;
  margin: 1rem auto;
  max-width: min(48rem, calc(100% - 2rem));
  position: relative;
  width: 100%;
}

.assessment-reminder-dialog::backdrop {
  background: rgb(15 23 42 / 45%);
}

@media print {
  .evaluation-heading-actions,
  .evaluation-toolbar,
  .evaluation-metrics,
  .evaluation-block-library,
  .evaluation-editor,
  .evaluation-preview-modes,
  .evaluation-block-actions {
    display: none !important;
  }

  .evaluation-cms-grid,
  .evaluation-preview,
  .evaluation-mini-list {
    display: block;
    width: 100%;
    max-width: none;
    box-shadow: none;
  }

  .evaluation-mini-list > [data-block-card] {
    break-inside: avoid;
    margin-bottom: 10mm;
    opacity: 1;
  }

  .evaluation-mini-list > [data-block-card].is-hidden {
    display: none;
  }
}

/* Building directory: a compact, printable floor map backed by timetable rooms. */
.page-shell:has(.building-map-heading) {
  max-width: none;
  padding-top: 0;
}

.building-map-heading {
  align-items: center;
  background: linear-gradient(100deg, #f3faf5 0%, #fffef3 100%);
  border-bottom: 1px solid var(--line);
  border-top: 6px solid var(--cobalt-green);
  display: flex;
  gap: 24px;
  justify-content: space-between;
  margin-inline: calc(var(--page-gutter) * -1);
  padding: 18px var(--page-gutter);
}

.building-map-heading h1 {
  font-size: clamp(1.75rem, 3vw, 2.8rem);
  margin: 3px 0 5px;
}

.building-map-heading p,
.building-map-workspace header p {
  color: var(--muted);
  margin: 0;
}

.building-map-publish {
  align-items: end;
  display: grid;
  gap: 9px;
  grid-template-columns: auto minmax(90px, 130px) auto;
}

.building-map-publish label:not(.toggle-row) {
  display: grid;
  gap: 4px;
}

.building-map-publish label > span,
.building-map-publish small {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
}

.building-map-publish small {
  grid-column: 1 / -1;
}

.building-map-admin {
  display: grid;
  gap: 14px;
  margin-top: 16px;
}

.building-map-admin-summary {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.building-map-admin-summary article {
  background: var(--surface-soft, #f7f9fb);
  border: 1px solid var(--line);
  display: grid;
  gap: 3px;
  padding: 12px;
}

.building-map-admin-summary strong {
  color: var(--blue);
  font-size: 1.45rem;
}

.building-map-revisions {
  display: grid;
  gap: 8px;
}

.building-map-revisions article {
  align-items: center;
  border-top: 1px solid var(--line);
  display: flex;
  gap: 16px;
  justify-content: space-between;
  padding-top: 8px;
}

.building-map-revisions article > div {
  display: grid;
  gap: 2px;
}

.building-map-revisions span {
  color: var(--muted);
  font-size: 0.82rem;
}

.building-floor-rail {
  display: flex;
  gap: 0;
  margin-inline: calc(var(--page-gutter) * -1);
  overflow-x: auto;
  scrollbar-width: thin;
}

.building-floor-rail a {
  background: var(--surface);
  border-bottom: 1px solid var(--line);
  border-right: 1px solid var(--line);
  color: var(--ink);
  display: grid;
  flex: 0 0 min(190px, 42vw);
  gap: 2px;
  padding: 11px 16px;
}

.building-floor-rail a.is-selected {
  background: var(--blue-soft);
  border-bottom-color: var(--blue);
  box-shadow: inset 0 -3px var(--blue);
}

.building-floor-rail span {
  color: var(--muted);
  font-size: 0.8rem;
}

.building-map-workspace {
  background: var(--surface);
  border: 1px solid var(--line);
  margin-top: 16px;
  overflow: hidden;
}

.building-map-workspace > header {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  padding: 14px 18px;
}

.building-map-workspace h2 {
  margin: 0 0 3px;
}

.building-map-scroll {
  overflow-x: auto;
}

.building-map-canvas {
  background-color: #f4f6fa;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: calc(100% / 12) 10%;
  display: grid;
  gap: 7px;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: repeat(10, 36px);
  min-width: 760px;
  padding: 14px;
}

.building-route-planner {
  margin-top: 16px;
}

.building-route-planner form {
  align-items: end;
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.building-route-planner label {
  display: grid;
  font-weight: 750;
  gap: 6px;
}

.building-route-planner label:has(input[type="checkbox"]),
.building-route-planner button {
  align-self: center;
}

.building-route-error {
  border-left: 4px solid var(--orange, #b45309);
  margin-top: 16px;
  padding: 10px 12px;
}

@media (max-width: 700px) {
  .building-route-planner form {
    grid-template-columns: 1fr;
  }
}

@media print {
  .building-route-planner form,
  .building-floor-rail,
  [data-print-page] {
    display: none;
  }
}

/* Source : pages/legacy-02.css */

.building-room {
  background: var(--surface);
  border: 1px solid #c8d0df;
  border-left: 5px solid var(--blue);
  color: var(--ink);
  display: grid;
  min-height: 0;
  overflow: hidden;
  padding: 7px 9px;
  position: relative;
  transition: background-color 140ms ease, border-color 140ms ease, transform 140ms ease;
}

.building-room:hover,
.building-room:focus-visible {
  background: var(--blue-soft);
  border-color: var(--blue);
  outline: 3px solid color-mix(in srgb, var(--blue), transparent 72%);
  transform: translateY(-1px);
  z-index: 2;
}

.building-room strong,
.building-room span,
.building-room em {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.building-room span {
  color: var(--muted);
  font-size: 0.74rem;
}

.building-room em {
  color: var(--danger);
  font-size: 0.7rem;
  font-style: normal;
  font-weight: 900;
}

.building-room.is-closed {
  background: var(--sienna-soft);
  border-left-color: var(--danger);
}

.building-map-empty {
  align-self: center;
  color: var(--muted);
  grid-column: 1 / -1;
  justify-self: center;
}

.building-room-list {
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.building-room-list article {
  align-items: start;
  border-bottom: 1px solid var(--line);
  border-right: 1px solid var(--line);
  display: grid;
  gap: 12px;
  grid-template-columns: 42px minmax(0, 1fr);
  padding: 14px;
}

.building-room-list h3,
.building-room-list p,
.building-room-list ul {
  margin: 0;
}

.building-room-list ul {
  color: var(--muted);
  font-size: 0.82rem;
  padding-left: 18px;
}

.building-room-symbol {
  background: var(--blue-soft);
  color: var(--blue);
  display: grid;
  font-weight: 900;
  min-height: 42px;
  place-items: center;
}

.building-room-closure {
  color: var(--danger);
  font-weight: 800;
}

.room-col-1 { grid-column-start: 1; }
.room-col-2 { grid-column-start: 2; }
.room-col-3 { grid-column-start: 3; }
.room-col-4 { grid-column-start: 4; }
.room-col-5 { grid-column-start: 5; }
.room-col-6 { grid-column-start: 6; }
.room-col-7 { grid-column-start: 7; }
.room-col-8 { grid-column-start: 8; }
.room-col-9 { grid-column-start: 9; }
.room-col-10 { grid-column-start: 10; }
.room-col-11 { grid-column-start: 11; }
.room-col-12 { grid-column-start: 12; }
.room-row-1 { grid-row-start: 1; }
.room-row-2 { grid-row-start: 2; }
.room-row-3 { grid-row-start: 3; }
.room-row-4 { grid-row-start: 4; }
.room-row-5 { grid-row-start: 5; }
.room-row-6 { grid-row-start: 6; }
.room-row-7 { grid-row-start: 7; }
.room-row-8 { grid-row-start: 8; }
.room-row-9 { grid-row-start: 9; }
.room-row-10 { grid-row-start: 10; }
.room-colspan-1 { grid-column-end: span 1; }
.room-colspan-2 { grid-column-end: span 2; }
.room-colspan-3 { grid-column-end: span 3; }
.room-colspan-4 { grid-column-end: span 4; }
.room-colspan-5 { grid-column-end: span 5; }
.room-colspan-6 { grid-column-end: span 6; }
.room-colspan-7 { grid-column-end: span 7; }
.room-colspan-8 { grid-column-end: span 8; }
.room-colspan-9 { grid-column-end: span 9; }
.room-colspan-10 { grid-column-end: span 10; }
.room-colspan-11 { grid-column-end: span 11; }
.room-colspan-12 { grid-column-end: span 12; }
.room-rowspan-1 { grid-row-end: span 1; }
.room-rowspan-2 { grid-row-end: span 2; }
.room-rowspan-3 { grid-row-end: span 3; }
.room-rowspan-4 { grid-row-end: span 4; }
.room-rowspan-5 { grid-row-end: span 5; }
.room-rowspan-6 { grid-row-end: span 6; }
.room-rowspan-7 { grid-row-end: span 7; }
.room-rowspan-8 { grid-row-end: span 8; }
.room-rowspan-9 { grid-row-end: span 9; }
.room-rowspan-10 { grid-row-end: span 10; }

@media (max-width: 760px) {
  .tenant-settings-toolbar nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tenant-settings-toolbar nav a,
  [data-settings-section-form] .button[type="submit"] {
    width: 100%;
  }

  .building-map-heading,
  .building-map-workspace > header {
    align-items: stretch;
    display: grid;
  }

  .building-map-publish {
    grid-template-columns: 1fr;
  }

  .building-map-publish small {
    grid-column: auto;
  }

  .building-map-admin-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .building-map-revisions article {
    align-items: stretch;
    display: grid;
  }

  .building-room-list {
    grid-template-columns: 1fr;
  }
}

@media print {
  .topbar,
  .footer,
  .building-map-publish,
  .building-floor-rail,
  [data-print-page] {
    display: none !important;
  }

  .page-shell {
    padding: 0;
  }

  .building-map-heading {
    margin: 0;
  }

  .building-map-workspace {
    border: 0;
  }

  .building-map-canvas {
    min-width: 0;
  }
}

/* Pedagogical tracking: compact operational layouts shared by teachers and staff. */
.page-shell:has(.tracking-page),

/* Source : pages/legacy-03.css */
.page-shell:has(.tracking-empty) {
  padding-top: 0;
}

.tracking-page {
  display: grid;
  gap: 20px;
}

.tracking-heading {
  align-items: center;
  background: linear-gradient(100deg, #f3faf5 0%, #fffef3 100%);
  border-bottom: 1px solid var(--line);
  border-top: 6px solid var(--cobalt-green);
  display: flex;
  justify-content: space-between;
  margin-inline: calc(var(--page-gutter) * -1);
  padding: 22px var(--page-gutter);
}

.tracking-heading h1 {
  font-size: clamp(1.8rem, 3vw, 3rem);
  margin: 3px 0 6px;
}

.tracking-heading p {
  color: var(--muted);
  margin: 0;
}

.tracking-heading-actions,
.tracking-form-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.tracking-filters {
  align-items: end;
  background: #fff;
  border: 1px solid var(--line);
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(220px, 1fr) minmax(160px, 220px) minmax(140px, 200px) auto;
  padding: 14px;
}

.tracking-filters label,
.tracking-field,
.tracking-decision label {
  display: grid;
  gap: 6px;
}

.tracking-filters label > span,
.tracking-field > label,
.tracking-decision label > span {
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 800;
}

.tracking-section,
.tracking-form,
.tracking-decision {
  background: #fff;
  border: 1px solid var(--line);
  padding: 20px;
}

.tracking-section h2,
.tracking-section h3 {
  margin-top: 0;
}

.tracking-count {
  background: var(--blue);
  color: #fff;
  display: inline-grid;
  font-weight: 800;
  min-height: 34px;
  min-width: 34px;
  place-items: center;
}

.tracking-list {
  border-top: 1px solid var(--line);
}

.tracking-row {
  align-items: center;
  color: inherit;
  display: grid;
  gap: 12px;
  grid-template-columns: 42px minmax(0, 1fr) auto auto;
  padding: 12px 4px;
  text-decoration: none;
}

.tracking-row + .tracking-row {
  border-top: 1px solid var(--line);
}

.tracking-row:hover,
.tracking-row:focus-visible {
  background: #f5f8ff;
  outline: 2px solid transparent;
}

.tracking-avatar {
  background: #e9efff;
  border: 1px solid #ccd9fa;
  display: grid;
  font-weight: 900;
  height: 42px;
  place-items: center;
  width: 42px;
}

.tracking-row-main {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.tracking-row-main small {
  color: var(--muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tracking-status,
.tracking-priority {
  border: 1px solid var(--line);
  font-size: 0.76rem;
  font-weight: 900;
  padding: 6px 9px;
  white-space: nowrap;
}

.tracking-status.is-active,
.tracking-status.is-approved,
.tracking-status.is-completed {
  background: #edf8ef;
  border-color: #afd6b5;
  color: #21692d;
}

.tracking-status.is-submitted,
.tracking-status.is-needs_information {
  background: #fff9db;
  border-color: #e6d264;
  color: #745f00;
}

.tracking-status.is-rejected,
.tracking-status.is-cancelled {
  background: #fff0ee;
  border-color: #e8aea5;
  color: #8b2f22;
}

.tracking-priority.is-high,
.tracking-priority.is-urgent {
  border-color: var(--burnt-sienna);
  color: #8b321c;
}

.tracking-empty-row {
  color: var(--muted);
  margin: 0;
  padding: 18px 4px;
}

.tracking-notice {
  background: #fffbe2;
  border-left: 5px solid var(--lemon-yellow);
  padding: 14px 18px;
}

.tracking-detail-layout,
.tracking-form-split {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tracking-definition-list {
  display: grid;
  margin: 0;
}

.tracking-definition-list div {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(130px, 0.3fr) minmax(0, 1fr);
  padding: 13px 0;
}

/* Source : pages/legacy-04.css */

.tracking-definition-list dt {
  color: var(--muted);
  font-weight: 800;
}

.tracking-definition-list dd {
  margin: 0;
}

.tracking-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 18px;
}

.tracking-tags span {
  background: #edf2ff;
  border: 1px solid #cfdbf7;
  font-size: 0.8rem;
  font-weight: 800;
  padding: 6px 9px;
}

.tracking-attachments {
  padding-left: 20px;
}

.tracking-next-step,
.tracking-decision {
  align-items: center;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.tracking-decision label {
  flex: 1 1 420px;
}

.tracking-decision > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.tracking-form {
  display: grid;
  gap: 20px;
}

.tracking-form fieldset {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 0;
  padding: 18px 0 0;
}

.tracking-form legend {
  font-size: 1.1rem;
  font-weight: 900;
  padding-right: 12px;
}

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

.tracking-form-stack,
.tracking-sheet-form {
  display: grid;
  gap: 14px;
}

.tracking-field ul {
  display: grid;
  gap: 6px;
  list-style: none;
  margin: 0;
  max-height: 240px;
  overflow: auto;
  padding: 8px;
}

.tracking-field li label {
  align-items: center;
  display: flex;
  gap: 7px;
}

.tracking-field em,
.tracking-form-errors {
  color: #a1271b;
  font-size: 0.82rem;
  font-style: normal;
  font-weight: 700;
}

.tracking-field small {
  color: var(--muted);
}

.tracking-criteria {
  display: grid;
}

.tracking-criteria article {
  align-items: center;
  border-top: 1px solid var(--line);
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 10px 2px;
}

.tracking-criteria article > div {
  display: grid;
  gap: 2px;
}

.tracking-criteria small {
  color: var(--muted);
}

.tracking-inline-form {
  align-items: end;
  border-top: 1px solid var(--line);
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(180px, 0.4fr) minmax(240px, 1fr) auto;
  padding-top: 14px;
}

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

.tracking-review-list article {
  border-left: 5px solid var(--cobalt-green);
  padding: 12px 16px;
}

.tracking-review-list header {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.tracking-review-list time,
.tracking-review-list small {
  color: var(--muted);
}

.tracking-empty {
  align-items: center;
  display: grid;
  gap: 10px;
  min-height: 52vh;
  place-content: center;
  text-align: center;
}

.tracking-empty-icon {
  background: var(--blue);
  color: #fff;
  display: grid;
  font-size: 1.2rem;
  font-weight: 900;
  height: 60px;
  margin: 0 auto;
  place-items: center;
  width: 60px;
}

@media (max-width: 860px) {
  .tracking-heading,
  .tracking-next-step,
  .tracking-decision {
    align-items: stretch;
    flex-direction: column;
  }

  .tracking-filters,
  .tracking-detail-layout,
  .tracking-form-grid,
  .tracking-form-split,
  .tracking-inline-form {
    grid-template-columns: 1fr;
  }

  .tracking-row {
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .tracking-row .tracking-status,
  .tracking-row .tracking-priority {
    grid-column: 2;
    justify-self: start;
  }

  .tracking-definition-list div {
    grid-template-columns: 1fr;
  }
}

/* Source : pages/legacy-05.css */

/* Pedagogical planning: reusable models on the left, concrete work on the right. */
.page-shell:has(.planning-page) {
  padding-top: 0;
}

.planning-page {
  display: grid;
  gap: 14px;
  min-width: 0;
}

.planning-heading {
  align-items: center;
  background: linear-gradient(100deg, #f3faf5 0%, #fffef3 100%);
  border-bottom: 1px solid var(--line);
  border-top: 6px solid var(--cobalt-green);
  display: flex;
  justify-content: space-between;
  margin-inline: calc(var(--page-gutter) * -1);
  min-width: 0;
  padding: 18px var(--page-gutter);
}

.planning-heading h1,
.planning-heading p,
.planning-section-heading h2,
.planning-section-heading p {
  margin: 0;
}

.planning-heading h1 {
  font-size: clamp(1.8rem, 3vw, 2.8rem);
}

.planning-heading p,
.planning-section-heading p {
  color: var(--muted);
}

.planning-workspace {
  align-items: start;
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(240px, 0.28fr) minmax(0, 1fr);
  min-width: 0;
}

.planning-library,
.planning-main,
.planning-section {
  background: #fff;
  border: 1px solid var(--line);
  min-width: 0;
}

.planning-library {
  position: sticky;
  top: 8px;
}

.planning-library .section-heading {
  padding: 16px;
}

.planning-library nav {
  border-top: 1px solid var(--line);
  display: grid;
  max-height: calc(100vh - 310px);
  min-width: 0;
  overflow: auto;
}

.planning-library-row {
  color: inherit;
  display: grid;
  gap: 3px;
  padding: 12px 16px;
  text-decoration: none;
}

.planning-library-row + .planning-library-row {
  border-top: 1px solid var(--line);
}

.planning-library-row:hover,
.planning-library-row:focus-visible,
.planning-library-row.is-active {
  background: var(--blue-soft);
  box-shadow: inset 5px 0 var(--blue);
}

.planning-library-row small,
.planning-occurrence small,
.planning-homework-list small {
  color: var(--muted);
}

.planning-kind {
  color: #954026;
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.planning-main {
  display: grid;
  gap: 0;
}

.planning-section-heading {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  padding: 18px 20px;
}

.planning-section-heading h2 {
  font-size: 1.55rem;
}

.planning-duration,
.planning-linked {
  background: var(--green-soft);
  border: 1px solid #bad9bf;
  color: #246f2d;
  font-size: 0.78rem;
  font-weight: 900;
  padding: 7px 10px;
  white-space: nowrap;
}

.planning-section {
  border-inline: 0;
  padding: 20px;
}

.planning-section + .planning-section {
  border-bottom: 0;
}

.planning-editor {
  border-bottom: 1px solid var(--line);
  padding: 0 20px;
}

.planning-editor > summary,
.planning-inline-editor > summary {
  color: var(--blue);
  cursor: pointer;
  font-weight: 900;
  list-style-position: inside;
  padding: 14px 0;
}

.planning-editor > form {
  border-top: 1px solid var(--line);
  padding: 16px 0 20px;
}

.planning-form-grid {
  display: grid;
  gap: 13px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.planning-form-grid .tracking-field {
  min-width: 0;
}

.planning-form-grid input:not([type="checkbox"]):not([type="radio"]),
.planning-form-grid select,
.planning-form-grid textarea {
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

.planning-form-grid.is-compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.planning-form-grid .tracking-field:has(textarea),
.planning-form-grid .tracking-field:has(ul),
.planning-form-grid .tracking-field:has(select[multiple]) {
  grid-column: 1 / -1;
}

.planning-actions {
  display: flex;
  gap: 8px;
  margin-top: 16px;
}

.planning-errors {
  background: #fff0ee;
  border-left: 5px solid var(--danger);
  color: #8a201a;
  margin-bottom: 12px;
  padding: 10px 12px;
}

/* Source : pages/legacy-06.css */

.planning-occurrences,
.planning-homework-list,
.planning-resource-list,
.planning-adaptation-list,
.planning-supply-list {
  border-top: 1px solid var(--line);
  display: grid;
}

.planning-occurrence,
.planning-homework-list article,
.planning-resource-list article,
.planning-adaptation-list article,
.planning-supply-list article {
  align-items: center;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 12px 2px;
}

.planning-occurrence + .planning-occurrence,
.planning-homework-list article + article,
.planning-resource-list article + article,
.planning-adaptation-list article + article,
.planning-supply-list article + article {
  border-top: 1px solid var(--line);
}

.planning-occurrence-main,
.planning-homework-list article > div,
.planning-resource-list article > div:not(.planning-resource-icon),
.planning-adaptation-list article > div,
.planning-supply-list article > div {
  display: grid;
  gap: 3px;
}

.planning-occurrence-main p,
.planning-resource-list p {
  color: var(--muted);
  margin: 4px 0 0;
}

.planning-resource-list article {
  grid-template-columns: 42px minmax(0, 1fr) auto;
}

.planning-resource-icon {
  align-items: center;
  aspect-ratio: 1;
  background: var(--blue-soft);
  border: 1px solid #b9ccef;
  color: var(--blue);
  display: flex;
  font-size: 0.72rem;
  font-weight: 900;
  justify-content: center;
}

.planning-resource-list small,
.planning-adaptation-list small,
.planning-supply-list small {
  color: var(--muted);
}

.planning-state {
  background: var(--blue-soft);
  border: 1px solid #b9ccef;
  color: var(--blue);
  font-size: 0.76rem;
  font-weight: 900;
  padding: 6px 9px;
  white-space: nowrap;
}

.planning-state.is-complete {
  background: var(--green-soft);
  border-color: #bad9bf;
  color: #246f2d;
}

.planning-editor.is-contained {
  border: 1px solid var(--line);
  margin-top: 12px;
}

.planning-project-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.planning-project-summary div {
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 4px;
  padding: 12px 2px;
}

.planning-project-summary div:nth-child(odd) {
  padding-right: 14px;
}

.planning-project-summary div:nth-child(even) {
  border-left: 1px solid var(--line);
  padding-left: 14px;
}

.planning-project-summary dt,
.planning-supply-list dt {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.planning-project-summary dd,
.planning-supply-list dd {
  margin: 0;
}

.planning-project-workload {
  margin-block-start: 1rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--surface-soft);
}

.planning-project-workload > dl {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
  gap: 0.65rem;
  margin-block: 0.75rem;
}

.planning-project-workload > dl div {
  min-width: 0;
  padding: 0.65rem;
  border-radius: var(--radius-sm);
  background: var(--surface);
}

.planning-project-workload dt {
  color: var(--muted);
  font-size: 0.8rem;
}

.planning-project-workload dd {
  margin: 0.2rem 0 0;
  font-weight: 700;
}

.planning-supply-list article {
  grid-template-columns: minmax(180px, 0.7fr) minmax(0, 1fr);
}

.planning-supply-list dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(90px, 1fr));
  margin: 0;
}

.planning-supply-list dl div {
  display: grid;
  gap: 2px;
  padding-inline: 12px;
}

.planning-supply-list dl div + div {
  border-left: 1px solid var(--line);
}

.planning-inline-editor {
  min-width: min(100%, 340px);
}

.planning-inline-editor[open] {
  grid-column: 1 / -1;
}

.planning-inline-editor form {
  background: var(--surface-soft);
  display: grid;
  gap: 10px;
  padding: 12px;
}

.planning-empty {
  color: var(--muted);
  margin: 0;
  padding: 18px 16px;
}

@media (max-width: 980px) {
  .planning-workspace {
    grid-template-columns: 1fr;
  }

  .planning-library {
    overflow: hidden;
    position: static;
  }

  .planning-library nav {
    grid-auto-columns: minmax(220px, 1fr);
    grid-auto-flow: column;
    max-width: 100%;
    max-height: none;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
  }

  .planning-library-row + .planning-library-row {
    border-left: 1px solid var(--line);
    border-top: 0;
  }
}

@media (max-width: 680px) {
  .planning-heading,
  .planning-section-heading {
    align-items: stretch;
    flex-direction: column;
    gap: 10px;
  }

  .planning-form-grid,
  .planning-form-grid.is-compact,
  .planning-occurrence,
  .planning-homework-list article,
  .planning-resource-list article,
  .planning-adaptation-list article,
  .planning-supply-list article,
  .planning-project-summary {
    grid-template-columns: minmax(0, 1fr);
  }

  .planning-resource-icon {
    width: 42px;
  }

  .planning-project-summary div:nth-child(odd),
  .planning-project-summary div:nth-child(even) {
    border-left: 0;
    padding-inline: 2px;
  }

  .planning-supply-list dl {
    grid-template-columns: 1fr;
  }

  .planning-supply-list dl div {
    padding: 8px 0;
  }

  .planning-supply-list dl div + div {
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  .planning-actions {
    display: grid;
  }

  .planning-inline-editor {
    min-width: 0;
  }
}

/* Source : pages/legacy-07.css */

/* Training monitoring keeps dense operational data readable without turning the page into a dashboard wall. */
.page-shell:has(.training-monitor-heading) {
  padding-top: 8px;
}

.training-monitor-heading {
  margin-bottom: 12px;
  padding: 18px 20px;
  border-radius: 8px;
}

.training-monitor-heading h1,
.training-monitor-heading p,
.training-monitor-board h2,
.training-monitor-board p,
.training-question-section h2,
.training-question-section p {
  margin: 0;
}

.training-monitor-filters {
  display: grid;
  grid-template-columns: minmax(220px, 1.6fr) repeat(5, minmax(130px, 1fr)) auto;
  gap: 8px;
  align-items: end;
  margin-bottom: 12px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.training-monitor-filters label {
  display: grid;
  gap: 5px;
  min-width: 0;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
}

.training-monitor-filters input,
.training-monitor-filters select,
.training-monitor-filters button {
  width: 100%;
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
}

.training-monitor-filters input,
.training-monitor-filters select {
  padding: 7px 9px;
}

.training-monitor-filters button {
  padding: 7px 14px;
  border-color: var(--blue);
  background: var(--blue);
  color: white;
  font-weight: 850;
  cursor: pointer;
}

.training-monitor-metrics {
  grid-template-columns: repeat(5, minmax(130px, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}

.training-monitor-metrics .metric-card {
  padding: 10px 12px;
  border-radius: 8px;
  box-shadow: none;
}

.training-monitor-metrics .is-live {
  border-top-color: var(--cobalt-green);
}

.training-monitor-board,
.training-question-section {
  margin-top: 12px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.section-heading-row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: end;
  margin-bottom: 12px;
}

.section-heading-row p {
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.88rem;
}

.training-session-table {
  min-width: 1180px;
}

.training-session-table td strong,
.training-session-table td small {
  display: block;
}

.training-student {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  min-width: 170px;
}

.training-student img {
  width: 34px;
  height: 34px;
  border: 1px solid var(--line);
  border-radius: 50%;
  object-fit: cover;
}

.training-student a {
  color: var(--ink);
  text-decoration: none;
}

.training-student a:hover {
  color: var(--blue);
  text-decoration: underline;
}

.training-state {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  padding: 4px 7px;
  border-radius: 999px;
  background: var(--surface-soft);
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 850;
  white-space: nowrap;
}

.training-state-in_progress {
  background: var(--green-soft);
  color: #245d27;
}

.training-state-in_progress i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--cobalt-green);
}

.training-state-abandoned {
  background: var(--sienna-soft);
  color: #7c321e;
}

.training-pagination {
  display: flex;
  justify-content: center;
  gap: 12px;
  align-items: center;
  margin-top: 12px;
}

.training-pagination a {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--blue);
  text-decoration: none;
}

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

.training-question-row {
  padding: 12px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--cobalt-green);
  border-radius: 8px;
}

/* Source : pages/legacy-08.css */

.training-question-row header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
}

.training-question-row header span,
.training-question-meta {
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 750;
}

.training-question-row header strong {
  color: var(--cobalt-green);
  font-size: 1.25rem;
}

.training-question-row header strong.is-low {
  color: var(--danger);
}

.training-question-row h3 {
  margin: 3px 0 0;
  font-size: 1rem;
}

.training-question-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 8px;
}

.training-choice-bars {
  display: grid;
  gap: 6px;
  margin-top: 10px;
}

.training-choice-bars > div {
  display: grid;
  grid-template-columns: minmax(150px, 0.8fr) minmax(120px, 2fr) 52px;
  gap: 8px;
  align-items: center;
  font-size: 0.82rem;
}

.training-choice-bars i {
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--surface-soft);
}

.training-choice-bars i::before {
  display: block;
  width: var(--choice-percent);
  height: 100%;
  border-radius: inherit;
  background: var(--blue);
  content: "";
}

.training-choice-bars .is-correct i::before {
  background: var(--cobalt-green);
}

@media (max-width: 1180px) {
  .training-monitor-filters {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .training-monitor-search {
    grid-column: span 2;
  }

  .training-monitor-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .training-monitor-heading {
    grid-template-columns: 1fr;
  }

  .training-monitor-filters,
  .training-monitor-metrics {
    grid-template-columns: 1fr;
  }

  .training-monitor-search {
    grid-column: auto;
  }

  .training-choice-bars > div {
    grid-template-columns: 1fr 44px;
  }

  .training-choice-bars i {
    grid-column: 1 / -1;
    grid-row: 2;
  }
}

/* Shared punishments use a dense two-pane workflow: catalogue on the left, class follow-up on the right. */
.page-shell:has(.punishment-page) {
  padding-top: 0;
}

.punishment-page {
  display: grid;
  gap: 12px;
}

.punishment-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 24px;
  border-top: 6px solid var(--cobalt-green);
  border-radius: 0 0 8px 8px;
  background: var(--surface);
}

.punishment-heading h1,
.punishment-heading p {
  margin: 0;
}

.punishment-heading h1 {
  font-size: 2rem;
}

.punishment-heading > div > p:last-child {
  margin-top: 4px;
  color: var(--muted);
  font-weight: 750;
}

.punishment-summary {
  display: flex;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.punishment-summary span {
  display: grid;
  min-width: 104px;
  padding: 8px 14px;
  border-right: 1px solid var(--line);
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 800;
}

.punishment-summary span:last-child {
  border-right: 0;
}

.punishment-summary strong {
  color: var(--blue);
  font-size: 1.2rem;
}

.punishment-toolbar {
  display: grid;
  grid-template-columns: minmax(130px, 0.7fr) minmax(150px, 1fr) minmax(220px, 1.7fr) auto;
  gap: 10px;
  align-items: end;
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.punishment-toolbar label,
.punishment-template label,
.punishment-assignment label,
.punishment-create label {
  display: grid;
  gap: 5px;
  min-width: 0;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 850;
}

.punishment-toolbar select,
.punishment-template select,
.punishment-template input,
.punishment-assignment select,
.punishment-assignment input,
.punishment-create input,
.punishment-create select,
.punishment-create textarea {
  width: 100%;
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
}

/* Source : pages/legacy-09.css */

.punishment-class-rail {
  display: flex;
  gap: 0;
  overflow-x: auto;
  border-block: 1px solid var(--line);
  background: var(--surface);
}

.punishment-class-rail a {
  flex: 0 0 auto;
  min-width: 104px;
  padding: 10px 18px;
  clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
  color: var(--ink);
  font-weight: 900;
  text-align: center;
  text-decoration: none;
}

.punishment-class-rail a:hover,
.punishment-class-rail a:focus-visible,
.punishment-class-rail a.is-selected {
  background: var(--blue-soft);
  color: var(--blue);
}

.punishment-workspace {
  display: grid;
  grid-template-columns: minmax(320px, 0.9fr) minmax(0, 1.5fr);
  gap: 14px;
  align-items: start;
}

.punishment-catalogue,
.punishment-assignments {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.punishment-create {
  position: relative;
}

.punishment-create summary {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 50%;
  background: var(--blue);
  color: #fff;
  cursor: pointer;
  font-size: 1.4rem;
  font-weight: 900;
  list-style: none;
}

.punishment-create summary::-webkit-details-marker {
  display: none;
}

.punishment-create[open] form {
  position: absolute;
  z-index: 5;
  top: 46px;
  right: 0;
  display: grid;
  width: min(420px, calc(100vw - 48px));
  gap: 10px;
  padding: 16px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--blue);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: var(--shadow);
}

.punishment-form-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.punishment-template-list,
.punishment-assignment-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.punishment-template,
.punishment-assignment {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--cobalt-green);
  border-radius: 8px;
  background: var(--surface-soft);
}

.punishment-template > header,
.punishment-assignment > header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
}

.punishment-template > header div,
.punishment-assignment > header div {
  display: grid;
  gap: 2px;
}

.punishment-template header span,
.punishment-assignment header span,
.punishment-template small {
  color: var(--muted);
  font-size: 0.78rem;
  font-style: normal;
  font-weight: 800;
}

.punishment-template header em {
  color: var(--blue);
  font-size: 0.8rem;
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
}

.punishment-template p,
.punishment-assignment p,
.punishment-assignment h3 {
  margin: 0;
}

.punishment-template form,
.punishment-assignment form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
}

.punishment-assignment {
  border-left-color: var(--blue);
}

.punishment-assignment.status-completed {
  border-left-color: var(--cobalt-green);
}

.punishment-assignment.status-cancelled {
  opacity: 0.72;
  border-left-color: var(--muted);
}

.punishment-assignment mark {
  padding: 5px 8px;
  border-radius: 999px;
  background: var(--yellow-soft);
  color: var(--ink);
  font-size: 0.75rem;
  font-weight: 900;
  white-space: nowrap;
}

.punishment-assignment dl {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin: 0;
}

.punishment-assignment dl div {
  display: flex;
  gap: 5px;
}

.punishment-assignment dt {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.punishment-assignment dd {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 900;
}

.punishment-empty {
  display: grid;
  min-height: 180px;
  place-content: center;
  color: var(--muted);
  text-align: center;
}

/* Source : pages/legacy-10.css */

@media (max-width: 980px) {
  .punishment-workspace {
    grid-template-columns: 1fr;
  }

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

  .punishment-toolbar button {
    grid-column: 1 / -1;
  }
}

@media (max-width: 680px) {
  .punishment-heading,
  .punishment-template > header,
  .punishment-assignment > header {
    align-items: stretch;
    flex-direction: column;
  }

  .punishment-summary {
    width: 100%;
  }

  .punishment-summary span {
    min-width: 0;
    flex: 1;
  }

  .punishment-toolbar,
  .punishment-template form,
  .punishment-assignment form,
  .punishment-form-pair {
    grid-template-columns: 1fr;
  }

  .punishment-toolbar button {
    grid-column: auto;
  }
}

/* Learning games keep one decision on screen and a stable layout during feedback. */
.learning-game-page {
  display: grid;
  gap: 12px;
}

.learning-game-heading {
  margin-top: 0;
}

.learning-assignment-rail {
  display: flex;
  gap: 8px;
  max-width: 100%;
  overflow-x: auto;
  padding: 2px 0 6px;
  scrollbar-width: thin;
}

.learning-assignment-link {
  position: relative;
  display: grid;
  grid-template-columns: 58px minmax(170px, 1fr);
  gap: 10px;
  align-items: center;
  flex: 0 0 min(360px, 82vw);
  min-height: 72px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-left: 5px solid var(--cobalt-green);
  border-radius: 6px;
  padding: 8px 10px 8px 8px;
  background: var(--surface);
  color: var(--ink);
}

.learning-assignment-link:hover,
.learning-assignment-link:focus-visible,
.learning-assignment-link.is-selected {
  border-color: var(--blue);
  border-left-color: var(--blue);
  background: var(--blue-soft);
}

.learning-assignment-link img {
  width: 58px;
  height: 52px;
  border-radius: 4px;
  object-fit: cover;
}

.learning-assignment-link span {
  display: grid;
  min-width: 0;
}

.learning-assignment-link small,
.learning-assignment-link em {
  overflow: hidden;
  color: var(--muted);
  font-size: 0.76rem;
  font-style: normal;
  font-weight: 760;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.learning-assignment-link strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.learning-assignment-link em {
  position: absolute;
  right: 8px;
  bottom: 5px;
}

.learning-game {
  overflow: hidden;
  border: 1px solid var(--line);
  border-top: 6px solid var(--blue);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: var(--shadow);
}

.learning-game-history {
  display: grid;
  grid-template-columns: minmax(180px, 0.4fr) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  border: 1px solid var(--line);
  border-left: 5px solid var(--cobalt-green);
  border-radius: 8px;
  padding: 16px;
  background: var(--surface);
}

.learning-game-history h2 {
  margin: 4px 0 0;
  font-size: 1.15rem;
}

.learning-game-history ol {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.learning-game-history li {
  display: grid;
  grid-template-columns: minmax(105px, 0.6fr) repeat(3, minmax(90px, 1fr));
  gap: 8px;
  align-items: center;
  min-height: 42px;
  padding: 8px 10px;
  border-radius: 6px;
  background: var(--surface-soft);
}

.learning-game-history li span {
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 750;
}

.learning-game-toolbar {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  min-height: 58px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--line);
}

.learning-game-title {
  display: grid;
  min-width: 0;
}

.learning-game-title span {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
}

.learning-game-title strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Source : pages/legacy-11.css */

.learning-game-actions {
  display: flex;
  gap: 8px;
}

.learning-game-launch {
  display: grid;
  gap: 16px;
  justify-items: center;
  min-height: 260px;
  padding: 30px clamp(18px, 5vw, 72px);
  text-align: center;
}

.learning-game-launch > p {
  max-width: 720px;
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

.learning-game-launch dl {
  display: flex;
  gap: 24px;
  margin: 0;
}

.learning-game-launch dl > div {
  display: grid;
  gap: 2px;
}

.learning-game-launch dt {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
}

.learning-game-launch dd {
  margin: 0;
  color: var(--blue);
  font-size: 1.2rem;
  font-weight: 900;
}

.learning-game-status {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-bottom: 1px solid var(--line);
}

.learning-game-status > div {
  display: grid;
  gap: 2px;
  min-height: 68px;
  padding: 12px 18px;
  border-right: 1px solid var(--line);
}

.learning-game-status > div:last-child {
  border-right: 0;
}

.learning-game-status span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.learning-game-status strong {
  color: var(--blue);
  font-size: 1.35rem;
}

.learning-game-progress {
  height: 7px;
  background: var(--blue-soft);
}

.learning-game-progress span {
  display: block;
  width: 0;
  height: 100%;
  background: var(--lemon-yellow);
  transition: width 180ms ease;
}

.learning-game-stage,
.learning-game-complete {
  display: grid;
  place-content: center;
  min-height: 390px;
  padding: 32px clamp(18px, 5vw, 72px);
  text-align: center;
}

.learning-game-stage h2,
.learning-game-complete h2 {
  max-width: 920px;
  margin: 8px auto 24px;
  font-size: clamp(1.45rem, 3vw, 2.15rem);
}

.learning-game-kicker,
.learning-game-complete > span {
  margin: 0;
  color: var(--burnt-sienna);
  font-size: 0.8rem;
  font-weight: 900;
  text-transform: uppercase;
}

.learning-game-image {
  width: min(680px, 100%);
  max-height: 260px;
  margin: 14px auto 4px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--surface-soft);
  object-fit: contain;
}

.learning-game-question-image {
  width: min(680px, 100%);
  margin: 12px auto;
  text-align: center;
}

.learning-game-question-image img {
  display: block;
  width: 100%;
  max-height: 320px;
  border: 1px solid var(--line);
  border-radius: 6px;
  object-fit: contain;
}

.learning-game-question-image figcaption {
  margin-top: 6px;
  color: var(--muted);
  font-size: 0.82rem;
}

.learning-game-choices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  width: min(920px, 100%);
}

.learning-game-choices button {
  min-height: 58px;
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  border-radius: 6px;
  background: var(--surface-soft);
  color: var(--ink);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;
}

.learning-game-choices button:hover,
.learning-game-choices button:focus-visible {
  border-color: var(--blue);
  background: var(--blue-soft);
  transform: translateY(-1px);
}

.learning-game-choices button.is-correct {
  border-color: var(--cobalt-green);
  border-left-color: var(--cobalt-green);
  background: var(--green-soft);
}

.learning-game-choices button.is-wrong {
  border-color: var(--danger);
  border-left-color: var(--danger);
  background: #fff0f0;
}

.learning-game-choices button.is-selected {
  border-color: var(--blue);
  background: var(--blue);
  color: #fff;
}

.learning-game-choices .learning-choice-submit {
  grid-column: 1 / -1;
  justify-self: center;
  min-width: 220px;
  border: 0;
  border-left: 0;
  background: var(--blue);
  color: #fff;
}

.learning-game-answer {
  display: grid;
  gap: 8px;
  width: min(720px, 100%);
  text-align: left;
}

.learning-game-answer > div {
  display: grid;
  gap: 8px;
}

.learning-fill-text {
  margin: 0 0 10px;
  color: var(--ink);
  line-height: 1.6;
}

.learning-game-answer label {
  display: grid;
  grid-template-columns: minmax(80px, 120px) minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  color: var(--muted);
  font-weight: 800;
}

/* Source : pages/legacy-12.css */

.learning-game-answer label > small {
  grid-column: 2;
  color: var(--muted);
  font-weight: 600;
}

.learning-game-answer input,
.learning-game-answer select,
.learning-game-answer button {
  min-height: 48px;
}

.learning-game-answer input,
.learning-game-answer select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
}

.learning-game-references {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border-left: 4px solid var(--blue);
  background: var(--blue-soft);
}

.learning-game-references p {
  margin: 0;
}

.learning-game-correction {
  width: min(920px, 100%);
  padding: 16px;
  border-left: 5px solid var(--cobalt-green);
  background: var(--green-soft);
  text-align: left;
}

.learning-game-correction h3 {
  margin-top: 0;
}

.learning-game-correction li + li {
  margin-top: 8px;
}

.learning-game-answer button {
  padding-inline: 24px;
  border: 0;
  border-radius: 6px;
  background: var(--blue);
  color: #fff;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.learning-game-feedback {
  width: min(920px, 100%);
  margin: 18px 0 0;
  padding: 12px 16px;
  border-left: 5px solid var(--blue);
  background: var(--blue-soft);
  text-align: left;
}

.learning-game-feedback.is-success {
  border-left-color: var(--cobalt-green);
  background: var(--green-soft);
}

.learning-game-feedback.is-error {
  border-left-color: var(--danger);
  background: #fff0f0;
}

.learning-game-next {
  justify-self: center;
  margin-top: 12px;
}

.learning-game-complete h2 {
  color: var(--blue);
  font-size: 3rem;
}

.learning-game-fallback {
  display: grid;
  gap: 14px;
  padding: 24px clamp(16px, 5vw, 56px);
  border-top: 1px solid var(--line);
  background: var(--surface-soft);
}

.learning-game-fallback form,
.learning-game-fallback fieldset {
  display: grid;
  gap: 10px;
  max-width: 760px;
  margin: 0;
}

.learning-game-fallback fieldset {
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 14px;
  background: var(--surface);
}

.learning-game-fallback label {
  display: flex;
  gap: 10px;
  align-items: center;
  min-height: 44px;
}

.learning-game-fallback input[type="checkbox"] {
  width: 20px;
  height: 20px;
}

.legal-acceptance-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 620px);
  gap: 24px;
  align-items: start;
  margin-top: 16px;
  border-top: 6px solid var(--cobalt-green);
}

.legal-acceptance-form {
  display: grid;
  gap: 12px;
}

.legal-acceptance-form > label:not(.legal-confirmation-check) {
  display: grid;
  gap: 6px;
  font-weight: 800;
}

.legal-confirmation-check {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
}

@media (max-width: 720px) {
  .learning-game-history,
  .learning-game-history li {
    grid-template-columns: 1fr;
  }

  .learning-game-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .learning-game-actions {
    justify-content: flex-end;
  }

  .learning-game-status > div {
    min-height: 60px;
    padding: 10px;
  }

  .learning-game-stage,
  .learning-game-complete {
    min-height: 330px;
    padding: 24px 14px;
  }

  .learning-game-choices,
  .learning-game-answer label {
    grid-template-columns: 1fr;
  }

  .learning-game-answer label > small {
    grid-column: 1;
  }

  .legal-acceptance-panel {
    grid-template-columns: 1fr;
  }
}

/* Evaluation review keeps long copies scannable without nesting decorative cards. */
.correction-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: end;
  margin: 0 0 14px;
  padding: 22px;
  border-top: 6px solid var(--cobalt-green);
  border-bottom: 1px solid var(--line);
  background: var(--surface);
}

/* Source : pages/legacy-13.css */

.correction-heading h1 {
  margin: 4px 0;
  font-size: 2rem;
}

.correction-heading-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.correction-heading-actions form {
  display: contents;
}

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

.correction-metrics {
  display: grid;
  grid-template-columns: repeat(6, minmax(110px, 1fr));
  border-block: 1px solid var(--line);
  background: var(--surface);
}

.correction-metrics > div {
  display: grid;
  gap: 3px;
  min-height: 76px;
  padding: 14px 16px;
  border-right: 1px solid var(--line);
}

.correction-metrics > div:last-child {
  border-right: 0;
}

.correction-metrics span,
.correction-student-identity span,
.correction-answer-copy > span,
.correction-rubric span,
.correction-published-decision span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.correction-metrics strong {
  color: var(--blue);
  font-size: 1.45rem;
}

.correction-worker-state,
.correction-pending-students {
  margin: 12px 0;
  padding: 12px 16px;
  border-left: 5px solid var(--burnt-sienna);
  background: var(--sienna-soft);
}

.correction-worker-state {
  display: flex;
  gap: 18px;
  justify-content: space-between;
}

.correction-document-exports {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}

.correction-document-exports > span {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  min-height: 36px;
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--blue);
  border-radius: 6px;
  background: var(--surface);
  color: var(--muted);
  font-size: 0.84rem;
}

.correction-document-exports > .is-failed {
  border-left-color: var(--danger);
}

.correction-document-exports > .is-done {
  border-left-color: var(--cobalt-green);
}

.correction-pending-students summary {
  cursor: pointer;
  font-weight: 850;
}

.correction-pending-students > div {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin-top: 10px;
}

.correction-accommodations {
  margin: 12px 0;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  background: var(--surface);
}

.correction-accommodations > summary {
  cursor: pointer;
  padding: 13px 16px;
  color: var(--ink);
  font-weight: 850;
}

.correction-accommodation-list {
  border-top: 1px solid var(--line);
}

.correction-accommodation-list form {
  display: grid;
  grid-template-columns:
    minmax(180px, 1.1fr)
    minmax(130px, 0.65fr)
    minmax(120px, 0.55fr)
    minmax(220px, 1.3fr)
    auto;
  gap: 12px;
  align-items: end;
  padding: 12px 16px;
  border-bottom: 1px solid var(--line);
}

.correction-accommodation-list form:last-child {
  border-bottom: 0;
}

.correction-accommodation-list form > div,
.correction-accommodation-list label {
  display: grid;
  gap: 5px;
}

.correction-accommodation-list small,
.correction-accommodation-list label > span {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 750;
}

.correction-accommodation-list input,
.correction-accommodation-list select {
  width: 100%;
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 8px 10px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
}

.correction-copies {
  display: grid;
  gap: 20px;
  margin-top: 18px;
}

.correction-copy {
  overflow: hidden;
  border: 1px solid var(--line);
  border-top: 5px solid var(--blue);
  background: var(--surface);
  box-shadow: 0 12px 28px rgba(16, 19, 38, 0.06);
}

.correction-copy > header {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) minmax(420px, auto);
  gap: 20px;
  align-items: center;
  padding: 16px 18px;
  border-bottom: 1px solid var(--line);
  background: var(--blue-soft);
}

.correction-student-identity h2,
.correction-student-identity p {
  margin: 3px 0;
}

/* Source : pages/legacy-14.css */

.correction-student-identity p {
  color: var(--muted);
  overflow-wrap: anywhere;
}

.correction-copy dl {
  display: grid;
  grid-template-columns: repeat(4, minmax(90px, 1fr));
  gap: 1px;
  margin: 0;
  background: var(--line);
}

.correction-copy dl div {
  padding: 9px 11px;
  background: var(--surface);
}

.correction-copy dt {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 750;
}

.correction-copy dd {
  margin: 3px 0 0;
  font-weight: 850;
}

.correction-answer-row {
  display: grid;
  grid-template-columns: minmax(280px, 1.35fr) minmax(240px, 0.9fr) minmax(250px, 0.8fr);
  gap: 18px;
  padding: 18px;
  border-bottom: 1px solid var(--line);
}

.correction-answer-copy h3 {
  margin: 5px 0 8px;
  font-size: 1.05rem;
}

.correction-question {
  color: var(--muted);
}

.correction-student-answer {
  min-height: 76px;
  padding: 12px;
  border-left: 4px solid var(--cobalt-green);
  background: var(--green-soft);
  overflow-wrap: anywhere;
}

.correction-student-answer a {
  display: block;
  margin-top: 8px;
  color: var(--blue);
  font-weight: 800;
}

.correction-duplicate-warning {
  margin: 10px 0 0;
  padding: 9px 11px;
  color: #742f1d;
  background: var(--sienna-soft);
  font-weight: 750;
}

.correction-rubric {
  display: grid;
  gap: 12px;
  align-content: start;
}

.correction-rubric > div {
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}

.correction-rubric p {
  margin: 5px 0;
}

.correction-rubric small {
  color: var(--muted);
}

.correction-review-form {
  display: grid;
  gap: 10px;
  align-content: start;
}

.correction-review-form label {
  display: grid;
  gap: 5px;
  font-weight: 750;
}

.correction-review-form select,
.correction-review-form textarea {
  width: 100%;
  padding: 10px;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--ink);
  resize: vertical;
}

.correction-review-filters,
.correction-bulk-review {
  margin: 16px 0;
  padding: 14px;
  border: 1px solid var(--line);
  background: var(--surface);
}

.correction-review-filters,
.correction-bulk-review form {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: end;
}

.correction-review-filters label,
.correction-bulk-review label {
  display: grid;
  gap: 5px;
}

.correction-answer-select,
.correction-compact-toggle {
  font-weight: 750;
}

.correction-bulk-confirm,
.correction-decision-history,
.correction-reanalysis-form,
.correction-mutation-status {
  margin-top: 10px;
}

.correction-mutation-status:not(:empty) {
  display: block;
  padding: 8px;
  border-left: 4px solid var(--cobalt-blue);
}

.is-compact .correction-question,
.is-compact .correction-rubric,
.is-compact .correction-decision-history {
  display: none;
}

.correction-published-decision {
  display: grid;
  gap: 6px;
  align-content: start;
  padding: 12px;
  border-left: 5px solid var(--cobalt-green);
  background: var(--green-soft);
}

.correction-medals {
  padding: 16px 18px;
  border-bottom: 1px solid var(--line);
}

.correction-medals > h3 {
  margin: 0 0 10px;
}

.correction-medals > div {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 10px;
}

.correction-medal {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--line);
  border-left: 4px solid var(--burnt-sienna);
  border-radius: 8px;
  padding: 10px;
}

.correction-medal.is-awarded {
  border-left-color: var(--cobalt-green);
  background: var(--green-soft);
}

.correction-medal.is-rejected {
  border-left-color: var(--danger);
}

/* Source : pages/legacy-15.css */

.correction-medal img,
.correction-medal > span {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  object-fit: contain;
  border-radius: 50%;
  background: var(--surface-soft);
  font-weight: 950;
}

.correction-medal p,
.correction-medal small {
  display: block;
  margin: 2px 0;
  color: var(--muted);
  font-size: 0.76rem;
}

.correction-medal form {
  display: flex;
  grid-column: 1 / -1;
  gap: 8px;
}

.correction-medal form button {
  min-height: 36px;
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 7px 12px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  font-weight: 850;
  cursor: pointer;
}

.correction-copy > footer {
  display: flex;
  gap: 14px;
  align-items: center;
  justify-content: flex-end;
  padding: 12px 18px;
  background: var(--surface-soft);
}

.correction-empty,
.correction-empty-state {
  padding: 28px;
  text-align: center;
}

@media (max-width: 1100px) {
  .correction-heading,
  .correction-copy > header,
  .correction-answer-row {
    grid-template-columns: 1fr;
  }

  .correction-accommodation-list form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .correction-accommodation-list form > div,
  .correction-accommodation-note {
    grid-column: 1 / -1;
  }

  .correction-heading-actions {
    justify-content: flex-start;
  }

  .correction-metrics {
    grid-template-columns: repeat(3, 1fr);
  }

  .correction-metrics > div:nth-child(3n) {
    border-right: 0;
  }
}

@media (max-width: 680px) {
  .correction-heading-actions,
  .correction-worker-state,
  .correction-copy > footer {
    align-items: stretch;
    flex-direction: column;
  }

  .correction-heading-actions .button,
  .correction-copy > footer .button {
    width: 100%;
  }

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

  .correction-accommodation-list form > div,
  .correction-accommodation-note {
    grid-column: auto;
  }

  .correction-metrics,
  .correction-copy dl {
    grid-template-columns: repeat(2, 1fr);
  }

  .correction-metrics > div:nth-child(3n) {
    border-right: 1px solid var(--line);
  }

  .correction-metrics > div:nth-child(2n),
  .correction-copy dl div:nth-child(2n) {
    border-right: 0;
  }
}

* {
  box-sizing: border-box;
}

/* Source : layouts/shell-01.css */
/* Component layout rules must never override the native hidden state used by JS. */
[hidden] {
  display: none !important;
}

html {
  min-width: 320px;
}

body {
  position: relative;
  margin: 0;
  color: var(--ink);
  background: linear-gradient(180deg, #ffffff 0, var(--surface-soft) 420px);
  font-family: var(--font-sans);
  font-size: var(--text-body);
  line-height: var(--line-height-body);
  letter-spacing: 0;
}

body::before,
body::after {
  content: "❀  ·  ❀";
  position: fixed;
  z-index: var(--layer-decoration);
  color: rgba(201, 41, 41, 0.16);
  font-size: clamp(1.2rem, 2vw, 2rem);
  letter-spacing: 0.35em;
  pointer-events: none;
  animation: athena-leaves-drift 18s ease-in-out infinite alternate;
}

body::before {
  top: 96px;
  right: var(--page-gutter);
  transform: rotate(12deg);
}

body::after {
  bottom: 54px;
  left: var(--page-gutter);
  transform: rotate(-10deg);
  animation-delay: -9s;
}

.page-shell,
.legal-footer {
  position: relative;
  z-index: var(--layer-content);
}

.legal-footer {
  box-sizing: border-box;
  flex-wrap: wrap;
  gap: var(--space-2);
  max-width: 100%;
}

@keyframes athena-leaves-drift {
  from { translate: 0 0; }
  to { translate: 0 8px; }
}

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

button,
input,
select {
  font: inherit;
}

.topbar {
  position: sticky;
  top: 0;
  z-index: var(--layer-sticky);
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr) 540px;
  gap: 14px;
  align-items: center;
  min-height: 84px;
  padding: 10px 20px;
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(12px);
}

.motion-preference-button {
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: var(--space-2) var(--space-3);
  background: var(--surface);
  color: var(--muted);
  font-weight: 800;
  cursor: pointer;
}

.motion-preference-button:hover,
.motion-preference-button:focus-visible {
  border-color: var(--blue);
  color: var(--blue);
}

.motion-preference-button:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}

.motion-preference-button[aria-pressed="true"] {
  background: var(--blue-soft);
  color: var(--blue);
}

.accessibility-preferences {
  position: relative;
}

.accessibility-preferences > summary,
.accessibility-preferences button {
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: var(--space-2) var(--space-3);
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.accessibility-preferences-controls {
  display: grid;
  gap: var(--space-2);
  min-width: min(22rem, calc(100vw - 2 * var(--page-gutter)));
  margin-top: var(--space-2);
}

.accessibility-preferences button[aria-pressed="true"] {
  border-color: var(--blue);
  background: var(--blue-soft);
  color: var(--blue);
}

.accessibility-preferences :focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}

.accessibility-preferences-status {
  min-height: 1.5em;
  margin: 0;
  color: var(--muted);
}

body[data-readable-font] {
  font-family: Arial, Verdana, sans-serif;
}

body[data-large-text] {
  font-size: max(var(--text-body), 1.15rem);
}

body[data-spaced-text] {
  line-height: 1.75;
  letter-spacing: 0.035em;
  word-spacing: 0.12em;
}

body[data-high-contrast] {
  --ink: #000000;
  --muted: #202020;
  --line: #4a4a4a;
  --surface: #ffffff;
  --surface-soft: #f2f2f2;
}

.learning-game[data-readable-font] {
  font-family: Arial, Verdana, sans-serif;
}

.learning-game[data-large-text] {
  font-size: 1.15rem;
}

.learning-game[data-spaced-text] {
  line-height: 1.75;
  letter-spacing: 0.035em;
  word-spacing: 0.12em;
}

.learning-game[data-high-contrast] {
  border-color: #000000;
  background: #ffffff;
  color: #000000;
}

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

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

.brand-zone {
  display: flex;
  align-items: center;
}

.shell-menu-button {
  display: none;
}

.brand,
.profile-button,
.login-button,
.logout-button,
.button,
.notification-button,
.admin-view-button,
.role-link {
  min-height: 40px;
  border-radius: var(--radius);
}

.brand {
  display: inline-flex;
  gap: 12px;
  align-items: center;
  font-size: 1.22rem;
  font-weight: 950;
  color: var(--ink);
}

.brand-badge {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: white;
  box-shadow: 0 14px 34px rgba(233, 116, 81, 0.16);
}

.brand-mark {
  width: 30px;
  height: 30px;
}

.role-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 8px;
  align-items: center;
  justify-content: start;
  overflow: visible;
  padding: 2px 0;
}

.role-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
  min-height: 32px;
  padding: 3px 5px;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-size: 0.88rem;
  font-weight: 900;
}

.role-link:hover {
  background: var(--surface-soft);
}

.role-nav.is-locked {
  display: flex;
  align-items: center;
  min-height: 40px;
  color: var(--muted);
  font-size: 0.95rem;
  font-weight: 750;
}

.role-icon,
.dashboard-icon {
  position: relative;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 8px;
  background: var(--blue);
  color: white;
  font-size: 0.58rem;
  font-weight: 800;
}

.role-link.is-unavailable .role-icon,
.dashboard-card.is-unavailable .dashboard-icon,
.complete-menu-card.is-unavailable .complete-menu-icon {
  position: relative;
  background: #74777d;
  color: white;
}

.role-link.is-unavailable .role-icon::after,
.dashboard-card.is-unavailable .dashboard-icon::after,
.complete-menu-card.is-unavailable .complete-menu-icon::after {
  content: "×";
  position: absolute;
  right: -5px;
  bottom: -5px;
  display: grid;
  place-items: center;
  width: 15px;
  height: 15px;
  border: 2px solid white;
  border-radius: 50%;
  background: var(--danger);
  color: white;
  font-size: 0.65rem;
  line-height: 1;
}

.role-link.is-unavailable {
  color: var(--muted);
  cursor: not-allowed;
}

.role-link.is-unavailable:hover {
  background: transparent;
}

.role-link.is-partial .role-icon {
  background: #9a6500;
}

.role-link[aria-current="page"] {
  border-radius: 7px;
  background: var(--blue-soft);
  color: var(--blue);
}

.role-link:focus-visible,
.dashboard-card:focus-visible,
.complete-menu-card:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}

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

/* Source : layouts/shell-02.css */

.shell-breadcrumb {
  display: flex;
  gap: 8px;
  align-items: center;
  width: min(100% - 40px, 1180px);
  margin: 12px auto -12px;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 850;
}

.shell-breadcrumb a {
  color: var(--blue);
}

.role-label {
  white-space: nowrap;
  font-size: 0.88rem;
  font-weight: 900;
}

.account-zone {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: end;
  gap: 7px;
  width: 540px;
  max-width: 100%;
}

.profile-button,
.login-button,
.logout-button,
.button,
.notification-button,
.admin-view-button,
.logas-button,
.logas-pill,
.logas-exit-button,
.school-pill,
.time-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  font-weight: 700;
}

.school-pill {
  min-height: 42px;
  padding: 8px 14px;
  color: #27304d;
  font-weight: 900;
  box-shadow: 0 10px 24px rgba(49, 94, 214, 0.07);
}

.school-switcher {
  display: grid;
  grid-template-columns: auto minmax(130px, 1fr) auto;
  gap: 8px;
  align-items: center;
  flex: 0 1 310px;
  width: 310px;
  max-width: 100%;
  padding: 5px 7px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: 0 10px 24px rgba(49, 94, 214, 0.07);
}

.school-switcher label {
  color: var(--burnt-sienna);
  font-size: 0.8rem;
  font-weight: 900;
}

.school-switcher select,
.school-switcher button {
  min-height: 32px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface-soft);
  color: var(--ink);
}

.school-switcher select {
  min-width: 0;
  padding: 6px 10px;
  font-weight: 850;
}

.school-switcher button {
  padding: 6px 12px;
  background: var(--lemon-yellow);
  font-weight: 900;
  cursor: pointer;
}

.school-pill span {
  width: 14px;
  height: 14px;
  border: 5px solid #dce5ff;
  border-radius: 50%;
  background: var(--blue);
}

.profile-button {
  min-height: 42px;
  max-width: 160px;
  padding: 6px 10px;
  color: #445080;
  font-weight: 700;
}

.profile-button span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.notification-button {
  position: relative;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  min-height: 42px;
  padding: 7px 10px;
  color: var(--blue);
}

@media (min-width: 1201px) {
  .notification-button-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
}

.mail-icon {
  position: relative;
  width: 24px;
  height: 18px;
  flex: 0 0 auto;
  border: 2px solid currentColor;
  border-radius: 4px;
}

.mail-icon::before,
.mail-icon::after {
  position: absolute;
  top: 2px;
  width: 13px;
  height: 2px;
  background: currentColor;
  content: "";
}

.mail-icon::before {
  left: 1px;
  transform: rotate(34deg);
  transform-origin: left center;
}

.mail-icon::after {
  right: 1px;
  transform: rotate(-34deg);
  transform-origin: right center;
}

.notification-button strong {
  display: grid;
  place-items: center;
  min-width: 28px;
  height: 28px;
  padding: 0 7px;
  border-radius: 999px;
  background: var(--surface-soft);
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 950;
}

.notification-button.has-unread {
  border-color: color-mix(in srgb, var(--burnt-sienna), white 42%);
  background: var(--sienna-soft);
  color: #79331f;
}

.notification-button.has-unread strong {
  background: var(--burnt-sienna);
  color: white;
}

/* Source : layouts/shell-03.css */

.profile-button img {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
  background: var(--surface-soft);
}

.login-button,
.logout-button,
.button {
  padding: 10px 18px;
}

.login-button,
.button.primary {
  border-color: var(--blue);
  background: var(--blue);
  color: white;
}

.logout-button,
.button.secondary {
  color: var(--blue);
}

.button.danger {
  border-color: var(--danger);
  background: var(--danger);
  color: white;
}

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

.button.is-disabled {
  cursor: not-allowed;
  opacity: 0.66;
}

.admin-view-button {
  min-height: 42px;
  padding: 8px 14px;
  border-color: color-mix(in srgb, var(--burnt-sienna), white 45%);
  background: color-mix(in srgb, var(--burnt-sienna), white 86%);
  color: #79331f;
  font-weight: 950;
}

.admin-view-button.is-active {
  border-color: var(--burnt-sienna);
  background: var(--burnt-sienna);
  color: white;
}

.logas-button,
.logas-pill,
.logas-exit-button {
  min-height: 42px;
  padding: 8px 14px;
  font-weight: 950;
}

.logas-button {
  border-color: color-mix(in srgb, var(--cobalt-green), white 50%);
  background: color-mix(in srgb, var(--cobalt-green), white 88%);
  color: #1f6b34;
}

.logas-pill {
  max-width: 280px;
  border-color: color-mix(in srgb, var(--burnt-sienna), white 35%);
  background: color-mix(in srgb, var(--burnt-sienna), white 86%);
  color: #79331f;
}

.logas-pill strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.logas-exit-form {
  margin: 0;
}

.logas-exit-button {
  border-color: var(--burnt-sienna);
  background: var(--burnt-sienna);
  color: white;
  cursor: pointer;
}

.logout-button {
  min-height: 42px;
  padding: 8px 12px;
  color: var(--ink);
  font-size: 0.86rem;
  font-weight: 950;
}

.time-pill {
  min-height: 42px;
  padding: 7px 9px;
  color: #59628d;
  font-size: 0.78rem;
  font-weight: 760;
}

.messages {
  width: min(1180px, calc(100% - 32px));
  margin: 16px auto 0;
}

.message {
  margin: 0 0 8px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--cobalt-green);
  border-radius: var(--radius);
  background: var(--surface);
}

.message.error {
  border-left-color: var(--danger);
}

.page-shell {
  width: min(1760px, calc(100% - 64px));
  margin: 0 auto;
  padding: 24px 0 72px;
}

.page-shell:has(.trombi-page),
.page-shell:has(.timetable-page) {
  padding-top: 0;
}

.page-shell:has(.adult-subjects-page),
.page-shell:has(.chapter-builder-page),
.page-shell:has(.course-builder-page),
.page-shell:has(.logas-page),
.page-shell:has(.complete-menu-page) {
  padding-top: 8px;
}

.hero-band,
.page-heading,
.auth-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: end;
  margin-bottom: 24px;
  padding: 28px;
  border: 1px solid var(--line);
  border-top: 6px solid var(--cobalt-green);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.home-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  padding: 38px 40px 32px;
  border: 1px solid var(--line);
  border-top: 7px solid var(--cobalt-green);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(61, 145, 64, 0.08), transparent 34%),
    linear-gradient(315deg, rgba(233, 116, 81, 0.08), transparent 38%),
    var(--surface);
  box-shadow: var(--shadow);
}

.home-hero-copy {
  grid-column: 1;
}

.home-hero h1 {
  max-width: 980px;
  color: var(--ink);
  font-size: 2.75rem;
  font-weight: 950;
  line-height: 1.08;
}

.home-hero p {
  max-width: 980px;
  margin: 18px 0 0;
  color: #202642;
  font-size: 1.12rem;
  font-weight: 540;
  line-height: 1.55;
}

/* Source : layouts/shell-04.css */

.home-hero mark {
  padding: 0 4px;
  border-radius: 5px;
  background: linear-gradient(180deg, transparent 55%, rgba(255, 244, 79, 0.86) 0);
  color: var(--ink);
  font-weight: 950;
}

.audience-grid {
  grid-column: 1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 6px;
}

.audience-card,
.pedagogy-principle {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 14px 30px rgba(16, 19, 38, 0.07);
}

.audience-card {
  min-height: 310px;
  padding: 22px;
  border-top: 5px solid var(--blue);
}

.audience-card h2,
.pedagogy-principle h2 {
  display: flex;
  gap: 10px;
  align-items: center;
  color: var(--ink);
  font-size: 1.35rem;
  font-weight: 950;
}

.audience-card h2 span,
.pedagogy-principle h2 span {
  width: 18px;
  height: 18px;
  border: 6px solid var(--blue-soft);
  border-radius: 50%;
  background: var(--blue);
}

.audience-card.is-student {
  border-top-color: var(--blue);
}

.audience-card.is-teacher {
  border-top-color: var(--cobalt-green);
}

.audience-card.is-teacher h2 span {
  border-color: var(--green-soft);
  background: var(--cobalt-green);
}

.audience-card.is-school {
  border-top-color: var(--burnt-sienna);
}

.audience-card.is-school h2 span {
  border-color: var(--sienna-soft);
  background: var(--burnt-sienna);
}

.audience-card ul {
  display: grid;
  gap: 12px;
  margin: 20px 0 0;
  padding-left: 22px;
  color: #252b49;
  font-size: 1rem;
  line-height: 1.55;
}

.audience-card strong {
  color: var(--ink);
  font-weight: 950;
}

.pedagogy-principle {
  grid-column: 1;
  padding: 20px 22px;
  border-left: 5px solid var(--lemon-yellow);
}

.pedagogy-principle h2 span {
  border-color: #fff9b8;
  background: var(--lemon-yellow);
}

.home-dashboard-heading,
.home-public-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  margin-bottom: 22px;
  padding: 22px 24px;
  border: 1px solid var(--line);
  border-top: 6px solid var(--cobalt-green);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(61, 145, 64, 0.07), transparent 36%),
    linear-gradient(315deg, rgba(255, 244, 79, 0.18), transparent 42%),
    var(--surface);
  box-shadow: var(--shadow);
}

.home-dashboard-heading h1,
.home-public-panel h1 {
  margin: 0;
  color: var(--ink);
  font-size: 2rem;
  font-weight: 950;
  line-height: 1.12;
}

.home-dashboard-heading p,
.home-public-panel p {
  margin: 7px 0 0;
  color: var(--muted);
  font-weight: 650;
  line-height: 1.45;
}

.home-workbench {
  display: grid;
  grid-template-columns: minmax(440px, 1.35fr) minmax(300px, 0.86fr) minmax(280px, 0.72fr);
  gap: 18px;
  align-items: start;
}

.home-widget-stack {
  display: grid;
  gap: 18px;
}

.home-widget {
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--blue);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.97);
  box-shadow: var(--shadow);
}

.home-widget-timetable {
  grid-row: span 3;
  border-top-color: var(--cobalt-green);
}

.home-widget-wide {
  grid-column: span 1;
  border-top-color: var(--lemon-yellow);
}

.home-widget-note {
  border-top-color: var(--lemon-yellow);
}

.home-search-widget {
  border-top-color: var(--burnt-sienna);
}

.home-widget-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: start;
  margin-bottom: 14px;
}

.home-widget-head h2 {
  margin: 0;
  color: var(--ink);
  font-size: 1.05rem;
  font-weight: 950;
}

.home-widget-head p,
.home-widget > p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 0.94rem;
  font-weight: 650;
  line-height: 1.4;
}

.home-widget-link {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 7px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--blue);
  background: var(--surface);
  font-size: 0.88rem;
  font-weight: 900;
}

/* Source : layouts/shell-05.css */

.home-mini-timetable {
  display: grid;
  grid-template-columns: 58px repeat(5, minmax(84px, 1fr));
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f4f6fb;
}

.home-mini-cell {
  min-width: 0;
  min-height: 72px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.error-page {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, 0.72fr);
  gap: 24px;
  align-items: stretch;
  padding: 34px;
  border: 1px solid var(--line);
  border-top: 7px solid var(--burnt-sienna);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(61, 145, 64, 0.08), transparent 34%),
    linear-gradient(315deg, rgba(255, 244, 79, 0.24), transparent 42%),
    var(--surface);
  box-shadow: var(--shadow);
}

.error-copy {
  display: grid;
  align-content: center;
  min-width: 0;
}

.error-copy h1 {
  max-width: 820px;
  margin: 0;
  color: var(--ink);
  font-size: clamp(2.25rem, 5.4vw, 5rem);
  font-weight: 950;
  line-height: 0.98;
}

.error-copy p:not(.eyebrow) {
  max-width: 720px;
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 1.1rem;
  font-weight: 650;
  line-height: 1.52;
}

.error-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

.not-found-card {
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 12px;
  min-height: 260px;
  padding: 26px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(44, 101, 216, 0.12), transparent 38%),
    linear-gradient(315deg, rgba(233, 116, 81, 0.12), transparent 42%),
    #fffef2;
  color: var(--ink);
}

.not-found-card strong {
  font-size: clamp(4rem, 9vw, 8rem);
  font-weight: 950;
  line-height: 0.9;
}

.not-found-card span {
  color: var(--muted);
  font-weight: 900;
  text-transform: uppercase;
}

.absence-slip {
  display: grid;
  gap: 18px;
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-left: 6px solid var(--blue);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 14px 34px rgba(49, 94, 214, 0.08);
}

.absence-slip-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}

.absence-slip-head span {
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 900;
  text-transform: uppercase;
}

.absence-slip-head strong {
  padding: 6px 10px;
  border: 1px solid color-mix(in srgb, var(--burnt-sienna), white 58%);
  border-radius: 999px;
  background: var(--sienna-soft);
  color: #79331f;
  font-size: 0.86rem;
  font-weight: 950;
}

.absence-slip dl {
  display: grid;
  gap: 10px;
  margin: 0;
}

.absence-slip dl div {
  display: grid;
  grid-template-columns: minmax(92px, 0.42fr) minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface-soft);
}

.absence-slip dt {
  color: var(--muted);
  font-size: 0.85rem;
  font-weight: 900;
}

.absence-slip dd {
  margin: 0;
  color: var(--ink);
  font-weight: 950;
}

.error-mini-board {
  display: grid;
  grid-template-columns: 62px repeat(3, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #edf1f7;
}

.error-mini-board span,
.error-mini-board strong {
  display: grid;
  min-height: 48px;
  align-content: center;
  padding: 8px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  font-size: 0.82rem;
}

.error-mini-board span {
  color: var(--muted);
  background: rgba(255, 255, 255, 0.72);
  font-weight: 850;
}

.error-mini-board strong {
  background: rgba(255, 255, 255, 0.76);
  color: var(--ink);
  font-weight: 950;
}

.error-mini-board .is-missing {
  background: var(--sienna-soft);
  color: var(--danger);
}

.home-mini-day,
.home-mini-hour {
  display: grid;
  align-content: center;
  padding: 8px;
  background: rgba(255, 255, 255, 0.72);
}

/* Source : layouts/shell-06.css */

.home-mini-day {
  min-height: 52px;
  text-align: center;
}

.home-mini-day strong,
.home-mini-hour strong {
  color: var(--ink);
  font-size: 0.86rem;
  font-weight: 950;
}

.home-mini-day span,
.home-mini-hour span {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 750;
}

.home-mini-slot {
  display: grid;
  gap: 6px;
  align-content: start;
  padding: 6px;
  background: rgba(238, 243, 255, 0.35);
}

.home-mini-slot.has-course {
  background: rgba(255, 255, 255, 0.72);
}

.home-mini-course {
  display: grid;
  gap: 2px;
  min-height: 58px;
  padding: 8px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-left: 4px solid var(--blue);
  border-radius: 8px;
  background: var(--surface);
  color: var(--ink);
}

.home-mini-course.tone-yellow {
  border-left-color: var(--lemon-yellow);
  background: var(--yellow-soft);
}

.home-mini-course.tone-green {
  border-left-color: var(--cobalt-green);
  background: var(--green-soft);
}

.home-mini-course.tone-sienna {
  border-left-color: var(--burnt-sienna);
  background: var(--sienna-soft);
}

.home-mini-course strong {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: var(--ink);
  font-size: 0.76rem;
  font-weight: 950;
  line-height: 1.15;
}

.home-mini-course span,
.home-mini-more {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 800;
}

.home-mini-more {
  display: inline-flex;
  justify-self: start;
  padding: 3px 7px;
  border-radius: 999px;
  background: var(--blue-soft);
}

.home-empty-state {
  display: grid;
  place-items: center;
  min-height: 260px;
  padding: 22px;
  border: 1px dashed var(--line);
  border-radius: 12px;
  background: var(--surface-soft);
  text-align: center;
}

.home-empty-state strong {
  color: var(--ink);
  font-size: 1.05rem;
  font-weight: 950;
}

.home-empty-state span {
  max-width: 360px;
  color: var(--muted);
  font-weight: 650;
}

.home-sticky-note {
  display: grid;
  gap: 10px;
  min-height: 126px;
  padding: 16px;
  border-radius: 12px;
  background:
    linear-gradient(135deg, rgba(255, 244, 79, 0.52), rgba(255, 244, 79, 0.3)),
    #fff6a6;
}

.home-sticky-note a,
.home-task-list a,
.home-pill-list a {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.home-sticky-note strong,
.home-task-list strong,
.home-pill-list strong {
  color: var(--ink);
  font-weight: 950;
  line-height: 1.25;
}

.home-sticky-note span,
.home-task-list span,
.home-pill-list span,
.home-sticky-note > span,
.home-task-list p,
.home-pill-list > span {
  color: var(--muted);
  font-weight: 650;
  line-height: 1.4;
}

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

.home-task-list a {
  padding: 11px 0;
  border-bottom: 1px solid var(--line);
}

.home-task-list a:last-child {
  border-bottom: 0;
}

.home-task-list.is-compact a {
  padding: 8px 0;
}

.home-search-control {
  display: grid;
  gap: 8px;
  margin: 12px 0;
  color: var(--muted);
  font-size: 0.88rem;
  font-weight: 850;
}

.home-search-control input {
  width: 100%;
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
}

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

.home-search-control button {
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid var(--blue);
  border-radius: 999px;
  color: #fff;
  background: var(--blue);
  font-weight: 900;
  cursor: pointer;
}

/* Source : layouts/shell-07.css */
.home-search-control button:hover,
.home-search-control button:focus-visible {
  background: var(--cobalt-green);
  border-color: var(--cobalt-green);
}

.home-pill-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.home-pill-list a,
.home-pill-list > span {
  min-width: 210px;
  flex: 1 1 210px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface-soft);
}

.home-quick-pages {
  margin-top: 22px;
}

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

.legal-footer {
  display: flex;
  justify-content: center;
  padding: 0 20px 28px;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 750;
}

.legal-footer a {
  padding: 8px 12px;
  border-radius: var(--radius);
}

@media (max-width: 1200px) {
  .evaluation-cms-grid {
    grid-template-columns: minmax(180px, 0.55fr) minmax(0, 1.45fr);
  }

  .evaluation-cms-grid .evaluation-preview {
    grid-column: 1 / -1;
    position: static;
  }

  .topbar {
    grid-template-columns: minmax(180px, auto) minmax(0, 1fr);
  }

  .account-zone {
    grid-column: 1 / -1;
    grid-template-columns: repeat(auto-fit, minmax(150px, max-content));
    justify-content: start;
  }

  .role-nav {
    justify-content: end;
  }

  .home-workbench {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.78fr);
  }

  .home-widget-timetable {
    grid-row: span 2;
  }
}

.legal-grid,
.teacher-strip,
.student-trombi-grid,
.schedule-grid,
.workspace-grid {
  display: grid;
  gap: 14px;
}

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

.legal-card,
.trombi-heading,
.class-pill,
.trombi-summary article,
.teacher-card,
.student-card,
.schedule-slot,
.tool-panel {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.workspace-grid {
  grid-template-columns: minmax(0, 1.6fr) minmax(280px, 0.8fr);
  align-items: start;
}

.tool-panel {
  padding: 18px;
}

.tool-panel h2 {
  color: var(--ink);
  font-weight: 950;
}

.data-scroll {
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
}

.data-table {
  width: 100%;
  min-width: 860px;
  border-collapse: collapse;
  font-size: 0.92rem;
}

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

.data-table thead th {
  background: var(--surface-soft);
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 950;
}

.data-table tbody th {
  color: var(--ink);
  font-weight: 900;
}

.data-table tbody th span {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-weight: 700;
}

.table-group-row th {
  background: color-mix(in srgb, var(--cobalt-green), white 82%);
  color: #1f5522;
}

.bulletin-table td:nth-child(2),
.comment-table td:nth-child(4),
.comment-table td:nth-child(5),
.comment-table td:nth-child(6) {
  text-align: center;
}

.bulletin-heading {
  display: grid;
  grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1.2fr);
  gap: 16px;
  align-items: end;
  padding: 24px 28px;
  border: 1px solid var(--line);
  border-top: 6px solid var(--cobalt-green);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(61, 145, 64, 0.12), transparent 34%),
    linear-gradient(315deg, rgba(255, 244, 79, 0.18), transparent 40%),
    var(--surface);
  box-shadow: var(--shadow);
}

.bulletin-heading h1 {
  color: var(--ink);
  font-size: 2rem;
  font-weight: 950;
}

.bulletin-heading-actions,
.bulletin-filter-panel,
.bulletin-board-heading {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
}

/* Source : layouts/shell-08.css */

.bulletin-heading-actions {
  justify-content: flex-end;
}

.bulletin-class-rail {
  grid-template-columns: repeat(auto-fit, minmax(116px, 1fr));
}

.bulletin-filter-panel {
  margin: 18px 0;
}

.bulletin-subject-rail {
  display: flex;
  gap: 8px;
  align-items: center;
  max-width: 100%;
  overflow-x: auto;
  padding-bottom: 3px;
  scrollbar-width: thin;
}

.bulletin-subject-rail a,
.bulletin-subject-rail span {
  flex: 0 0 auto;
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--muted);
  font-weight: 850;
}

.bulletin-subject-rail a.is-selected {
  border-color: var(--blue);
  background: var(--blue);
  color: white;
}

.bulletin-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.bulletin-metrics article {
  padding: 16px;
  border: 1px solid var(--line);
  border-top: 4px solid var(--lemon-yellow);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.bulletin-metrics span {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 850;
}

.bulletin-metrics strong {
  display: block;
  margin-top: 5px;
  color: var(--blue);
  font-size: 1.34rem;
  font-weight: 950;
}

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

.class-comment-panel {
  display: grid;
  grid-template-columns: minmax(260px, 0.42fr) minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  border-top: 5px solid var(--blue);
}

.class-comment-panel h2,
.bulletin-board-heading h2 {
  margin: 0;
  color: var(--ink);
  font-weight: 950;
}

.class-comment-panel p,
.bulletin-board-heading p {
  margin: 5px 0 0;
  color: var(--muted);
  line-height: 1.42;
}

.class-comment-panel textarea,
.bulletin-comment-cell textarea,
.bulletin-comment-cell input {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px 12px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  font-weight: 760;
}

.class-comment-panel textarea,
.bulletin-comment-cell textarea {
  resize: vertical;
  line-height: 1.45;
}

.bulletin-board {
  border-top: 5px solid var(--cobalt-green);
}

.bulletin-board-heading {
  margin-bottom: 14px;
}

.bulletin-edit-table {
  min-width: 1320px;
}

.bulletin-edit-table th:first-child {
  position: sticky;
  left: 0;
  z-index: 1;
  min-width: 190px;
  background: var(--surface);
}

.bulletin-edit-table thead th:first-child {
  z-index: 2;
  background: var(--surface-soft);
}

.bulletin-edit-table th a {
  color: var(--ink);
  font-weight: 950;
}

.bulletin-comment-cell {
  display: grid;
  gap: 9px;
  min-width: 430px;
  text-align: left !important;
}

.bulletin-comment-cell label {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 850;
}

.bulletin-comment-cell p {
  margin: 0;
  padding: 10px;
  border-left: 4px solid var(--lemon-yellow);
  border-radius: 12px;
  background: var(--surface-soft);
  color: var(--muted);
  line-height: 1.42;
}

.other-comments {
  display: grid;
  gap: 5px;
}

.other-comments span {
  display: block;
  padding: 7px 9px;
  border-radius: 12px;
  background: var(--blue-soft);
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 760;
  line-height: 1.35;
}

.grades-heading {
  align-items: flex-end;
}

.grades-class-rail {
  grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
}

.grades-filter-panel {
  margin-top: 16px;
}

.grades-filters {
  display: grid;
  grid-template-columns: repeat(5, minmax(150px, 1fr)) auto;
  gap: 12px;
  align-items: end;
}

/* Source : layouts/shell-09.css */

.grades-filters label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 850;
}

.grades-filters select,
.grades-filters button {
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 0 14px;
  background: white;
  color: var(--ink);
  font: inherit;
  font-weight: 850;
}

.grades-filters button {
  cursor: pointer;
  border-color: var(--blue);
  background: var(--blue);
  color: white;
}

.grades-metrics {
  margin: 18px 0 24px;
}

.grades-board {
  display: grid;
  gap: 14px;
}

.grades-board-heading {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end;
  justify-content: space-between;
}

.grades-board-heading h2 {
  margin: 0;
}

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

.grades-board-heading > span {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  font-weight: 900;
}

.grades-table {
  min-width: 1120px;
}

.grades-table th,
.grades-table td {
  vertical-align: middle;
}

.grades-table thead th strong,
.grades-table thead th span,
.grade-cell span {
  display: block;
}

.grades-table thead th strong {
  color: var(--ink);
  font-size: 0.84rem;
}

.grades-table thead th span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.74rem;
}

.grades-student-col {
  position: sticky;
  left: 0;
  z-index: 1;
  min-width: 210px;
  background: white;
}

.grades-table thead .grades-student-col {
  z-index: 2;
  background: var(--surface-soft);
}

.grades-student-col a {
  color: var(--ink);
  font-weight: 950;
}

.grades-average strong {
  color: var(--blue);
  font-size: 1.05rem;
}

.trend-pill,
.alert-pill {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 900;
  white-space: nowrap;
}

.trend-up,
.alert-ok {
  background: color-mix(in srgb, var(--cobalt-green), white 86%);
  color: #226327;
}

.trend-down,
.alert-danger {
  background: color-mix(in srgb, var(--burnt-sienna), white 86%);
  color: #8a351e;
}

.trend-neutral,
.alert-muted,
.alert-warning {
  background: var(--surface-soft);
  color: var(--muted);
}

.alert-warning {
  background: color-mix(in srgb, var(--lemon-yellow), white 74%);
  color: #6a5c04;
}

.grade-cell {
  min-width: 120px;
}

.grade-cell strong {
  color: var(--ink);
}

.grade-cell span {
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 750;
}

.grade-cell-good {
  background: color-mix(in srgb, var(--cobalt-green), white 92%);
}

.grade-cell-low {
  background: color-mix(in srgb, var(--burnt-sienna), white 91%);
}

.grade-cell-pending,
.grade-cell-unpublished {
  background: color-mix(in srgb, var(--lemon-yellow), white 84%);
}

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

.grades-export-actions a {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-weight: 850;
}

.grades-empty {
  border-color: var(--line);
}

.textbook-heading {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(0, 2fr);
  gap: 16px;
  align-items: end;
  padding: 24px 28px;
  border: 1px solid var(--line);
  border-top: 6px solid var(--cobalt-green);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(61, 145, 64, 0.11), transparent 34%),
    linear-gradient(315deg, rgba(255, 244, 79, 0.2), transparent 42%),
    var(--surface);
  box-shadow: var(--shadow);
}

/* Source : layouts/shell-10.css */

.textbook-heading h1 {
  color: var(--ink);
  font-size: 2rem;
  font-weight: 950;
}

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

.course-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: end;
  padding: 24px 28px;
  border: 1px solid var(--line);
  border-top: 6px solid var(--cobalt-green);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(61, 145, 64, 0.11), transparent 34%),
    linear-gradient(315deg, rgba(255, 244, 79, 0.2), transparent 42%),
    var(--surface);
  box-shadow: var(--shadow);
}

.course-heading h1 {
  color: var(--ink);
  font-size: 2rem;
  font-weight: 950;
}

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

.course-subject-rail {
  display: flex;
  gap: 9px;
  align-items: center;
  overflow-x: auto;
  margin: 18px 0;
  padding-bottom: 4px;
  scrollbar-width: thin;
}

.course-subject-rail a {
  flex: 0 0 auto;
  min-height: 42px;
  padding: 9px 13px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--muted);
  font-weight: 900;
}

.course-subject-rail a.is-selected {
  border-color: var(--blue);
  background: var(--blue);
  color: white;
}

.course-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.55fr);
  gap: 16px;
  align-items: start;
}

.course-editor {
  border-top: 5px solid var(--cobalt-green);
}

.course-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.course-form label,
.course-resource-editor label,
.course-publication-editor label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 850;
}

.course-form input,
.course-form select,
.course-form textarea {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 9px 11px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  font-weight: 760;
}

.course-preview-actions,
.course-cms-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
}

.course-cms-actions form {
  display: flex;
  gap: 0.5rem;
}

.course-markdown-preview {
  min-height: 7rem;
  padding: 1rem;
  border: 1px solid var(--line-soft, #cfd6df);
  border-radius: 0.75rem;
  background: var(--surface-soft, #f7f9fc);
}

.course-markdown-preview:focus-visible {
  outline: 3px solid var(--focus, #315bd6);
  outline-offset: 3px;
}

.markdown-editor {
  display: grid;
  gap: 0.65rem;
  padding: 0.85rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface-soft);
}

.markdown-editor-heading,
.markdown-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.markdown-editor-heading div { display: grid; gap: 0.2rem; }
.markdown-editor-heading span, .markdown-save-status { color: var(--muted); font-size: 0.82rem; }
.markdown-toolbar { justify-content: flex-start; }
.markdown-toolbar button { min-height: 40px; padding: 0.45rem 0.7rem; border: 1px solid var(--line); border-radius: 0.6rem; background: var(--surface); color: var(--ink); font-weight: 800; }
.markdown-editor.is-fullscreen { position: fixed; z-index: 1000; inset: 0; overflow: auto; border-radius: 0; padding: 1rem; background: var(--surface); }
.markdown-editor.is-fullscreen textarea { min-height: calc(100vh - 12rem); }
.draft-history { padding: 0.75rem; border: 1px solid var(--line); border-radius: 0.75rem; }

.course-resource-manager { display: grid; gap: 0.75rem; margin-top: 1rem; }
.resource-edit-card { border: 1px solid var(--line); border-radius: 0.75rem; padding: 0.75rem; background: var(--surface-soft); }
.resource-edit-card > summary, .resource-advanced > summary { cursor: pointer; font-weight: 900; }
.resource-edit-card form, .course-resource-metadata { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; margin-top: 0.75rem; }
.resource-edit-card label, .course-resource-metadata label { display: grid; gap: 0.35rem; }

@media (max-width: 680px) {
  .resource-edit-card form, .course-resource-metadata { grid-template-columns: 1fr; }
}

.course-form textarea {
  resize: vertical;
  line-height: 1.45;
}

.course-wide-field,
.course-resource-editor,
.course-publication-editor,
.course-submit {
  grid-column: 1 / -1;
}

.course-check {
  display: flex !important;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 9px !important;
  min-height: 42px;
}

.course-check input {
  width: 18px;
  min-height: 18px;
}

/* Source : layouts/shell-11.css */
.course-resource-editor,
.course-publication-editor {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  border: 1px solid var(--line);
  border-left: 5px solid var(--lemon-yellow);
  border-radius: var(--radius);
  padding: 14px;
  background: var(--surface-soft);
}

.course-resource-editor legend,
.course-publication-editor legend {
  padding: 0 8px;
  color: var(--ink);
  font-weight: 950;
}

.course-date-row {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.course-class-grid {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  gap: 10px;
}

.course-class-choice {
  gap: 4px !important;
  min-height: 78px;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 10px;
  background: white;
}

.course-class-choice input {
  width: 18px;
  min-height: 18px;
}

.course-class-choice strong,
.course-class-choice span {
  display: block;
}

.course-class-choice strong {
  color: var(--ink);
  font-size: 1rem;
}

.course-class-choice.is-selected {
  border-color: var(--blue);
  background: var(--blue-soft);
}

.course-guide {
  position: sticky;
  top: 116px;
  border-top: 5px solid var(--burnt-sienna);
}

.course-guide h2 {
  margin-top: 0;
}

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

.course-guide-list article {
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--surface-soft);
}

.course-guide-list strong {
  color: var(--ink);
}

.course-guide-list p {
  margin: 6px 0 0;
  color: var(--muted);
  line-height: 1.42;
}

.course-library {
  margin-top: 22px;
}

.course-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 14px;
}

.course-card,
.course-empty {
  border: 1px solid var(--line);
  border-top: 5px solid var(--blue);
  border-radius: var(--radius);
  padding: 16px;
  background: var(--surface);
  box-shadow: var(--shadow);
}

.course-card header {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  justify-content: space-between;
}

.course-card h3 {
  margin: 4px 0;
  color: var(--ink);
  font-size: 1.12rem;
  font-weight: 950;
}

.course-card header span,
.course-card header p {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 850;
}

.course-mini-block,
.course-resource-list,
.course-publication-list {
  display: grid;
  gap: 6px;
  margin-top: 12px;
}

.course-mini-block {
  padding: 10px;
  border-radius: 14px;
  background: var(--surface-soft);
}

.course-mini-block strong {
  color: var(--ink);
}

.course-mini-block p {
  margin: 0;
  color: var(--muted);
  line-height: 1.42;
}

.course-resource-list a,
.course-resource-list span,
.course-publication-list span {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 5px 10px;
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 850;
}

.course-publication-list span.is-visible {
  border-color: var(--cobalt-green);
  background: var(--green-soft);
  color: #1f5522;
}

.course-preview-page {
  display: grid;
  gap: 1.25rem;
}

.course-preview-summary,
.course-preview-controls,
.course-student-preview-frame {
  border: 1px solid var(--line-soft, #cfd6df);
  border-radius: 1rem;
  background: var(--surface);
  padding: 1rem;
}

.course-preview-controls,
.course-preview-review-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

/* Source : layouts/shell-12.css */

.course-preview-controls fieldset {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.course-student-preview-frame {
  margin-inline: auto;
  transition: max-width 180ms ease;
  width: 100%;
}

.course-student-preview-frame.is-desktop { max-width: 1120px; }
.course-student-preview-frame.is-tablet { max-width: 768px; }
.course-student-preview-frame.is-mobile { max-width: 390px; }
.course-student-preview-frame.adaptation-large_text { font-size: 1.2rem; }
.course-student-preview-frame.adaptation-high_contrast { filter: contrast(1.25); }
.course-student-preview-frame.adaptation-reduced_motion * { animation: none !important; transition: none !important; }

.course-preview-student-banner {
  margin-bottom: 1rem;
  padding: 0.75rem;
  border-radius: 0.75rem;
  background: var(--surface-muted, #f4f6fa);
}

.course-preview-checklist {
  display: grid;
  gap: 0.65rem;
  list-style: none;
  padding: 0;
}

.course-preview-checklist li { display: flex; gap: 0.5rem; }
.course-preview-checklist .is-ok span { color: var(--success, #18794e); }
.course-preview-checklist .is-error span { color: var(--danger); }

@media (max-width: 720px) {
  .course-preview-controls,
  .course-preview-review-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .course-student-preview-frame { transition: none; }
}

@media print {
  .correspondence-year-form,
  .correspondence-filters,
  .correspondence-pagination,
  .correspondence-chart {
    display: none;
  }

  .correspondence-workspace {
    display: block;
  }

  .correspondence-event,
  .correspondence-chart-panel,
  .correspondence-table-alternative tr {
    break-inside: avoid;
  }
}

/* Source : components/shared-01.css */
.school-year-pill {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--muted);
  font-weight: 900;
}

.chapter-heading,
.student-chapter-heading,
.crossword-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: end;
  padding: 24px 28px;
  border: 1px solid var(--line);
  border-top: 6px solid var(--cobalt-green);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(61, 145, 64, 0.1), transparent 34%),
    linear-gradient(315deg, rgba(255, 244, 79, 0.19), transparent 42%),
    var(--surface);
  box-shadow: var(--shadow);
}

.crossword-heading {
  border-top-color: var(--burnt-sienna);
}

.chapter-wallpaper-surface {
  --chapter-wallpaper-a: var(--cobalt-green);
  --chapter-wallpaper-b: var(--lemon-yellow);
  --chapter-wallpaper-c: var(--burnt-sienna);
  --chapter-wallpaper-d: var(--blue);
  background:
    linear-gradient(115deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.58)),
    linear-gradient(
      145deg,
      color-mix(in srgb, var(--chapter-wallpaper-a) 18%, transparent),
      transparent 52%,
      color-mix(in srgb, var(--chapter-wallpaper-c) 12%, transparent)
    ),
    var(
      --chapter-wallpaper-image,
      linear-gradient(
        135deg,
        var(--chapter-wallpaper-a),
        var(--chapter-wallpaper-b) 45%,
        var(--chapter-wallpaper-c) 78%,
        var(--chapter-wallpaper-d)
      )
    );
  background-position: center;
  background-size: cover;
}

.subject-card-icon {
  width: 4rem;
  height: 4rem;
  flex: 0 0 4rem;
  object-fit: contain;
  border-radius: 1rem;
}

.student-chapter-heading.chapter-wallpaper-surface {
  min-height: 230px;
  border-top-color: var(--chapter-wallpaper-a);
}

.chapter-card-wallpaper,
.subject-chapter-wallpaper,
.chapter-wallpaper-preview,
.chapter-preview-wallpaper {
  position: relative;
  overflow: hidden;
}

.chapter-card-wallpaper,
.subject-chapter-wallpaper {
  display: flex;
  min-height: 96px;
  align-items: flex-end;
  padding: 12px;
}

.chapter-card-wallpaper {
  margin: -16px -16px 14px;
  border-radius: calc(var(--radius) - 2px) calc(var(--radius) - 2px) 14px 14px;
}

.subject-chapter-wallpaper {
  margin: -15px -15px 0;
  border-radius: calc(var(--radius) - 2px) calc(var(--radius) - 2px) 14px 14px;
}

.chapter-wallpaper-preview,
.chapter-preview-wallpaper {
  display: flex;
  min-height: 130px;
  align-items: flex-end;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 14px;
}

.chapter-wallpaper-preview {
  grid-row: span 2;
}

.chapter-preview-wallpaper {
  margin-bottom: 12px;
}

.chapter-card-wallpaper span,
.subject-chapter-wallpaper span,
.chapter-wallpaper-preview span,
.chapter-preview-wallpaper span {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  padding: 4px 10px;
  border: 1px solid rgba(255, 255, 255, 0.65);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.82);
  color: var(--ink);
  font-size: 0.78rem;
  font-weight: 950;
}

.chapter-heading h1,
.student-chapter-heading h1,
.crossword-heading h1 {
  color: var(--ink);
  font-size: 2rem;
  font-weight: 950;
}

.chapter-heading-actions,
.student-chapter-actions,
.crossword-heading-actions,
.chapter-toolbar,
.chapter-year-rail,
.chapter-subject-rail {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.chapter-heading-actions,
.student-chapter-actions,
.crossword-heading-actions {
  justify-content: flex-end;
}

.chapter-toolbar {
  justify-content: space-between;
  margin: 18px 0;
}

.chapter-year-rail,
.chapter-subject-rail {
  max-width: 100%;
  overflow-x: auto;
  padding-bottom: 4px;
  scrollbar-width: thin;
}

.chapter-year-rail a,
.chapter-subject-rail a {
  flex: 0 0 auto;
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--muted);
  font-weight: 900;
}

.chapter-year-rail a.is-selected,
.chapter-subject-rail a.is-selected {
  border-color: var(--blue);
  background: var(--blue);
  color: white;
}

.technology-board {
  display: grid;
  gap: 14px;
  margin: 18px 0;
}

.technology-theme-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.technology-theme {
  display: grid;
  gap: 12px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--cobalt-green);
  border-radius: var(--radius);
  padding: 14px;
  background: var(--surface);
  box-shadow: var(--shadow);
}

/* Source : components/shared-02.css */

.technology-theme:nth-child(2) {
  border-top-color: var(--blue);
}

.technology-theme:nth-child(3) {
  border-top-color: var(--burnt-sienna);
}

.technology-theme header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: start;
}

.technology-theme header > span {
  display: grid;
  place-items: center;
  min-width: 42px;
  height: 42px;
  border-radius: 12px;
  background: var(--blue);
  color: white;
  font-weight: 950;
}

.technology-theme h3 {
  margin: 0;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 950;
}

.technology-theme p {
  margin: 4px 0 0;
  color: var(--muted);
  line-height: 1.35;
}

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

.technology-preset {
  display: grid;
  gap: 5px;
  min-height: 104px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--lemon-yellow);
  border-radius: 14px;
  padding: 10px;
  background: var(--surface-soft);
  color: var(--ink);
}

.technology-preset.is-selected {
  border-color: var(--blue);
  border-left-color: var(--blue);
  background: var(--blue-soft);
}

.technology-preset span {
  color: var(--blue);
  font-size: 0.72rem;
  font-weight: 950;
  text-transform: uppercase;
}

.technology-preset strong {
  color: var(--ink);
  font-weight: 950;
  line-height: 1.15;
}

.technology-preset small,
.technology-preset em {
  color: var(--muted);
  font-style: normal;
  line-height: 1.32;
}

.technology-preset em {
  font-size: 0.76rem;
  font-weight: 820;
}

.chapter-metrics,
.crossword-scorebar {
  margin-bottom: 18px;
}

.chapter-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(310px, 0.55fr);
  gap: 16px;
  align-items: start;
}

.chapter-editor {
  border-top: 5px solid var(--cobalt-green);
}

.chapter-preview,
.student-chapter-side,
.crossword-clue-panel {
  position: sticky;
  top: 116px;
  border-top: 5px solid var(--burnt-sienna);
}

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

.chapter-form label,
.chapter-game-editor label,
.chapter-term-editor label,
.chapter-link-editor label,
.chapter-publication-editor label {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 850;
}

.chapter-form input,
.chapter-form select,
.chapter-form textarea {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 9px 11px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  font-weight: 760;
}

.chapter-form textarea {
  resize: vertical;
  line-height: 1.45;
}

.chapter-wide-field,
.chapter-game-editor,
.chapter-wallpaper-editor,
.chapter-term-editor,
.chapter-link-editor,
.chapter-publication-editor,
.chapter-submit {
  grid-column: 1 / -1;
}

.chapter-check {
  display: flex !important;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 9px !important;
  min-height: 42px;
}

.chapter-check input {
  width: 18px;
  min-height: 18px;
}

.chapter-game-editor,
.chapter-wallpaper-editor,
.chapter-term-editor,
.chapter-link-editor,
.chapter-publication-editor {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  border: 1px solid var(--line);
  border-left: 5px solid var(--lemon-yellow);
  border-radius: var(--radius);
  padding: 14px;
  background: var(--surface-soft);
}

.chapter-wallpaper-editor {
  border-left-color: var(--burnt-sienna);
}

.chapter-term-editor {
  border-left-color: var(--burnt-sienna);
}

.chapter-link-editor {
  border-left-color: var(--blue);
}

/* Source : components/shared-03.css */

.chapter-publication-editor {
  border-left-color: var(--cobalt-green);
}

.chapter-game-editor legend,
.chapter-wallpaper-editor legend,
.chapter-term-editor legend,
.chapter-link-editor legend,
.chapter-publication-editor legend {
  padding: 0 8px;
  color: var(--ink);
  font-weight: 950;
}

.chapter-date-row {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.chapter-link-grid,
.chapter-class-grid {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 10px;
}

.chapter-link-grid label,
.chapter-class-choice {
  display: flex;
  align-items: center;
  min-height: 64px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px;
  background: white;
}

.chapter-link-grid label.is-selected,
.chapter-class-choice.is-selected {
  border-color: var(--blue);
  background: var(--blue-soft);
}

.chapter-link-grid input,
.chapter-class-choice input {
  width: 18px;
  min-height: 18px;
}

.chapter-link-grid span,
.chapter-class-choice span,
.chapter-class-choice strong {
  display: block;
}

.chapter-link-grid strong {
  color: var(--blue);
  font-weight: 950;
}

.chapter-link-grid em {
  color: var(--muted);
  font-size: 0.75rem;
  font-style: normal;
}

.chapter-class-choice {
  gap: 9px !important;
}

.chapter-class-choice strong {
  color: var(--ink);
  font-size: 1rem;
  font-weight: 950;
}

.chapter-preview-stack,
.chapter-mini-list,
.student-course-stack,
.student-term-list {
  display: grid;
  gap: 12px;
}

.chapter-preview-stack article,
.student-term-list article {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 13px;
  background: var(--surface-soft);
}

.chapter-mini-list > div {
  display: grid;
  gap: 4px;
  border-radius: 12px;
  padding: 10px;
  background: white;
}

.chapter-preview-stack strong,
.chapter-mini-list b,
.student-term-list strong {
  color: var(--ink);
  font-weight: 950;
}

.chapter-preview-stack p,
.chapter-mini-list p,
.student-term-list p,
.student-term-list span {
  margin: 0;
  color: var(--muted);
  line-height: 1.42;
}

.chapter-library,
.student-competency-band {
  margin-top: 22px;
}

.chapter-card-grid,
.student-competency-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
}

.chapter-card,
.student-course-card,
.student-competency-grid article {
  overflow: hidden;
  border: 1px solid var(--line);
  border-top: 5px solid var(--blue);
  border-radius: var(--radius);
  padding: 16px;
  background: var(--surface);
  box-shadow: var(--shadow);
}

.chapter-card.is-selected {
  border-color: var(--blue);
  background: var(--blue-soft);
}

.chapter-card header,
.student-course-card header {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  justify-content: space-between;
}

.chapter-card h3,
.student-course-card h3 {
  margin: 4px 0;
  color: var(--ink);
  font-size: 1.12rem;
  font-weight: 950;
}

.chapter-card header span,
.chapter-card header p,
.student-course-card header span {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 850;
}

.chapter-card p {
  color: var(--muted);
  line-height: 1.42;
}

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

.chapter-card dl div,
.student-course-block {
  border-radius: 12px;
  padding: 10px;
  background: var(--surface-soft);
}

.chapter-card dt {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 900;
}

/* Source : components/shared-04.css */

.chapter-card dd {
  margin: 3px 0 0;
  color: var(--blue);
  font-weight: 950;
}

.student-chapter-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.5fr);
  gap: 16px;
  margin-top: 18px;
  align-items: start;
}

.student-chapter-main {
  border-top: 5px solid var(--blue);
}

.student-course-block {
  display: grid;
  gap: 6px;
  margin-top: 12px;
}

.student-course-block strong,
.student-competency-grid strong {
  color: var(--ink);
}

.student-course-block p,
.student-competency-grid p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.course-prose {
  min-width: 0;
  color: var(--muted);
  line-height: 1.55;
  overflow-wrap: anywhere;
}

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

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

.course-prose h2,
.course-prose h3,
.course-prose h4 {
  margin: 1.1rem 0 0.45rem;
  color: var(--ink);
  font-size: 1rem;
}

.course-prose p,
.course-prose ul,
.course-prose ol,
.course-prose blockquote,
.course-prose pre {
  margin: 0.45rem 0;
}

.course-prose ul,
.course-prose ol {
  padding-left: 1.35rem;
}

.course-prose a {
  color: var(--blue);
  font-weight: 850;
}

.course-prose pre,
.course-prose code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.course-prose pre {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
  background: var(--surface);
}

.student-resource-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.student-resource-row a,
.student-resource-row span {
  display: inline-flex;
  min-height: 32px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 5px 10px;
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 850;
}

.student-resource-row figure {
  margin: 0;
  max-width: 32rem;
}

.student-resource-row img,
.student-resource-row video {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: 0.75rem;
}

.student-resource-row figcaption,
.student-term-list small {
  display: block;
  margin-top: 0.35rem;
  color: var(--text-muted);
}

@media print {
  .student-chapter-actions,
  .course-activity-status,
  nav,
  footer {
    display: none !important;
  }

  .student-chapter-layout {
    display: block;
  }

  .student-course-card,
  .student-term-list article {
    break-inside: avoid;
  }
}

.student-competency-grid article {
  display: grid;
  gap: 6px;
  border-top-color: var(--cobalt-green);
}

.student-competency-grid span {
  color: var(--blue);
  font-weight: 950;
}

.crossword-scorebar {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.crossword-scorebar article {
  border: 1px solid var(--line);
  border-top: 5px solid var(--lemon-yellow);
  border-radius: var(--radius);
  padding: 16px;
  background: var(--surface);
  box-shadow: var(--shadow);
}

.crossword-scorebar span {
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 900;
}

.crossword-scorebar strong {
  display: block;
  margin-top: 4px;
  color: var(--blue);
  font-size: 1.35rem;
  font-weight: 950;
}

.crossword-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(290px, 0.42fr);
  gap: 16px;
  align-items: start;
}

.crossword-board-panel {
  border-top: 5px solid var(--blue);
}

/* Source : components/shared-05.css */

.crossword-board-scroll {
  max-width: 100%;
  overflow-x: auto;
  padding-bottom: 8px;
}

.crossword-grid {
  display: grid;
  grid-template-columns: repeat(var(--crossword-size), 34px);
  grid-auto-rows: 34px;
  width: max-content;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 8px;
  background: var(--surface-soft);
}

.crossword-cell {
  position: relative;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid #d7def0;
  border-radius: 6px;
  background: white;
  color: var(--ink);
  font: inherit;
  font-weight: 950;
}

.crossword-cell.is-blocked {
  border-color: transparent;
  background: transparent;
}

.crossword-cell.is-active {
  border-color: var(--burnt-sienna);
  background: #fff2d7;
}

.crossword-cell.is-filled {
  border-color: var(--blue);
  background: var(--blue-soft);
}

.crossword-number {
  position: absolute;
  top: 2px;
  left: 4px;
  color: var(--muted);
  font-size: 0.56rem;
  font-weight: 900;
}

.crossword-answer-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
  margin-top: 16px;
}

.crossword-answer-panel label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 850;
}

.crossword-answer-panel input {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 9px 12px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  font-weight: 900;
  text-transform: uppercase;
}

.crossword-answer-panel p {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--muted);
}

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

.crossword-clue-list button {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 4px 10px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 12px;
  background: white;
  color: var(--ink);
  text-align: left;
  font: inherit;
}

.crossword-clue-list button.is-selected {
  border-color: var(--blue);
  background: var(--blue-soft);
}

.crossword-clue-list button.is-solved {
  border-color: var(--cobalt-green);
  background: var(--green-soft);
}

.crossword-clue-list button.is-solved strong::after {
  content: " · terminé";
  color: var(--cobalt-green);
}

.crossword-clue-list span {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--blue);
  color: white;
  font-size: 0.82rem;
  font-weight: 950;
}

.crossword-clue-list strong {
  align-self: center;
  color: var(--ink);
}

.crossword-clue-list p,
.crossword-clue-list em {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--muted);
  line-height: 1.35;
}

.crossword-clue-list em {
  font-style: normal;
  font-size: 0.82rem;
}

.crossword-instruction {
  margin-top: 0;
  color: var(--muted);
}

.crossword-cell input {
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 5px;
  padding: 5px 2px 0;
  background: transparent;
  color: var(--ink);
  text-align: center;
  text-transform: uppercase;
  font: inherit;
  font-weight: 950;
}

.crossword-cell input:focus-visible,
.crossword-cell input.is-active {
  outline: 3px solid var(--burnt-sienna);
  outline-offset: -3px;
  background: #fff2d7;
}

.crossword-clue-card {
  display: grid;
  gap: 7px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 12px;
  background: white;
}

.crossword-clue-card.is-selected {
  border-color: var(--blue);
  box-shadow: 0 0 0 2px var(--blue-soft);
}

.crossword-clue-card span,
.crossword-clue-card small,
.crossword-clue-card em {
  color: var(--muted);
  line-height: 1.4;
}

/* Source : components/shared-06.css */

.crossword-clue-list .crossword-clue-card > span {
  display: block;
  width: auto;
  height: auto;
  border-radius: 0;
  background: transparent;
  color: var(--muted);
  font-size: inherit;
  font-weight: inherit;
}

.crossword-clue-card em {
  font-size: 0.84rem;
}

.crossword-clue-card input,
.crossword-list-alternative input {
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 8px 10px;
  text-transform: uppercase;
  font: inherit;
  font-weight: 850;
}

.crossword-final-form {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin-top: 16px;
}

.crossword-final-form output {
  flex: 1 1 260px;
  color: var(--muted);
}

.crossword-final-form output.is-error {
  color: var(--danger);
}

.crossword-list-alternative,
.crossword-correction-list {
  display: grid;
  gap: 12px;
}

.crossword-list-alternative li,
.crossword-correction-list li {
  border-left: 4px solid var(--blue);
  padding: 10px 12px;
  background: var(--surface-soft);
}

.crossword-list-alternative label {
  display: grid;
  gap: 5px;
  margin-bottom: 8px;
}

.evaluation-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: end;
  padding: 24px 28px;
  border: 1px solid var(--line);
  border-top: 6px solid var(--burnt-sienna);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(233, 116, 81, 0.12), transparent 34%),
    linear-gradient(315deg, rgba(255, 244, 79, 0.2), transparent 42%),
    var(--surface);
  box-shadow: var(--shadow);
}

.evaluation-heading h1 {
  color: var(--ink);
  font-size: 2rem;
  font-weight: 950;
}

.evaluation-heading-actions,
.evaluation-toolbar,
.evaluation-year-rail,
.evaluation-subject-rail {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.evaluation-heading-actions {
  justify-content: flex-end;
}

.evaluation-toolbar {
  justify-content: space-between;
  margin: 18px 0;
}

.evaluation-subject-rail,
.evaluation-year-rail {
  max-width: 100%;
  overflow-x: auto;
  padding-bottom: 4px;
  scrollbar-width: thin;
}

.evaluation-subject-rail a,
.evaluation-year-rail a {
  flex: 0 0 auto;
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--muted);
  font-weight: 900;
}

.evaluation-subject-rail a.is-selected,
.evaluation-year-rail a.is-selected {
  border-color: var(--blue);
  background: var(--blue);
  color: white;
}

.evaluation-metrics {
  margin-bottom: 18px;
}

.evaluation-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(310px, 0.55fr);
  gap: 16px;
  align-items: start;
}

.evaluation-cms-grid {
  display: grid;
  grid-template-columns: minmax(180px, 0.65fr) minmax(360px, 1.45fr) minmax(300px, 1fr);
  gap: 16px;
  align-items: start;
}

.evaluation-block-library,
.evaluation-preview {
  position: sticky;
  top: 116px;
}

.evaluation-block-library {
  border-top: 5px solid var(--burnt-sienna);
}

.evaluation-library-buttons {
  display: grid;
  gap: 8px;
}

.evaluation-library-buttons .button {
  width: 100%;
  justify-content: flex-start;
}

.evaluation-autosave-status {
  grid-column: 1 / -1;
  min-height: 1.5em;
  color: var(--muted);
  font-weight: 800;
}

.evaluation-autosave-status.is-error {
  color: var(--danger);
}

.evaluation-ai-panel {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid var(--border-color, #cbd5e1);
  border-radius: 0.75rem;
  background: var(--surface-soft, #f8fafc);
}

.evaluation-ai-panel form,
.evaluation-ai-result {
  display: grid;
  gap: 0.75rem;
  margin-top: 0.75rem;
}

.evaluation-ai-panel textarea {
  width: 100%;
}

@media (prefers-reduced-motion: reduce) {
  .evaluation-ai-panel * {
    scroll-behavior: auto;
    transition-duration: 0.01ms !important;
  }
}

/* Source : components/shared-07.css */


/* Source : pages/domain-01.css */
.evaluation-advanced {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px 12px;
  background: var(--surface-soft);
}

.evaluation-advanced summary {
  cursor: pointer;
  color: var(--ink);
  font-weight: 900;
}

.evaluation-competency-results {
  display: flex;
  grid-column: 1 / -1;
  flex-wrap: wrap;
  gap: 8px;
  min-height: 1.5em;
  margin-bottom: 10px;
}

.evaluation-media-rights {
  color: var(--muted);
  font-size: 0.8rem;
}

.evaluation-preview[data-preview-mode="tablet"] .evaluation-mini-list {
  max-width: 760px;
}

.evaluation-preview[data-preview-mode="mobile"] .evaluation-mini-list {
  max-width: 390px;
  grid-template-columns: 1fr;
}

.evaluation-mini-list > [data-block-card] {
  grid-column: span min(var(--block-columns, 1), 4);
  min-height: calc(76px * min(var(--block-rows, 1), 3));
}

.evaluation-mini-list > [data-block-card].is-hidden {
  border-style: dashed;
  opacity: 0.62;
}

.evaluation-mini-list > [data-block-card].is-dragging {
  outline: 3px solid var(--blue);
  opacity: 0.55;
}

.evaluation-editor {
  border-top: 5px solid var(--cobalt-green);
}

.evaluation-preview {
  border-top: 5px solid var(--blue);
}

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

.evaluation-form label,
.evaluation-block-editor label,
.evaluation-link-editor label,
.evaluation-medal-editor label,
.evaluation-schedule-editor label,
.evaluation-worker-editor label {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 850;
}

.evaluation-form input,
.evaluation-form select,
.evaluation-form textarea {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 9px 11px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  font-weight: 760;
}

.evaluation-form textarea {
  resize: vertical;
  line-height: 1.45;
}

.evaluation-wide-field,
.evaluation-block-editor,
.evaluation-link-editor,
.evaluation-medal-editor,
.evaluation-schedule-editor,
.evaluation-worker-editor,
.evaluation-submit {
  grid-column: 1 / -1;
}

.evaluation-option-row,
.evaluation-date-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.evaluation-check {
  display: flex !important;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 9px !important;
  min-height: 42px;
}

.evaluation-check input {
  width: 18px;
  min-height: 18px;
}

.evaluation-block-editor,
.evaluation-link-editor,
.evaluation-medal-editor,
.evaluation-schedule-editor,
.evaluation-worker-editor {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  border: 1px solid var(--line);
  border-left: 5px solid var(--lemon-yellow);
  border-radius: var(--radius);
  padding: 14px;
  background: var(--surface-soft);
}

.evaluation-link-editor {
  border-left-color: var(--blue);
}

.evaluation-medal-editor {
  border-left-color: var(--burnt-sienna);
}

.evaluation-schedule-editor {
  border-left-color: var(--cobalt-green);
}

.evaluation-worker-editor {
  border-left-color: var(--burnt-sienna);
}

.evaluation-block-editor legend,
.evaluation-link-editor legend,
.evaluation-medal-editor legend,
.evaluation-schedule-editor legend,
.evaluation-worker-editor legend {
  padding: 0 8px;
  color: var(--ink);
  font-weight: 950;
}

.evaluation-worker-editor p {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--muted);
  line-height: 1.42;
}

.evaluation-cancel-block {
  grid-column: 1 / -1;
  justify-self: start;
}

.evaluation-locked-notice {
  grid-column: 1 / -1;
  border: 1px solid color-mix(in srgb, var(--burnt-sienna) 35%, var(--line));
  border-left: 5px solid var(--burnt-sienna);
  border-radius: 8px;
  padding: 12px 14px;
  background: color-mix(in srgb, var(--burnt-sienna) 8%, var(--surface));
  color: var(--ink);
  line-height: 1.45;
}

.evaluation-link-grid,
.evaluation-class-grid {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 10px;
}

/* Source : pages/domain-02.css */

.evaluation-medal-grid {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}

.evaluation-medal-choice {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
  background: var(--surface);
}

.evaluation-medal-choice.is-selected {
  border-color: var(--blue);
  background: var(--blue-soft);
}

.evaluation-medal-choice p {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.4;
}

.evaluation-medal-toggle {
  display: grid !important;
  grid-template-columns: auto 38px 1fr;
  align-items: center;
}

.evaluation-medal-toggle > input {
  width: 18px;
  min-height: 18px;
}

.evaluation-medal-toggle img,
.evaluation-medal-toggle > span {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  object-fit: contain;
  border-radius: 50%;
  background: var(--lemon-soft);
  color: var(--ink);
  font-weight: 950;
}

.evaluation-medal-choice > div {
  display: grid;
  grid-template-columns: minmax(90px, 0.6fr) 1fr;
  gap: 8px;
}

.evaluation-new-medal {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(220px, 1fr) 120px minmax(120px, 0.5fr);
  gap: 10px;
  border-top: 1px solid var(--line);
  padding-top: 12px;
}

@media (max-width: 760px) {
  .evaluation-medal-grid,
  .evaluation-new-medal {
    grid-template-columns: 1fr;
  }
}

.evaluation-link-grid label,
.evaluation-class-choice {
  display: flex;
  align-items: center;
  min-height: 64px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px;
  background: white;
}

.evaluation-link-grid label.is-selected,
.evaluation-class-choice.is-selected {
  border-color: var(--blue);
  background: var(--blue-soft);
}

.evaluation-link-grid input,
.evaluation-class-choice input {
  width: 18px;
  min-height: 18px;
}

.evaluation-link-grid span,
.evaluation-class-choice span,
.evaluation-class-choice strong {
  display: block;
}

.evaluation-link-grid strong {
  color: var(--blue);
  font-weight: 950;
}

.evaluation-link-grid em {
  color: var(--muted);
  font-size: 0.75rem;
  font-style: normal;
}

.evaluation-class-choice {
  gap: 9px !important;
}

.evaluation-class-choice strong {
  color: var(--ink);
  font-size: 1rem;
  font-weight: 950;
}

.evaluation-preview-stack {
  display: grid;
  gap: 12px;
}

.evaluation-preview-stack article {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 13px;
  background: var(--surface-soft);
}

.evaluation-preview-stack strong {
  color: var(--ink);
  font-weight: 950;
}

.evaluation-preview-stack span,
.evaluation-preview-stack p {
  color: var(--muted);
  line-height: 1.42;
}

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

.evaluation-mini-list > div {
  display: grid;
  gap: 4px;
  border-radius: 12px;
  padding: 10px;
  background: white;
}

.evaluation-block-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin-top: 5px;
}

.evaluation-block-actions form {
  margin: 0;
}

.evaluation-block-actions .button,
.evaluation-block-icon {
  min-height: 34px;
}

.evaluation-block-actions .button {
  padding: 6px 10px;
  font-size: 0.78rem;
}

.evaluation-block-icon {
  display: inline-grid;
  width: 34px;
  min-width: 34px;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  color: var(--blue);
  font: inherit;
  font-size: 1rem;
  font-weight: 950;
  cursor: pointer;
}

/* Source : pages/domain-03.css */
.evaluation-block-icon:hover,
.evaluation-block-icon:focus-visible {
  border-color: var(--blue);
  background: var(--blue-soft);
}

.evaluation-block-icon.is-danger {
  color: var(--danger);
}

.evaluation-block-icon.is-danger:hover,
.evaluation-block-icon.is-danger:focus-visible {
  border-color: var(--danger);
  background: color-mix(in srgb, var(--danger) 8%, var(--surface));
}

.evaluation-mini-list b {
  color: var(--ink);
}

.evaluation-library {
  margin-top: 22px;
}

.evaluation-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 14px;
}

.evaluation-card {
  border: 1px solid var(--line);
  border-top: 5px solid var(--burnt-sienna);
  border-radius: var(--radius);
  padding: 16px;
  background: var(--surface);
  box-shadow: var(--shadow);
}

.evaluation-card header {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  justify-content: space-between;
}

.evaluation-card h3 {
  margin: 4px 0;
  color: var(--ink);
  font-size: 1.12rem;
  font-weight: 950;
}

.evaluation-card header span,
.evaluation-card header p {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 850;
}

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

.evaluation-card dl div {
  border-radius: 12px;
  padding: 9px;
  background: var(--surface-soft);
}

.evaluation-card dt {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 900;
}

.evaluation-card dd {
  margin: 3px 0 0;
  color: var(--blue);
  font-weight: 950;
}

.competency-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: end;
  padding: 24px 28px;
  border: 1px solid var(--line);
  border-top: 6px solid var(--cobalt-green);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(61, 145, 64, 0.13), transparent 34%),
    linear-gradient(315deg, rgba(255, 244, 79, 0.18), transparent 44%),
    var(--surface);
  box-shadow: var(--shadow);
}

.competency-heading h1 {
  color: var(--ink);
  font-size: clamp(1.8rem, 2vw, 2.6rem);
  font-weight: 950;
}

.competency-heading-actions,
.competency-toolbar,
.competency-year-rail,
.competency-subject-rail {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.competency-heading-actions {
  justify-content: flex-end;
}

.competency-toolbar {
  justify-content: space-between;
  margin: 18px 0;
}

.competency-subject-rail,
.competency-year-rail {
  max-width: 100%;
  overflow-x: auto;
  padding-bottom: 3px;
  scrollbar-width: thin;
}

.competency-subject-rail a,
.competency-year-rail a {
  flex: 0 0 auto;
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--muted);
  font-weight: 900;
}

.competency-subject-rail a.is-selected,
.competency-year-rail a.is-selected {
  border-color: var(--blue);
  background: var(--blue);
  color: white;
}

.referential-program-shell {
  display: grid;
  grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  margin-top: 18px;
}

.referential-index,
.referential-program-view {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.referential-index {
  position: sticky;
  top: 118px;
  overflow: hidden;
}

.referential-index-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
  background: var(--cobalt-green);
  color: white;
  font-weight: 950;
}

.referential-index-head strong {
  border-radius: 999px;
  padding: 4px 9px;
  background: rgba(255, 255, 255, 0.16);
  font-size: 0.78rem;
}

.referential-level-list {
  max-height: min(68vh, 780px);
  overflow-y: auto;
  scrollbar-width: thin;
}

/* Source : pages/teacher-assessments-dashboard.css */
/*
 * Auteur fonctionnel : Baptiste RENNESON BOUTARD
 * Domaine : navigation des états du tableau professeur « Mes contrôles ».
 */

.assessment-state-tabs {
  display: flex;
  gap: 8px;
  margin: 16px 0;
  padding: 4px 0;
  overflow-x: auto;
  scrollbar-width: thin;
}

.assessment-state-tabs a {
  display: inline-flex;
  flex: 0 0 auto;
  gap: 8px;
  align-items: center;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 8px 13px;
  background: var(--surface);
  color: var(--ink);
  font-weight: 850;
  text-decoration: none;
}

.assessment-state-tabs a:hover,
.assessment-state-tabs a:focus-visible,
.assessment-state-tabs a[aria-current="page"] {
  border-color: var(--blue);
  background: var(--blue-soft);
  color: var(--blue);
}

.assessment-state-tabs strong {
  min-width: 1.5rem;
  border-radius: 999px;
  padding: 2px 6px;
  background: var(--surface-soft);
  text-align: center;
}

/* Source : pages/teacher-courses-dashboard.css */
/* Auteur fonctionnel : Baptiste RENNESON BOUTARD — tableau professeur « Mes cours ». */
.course-state-tabs { display: flex; gap: 8px; margin: 16px 0; padding: 4px 0; overflow-x: auto; scrollbar-width: thin; }
.course-state-tabs a { display: inline-flex; flex: 0 0 auto; gap: 8px; align-items: center; min-height: 42px; border: 1px solid var(--line); border-radius: 999px; padding: 8px 13px; background: var(--surface); color: var(--ink); font-weight: 850; text-decoration: none; }
.course-state-tabs a:hover, .course-state-tabs a:focus-visible, .course-state-tabs a[aria-current="page"] { border-color: var(--blue); background: var(--blue-soft); color: var(--blue); }
.course-state-tabs strong { min-width: 1.5rem; border-radius: 999px; padding: 2px 6px; background: var(--surface-soft); text-align: center; }
.course-dashboard-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; }
.course-dashboard-card { border: 1px solid var(--line); border-top: 5px solid var(--cobalt-green); border-radius: var(--radius); padding: 16px; background: var(--surface); box-shadow: var(--shadow); }
.course-dashboard-card header { display: flex; gap: 12px; align-items: flex-start; justify-content: space-between; }
.course-dashboard-card h3 { margin: 4px 0; color: var(--ink); }
.course-dashboard-card header p, .course-dashboard-card header span { margin: 0; color: var(--muted); font-weight: 800; }
.course-dashboard-actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.course-dashboard-card dl { display: grid; gap: 8px; margin: 14px 0; }
.course-dashboard-card dl div { border-radius: 12px; padding: 9px; background: var(--surface-soft); }
.course-dashboard-card dt { color: var(--muted); font-size: .75rem; font-weight: 900; }
.course-dashboard-card dd { margin: 3px 0 0; font-weight: 850; }
@media (max-width: 720px) { .course-dashboard-card header { flex-direction: column; } .course-dashboard-actions { justify-content: flex-start; } }

/* Source : pages/annual-preparation.css */
.annual-preparation { display: grid; gap: 18px; border: 1px solid var(--line); border-radius: 18px; padding: clamp(16px, 2vw, 24px); background: linear-gradient(145deg, #fff, #f6fbf7); }
.annual-preparation-heading { display: flex; align-items: start; justify-content: space-between; gap: 18px; }
.annual-preparation-heading h2, .annual-preparation-heading p, .annual-preparation-level h3, .annual-preparation-level p { margin: 0; }
.annual-preparation-heading p:last-child, .annual-preparation-level p { color: var(--muted); }
.annual-preparation-levels { display: grid; gap: 14px; }
.annual-preparation-level { display: grid; gap: 10px; }
.annual-preparation-level > header { padding-inline: 2px; }
.annual-class-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.annual-class-card { display: grid; gap: 8px; min-width: 0; border: 1px solid var(--line); border-radius: 14px; padding: 14px; background: var(--surface); color: var(--ink); text-decoration: none; }
.annual-class-card:hover, .annual-class-card:focus-visible { border-color: var(--blue); box-shadow: 0 8px 22px rgb(20 70 120 / 10%); transform: translateY(-1px); }
.annual-class-card > summary { display: grid; gap: 8px; cursor: pointer; list-style: none; }
.annual-class-card > summary::-webkit-details-marker { display: none; }
.annual-class-card > summary > span:first-child { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.annual-class-card em { border-radius: 999px; padding: 3px 7px; background: var(--blue-soft); color: var(--blue); font-size: .72rem; font-style: normal; font-weight: 800; }
.annual-class-card progress { width: 100%; accent-color: var(--cobalt-green); }
.annual-class-card small { color: var(--muted); }
.annual-chapter-selector { display: grid; gap: 12px; border-top: 1px solid var(--line); margin-top: 4px; padding-top: 12px; }
.annual-chapter-selector fieldset { display: grid; gap: 7px; border: 0; margin: 0; padding: 0; }
.annual-chapter-selector legend { margin-bottom: 7px; font-weight: 800; }
.annual-chapter-choice { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 9px; border-radius: 10px; padding: 9px; background: var(--surface-soft); }
.annual-chapter-choice label { display: grid; gap: 2px; min-width: 0; cursor: pointer; }
.annual-chapter-choice a { font-weight: 750; }
.annual-preparation-steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.annual-preparation-steps li { display: grid; gap: 5px; border-radius: 12px; padding: 12px; background: var(--surface-soft); }
.annual-preparation-steps span { color: var(--muted); font-size: .86rem; }
.annual-preparation-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
.annual-preparation-actions > span { color: var(--muted); font-size: .86rem; }
.annual-reuse-tool { border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.annual-reuse-tool > summary { cursor: pointer; padding: 13px 15px; color: var(--blue); font-weight: 800; }
.annual-reuse-tool > form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; border-top: 1px solid var(--line); padding: 14px; }
.annual-reuse-tool label { display: grid; gap: 6px; font-weight: 750; }
.annual-reuse-tool select { width: 100%; }
.annual-reuse-tool p { grid-column: 1 / -1; margin: 0; color: var(--muted); }
.annual-reuse-tool button { justify-self: start; }
.planning-advanced-tools { border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.planning-advanced-tools > summary { cursor: pointer; padding: 14px 16px; color: var(--blue); font-weight: 850; }
.planning-advanced-tools[open] > summary { border-bottom: 1px solid var(--line); }
.textbook-editor-disclosure > summary, .grades-class-picker > summary { cursor: pointer; padding: 14px 16px; color: var(--blue); font-weight: 850; }
.textbook-editor-disclosure[open] > summary, .grades-class-picker[open] > summary { border-bottom: 1px solid var(--line); }
.textbook-editor-disclosure > .section-heading { padding-top: 16px; }
.grades-class-picker .class-rail { padding: 12px; }
@media (max-width: 900px) { .annual-preparation-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { .annual-preparation-heading { align-items: stretch; flex-direction: column; } .annual-preparation-steps, .annual-reuse-tool > form { grid-template-columns: 1fr; } }

/* Source : pages/domain-04.css */

.referential-level {
  border-bottom: 1px solid var(--line);
}

.referential-level summary {
  min-height: 46px;
  padding: 13px 16px;
  background: var(--cobalt-green);
  color: white;
  cursor: pointer;
  font-weight: 950;
}

.referential-level[open] summary {
  border-bottom: 1px solid rgba(255, 255, 255, 0.22);
}

.referential-level > div {
  display: grid;
}

.referential-subject-link {
  display: grid;
  gap: 4px;
  padding: 13px 16px;
  border-bottom: 1px solid var(--line);
  background: #f4f5f7;
  color: var(--ink);
}

.referential-subject-link:last-child {
  border-bottom: 0;
}

.referential-subject-link.is-selected {
  border-left: 5px solid var(--blue);
  background: white;
  box-shadow: inset 0 0 0 2px rgba(48, 94, 214, 0.14);
}

.referential-subject-link strong {
  color: var(--ink);
  font-size: 0.95rem;
  font-weight: 950;
}

.referential-subject-link span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 820;
  line-height: 1.25;
}

.referential-program-view {
  display: grid;
  gap: 16px;
  padding: 20px;
  border-top: 6px solid var(--blue);
}

.referential-program-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}

.referential-program-head h2 {
  color: var(--ink);
  font-size: clamp(1.45rem, 1.8vw, 2.2rem);
  font-weight: 950;
}

.referential-program-head p:not(.eyebrow) {
  margin-top: 4px;
  color: var(--muted);
  font-weight: 850;
}

.referential-program-head > span {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 7px 12px;
  background: var(--blue-soft);
  color: var(--blue);
  font-weight: 950;
}

.referential-domain-stack,
.referential-competency-stack {
  display: grid;
  gap: 14px;
}

.referential-domain-card {
  border: 1px solid var(--line);
  border-left: 5px solid var(--cobalt-green);
  border-radius: 14px;
  padding: 16px;
  background: linear-gradient(180deg, rgba(61, 145, 64, 0.07), white 42%);
}

.referential-domain-card h3 {
  color: var(--ink);
  font-size: 1.05rem;
  font-weight: 950;
  line-height: 1.25;
}

.referential-competency-stack {
  margin-top: 12px;
}

.referential-competency-item {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 13px 14px;
  background: var(--surface);
}

.referential-competency-item.is-selected {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(49, 99, 218, 0.12);
}

.referential-competency-title {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  justify-content: space-between;
}

.referential-competency-item h4 {
  min-width: 0;
  color: var(--ink);
  font-size: 0.98rem;
  font-weight: 940;
  line-height: 1.28;
}

.referential-level-badges {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

.referential-level-badges span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  padding: 4px 9px;
  border: 1px solid color-mix(in srgb, var(--blue), white 66%);
  border-radius: 999px;
  background: var(--blue-soft);
  color: var(--blue);
  font-size: 0.75rem;
  font-weight: 950;
  line-height: 1;
  white-space: nowrap;
}

.referential-level-badges span:nth-child(2) {
  border-color: color-mix(in srgb, var(--cobalt-green), white 62%);
  background: var(--green-soft);
  color: var(--cobalt-green);
}

.referential-level-badges span:nth-child(3) {
  border-color: color-mix(in srgb, var(--burnt-sienna), white 58%);
  background: var(--sienna-soft);
  color: #79331f;
}

.referential-level-badges.is-compact {
  justify-content: flex-start;
  margin: 8px 0;
}

.referential-competency-item ul {
  margin: 9px 0 0;
  padding-left: 20px;
  color: var(--muted);
  line-height: 1.36;
  font-weight: 780;
}

.referential-competency-item li + li {
  margin-top: 3px;
}

.referential-linked-work {
  display: grid;
  gap: 12px;
  margin-top: 8px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}

/* Source : pages/domain-05.css */

.competency-metrics {
  margin-bottom: 18px;
}

.competency-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.55fr);
  gap: 16px;
  align-items: start;
  margin-bottom: 22px;
}

.competency-editor {
  border-top: 5px solid var(--blue);
}

.competency-side {
  position: sticky;
  top: 116px;
  border-top: 5px solid var(--burnt-sienna);
}

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

.competency-form label,
.competency-link-editor label {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 850;
}

.competency-form input,
.competency-form select,
.competency-form textarea {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 9px 11px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  font-weight: 760;
}

.competency-form textarea {
  resize: vertical;
  line-height: 1.45;
}

.competency-wide-field,
.competency-link-editor,
.competency-submit {
  grid-column: 1 / -1;
}

.competency-check {
  display: flex !important;
  align-items: center;
  gap: 9px !important;
  min-height: 42px;
}

.competency-check input {
  width: 18px;
  min-height: 18px;
}

.competency-link-editor {
  margin: 0;
  border: 1px solid var(--line);
  border-left: 5px solid var(--lemon-yellow);
  border-radius: var(--radius);
  padding: 14px;
  background: var(--surface-soft);
}

.competency-link-editor legend {
  padding: 0 8px;
  color: var(--ink);
  font-weight: 950;
}

.competency-link-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
}

.competency-link-grid label {
  display: flex;
  align-items: center;
  min-height: 50px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 9px 10px;
  background: white;
}

.competency-link-grid label.is-selected {
  border-color: var(--blue);
  background: var(--blue-soft);
}

.competency-link-grid input {
  width: 18px;
  min-height: 18px;
}

.competency-referential-stack {
  display: grid;
  gap: 12px;
}

.competency-referential-stack article {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 13px;
  background: var(--surface-soft);
}

.competency-referential-stack strong {
  color: var(--ink);
  font-weight: 950;
}

.competency-referential-stack span {
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 850;
}

.competency-referential-stack dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.competency-referential-stack div {
  border-radius: 12px;
  padding: 8px;
  background: white;
}

.competency-referential-stack dt {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 900;
}

.competency-referential-stack dd {
  margin: 2px 0 0;
  color: var(--blue);
  font-size: 1.1rem;
  font-weight: 950;
}

.competency-board,
.competency-map {
  margin-top: 22px;
}

.competency-card-grid,
.competency-map-grid {
  display: grid;
  gap: 14px;
}

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

.competency-map-grid {
  grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
}

.competency-card,
.competency-chapter-card {
  border: 1px solid var(--line);
  border-top: 5px solid var(--blue);
  border-radius: var(--radius);
  padding: 16px;
  background: var(--surface);
  box-shadow: var(--shadow);
}

.competency-card.is-selected {
  border-color: var(--blue);
  background: linear-gradient(180deg, var(--blue-soft), white 52%);
}

/* Source : pages/domain-06.css */

.competency-card header,
.competency-chapter-card header {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  justify-content: space-between;
}

.competency-card header span,
.competency-card header strong,
.competency-card em,
.competency-course-list em {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  border-radius: 999px;
  padding: 4px 9px;
  background: var(--surface-soft);
  color: var(--muted);
  font-size: 0.78rem;
  font-style: normal;
  font-weight: 900;
}

.competency-card h3,
.competency-chapter-card h3 {
  margin: 10px 0 6px;
  color: var(--ink);
  font-size: 1.08rem;
  font-weight: 950;
}

.competency-card p,
.competency-chapter-card p {
  color: var(--muted);
  line-height: 1.42;
}

.competency-domain {
  color: var(--blue) !important;
  font-weight: 900;
}

.competency-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 10px;
}

.competency-chip-row span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 5px 9px;
  background: var(--surface-soft);
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 850;
}

.competency-chapter-card {
  border-top-color: var(--cobalt-green);
}

.competency-chapter-card header > span {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: var(--green-soft);
  color: #1f5522;
  font-weight: 950;
}

.competency-course-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.competency-course-list > div {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 11px;
  background: var(--surface-soft);
}

.competency-course-list strong {
  color: var(--ink);
  font-weight: 950;
}

.textbook-class-rail {
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
}

.textbook-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.75fr);
  gap: 16px;
  align-items: start;
  margin-top: 20px;
}

.textbook-editor,
.textbook-side,
.textbook-sessions {
  border-top: 5px solid var(--blue);
}

.textbook-side {
  border-top-color: var(--lemon-yellow);
}

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

.textbook-form label,
.homework-editor label,
.template-editor label {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 900;
}

.textbook-form input,
.textbook-form select,
.textbook-form textarea,
.replicate-form select {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 9px 12px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  font-weight: 760;
}

.textbook-form textarea {
  resize: vertical;
  line-height: 1.45;
}

.textbook-wide-field,
.homework-editor,
.template-editor,
.textbook-submit {
  grid-column: 1 / -1;
}

.textbook-slot-summary,
.textbook-save-status {
  margin: 0;
  padding: 10px 12px;
  border-radius: 12px;
  background: var(--surface-soft);
  color: var(--muted);
}

.competency-picker {
  display: grid;
  gap: 8px;
  max-height: 220px;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 14px;
}

.competency-picker label {
  display: flex;
  grid-template-columns: none;
  flex-direction: row;
  align-items: start;
}

.textbook-editor-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.lesson-template-card details,
.template-replication-form,
.template-revision-form,

/* Source : pages/domain-07.css */
.replication-live-preview {
  display: grid;
  gap: 10px;
}

.lesson-template-card summary {
  cursor: pointer;
  font-weight: 900;
}

.template-replication-form fieldset,
.template-replication-form details {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 10px;
}

.replication-preview {
  margin-top: 18px;
  border-top: 5px solid var(--cobalt-green);
}

.replication-conflict {
  display: block;
  color: var(--danger);
  font-weight: 900;
}

.entry-template-form {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: end;
}

@media print {
  .textbook-editor,
  .textbook-heading-actions,
  .textbook-class-rail,
  .replicate-form,
  .textbook-entry .button {
    display: none !important;
  }

  .textbook-layout {
    display: block;
  }
}

.homework-editor,
.template-editor {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--cobalt-green);
  border-radius: var(--radius);
  background: var(--surface-soft);
}

.homework-editor h3,
.template-list h3 {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 950;
}

.template-editor {
  border-left-color: var(--burnt-sienna);
}

.textbook-check {
  display: flex !important;
  flex-direction: row;
  gap: 9px;
  align-items: center;
  color: var(--ink) !important;
}

.textbook-check input {
  width: 20px;
  min-height: 20px;
}

.textbook-submit {
  justify-self: start;
  min-width: 220px;
  cursor: pointer;
}

.homework-list,
.template-list,
.textbook-entry-list {
  display: grid;
  gap: 12px;
}

.homework-card,
.template-list article,
.textbook-entry,
.textbook-empty {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
}

.homework-card {
  display: grid;
  gap: 7px;
  padding: 14px;
  border-left: 5px solid var(--burnt-sienna);
}

.homework-card span,
.homework-card em,
.template-list span,
.textbook-entry header span,
.textbook-entry header p,
.muted-text {
  color: var(--muted);
  font-size: 0.86rem;
  font-style: normal;
  font-weight: 760;
  line-height: 1.4;
}

.homework-card strong,
.template-list strong,
.textbook-entry h3,
.textbook-empty h3 {
  color: var(--ink);
  font-weight: 950;
}

.homework-card p,
.template-list p,
.textbook-entry > p,
.skills-box p,
.entry-homework p,
.textbook-empty p {
  margin: 0;
  color: var(--muted);
  line-height: 1.48;
}

.template-list {
  margin-top: 20px;
}

.template-list article {
  display: grid;
  gap: 6px;
  padding: 12px;
  border-left: 5px solid var(--blue);
  background: var(--blue-soft);
}

.textbook-sessions {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid var(--line);
  border-top-color: var(--cobalt-green);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.textbook-entry {
  display: grid;
  gap: 12px;
  padding: 16px;
  border-left: 5px solid var(--blue);
}

.textbook-entry header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
}

.textbook-entry h3 {
  margin: 4px 0;
  font-size: 1.12rem;
}

.replicate-form {
  display: flex;
  gap: 8px;
  align-items: center;
}

.replicate-form select {
  min-width: 140px;
}

.replicate-form button {
  min-height: 42px;
  border: 1px solid var(--blue);
  border-radius: 999px;
  padding: 0 14px;
  background: var(--blue);
  color: white;
  font-weight: 900;
  cursor: pointer;
}

/* Source : pages/domain-08.css */

.skills-box,
.entry-homework {
  display: grid;
  gap: 5px;
  padding: 12px;
  border-radius: 14px;
  background: var(--surface-soft);
}

.skills-box strong,
.entry-homework strong {
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 950;
}

.entry-homework {
  border-left: 4px solid var(--lemon-yellow);
}

.textbook-empty {
  padding: 18px;
  border-left: 5px solid var(--line);
}

.service-heading {
  align-items: flex-end;
}

.service-year-rail {
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
}

.service-metrics {
  margin: 18px 0 24px;
}

.service-board {
  display: grid;
  gap: 14px;
}

.service-table {
  min-width: 1280px;
}

.service-table th,
.service-table td {
  vertical-align: middle;
}

.service-table tbody th {
  min-width: 220px;
}

.service-table tbody th a {
  color: var(--ink);
  font-weight: 950;
}

.service-table tbody th span {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
}

.service-table td:nth-child(4),
.service-table td:nth-child(5),
.service-table td:nth-child(6),
.service-table td:nth-child(7),
.service-table td:nth-child(8),
.service-table td:nth-child(9),
.service-table td:nth-child(10) {
  white-space: nowrap;
}

.service-table .is-empty-service td,
.service-table .is-empty-service th {
  color: var(--muted);
  background: var(--surface-soft);
}

.service-device-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 220px;
}

.service-device-list span {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  border: 1px solid var(--line);
  border-left: 4px solid var(--cobalt-green);
  border-radius: 999px;
  padding: 5px 8px;
  background: var(--green-soft);
  color: #245d27;
  font-size: 0.76rem;
  font-weight: 850;
}

.comment-table textarea {
  width: 100%;
  min-height: 86px;
  resize: vertical;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 10px;
  background: white;
  color: var(--ink);
}

.filter-row,
.action-palette {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 14px;
}

.filter-row span,
.action-palette span,
.toggle-readonly {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface-soft);
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 850;
}

.action-palette span {
  border-left: 4px solid var(--lemon-yellow);
  border-radius: var(--radius);
  background: white;
}

.toggle-readonly.is-on {
  border-color: color-mix(in srgb, var(--cobalt-green), white 45%);
  background: var(--green-soft);
  color: #245d27;
}

.feature-settings-form {
  min-width: 0;
}

.settings-feature-table .feature-not-delivered {
  background: #f3f4f6;
  color: #68707d;
}

.settings-feature-table .feature-not-delivered th {
  text-decoration: line-through;
}

.settings-feature-table .feature-not-delivered .toggle-readonly span {
  color: #b42318;
  font-weight: 950;
}

.feature-toggle {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  min-height: 36px;
  padding: 6px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface-soft);
  color: var(--muted);
  font-weight: 900;
  cursor: pointer;
}

.feature-toggle:has(input:checked) {
  border-color: color-mix(in srgb, var(--cobalt-green), white 45%);
  background: var(--green-soft);
  color: #245d27;
}

.feature-toggle input {
  width: 18px;
  height: 18px;
  accent-color: var(--cobalt-green);
}

.settings-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 320px);
  gap: 18px;
  align-items: end;
}

/* Source : pages/domain-09.css */

html:has(.tenant-settings-toolbar),
body:has(.tenant-settings-toolbar) {
  overflow-x: clip;
}

.tenant-settings-toolbar nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-block: 12px;
}

.tenant-settings-toolbar nav a {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 7px 11px;
  background: var(--surface-soft);
  font-weight: 800;
}

[data-settings-dirty="true"] {
  border-color: #b26a00;
  box-shadow: 0 0 0 3px rgb(178 106 0 / 12%);
}

[data-settings-section][hidden] {
  display: none !important;
}

.year-picker,
.calendar-fields label {
  display: grid;
  gap: 6px;
}

.year-picker {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: white;
}

.year-picker span,
.calendar-fields span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 900;
}

.year-picker select,
.calendar-fields input,
.calendar-fields select {
  min-width: 0;
  min-height: 40px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 8px 10px;
  background: var(--surface-soft);
  color: var(--ink);
  font-weight: 800;
}

.year-picker button {
  min-height: 40px;
  border: 1px solid color-mix(in srgb, var(--blue), white 65%);
  border-radius: 12px;
  padding: 8px 14px;
  background: var(--blue);
  color: white;
  font-weight: 900;
}

.settings-layout {
  display: grid;
  max-width: 100%;
  overflow-x: clip;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.42fr);
  gap: 18px;
  align-items: start;
}

[data-settings-section] .data-scroll {
  contain: inline-size paint;
}

.settings-rules {
  border-top: 5px solid var(--cobalt-green);
}

.settings-rules .compact-list {
  margin: 8px 0 0;
}

.calendar-settings-form {
  border-top: 5px solid var(--burnt-sienna);
}

.calendar-actions,
.calendar-copy-panel {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: end;
}

.calendar-copy-panel {
  margin-top: 1rem;
  border-top: 1px solid var(--line);
  padding-top: 1rem;
}

.calendar-copy-panel label {
  flex: 1 1 16rem;
}

.calendar-term-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
  gap: 14px;
}

.calendar-row-card {
  display: grid;
  gap: 12px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 14px;
  background: linear-gradient(180deg, white, var(--surface-soft));
  box-shadow: 0 14px 28px rgba(49, 94, 214, 0.08);
}

.calendar-row-card header {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: start;
}

.calendar-row-card header div {
  display: grid;
  gap: 2px;
}

.calendar-row-card strong {
  color: var(--ink);
  font-size: 1.04rem;
  font-weight: 950;
}

.calendar-row-card header span {
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 850;
}

.calendar-row-card em {
  flex: 0 0 auto;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 5px 8px;
  background: white;
  color: var(--muted);
  font-size: 0.74rem;
  font-style: normal;
  font-weight: 950;
}

.calendar-row-card em.is-saved {
  border-color: color-mix(in srgb, var(--cobalt-green), white 45%);
  background: var(--green-soft);
  color: #245d27;
}

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

.calendar-fields label:nth-child(4),
.calendar-fields label:nth-child(5) {
  grid-column: span 2;
}

.class-council-settings-form {
  border-top: 5px solid var(--cobalt-green);
}

.council-settings-groups {
  min-width: 0;
  max-width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}

/* Source : pages/domain-10.css */

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

.council-settings-group summary {
  padding: 13px 16px;
  background: var(--surface-soft);
  color: var(--ink);
  cursor: pointer;
  font-weight: 900;
}

.council-settings-group[open] summary {
  border-bottom: 1px solid var(--line);
  background: var(--green-soft);
}

.council-settings-table {
  min-width: 980px;
}

.council-settings-table input,
.council-settings-table select {
  width: 100%;
  min-width: 170px;
}

.council-settings-table th:first-child {
  width: 110px;
}

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

.timeline-list article {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
  padding: 14px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  border-radius: var(--radius);
  background: white;
}

.timeline-list span,
.timeline-list em {
  color: var(--muted);
  font-size: 0.82rem;
  font-style: normal;
  font-weight: 850;
}

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

.mini-chart {
  display: grid;
  grid-template-columns: repeat(6, minmax(36px, 1fr));
  gap: 10px;
  align-items: end;
  min-height: 180px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface-soft);
}

.mini-chart div {
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 6px;
  justify-items: center;
  min-height: 140px;
}

.mini-chart span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 850;
}

.mini-chart i,
.mini-chart b {
  align-self: end;
  width: 13px;
  min-height: 8px;
  border-radius: 999px 999px 0 0;
}

.mini-chart i {
  background: var(--blue);
}

.mini-chart b {
  background: var(--burnt-sienna);
}

.compact-list {
  display: grid;
  gap: 9px;
  margin: 16px 0 0;
  padding-left: 20px;
  color: var(--muted);
  line-height: 1.45;
}

.correspondence-heading {
  align-items: end;
}

.correspondence-year-form,
.correspondence-filters form {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: end;
}

.correspondence-year-form label,
.correspondence-filters label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 900;
}

.correspondence-year-form select,
.correspondence-filters input,
.correspondence-filters select {
  min-height: 42px;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface-soft);
  color: var(--ink);
  font-weight: 800;
}

.correspondence-filters {
  margin: 18px 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.correspondence-workspace {
  grid-template-columns: minmax(0, 1.35fr) minmax(340px, 0.85fr);
}

.correspondence-workspace > *,
[data-correspondence-results] {
  min-width: 0;
}

.correspondence-event.is-confidential {
  border-left-color: var(--burnt-sienna);
  background: #fffaf7;
}

.correspondence-event-meta {
  font-size: 0.82rem;
}

.correspondence-chart {
  display: grid;
  grid-template-columns: repeat(12, 32px);
  gap: 7px;
  align-items: end;
  min-height: 190px;
  width: 100%;
  max-width: 100%;
  padding: 14px;
  overflow-x: auto;
  box-sizing: border-box;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface-soft);
}

.correspondence-chart-month {
  display: grid;
  gap: 6px;
  justify-items: center;
  min-width: 32px;
}

.correspondence-bars {
  display: flex;
  gap: 3px;
  align-items: end;
  height: 145px;
}

/* Source : pages/domain-11.css */

.correspondence-bars i {
  width: 7px;
  height: min(140px, calc(7px + var(--bar-count) * 16px));
  min-height: 7px;
  border-radius: 5px 5px 0 0;
}

.correspondence-chart-month > span {
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 850;
  writing-mode: vertical-rl;
}

.correspondence-bars .is-observation,
.correspondence-legend .is-observation::before {
  background: var(--blue);
}

.correspondence-bars .is-encouragement,
.correspondence-legend .is-encouragement::before {
  background: var(--cobalt-green);
}

.correspondence-bars .is-punishment,
.correspondence-legend .is-punishment::before {
  background: var(--burnt-sienna);
}

.correspondence-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding: 0;
  list-style: none;
}

.correspondence-legend li {
  display: flex;
  gap: 6px;
  align-items: center;
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 850;
}

.correspondence-legend li::before {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  content: "";
}

.correspondence-table-alternative {
  margin-top: 14px;
}

.correspondence-table-alternative summary {
  cursor: pointer;
  font-weight: 900;
}

.correspondence-table-alternative table {
  width: 100%;
  min-width: 520px;
  margin-top: 10px;
  border-collapse: collapse;
}

.correspondence-table-alternative .table-scroll {
  max-width: 100%;
  overflow-x: auto;
}

.correspondence-table-alternative th,
.correspondence-table-alternative td {
  padding: 8px;
  border-bottom: 1px solid var(--line);
  text-align: left;
}

@media (max-width: 900px) {
  .correspondence-workspace {
    grid-template-columns: 1fr;
  }

  .correspondence-heading {
    align-items: stretch;
  }
}

@media (prefers-reduced-motion: reduce) {
  .correspondence-bars i {
    transition: none;
  }
}

.attendance-layout {
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 12px;
  margin-top: 12px;
}

.attendance-page {
  min-width: 0;
  max-width: 100%;
  overflow-x: clip;
}

.page-shell:has(.attendance-page) {
  padding-top: 8px;
}

html:has(.attendance-page) {
  overflow-x: clip;
}

.attendance-heading {
  align-items: center;
  margin-bottom: 0;
  padding: 18px 22px;
}

.attendance-date-form {
  display: grid;
  grid-template-columns: auto minmax(150px, 190px) auto;
  gap: 8px;
  align-items: center;
}

.attendance-date-form label {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 900;
}

.attendance-date-form input,
.attendance-date-form button {
  min-height: 40px;
}

.attendance-class-rail {
  display: flex;
  gap: 0;
  margin-top: 0;
  overflow-x: auto;
  border-right: 1px solid var(--line);
  border-left: 1px solid var(--line);
  background: var(--surface);
}

.attendance-class-rail .class-pill {
  flex: 0 0 112px;
  min-height: 42px;
  padding: 8px 14px;
  border: 0;
  border-right: 1px solid var(--line);
  border-radius: 0;
  box-shadow: none;
  text-align: center;
}

.attendance-class-rail .class-pill.is-selected {
  background: var(--blue);
  color: white;
}

.attendance-slot-panel,
.attendance-sheet-panel {
  border-radius: 8px;
}

.attendance-slots {
  display: grid;
  gap: 8px;
}

.attendance-slot {
  display: grid;
  gap: 4px;
  min-height: 72px;
  padding: 10px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--line);
  border-radius: 6px;
  background: var(--surface-soft);
  color: var(--ink);
  text-decoration: none;
}

/* Source : pages/domain-12.css */
.attendance-slot:hover,
.attendance-slot:focus-visible {
  border-left-color: var(--blue);
  background: color-mix(in srgb, var(--blue), white 94%);
}

.attendance-slot.is-active {
  border-left-color: var(--blue);
  background: var(--yellow-soft);
}

.attendance-slot span,
.attendance-slot em {
  color: var(--muted);
  font-size: 0.8rem;
  font-style: normal;
  font-weight: 800;
}

.attendance-sheet-panel {
  min-width: 0;
  padding: 0;
  overflow: hidden;
}

.attendance-sheet-panel > form {
  min-width: 0;
}

.attendance-sheet-heading {
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
}

.attendance-counters {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

.attendance-counters span {
  padding: 6px 9px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--surface-soft);
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.attendance-counters strong {
  color: var(--ink);
}

.attendance-table-scroll {
  max-width: 100%;
  overflow: auto;
}

.attendance-save-status {
  display: block;
  margin: 10px 16px 0;
  padding: 9px 11px;
  border-radius: 6px;
  background: var(--surface-soft);
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 800;
}

.attendance-save-status.is-error {
  background: color-mix(in srgb, var(--burnt-sienna), white 90%);
  color: #861e14;
}

.attendance-table {
  min-width: 1180px;
}

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

.attendance-table thead th {
  text-align: center;
  white-space: nowrap;
}

.attendance-table thead th:first-child,
.attendance-table tbody th {
  position: sticky;
  left: 0;
  z-index: 2;
  min-width: 210px;
  background: var(--surface);
  text-align: left;
}

.attendance-table thead th:first-child {
  z-index: 3;
  background: var(--surface-soft);
}

.attendance-table tbody th a {
  color: var(--ink);
  text-decoration: none;
}

.attendance-table tbody tr:hover th,
.attendance-table tbody tr:hover td {
  background: color-mix(in srgb, var(--blue), white 96%);
}

.attendance-present-column,
.attendance-present-cell,
.attendance-event-cell {
  width: 54px;
  text-align: center !important;
}

.attendance-presence-indicator {
  display: inline-block;
  width: 13px;
  height: 13px;
  border: 2px solid var(--line);
  border-radius: 50%;
  background: var(--surface-soft);
}

.attendance-presence-indicator.is-present {
  border-color: var(--cobalt-green);
  background: var(--cobalt-green);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--cobalt-green), white 82%);
}

.attendance-event-cell label {
  display: grid;
  width: 34px;
  height: 34px;
  margin: auto;
  place-items: center;
  cursor: pointer;
}

.attendance-event-cell input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.attendance-event-cell label span {
  width: 20px;
  height: 20px;
  border: 2px solid var(--line);
  border-radius: 5px;
  background: white;
}

.attendance-event-cell input:checked + span {
  border-color: var(--burnt-sienna);
  background:
    linear-gradient(135deg, transparent 42%, white 42% 55%, transparent 55%),
    var(--burnt-sienna);
}

.attendance-event-cell input:focus-visible + span {
  outline: 3px solid color-mix(in srgb, var(--blue), transparent 65%);
  outline-offset: 2px;
}

.attendance-comment-cell {
  min-width: 210px;
}

.attendance-comment-cell input {
  width: 100%;
  min-height: 36px;
}

.attendance-exclusion-details {
  margin: 6px 0;
  min-width: 210px;
}

.attendance-exclusion-details label,
.attendance-incidents form {
  display: grid;
  gap: 6px;
}

.attendance-incidents {
  margin-top: 12px;
}

.attendance-incidents ul {
  display: grid;
  gap: 10px;
  padding: 0;
  list-style: none;
}

/* Source : pages/domain-13.css */

.attendance-incidents li {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.attendance-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  padding: 12px 16px;
  border-top: 1px solid var(--line);
}

.attendance-empty-state {
  min-height: 280px;
}

.compact-empty {
  min-height: 110px;
  padding: 14px;
}

@media (max-width: 900px) {
  .attendance-layout {
    grid-template-columns: 1fr;
  }

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

  .attendance-slots {
    grid-auto-columns: minmax(180px, 1fr);
    grid-auto-flow: column;
    overflow-x: auto;
  }
}

@media (max-width: 560px) {
  .evaluation-cms-grid {
    grid-template-columns: 1fr;
  }

  .evaluation-block-library,
  .evaluation-preview {
    position: static;
  }

  .evaluation-library-buttons {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .evaluation-mini-list {
    grid-template-columns: 1fr;
  }

  .evaluation-mini-list > [data-block-card] {
    grid-column: 1;
  }

  .attendance-heading,
  .attendance-date-form {
    grid-template-columns: 1fr;
  }

  .attendance-date-form button,
  .attendance-actions button {
    width: 100%;
  }

  .attendance-actions {
    flex-direction: column-reverse;
  }

  .attendance-event-cell label,
  .attendance-actions button {
    min-width: 44px;
    min-height: 44px;
  }
}

.legal-card {
  padding: 18px;
  border-top: 5px solid var(--blue);
}

.legal-card:nth-child(2) {
  border-top-color: var(--cobalt-green);
}

.legal-card:nth-child(3) {
  border-top-color: var(--lemon-yellow);
}

.legal-card:nth-child(4) {
  border-top-color: var(--burnt-sienna);
}

.legal-card p {
  margin: 10px 0 0;
  color: var(--muted);
  line-height: 1.55;
}

.trombi-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: end;
  margin-top: 0;
  padding: 20px 30px;
  border-top: 7px solid var(--blue);
  background:
    linear-gradient(135deg, rgba(49, 94, 214, 0.1), transparent 36%),
    linear-gradient(315deg, rgba(61, 145, 64, 0.1), transparent 42%),
    var(--surface);
}

.trombi-filters {
  display: grid;
  grid-template-columns: minmax(12rem, 2fr) minmax(10rem, 1fr) auto;
  gap: 0.75rem;
  align-items: end;
  margin: 1rem 0;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--surface);
}

.trombi-filters label {
  display: grid;
  gap: 0.35rem;
  font-weight: 700;
}

.trombi-filters input {
  min-height: 2.75rem;
  width: 100%;
}

.trombi-page[aria-busy="true"] {
  opacity: 0.72;
}

.trombi-page .pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  justify-content: center;
  margin-top: 1rem;
}

@media (max-width: 700px) {
  .trombi-filters {
    grid-template-columns: 1fr;
  }
}

.trombi-heading h1 {
  color: var(--ink);
  font-size: 2.2rem;
  font-weight: 950;
}

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

.class-rail {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
  gap: 10px;
  margin-top: 18px;
}

.trombi-class-rail {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  margin-top: 0;
  padding: 0;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
}

.trombi-class-rail .class-pill {
  display: grid;
  align-content: center;
  flex: 0 0 154px;
  min-height: 54px;
  margin: 0;
  padding: 9px 20px;
  border: 0;
  border-radius: 0;
  background:
    linear-gradient(90deg, rgba(61, 145, 64, 0.08), transparent 58%),
    var(--surface);
  box-shadow: inset 0 0 0 1px var(--line);
  clip-path: polygon(14px 0, 100% 0, calc(100% - 14px) 100%, 0 100%);
  scroll-snap-align: start;
}

/* Source : pages/domain-14.css */

.trombi-class-rail .class-pill + .class-pill {
  margin-left: -12px;
}

.trombi-class-rail .class-pill:hover,
.trombi-class-rail .class-pill:focus-visible {
  background:
    linear-gradient(90deg, rgba(49, 94, 214, 0.12), transparent 60%),
    var(--surface);
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--blue), white 35%);
}

.trombi-class-rail .class-pill:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--blue), white 35%);
  outline-offset: 2px;
}

.trombi-class-rail .class-pill.is-selected {
  background:
    linear-gradient(90deg, rgba(49, 94, 214, 0.2), rgba(255, 240, 67, 0.2)),
    color-mix(in srgb, var(--blue), white 92%);
  box-shadow: inset 0 0 0 2px var(--blue);
}

.trombi-class-rail .class-pill strong {
  font-size: 1rem;
  line-height: 1;
}

.trombi-class-rail .class-pill span,
.trombi-class-rail .class-pill em {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.trombi-class-rail .class-pill em {
  display: none;
}

.class-pill {
  display: grid;
  gap: 4px;
  min-height: 72px;
  padding: 12px;
  border-top: 4px solid var(--line);
}

.class-pill.is-selected {
  border-color: color-mix(in srgb, var(--blue), white 60%);
  border-top-color: var(--blue);
  background: color-mix(in srgb, var(--blue), white 92%);
}

.class-pill strong {
  color: var(--ink);
  font-size: 1.04rem;
  font-weight: 950;
}

.class-pill span {
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 780;
}

.class-pill em {
  color: var(--blue);
  font-size: 0.78rem;
  font-style: normal;
  font-weight: 850;
}

.trombi-summary {
  display: block;
  margin-top: 28px;
}

.trombi-summary-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--line);
  border-top: 4px solid var(--lemon-yellow);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.trombi-summary-strip span,
.teacher-card span,
.student-card small,
.schedule-slot span,
.schedule-slot em {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 800;
}

.trombi-summary-strip span {
  display: grid;
  gap: 3px;
  padding: 14px 16px;
  border-left: 1px solid var(--line);
}

.trombi-summary-strip span:first-child {
  border-left: 0;
}

.trombi-summary-strip strong {
  display: block;
  margin: 0;
  color: var(--blue);
  font-size: 1.18rem;
  font-weight: 950;
}

@media (max-width: 920px) {
  .trombi-summary-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .trombi-summary-strip span:nth-child(odd) {
    border-left: 0;
  }
}

@media (max-width: 620px) {
  .trombi-summary-strip {
    grid-template-columns: 1fr;
  }

  .trombi-summary-strip span {
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  .trombi-summary-strip span:first-child {
    border-top: 0;
  }
}

.teacher-strip {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.teacher-card {
  display: flex;
  gap: 12px;
  align-items: center;
  min-height: 96px;
  padding: 14px;
  border-left: 5px solid var(--cobalt-green);
}

.teacher-card img,
.avatar-fallback,
.avatar-frame {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: var(--surface-soft);
}

.teacher-card img,
.avatar-frame img {
  object-fit: cover;
}

.teacher-card-body {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.teacher-card-body strong,
.schedule-slot strong {
  margin: 0;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 950;
}

.teacher-card-body em {
  margin: 4px 0;
  color: var(--muted);
  font-style: normal;
  line-height: 1.35;
}

.student-trombi-grid {
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
}

.student-card {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  min-width: 0;
  min-height: 102px;
  padding: 13px;
  border-top: 4px solid var(--burnt-sienna);
}

/* Source : pages/domain-15.css */

.avatar-frame {
  position: relative;
  overflow: hidden;
  border: 2px solid var(--line);
}

.avatar-frame img {
  width: 100%;
  height: 100%;
}

.avatar-frame strong {
  position: absolute;
  right: 0;
  bottom: 0;
  min-width: 24px;
  padding: 2px 4px;
  border-radius: 999px 0 0 0;
  background: var(--ink);
  color: white;
  font-size: 0.68rem;
  text-align: center;
}

.student-card-body {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.student-card-body strong {
  color: var(--ink);
  font-weight: 950;
  overflow-wrap: anywhere;
  line-height: 1.05;
}

.student-card-body em {
  color: var(--muted);
  font-size: 0.82rem;
  font-style: normal;
  overflow-wrap: anywhere;
}

.student-card-body small {
  overflow-wrap: anywhere;
}

.student-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 4px;
}

.student-card-actions a {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  padding: 4px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface-soft);
  color: var(--blue);
  font-size: 0.78rem;
  font-weight: 900;
}

.class-admin-panel {
  padding: 18px;
  border: 1px solid var(--line);
  border-top: 6px solid var(--burnt-sienna);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.class-priority-panel {
  margin-top: 14px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface-soft);
}

.class-priority-panel summary {
  cursor: pointer;
  color: var(--blue);
  font-weight: 900;
}

.subject-priority-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 10px;
  margin: 12px 0;
}

.subject-priority-grid label {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 78px;
  gap: 8px;
  align-items: center;
}

@media print {
  .tenant-settings-toolbar,
  [data-settings-section] button,
  [data-settings-section] textarea,
  [data-settings-section] input:not([readonly]),
  [data-settings-section] select {
    display: none !important;
  }
  .trombi-heading-actions,
  .trombi-filters,
  .trombi-class-rail,
  .class-admin-panel,
  .class-filer-panel,
  .pagination {
    display: none !important;
  }

  .trombi-page,
  .section-block,
  .student-card,
  .teacher-card {
    box-shadow: none !important;
  }
}

.class-reset-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 1.15fr) auto;
  gap: 16px;
  align-items: center;
  margin-top: 14px;
  padding: 16px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--lemon-yellow);
  border-radius: var(--radius);
  background: var(--surface-soft);
}

.reset-student-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, auto);
  gap: 10px;
  padding: 8px;
  border-bottom: 1px solid var(--line);
}

@media (max-width: 760px) {
  .calendar-actions,
  .calendar-copy-panel {
    align-items: stretch;
    flex-direction: column;
  }

  .calendar-actions .button,
  .calendar-copy-panel .button {
    width: 100%;
  }

  [data-settings-section],
  [data-settings-section] details,
  [data-settings-section-form],
  .council-settings-group {
    min-width: 0;
    max-width: 100%;
  }

  [data-settings-section] {
    overflow-x: clip;
  }

  .class-reset-form,
  .reset-student-row {
    grid-template-columns: 1fr;
  }
}

.class-reset-form p {
  margin: 6px 0 0;
  color: var(--muted);
  line-height: 1.45;
}

.class-reset-form fieldset {
  display: grid;
  gap: 8px;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.class-reset-form legend {
  margin-bottom: 4px;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 900;
}

/* Source : pages/domain-16.css */

.class-reset-form label {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 760;
  line-height: 1.35;
}

.class-filer-panel {
  margin-top: 14px;
  box-shadow: none;
}

.schedule-toggle {
  display: inline-flex;
  gap: 8px;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  scrollbar-width: thin;
}

.schedule-toggle a {
  min-width: 86px;
  padding: 7px 12px;
  border-radius: 999px;
  color: var(--muted);
  font-weight: 850;
  text-align: center;
}

.schedule-toggle a.is-selected {
  background: var(--blue);
  color: white;
}

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

.schedule-slot {
  display: grid;
  gap: 7px;
  min-height: 128px;
  padding: 15px;
  border-left: 5px solid var(--blue);
}

.schedule-slot p {
  margin: 0;
  color: var(--muted);
  line-height: 1.42;
}

.timetable-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: end;
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--cobalt-green);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(61, 145, 64, 0.12), transparent 34%),
    linear-gradient(315deg, rgba(255, 242, 52, 0.16), transparent 38%),
    var(--surface);
  box-shadow: var(--shadow);
}

.timetable-heading-main {
  display: flex;
  min-width: 0;
  gap: 12px;
  align-items: center;
}

.timetable-heading-main > div {
  min-width: 0;
}

.timetable-owner-avatar {
  width: 58px;
  height: 58px;
  flex: 0 0 auto;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--surface-soft);
  object-fit: cover;
}

.timetable-heading h1 {
  color: var(--ink);
  font-size: 1.38rem;
  font-weight: 950;
}

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

.timetable-class-rail {
  display: flex;
  gap: 6px;
  margin-top: 8px;
  margin-bottom: 2px;
  overflow-x: auto;
  padding-bottom: 3px;
}

.timetable-class-rail .class-pill {
  flex: 0 0 auto;
  min-width: 78px;
  min-height: auto;
  padding: 7px 10px;
  border-top-width: 0;
  border-left: 3px solid var(--line);
}

.timetable-class-rail .class-pill.is-selected {
  border-left-color: var(--blue);
}

.timetable-class-rail .class-pill strong {
  font-size: 0.86rem;
}

.timetable-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  margin-top: 8px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  border-radius: var(--radius);
  background: var(--surface);
}

.timetable-toolbar h2 {
  color: var(--ink);
  font-size: 1rem;
  font-weight: 950;
}

.timetable-toolbar p {
  margin: 2px 0 0;
  color: var(--muted);
  line-height: 1.25;
}

.timetable-date-navigation,
.timetable-date-navigation form {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.timetable-date-navigation {
  max-width: 760px;
  justify-content: flex-end;
}

.timetable-date-navigation form {
  padding-left: 8px;
  border-left: 1px solid var(--line);
}

.timetable-date-navigation label,
.data-status-note strong {
  color: var(--ink);
  font-weight: 850;
}

@media (max-width: 720px) {
  .timetable-date-navigation,
  .timetable-date-navigation form {
    width: 100%;
    align-items: stretch;
  }

  .timetable-date-navigation .button,
  .timetable-date-navigation button {
    flex: 1 1 100%;
  }

  .timetable-date-navigation form {
    padding: 8px 0 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }
}

/* Source : pages/domain-17.css */

.week-rail {
  display: grid;
  grid-template-columns: repeat(var(--week-count, 1), minmax(31px, 1fr));
  gap: 0;
  margin-top: 6px;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
}

.week-rail a {
  display: grid;
  min-width: 31px;
  min-height: 30px;
  place-items: center;
  border-right: 1px solid var(--line);
  color: var(--ink);
  font-size: 0.72rem;
  font-weight: 850;
  text-decoration: none;
}

.week-rail a:last-child {
  border-right: 0;
}

.week-rail a.is-break {
  background: repeating-linear-gradient(
    -45deg,
    var(--surface-soft),
    var(--surface-soft) 4px,
    white 4px,
    white 8px
  );
}

.week-rail a.is-active {
  background: var(--cobalt-green);
  color: white;
}

.week-rail b,
.week-rail em {
  line-height: 1;
}

.week-rail em {
  color: inherit;
  font-size: 0.56rem;
  font-style: normal;
}

.timetable-matrix {
  display: grid;
  grid-template-columns: 66px repeat(5, minmax(176px, 1fr));
  gap: 0;
  margin-top: 0;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.matrix-head,
.time-cell,
.lesson-cell {
  min-width: 0;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.matrix-head:nth-child(6n),
.lesson-cell:nth-child(6n),
.time-cell:nth-child(6n) {
  border-right: 0;
}

.matrix-head {
  display: grid;
  place-items: center;
  min-height: 42px;
  padding: 6px;
  background: var(--surface-soft);
  color: var(--ink);
  text-align: center;
}

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

.time-cell {
  display: grid;
  align-content: start;
  gap: 3px;
  min-height: 70px;
  padding: 6px;
  background: #eef1f5;
  color: var(--ink);
  font-weight: 900;
}

.time-cell span {
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 800;
}

.time-cell.is-quiet {
  min-height: 36px;
}

.time-cell.is-dense {
  min-height: 64px;
}

.lesson-cell {
  display: grid;
  align-content: start;
  gap: 4px;
  min-height: 70px;
  padding: 3px;
  background: #f5f7fb;
}

.lesson-cell.is-empty {
  background: #f0f2f5;
}

.lesson-cell.is-quiet {
  min-height: 36px;
}

.lesson-cell.is-dense {
  min-height: 64px;
}

.lesson-cell.has-parallel {
  grid-template-columns: 18px minmax(0, 1fr);
  align-content: stretch;
  gap: 3px;
}

.parallel-index-rail {
  display: grid;
  grid-auto-rows: minmax(0, 1fr);
  gap: 2px;
}

.parallel-index-rail span {
  display: grid;
  min-height: 0;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: #ffffff;
  color: var(--ink);
  font-size: 0.72rem;
  font-weight: 950;
}

.parallel-card-grid {
  display: grid;
  gap: 3px;
  grid-template-columns: repeat(auto-fit, minmax(74px, 1fr));
  min-width: 0;
}

.parallel-card-grid.parallel-count-2 {
  grid-template-columns: repeat(auto-fit, minmax(74px, 1fr));
}

.parallel-card-grid.parallel-count-3 {
  grid-template-columns: repeat(auto-fit, minmax(74px, 1fr));
}

.parallel-card-grid.parallel-count-4 {
  grid-template-columns: repeat(auto-fit, minmax(74px, 1fr));
}

.lesson-card {
  display: grid;
  gap: 2px;
  min-height: 58px;
  padding: 6px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--blue);
  border-radius: 6px;
  background: #ffffff;
  color: var(--ink);
}

.lesson-card strong {
  font-size: 0.76rem;
  font-weight: 950;
  line-height: 1.12;
}

/* Source : pages/domain-18.css */

.lesson-card small {
  color: var(--ink);
  font-size: 0.64rem;
  font-weight: 850;
  line-height: 1.1;
}

.lesson-card span,
.lesson-card em {
  color: var(--muted);
  font-size: 0.64rem;
  font-style: normal;
  font-weight: 850;
}

.lesson-card details {
  margin-top: 0.35rem;
  font-size: 0.76rem;
}

.lesson-card summary {
  cursor: pointer;
  font-weight: 800;
}

.lesson-card details p {
  margin: 0.25rem 0 0;
}

.lesson-card p {
  margin: 0;
  color: var(--ink);
  font-size: 0.66rem;
  font-weight: 850;
}

.lesson-card.is-parallel {
  min-height: 0;
  padding: 5px;
}

.lesson-card.is-parallel strong {
  font-size: 0.66rem;
}

.lesson-card.is-parallel small,
.lesson-card.is-parallel span,
.lesson-card.is-parallel em,
.lesson-card.is-parallel p {
  font-size: 0.58rem;
}

.lesson-card.tone-green {
  border-left-color: var(--cobalt-green);
  background: color-mix(in srgb, var(--cobalt-green), white 91%);
}

.lesson-card.tone-yellow {
  border-left-color: var(--lemon-yellow);
  background: color-mix(in srgb, var(--lemon-yellow), white 86%);
}

.lesson-card.tone-sienna {
  border-left-color: var(--burnt-sienna);
  background: color-mix(in srgb, var(--burnt-sienna), white 90%);
}

.lesson-card.tone-blue {
  border-left-color: var(--blue);
  background: color-mix(in srgb, var(--blue), white 92%);
}

.month-board {
  display: grid;
  grid-template-columns: repeat(5, minmax(180px, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.month-board article {
  display: grid;
  align-content: start;
  gap: 10px;
  min-height: 260px;
  padding: 14px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--cobalt-green);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.month-board header {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  color: var(--muted);
  font-weight: 900;
}

.month-board p {
  display: grid;
  gap: 3px;
  margin: 0 0 9px;
  padding-bottom: 9px;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font-size: 0.84rem;
  line-height: 1.3;
}

.month-board p:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

.month-board b,
.month-board span {
  color: var(--muted);
  font-size: 0.76rem;
}

.timetable-month-calendar {
  grid-template-columns: repeat(7, minmax(128px, 1fr));
  gap: 6px;
  overflow-x: auto;
}

.timetable-month-calendar > h2 {
  grid-column: 1 / -1;
}

.timetable-month-calendar .timetable-month-day {
  min-height: 150px;
  padding: 9px;
  border-top-width: 3px;
  box-shadow: none;
}

.timetable-month-day.is-outside {
  opacity: 0.58;
  background: var(--surface-soft);
}

.timetable-month-day.is-today {
  outline: 3px solid var(--blue);
  outline-offset: -3px;
}

.timetable-list-view {
  display: grid;
  gap: 12px;
  margin-top: 16px;
}

@media print {
  .timetable-heading-actions,
  .timetable-class-rail,
  .week-rail,
  .timetable-print-action,
  .documentation-help {
    display: none !important;
  }

  .timetable-page,
  .timetable-matrix,
  .timetable-month-calendar {
    min-width: 0;
    box-shadow: none;
  }

  .timetable-matrix {
    grid-template-columns: 54px repeat(5, minmax(0, 1fr));
  }
}

.login-required-panel {
  display: grid;
  gap: 8px;
  padding: 18px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--muted);
  box-shadow: var(--shadow);
}

.login-required-panel p {
  margin: 0;
  line-height: 1.55;
}

.eyebrow {
  margin: 0 0 8px;
  color: var(--burnt-sienna);
  font-size: 0.78rem;
  font-weight: 850;
  text-transform: uppercase;
}

/* Source : pages/domain-19.css */

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

h1 {
  margin: 0;
  color: var(--blue);
  font-size: 2.15rem;
  line-height: 1.08;
}

h2 {
  margin: 0;
  font-size: 1.2rem;
}

h3 {
  margin: 0;
  font-size: 1rem;
}

.lede {
  max-width: 760px;
  margin: 10px 0 0;
  color: var(--muted);
  line-height: 1.55;
}

.status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 6px 10px;
  border: 1px solid color-mix(in srgb, var(--burnt-sienna), white 55%);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--burnt-sienna), white 88%);
  color: #79331f;
  font-size: 0.84rem;
  font-weight: 800;
  white-space: nowrap;
}

.role-switcher {
  display: grid;
  gap: 8px;
  min-width: 240px;
}

.role-switcher.compact {
  grid-template-columns: auto minmax(150px, 190px) auto;
  align-items: center;
  min-width: 0;
}

.role-switcher label,
.auth-form label,
.auth-form legend {
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 750;
}

.role-switcher select,
.role-switcher button,
.auth-form input,
.auth-form select {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--ink);
}

.role-switcher select,
.auth-form input,
.auth-form select {
  padding: 8px 10px;
}

.role-switcher button {
  background: var(--lemon-yellow);
  color: var(--ink);
  font-weight: 850;
  cursor: pointer;
}

.dashboard-grid,
.entry-grid,
.metric-grid {
  display: grid;
  gap: 14px;
}

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

.dashboard-card,
.entry-card,
.metric-card,
.profile-panel,
.auth-form {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.dashboard-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px 12px;
  align-items: center;
  padding: 14px;
}

.dashboard-card > * {
  min-width: 0;
}

.dashboard-title,
.navigation-card-title {
  font-weight: 800;
}

.dashboard-status,
.dashboard-card .navigation-card-status {
  grid-column: 2;
  color: var(--muted);
  font-size: 0.86rem;
}

.dashboard-card.is-unavailable,
.complete-menu-card.is-unavailable {
  cursor: not-allowed;
  border-color: #c8cbd1;
  background: #f5f5f6;
  color: var(--muted);
}

.complete-menu-card.is-unavailable:hover {
  transform: none;
  border-color: var(--line);
  box-shadow: 0 8px 18px rgba(49, 94, 214, 0.06);
}

.dashboard-card.is-partial,
.complete-menu-card.is-partial {
  border-left-color: #9a6500;
}

.navigation-card-explanation {
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.dashboard-card .navigation-card-explanation {
  grid-column: 1 / -1;
}

.section-block {
  margin-top: 24px;
}

.section-heading {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  margin-bottom: 12px;
  min-width: 0;
}

.section-heading > * {
  min-width: 0;
}

.complete-menu-page {
  display: grid;
  gap: 16px;
}

.complete-menu-panel {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 12px 28px rgba(49, 94, 214, 0.08);
}

.complete-menu-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}

.complete-menu-grid--dense {
  grid-template-columns: repeat(auto-fit, minmax(178px, 1fr));
}

.complete-menu-card {
  display: grid;
  gap: 8px;
  min-height: 118px;
  padding: 16px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: 0 8px 18px rgba(49, 94, 214, 0.06);
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

/* Source : pages/domain-20.css */

.complete-menu-card:hover {
  transform: translateY(-2px);
  border-color: rgba(49, 94, 214, 0.38);
  box-shadow: 0 16px 34px rgba(49, 94, 214, 0.12);
}

.logas-page {
  display: grid;
  gap: 16px;
}

.logas-hero {
  margin-bottom: 0;
}

.logas-active-card {
  display: grid;
  gap: 6px;
  min-width: min(320px, 100%);
  padding: 16px;
  border: 1px solid color-mix(in srgb, var(--burnt-sienna), white 50%);
  border-left: 5px solid var(--burnt-sienna);
  border-radius: var(--radius);
  background: var(--sienna-soft);
}

.logas-active-card span,
.logas-active-card small {
  color: var(--muted);
  font-weight: 850;
}

.logas-active-card strong {
  color: #79331f;
  font-size: 1.15rem;
}

.logas-active-card button,
.logas-search button,
.logas-card button {
  min-height: 42px;
  padding: 8px 14px;
  border: 1px solid var(--blue);
  border-radius: 999px;
  background: var(--blue);
  color: white;
  font-weight: 950;
  cursor: pointer;
}

.logas-active-card button {
  border-color: var(--burnt-sienna);
  background: var(--burnt-sienna);
}

.logas-search {
  display: grid;
  gap: 8px;
  padding: 16px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--cobalt-green);
  border-radius: var(--radius);
  background: var(--surface);
}

.logas-search label {
  color: var(--muted);
  font-weight: 950;
}

.logas-search div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
}

.logas-search input {
  min-width: 0;
  min-height: 42px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface-soft);
  color: var(--ink);
  font-weight: 800;
}

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

.logas-result-count {
  margin: 0;
  color: var(--muted);
  font-weight: 850;
}

.logas-pagination {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
  color: var(--muted);
  font-weight: 900;
}

.logas-pagination a {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--surface);
  color: var(--blue);
  font-size: 1.25rem;
}

.logas-card {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 116px;
  padding: 14px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: 0 8px 18px rgba(49, 94, 214, 0.06);
}

.logas-card img {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  object-fit: cover;
  background: var(--surface-soft);
}

.logas-card-main {
  min-width: 0;
}

.logas-card h2 {
  margin: 0 0 4px;
  color: var(--ink);
  font-size: 1rem;
}

.logas-card p,
.logas-card code {
  display: block;
  overflow: hidden;
  margin: 0;
  color: var(--muted);
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 800;
}

.logas-card code {
  margin-top: 6px;
  font-family: inherit;
}

.complete-menu-icon {
  position: relative;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  color: var(--blue);
  background: var(--blue-soft);
  font-size: 0.78rem;
  font-weight: 950;
}

.complete-menu-card .navigation-card-title {
  font-size: 1.02rem;
  font-weight: 950;
}

.complete-menu-card .navigation-card-status {
  color: var(--muted);
  font-weight: 800;
}

.adult-subject-section {
  margin-top: 18px;
}

.subject-create-panel {
  width: min(100%, 620px);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
}

/* Source : pages/domain-21.css */

.subject-create-panel summary {
  display: flex;
  gap: 8px;
  align-items: center;
  padding: 11px 14px;
  color: var(--blue);
  font-weight: 950;
  cursor: pointer;
  list-style: none;
}

.subject-create-panel summary::-webkit-details-marker {
  display: none;
}

.subject-create-panel summary span {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  color: white;
  background: var(--blue);
}

.subject-create-form {
  display: grid;
  gap: 12px;
  padding: 0 14px 14px;
  border-top: 1px solid var(--line);
}

.subject-create-form > label,
.subject-create-form fieldset {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 12px 0 0;
  border: 0;
}

.subject-create-form > label > span,
.subject-create-form legend {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 900;
}

.subject-create-form input[type="text"] {
  width: 100%;
  min-height: 42px;
  padding: 8px 11px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--surface-soft);
  color: var(--ink);
  font: inherit;
}

.subject-class-picker {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  gap: 7px;
}

.subject-class-picker label {
  display: flex;
  gap: 7px;
  align-items: center;
  min-height: 38px;
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--surface-soft);
  color: var(--ink);
  font-size: 0.85rem;
  font-weight: 850;
}

.subject-class-picker input {
  width: 18px;
  height: 18px;
  accent-color: var(--cobalt-green);
}

.adult-subject-list {
  display: grid;
  gap: 18px;
}

.adult-subject-card {
  display: grid;
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--cobalt-green);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.adult-subject-card-head {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: flex-start;
  justify-content: space-between;
}

.adult-subject-card-head h3 {
  margin: 0;
  color: var(--ink);
  font-size: 1.35rem;
  font-weight: 950;
}

.adult-subject-card-head p {
  margin: 4px 0 0;
  color: var(--muted);
  font-weight: 820;
}

.adult-subject-actions,
.subject-chapter-actions,
.chapter-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.subject-chapter-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 14px;
}

.subject-chapter-card {
  display: grid;
  overflow: hidden;
  gap: 11px;
  min-height: 280px;
  padding: 15px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--burnt-sienna);
  border-radius: var(--radius);
  background: var(--surface-soft);
}

.subject-chapter-card.is-configured {
  border-left-color: var(--cobalt-green);
  background: var(--surface);
}

.subject-chapter-top {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
}

.subject-chapter-card h4 {
  margin: 0;
  color: var(--ink);
  font-size: 1.05rem;
  font-weight: 950;
  line-height: 1.16;
}

.subject-chapter-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.42;
}

.subject-chapter-theme {
  font-weight: 850;
}

.subject-level-row,
.subject-chip-row,
.subject-competencies {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.subject-level-row span,
.subject-chip-row span,
.subject-competencies a {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 900;
}
.technology-measurements {
  max-width: 100%;
  overflow-x: auto;
  scrollbar-width: thin;
}

.technology-measurements table {
  min-width: 400px;
}

.technology-code {
  box-sizing: border-box;
  max-width: 100%;
  overflow-x: auto;
  white-space: pre;
}

.technology-energy-example + .technology-energy-example {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}

.technology-energy-chain {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 16px 0;
}

.technology-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr));
  gap: var(--space-3);
}

.technology-card-grid article,
.technology-timeline li {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: var(--space-3);
  background: var(--surface);
}

.technology-timeline {
  display: grid;
  gap: var(--space-3);
  padding-inline-start: 1.5rem;
}

.technology-energy-block {
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
}

.technology-protection-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.technology-protection-grid article {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
}

@media (max-width: 760px) {
  .technology-energy-chain {
    grid-template-columns: 1fr;
  }

  .technology-protection-grid {
    grid-template-columns: 1fr;
  }
}

/* Source : pages/domain-22.css */

.subject-level-row span {
  border-color: color-mix(in srgb, var(--blue), white 70%);
  background: var(--blue-soft);
  color: var(--blue);
}

.subject-competencies a {
  border-color: color-mix(in srgb, var(--cobalt-green), white 70%);
  background: var(--green-soft);
  color: var(--cobalt-green);
}

.subject-chip-row.is-muted span {
  background: var(--surface-soft);
}

.subject-mini-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.subject-mini-stats div {
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
}

.subject-mini-stats dt {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 900;
}

.subject-mini-stats dd {
  margin: 2px 0 0;
  color: var(--blue);
  font-size: 1.1rem;
  font-weight: 950;
}

.subject-chapter-actions a,
.chapter-card-actions a,
.chapter-competency-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 6px 11px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--blue);
  font-size: 0.85rem;
  font-weight: 900;
}

.subject-chapter-actions a:first-child,
.chapter-card-actions a:first-child {
  border-color: var(--blue);
  background: var(--blue);
  color: white;
}

.chapter-card-actions {
  margin-top: 12px;
}

.chapter-competency-link {
  width: max-content;
  margin-top: 6px;
}

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

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

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

.notification-heading form {
  justify-self: end;
}

.notification-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
  margin-top: 18px;
}

.notification-summary article {
  display: grid;
  gap: 5px;
  min-height: 96px;
  padding: 15px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.notification-summary span,
.notification-meta,
.notification-actor {
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 850;
}

.notification-summary strong {
  color: var(--ink);
  font-size: 1.32rem;
  font-weight: 950;
}

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

.notification-sections {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 10px;
  margin-top: 18px;
}

.notification-sections a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 10px;
  min-height: 88px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--ink);
  text-decoration: none;
}

.notification-sections a[aria-current="page"] {
  border-color: var(--blue);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--blue) 20%, transparent);
}

.notification-sections small {
  grid-column: 1 / -1;
  color: var(--muted);
  line-height: 1.3;
}

.notification-group {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface-soft);
}

.notification-group > header {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
}

.notification-group h2,
.notification-group h3 {
  margin: 4px 0;
}

.notification-group-items {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}

.notification-advanced {
  grid-column: 1 / -1;
}

.notification-advanced > div {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
  margin-top: 10px;
}

/* Source : pages/domain-23.css */

.notification-filters {
  margin-top: 18px;
  padding: 14px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--cobalt-green);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.notification-filters form {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(170px, 220px) auto auto;
  gap: 12px;
  align-items: end;
}

.notification-heading-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.notification-heading-actions form { display: grid; gap: 6px; }
.notification-table-shell { margin-top: 18px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); }
.notification-table { display: grid; }
.notification-table-head, .notification-table-row { display: grid; grid-template-columns: minmax(300px, 2.4fr) minmax(130px, .8fr) 100px 105px minmax(190px, 1fr); gap: 14px; align-items: center; }
.notification-table-head { padding: 12px 16px; background: linear-gradient(135deg, #eef3ff, #fff7f1); color: var(--muted); font-size: .78rem; font-weight: 950; letter-spacing: .04em; text-transform: uppercase; }
.notification-table-row { position: relative; padding: 14px 16px; border-top: 1px solid var(--line); border-left: 5px solid var(--blue); transition: background 150ms ease, opacity 150ms ease; }
.notification-table-row.is-unread { background: #f7f9ff; }
.notification-table-row.is-read { background: var(--surface); }
.notification-table-row.is-archived { border-left-color: #a7acbb; background: #f6f7fa; opacity: .72; }
.notification-table-row.priority-success { border-left-color: var(--cobalt-green); }
.notification-table-row.priority-warning { border-left-color: var(--lemon-yellow); }
.notification-table-row.priority-error { border-left-color: var(--danger); }
.notification-table-message { min-width: 0; }
.notification-table-message h2 { margin: 3px 0 5px; font-size: 1rem; overflow-wrap: anywhere; }
.notification-table-message p, .notification-table-message small, .notification-table-context span, .notification-table-row time small { display: block; color: var(--muted); }
.notification-table-message p { margin: 0; line-height: 1.4; }
.notification-kind { color: var(--blue); font-size: .75rem; font-weight: 950; text-transform: uppercase; }
.notification-table-context { min-width: 0; overflow-wrap: anywhere; }
.notification-table-row time { font-weight: 850; }

@media (max-width: 1050px) {
  .notification-table-head { display: none; }
  .notification-table-row { grid-template-columns: minmax(0, 1fr) auto; align-items: start; }
  .notification-table-message { grid-column: 1 / -1; }
  .notification-actions { grid-column: 1 / -1; justify-content: flex-start; }
}

.notification-filters label {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 900;
}

.notification-filters input,
.notification-filters select {
  min-height: 42px;
  min-width: 0;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface-soft);
  color: var(--ink);
  font-weight: 800;
}

.notification-filters .checkbox-line {
  display: flex;
  gap: 8px;
  align-items: center;
  min-height: 42px;
}

.notification-filters .checkbox-line input {
  min-height: auto;
}

.notification-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 16px;
  border: 1px solid var(--line);
  border-left: 6px solid var(--blue);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.notification-card.is-read {
  opacity: 0.78;
}

.notification-card.is-archived {
  border-left-color: #a7acbb;
  background: #f6f7fa;
}

.notification-card.priority-success {
  border-left-color: var(--cobalt-green);
}

.notification-card.priority-warning {
  border-left-color: var(--lemon-yellow);
}

.notification-card.priority-error {
  border-left-color: var(--danger);
}

.notification-card-main {
  min-width: 0;
}

.notification-card h2 {
  margin: 6px 0;
  overflow-wrap: anywhere;
}

.notification-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.notification-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.notification-state {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.notification-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.notification-actions button {
  min-height: 40px;
  padding: 8px 13px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--blue);
  color: white;
  font-weight: 900;
  cursor: pointer;
}

.entry-card {
  display: grid;
  gap: 12px;
  padding: 16px;
}

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

.entry-head span {
  flex: 0 0 auto;
  max-width: 46%;
  padding: 4px 8px;
  border-radius: var(--radius);
  background: var(--surface-soft);
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  text-align: right;
}

.entry-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.48;
}

.fact-list {
  display: grid;
  gap: 8px;
  margin: 0;
}

.fact-list div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
}

.fact-list dt {
  color: var(--muted);
  font-size: 0.82rem;
}

.fact-list dd {
  margin: 0;
  font-weight: 800;
  text-align: right;
}

.tag-row,
.action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.tag-row span {
  padding: 4px 8px;
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--cobalt-green), white 86%);
  color: #245d27;
  font-size: 0.8rem;
  font-weight: 800;
}

.medal-heading,
.medal-filters,
.button-row {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
}

.medal-grid,
.medal-review-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: 16px;
}

.medal-card,
.medal-review-card {
  min-width: 0;
  overflow-wrap: anywhere;
}

.medal-card-icon img,
.medal-card-icon span {
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  object-fit: contain;
  border-radius: 50%;
  background: var(--surface-soft);
  font-size: 1.7rem;
  font-weight: 900;
}

.medal-card.is-archived,
.medal-card.is-replaced {
  opacity: 0.76;
}

.medal-review-card.is-proposed { border-inline-start: 5px solid var(--warning, #b86b00); }
.medal-review-card.is-awarded { border-inline-start: 5px solid var(--cobalt-green); }
.medal-review-card.is-rejected,
.medal-review-card.is-revoked { border-inline-start: 5px solid var(--danger, #b42318); }

.medal-evidence {
  padding: 10px;
  border-inline-start: 4px solid var(--cobalt-green);
  background: var(--surface-soft);
}

@media (max-width: 520px) {
  .medal-heading,
  .medal-filters,
  .button-row { align-items: stretch; }
  .medal-heading > *,
  .medal-filters label,
  .medal-filters select,
  .button-row .button { min-width: 0; width: 100%; }
}

@media print {
  .medal-heading a,
  .medal-filters,
  .medal-review-card form,
  nav { display: none !important; }
  .medal-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Source : pages/domain-24.css */

.action-row {
  margin: -8px 0 22px;
}

.metric-grid {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  margin-bottom: 24px;
}

.metric-card {
  padding: 14px;
  border-top: 4px solid var(--lemon-yellow);
}

.metric-card span {
  display: block;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 750;
}

.metric-card strong {
  display: block;
  margin-top: 4px;
  color: var(--blue);
  font-size: 1.45rem;
}

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

.feature-row {
  display: grid;
  grid-template-columns: minmax(120px, 0.8fr) minmax(0, 2fr) auto;
  gap: 12px;
  align-items: start;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
}

.feature-row > span,
.feature-row em {
  color: var(--muted);
  font-size: 0.82rem;
  font-style: normal;
  font-weight: 800;
}

.feature-row p {
  margin: 4px 0 0;
  color: var(--muted);
  line-height: 1.42;
}

.prewire-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  margin: 0;
}

.prewire-grid div {
  padding: 12px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--cobalt-green);
  border-radius: var(--radius);
  background: var(--surface);
}

.prewire-grid dt {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 800;
}

.prewire-grid dd {
  margin: 4px 0 0;
  color: var(--blue);
  font-weight: 850;
  overflow-wrap: anywhere;
}

.auth-layout {
  grid-template-columns: minmax(0, 0.9fr) minmax(300px, 480px);
  align-items: start;
}

.policy-list {
  display: grid;
  gap: 10px;
  margin-top: 18px;
}

.policy-list p {
  margin: 0;
  padding: 10px 12px;
  border-left: 4px solid var(--lemon-yellow);
  background: var(--surface-soft);
}

.auth-form {
  display: grid;
  gap: 14px;
  padding: 18px;
}

.captcha-field {
  display: grid;
  gap: 8px;
}

.captcha-image {
  width: min(220px, 100%);
  height: 76px;
  border-radius: var(--radius);
  background: var(--surface-soft);
}

.auth-form fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.segmented {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 8px;
  margin-top: 8px;
}

.segmented label {
  display: grid;
}

.segmented input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.segmented span {
  display: grid;
  place-items: center;
  min-height: 40px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface-soft);
  color: var(--ink);
  font-weight: 800;
}

.segmented input:checked + span {
  border-color: var(--blue);
  background: color-mix(in srgb, var(--blue), white 88%);
  color: var(--blue);
}

.profile-panel {
  display: flex;
  gap: 18px;
  align-items: center;
  padding: 18px;
}

.profile-panel img {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  object-fit: cover;
  background: var(--surface-soft);
}

.profile-panel p {
  color: var(--muted);
}

.profile-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.82fr);
  gap: 18px;
  align-items: stretch;
  padding: 24px;
  border: 1px solid var(--line);
  border-top: 7px solid var(--cobalt-green);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(61, 145, 64, 0.09), transparent 35%),
    linear-gradient(315deg, rgba(255, 244, 79, 0.22), transparent 46%),
    var(--surface);
  box-shadow: var(--shadow);
}

/* Source : pages/domain-25.css */

.profile-identity {
  display: flex;
  gap: 18px;
  align-items: center;
  min-width: 0;
}

.profile-identity img {
  width: 118px;
  height: 118px;
  border: 2px solid var(--line);
  border-radius: 50%;
  background: var(--surface);
  object-fit: cover;
}

.profile-avatar-fallback {
  align-items: center;
  background: var(--panel-strong, #e8edf4);
  border-radius: 50%;
  display: inline-flex;
  font-size: 1.35rem;
  font-weight: 800;
  height: 76px;
  justify-content: center;
  width: 76px;
}

.profile-photo-form {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: end;
  margin-top: 14px;
}

.profile-photo-form label {
  display: grid;
  gap: 5px;
  min-width: min(220px, 100%);
}

.profile-photo-form span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 850;
}

.profile-photo-form input {
  max-width: 260px;
  min-height: 40px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
}

.profile-photo-form button {
  min-height: 40px;
  padding: 0 16px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--blue);
  font-weight: 900;
}

.profile-photo-policy {
  display: grid;
  gap: 3px;
  max-width: 560px;
  margin-top: 14px;
  padding: 12px 14px;
  border-left: 4px solid var(--blue);
  border-radius: 10px;
  background: var(--blue-soft);
}

.profile-photo-policy span {
  color: var(--muted);
}

.profile-photo-policy-form,
.profile-internal-notes form {
  display: grid;
  gap: 14px;
  max-width: 760px;
  margin-top: 16px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface-soft);
}

.profile-photo-policy-form label,
.profile-internal-notes form p,
.profile-internal-notes form label {
  display: grid;
  gap: 6px;
  margin: 0;
  color: var(--ink);
  font-weight: 750;
}

.profile-photo-policy-form input,
.profile-photo-policy-form select,
.profile-internal-notes input,
.profile-internal-notes select,
.profile-internal-notes textarea {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
}

.profile-photo-policy-form button,
.profile-internal-notes form button {
  justify-self: start;
  min-height: 42px;
  padding: 0 18px;
  border: 0;
  border-radius: 999px;
  background: var(--blue);
  color: #fff;
  font-weight: 900;
  cursor: pointer;
}

@media (max-width: 640px) {
  .profile-identity {
    align-items: flex-start;
    flex-direction: column;
  }

  .profile-photo-form,
  .profile-photo-policy-form,
  .profile-internal-notes form {
    width: 100%;
  }
}

.profile-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.profile-toolbar {
  display: grid;
  align-content: center;
  gap: 12px;
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.78);
}

.profile-toolbar-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.profile-toolbar-heading span {
  color: var(--blue);
  font-weight: 950;
}

.profile-toolbar-heading p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: 780;
}

.profile-action-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px;
}

.profile-icon-action-form {
  min-width: 0;
  margin: 0;
}

.profile-icon-action {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  width: 100%;
  min-height: 52px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
  color: var(--ink);
  box-shadow: 0 12px 28px rgba(49, 94, 214, 0.08);
  cursor: pointer;
}

.profile-icon-action .profile-action-symbol {
  position: relative;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: var(--blue-soft);
  color: var(--blue);
}

.profile-icon-action strong {
  min-width: 0;
  font-size: 0.86rem;
  font-weight: 950;
  line-height: 1.1;
  overflow-wrap: anywhere;
  text-align: left;
}

.profile-icon-action.is-danger {
  border-color: rgba(201, 41, 41, 0.32);
}

.profile-icon-action.is-danger .profile-action-symbol {
  background: rgba(201, 41, 41, 0.12);
  color: var(--danger);
}

.profile-icon-action.is-warning {
  border-color: rgba(255, 244, 79, 0.7);
}

.profile-icon-action.is-warning .profile-action-symbol {
  background: var(--yellow-soft);
  color: #6f5e00;
}

.profile-icon-action.is-success {
  border-color: rgba(61, 145, 64, 0.35);
}

.profile-icon-action.is-success .profile-action-symbol {
  background: var(--green-soft);
  color: var(--cobalt-green);
}

.profile-icon-action.is-info .profile-action-symbol {
  background: var(--blue);
  color: white;
}

.profile-action-symbol::before,
.profile-action-symbol::after {
  position: absolute;
  content: "";
}

.icon-calendar::before {
  width: 18px;
  height: 17px;
  border: 2px solid currentColor;
  border-radius: 4px;
}

.icon-calendar::after {
  width: 18px;
  height: 2px;
  top: 12px;
  background: currentColor;
  box-shadow: -4px -5px 0 -1px currentColor, 4px -5px 0 -1px currentColor;
}

/* Source : pages/domain-26.css */

.icon-lock-open::before,
.icon-lock-closed::before {
  width: 18px;
  height: 13px;
  bottom: 7px;
  border: 2px solid currentColor;
  border-radius: 4px;
}

.icon-lock-open::after,
.icon-lock-closed::after {
  width: 13px;
  height: 12px;
  top: 6px;
  border: 2px solid currentColor;
  border-bottom: 0;
  border-radius: 9px 9px 0 0;
}

.icon-lock-open::after {
  left: 8px;
  transform: translateX(-2px) rotate(-25deg);
  transform-origin: right bottom;
}

.icon-key::before {
  width: 10px;
  height: 10px;
  left: 8px;
  border: 2px solid currentColor;
  border-radius: 50%;
}

.icon-key::after {
  width: 14px;
  height: 2px;
  left: 17px;
  background: currentColor;
  box-shadow: 6px 4px 0 -1px currentColor;
}

.icon-download::before {
  width: 3px;
  height: 16px;
  top: 7px;
  background: currentColor;
}

.icon-download::after {
  width: 16px;
  height: 16px;
  top: 11px;
  border-right: 3px solid currentColor;
  border-bottom: 3px solid currentColor;
  transform: rotate(45deg);
}

.icon-thumb::before {
  width: 16px;
  height: 18px;
  border: 2px solid currentColor;
  border-radius: 5px 5px 7px 7px;
  transform: rotate(-12deg);
}

.icon-thumb::after {
  width: 7px;
  height: 13px;
  left: 8px;
  top: 7px;
  border-left: 3px solid currentColor;
  border-top: 3px solid currentColor;
  transform: rotate(-32deg);
}

.icon-note::before {
  width: 18px;
  height: 20px;
  border: 2px solid currentColor;
  border-radius: 4px;
}

.icon-note::after {
  width: 10px;
  height: 2px;
  background: currentColor;
  box-shadow: 0 6px 0 currentColor;
}

.profile-followup-popover {
  width: min(520px, calc(100vw - 32px));
  padding: 0;
  border: 1px solid var(--line);
  border-top: 5px solid var(--cobalt-green);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.profile-followup-popover::backdrop {
  background: rgba(16, 19, 38, 0.28);
}

.profile-followup-popover form {
  display: grid;
  gap: 12px;
  padding: 18px;
}

.profile-followup-popover h2 {
  margin: 0;
  color: var(--blue);
}

.profile-followup-popover p,
.profile-followup-popover span {
  color: var(--muted);
  font-weight: 780;
}

.profile-followup-popover label {
  display: grid;
  gap: 6px;
}

.profile-followup-popover textarea {
  min-height: 130px;
  resize: vertical;
}

.profile-followup-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.profile-followup-actions button {
  min-height: 40px;
  padding: 0 18px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface-soft);
  color: var(--ink);
  font-weight: 900;
}

.profile-followup-actions button[type="submit"] {
  border-color: var(--blue);
  background: var(--blue);
  color: white;
}

.profile-followup-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.profile-term-selector {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.profile-term-selector a {
  min-height: 38px;
  padding: 8px 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--muted);
  font-weight: 900;
  text-decoration: none;
}

.profile-term-selector a.is-selected {
  border-color: var(--blue);
  background: var(--blue);
  color: white;
}

.profile-followup-shell {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--blue);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.profile-followup-chat {
  display: grid;
  gap: 12px;
  max-width: 980px;
}

.profile-message {
  display: grid;
  gap: 8px;
  width: min(720px, 100%);
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 16px 16px 16px 6px;
  background: var(--surface-soft);
}

/* Source : pages/domain-27.css */

.profile-message.is-success {
  justify-self: end;
  border-color: rgba(61, 145, 64, 0.35);
  border-radius: 16px 16px 6px 16px;
  background: var(--green-soft);
}

.profile-message div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: baseline;
  justify-content: space-between;
}

.profile-message strong {
  color: var(--ink);
}

.profile-message span,
.profile-message small {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.profile-message p {
  margin: 0;
  color: var(--ink);
  line-height: 1.45;
}

.profile-followup-term {
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 190px;
  padding: 14px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--blue);
  border-radius: var(--radius);
  background: var(--surface);
}

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

.profile-followup-entry {
  padding: 12px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  border-radius: var(--radius);
  background: var(--surface-soft);
}

.profile-followup-entry.is-success {
  border-left-color: var(--cobalt-green);
}

.profile-followup-entry p {
  margin: 6px 0;
}

.profile-followup-entry small {
  color: var(--muted);
  font-weight: 760;
}

.profile-action-zone {
  grid-column: 1 / -1;
  display: grid;
  gap: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

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

.profile-facts div,
.profile-action-card,
.profile-score-card,
.filer-grid article {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
}

.profile-facts div {
  display: grid;
  gap: 4px;
  min-height: 76px;
  padding: 12px;
  border-left: 4px solid var(--blue);
}

.profile-facts dt,
.profile-action-card em,
.profile-score-card span,
.filer-grid span {
  color: var(--muted);
  font-size: 0.8rem;
  font-style: normal;
  font-weight: 850;
}

.profile-facts dd {
  margin: 0;
  color: var(--ink);
  font-weight: 930;
  overflow-wrap: anywhere;
}

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

.profile-action-card {
  display: grid;
  gap: 8px;
  min-height: 124px;
  padding: 15px;
  border-top: 5px solid var(--blue);
  box-shadow: var(--shadow);
}

.profile-action-form {
  align-content: start;
}

.profile-action-form label {
  display: grid;
  gap: 5px;
}

.profile-action-form label span {
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 850;
}

.profile-action-form input {
  width: 100%;
  min-height: 36px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface-soft);
}

.profile-action-form button {
  min-height: 34px;
  padding: 7px 11px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface-soft);
  color: var(--blue);
  font-weight: 900;
  cursor: pointer;
}

.profile-action-card.is-danger {
  border-top-color: var(--danger);
}

.profile-action-card.is-warning {
  border-top-color: var(--lemon-yellow);
}

.profile-action-card.is-success {
  border-top-color: var(--cobalt-green);
}

.profile-action-card span {
  color: var(--blue);
  font-weight: 950;
}

.profile-action-card strong {
  color: var(--ink);
  line-height: 1.35;
}

.profile-activity-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
  gap: 14px;
  align-items: stretch;
}

.profile-activity-layout.is-chart-only {
  grid-template-columns: 1fr;
}

/* Source : pages/domain-28.css */

.profile-association-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 10px;
}

.profile-association-grid article {
  display: grid;
  gap: 5px;
  min-height: 90px;
  padding: 14px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--cobalt-green);
  border-radius: 7px;
  background: var(--surface);
}

.profile-association-grid span,
.profile-association-grid small {
  color: var(--muted);
  font-weight: 700;
}

.profile-medal-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 10px;
}

.profile-medal {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 12px;
  align-items: center;
  min-height: 86px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--cobalt-green);
  border-radius: 8px;
  padding: 10px;
  background: var(--surface);
}

.profile-medal.is-proposed {
  border-left-color: var(--burnt-sienna);
  background: var(--lemon-soft);
}

.profile-medal > img,
.profile-medal > span {
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  object-fit: contain;
  border-radius: 50%;
  background: var(--surface-soft);
  color: var(--blue);
  font-size: 1.4rem;
  font-weight: 950;
}

.profile-medal > div {
  display: grid;
  gap: 3px;
}

.profile-medal small,
.profile-medal p {
  margin: 0;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.35;
}

.profile-chart {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(54px, 1fr));
  gap: 12px;
  align-items: end;
  min-height: 260px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.profile-chart-column {
  display: grid;
  grid-template-rows: auto 1fr;
  grid-template-columns: repeat(3, 1fr);
  gap: 5px;
  align-items: end;
  min-height: 210px;
}

.profile-chart-column span {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 850;
  text-align: center;
}

.profile-chart-column i,
.profile-chart-column b,
.profile-chart-column strong {
  align-self: end;
  min-height: 8px;
  border-radius: 999px 999px 0 0;
}

.profile-chart-column i {
  background: var(--blue);
}

.profile-chart-column b {
  background: var(--cobalt-green);
}

.profile-chart-column strong {
  background: var(--burnt-sienna);
}

.profile-score-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.profile-score-card {
  display: grid;
  gap: 7px;
  min-height: 132px;
  padding: 14px;
  border-left: 5px solid var(--lemon-yellow);
}

.profile-score-card strong {
  color: var(--blue);
  font-size: 1.42rem;
  font-weight: 950;
}

.profile-score-card p,
.filer-grid p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.filer-panel {
  padding: 18px;
  border: 1px solid var(--line);
  border-top: 6px solid var(--burnt-sienna);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.filer-browser {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
  margin-top: 14px;
}

.filer-sidebar {
  display: grid;
  align-content: start;
  gap: 6px;
  min-height: 320px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #f1f2f6;
}

.filer-folder-nav {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 9px;
  align-items: center;
  min-height: 42px;
  padding: 8px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}

.filer-folder-nav:hover,
.filer-folder-nav.is-selected {
  border-color: var(--line);
  background: var(--surface);
}

/* Source : pages/domain-29.css */

.filer-folder-nav span,
.filer-folder span {
  position: relative;
  width: 28px;
  height: 22px;
  border-radius: 4px;
  background: #d8dbe3;
  box-shadow: inset 0 -3px 0 rgba(16, 19, 38, 0.08);
}

.filer-folder-nav span::before,
.filer-folder span::before {
  position: absolute;
  top: -4px;
  left: 3px;
  width: 13px;
  height: 7px;
  border-radius: 4px 4px 0 0;
  background: #c7cbd6;
  content: "";
}

.filer-folder-nav strong {
  overflow: hidden;
  font-size: 0.9rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.filer-main {
  min-width: 0;
}

.filer-dropzone {
  display: grid;
  gap: 6px;
  place-items: center;
  min-height: 68px;
  margin: 14px 0;
  padding: 18px;
  border: 2px dashed var(--line);
  border-radius: var(--radius);
  background: var(--surface-soft);
  color: var(--muted);
  text-align: center;
  cursor: pointer;
  transition: min-height 0.18s ease, background 0.18s ease, border-color 0.18s ease;
}

.filer-dropzone.is-dragging,
body.is-dragging-file .filer-dropzone {
  border-color: var(--blue);
  background: var(--blue-soft);
  min-height: 128px;
}

.filer-dropzone input[type="file"] {
  display: none;
}

.filer-add-button {
  display: inline-grid;
  grid-auto-flow: column;
  gap: 8px;
  align-items: center;
  min-height: 42px;
  padding: 0 16px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--blue);
  font-weight: 950;
  cursor: pointer;
}

.filer-add-button span {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--blue);
  color: white;
}

.filer-drop-instructions {
  display: none;
  place-items: center;
  gap: 6px;
}

.filer-dropzone.is-dragging .filer-add-button,
body.is-dragging-file .filer-dropzone .filer-add-button {
  display: none;
}

.filer-dropzone.is-dragging .filer-drop-instructions,
body.is-dragging-file .filer-dropzone .filer-drop-instructions {
  display: grid;
}

.filer-dropzone strong,
.filer-drop-instructions strong {
  color: var(--ink);
  font-size: 1.05rem;
  font-weight: 950;
}

.filer-feedback {
  margin: -4px 0 14px;
  padding: 10px 12px;
  border-left: 4px solid var(--blue);
  background: var(--blue-soft);
  color: var(--ink);
  font-weight: 850;
}

.filer-feedback.is-error {
  border-left-color: var(--danger);
  background: #fff0f0;
  color: #8d1d1d;
}

.filer-feedback.is-success {
  border-left-color: var(--green);
  background: #edf8ef;
  color: #245f2d;
}

.filer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(185px, 1fr));
  gap: 12px;
  margin: 14px 0;
}

.filer-grid article,
.filer-folder {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 5px 10px;
  align-items: start;
  padding: 14px;
  border-left: 5px solid var(--cobalt-green);
  text-align: left;
}

.filer-folder {
  border: 1px solid var(--line);
  border-left: 5px solid #a7acbb;
  border-radius: var(--radius);
  background: #f1f2f6;
  cursor: pointer;
}

.filer-folder.is-selected {
  border-left-color: var(--blue);
  background: #e9eef8;
}

.filer-grid strong {
  align-self: center;
  color: var(--ink);
  overflow-wrap: anywhere;
}

.filer-folder p {
  grid-column: 1 / -1;
}

.filer-file-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.filer-file-card {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 10px 12px;
  align-items: start;
  padding: 14px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  border-radius: var(--radius);
  background: var(--surface);
}

.filer-file-card.is-placeholder {
  border-left-color: #a7acbb;
  background: #f6f7fb;
}

.filer-file-icon {
  position: relative;
  display: block;
  width: 30px;
  height: 36px;
  border-radius: 5px;
  background: #d8dbe3;
  box-shadow: inset 0 -4px 0 rgba(16, 19, 38, 0.08);
}

/* Source : pages/domain-30.css */

.filer-file-icon::after {
  position: absolute;
  top: 0;
  right: 0;
  width: 10px;
  height: 10px;
  border-radius: 0 5px 0 4px;
  background: #eef0f6;
  content: "";
}

.filer-file-card strong {
  color: var(--ink);
  overflow-wrap: anywhere;
}

.filer-file-card p {
  margin: 5px 0 0;
  color: var(--muted);
  font-weight: 760;
}

.filer-file-actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.filer-file-actions a,
.filer-file-actions button {
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface-soft);
  color: var(--blue);
  font-weight: 900;
  text-decoration: none;
}

.filer-explorer {
  display: grid;
  gap: 14px;
  margin-top: 14px;
}

.filer-explorer-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #f1f2f6;
}

.filer-nav-button,
.filer-path {
  display: inline-grid;
  place-items: center;
  min-height: 36px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface);
  color: var(--ink);
  font-weight: 950;
  text-decoration: none;
}

.filer-nav-button {
  width: 40px;
  font-size: 1.05rem;
}

.filer-nav-button.is-disabled {
  opacity: 0.45;
  pointer-events: none;
}

.filer-path {
  grid-auto-flow: column;
  gap: 8px;
  justify-content: start;
  width: auto;
  min-width: min(320px, 100%);
  padding: 0 14px;
}

.filer-path span {
  color: var(--muted);
}

.filer-explorer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 12px;
}

.filer-item {
  position: relative;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 8px 12px;
  align-items: center;
  min-height: 96px;
  padding: 14px;
  border: 1px solid var(--line);
  border-left: 5px solid #a7acbb;
  border-radius: var(--radius);
  background: #f6f7fb;
  color: var(--ink);
  text-decoration: none;
  transition: transform 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

.filer-item:hover,
.filer-item:focus-within {
  border-color: var(--blue);
  background: #eef3ff;
  transform: translateY(-1px);
}

.filer-item.is-folder {
  border-left-color: #a7acbb;
}

.filer-item.is-folder:hover {
  border-left-color: var(--blue);
}

.filer-item.is-file {
  border-left-color: var(--blue);
}

.filer-item.is-file a {
  display: contents;
  color: inherit;
  text-decoration: none;
}

.filer-item strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.filer-item small {
  grid-column: 2;
  color: var(--muted);
  font-weight: 800;
}

.filer-item .filer-hide-button {
  position: absolute;
  top: 8px;
  right: 8px;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--surface);
  color: var(--danger);
  font-size: 1.25rem;
  line-height: 1;
  opacity: 0;
  cursor: pointer;
}

.filer-item:hover .filer-hide-button,
.filer-item:focus-within .filer-hide-button {
  opacity: 1;
}

.filer-item .filer-hide-button:disabled {
  opacity: 0.45;
  cursor: wait;
}

.filer-folder-icon {
  position: relative;
  display: block;
  width: 34px;
  height: 25px;
  border-radius: 5px;
  background: #d8dbe3;
  box-shadow: inset 0 -4px 0 rgba(16, 19, 38, 0.08);
}

.filer-folder-icon::before {
  position: absolute;
  top: -6px;
  left: 3px;
  width: 16px;
  height: 9px;
  border-radius: 5px 5px 0 0;
  background: #c7cbd6;
  content: "";
}

/* Source : pages/domain-31.css */

.muted-text {
  color: var(--muted);
  font-weight: 750;
}

.empty-state {
  margin: 0;
  padding: 18px;
  border: 1px dashed var(--line);
  border-radius: var(--radius);
  background: var(--surface-soft);
  color: var(--muted);
  font-weight: 800;
}

.inline-admin-form {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
}

.inline-admin-form select,
.inline-admin-form input {
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
}

output {
  color: var(--muted);
  font-size: 0.86rem;
}

.entry-card form[data-ajax-form] output:not(:empty) {
  display: grid;
  gap: 6px;
  margin-top: 12px;
  padding: 12px;
  border: 1px solid color-mix(in srgb, var(--green) 42%, var(--line));
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--green) 8%, var(--surface));
  color: var(--ink);
}

.entry-card form[data-ajax-form] output code {
  overflow-wrap: anywhere;
  font-size: 1rem;
  font-weight: 900;
  color: var(--blue);
  user-select: all;
}

.entry-card form[data-ajax-form] output small {
  color: var(--muted);
  line-height: 1.45;
}

.entry-card form[data-ajax-form] output.is-error {
  border-color: color-mix(in srgb, var(--sienna) 56%, var(--line));
  background: color-mix(in srgb, var(--sienna) 9%, var(--surface));
}

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

.credential-ticket {
  min-height: 150px;
  padding: 16px;
  border: 1px dashed var(--blue);
  border-radius: var(--radius);
  background: white;
}

.credential-ticket h2 {
  color: var(--blue);
}

.credential-ticket p {
  margin: 8px 0;
}

.page-shell:has(.council-page) {
  padding-top: 0;
}

.council-page {
  display: grid;
  gap: 18px;
}

.council-toolbar {
  display: grid;
  grid-template-columns: repeat(3, minmax(180px, 1fr)) auto;
  gap: 12px;
  align-items: end;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.council-toolbar label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 900;
}

.council-toolbar select {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 0 16px;
  background: white;
  color: var(--ink);
  font-weight: 900;
}

.council-class-rail {
  display: flex;
  gap: 0;
  overflow-x: auto;
  padding-bottom: 3px;
  scrollbar-width: thin;
}

.council-class-pill {
  display: grid;
  gap: 2px;
  flex: 0 0 150px;
  min-height: 58px;
  padding: 10px 18px 10px 24px;
  clip-path: polygon(13px 0, 100% 0, calc(100% - 13px) 100%, 0 100%);
  border-bottom: 3px solid var(--line);
  background: white;
  color: var(--ink);
  text-decoration: none;
  transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.council-class-pill:hover,
.council-class-pill:focus-visible {
  border-bottom-color: var(--blue);
  background: var(--surface-soft);
  transform: translateY(-1px);
}

.council-class-pill.is-selected {
  border-bottom-color: var(--blue);
  background: #eef4ff;
}

.council-class-pill strong {
  font-size: 1rem;
  font-weight: 950;
}

.council-class-pill span {
  overflow: hidden;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.council-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.9fr);
  gap: 18px;
  align-items: end;
  padding: 24px;
  border: 1px solid var(--line);
  border-top: 6px solid var(--cobalt-green);
  border-radius: var(--radius);
  background: linear-gradient(135deg, rgba(61, 145, 64, 0.07), rgba(255, 244, 79, 0.12)), var(--surface);
  box-shadow: var(--shadow);
}

.council-hero h1 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(2.2rem, 5vw, 4.8rem);
  line-height: 0.95;
}

/* Source : pages/domain-32.css */
.council-hero .lede {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 1.03rem;
  font-weight: 850;
}

.council-hero-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.council-hero-facts article {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  border-radius: var(--radius);
  background: white;
}

.council-hero-facts span,
.council-hero-facts em {
  color: var(--muted);
  font-size: 0.78rem;
  font-style: normal;
  font-weight: 850;
}

.council-hero-facts strong {
  color: var(--ink);
  font-size: 1.08rem;
  font-weight: 950;
}

.council-term-rail {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.council-term-rail a {
  min-height: 40px;
  padding: 9px 17px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: white;
  color: var(--muted);
  font-weight: 950;
  text-decoration: none;
}

.council-term-rail a.is-selected {
  border-color: var(--blue);
  background: var(--blue);
  color: white;
}

.council-grid {
  display: grid;
  grid-template-columns: minmax(280px, 0.85fr) minmax(420px, 1.15fr);
  gap: 18px;
  align-items: start;
}

.council-panel {
  min-width: 0;
}

.council-schedule-form,
.council-schedule-form label {
  display: grid;
  gap: 8px;
}

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

.council-schedule-form input,
.council-schedule-form select {
  width: 100%;
  min-height: 44px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: white;
  color: var(--ink);
  font: inherit;
}

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

@media (max-width: 760px) {
  .council-schedule-form .form-grid {
    grid-template-columns: 1fr;
  }
}

.delegate-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}

.delegate-list article {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface-soft);
}

.delegate-list strong {
  color: var(--ink);
  font-weight: 950;
}

.delegate-list label {
  display: flex;
  gap: 8px;
  align-items: center;
  color: var(--muted);
  font-weight: 850;
}

.delegate-list input,
.council-attendance-table input {
  width: 18px;
  height: 18px;
  accent-color: var(--cobalt-green);
}

.council-attendance-table {
  min-width: 720px;
}

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

.council-decision-card {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--line);
  border-left: 6px solid var(--blue);
  border-radius: var(--radius);
  background: white;
}

.council-decision-card header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
  gap: 12px;
  align-items: start;
}

.council-decision-card header div,
.council-decision-card label {
  display: grid;
  gap: 6px;
}

.council-decision-card strong {
  color: var(--ink);
  font-size: 1.05rem;
  font-weight: 950;
}

.council-decision-card span,
.council-comment-field span {
  color: var(--muted);
  font-weight: 850;
}

.council-decision-card select,
.council-comment-field textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface-soft);
  color: var(--ink);
  font: inherit;
  font-weight: 800;
}

/* Source : pages/domain-33.css */

.council-decision-card select {
  min-height: 42px;
  padding: 0 12px;
}

.council-comment-field textarea {
  min-height: 100px;
  padding: 10px 12px;
  resize: vertical;
  font-weight: 650;
  line-height: 1.4;
}

.council-proposal {
  margin: 0;
  padding: 12px;
  border-radius: 14px;
  background: rgba(255, 244, 79, 0.18);
  color: var(--muted);
  font-weight: 750;
}

.evaluation-student-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: end;
  margin: 0;
  padding: 22px clamp(18px, 3vw, 34px);
  border-top: 7px solid var(--cobalt-green);
  border-bottom: 1px solid var(--line);
  background: white;
}

.evaluation-student-heading h1 {
  margin: 4px 0 8px;
  font-size: 2.4rem;
  line-height: 1.05;
}

.evaluation-student-status {
  display: grid;
  gap: 4px;
  min-width: 250px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--burnt-sienna);
  border-radius: 8px;
  background: var(--surface-soft);
}

.evaluation-student-status strong {
  color: var(--ink);
}

.evaluation-student-status span {
  color: var(--muted);
  font-weight: 700;
}

.evaluation-published-result {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 16px 0 0;
  padding: 16px 20px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--cobalt-green);
  background: white;
}

.evaluation-published-result span,
.evaluation-published-result dt {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 750;
}

.evaluation-published-result h2 {
  margin: 2px 0 0;
  color: var(--blue);
  font-size: 1.8rem;
}

.evaluation-published-result dl {
  display: flex;
  gap: 24px;
  margin: 0;
}

.evaluation-published-result dd {
  margin: 2px 0 0;
  font-weight: 750;
}

.evaluation-answer-feedback {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  margin-top: 12px;
  padding: 12px;
  border-left: 4px solid var(--cobalt-green);
  background: var(--green-soft);
}

.evaluation-countdown {
  font-variant-numeric: tabular-nums;
  font-weight: 800;
}

.evaluation-countdown.is-urgent {
  color: var(--burnt-sienna);
}

.evaluation-start-panel {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  margin-top: 16px;
}

.student-evaluation-form {
  display: grid;
  gap: 14px;
  margin-top: 16px;
}

.evaluation-student-block {
  box-sizing: border-box;
  display: grid;
  gap: 14px;
  min-width: 0;
  width: 100%;
  padding: 18px;
  border: 1px solid var(--line);
  border-left: 6px solid var(--blue);
  border-radius: 8px;
  background: white;
}

.evaluation-student-block.is-question {
  border-left-color: var(--cobalt-green);
}

.evaluation-student-block header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: start;
}

.evaluation-student-block header div,
.evaluation-answer-field,
.evaluation-answer-upload {
  display: grid;
  gap: 6px;
}

.evaluation-student-block header span,
.evaluation-answer-field span,
.evaluation-answer-upload span {
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 850;
}

.evaluation-student-block h2 {
  margin: 0;
  font-size: 1.08rem;
}

.evaluation-prompt {
  color: var(--ink);
  line-height: 1.55;
}

.evaluation-resource {
  width: fit-content;
  color: var(--blue);
  font-weight: 850;
}

.evaluation-image-resource {
  display: grid;
  gap: 8px;
  margin: 0;
  width: min(100%, 960px);
}

.evaluation-image-resource img {
  display: block;
  width: 100%;
  max-height: 68vh;
  object-fit: contain;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--surface-soft);
}

/* Source : pages/domain-34.css */

.evaluation-image-resource figcaption {
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 750;
}

.evaluation-answer-field textarea,
.evaluation-answer-upload input[type="file"] {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface-soft);
  color: var(--ink);
  font: inherit;
}

.evaluation-answer-field textarea {
  min-height: 120px;
  padding: 12px;
  resize: vertical;
}

.evaluation-answer-upload input[type="file"] {
  padding: 10px;
}

.evaluation-answer-choices {
  display: grid;
  gap: 8px;
}

.evaluation-answer-choices label {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface-soft);
  font-weight: 750;
}

.evaluation-readonly-answer {
  padding: 12px;
  border-left: 4px solid var(--lemon-yellow);
  background: var(--surface-soft);
}

.document-analysis-report {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--line);
  border-left: 6px solid var(--burnt-sienna);
  border-radius: 8px;
  background: white;
}

.document-analysis-report > header {
  display: flex;
  gap: 16px;
  align-items: start;
  justify-content: space-between;
}

.document-analysis-report > header span,
.document-analysis-files article > span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.document-analysis-report h2,
.document-analysis-report h3 {
  margin: 3px 0 0;
}

.document-analysis-report .is-consistent {
  padding: 6px 9px;
  border-radius: 6px;
  background: var(--green-soft);
  color: var(--cobalt-green);
  font-size: 0.8rem;
}

.document-analysis-files {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 10px;
}

.document-analysis-files article {
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--blue);
  border-radius: 7px;
  background: var(--surface-soft);
}

.document-analysis-files article strong {
  display: block;
  overflow-wrap: anywhere;
}

.document-analysis-files article p {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 0.84rem;
}

.document-analysis-warning {
  margin: 0;
  padding: 9px 11px;
  border-left: 4px solid var(--burnt-sienna);
  background: var(--sienna-soft);
  color: #742f1d;
  font-weight: 750;
}

.evaluation-student-footer {
  box-sizing: border-box;
  position: sticky;
  z-index: 8;
  bottom: 10px;
  display: flex;
  min-width: 0;
  width: 100%;
  justify-content: flex-end;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: var(--shadow-soft);
}

@media print {
  .topbar,
  .messages,
  .no-print {
    display: none;
  }

  body,
  .page-shell {
    background: white;
  }

  .credential-ticket {
    break-inside: avoid;
    box-shadow: none;
  }
}

@media (max-width: 900px) {
  .topbar {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    min-height: auto;
    gap: 10px;
    padding: 10px 14px;
  }

  .brand-badge {
    width: 42px;
    height: 42px;
  }

  .brand {
    font-size: 1.2rem;
  }

  .shell-menu-button {
    position: relative;
    display: inline-grid;
    grid-template-columns: 24px auto;
    gap: 7px;
    align-items: center;
    min-width: 46px;
    min-height: 42px;
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
    cursor: pointer;
  }

  .shell-menu-icon {
    display: grid;
    gap: 4px;
  }

  .shell-menu-icon span {
    display: block;
    width: 24px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    transition: transform 160ms ease, opacity 160ms ease;
  }

  .shell-menu-button > strong {
    display: grid;
    place-items: center;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--surface-soft);
    color: var(--muted);
    font-size: 0.7rem;
  }

  .shell-menu-button.has-unread > strong {
    background: var(--burnt-sienna);
    color: white;
  }

  .topbar.is-menu-open .shell-menu-icon span:first-child {
    transform: translateY(6px) rotate(45deg);
  }

  .topbar.is-menu-open .shell-menu-icon span:nth-child(2) {
    opacity: 0;
  }

  .topbar.is-menu-open .shell-menu-icon span:last-child {
    transform: translateY(-6px) rotate(-45deg);
  }

  .js .topbar:not(.is-menu-open) [data-shell-menu-panel] {
    display: none;
  }

  .role-nav,
  .account-zone {
    grid-column: 1 / -1;
    width: 100%;
  }

  .account-zone {
    justify-content: start;
    padding-top: 10px;
    border-top: 1px solid var(--line);
  }

  .school-pill,
  .school-switcher,
  .admin-view-button {
    grid-column: auto;
    justify-self: stretch;
  }

  .school-switcher {
    grid-template-columns: 1fr;
  }

  .role-nav {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 6px;
    padding-top: 6px;
  }

  .role-link {
    min-width: 0;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: var(--surface-soft);
  }

  .home-dashboard-heading,
  .home-public-panel,
  .home-workbench {
    grid-template-columns: 1fr;
  }

  .home-dashboard-heading .role-switcher {
    width: 100%;
  }

  .home-widget-timetable {
    grid-row: auto;
  }

  .home-mini-timetable {
    grid-template-columns: 56px repeat(5, minmax(110px, 1fr));
  }

  .hero-band,
  .page-heading,
  .auth-layout,
  .bulletin-heading,
  .chapter-heading,
  .crossword-heading,
  .competency-heading,
  .course-heading,
  .evaluation-heading,
  .student-chapter-heading,
  .trombi-heading,
  .notification-card,
  .textbook-heading,
  .timetable-heading,
  .timetable-toolbar,
  .settings-heading,
  .settings-layout,
  .council-toolbar,
  .council-hero,
  .council-grid,
  .error-page {
    grid-template-columns: 1fr;
    padding: 20px;
  }

  .council-hero-facts,
  .council-decision-card header {
    grid-template-columns: 1fr;
  }

  .council-toolbar .button {
    width: 100%;
  }

  .council-term-rail {
    justify-content: flex-start;
  }

  .role-switcher {
    min-width: 0;
  }

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

  .grades-filters button {
    grid-column: 1 / -1;
  }

  .home-hero {
    padding: 28px;
  }

  .home-hero h1 {
    font-size: 2.35rem;
  }

  .audience-grid,
  .legal-grid,
  .bulletin-metrics,
  .chapter-layout,
  .crossword-layout,
  .competency-layout,
  .referential-program-shell,
  .course-layout,
  .evaluation-layout,
  .student-chapter-layout,
  .trombi-summary,
  .workspace-grid,
  .attendance-layout,
  .textbook-layout,
  .class-comment-panel,
  .profile-hero,
  .profile-activity-layout,
  .profile-followup-grid,
  .profile-followup-shell,
  .filer-browser,
  .class-reset-form {
    grid-template-columns: 1fr;
  }

  .filer-sidebar {
    grid-auto-flow: column;
    grid-auto-columns: minmax(160px, 1fr);
    grid-template-columns: none;
    min-height: auto;
    overflow-x: auto;
  }

  .student-trombi-grid,
  .schedule-grid,
  .profile-facts,
  .profile-score-grid {
    grid-template-columns: 1fr 1fr;
  }

  .role-switcher.compact {
    grid-template-columns: 1fr;
  }

  .month-board {
    grid-template-columns: 1fr 1fr;
  }

  .course-guide {
    position: static;
  }

  .chapter-preview,
  .student-chapter-side,
  .crossword-clue-panel {
    position: static;
  }

  .evaluation-preview {
    position: static;
  }

  .competency-side {
    position: static;
  }

  .referential-index {
    position: static;
  }

  .referential-level-list {
    max-height: none;
  }

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

  .evaluation-option-row,
  .evaluation-date-row,
  .evaluation-block-editor,
  .evaluation-schedule-editor,
  .evaluation-worker-editor {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

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

  .chapter-game-editor,
  .chapter-wallpaper-editor,
  .chapter-term-editor,
  .chapter-link-editor,
  .chapter-publication-editor,
  .chapter-date-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .technology-theme-grid {
    grid-template-columns: 1fr;
  }

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

  .competency-map-grid {
    grid-template-columns: 1fr;
  }
}
@media (prefers-reduced-motion: reduce) {
  .learning-game-page *,
  .crossword-page * {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

.learning-circuit-editor,
.learning-circuit-palette,
.learning-circuit-editor ol,
.learning-circuit-editor ul,
.learning-circuit-editor fieldset {
  display: grid;
  gap: .65rem;
}

.learning-circuit-palette {
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
}

.learning-circuit-editor li {
  align-items: center;
  background: var(--color-surface, #fff);
  border: 1px solid var(--color-border, #c7d0da);
  border-radius: .5rem;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: space-between;
  padding: .65rem;
}

.learning-circuit-editor fieldset {
  grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
}

@media (max-width: 36rem) {
  .learning-circuit-editor fieldset {
    grid-template-columns: 1fr;
  }
}

/* Source : pages/domain-35.css */

@media (max-width: 560px) {
  .page-shell,
  .messages {
    width: min(100% - 20px, 1180px);
    padding-top: 18px;
  }

  .topbar {
    padding: 14px;
  }

  .profile-button span {
    display: none;
  }

  .notification-button span {
    display: none;
  }

  .notification-button .mail-icon,
  .notification-button strong {
    display: grid;
  }

  .logas-search div {
    grid-template-columns: 1fr;
  }

  .logas-card {
    grid-template-columns: 44px minmax(0, 1fr);
  }

  .logas-card form {
    grid-column: 1 / -1;
  }

  .logas-card button {
    width: 100%;
  }

  .logas-card img {
    width: 44px;
    height: 44px;
  }

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

  .role-link {
    font-size: 0.92rem;
  }

  .grades-filters {
    grid-template-columns: 1fr;
  }

  .grades-filters button {
    grid-column: auto;
  }

  .grades-board-heading > span {
    width: 100%;
    justify-content: center;
  }

  .home-hero h1,
  .home-dashboard-heading h1,
  .home-public-panel h1,
  .bulletin-heading h1,
  .chapter-heading h1,
  .crossword-heading h1,
  .competency-heading h1,
  .course-heading h1,
  .evaluation-heading h1,
  .student-chapter-heading h1,
  .trombi-heading h1,
  .timetable-heading h1,
  .page-heading h1,
  .auth-copy h1 {
    font-size: 1.72rem;
  }

  .home-hero {
    padding: 18px;
    border-radius: 18px;
  }

  .error-page {
    gap: 16px;
    padding: 18px;
    border-radius: 18px;
  }

  .error-copy h1 {
    font-size: 2.25rem;
  }

  .error-actions,
  .absence-slip-head {
    align-items: stretch;
  }

  .error-actions .button {
    width: 100%;
  }

  .referential-competency-title {
    display: grid;
  }

  .referential-level-badges {
    justify-content: flex-start;
  }

  .absence-slip {
    padding: 16px;
  }

  .absence-slip dl div {
    grid-template-columns: 1fr;
  }

  .home-dashboard-heading,
  .home-public-panel,
  .home-widget {
    padding: 16px;
  }

  .home-widget-head {
    display: grid;
  }

  .home-mini-timetable {
    grid-template-columns: 54px repeat(5, minmax(122px, 1fr));
  }

  .audience-card {
    min-height: auto;
    padding: 18px;
  }

  .trombi-heading,
  .evaluation-student-heading,
  .bulletin-heading,
  .chapter-heading,
  .chapter-toolbar,
  .competency-heading,
  .competency-toolbar,
  .referential-program-head,
  .course-heading,
  .bulletin-filter-panel,
  .bulletin-board-heading,
  .notification-card,
  .textbook-heading,
  .timetable-heading,
  .timetable-toolbar,
  .crossword-heading,
  .evaluation-heading,
  .evaluation-toolbar,
  .student-chapter-heading,
  .student-trombi-grid,
  .schedule-grid,
  .teacher-strip,
  .month-board {
    grid-template-columns: 1fr;
  }

  .evaluation-student-status {
    min-width: 0;
  }

  .evaluation-published-result,
  .evaluation-published-result dl {
    align-items: flex-start;
    flex-direction: column;
  }

  .evaluation-start-panel,
  .evaluation-student-block header,
  .document-analysis-report > header {
    align-items: stretch;
    flex-direction: column;
  }

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

  .evaluation-form,
  .evaluation-option-row,
  .evaluation-date-row,
  .evaluation-block-editor,
  .evaluation-link-editor,
  .evaluation-schedule-editor,
  .evaluation-worker-editor,
  .evaluation-card dl {
    grid-template-columns: 1fr;
  }

  .chapter-form,
  .chapter-game-editor,
  .chapter-wallpaper-editor,
  .chapter-term-editor,
  .chapter-link-editor,
  .chapter-publication-editor,
  .chapter-date-row,
  .chapter-card dl,
  .crossword-scorebar,
  .crossword-answer-panel {
    grid-template-columns: 1fr;
  }

  .evaluation-heading-actions,
  .evaluation-submit {
    width: 100%;
  }

  .chapter-heading-actions,
  .student-chapter-actions,
  .crossword-heading-actions,
  .chapter-submit {
    width: 100%;
  }

  .evaluation-link-grid,
  .evaluation-class-grid {
    grid-template-columns: 1fr;
  }

  .chapter-link-grid,
  .chapter-class-grid,
  .chapter-card-grid,
  .technology-theme-grid,
  .student-competency-grid {
    grid-template-columns: 1fr;
  }

  .competency-link-grid,
  .competency-card-grid {
    grid-template-columns: 1fr;
  }

  .timetable-matrix {
    grid-template-columns: 70px repeat(5, minmax(150px, 1fr));
  }

  .entry-head {
    display: grid;
  }

  .entry-head span {
    max-width: 100%;
    text-align: left;
  }

  .notification-actions,
  .notification-heading form,
  .notification-filters form {
    grid-template-columns: 1fr;
    justify-content: stretch;
    justify-self: stretch;
  }

  .notification-actions a,
  .notification-actions form,
  .notification-actions button,
  .notification-heading button {
    width: 100%;
  }

  .textbook-heading-actions,
  .bulletin-heading-actions,
  .course-heading-actions,
  .bulletin-board-heading .button,
  .textbook-submit,
  .replicate-form,
  .replicate-form button {
    width: 100%;
  }

  .textbook-form,
  .course-form,
  .course-resource-editor,
  .course-publication-editor,
  .course-date-row,
  .chapter-form,
  .chapter-game-editor,
  .chapter-wallpaper-editor,
  .chapter-term-editor,
  .chapter-link-editor,
  .chapter-publication-editor,
  .chapter-date-row,
  .homework-editor,
  .template-editor,
  .textbook-entry header {
    grid-template-columns: 1fr;
  }

  .fact-list div,
  .profile-panel,
  .profile-identity,
  .feature-row,
  .timeline-list article {
    display: grid;
    grid-template-columns: 1fr;
  }

  .profile-facts,
  .profile-score-grid,
  .profile-chart {
    grid-template-columns: 1fr;
  }

  .filer-sidebar,
  .filer-grid,
  .filer-explorer-grid,
  .filer-file-list,
  .profile-followup-grid {
    grid-auto-flow: row;
    grid-template-columns: 1fr;
  }

  .profile-term-selector {
    width: 100%;
  }

  .section-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .year-picker,
  .calendar-fields,
  .calendar-fields label:nth-child(4),
  .calendar-fields label:nth-child(5) {
    grid-column: auto;
    grid-template-columns: 1fr;
  }

  .calendar-term-grid {
    grid-template-columns: 1fr;
  }

  .schedule-toggle {
    width: 100%;
  }

  .schedule-toggle a {
    flex: 0 0 auto;
  }

  .profile-chart-column {
    min-height: 150px;
  }

  .data-table {
    min-width: 720px;
    font-size: 0.84rem;
  }
}

/* Source : pages/domain-36.css */

@media (max-width: 760px) {
  .bulletin-edit-table {
    display: block;
    min-width: 0;
  }

  .bulletin-edit-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }

  .bulletin-edit-table tbody,
  .bulletin-edit-table tr,
  .bulletin-edit-table th,
  .bulletin-edit-table td {
    display: block;
    width: 100%;
  }

  .bulletin-edit-table tr {
    margin-block: 0 1rem;
    padding: 0.8rem;
    border: 1px solid var(--line);
    border-radius: 0.8rem;
  }

  .bulletin-edit-table td:not(.bulletin-comment-cell) {
    display: inline-block;
    width: auto;
    margin-inline-end: 0.75rem;
  }

  .bulletin-bulk-dialog {
    width: min(92vw, 34rem);
  }
}

.planning-projection {
  margin-block: 1rem;
}

.planning-projection nav,
.planning-projection-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  align-items: end;
}

.planning-projection nav a {
  padding: 0.45rem 0.65rem;
  border: 1px solid var(--line);
  border-radius: 0.55rem;
}

.planning-projection-filters label {
  display: grid;
  gap: 0.25rem;
  min-width: 9rem;
}

.planning-progression-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  gap: 0.75rem;
  margin: 1rem 0;
}

.planning-progression-summary > div {
  padding: 0.75rem;
  border: 1px solid var(--line);
  border-radius: 0.75rem;
  background: var(--surface-soft);
}

.planning-progression-summary dt {
  color: var(--muted);
  font-size: 0.82rem;
}

.planning-progression-summary dd {
  margin: 0.25rem 0 0;
  font-size: 1.15rem;
  font-weight: 700;
}

.planning-conflicts {
  margin-block: 0.75rem;
  padding: 0.85rem;
  border: 2px solid var(--danger, #a50021);
  border-radius: 0.75rem;
}

@media (max-width: 760px) {
  .planning-projection-filters,
  .planning-projection-filters label,
  .planning-projection-filters select,
  .planning-projection-filters input,
  .planning-projection-filters button {
    width: 100%;
  }
}

/* Source : pages/domain-37.css */
/* Auteur fonctionnel : Baptiste RENNESON BOUTARD — tags et compétences des questions. */
[data-question-tags],
.question-tags-card,
.question-tags-card form,
.question-tags-card label {
  min-width: 0;
}

.question-tags-card {
  display: block;
  margin-block: 16px;
  padding: 18px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.question-tags-card form {
  display: grid;
  gap: 12px;
}

.question-tags-card input,
.question-tags-card select {
  width: 100%;
  max-width: 100%;
}

.question-tags-card .table-scroll {
  max-width: 100%;
  overflow-x: auto;
}

.question-tags-card table {
  min-width: 620px;
}

@media (prefers-reduced-motion: reduce) {
  .question-tags-card * {
    scroll-behavior: auto;
  }
}

/* Source : pages/domain-38.css */
/* Auteur fonctionnel : Baptiste RENNESON BOUTARD — formulaire et calendrier des chapitres. */
.chapter-actions,
.chapter-calendar-nav,
.chapter-calendar .section-heading nav,
.chapter-recipient-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.chapter-advanced {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius-small);
}

.chapter-advanced summary {
  cursor: pointer;
  font-weight: 800;
}

.chapter-calendar {
  margin-block: 20px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.chapter-calendar-nav {
  justify-content: space-between;
  margin-block: 12px;
}

.chapter-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(120px, 1fr));
  gap: 8px;
  overflow-x: auto;
}

.chapter-calendar-day {
  min-height: 120px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: var(--radius-small);
}

.chapter-calendar-day.is-today {
  outline: 3px solid var(--focus);
  outline-offset: 2px;
}

.chapter-calendar-event {
  display: grid;
  gap: 2px;
  margin-block: 6px;
  padding: 6px;
  border-radius: 8px;
  background: var(--surface-soft);
}

.chapter-calendar-event.has-conflict {
  border: 2px solid var(--danger);
}

.chapter-calendar-event em {
  color: var(--danger);
  font-weight: 800;
}

@media (max-width: 760px) {
  .chapter-actions > *,
  .chapter-calendar-nav > * {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .chapter-calendar *,
  .chapter-form * {
    scroll-behavior: auto;
    transition: none !important;
  }
}

/* Source : pages/domain-39.css */
/* Interface identifiants V0.16.9 : contenir textes sensibles et actions sur petit écran. */
.credentials-interface,
.credentials-interface .page-heading,
.credentials-interface .page-heading > *,
.credentials-interface .entry-card,
.credentials-interface form,
.credentials-interface label {
  min-width: 0;
  max-width: 100%;
}

.credentials-interface h1,
.credentials-interface h2,
.credentials-interface h3,
.credentials-interface .status-pill,
.credentials-interface dd {
  overflow-wrap: anywhere;
}

.credentials-interface .status-pill {
  white-space: normal;
}

@media (max-width: 640px) {
  .credentials-interface .page-heading,
  .credentials-interface .page-actions,
  .credentials-interface .inline-admin-form {
    align-items: stretch;
    display: flex;
    flex-direction: column;
  }

  .credentials-interface .page-actions .button,
  .credentials-interface form .button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .credentials-interface details,
  .credentials-interface .entry-card {
    scroll-behavior: auto;
    transition: none;
  }
}

/* Source : pages/domain-40.css */
/* Images QCM V0.16.11 : aperçus bornés, formulaires lisibles et mobile sans débordement. */
.qcm-media-heading > *, .qcm-media-card, .qcm-media-card form { min-width: 0; max-width: 100%; }

.qcm-media-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 28rem), 1fr)); }
.qcm-media-preview { background: var(--surface-soft); border: 1px solid var(--line); border-radius: var(--radius-md); display: block; max-height: 18rem; max-width: 100%; object-fit: contain; width: auto; }
.qcm-media-card h2, .qcm-media-card dd { overflow-wrap: anywhere; }
@media (max-width: 640px) { .qcm-media-heading, .qcm-media-heading .page-actions { align-items: stretch; display: flex; flex-direction: column; } .qcm-media-card .button { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .qcm-media-card details { scroll-behavior: auto; transition: none; } }

/* Source : pages/domain-41.css */
/* Compétences V0.18.x : formulaires, preuves et synthèses sans débordement mobile. */
.competency-validation-card {
  grid-template-columns: minmax(0, 1fr);
}

.competency-validation-panel form,
.competency-validation-panel label,
.competency-validation-panel fieldset,
.competency-validation-panel input,
.competency-validation-panel select,
.competency-validation-panel textarea,
.competency-validation-card form,
.competency-validation-card label,
.competency-validation-card fieldset,
.competency-validation-card input,
.competency-validation-card select,
.competency-validation-card textarea {
  min-width: 0;
  max-width: 100%;
}

.competency-validation-panel fieldset,
.competency-validation-card fieldset {
  display: grid;
  gap: 8px;
}

@media (max-width: 640px) {
  .competency-validation-panel .button,
  .competency-validation-card .button {
    width: 100%;
  }
}

/* Source : pages/domain-42.css */
/* Auteur fonctionnel : Baptiste RENNESON BOUTARD — Oraux et projets de groupe. */
.oral-project-card {
  grid-template-columns: minmax(0, 1fr);
}

.oral-project-workspace > *,
.oral-project-workspace form,
.oral-project-workspace fieldset,
.oral-project-workspace label,
.oral-project-workspace input,
.oral-project-workspace textarea,
.oral-project-workspace select {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
}

.oral-project-card > *,
.oral-project-card details,
.oral-project-card form,
.oral-project-card fieldset,
.oral-project-card label,
.oral-project-card input,
.oral-project-card textarea,
.oral-project-card select {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
}

.oral-project-card form {
  display: grid;
  gap: 0.75rem;
}

@media (max-width: 640px) {
  .oral-project-card .button-row,
  .oral-project-card .button-row form {
    align-items: stretch;
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Source : pages/domain-43.css */
/* Auteur fonctionnel : Baptiste RENNESON BOUTARD — Tableau de progression par compétence. */
.competency-dashboard-filters,
.competency-dashboard-summary {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
}

.competency-dashboard-filters label,
.competency-dashboard-filters select {
  min-width: 0;
  max-width: 100%;
}

.competency-dashboard-filters select {
  width: 100%;
}

.competency-dashboard-summary {
  list-style: none;
  margin: 1rem 0;
  padding: 0;
}

.competency-dashboard-summary li,
.competency-state {
  border-radius: 0.65rem;
  padding: 0.5rem 0.75rem;
}

.competency-state-validated { background: #dff3e6; color: #175c34; }
.competency-state-in_progress { background: #e6efff; color: #244f93; }
.competency-state-not_observed { background: #eef0f3; color: #49515d; }
.competency-state-to_review { background: #fff0dc; color: #7a4511; }

.competency-dashboard-results pre {
  max-width: 28rem;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.competency-dashboard-results .table-wrapper {
  max-width: 100%;
  overflow-x: auto;
}

.competency-dashboard-results table {
  min-width: 48rem;
}

@media (prefers-reduced-motion: reduce) {
  .competency-dashboard-results * { scroll-behavior: auto; }
}

.annual-planner {
  margin: 1rem 0 1.5rem;
}

.annual-planner-grid,
.planning-alert-list {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
}

.annual-forecast-card,
.planning-alert {
  background: var(--surface, #fff);
  border: 1px solid var(--border-subtle, #d9dee7);
  border-radius: 0.8rem;
  padding: 1rem;
}

.annual-forecast-card > header,
.planning-alert {
  align-items: flex-start;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
}

.annual-forecast-card h3,
.planning-alert p {
  margin: 0.3rem 0;
}

.annual-forecast-card dl {
  display: grid;
  gap: 0.55rem;
  grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
}

.annual-forecast-card dl div {
  background: var(--surface-muted, #f5f7fa);
  border-radius: 0.55rem;
  padding: 0.6rem;
}

.annual-forecast-card dt {
  color: var(--text-muted, #596273);
  font-size: 0.8rem;
}

.annual-forecast-card dd {
  font-weight: 700;
  margin: 0.2rem 0 0;
}

.planning-alert.is-acknowledged {
  border-color: #7cad8a;
}

@media (max-width: 42rem) {
  .annual-forecast-card > header,
  .planning-alert {
    align-items: stretch;
    flex-direction: column;
  }

  .annual-forecast-card .planning-actions,
  .annual-forecast-card .planning-actions form,
  .planning-alert form,
  .planning-alert input,
  .planning-alert button {
    width: 100%;
  }
}
