/* Shared visual system — applied after module styles so every workspace reads
   as one product rather than a collection of independently designed pages. */
:root{
  --ui-ink:#202126;
  --ui-muted:#6f7480;
  --ui-line:#e2e4ea;
  --ui-panel:#ffffff;
  --ui-soft:#f7f7fb;
  --ui-brand:#565bd2;
  --ui-brand-soft:#f0f0ff;
  --ui-danger:#c33f48;
  --ui-danger-soft:#fff0f1;
  --ui-success:#28764a;
  --ui-success-soft:#edf8f0;
  --ui-radius:14px;
  --ui-sans:Inter,"SF Pro Display","PingFang SC","Microsoft YaHei",sans-serif;
}

body{color:var(--ui-ink);font-size:15px;line-height:1.55}
.eyebrow{color:var(--ui-brand)!important;font-size:11px!important;font-weight:800!important;letter-spacing:.08em!important}

/* A calm, repeatable hierarchy for every learning and teacher workspace. */
.view :is(.intro,.student-top,.teacher-head,.teacher-course-head,.syllabus-hub-head,.definition-head,.calculation-head,.q18-head,.q19-head,.q20-head,.evaluation-head,.collection-head)>div>h1,
.view :is(.intro,.student-top,.teacher-head,.teacher-course-head,.syllabus-hub-head,.definition-head,.calculation-head,.q18-head,.q19-head,.q20-head,.evaluation-head,.collection-head)>h1{
  color:var(--ui-ink);font-size:clamp(32px,3vw,42px)!important;letter-spacing:-.045em!important;line-height:1.15!important;margin:5px 0 9px!important
}
.view :is(.intro,.student-top,.teacher-head,.teacher-course-head,.syllabus-hub-head,.definition-head,.calculation-head,.q18-head,.q19-head,.q20-head,.evaluation-head,.collection-head)>div>span,
.view :is(.intro,.student-top,.teacher-head,.teacher-course-head,.syllabus-hub-head,.definition-head,.calculation-head,.q18-head,.q19-head,.q20-head,.evaluation-head,.collection-head)>span{
  color:var(--ui-muted)!important;font-size:14px!important;line-height:1.65!important
}
.view h2{color:var(--ui-ink);letter-spacing:-.025em}

/* Primary and secondary actions use one size, weight and corner language. */
.view .dark-admin-action,.view .q18-primary,.view .primary-next,.view .resume button,
.view .student-top>button,.view .teacher-head>button,.view .teacher-course-head>div:last-child>button,
.view .teacher-marking-tab-action button{
  align-items:center;border-radius:9px!important;display:inline-flex!important;font-size:13px!important;font-weight:750!important;justify-content:center;line-height:1.2;min-height:40px;padding:10px 14px!important
}
.view .teacher-ghost,.view .collection-head>button,.view .practice-top>button,
.view .q18-question-head>button,.view .q19-question-head>button,.view .q20-question-head>button,
.view .evaluation-question-head>button,.view .question-actions button,.view .q18-actions button,
.view .calculation-question-card button,.view .q19-question-card button,.view .q20-question-card button,
.view .q18-card button,.view .evaluation-question-list button,.view .saved-question footer button{
  align-items:center;border-radius:9px!important;display:inline-flex!important;font-size:13px!important;font-weight:700!important;justify-content:center;line-height:1.2;min-height:38px;padding:9px 12px!important
}
.view .teacher-ghost{border-color:#d9dce5!important;color:#424754!important}

/* Filter areas and content cards no longer vary from module to module. */
.view :is(.paper-review-filter,.q18-filter,.q17-filter,.q19-filter,.q20-filter,.evaluation-filter-bar,.evaluation-source-bar,.definition-filter,.filterbar){
  background:var(--ui-panel)!important;border:1px solid var(--ui-line)!important;border-radius:var(--ui-radius)!important;box-shadow:none!important
}
.view :is(.q18-summary,.evaluation-overview,.syllabus-overview,.teacher-stats,.student-profile-overview)>article,
.view :is(.calculation-question-card,.q18-card,.q19-question-card,.q20-question-card,.saved-question,.student-module-card){
  border-color:var(--ui-line)!important;border-radius:var(--ui-radius)!important;box-shadow:none!important
}
.view :is(.q18-card,.q19-question-card,.q20-question-card,.calculation-question-card) aside>em,
.view :is(.q18-card,.q19-question-card,.q20-question-card,.calculation-question-card) div>em,
.view .student-module-card em{
  border-radius:999px!important;font-size:11px!important;font-style:normal!important;font-weight:750!important;padding:5px 8px!important
}
.view em.pending,.view .student-module-card em.pending{background:var(--ui-danger-soft)!important;color:var(--ui-danger)!important}
.view em.marked,.view em.done{background:var(--ui-success-soft)!important;color:var(--ui-success)!important}

/* Comfortable sidebar density: readable at normal laptop height without the
   oversized gaps that previously pushed the final item below the viewport. */
@media (min-width:701px) and (min-height:821px){
  .rail{padding:27px 18px!important;width:278px!important}
  .app>main{margin-left:278px!important}
  .logo{font-size:16px!important;padding:4px 9px!important}
  .logo span{height:36px!important;width:36px!important}
  .new{font-size:14px!important;margin:26px 8px 22px!important;padding:12px 14px!important}
  .rail nav{margin-top:20px!important}
  .nav-group{margin-bottom:23px!important}
  .nav-group p{font-size:12px!important;margin:0 10px 9px!important}
  .rail nav button{font-size:14px!important;margin:3px 0!important;padding:10px 11px!important}
  .rail nav button i{font-size:11px!important;height:32px!important;width:32px!important}
  .rail nav button span{margin-left:12px!important}
}

/* Teacher marking: one horizontal tab strip, clear hierarchy and a compact
   red count in the tab corner for submissions that still need attention. */
.teacher-marking-hub{max-width:none!important}
.teacher-marking-head{margin-bottom:24px!important}
.teacher-marking-head>div>span{font-size:14px!important;max-width:680px!important}
.teacher-marking-tabs{gap:4px!important;margin-bottom:20px!important}
.teacher-marking-tabs button{min-height:72px!important;padding:13px 16px!important;position:relative}
.teacher-marking-tabs button b{font-size:12px!important}
.teacher-marking-tabs button span{font-size:14px!important}
.teacher-marking-tabs .marking-pending-count{align-items:center;background:var(--ui-danger);border:2px solid #fff;border-radius:999px;color:#fff;display:flex;font-size:10px;font-style:normal;font-weight:800;height:20px;justify-content:center;line-height:1;min-width:20px;padding:0 5px;position:absolute;right:10px;top:9px}
.teacher-marking-tab-panel{gap:22px!important;min-height:178px!important;padding:27px 30px!important}
.teacher-marking-tab-copy h2{font-size:28px!important}
.teacher-marking-tab-action{flex-basis:310px!important;gap:12px!important}
.teacher-marking-tab-action span{font-size:12px!important;line-height:1.4!important;white-space:nowrap}

@media(max-width:900px){
  .teacher-marking-tabs{grid-template-columns:repeat(5,minmax(0,1fr))!important}
  .teacher-marking-tab-action span{white-space:normal}
}
@media(max-width:700px){
  .view :is(.intro,.student-top,.teacher-head,.teacher-course-head,.syllabus-hub-head,.definition-head,.calculation-head,.q18-head,.q19-head,.q20-head,.evaluation-head,.collection-head)>div>h1,
  .view :is(.intro,.student-top,.teacher-head,.teacher-course-head,.syllabus-hub-head,.definition-head,.calculation-head,.q18-head,.q19-head,.q20-head,.evaluation-head,.collection-head)>h1{font-size:32px!important}
  .teacher-marking-tab-panel{padding:22px!important}
}

/* The navigation is a study map, not a dense settings list.  This rule is
   intentionally independent of viewport height so high-DPI laptops receive
   the same relaxed rhythm as standard desktop screens. */
@media (min-width:701px){
  .rail{padding:25px 19px!important;width:284px!important}
  .app>main{margin-left:284px!important}
  .logo{font-size:16px!important;padding:4px 10px!important}
  .logo span{height:36px!important;width:36px!important}
  .new{margin:25px 8px 22px!important;padding:12px 14px!important}
  .rail nav{margin-top:19px!important}
  .nav-group{margin-bottom:20px!important}
  .nav-group p{font-size:12px!important;margin:0 10px 8px!important}
  .rail nav button{font-size:14px!important;line-height:1.3!important;margin:3px 0!important;min-height:42px!important;padding:6px 11px!important}
  .rail nav button i{font-size:11px!important;height:30px!important;min-width:30px!important;width:30px!important}
  .rail nav button span{font-size:14px!important;margin-left:12px!important}
  .teacher-mode .rail nav .teacher-marking-nav button{gap:12px!important;min-height:42px!important;padding:6px 11px!important}
  .teacher-mode .rail nav .teacher-marking-nav button i{font-size:11px!important;height:30px!important;min-width:30px!important;width:30px!important}
  .teacher-mode .rail nav .teacher-marking-nav button span{font-size:14px!important;line-height:1.3!important}
  .rail-bottom{padding:15px 8px 0!important}
}

/* Q21 shares the same content axis and return treatment as Q18–Q20.
   The nested <main> must not inherit the application shell's left rail offset. */
#evaluation.view{max-width:1240px!important;margin:0 auto!important;padding:42px 48px 72px!important}
#evaluation .evaluation-work-head{max-width:1050px!important;margin:8px auto 13px!important}
#evaluation .evaluation-workspace{display:block!important;max-width:1050px!important;margin:0 auto!important}
#evaluation .evaluation-workspace main{box-sizing:border-box!important;margin-left:0!important;margin-right:0!important;max-width:none!important;width:100%!important}
#evaluation .evaluation-return{align-items:center!important;border:1px solid #d9dce5!important;border-radius:9px!important;color:#424754!important;display:inline-flex!important;font-size:13px!important;font-weight:700!important;line-height:1.2!important;min-height:38px!important;padding:9px 12px!important}

@media(max-width:850px){
  #evaluation.view{padding:34px 20px 54px!important}
}

/* Nested practice content must stay on the same axis as its own header rather
   than inheriting the application shell's sidebar margin. */
#syllabus .practice-question-workspace{margin-left:0!important}

/* Teacher review is organised by the syllabus itself: an error belongs to the
   precise knowledge point where it occurred, never to a separate catch-all list. */
.teacher-syllabus-group article.teacher-syllabus-topic{align-items:start!important;grid-template-columns:102px minmax(0,1fr) 64px 80px!important}
.teacher-syllabus-topic.has-mistakes>strong{color:var(--ui-danger)!important}
.teacher-topic-mistakes,.teacher-topic-mistake-empty{grid-column:1/-1!important}
.teacher-topic-mistakes{border:1px solid #f0d7d3!important;border-radius:10px!important;margin:4px 0 3px!important;overflow:hidden!important}
.teacher-topic-mistakes>summary{align-items:center!important;background:#fff9f8!important;color:#a84841!important;cursor:pointer!important;display:flex!important;font-size:11px!important;font-weight:750!important;justify-content:space-between!important;list-style:none!important;padding:9px 11px!important}
.teacher-topic-mistakes>summary::-webkit-details-marker{display:none!important}
.teacher-topic-mistakes>summary i{font-size:11px!important;font-style:normal!important}
.teacher-topic-mistakes[open]>summary{border-bottom:1px solid #f0d7d3!important}
.teacher-topic-mistake-list{background:#fff!important;max-height:330px!important;overflow:auto!important}
.teacher-topic-mistake-list .teacher-wrong-question{border-bottom:1px solid #f2e8e6!important;display:grid!important;gap:5px!important;grid-template-columns:1fr!important;padding:12px!important}
.teacher-topic-mistake-list .teacher-wrong-question:last-child{border-bottom:0!important}
.teacher-topic-mistake-list .teacher-wrong-question>span{color:#5a5ed1!important;font-size:11px!important;font-weight:750!important}
.teacher-topic-mistake-list .teacher-wrong-question>b{font-size:13px!important;font-weight:650!important;line-height:1.45!important}
.teacher-topic-mistake-list .teacher-wrong-question details{margin-top:4px!important}
.teacher-topic-mistake-list .teacher-wrong-question details>summary{color:#5558c8!important;cursor:pointer!important;display:block!important;font-size:11px!important;font-weight:750!important;padding:0!important}
.teacher-topic-mistake-empty{color:#85858e!important;font-size:11px!important;padding:5px 0 2px!important}
@media(max-width:720px){
  .teacher-syllabus-group article.teacher-syllabus-topic{grid-template-columns:1fr 70px!important}
}

/* Q16–Q21 use one recognisable bank rhythm: context, progress, filters, then
   a single-column set of questions.  The exercise mechanics remain module-specific. */
.view .student-bank-head{align-items:flex-start!important;margin:18px 0 22px!important}
.view .student-bank-head>button{margin-top:4px!important}
.view :is(.student-bank-status,.student-bank-summary){display:grid!important;gap:12px!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;margin:0 0 18px!important}
.view :is(.student-bank-status,.student-bank-summary)>article{background:var(--ui-panel)!important;border:1px solid var(--ui-line)!important;border-radius:var(--ui-radius)!important;box-shadow:none!important;display:block!important;min-height:112px!important;padding:17px 19px!important}
.view :is(.student-bank-status,.student-bank-summary) article>span,.view :is(.student-bank-status,.student-bank-summary) article>small{color:var(--ui-muted)!important;display:block!important;font-size:12px!important;line-height:1.45!important}
.view :is(.student-bank-status,.student-bank-summary) article>b{color:var(--ui-ink)!important;display:block!important;font-size:28px!important;letter-spacing:-.05em!important;line-height:1.05!important;margin:8px 0 5px!important}
.view :is(.student-bank-status,.student-bank-summary) article>b small{display:inline!important;font-size:14px!important;font-weight:700!important}
.view .student-bank-tabs{border-bottom:1px solid var(--ui-line)!important;margin:18px 0!important}
.view .student-bank-tabs button{font-size:14px!important;min-height:42px!important;padding:9px 4px!important}
.view .student-bank-filter{box-shadow:none!important;margin:0 0 18px!important}
.view .student-bank-filter:not(.evaluation-source-bar){align-items:end!important;display:grid!important;gap:12px!important;grid-template-columns:minmax(190px,1.2fr) repeat(auto-fit,minmax(150px,1fr))!important;padding:16px 18px!important}
.view .student-bank-filter label{color:var(--ui-muted)!important;font-size:12px!important;font-weight:750!important}
.view .student-bank-filter select{border-color:#d6dae3!important;border-radius:9px!important;font-size:13px!important;min-height:40px!important}

/* Q16–Q21 all use the same filter-card title block. Some modules originally
   used a bold <b>, others a plain <span>, which made the count jump in weight
   and baseline even where the card dimensions matched. */
.view :is(.definition-unified-filter,.calculation-filter-bar,.q18-filter,.q19-filter-bar,.q20-filter-bar)>div:first-child,
#evaluation .evaluation-compact-filter-title{
  align-content:center!important;
  align-self:center!important;
  display:grid!important;
  gap:6px!important;
  min-height:64px!important;
}
.view :is(.definition-unified-filter,.calculation-filter-bar,.q18-filter,.q19-filter-bar,.q20-filter-bar)>div:first-child .eyebrow,
#evaluation .evaluation-compact-filter-title .eyebrow{
  color:var(--ui-brand)!important;
  font-family:var(--ui-sans)!important;
  font-size:13px!important;
  font-weight:800!important;
  letter-spacing:.06em!important;
  line-height:1.2!important;
  margin:0!important;
}
.view :is(.definition-unified-filter,.calculation-filter-bar,.q18-filter,.q19-filter-bar,.q20-filter-bar)>div:first-child :is(b,span),
#evaluation .evaluation-compact-filter-title>span{
  color:var(--ui-muted)!important;
  display:block!important;
  font-family:var(--ui-sans)!important;
  font-size:16px!important;
  font-weight:500!important;
  line-height:1.3!important;
  margin:0!important;
}

/* Long source material and multiple-choice stems share a calm reading edge.
   Labels, figures and answer choices deliberately remain left aligned. */
.view :is(.q18-extract>div,.calculation-extract-body,.q19-context>div,.q20-context>div,.extract-card-primary>div){
  hyphens:auto!important;
  text-align:justify!important;
  text-align-last:auto!important;
  text-justify:inter-word!important;
}
#syllabus .practice-shell .question-stem p,
#syllabus .practice-shell .option-content{ text-align:left; }
.view :is(.q18-extract>div,.calculation-extract-body,.q19-context>div,.q20-context>div,.extract-card-primary>div) :is(h1,h2,h3,h4,h5,h6,th,td,figcaption){text-align:left!important}
.view .student-bank-list{background:var(--ui-panel)!important;border:1px solid var(--ui-line)!important;border-radius:var(--ui-radius)!important;box-shadow:none!important;overflow:hidden!important;padding:0!important}
.view .student-bank-list>header{border-bottom:1px solid var(--ui-line)!important;padding:18px 28px!important}
.view .student-bank-list>header h2{font-size:22px!important;line-height:1.28!important;margin:4px 0!important}
.view .student-bank-list :is(.calculation-question-card,.q18-card,.q19-question-card,.q20-question-card){gap:18px!important;padding:18px 21px!important}
.view .student-bank-list :is(.calculation-question-card,.q18-card,.q19-question-card,.q20-question-card) h3{font-size:17px!important;line-height:1.35!important}
.view .student-bank-list :is(.calculation-question-card,.q18-card,.q19-question-card,.q20-question-card)>div>span{font-size:13px!important;line-height:1.55!important}
.view .student-bank-list :is(.calculation-question-card,.q18-card,.q19-question-card,.q20-question-card) button{min-width:92px!important}
.view .q18-card em.draft,.view .q20-question-card em.draft{background:#fff4df!important;color:#9b6b16!important}

@media(max-width:850px){
  .view :is(.student-bank-status,.student-bank-summary){grid-template-columns:1fr!important}
  .view :is(.student-bank-status,.student-bank-summary)>article{min-height:0!important}
  .view .student-bank-filter:not(.evaluation-source-bar){grid-template-columns:1fr!important}
}

/* One loading moment across learner and teacher pages: no partial old screen. */
.view .app-loading-screen{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:calc(100vh - 210px);padding:40px 24px;text-align:center}
.view .app-loading-orbit{height:66px;margin-bottom:18px;position:relative;width:66px}
.view .app-loading-orbit:before{border:2px solid #d9dcff;border-radius:50%;content:"";inset:8px;position:absolute}
.view .app-loading-orbit i{animation:app-loading-orbit 1.35s cubic-bezier(.62,.04,.38,.96) infinite;background:#5d67d9;border-radius:50%;height:10px;left:28px;position:absolute;top:0;transform-origin:5px 33px;width:10px}
.view .app-loading-orbit i:nth-child(2){animation-delay:-.45s;background:#8b92eb}
.view .app-loading-orbit i:nth-child(3){animation-delay:-.9s;background:#b9bdf7}
.view .app-loading-screen p{color:var(--ui-ink);font-size:15px;font-weight:800;margin:0}
.view .app-loading-screen span{color:var(--ui-muted);font-size:13px;margin-top:7px}
@keyframes app-loading-orbit{to{transform:rotate(360deg)}}

/* Q17–Q21 use exactly the same question-bank heading rhythm. */
.view .student-bank-list>header[data-standard-bank-heading="yes"]{align-items:center!important;box-sizing:border-box!important;display:flex!important;gap:18px!important;justify-content:space-between!important;margin:0!important;min-height:104px!important;padding:18px 28px!important}
.view .student-bank-list>header[data-standard-bank-heading="yes"]>div{min-width:0!important}
.view .student-bank-list>header[data-standard-bank-heading="yes"] .eyebrow{margin:0 0 5px!important}
.view .student-bank-list>header[data-standard-bank-heading="yes"] h2{font-size:22px!important;line-height:1.25!important;margin:0!important}
.view .student-bank-list>header[data-standard-bank-heading="yes"] div>span{color:var(--ui-muted)!important;display:block!important;font-size:13px!important;line-height:1.45!important;margin-top:5px!important}
.view .student-bank-list>header[data-standard-bank-heading="yes"]>span{color:var(--ui-muted)!important;flex:0 0 auto!important;font-size:13px!important;white-space:nowrap!important}
@media(max-width:650px){.view .student-bank-list>header[data-standard-bank-heading="yes"]{align-items:flex-start!important;flex-direction:column!important;gap:8px!important;min-height:0!important}.view .student-bank-list>header[data-standard-bank-heading="yes"]>span{white-space:normal!important}}

/* Q17 uses the same reading flow as Q19/Q20: source material first, then one full-width response area. */
#calculations .calculation-question-shell{display:block!important}
#calculations .calculation-context{margin-bottom:18px!important;min-height:0!important;overflow:visible!important}
#calculations .calculation-extract-body{max-height:none!important;overflow:visible!important}
#calculations .calculation-workspace{min-height:0!important}

/* Q21 rows need the same breathing room as the heading: identifiers and actions no longer touch the card edge. */
#evaluation .evaluation-question-list-refined>article{gap:18px!important;grid-template-columns:48px minmax(0,1fr) 116px!important;padding:15px 28px!important}
@media(max-width:850px){#evaluation .evaluation-question-list-refined>article{grid-template-columns:40px minmax(0,1fr)!important;padding:15px 20px!important}}

/* Q21 uses the same understated outlined learner action as Q20. */
#evaluation .evaluation-question-list button{background:#fff!important;border:1px solid #d4dbe8!important;color:#5563cf!important}
#evaluation .evaluation-question-list button:hover{background:#f7f8ff!important;border-color:#bfc8ee!important}

/* Student page frame — the dashboard and every practice bank share one
   content axis.  Module styles are allowed to shape their own cards, but
   never the page edge or the first heading's vertical position. */
:root{
  --student-page-max:1280px;
  --student-page-inline:48px;
  --student-page-top:52px;
  --student-page-bottom:80px;
}
#student.view,
#courses.view,
#syllabus.view,
#definitions.view,
#calculations.view,
#data-response.view,
#diagrams.view,
#analysis.view,
#evaluation.view{
  box-sizing:border-box!important;
  margin:0 auto!important;
  max-width:var(--student-page-max)!important;
  padding:var(--student-page-top) var(--student-page-inline) var(--student-page-bottom)!important;
  width:100%!important;
}
#student.view .dashboard-head,
#courses.view .student-courses-head,
#syllabus.view .syllabus-hub-head,
#syllabus.view .collection-head,
#definitions.view .definition-head,
#calculations.view .calculation-head,
#data-response.view .q18-head,
#diagrams.view .q19-head,
#analysis.view .q20-head,
#evaluation.view .evaluation-head{
  margin:0 0 26px!important;
}
#student.view .dashboard-head h1,
#courses.view .student-courses-head h1{
  color:var(--ui-ink)!important;
  font-size:clamp(32px,3vw,42px)!important;
  letter-spacing:-.045em!important;
  line-height:1.15!important;
  margin:5px 0 9px!important;
}
#student.view .dashboard-head>div>span,
#courses.view .student-courses-head>div>span{
  color:var(--ui-muted)!important;
  font-size:14px!important;
  line-height:1.65!important;
}
#student.view .module-placeholder,
#syllabus.view .module-placeholder,
#definitions.view .module-placeholder,
#calculations.view .module-placeholder,
#data-response.view .module-placeholder,
#diagrams.view .module-placeholder,
#analysis.view .module-placeholder,
#evaluation.view .module-placeholder{margin-top:0!important}
@media(max-width:850px){
  #student.view,
  #courses.view,
  #syllabus.view,
  #definitions.view,
  #calculations.view,
  #data-response.view,
  #diagrams.view,
  #analysis.view,
  #evaluation.view{
    padding:36px 20px 56px!important;
  }
}

/* One final learner action for every written question, Q16 through Q21. */
.view :is(
  [data-q17-submit],
  [data-q17-redo-current],
  [data-q18-submit],
  [data-q19-submit],
  [data-q20-submit],
  [data-q21-submit]
){
  align-items:center!important;
  background:#191a20!important;
  border:1px solid #191a20!important;
  border-radius:9px!important;
  box-sizing:border-box!important;
  color:#fff!important;
  display:inline-flex!important;
  font-size:13px!important;
  font-weight:800!important;
  justify-content:center!important;
  line-height:1.2!important;
  min-height:42px!important;
  padding:10px 16px!important;
  white-space:nowrap!important;
}

/* A fixed action footprint keeps a learner's last step in precisely the same
   place, even when modules have different legacy action bars. */
.view .student-submit-answer{
  align-items:center!important;
  background:#191a20!important;
  border:1px solid #191a20!important;
  border-radius:9px!important;
  box-sizing:border-box!important;
  color:#fff!important;
  display:inline-flex!important;
  flex:0 0 104px!important;
  font-size:13px!important;
  font-weight:800!important;
  height:42px!important;
  justify-content:center!important;
  line-height:1.2!important;
  min-height:42px!important;
  padding:0!important;
  white-space:nowrap!important;
}
#definitions.view .recite-actions,
#definitions.view .definition-test-actions,
#calculations.view .q17-submit-row,
#data-response.view .q18-paper-actions,
#diagrams.view .q19-paper-actions,
#analysis.view .q20-paper-actions,
#evaluation.view .q21-paper-actions{
  align-items:center!important;
  display:flex!important;
  justify-content:flex-end!important;
}

/* Question stems are a single reading level across all written modules.
   Module-local CSS must not make the actual task look lighter or louder than
   its neighbours. */
#data-response.view .q18-part>h2,
#diagrams.view .q19-prompt,
#analysis.view .q20-prompt,
#evaluation.view .evaluation-prompt h2{
  color:var(--ui-ink)!important;
  font-size:21px!important;
  font-weight:700!important;
  letter-spacing:-.015em!important;
  line-height:1.4!important;
}
#diagrams.view .q19-prompt>p,
#analysis.view .q20-prompt>p{
  font:inherit!important;
  margin:0!important;
}
@media(max-width:620px){
  #data-response.view .q18-part>h2,
  #diagrams.view .q19-prompt,
  #analysis.view .q20-prompt,
  #evaluation.view .evaluation-prompt h2{font-size:20px!important}
}

/* One secondary action for returning to the immediately preceding student
   page.  These buttons intentionally do not inherit module-specific blue,
   oversized, or browser-default treatments. */
#student.view .course-switch,
#syllabus.view .syllabus-hub-head>button,
#syllabus.view .practice-top>button,
#syllabus.view .collection-head>button,
#definitions.view .student-bank-head>button,
#calculations.view .student-bank-head>button,
#data-response.view .student-bank-head>button,
#diagrams.view .student-bank-head>button,
#analysis.view .student-bank-head>button,
#evaluation.view .evaluation-head>button,
#calculations.view .calculation-question-head>button,
#data-response.view .q18-question-head>button,
#diagrams.view .q19-question-head>button,
#analysis.view .q20-question-head>button,
#evaluation.view .evaluation-return{
  align-items:center!important;
  background:#fff!important;
  border:1px solid #d9dce5!important;
  border-radius:9px!important;
  box-sizing:border-box!important;
  color:#424754!important;
  display:inline-flex!important;
  font-size:13px!important;
  font-weight:700!important;
  justify-content:center!important;
  line-height:1.2!important;
  min-height:38px!important;
  padding:9px 12px!important;
  text-decoration:none!important;
  white-space:nowrap!important;
}

/* The course picker is the dashboard's only peer-level destination.  Give
   its shorter label a small visual lift so it reads at the same level as the
   longer “返回学习首页” action without moving the shared header layout. */
#student.view .course-switch{
  font-size:14px!important;
  padding-left:14px!important;
  padding-right:14px!important;
}
#student.view .course-switch:hover,
#syllabus.view .syllabus-hub-head>button:hover,
#syllabus.view .practice-top>button:hover,
#syllabus.view .collection-head>button:hover,
#definitions.view .student-bank-head>button:hover,
#calculations.view .student-bank-head>button:hover,
#data-response.view .student-bank-head>button:hover,
#diagrams.view .q19-question-head>button:hover,
#analysis.view .q20-question-head>button:hover,
#evaluation.view .evaluation-return:hover{background:#f7f8fb!important;border-color:#c9cfdb!important}

/* Student hub headings are one component, not nine local variations.
   Keep the label, title, description and return action on the same grid so
   switching modules never changes the reading axis or the button position. */
#student.view .dashboard-head,
#courses.view .student-courses-head,
#syllabus.view .syllabus-hub-head,
#syllabus.view .collection-head,
#definitions.view .definition-head,
#calculations.view .calculation-head,
#data-response.view .q18-head,
#diagrams.view .q19-head,
#analysis.view .q20-head,
#evaluation.view .evaluation-head{
  align-items:start!important;
  box-sizing:border-box!important;
  column-gap:24px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  margin:0 0 30px!important;
  min-height:108px!important;
  padding:0!important;
}
#student.view .dashboard-head>div,
#courses.view .student-courses-head>div,
#syllabus.view .syllabus-hub-head>div,
#syllabus.view .collection-head>div,
#definitions.view .definition-head>div,
#calculations.view .calculation-head>div,
#data-response.view .q18-head>div,
#diagrams.view .q19-head>div,
#analysis.view .q20-head>div,
#evaluation.view .evaluation-head>div{
  margin:0!important;
  min-width:0!important;
  padding:0!important;
}
#student.view .dashboard-head .eyebrow,
#courses.view .student-courses-head .eyebrow,
#syllabus.view .syllabus-hub-head .eyebrow,
#syllabus.view .collection-head .eyebrow,
#definitions.view .definition-head .eyebrow,
#calculations.view .calculation-head .eyebrow,
#data-response.view .q18-head .eyebrow,
#diagrams.view .q19-head .eyebrow,
#analysis.view .q20-head .eyebrow,
#evaluation.view .evaluation-head .eyebrow{
  font-size:11px!important;
  line-height:1.3!important;
  margin:0 0 8px!important;
}
#student.view .dashboard-head h1,
#courses.view .student-courses-head h1,
#syllabus.view .syllabus-hub-head h1,
#syllabus.view .collection-head h1,
#definitions.view .definition-head h1,
#calculations.view .calculation-head h1,
#data-response.view .q18-head h1,
#diagrams.view .q19-head h1,
#analysis.view .q20-head h1,
#evaluation.view .evaluation-head h1{
  font-size:40px!important;
  letter-spacing:-.045em!important;
  line-height:1.15!important;
  margin:0 0 9px!important;
}
#student.view .dashboard-head>div>span,
#courses.view .student-courses-head>div>span,
#syllabus.view .syllabus-hub-head>div>span,
#syllabus.view .collection-head>div>span,
#definitions.view .definition-head>div>span,
#calculations.view .calculation-head>div>span,
#data-response.view .q18-head>div>span,
#diagrams.view .q19-head>div>span,
#analysis.view .q20-head>div>span,
#evaluation.view .evaluation-head>div>span{
  display:block!important;
  font-size:14px!important;
  line-height:1.6!important;
  margin:0!important;
  max-width:780px!important;
}
#student.view .dashboard-head>button,
#courses.view .student-courses-head>button,
#syllabus.view .syllabus-hub-head>button,
#syllabus.view .collection-head>button,
#definitions.view .definition-head>button,
#calculations.view .calculation-head>button,
#data-response.view .q18-head>button,
#diagrams.view .q19-head>button,
#analysis.view .q20-head>button,
#evaluation.view .evaluation-head>button{
  align-self:start!important;
  display:inline-flex!important;
  grid-column:2!important;
  grid-row:1!important;
  margin:0!important;
}
@media(max-width:850px){
  #student.view .dashboard-head,
  #courses.view .student-courses-head,
  #syllabus.view .syllabus-hub-head,
  #syllabus.view .collection-head,
  #definitions.view .definition-head,
  #calculations.view .calculation-head,
  #data-response.view .q18-head,
  #diagrams.view .q19-head,
  #analysis.view .q20-head,
  #evaluation.view .evaluation-head{
    margin-bottom:24px!important;
    min-height:0!important;
  }
  #student.view .dashboard-head h1,
  #courses.view .student-courses-head h1,
  #syllabus.view .syllabus-hub-head h1,
  #syllabus.view .collection-head h1,
  #definitions.view .definition-head h1,
  #calculations.view .calculation-head h1,
  #data-response.view .q18-head h1,
  #diagrams.view .q19-head h1,
  #analysis.view .q20-head h1,
  #evaluation.view .evaluation-head h1{font-size:34px!important}
}
@media(max-width:620px){
  #student.view .dashboard-head,
  #courses.view .student-courses-head,
  #syllabus.view .syllabus-hub-head,
  #syllabus.view .collection-head,
  #definitions.view .definition-head,
  #calculations.view .calculation-head,
  #data-response.view .q18-head,
  #diagrams.view .q19-head,
  #analysis.view .q20-head,
  #evaluation.view .evaluation-head{grid-template-columns:1fr!important;row-gap:16px!important}
  #student.view .dashboard-head>button,
  #courses.view .student-courses-head>button,
  #syllabus.view .syllabus-hub-head>button,
  #syllabus.view .collection-head>button,
  #definitions.view .definition-head>button,
  #calculations.view .calculation-head>button,
  #data-response.view .q18-head>button,
  #diagrams.view .q19-head>button,
  #analysis.view .q20-head>button,
  #evaluation.view .evaluation-head>button{grid-column:1!important;grid-row:auto!important}
}

/* AP FRQ is a peer of the multiple-choice hub, not a separate page family.
   Reuse the same page frame and heading component so changing between the two
   does not move the reading axis or change the title scale. */
#frq.view{
  box-sizing:border-box!important;
  margin:0 auto!important;
  max-width:var(--student-page-max)!important;
  padding:var(--student-page-top) var(--student-page-inline) var(--student-page-bottom)!important;
  width:100%!important;
}
#frq.view .ap-frq-head{
  align-items:start!important;
  box-sizing:border-box!important;
  column-gap:24px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  margin:0 0 30px!important;
  min-height:108px!important;
  padding:0!important;
}
#frq.view .ap-frq-head>div{margin:0!important;min-width:0!important;padding:0!important}
#frq.view .ap-frq-head .eyebrow{font-size:11px!important;line-height:1.3!important;margin:0 0 8px!important}
#frq.view .ap-frq-head h1{font-size:40px!important;letter-spacing:-.045em!important;line-height:1.15!important;margin:0 0 9px!important}
#frq.view .ap-frq-head>div>span{display:block!important;font-size:14px!important;line-height:1.6!important;margin:0!important;max-width:780px!important}
#frq.view .ap-frq-head>button{
  align-items:center!important;background:#fff!important;border:1px solid #d9dce5!important;border-radius:9px!important;box-sizing:border-box!important;color:#424754!important;display:inline-flex!important;font-size:13px!important;font-weight:700!important;grid-column:2!important;grid-row:1!important;justify-content:center!important;line-height:1.2!important;margin:0!important;min-height:38px!important;padding:9px 12px!important;white-space:nowrap!important;
}
@media(max-width:850px){
  #frq.view{padding:36px 20px 56px!important}
  #frq.view .ap-frq-head{margin-bottom:24px!important;min-height:0!important}
  #frq.view .ap-frq-head h1{font-size:34px!important}
}
@media(max-width:620px){
  #frq.view .ap-frq-head{grid-template-columns:1fr!important;row-gap:16px!important}
  #frq.view .ap-frq-head>button{grid-column:1!important;grid-row:auto!important}
}

/* Shared Q17–Q21 question-bank card system. */
.view .student-bank-list .question-bank-card{
  align-items:center!important;
  background:transparent!important;
  border:0!important;
  border-bottom:1px solid var(--ui-line)!important;
  border-radius:0!important;
  box-shadow:none!important;
  box-sizing:border-box!important;
  display:grid!important;
  gap:24px!important;
  grid-template-columns:minmax(0,1fr) 112px!important;
  margin:0!important;
  min-height:126px!important;
  padding:20px 22px!important;
}
.view .student-bank-list .question-bank-card:last-child{border-bottom:0!important}
.view .student-bank-list .question-bank-card .question-bank-copy{min-width:0!important}
.view .student-bank-list .question-bank-card .question-bank-meta{
  color:var(--ui-brand)!important;
  font-size:12px!important;
  font-weight:800!important;
  letter-spacing:0!important;
  line-height:1.3!important;
  margin:0 0 7px!important;
}
.view .student-bank-list .question-bank-card .question-bank-topic{
  color:var(--ui-ink)!important;
  font-size:16px!important;
  font-weight:700!important;
  line-height:1.35!important;
  margin:0 0 6px!important;
}
.view .student-bank-list .question-bank-card .question-bank-preview{
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
  color:#687187!important;
  display:-webkit-box!important;
  font-size:14px!important;
  font-weight:400!important;
  line-height:1.5!important;
  margin:0!important;
  overflow:hidden!important;
}
.view .student-bank-list .question-bank-card .question-bank-action{
  align-items:flex-end!important;
  display:flex!important;
  flex-direction:column!important;
  gap:9px!important;
  justify-content:center!important;
  min-width:112px!important;
}
.view .student-bank-list .question-bank-card .question-bank-action :is(em,small){
  align-items:center!important;
  background:#f2f3f6!important;
  border:0!important;
  border-radius:999px!important;
  color:#6d7480!important;
  display:inline-flex!important;
  font-size:12px!important;
  font-style:normal!important;
  font-weight:700!important;
  line-height:1!important;
  min-height:24px!important;
  padding:5px 9px!important;
}
.view .student-bank-list .question-bank-card .question-bank-action :is(em.done,em.marked,small.feedback){background:#eaf7ef!important;color:#28764a!important}
.view .student-bank-list .question-bank-card .question-bank-action :is(em.draft,em.pending,small.draft,small.submitted){background:#fff4df!important;color:#9b6b16!important}
.view .student-bank-list .question-bank-card .question-bank-action button{
  background:#fff!important;
  border:1px solid #d4dbe8!important;
  border-radius:9px!important;
  color:#5563cf!important;
  font-size:13px!important;
  font-weight:750!important;
  height:38px!important;
  min-width:96px!important;
  padding:0 12px!important;
}
#evaluation .evaluation-question-list-refined>article.question-bank-card{
  gap:24px!important;
  grid-template-columns:minmax(0,1fr) 112px!important;
  padding:20px 22px!important;
}
@media(max-width:620px){
  .view .student-bank-list .question-bank-card{align-items:start!important;gap:14px!important;grid-template-columns:1fr!important;min-height:0!important;padding:18px!important}
  .view .student-bank-list .question-bank-card .question-bank-action{align-items:center!important;flex-direction:row!important;justify-content:flex-start!important;min-width:0!important}
  #evaluation .evaluation-question-list-refined>article.question-bank-card{gap:14px!important;grid-template-columns:1fr!important;padding:18px!important}
}
