/* Shared visual language for the existing accessible application layouts. */
body.curriculum-app.readable-app {
  --page: #f7f6f2;
  --ink: #252943;
  --muted: #737585;
  --line: #dce2e7;
  --blue: #303653;
  --blue-deep: #23283f;
  --blue-soft: #eff3f6;
  --teal: #7664a4;
  --teal-soft: #f0edf7;
  --green: #70608f;
  --green-soft: #f2eff8;
  --shadow: 0 4px 22px #25294306;
  background: var(--page);
  color: var(--ink);
  font-size: calc(16px * var(--reading-scale, 1));
  letter-spacing: -.015em;
  line-height: 1.65;
}
body.curriculum-app.readable-app .page { width: min(1440px, calc(100% - 80px)); }
body.curriculum-app.readable-app :is(.panel, .modal-panel) { border-color: var(--line); border-radius: 16px; box-shadow: var(--shadow); }
body.curriculum-app.readable-app :is(input, select) { min-height: 46px; padding: 10px 14px; border-color: #ccd5dc; border-radius: 9px; color: var(--ink); font-size: calc(16px * var(--reading-scale, 1)); transition: border-color .16s, box-shadow .16s; }
body.curriculum-app.readable-app :is(input, select):focus { border-color: var(--teal); box-shadow: 0 0 0 3px #7664a414; }
body.curriculum-app.readable-app label { color: #526273; font-size: calc(14px * var(--reading-scale, 1)); font-weight: 600; }
body.curriculum-app.readable-app .btn,
body.curriculum-app.readable-app .btn:not(.secondary):not(.ghost) { min-height: 44px; border: 1px solid var(--blue) !important; border-radius: 9px; padding: 10px 18px; font-size: calc(14px * var(--reading-scale, 1)); font-weight: 600; background: var(--blue) !important; color: #fff !important; box-shadow: none; transition: background .16s, border-color .16s; }
body.curriculum-app.readable-app .btn.secondary { border-color: #ccd5dc !important; background: #fff !important; color: var(--blue) !important; }
body.curriculum-app.readable-app .btn:not(.secondary):not(.ghost):hover { background: #4b4f7b !important; border-color: #4b4f7b !important; }
body.curriculum-app.readable-app .btn.secondary:hover { background: #eff3f6 !important; color: var(--blue) !important; border-color: #9eb0bd !important; }
body.curriculum-app.readable-app :focus-visible { outline-color: var(--teal); }
body.curriculum-app.readable-app .badge { font-size: calc(13px * var(--reading-scale, 1)); border-radius: 5px; font-weight: 600; }
body.curriculum-app.readable-app .badge.good { color: #65538f; background: #f0edf7; border-color: #e0d9ee; }
body.curriculum-app.readable-app :is(th, td) { color: var(--ink); }

/* A quiet institutional header and consistent controls. */
body.curriculum-app.readable-app .app-topbar { padding: 20px 28px; border-bottom-color: var(--line); gap: 18px 26px; }
body.curriculum-app.readable-app .app-brand { min-width: 0; max-width: 100%; gap: 16px; }
body.curriculum-app.readable-app .app-brand > div:last-child { min-width: 0; }
body.curriculum-app.readable-app .app-brand .app-logo { width: 60px !important; height: 60px !important; padding: 6px !important; overflow: hidden !important; }
body.curriculum-app.readable-app .app-title { width: calc(212px * var(--reading-scale, 1)); max-width: 100%; color: var(--blue); font-size: calc(21px * var(--reading-scale, 1)); font-weight: 700; letter-spacing: -.045em; }
body.curriculum-app.readable-app .app-school { color: var(--muted); font-size: calc(12px * var(--reading-scale, 1)); font-weight: 500; }
body.curriculum-app.readable-app :is(.logo-box, .app-logo),
body.curriculum-app.readable-app :is(.logo-box, .app-logo) img { animation: none !important; transform: none !important; transition: none !important; }
body.curriculum-app.readable-app .app-navigation { gap: 24px; }
body.curriculum-app.readable-app .app-navigation button { color: var(--muted); min-height: 42px; padding: 10px 0; border-bottom-width: 2px; font-size: calc(15px * var(--reading-scale, 1)); font-weight: 600; }
body.curriculum-app.readable-app .app-navigation button[aria-current] { color: var(--blue); border-bottom-color: var(--teal); }
body.curriculum-app.readable-app .app-navigation button:hover { color: var(--blue); }
body.curriculum-app.readable-app .reading-controls { border: 1px solid #e3e7ea; border-radius: 8px; padding: 2px 4px 2px 10px; color: var(--muted); }
body.curriculum-app.readable-app .reading-controls > span { font-size: 12px; }
body.curriculum-app.readable-app .reading-controls button { width: 32px; min-height: 34px; font-size: 17px; color: var(--blue); }
body.curriculum-app.readable-app .reading-controls button:hover { background: var(--blue-soft); border-color: transparent; }
body.curriculum-app.readable-app .reading-controls button:disabled { color: #9aa6b0; }
body.curriculum-app.readable-app .app-mode-switch { color: var(--muted); font-size: 12px; border-color: var(--line); }
body.curriculum-app.readable-app .app-context { padding: 16px 0 8px; }
body.curriculum-app.readable-app .app-external-links #openCourseSiteBtn {
  min-height: 54px;
  min-width: 224px;
  padding: 13px 26px;
  border: 1px solid #776491 !important;
  border-radius: 12px;
  background: linear-gradient(110deg, #414566, #766197 72%, #9b7d92) !important;
  background-size: 180% 100% !important;
  color: #fff !important;
  font-size: calc(17px * var(--reading-scale, 1));
  font-weight: 700;
  box-shadow: 0 6px 18px #65518226 !important;
}
body.curriculum-app.readable-app .app-external-links #openCourseSiteBtn:hover {
  background-position: 100% 50% !important;
  color: #fff !important;
  border-color: #a291b4 !important;
  box-shadow: 0 9px 23px #65518238 !important;
}
body.curriculum-app.readable-app .mode-text { color: var(--muted); font-size: calc(13px * var(--reading-scale, 1)); }
body.curriculum-app.readable-app #status { border-radius: 9px; font-size: calc(14px * var(--reading-scale, 1)); }
body.curriculum-app.readable-app :is(.status.ok, .gate-status.ok) { color: #675583; background: #f3f0f8; border-color: #e1d9ed; border-left-color: #9482b2; }
body.curriculum-app.readable-app .site-footer { color: #74808a; font-size: calc(12px * var(--reading-scale, 1)); margin: 36px auto 24px; }

/* The handwritten brand rests on the page above the login controls. */
body.curriculum-app.readable-app .gate { max-width: 620px; grid-template-columns: minmax(0, 1fr); justify-items: center; align-content: center; gap: 28px; min-height: calc(100dvh - 92px); padding: 44px 0 24px; }
body.curriculum-app.readable-app .gate-brand { display: flex; flex-direction: column; align-items: center; gap: 0; width: min(440px, 88%); margin: 0 0 6px; text-align: center; }
body.curriculum-app.readable-app .gate-school { width: 55%; margin: 0 0 5%; color: #78638b; font-size: calc(18px * var(--reading-scale, 1)); }
body.curriculum-app.readable-app .gate-card { width: 100%; padding: 26px; border-radius: 20px; border-color: #e0e4e6; box-shadow: 0 12px 44px #25294307; }
body.curriculum-app.readable-app .gate-title { width: 100%; margin: 0; color: var(--blue); font-size: calc(25px * var(--reading-scale, 1)); font-weight: 700; }
body.curriculum-app.readable-app .subline { font-size: calc(14px * var(--reading-scale, 1)); color: var(--muted); }
body.curriculum-app.readable-app .mode-row { gap: 12px; margin-top: 0; }
body.curriculum-app.readable-app .mode-btn { min-height: 100px; border-radius: 12px; padding: 20px 16px; border-color: #dce2e7 !important; color: var(--ink); font-size: calc(17px * var(--reading-scale, 1)); font-weight: 650; transition: border-color .16s, background .16s; }
body.curriculum-app.readable-app .mode-btn span { font-size: calc(12px * var(--reading-scale, 1)); line-height: 1.65; margin-top: 7px; color: var(--muted) !important; }
body.curriculum-app.readable-app .mode-btn:hover { border-color: #8ba9b4 !important; }
body.curriculum-app.readable-app .mode-btn.active { color: var(--blue) !important; background: #eff4f6 !important; border-color: #7b9aaa !important; box-shadow: inset 0 0 0 1px #7b9aaa; }
body.curriculum-app.readable-app .auth-box { border-color: var(--line); margin-top: 24px; }
body.curriculum-app.readable-app .auth-box h2 { color: var(--ink); font-size: calc(16px * var(--reading-scale, 1)); font-weight: 650; }
body.curriculum-app.readable-app .gate-help { margin: 0; padding: 0; border: 0; color: var(--muted); font-size: calc(12px * var(--reading-scale, 1)); }
body.curriculum-app.readable-app .gate-card .env-note:empty { display: none; }

/* Curriculum: stronger hierarchy, smaller badges, and fine dividers. */
body .student-dashboard.curriculum-board {
  --board-ink: var(--ink);
  --board-emerald: var(--blue);
  --board-muted: var(--muted);
  --board-line: var(--line);
  --board-paper: #fff;
  font-size: calc(16px * var(--reading-scale, 1)); gap: 24px;
}
body .student-dashboard.curriculum-board .board-overview { padding: 16px 0 2px; }
body .student-dashboard.curriculum-board .board-overview h2 { color: var(--ink); font-size: calc(30px * var(--reading-scale, 1)); font-weight: 700; }
body .student-dashboard.curriculum-board .board-overview p { font-size: calc(15px * var(--reading-scale, 1)); }
body .student-dashboard.curriculum-board h3 { font-size: calc(22px * var(--reading-scale, 1)); font-weight: 650; }
body .student-dashboard.curriculum-board :is(.board-outline-button, .board-view-toggle) { border-color: #c7d2da; color: var(--blue); border-radius: 9px; font-size: calc(14px * var(--reading-scale, 1)); font-weight: 600; }
body .student-dashboard.curriculum-board :is(.board-outline-button, .board-view-toggle):hover { background: var(--blue-soft); border-color: #8fa6b6; }
body .student-dashboard.curriculum-board .board-view-toggle[aria-pressed="true"] { color: #fff; }
body .student-dashboard.curriculum-board .board-summary { padding: 24px 8px; border-radius: 16px; box-shadow: var(--shadow); }
body .student-dashboard.curriculum-board .board-summary-item { border-color: var(--line); }
body .student-dashboard.curriculum-board .board-summary-item > span { font-size: calc(13px * var(--reading-scale, 1)); }
body .student-dashboard.curriculum-board .board-summary-item > strong { font-size: calc(32px * var(--reading-scale, 1)); font-weight: 700; margin-top: 7px; }
body .student-dashboard.curriculum-board .board-summary-item small { color: var(--muted); font-size: calc(19px * var(--reading-scale, 1)); font-weight: 500; }
body .student-dashboard.curriculum-board .board-summary-status strong { font-size: calc(18px * var(--reading-scale, 1)); font-weight: 650; }
body .student-dashboard.curriculum-board .board-summary-status div > span { font-size: calc(13px * var(--reading-scale, 1)); }
body .student-dashboard.curriculum-board .board-summary-status.is-good { color: #65538f; }
body .student-dashboard.curriculum-board .board-summary-status.is-good .board-status-symbol { color: #65538f; background: #f0edf7; }
body .student-dashboard.curriculum-board .board-status-symbol { color: #986c31; background: #fbf1df; font-size: 21px; }
body .student-dashboard.curriculum-board .board-alert-notice { background: #fbf5e9; border-color: #e9ddc6; border-radius: 10px; font-size: calc(14px * var(--reading-scale, 1)); }
body .student-dashboard.curriculum-board .board-year-tabs { background: #e9edf0; border: 1px solid #e0e5e8; padding: 5px; border-radius: 12px; gap: 4px; margin-bottom: 18px; }
body .student-dashboard.curriculum-board .board-year-tabs button { min-height: 48px; border: 0; border-radius: 8px; background: transparent; color: var(--muted); gap: 6px 12px; }
body .student-dashboard.curriculum-board .board-year-tabs button:hover { background: #e4e1ee; color: #625478; }
body .student-dashboard.curriculum-board .board-year-tabs strong { font-size: calc(17px * var(--reading-scale, 1)); font-weight: 650; }
body .student-dashboard.curriculum-board .board-year-tabs button > span { font-size: calc(13px * var(--reading-scale, 1)); }
body .student-dashboard.curriculum-board .board-year-tabs button[aria-pressed="true"] { color: var(--blue); background: #fff; box-shadow: 0 2px 5px #2529430b; }
body .student-dashboard.curriculum-board .board-semester { border-radius: 14px; box-shadow: var(--shadow); }
body .student-dashboard.curriculum-board .board-semester > header { background: #f9fafb; padding: 18px 22px; }
body .student-dashboard.curriculum-board .board-semester h4 { color: var(--ink); font-size: calc(19px * var(--reading-scale, 1)); font-weight: 650; }
body .student-dashboard.curriculum-board .board-semester > header p { color: var(--muted); font-size: calc(13px * var(--reading-scale, 1)); }
body .student-dashboard.curriculum-board .course-detail { border-color: #edf0f2; }
body .student-dashboard.curriculum-board .course-detail > summary { min-height: 66px; padding: 14px 22px; }
body .student-dashboard.curriculum-board .course-detail > summary:hover { background: #f6f8f9; }
body .student-dashboard.curriculum-board .course-detail[open] > summary { background: #f0f5f6; }
body .student-dashboard.curriculum-board .course-title { font-size: calc(17px * var(--reading-scale, 1)); font-weight: 600; }
body .student-dashboard.curriculum-board .course-group { color: var(--muted); font-size: calc(13px * var(--reading-scale, 1)); }
body .student-dashboard.curriculum-board .course-kind { min-height: 25px; border-radius: 5px; padding: 3px 8px; font-size: calc(12px * var(--reading-scale, 1)); font-weight: 550; }
body .student-dashboard.curriculum-board .course-kind.designated { color: #536b7c; background: #edf2f6; }
body .student-dashboard.curriculum-board .course-kind.selection { color: #716099; background: #f0edf7; }
body .student-dashboard.curriculum-board .course-kind.external { color: #6c6286; background: #f0edf6; }
body .student-dashboard.curriculum-board .course-credit { color: var(--blue); }
body .student-dashboard.curriculum-board .course-credit strong { font-size: calc(18px * var(--reading-scale, 1)); font-weight: 650; }
body .student-dashboard.curriculum-board .course-credit > span { color: var(--muted); font-size: calc(12px * var(--reading-scale, 1)); }
body .student-dashboard.curriculum-board .board-chevron { color: #8795a1; }
body .student-dashboard.curriculum-board .course-detail-body { background: #f8fafb; border-color: var(--line); }
body .student-dashboard.curriculum-board .course-detail-body dt { color: var(--muted); font-size: calc(13px * var(--reading-scale, 1)); }
body .student-dashboard.curriculum-board .course-detail-body dd { color: var(--ink); font-size: calc(15px * var(--reading-scale, 1)); }
body .student-dashboard.curriculum-board :is(.course-alert, .board-legend p, .board-section-note) { font-size: calc(13px * var(--reading-scale, 1)); }
body .student-dashboard.curriculum-board .board-legend { padding-top: 16px; }
body .student-dashboard.curriculum-board .board-disclosure { border-radius: 14px; box-shadow: var(--shadow); overflow: hidden; }
body .student-dashboard.curriculum-board .board-disclosure > summary { color: var(--ink); padding: 22px 24px; }
body .student-dashboard.curriculum-board .board-disclosure > summary:hover { background: #f9fafb; }
body .student-dashboard.curriculum-board .board-disclosure > summary > strong { font-size: calc(18px * var(--reading-scale, 1)); font-weight: 650; }
body .student-dashboard.curriculum-board :is(.board-disclosure-caption, .board-group-preview, .board-group-preview b) { font-size: calc(13px * var(--reading-scale, 1)); color: var(--muted); }
body .student-dashboard.curriculum-board .board-group-preview > span { color: var(--muted); }
body .student-dashboard.curriculum-board .board-group-preview b { color: var(--blue); }
body .student-dashboard.curriculum-board .board-disclosure-body { padding: 26px; border-color: var(--line); }
body .student-dashboard.curriculum-board .board-group-heading strong { font-size: calc(15px * var(--reading-scale, 1)); font-weight: 600; }
body .student-dashboard.curriculum-board .board-group-heading > span { font-size: calc(18px * var(--reading-scale, 1)); font-weight: 650; }
body .student-dashboard.curriculum-board :is(.board-group-heading strong small, .board-group-heading > span small, .board-group p) { color: var(--muted); font-size: calc(13px * var(--reading-scale, 1)); }
body .student-dashboard.curriculum-board .board-meter { height: 6px; background: #edf1f3; }
body .student-dashboard.curriculum-board .board-meter > span { background: #8876b5; }
body .student-dashboard.curriculum-board .board-group.needs-review .board-meter > span { background: #bf965e; }
body .student-dashboard.curriculum-board .dashboard-mark { font-size: calc(13px * var(--reading-scale, 1)); font-weight: 550; border-radius: 6px; }
body .student-dashboard.curriculum-board .dashboard-mark.is-good { color: #716099; background: #f0edf7; }
body .student-dashboard.curriculum-board .dashboard-advisory { background: #eef3f7; border-color: #dce6ed; border-radius: 10px; }
body .student-dashboard.curriculum-board .dashboard-advisory p { color: #617789; font-size: calc(13px * var(--reading-scale, 1)); }
body .student-dashboard.curriculum-board .dashboard-advisory > strong { color: #415e73; font-size: calc(14px * var(--reading-scale, 1)); }

/* Shared paper surfaces for teacher review and the two planning dialogs. */
body :is(#planModal, #helperModal),
body #teacherTools .admin-review { --secondary-ink: #252943; --secondary-muted: #737585; --secondary-line: #dce2e7; --secondary-accent: #303653; --secondary-paper: #f8f9fa; --review-ink: #252943; --review-muted: #737585; --review-line: #dce2e7; --review-teal: #7664a4; }
body.curriculum-app.readable-app #teacherTools { margin-top: 22px; padding: 30px; }
body.curriculum-app.readable-app #teacherTools h3 { color: var(--ink); font-size: calc(22px * var(--reading-scale, 1)); font-weight: 650; }
body.curriculum-app.readable-app .tools-description { color: var(--muted); font-size: calc(14px * var(--reading-scale, 1)); }
body #teacherTools .admin-review__eyebrow { color: var(--teal); font-size: calc(12px * var(--reading-scale, 1)); font-weight: 600; letter-spacing: .04em; }
body #teacherTools .admin-review__heading p { font-size: calc(14px * var(--reading-scale, 1)); }
body #teacherTools .admin-review :is(button, input, select) { min-height: 44px; font-size: calc(14px * var(--reading-scale, 1)); }
body #teacherTools .admin-review :is(label, .admin-review__hint, .admin-review__list-head, .admin-review__list-head > span, .admin-review__pagination > span) { font-size: calc(13px * var(--reading-scale, 1)); }
body #teacherTools .admin-review__controls { border-radius: 12px; padding: 20px; gap: 14px; }
body #teacherTools .admin-review__status { font-size: calc(14px * var(--reading-scale, 1)); }
body #teacherTools #adminReviewExportHint { display: block; margin: 0 0 14px; color: var(--muted); font-size: calc(12px * var(--reading-scale, 1)); }
body #teacherTools .admin-review__metric { border-radius: 12px; padding: 20px 22px; gap: 10px; }
body #teacherTools .admin-review__metric > span { font-size: calc(13px * var(--reading-scale, 1)); }
body #teacherTools .admin-review__metric strong { font-size: calc(30px * var(--reading-scale, 1)); font-weight: 650; }
body #teacherTools .admin-review__metric small { font-size: calc(13px * var(--reading-scale, 1)); }
body #teacherTools .admin-review__metric.is-attention { background: #fbf6ec; border-color: #e9ddc6; }
body #teacherTools .admin-review__metric.is-ready strong { color: var(--teal); }
body #teacherTools .admin-review__tabs { background: #eef1f4; border-color: var(--line); border-radius: 10px; }
body #teacherTools .admin-review__tabs button { padding: 10px 16px; border-radius: 7px; }
body #teacherTools .admin-review .admin-review__table { min-width: 820px; }
body #teacherTools .admin-review .admin-review__table th { padding: 14px 18px; background: #f4f6f8; font-size: calc(13px * var(--reading-scale, 1)); }
body #teacherTools .admin-review .admin-review__table td { padding: 18px; font-size: calc(15px * var(--reading-scale, 1)); }
body #teacherTools .admin-review__student > span { font-size: calc(14px * var(--reading-scale, 1)); }
body #teacherTools .admin-review__student strong { font-size: calc(15px * var(--reading-scale, 1)); }
body #teacherTools .admin-review__credits { font-size: calc(20px * var(--reading-scale, 1)); }
body #teacherTools .admin-review__credits small { font-size: calc(13px * var(--reading-scale, 1)); }
body #teacherTools .admin-review__badge { font-size: calc(12px * var(--reading-scale, 1)); padding: 5px 8px; }
body #teacherTools .admin-review__reasons strong { font-size: calc(14px * var(--reading-scale, 1)); font-weight: 600; }
body #teacherTools .admin-review :is(.admin-review__reasons span, .admin-review__muted) { font-size: calc(13px * var(--reading-scale, 1)); }
body #teacherTools .admin-review__reasons li + li { margin-top: 10px; }
body :is(#planModal, #helperModal) { background: #15283c66; backdrop-filter: blur(4px); padding: 24px; }
body :is(#planModal, #helperModal) .modal-panel { border-radius: 18px; max-height: calc(100dvh - 48px); box-shadow: 0 24px 80px #15283c33; }
body :is(#planModal, #helperModal) .modal-head { background: #fff; color: var(--blue); border-bottom: 1px solid var(--line); padding: 20px 26px; font-size: calc(21px * var(--reading-scale, 1)); }
body.curriculum-app.readable-app :is(#planModal, #helperModal) .modal-head .btn { color: var(--muted) !important; border-color: var(--line) !important; background: #f8fafb !important; min-height: 38px; padding: 6px 14px; }
body :is(#planModal, #helperModal) .modal-body { background: #f8f9fa; padding: 26px; }
body :is(#planModal, #helperModal) :is(input, select, .btn) { min-height: 44px; font-size: calc(15px * var(--reading-scale, 1)); }
body :is(#planModal, #helperModal) :is(label, .status, .strip-label) { font-size: calc(13px * var(--reading-scale, 1)); }
body :is(#planModal, #helperModal) .strip-cell { border-radius: 12px; }
body :is(#planModal, #helperModal) .strip-value { font-size: calc(21px * var(--reading-scale, 1)); }
body #planModal .plan-matrix-table thead th,
body #planModal .plan-matrix-table :is(th, td):first-child { background: #eef2f5; }
body #planModal .plan-block.selection { background: #f3f0f8; border-color: #e1dbee; }
body #helperModal .semester-card > header { background: #efedf5; color: var(--ink); font-size: calc(18px * var(--reading-scale, 1)); }
body #helperModal #helperRenderArea .course-table th { background: #f2f1f6; font-size: calc(13px * var(--reading-scale, 1)); }
body #helperModal #helperRenderArea .course-table td { font-size: calc(15px * var(--reading-scale, 1)); }
body #helperModal :is(.badge, .course-kind-pill, .course-kind-legend span) { font-size: calc(12px * var(--reading-scale, 1)); }
body #helperModal :is(.issue-box p, .panel > .muted) { font-size: calc(15px * var(--reading-scale, 1)); }
body :is(#helperModal, #planModal) .course-kind-pill.designated,
body :is(#helperModal, #planModal) .course-kind-legend .designated { color: #59617a; background: #eef0f6; border-color: #dce0ec; }
body :is(#helperModal, #planModal) .course-kind-pill.selection,
body :is(#helperModal, #planModal) .course-kind-legend .selection { color: #70608f; background: #f1edf7; border-color: #e2d9ef; }
body :is(#helperModal, #planModal) .course-kind-sub.selection { color: #70608f; }
body #planModal :is(.plan-semester-head strong, .plan-subject-name, .plan-course-list li) { font-size: calc(15px * var(--reading-scale, 1)); }
body #planModal :is(.plan-semester-head span, .plan-subject-meta, .plan-block-head, .plan-block-foot, .plan-credit-cell span) { font-size: calc(13px * var(--reading-scale, 1)); }

@media (min-width: 1180px) {
  body.curriculum-app.readable-app .app-navigation { order: 0; width: auto; margin-left: auto; }
  body.curriculum-app.readable-app .app-utilities { gap: 12px; }
}
@media (max-width: 1000px) {
  body.curriculum-app.readable-app .gate { gap: 28px; }
  body.curriculum-app.readable-app .gate-card { padding: 24px; }
}
@media (max-width: 760px) {
  body.curriculum-app.readable-app .page { width: calc(100% - 36px); }
  body.curriculum-app.readable-app .gate { grid-template-columns: 1fr; padding-top: 32px; margin-top: 0; gap: 24px; }
  body.curriculum-app.readable-app .gate-brand { width: min(380px, 96%); margin-bottom: 2px; }
  body.curriculum-app.readable-app .gate-school { width: 70%; }
  body.curriculum-app.readable-app .gate-card { max-width: 530px; padding: 20px; }
  body.curriculum-app.readable-app .app-topbar { padding: 18px; }
  body.curriculum-app.readable-app .app-brand { gap: 12px; }
  body.curriculum-app.readable-app .app-brand .app-logo { width: 54px !important; height: 54px !important; padding: 5px !important; }
  body.curriculum-app.readable-app .app-navigation { gap: 0 20px; }
  body.curriculum-app.readable-app .app-navigation button { font-size: calc(14px * var(--reading-scale, 1)); }
  body.curriculum-app.readable-app .app-utilities { justify-content: space-between; }
  body.curriculum-app.readable-app #teacherTools { padding: 22px 18px; }
  body .student-dashboard.curriculum-board .board-overview h2 { font-size: calc(25px * var(--reading-scale, 1)); }
  body .student-dashboard.curriculum-board .board-disclosure-body { padding: 20px 18px; }
  body :is(#planModal, #helperModal) { padding: 10px; }
  body :is(#planModal, #helperModal) .modal-panel { max-height: calc(100dvh - 20px); border-radius: 12px; }
  body :is(#planModal, #helperModal) :is(.modal-head, .modal-body) { padding: 18px; }
}
@media (max-width: 650px) {
  body.curriculum-app.readable-app .app-external-links { width: 100%; }
  body.curriculum-app.readable-app .app-external-links #openCourseSiteBtn { width: 100%; min-width: 0; min-height: 54px; }
  body #teacherTools .admin-review .admin-review__table { min-width: 0; }
  body #teacherTools .admin-review .admin-review__table td { padding: 15px 17px; }
  body #teacherTools .admin-review__table td::before { font-size: calc(12px * var(--reading-scale, 1)); }
  body #teacherTools .admin-review__metric { padding: 16px; }
  body .student-dashboard.curriculum-board .board-summary { padding: 20px 4px; }
  body .student-dashboard.curriculum-board .board-summary-item > strong { font-size: calc(25px * var(--reading-scale, 1)); }
  body .student-dashboard.curriculum-board .board-summary-item small { font-size: calc(15px * var(--reading-scale, 1)); }
  body .student-dashboard.curriculum-board .board-summary-status { padding-top: 18px; margin-top: 18px; }
  body .student-dashboard.curriculum-board .board-year-tabs button { display: block; padding: 10px 4px; }
  body .student-dashboard.curriculum-board .board-year-tabs strong { display: block; font-size: calc(16px * var(--reading-scale, 1)); }
  body .student-dashboard.curriculum-board .board-year-tabs button > span { font-size: calc(12px * var(--reading-scale, 1)); }
  body .student-dashboard.curriculum-board .course-detail > summary { padding: 14px 17px; }
}

/* Motion follows user actions; nothing loops while the interface is idle. */
body.curriculum-app.readable-app .btn:not(.secondary):not(.ghost) {
  background: linear-gradient(115deg, #343957, #62568a 65%, #8070ad) !important;
  background-size: 180% 100% !important;
  border-color: #535071 !important;
  box-shadow: 0 4px 10px #49436714;
}
body.curriculum-app.readable-app :is(.btn, .mode-btn, .board-view-toggle, .board-outline-button, .board-year-tabs button, .app-navigation button) {
  transition: background-position .4s ease, background-color .2s ease, border-color .2s ease, color .2s ease, transform .16s ease, box-shadow .2s ease;
}
body.curriculum-app.readable-app .btn:not(.secondary):not(.ghost):hover {
  background: linear-gradient(115deg, #343957, #62568a 65%, #8070ad) !important;
  background-size: 180% 100% !important;
  background-position: 100% 50% !important;
  border-color: #746398 !important;
  box-shadow: 0 7px 18px #49436724 !important;
  transform: translateY(-2px);
}
body.curriculum-app.readable-app :is(.btn.secondary, .mode-btn, .board-outline-button):hover { transform: translateY(-2px); box-shadow: 0 5px 14px #3439570d !important; }
body.curriculum-app.readable-app :is(.btn, .mode-btn, .board-year-tabs button, .board-view-toggle, .board-outline-button):active { transform: translateY(1px) scale(.975); box-shadow: 0 1px 3px #34395714 !important; }
body.curriculum-app.readable-app :is(.btn, .mode-btn):disabled { transform: none; box-shadow: none !important; }
body .student-dashboard.curriculum-board .board-year-tabs button[aria-pressed="true"] { background: linear-gradient(120deg, #fff, #f5f2fa); color: #5d5081; box-shadow: 0 2px 7px #49436710; }
body .student-dashboard.curriculum-board .board-meter > span { background: linear-gradient(90deg, #586087, #a28cbd); }
body .student-dashboard.curriculum-board .board-group.needs-review .board-meter > span { background: linear-gradient(90deg, #ac8553, #d2b786); }
body .student-dashboard.curriculum-board .board-chart-track > span { background: linear-gradient(0deg, #5c648c, #a195bb); }
body .student-dashboard.curriculum-board :is(.board-year:not([hidden]), .course-detail[open] .course-detail-body, .board-disclosure[open] > .board-disclosure-body) { animation: theme-reveal .3s cubic-bezier(.2,.75,.25,1) both; }
body.curriculum-app.readable-app .modal:not(.hidden) .modal-panel { animation: theme-dialog .3s cubic-bezier(.2,.75,.25,1) both; }
body.curriculum-app.readable-app .auth-box:not(.hidden) { animation: theme-reveal .26s ease both; }
body.curriculum-app.readable-app #changeModeBtn.app-mode-switch { color: #53546b; background: transparent !important; border: 1px solid #dddde5; border-radius: 8px; padding: 6px 10px; }
body.curriculum-app.readable-app #changeModeBtn.app-mode-switch:hover { color: #41385e; background: #f3f0f8 !important; }
body .student-dashboard.curriculum-board .board-next li > span { color: #a3834e; }
body .student-dashboard.curriculum-board .board-next button { color: #655784; }
body .student-dashboard.curriculum-board :is(.board-next p, .board-generated, .board-section-note) { color: var(--muted); }
@keyframes theme-reveal { from { opacity: .25; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes theme-dialog { from { opacity: .4; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (prefers-reduced-motion: reduce) {
  body.curriculum-app.readable-app *, body.curriculum-app.readable-app *::before, body.curriculum-app.readable-app *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  body.curriculum-app.readable-app :is(.btn, .mode-btn, .board-view-toggle, .board-outline-button):is(:hover, :active) { transform: none !important; }
}
