/* Supplemental reading styles; existing modal and administrator behavior is unchanged. */
:is(#planModal, #helperModal),
#teacherTools .admin-review {
  --secondary-ink: #172b2b;
  --secondary-muted: #52655e;
  --secondary-line: #d6e0d8;
  --secondary-accent: #145e4b;
  --secondary-paper: #fafbf9;
  color: var(--secondary-ink);
  font-size: calc(18px * var(--reading-scale, 1));
  line-height: 1.65;
  overflow-wrap: anywhere;
}

:is(#planModal, #helperModal) {
  padding: 16px;
  background: rgb(23 43 43 / 48%);
}

:is(#planModal, #helperModal) .modal-panel {
  box-sizing: border-box;
  width: min(1520px, 100%);
  min-width: 0;
  max-width: 100%;
  max-height: calc(100dvh - 32px);
  border-color: var(--secondary-line);
  border-radius: 16px;
  background: var(--secondary-paper);
  box-shadow: 0 24px 72px rgb(23 43 43 / 20%);
}

:is(#planModal, #helperModal) .modal-head {
  min-width: 0;
  gap: 16px;
  padding: 18px 24px;
  background: var(--secondary-accent);
  color: #fff;
  font-size: calc(22px * var(--reading-scale, 1));
  line-height: 1.4;
}

:is(#planModal, #helperModal) .modal-head > strong { min-width: 0; word-break: keep-all; overflow-wrap: anywhere; }
:is(#planModal, #helperModal) .modal-head .btn {
  flex: 0 0 auto;
  width: auto;
  color: var(--secondary-accent) !important;
  background: #fff !important;
  border-color: #fff !important;
  box-shadow: none;
}

:is(#planModal, #helperModal) .modal-body {
  min-width: 0;
  padding: 24px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

:is(#planModal, #helperModal) .select-row { gap: 16px; }
:is(#planModal, #helperModal) .select-row > div { min-width: 0; }
#planModal .select-row { grid-template-columns: minmax(0, 1fr) auto; }
#helperModal .modal-body > .select-row {
  grid-template-columns: minmax(0, .7fr) minmax(0, 1fr) minmax(0, 1.3fr) auto;
}

:is(#planModal, #helperModal) label {
  margin-bottom: 8px;
  color: var(--secondary-muted);
  font-size: calc(16px * var(--reading-scale, 1));
  line-height: 1.5;
}

:is(#planModal, #helperModal) :is(select, input, .btn) {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  min-height: 48px;
  height: auto;
  padding: 11px 16px;
  border-radius: 9px;
  font-family: inherit;
  font-size: calc(18px * var(--reading-scale, 1));
  line-height: 1.5;
}

:is(#planModal, #helperModal) :is(select, input) {
  width: 100%;
  border: 1px solid #bdcdc2;
  color: var(--secondary-ink);
  background: #fff;
}

:is(#planModal, #helperModal) .btn:not(.secondary) {
  border-color: var(--secondary-accent) !important;
  background: var(--secondary-accent) !important;
  color: #fff !important;
  box-shadow: none;
}

:is(#planModal, #helperModal) .modal-head .btn:not(.secondary) {
  border-color: #fff !important;
  background: #fff !important;
  color: var(--secondary-accent) !important;
}

:is(#planModal, #helperModal) .btn.secondary {
  color: var(--secondary-accent) !important;
  border-color: #bdcdc2 !important;
  background: #fff !important;
  box-shadow: none;
}

#planModal #loadPlanBtn,
#helperModal #loadHelperBtn { min-width: 0; min-height: 48px; padding: 11px 20px; white-space: normal; }
:is(#planModal, #helperModal) .toolbar { flex-wrap: wrap; gap: 12px; }
:is(#planModal, #helperModal) .toolbar .btn { white-space: normal; }
:is(#planModal, #helperModal) .status {
  margin-top: 18px;
  padding: 14px 16px;
  font-size: calc(16px * var(--reading-scale, 1));
  line-height: 1.6;
}

/* Scroll the body when enlarged controls consume the viewport; tables own their width. */
#planModal #planRenderArea,
#helperModal #helperRenderArea {
  display: block;
  flex: 0 0 auto;
  min-width: 0;
  min-height: 0;
  max-width: 100%;
  padding-right: 0;
  overflow: visible !important;
  box-shadow: none !important;
}

#planModal #planRenderArea > .summary-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
  gap: 12px;
  margin: 20px 0;
}

#helperModal #helperRenderArea > .student-strip {
  grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, .7fr));
  gap: 12px;
  margin-top: 20px;
}

:is(#planModal, #helperModal) .strip-cell {
  min-width: 0;
  padding: 18px;
  border-color: var(--secondary-line);
  background: #fff;
}
:is(#planModal, #helperModal) .strip-label {
  color: var(--secondary-muted);
  font-size: calc(16px * var(--reading-scale, 1));
  line-height: 1.5;
}
:is(#planModal, #helperModal) .strip-value {
  color: var(--secondary-ink);
  font-size: calc(23px * var(--reading-scale, 1));
  line-height: 1.45;
  overflow-wrap: anywhere;
}

#planModal .plan-matrix-wrap {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 0;
  max-height: min(70dvh, 900px);
  margin-top: 18px;
  border-color: var(--secondary-line);
  border-radius: 12px;
  background: #fff;
  overflow: auto !important;
}
#planModal .plan-matrix-table {
  min-width: calc(1440px * var(--reading-scale, 1));
  width: 100%;
}
#planModal .plan-matrix-table :is(th, td) {
  padding: 16px;
  color: var(--secondary-ink);
  border-color: var(--secondary-line);
  font-size: calc(17px * var(--reading-scale, 1));
  line-height: 1.6;
}
#planModal .plan-matrix-table thead th,
#planModal .plan-matrix-table :is(th, td):first-child { background: #edf3ed; }
#planModal .plan-matrix-table :is(th, td):first-child {
  min-width: calc(112px * var(--reading-scale, 1));
  width: calc(112px * var(--reading-scale, 1));
}
#planModal .plan-matrix-table td { min-width: calc(196px * var(--reading-scale, 1)); }
#planModal .plan-semester-head strong,
#planModal .plan-subject-name,
#planModal .plan-course-list li {
  color: var(--secondary-ink);
  font-size: calc(18px * var(--reading-scale, 1));
  font-weight: 750;
  line-height: 1.55;
}
#planModal .plan-semester-head span,
#planModal .plan-subject-meta,
#planModal .plan-block-head,
#planModal .plan-block-foot,
#planModal .plan-credit-cell span {
  color: var(--secondary-muted);
  font-size: calc(15px * var(--reading-scale, 1));
  font-weight: 500;
  line-height: 1.6;
}
#planModal .plan-block { gap: 12px; padding: 14px; border-color: #dce5dd; background: #fff; }
#planModal .plan-block.selection { border-color: #c6dccb; background: #f2f8f1; }
#planModal .plan-subject-stack { gap: 14px; }
#planModal .plan-subject-card { gap: 5px; }
#planModal .plan-block-foot { flex-wrap: wrap; border-color: var(--secondary-line); padding-top: 10px; }
#planModal .plan-credit-cell strong { color: var(--secondary-accent); font-size: calc(24px * var(--reading-scale, 1)); }

#helperModal #helperRenderArea .panel { min-width: 0; margin-top: 20px; padding: 22px; border-color: var(--secondary-line); box-shadow: none; }
#helperModal .section-title { flex-wrap: wrap; gap: 12px; }
#helperModal .section-title h3 { color: var(--secondary-ink); font-size: calc(22px * var(--reading-scale, 1)); line-height: 1.45; }
#helperModal .issue-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
#helperModal .issue-box { min-width: 0; padding: 18px; border-color: var(--secondary-line); background: var(--secondary-paper); }
#helperModal .issue-head { color: var(--secondary-accent); font-size: calc(17px * var(--reading-scale, 1)); line-height: 1.5; }
#helperModal .issue-box p,
#helperModal .panel > .muted { color: var(--secondary-ink); font-size: calc(18px * var(--reading-scale, 1)); line-height: 1.8; }
#helperModal .semester-list { min-width: 0; gap: 20px; }
#helperModal .semester-card { min-width: 0; border-color: var(--secondary-line); }
#helperModal .semester-card > header {
  flex-wrap: wrap;
  padding: 18px;
  color: var(--secondary-ink);
  background: #edf3ed;
  border-color: var(--secondary-line);
  font-size: calc(20px * var(--reading-scale, 1));
  line-height: 1.45;
}
#helperModal #helperRenderArea .table-wrap { max-width: 100%; min-width: 0; }
#helperModal #helperRenderArea .course-table { min-width: calc(1140px * var(--reading-scale, 1)); }
#helperModal #helperRenderArea .course-table :is(th, td) {
  padding: 16px 18px;
  color: var(--secondary-ink);
  font-size: calc(17px * var(--reading-scale, 1));
  line-height: 1.6;
  border-color: var(--secondary-line);
}
#helperModal #helperRenderArea .course-table th { background: #f3f6f1; font-size: calc(16px * var(--reading-scale, 1)); }
#helperModal :is(.badge, .course-kind-pill, .course-kind-legend span) { max-width: 100%; height: auto; font-size: calc(15px * var(--reading-scale, 1)); line-height: 1.5; padding: 5px 10px; white-space: normal; }
#helperModal :is(.course-kind-detail, .course-kind-sub) { font-size: calc(15px * var(--reading-scale, 1)); line-height: 1.55; }
#helperModal .helper-floating-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 16px; }
#helperModal .helper-floating-card { padding: 18px; }
#helperModal .helper-floating-name { color: var(--secondary-ink); font-size: calc(18px * var(--reading-scale, 1)); line-height: 1.6; }
#helperModal .helper-floating-meta { font-size: calc(16px * var(--reading-scale, 1)); font-weight: 500; line-height: 1.65; }

/* Administrator review remains a scoped, permission-controlled component. */
#teacherTools .admin-review {
  --review-ink: var(--secondary-ink);
  --review-muted: var(--secondary-muted);
  --review-line: var(--secondary-line);
  --review-teal: var(--secondary-accent);
  min-width: 0;
  max-width: 100%;
  margin-top: 28px;
  padding-top: 28px;
}
#teacherTools .admin-review :is(.admin-review__heading, .admin-review__content, .admin-review__field, .admin-review__year) { min-width: 0; max-width: 100%; }
#teacherTools .admin-review__header { align-items: flex-start; flex-wrap: wrap; }
#teacherTools .admin-review__eyebrow { font-size: calc(15px * var(--reading-scale, 1)); }
#teacherTools .admin-review__heading h3 { font-size: calc(25px * var(--reading-scale, 1)); line-height: 1.45; letter-spacing: -.02em; }
#teacherTools .admin-review__heading p { font-size: calc(18px * var(--reading-scale, 1)); line-height: 1.7; }
#teacherTools .admin-review :is(button, input, select) { box-sizing: border-box; max-width: 100%; min-height: 48px; height: auto; font-size: calc(17px * var(--reading-scale, 1)); line-height: 1.5; }
#teacherTools .admin-review :is(input, select) { min-width: 0; padding: 12px 14px; border-color: #bdcdc2; }
#teacherTools .admin-review .btn { min-width: 0; padding: 11px 18px; white-space: normal; }
#teacherTools .admin-review .btn:not(.secondary) { color: #fff !important; background: var(--secondary-accent) !important; border-color: var(--secondary-accent) !important; box-shadow: none; }
#teacherTools .admin-review .btn.secondary { color: var(--secondary-accent) !important; background: #fff !important; border-color: #bdcdc2 !important; box-shadow: none; }
#teacherTools .admin-review__controls { flex-wrap: wrap; gap: 16px; padding: 22px; background: var(--secondary-paper); }
#teacherTools .admin-review__year { width: auto; flex: 1 1 220px; }
#teacherTools .admin-review label { color: var(--secondary-muted); font-size: calc(16px * var(--reading-scale, 1)); line-height: 1.5; }
#teacherTools .admin-review__hint { margin-bottom: 0; font-size: calc(15px * var(--reading-scale, 1)); }
#teacherTools .admin-review__status { font-size: calc(17px * var(--reading-scale, 1)); line-height: 1.7; }
#teacherTools .admin-review__summary { gap: 14px; }
#teacherTools .admin-review__metric { min-width: 0; flex-direction: column; align-items: flex-start; padding: 20px; gap: 10px; }
#teacherTools .admin-review__metric > span { color: var(--secondary-muted); font-size: calc(16px * var(--reading-scale, 1)); }
#teacherTools .admin-review__metric strong { font-size: calc(30px * var(--reading-scale, 1)); line-height: 1.3; overflow-wrap: anywhere; }
#teacherTools .admin-review__metric small { color: var(--secondary-muted); font-size: calc(15px * var(--reading-scale, 1)); }
#teacherTools .admin-review__filters { gap: 16px; }
#teacherTools .admin-review__tabs { min-width: 0; max-width: 100%; flex-wrap: wrap; gap: 5px; background: #edf3ed; }
#teacherTools .admin-review__tabs button { flex: 1 1 auto; padding: 12px 16px; white-space: normal; color: var(--secondary-muted); }
#teacherTools .admin-review__tabs button[aria-pressed="true"] { color: var(--secondary-accent); box-shadow: 0 2px 5px rgb(23 43 43 / 8%); }
#teacherTools .admin-review__field { flex: 1 1 210px; width: auto; }
#teacherTools .admin-review__search { flex-basis: 240px; }
#teacherTools .admin-review__list-head { flex-wrap: wrap; align-items: baseline; margin-top: 24px; font-size: calc(16px * var(--reading-scale, 1)); }
#teacherTools .admin-review__list-head > span { color: var(--secondary-muted); font-size: calc(15px * var(--reading-scale, 1)); }
#teacherTools .admin-review__table-wrap { min-width: 0; max-width: 100%; overflow: auto; overscroll-behavior: contain; }
#teacherTools .admin-review .admin-review__table { min-width: 880px; }
#teacherTools .admin-review .admin-review__table th { padding: 16px; font-size: calc(16px * var(--reading-scale, 1)); line-height: 1.5; color: var(--secondary-muted); background: #edf3ed; }
#teacherTools .admin-review__table th:nth-child(1) { width: 18%; }
#teacherTools .admin-review__table th:nth-child(2) { width: 18%; }
#teacherTools .admin-review__table th:nth-child(3) { width: 20%; }
#teacherTools .admin-review .admin-review__table td { padding: 20px 16px; font-size: calc(18px * var(--reading-scale, 1)); line-height: 1.65; border-color: var(--secondary-line); }
#teacherTools .admin-review__student { min-width: 0; min-height: 48px; gap: 5px; }
#teacherTools .admin-review__student > span { color: var(--secondary-accent); font-size: calc(17px * var(--reading-scale, 1)); }
#teacherTools .admin-review__student strong { color: var(--secondary-ink); font-size: calc(18px * var(--reading-scale, 1)); }
#teacherTools .admin-review__credits { font-size: calc(21px * var(--reading-scale, 1)); white-space: normal; }
#teacherTools .admin-review__credits small { color: var(--secondary-muted); font-size: calc(16px * var(--reading-scale, 1)); }
#teacherTools .admin-review__badge { max-width: 100%; padding: 6px 10px; font-size: calc(16px * var(--reading-scale, 1)); white-space: normal; }
#teacherTools .admin-review__reasons strong { color: var(--secondary-ink); font-size: calc(17px * var(--reading-scale, 1)); line-height: 1.6; }
#teacherTools .admin-review__reasons span { color: var(--secondary-muted); font-size: calc(16px * var(--reading-scale, 1)); line-height: 1.7; }
#teacherTools .admin-review__reasons li + li { margin-top: 14px; }
#teacherTools .admin-review__muted { color: var(--secondary-muted); font-size: calc(16px * var(--reading-scale, 1)); }
#teacherTools .admin-review__empty { color: var(--secondary-muted); background: var(--secondary-paper); font-size: calc(18px * var(--reading-scale, 1)); }
#teacherTools .admin-review__pagination { flex-wrap: wrap; gap: 14px; }
#teacherTools .admin-review__pagination > span { color: var(--secondary-muted); font-size: calc(16px * var(--reading-scale, 1)); }
#teacherTools .admin-review .admin-review__pagination .btn { min-height: 48px; padding: 10px 16px; font-size: calc(16px * var(--reading-scale, 1)); }

:is(#planModal, #helperModal) :is(button, input, select):focus-visible,
#teacherTools .admin-review :is(button, input, select):focus-visible { outline: 3px solid #7eac93; outline-offset: 3px; }

@media (max-width: 1000px) {
  #helperModal .modal-body > .select-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #helperModal #helperRenderArea > .student-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #teacherTools .admin-review__summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  :is(#planModal, #helperModal) { padding: 8px; }
  :is(#planModal, #helperModal) .modal-panel { max-height: calc(100dvh - 16px); border-radius: 12px; }
  :is(#planModal, #helperModal) .modal-head { gap: 10px; padding: 16px; font-size: calc(19px * var(--reading-scale, 1)); }
  :is(#planModal, #helperModal) .modal-head .btn { padding: 9px 12px; font-size: calc(16px * var(--reading-scale, 1)); }
  :is(#planModal, #helperModal) .modal-body { padding: 16px; scrollbar-gutter: auto; }
  #planModal .select-row,
  #helperModal .modal-body > .select-row,
  #helperModal #helperRenderArea > .student-strip,
  #helperModal .issue-grid { grid-template-columns: minmax(0, 1fr); }
  #planModal #planRenderArea > .summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 16px 0; }
  #planModal #planRenderArea > .summary-grid .strip-cell { padding: 14px; }
  #planModal #planRenderArea > .summary-grid .strip-label { font-size: calc(16px * var(--reading-scale, 1)); word-break: keep-all; overflow-wrap: anywhere; }
  #planModal #planRenderArea > .summary-grid .strip-value { font-size: calc(25px * var(--reading-scale, 1)); line-height: 1.35; }
  #planModal .plan-matrix-wrap { max-height: 65dvh; min-height: 0; scrollbar-gutter: auto; }
  #planModal .plan-matrix-table :is(th, td):first-child { min-width: calc(90px * var(--reading-scale, 1)); width: calc(90px * var(--reading-scale, 1)); }
  #helperModal #helperRenderArea .panel { padding: 16px; }
  #helperModal .issue-box { padding: 14px; }
  #helperModal #helperRenderArea .table-wrap { scrollbar-gutter: auto; }
  #teacherTools .admin-review__header { gap: 18px; }
  #teacherTools .admin-review__heading h3 { font-size: calc(22px * var(--reading-scale, 1)); }
  #teacherTools .admin-review__controls { padding: 16px; }
  #teacherTools .admin-review__controls .btn { width: 100%; }
  #teacherTools .admin-review__metric { padding: 16px 12px; }
  #teacherTools .admin-review__metric strong { font-size: calc(28px * var(--reading-scale, 1)); }
  #teacherTools .admin-review__tabs { box-sizing: border-box; width: 100%; }
  #teacherTools .admin-review__tabs button { flex: 1 1 120px; }
  #teacherTools .admin-review__table-wrap { border: 0; overflow: visible; }
  #teacherTools .admin-review .admin-review__table { display: block; min-width: 0; }
  #teacherTools .admin-review__table tbody { display: block; }
  #teacherTools .admin-review__table thead { display: none; }
  #teacherTools .admin-review__table tr { display: block; border: 1px solid var(--secondary-line); border-radius: 10px; overflow: hidden; }
  #teacherTools .admin-review__table tr + tr { margin-top: 16px; }
  #teacherTools .admin-review .admin-review__table td { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 16px; }
  #teacherTools .admin-review__table td::before { content: attr(data-label); font-size: calc(15px * var(--reading-scale, 1)); line-height: 1.5; color: var(--secondary-muted); }
  #teacherTools .admin-review__student { flex-wrap: wrap; gap: 8px 14px; }
  #teacherTools .admin-review__pagination .btn { width: auto; }
}
