/* Team area (body.mc.mc-student): team home, inbox, the familiarisation stations 01-04 and the Sprint stations 01-06.
   Builds on the lecturer language (teacher.css, scoped to body.mc). Calm by design: station parts have no frames
   of their own, boxes appear only where something is blocked or needs changes, lecture links are one collapsed
   disclosure per station. Colours of the voices: ESRA cyan, lecturer violet (course feedback), lecture links steel blue. */
body.mc-student { --steel: #8fb4ff; --steel-ink: #c4d6ff; --steel-bg: rgba(143, 180, 255, .07); }
body.mc-student .page.team-page { max-width: 1200px; }
body.mc-student .page-head { align-items: flex-start; }
body.mc-student .page-head h1 { font-size: 30px; }
body.mc-student .crumbs { margin-bottom: 10px; }
body.mc-student button.crumb-link { background: transparent; border: 0; padding: 2px 0; color: var(--muted); font-weight: 600; font-size: 13px; cursor: pointer; }
body.mc-student button.crumb-link:hover { color: var(--ink); text-decoration: underline; }
body.mc-student h4.sub-h, body.mc-student .sub-h { margin: 16px 0 8px; }
body.mc-student .prose { color: var(--muted); max-width: 820px; }
body.mc-student .row-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; align-items: center; margin-top: 14px; }
body.mc-student .row-actions.start { justify-content: flex-start; margin-top: 0; margin-bottom: 12px; }
body.mc-student .empty-line { color: var(--faint); margin: 4px 0; }
body.mc-student .count { white-space: nowrap; }
body.mc-student .counter { display: block; text-align: right; margin-top: 4px; }
body.mc-student .req { color: var(--faint); font-weight: 500; }
body.mc-student .plain-list { margin: 0; }
body.mc-student .badge { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 6px; font: 600 11px var(--sans); white-space: nowrap;
  color: var(--green); background: var(--green-bg); border: 1px solid rgba(123, 216, 143, .25); }
body.mc-student .badge.rust { color: var(--rust-ink); background: var(--rust-bg); border-color: rgba(224, 96, 42, .38); }
body.mc-student .badge.neutral { color: var(--muted); background: transparent; border-color: var(--line-2); }
body.mc-student .btn .i { flex: 0 0 auto; }
body.mc-student .sm-av { width: 22px; height: 22px; flex-basis: 22px; font-size: 9px; }
body.mc-student .voice-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; flex: 0 0 10px; align-self: center; }
body.mc-student .voice-dot.v-esra { background: var(--cyan); }
body.mc-student .voice-dot.v-lecturer { background: var(--violet); }
body.mc-student .voice-dot.v-system { background: var(--faint); }
body.mc-student .hmsg { margin-bottom: 10px; }
body.mc-student .hmsg .hm-head { align-items: center; }
body.mc-student .hmsg .hm-head time { margin-left: auto; }
body.mc-student .hmsg .btn.ghost { margin-top: 6px; padding-left: 0; }
body.mc-student .hmsg.own { border-left-color: var(--cyan-ink); }

/* header: buttons that look like the lecturer nav links */
.mc-topbar button.mc-nav-link, .mc-topbar button.mc-inbox { min-height: 0; background: transparent; cursor: pointer; line-height: 1.3; }
.mc-topbar button.mc-nav-link:hover:not(:disabled), .mc-topbar button.mc-inbox:hover:not(:disabled) { background: var(--surface); border-color: transparent; }
.mc-topbar button.mc-nav-link[aria-current="page"], .mc-topbar button.mc-inbox[aria-current="page"] { background: var(--surface-2); border-color: var(--line-2); color: var(--ink); }
.mc-nav-team { margin-left: auto; }
.mc-nav-team + .mc-inbox { margin-left: 0; }

/* callouts and boxes ----------------------------------------------------------------------------- */
body.mc-student .s-callout { display: flex; gap: 10px; align-items: flex-start; padding: 11px 14px; border-radius: 10px; margin: 0 0 14px; font-size: 13.5px; line-height: 1.5;
  color: var(--ink); background: var(--cyan-bg); border: 1px solid rgba(95, 208, 220, .28); }
body.mc-student .s-callout .i { margin-top: 1px; color: var(--cyan); }
body.mc-student .s-callout.ok { background: var(--green-bg); border-color: rgba(123, 216, 143, .3); }
body.mc-student .s-callout.ok .i { color: var(--green); }
body.mc-student .s-callout.warn { background: var(--rust-bg); border-color: rgba(224, 96, 42, .4); }
body.mc-student .s-callout.warn .i { color: var(--rust-ink); }
body.mc-student .s-callout.lock { background: transparent; border: 1px dashed var(--line-2); color: var(--muted); }
body.mc-student .s-callout.lock .i { color: var(--faint); }
/* "Link to the lecture": one collapsed disclosure at the end of a station or guide section */
body.mc-student details.lecture-more { margin: 28px 0 0; border-top: 1px solid var(--line); padding-top: 12px; }
body.mc-student details.lecture-more > summary { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; color: var(--steel-ink); font-weight: 600; font-size: 13.5px; list-style: none; }
body.mc-student details.lecture-more > summary::-webkit-details-marker { display: none; }
body.mc-student details.lecture-more > summary::after { content: ""; width: 7px; height: 7px; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: rotate(45deg); margin: -3px 0 0 4px; transition: transform .15s; }
body.mc-student details.lecture-more[open] > summary::after { transform: rotate(225deg); margin-top: 3px; }
body.mc-student details.lecture-more > summary:focus-visible { outline: 2px solid var(--steel); outline-offset: 3px; border-radius: 4px; }
body.mc-student .lecture-items { display: flex; flex-direction: column; gap: 10px; margin-top: 10px; }
body.mc-student .lecture-item { padding: 2px 0 2px 14px; border-left: 2px solid var(--steel); max-width: 820px; }
body.mc-student .lecture-item p { margin: 0; color: var(--ink); font-size: 13.5px; }
body.mc-student .lecture-item p.lecture-source { color: var(--steel-ink); font-size: 12.5px; margin-top: 3px; }
body.mc-student p.lecture-intro { margin: 0; color: var(--ink); font-size: 13.5px; max-width: 820px; }
body.mc-student ul.lecture-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
body.mc-student .lecture-slides { margin-top: 4px; }
body.mc-student p.lecture-slides-title { margin: 0 0 8px; color: var(--ink); font-size: 13.5px; }
body.mc-student .lecture-slides-row { display: flex; flex-wrap: wrap; gap: 8px; }
body.mc-student .lf-box { border: 1px solid rgba(169, 155, 255, .32); border-left: 3px solid var(--violet); background: var(--violet-bg); border-radius: 0 12px 12px 0; padding: 12px 16px; margin: 0 0 16px; }
body.mc-student .lf-head { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; color: var(--violet-ink); margin-bottom: 8px; }
body.mc-student .lf-head b { color: var(--violet-ink); }
body.mc-student .lf-head span { color: var(--muted); font-size: 12.5px; }
body.mc-student .lf-msg { display: flex; gap: 14px; align-items: baseline; padding: 6px 0; border-top: 1px solid rgba(169, 155, 255, .18); }
body.mc-student .lf-msg p { margin: 0; color: var(--ink); white-space: pre-wrap; flex: 1; }
body.mc-student .lf-msg time { color: var(--faint); font-size: 12px; white-space: nowrap; }
body.mc-student .lf-box .btn.ghost { color: var(--violet-ink); padding-left: 0; margin-top: 4px; }

/* team home ----------------------------------------------------------------------------------------- */
body.mc-student .home-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 28px; align-items: start; }
body.mc-student .home-section-title { font: 600 11px var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--faint); margin: 0 0 10px; }
body.mc-student .home-programme { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
body.mc-student .home-row { position: relative; display: grid; grid-template-columns: 28px minmax(0, 1fr) auto auto; gap: 14px; align-items: center; padding: 13px 14px; border-top: 1px solid var(--line); border-radius: 10px; }
body.mc-student .home-row:first-child { border-top-color: transparent; }
body.mc-student .home-row.is-current + .home-row { border-top-color: transparent; }
body.mc-student .home-row:not(.is-current):hover { background: var(--surface); }
body.mc-student .home-row h3 { margin: 2px 0 0; font-size: 15px; }
body.mc-student .home-row-no { width: 28px; height: 28px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--line-2); color: var(--muted); font: 600 12px var(--mono); }
body.mc-student .home-row-body { min-width: 0; }
body.mc-student button.home-row-open { min-height: 0; padding: 4px 2px; border: 0; background: transparent; color: var(--cyan-ink); font-weight: 600; font-size: 13px; display: inline-flex; align-items: center; gap: 4px; cursor: pointer; }
body.mc-student button.home-row-open::after { content: ""; position: absolute; inset: 0; border-radius: 10px; }
body.mc-student button.home-row-open:focus-visible { outline: none; }
body.mc-student button.home-row-open:focus-visible::after { outline: 2px solid var(--cyan); outline-offset: -2px; }
body.mc-student .home-row.is-current { grid-template-columns: 28px minmax(0, 1fr); align-items: start; padding: 20px 22px; margin: 4px 0 8px; border: 1px solid var(--line-2); border-left: 3px solid var(--cyan);
  background: linear-gradient(150deg, #1a2030, #171d2a); }
body.mc-student .home-row.is-current .home-row-no { border-color: var(--cyan); color: var(--cyan-ink); }
body.mc-student .home-row-top { display: flex; justify-content: flex-start; align-items: center; gap: 12px; flex-wrap: wrap; }
body.mc-student .home-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
body.mc-student .home-card-title { min-width: 0; }
body.mc-student .home-card-head > .btn { flex: 0 0 auto; margin-top: 4px; }
body.mc-student .home-row-chip:empty { display: none; }
body.mc-student .home-row.is-current h3.home-mission-title { font-size: 23px; letter-spacing: -.02em; margin: 6px 0 8px; }
body.mc-student .home-objective { color: var(--muted); font-size: 14.5px; max-width: 720px; margin: 0 0 10px; }
body.mc-student .home-due, body.mc-student .home-late { display: flex; align-items: center; gap: 8px; margin: 0 0 4px; color: var(--ink); font-size: 13.5px; }
body.mc-student .home-due .i { color: var(--faint); }
body.mc-student .home-late { color: var(--rust-ink); }
body.mc-student .home-step { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
body.mc-student .home-step p { margin: 0; color: var(--ink); font-size: 15px; line-height: 1.5; max-width: 640px; }
body.mc-student .home-step-label { font: 600 10.5px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--amber); margin-right: 4px; }
body.mc-student .home-step .btn { flex: 0 0 auto; }
body.mc-student .home-team { padding: 18px 20px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
body.mc-student .home-team h2 { margin: 0 0 8px; font-size: 15px; }
body.mc-student .home-members { list-style: none; margin: 0 0 14px; padding: 0; }
body.mc-student .home-members li { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-top: 1px solid var(--line); }
body.mc-student .home-members li:first-child { border-top: 0; }
body.mc-student .home-members .who { flex: 1; min-width: 0; font-weight: 600; font-size: 13.5px; }
body.mc-student .home-members .sm-badge { font: 600 10px var(--mono); letter-spacing: .1em; color: var(--cyan-ink); border: 1px solid rgba(95, 208, 220, .45); border-radius: 6px; padding: 2px 7px; white-space: nowrap; }
body.mc-student .team-sm-form { padding-top: 12px; border-top: 1px solid var(--line); }
body.mc-student .team-sm-form > label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; }
body.mc-student .team-sm-row { display: flex; flex-wrap: wrap; gap: 8px; }
body.mc-student .team-sm-row select { flex: 1 1 100%; min-height: 40px; padding: 6px 10px; }
body.mc-student .team-sm-row .btn { flex: 0 0 auto; min-height: 38px; }
body.mc-student .team-sm-form .hint { margin: 8px 0 0; font-size: 12.5px; }

/* inbox --------------------------------------------------------------------------------------------- */
body.mc-student .ibx { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 18px; align-items: start; }
body.mc-student .ibx-list ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
body.mc-student button.ibx-item { width: 100%; display: flex; flex-direction: column; align-items: stretch; gap: 3px; text-align: left; padding: 11px 13px 11px 14px; border-radius: 11px;
  background: var(--surface); border: 1px solid var(--line); border-left: 3px solid var(--line-2); color: var(--ink); font-weight: 500; cursor: pointer; }
body.mc-student button.ibx-item:hover:not(:disabled) { background: var(--surface-2); }
body.mc-student button.ibx-item.on { background: var(--surface-2); border-color: var(--line-2); box-shadow: 0 0 0 1px rgba(95, 208, 220, .3); }
body.mc-student .ibx-item.k-esra { border-left-color: var(--cyan); }
body.mc-student .ibx-item.k-lecturer_team, body.mc-student .ibx-item.k-lecturer_private { border-left-color: var(--violet); }
body.mc-student .ibx-item.k-system { border-left-color: var(--faint); }
body.mc-student .ibx-item-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
body.mc-student .ibx-item-head b { font-size: 13.5px; }
body.mc-student .ibx-item-last { color: var(--muted); font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.mc-student .ibx-item.unread .ibx-item-last { color: var(--ink); }
body.mc-student .ibx-item-time { color: var(--faint); font-size: 11.5px; }
body.mc-student .ibx-thread { padding: 20px 22px; background: linear-gradient(150deg, #1a2030, #171d2a); border: 1px solid var(--line); border-radius: 12px; }
body.mc-student .ibx-thread.k-lecturer_team, body.mc-student .ibx-thread.k-lecturer_private { border-top: 3px solid var(--violet); }
body.mc-student .ibx-thread.k-esra { border-top: 3px solid var(--cyan); }
body.mc-student .ibx-thread.k-lecturer_team .eyebrow, body.mc-student .ibx-thread.k-lecturer_private .eyebrow { color: var(--violet-ink); }
body.mc-student .ibx-thread.k-system .eyebrow { color: var(--faint); }
body.mc-student .ibx-thread-head h2 { font-size: 20px; margin: 6px 0 4px; }
body.mc-student .ibx-thread-head h2:focus { outline: none; }
body.mc-student .ibx-back { display: none; }
body.mc-student .ibx-messages { display: flex; flex-direction: column; }
body.mc-student .ibx-new { display: flex; align-items: center; gap: 10px; margin: 6px 0 12px; color: var(--amber); font: 600 10.5px var(--mono); letter-spacing: .1em; text-transform: uppercase; }
body.mc-student .ibx-new::before, body.mc-student .ibx-new::after { content: ""; flex: 1; height: 1px; background: rgba(233, 196, 106, .35); }
body.mc-student .ibx-form { margin-top: 12px; padding-top: 14px; border-top: 1px solid var(--line); }
body.mc-student .ibx-note { display: flex; gap: 8px; align-items: flex-start; color: var(--muted); font-size: 13px; margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--line); }
body.mc-student .ibx-note .i { color: var(--faint); margin-top: 1px; }
body.mc-student .ibx-label { display: block; color: var(--muted); font-size: 13px; margin-bottom: 6px; }
body.mc-student .ibx-quiet-list { margin-top: 12px !important; gap: 2px !important; }
body.mc-student .ibx-list button.ibx-quiet { width: 100%; display: flex; justify-content: flex-start; text-align: left; min-height: 0; padding: 7px 14px; border: 0; border-radius: 8px; background: transparent; color: var(--faint); font-weight: 500; font-size: 13px; cursor: pointer; }
body.mc-student .ibx-list button.ibx-quiet:hover:not(:disabled), body.mc-student .ibx-list button.ibx-quiet.on { background: var(--surface); color: var(--muted); }
body.mc-student .ibx-thread-head { margin-bottom: 12px; }
body.mc-student .sys-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 0 0 8px; padding: 2px 0 2px 12px; border-left: 2px solid var(--line-2); color: var(--muted); font-size: 12.5px; line-height: 1.5; }
body.mc-student .sys-line > span { flex: 1 1 260px; }
body.mc-student .sys-line time { color: var(--faint); font-size: 11.5px; white-space: nowrap; }
body.mc-student .link-btn.ibx-station { font-size: 12.5px; white-space: nowrap; }
body.mc-student .hmsg .link-btn.ibx-station { display: inline-block; margin-top: 4px; }

/* mission head, stepper, next step ---------------------------------------------------------------- */
body.mc-student .mission-head .meta-row { margin-top: 4px; }
body.mc-student .mission-head .meta-row .late { color: var(--rust-ink); }
body.mc-student .mission-head .version { color: var(--faint); }
body.mc-student .mission-head .home-late { margin-top: 10px; }
/* scroll-margin keeps the stepper below the sticky header (64 px) when a station scrolls it into view. */
body.mc-student .s-stepper { display: flex; gap: 4px; padding: 8px; margin-bottom: 26px; scroll-margin-top: 76px;
  background: var(--surface); border: 1px solid var(--line); border-radius: 14px; }
body.mc-student button.s-step { flex: 1 1 auto; min-width: 0; position: relative; display: flex; align-items: center; gap: 10px; padding: 10px 10px; border-radius: 10px; min-height: 0;
  background: transparent; border: 1px solid transparent; color: var(--ink); text-align: left; cursor: pointer; font-weight: 500; justify-content: flex-start; }
body.mc-student button.s-step:hover:not(:disabled) { background: var(--surface-2); border-color: transparent; }
body.mc-student button.s-step.viewing { background: var(--surface-2); border-color: var(--line-2); box-shadow: inset 0 -2px 0 var(--cyan); }
body.mc-student .s-dot { width: 28px; height: 28px; flex: 0 0 28px; border-radius: 50%; display: grid; place-items: center; font: 600 11px var(--mono);
  border: 2px solid var(--line-2); color: var(--faint); background: var(--bg-2); }
body.mc-student .s-step.k-done .s-dot { background: var(--green); border-color: var(--green); color: #0f131c; }
body.mc-student .s-step.k-progress .s-dot { border-color: var(--cyan); color: var(--cyan); }
body.mc-student .s-step.k-wait .s-dot { border-color: var(--amber); color: var(--amber); }
body.mc-student .s-step.k-changes .s-dot { border-color: var(--rust); color: var(--rust-ink); background: #2b211e; }
body.mc-student .s-step.k-locked .s-dot { border-style: dashed; }
body.mc-student .s-step.next .s-dot { box-shadow: 0 0 0 4px rgba(233, 196, 106, .18); border-color: var(--amber); }
body.mc-student .s-text { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
body.mc-student .s-name { font-weight: 650; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.mc-student .s-no { font: 600 11px var(--mono); color: var(--faint); }
body.mc-student .s-sub { font-size: 11.5px; color: var(--faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.mc-student .s-step.k-wait .s-sub, body.mc-student .s-step.next .s-sub { color: var(--amber); }
body.mc-student .s-step.k-changes .s-sub { color: var(--rust-ink); }
body.mc-student .s-step.k-done .s-sub { color: var(--green); }

/* station pages ------------------------------------------------------------------------------------ */
body.mc-student .station-page:focus { outline: none; }
body.mc-student .s-part { margin: 0 0 30px; max-width: 980px; }
body.mc-student .s-part > h3 { font-size: 16px; margin: 0 0 10px; }
body.mc-student .s-part > .prose:last-child { margin-bottom: 0; }
body.mc-student .station-note { color: var(--muted); font-size: 13.5px; margin: 0 0 18px; max-width: 820px; }
body.mc-student .station-note.done-line { display: flex; align-items: center; gap: 8px; color: var(--green); font-weight: 600; }
body.mc-student .order-box { margin-bottom: 30px; max-width: 980px; }
body.mc-student .order-box p.order-text { font-size: 15px; line-height: 1.6; }
body.mc-student .goal-box { margin-bottom: 0; }
body.mc-student .goal-box p { font-size: 15px; }
body.mc-student .backlog-table { width: 100%; }
body.mc-student .backlog-table td { vertical-align: top; font-size: 13.5px; }
body.mc-student .backlog-table td:first-child { white-space: nowrap; }
body.mc-student .backlog-table code { color: var(--rust-ink); font-weight: 700; }
body.mc-student .dod li { display: flex; gap: 10px; }
body.mc-student .dod li b { flex: 0 0 auto; color: var(--rust-ink); }
body.mc-student .dod.compact li { margin: 4px 0; font-size: 13px; }
body.mc-student .role-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 0; }
body.mc-student .role-item { padding-left: 12px; border-left: 2px solid var(--line-2); }
body.mc-student .role-item dt { font-weight: 650; font-size: 14px; margin-bottom: 4px; }
body.mc-student .role-item dd { margin: 0; color: var(--muted); font-size: 13.5px; line-height: 1.5; }
body.mc-student .sim-bar { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 24px; }
body.mc-student .submit-row { justify-content: space-between; gap: 18px; }
body.mc-student .submit-row > .hint { margin: 0; flex: 1 1 320px; max-width: 640px; font-size: 13px; }
body.mc-student .dl-links { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 12px 0 0; font-size: 13px; }
body.mc-student a.dl-link { display: inline-flex; align-items: center; gap: 6px; color: var(--cyan-ink); font-size: 13px; }
body.mc-student .file-row { border-color: transparent; border-bottom-color: var(--line); border-radius: 0; padding: 8px 0; }
body.mc-student .deliverables { list-style: none; margin: 0; padding: 0; }
body.mc-student .deliverables li { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 12px; padding: 8px 0; border-top: 1px solid var(--line); font-size: 13.5px; }
body.mc-student .deliverables li span { color: var(--muted); }
body.mc-student .deliverables + .prose { margin-top: 12px; }
body.mc-student ol.steps { margin: 0; padding: 0; list-style: none; counter-reset: s; }
body.mc-student ol.steps li { counter-increment: s; position: relative; padding: 6px 0 6px 36px; color: var(--muted); font-size: 13.5px; }
body.mc-student ol.steps li::before { content: counter(s); position: absolute; left: 0; top: 5px; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center;
  font: 600 11px var(--mono); color: var(--cyan-ink); border: 1px solid rgba(95, 208, 220, .4); }

/* Sprint Planning ------------------------------------------------------------------------------------ */
body.mc-student .status-strip { display: flex; align-items: center; gap: 12px; margin: 0 0 14px; }
body.mc-student .status-strip p { margin: 0; color: var(--ink); font-size: 13.5px; }
body.mc-student .review-list { margin-bottom: 14px; }
body.mc-student .plan-review.latest { box-shadow: 0 0 0 1px rgba(95, 208, 220, .25); }
body.mc-student .plan-panel { margin-bottom: 10px; }
body.mc-student .plan-step { border: 0; margin: 0; padding: 4px 0 18px; min-width: 0; }
body.mc-student .plan-step legend { display: flex; align-items: center; gap: 10px; font-weight: 650; font-size: 15px; padding: 0; margin-bottom: 6px; }
body.mc-student .step-no { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font: 700 12px var(--mono); color: #0b1d22; background: var(--cyan); flex: 0 0 26px; }
body.mc-student .plan-step > .hint { margin: 0 0 10px 36px; font-size: 12.5px; max-width: 780px; }
body.mc-student .plan-step > .field, body.mc-student .plan-step > .pb-choice, body.mc-student .plan-step > .reason-field, body.mc-student .plan-step > .task-list,
body.mc-student .plan-step > .task-head, body.mc-student .plan-step > .btn, body.mc-student .plan-step > .dod, body.mc-student .plan-step > .dod-list,
body.mc-student .plan-step > h4, body.mc-student .plan-step > .pg-ref, body.mc-student .plan-step > p.hint:not(:first-of-type) { margin-left: 36px; }
body.mc-student .plan-step > .field:not(.reason-field) > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
body.mc-student .sprint-backlog-group { border: 1px dashed rgba(95, 208, 220, .35); border-radius: 12px; padding: 12px 14px 0; margin: 4px 0 18px; }
body.mc-student .sbg-label { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; margin-bottom: 10px; color: var(--muted); font-size: 12.5px; }
body.mc-student .pg-ref { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; padding: 8px 12px; margin-bottom: 10px; border-radius: 8px;
  background: rgba(224, 96, 42, .06); border-left: 3px solid var(--rust); color: var(--muted); font-size: 13px; }
body.mc-student .pg-ref .eyebrow { color: var(--rust-ink); font-size: 10px; }
body.mc-student .pb-choice { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; margin-bottom: 14px; }
body.mc-student .pb-pick { display: grid; grid-template-columns: 18px 48px minmax(0, 1fr); gap: 10px; align-items: start; padding: 10px 12px; border-top: 1px solid var(--line); cursor: pointer; }
body.mc-student .pb-pick:first-child { border-top: 0; }
body.mc-student .pb-pick:hover { background: var(--surface-2); }
body.mc-student .pb-pick:has(input:checked) { background: rgba(95, 208, 220, .06); }
body.mc-student .pb-pick input { margin-top: 3px; }
body.mc-student .pb-pick code { font-weight: 700; color: var(--rust-ink); padding-top: 1px; }
body.mc-student .pb-pick-text { display: flex; flex-direction: column; gap: 2px; font-size: 13.5px; }
body.mc-student .pb-pick-text .faint { font-size: 12.5px; }
body.mc-student .reason-field > label { font-size: 13.5px; }
body.mc-student .reason-field .hint { margin: 0; }
body.mc-student .task-head, body.mc-student .task-row { display: grid; grid-template-columns: minmax(0, 2.4fr) minmax(0, 1.2fr) minmax(0, .8fr) minmax(0, 1fr) 34px; gap: 8px; align-items: center; }
body.mc-student .task-head { font: 600 10.5px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--faint); padding: 0 2px 6px; }
body.mc-student .task-list { display: flex; flex-direction: column; gap: 8px; margin: 0 0 10px; }
body.mc-student .task-row, body.mc-student .task-row.sprint-task { padding: 0; margin: 0; border: 0; align-items: center; }
body.mc-student .task-row input, body.mc-student .task-row select { font-size: 13px; }
body.mc-student .hmsg .hm-head .st { height: 21px; font-size: 11.5px; }
body.mc-student .task-row .field > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
body.mc-student .task-row .field { gap: 0; }
body.mc-student .dod-list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
body.mc-student .dod-row { display: grid; grid-template-columns: minmax(0, 1fr) 34px; gap: 8px; align-items: center; }
body.mc-student .plan-save { border-top: 1px solid var(--line); padding-top: 14px; margin-top: 4px; }
body.mc-student .send-plan { display: flex; gap: 18px; align-items: center; justify-content: space-between; margin: 0 0 26px; padding-top: 18px; border-top: 1px solid var(--line); }
body.mc-student .send-plan h3 { margin-bottom: 10px; }
body.mc-student .send-plan-text { min-width: 0; flex: 1; }
body.mc-student .send-check { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 8px; margin: 0 0 10px; padding: 0; }
body.mc-student .send-check li { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px 3px 7px; border-radius: 999px; font-size: 12.5px; border: 1px solid var(--line-2); color: var(--muted); }
body.mc-student .send-check li.ok { color: var(--green); border-color: rgba(123, 216, 143, .3); background: var(--green-bg); }
body.mc-student .send-check li.open { border-style: dashed; }
body.mc-student #send-note { margin: 0; font-size: 12.5px; }
body.mc-student .send-plan .station-note { margin: 10px 0 0; }
body.mc-student details.baseline, body.mc-student details.deliver-again, body.mc-student details.handin-old { margin: 0 0 22px; padding: 12px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
body.mc-student details.baseline > summary, body.mc-student details.deliver-again > summary, body.mc-student details#change-sm > summary, body.mc-student details.handin-old > summary { cursor: pointer; font-weight: 650; }
body.mc-student details.handin-old { margin: 0 0 10px; border-bottom: 0; }
body.mc-student details.handin-old > summary { font-weight: 600; color: var(--muted); font-size: 13.5px; }
body.mc-student details.handin-old[open] > summary { margin-bottom: 12px; }
body.mc-student details.baseline[open] > summary, body.mc-student details.deliver-again[open] > summary { margin-bottom: 12px; }
body.mc-student .baseline .kv dd { color: var(--muted); }

/* Development ------------------------------------------------------------------------------------------ */
body.mc-student .work-status { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
body.mc-student .ws-tile { display: flex; flex-direction: column; gap: 3px; padding: 12px 14px; border-radius: 10px; border: 1px dashed var(--line-2); min-width: 0; }
body.mc-student .ws-tile .sub-h { margin: 0 0 2px; }
body.mc-student .ws-tile.has { border-style: solid; background: var(--bg-2); }
body.mc-student .ws-tile b { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.mc-student .upload-box { margin: 4px 0 6px; }
body.mc-student .upload-box h4 { margin: 0 0 10px; font-size: 13.5px; }
body.mc-student .upload-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) auto; gap: 12px; align-items: end; }
body.mc-student .upload-grid input[type="file"] { font-size: 13px; color: var(--muted); padding: 7px 0; max-width: 100%; }
body.mc-student .upload-form .hint { margin: 8px 0 0; }
body.mc-student .file-list { display: flex; flex-direction: column; gap: 8px; }
body.mc-student .file-row { display: grid; grid-template-columns: 70px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 8px 10px; border-radius: 10px; border: 1px solid var(--line); }
body.mc-student .file-row .scanmap-thumb { width: 70px; flex-basis: 70px; }
body.mc-student .file-icon { display: grid; place-items: center; width: 70px; height: 46px; border-radius: 8px; background: var(--bg-2); color: var(--faint); }
body.mc-student .file-meta { min-width: 0; }
body.mc-student .file-meta .file-name { display: flex; align-items: center; gap: 8px; min-width: 0; }
body.mc-student .file-meta strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
body.mc-student .file-meta .hint { margin: 2px 0 0; }

/* Increment & Review ------------------------------------------------------------------------------------- */
body.mc-student .self-check, body.mc-student .deliver-step { border: 0; padding: 0; margin: 0 0 18px; min-width: 0; }
body.mc-student .self-check legend, body.mc-student .deliver-step legend { font-weight: 650; font-size: 14.5px; padding: 0; margin-bottom: 6px; }
body.mc-student .self-check-row { padding: 6px 0; border-top: 1px solid var(--line); }
body.mc-student .self-check-row b { font-family: var(--mono); font-size: 12px; color: var(--rust-ink); }
body.mc-student .deliver-files { display: grid; gap: 12px; }
body.mc-student .deliver-files.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.mc-student .deliver-files.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.mc-student .note-blocks { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 8px 0 10px; }
body.mc-student .note-blocks .btn.ghost { border: 1px dashed rgba(95, 208, 220, .4); height: 28px; }
body.mc-student .delivery-card { margin-bottom: 14px; }
body.mc-student .dc-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
body.mc-student .dc-head h3 { margin: 0; font-size: 17px; }
body.mc-student .chip-row { display: inline-flex; gap: 8px; flex-wrap: wrap; }
body.mc-student .dc-grid { display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 1fr); gap: 20px; align-items: start; margin-top: 8px; }
body.mc-student .dc-grid > :only-child { grid-column: 1 / -1; }
body.mc-student .scanmap-figure { margin: 6px 0 0; max-width: none; }
body.mc-student button.scanmap-preview { width: 100%; padding: 0; background: #0b0f16; border: 1px solid var(--line-2); border-radius: 10px; cursor: zoom-in; display: block; }
body.mc-student button.scanmap-preview .zoom-hint { position: absolute; right: 8px; bottom: 8px; padding: 2px 8px; border-radius: 6px; background: rgba(15, 19, 28, .85); color: var(--muted); font-size: 11.5px; }
body.mc-student button.scanmap-thumb { padding: 0; min-height: 0; background: #0b0f16; }
body.mc-student .result-list { list-style: none; margin: 0 0 6px; padding: 0; }
body.mc-student .result-list li { display: grid; grid-template-columns: 116px minmax(0, 1fr); gap: 10px; align-items: start; padding: 7px 0; border-top: 1px solid var(--line); }
body.mc-student .result-list li:first-child { border-top: 0; }
body.mc-student .result-list li .badge { justify-self: start; margin-top: 1px; }
body.mc-student .result-list li strong { font-size: 13px; }
body.mc-student .result-list li p { margin: 2px 0 0; font-size: 12.5px; }
body.mc-student .result-list li.outside strong { color: var(--muted); }
body.mc-student .outside-items { margin-top: 10px; }
body.mc-student .outside-items > summary { cursor: pointer; color: var(--muted); font-size: 12.5px; font-weight: 600; }
body.mc-student .outside-items .hint { margin: 4px 0; }
body.mc-student .item-column .sprint-count { margin: 0 0 6px; }
body.mc-student .wall { grid-template-columns: minmax(0, 1fr) 90px 52px; }
body.mc-student .handover { white-space: pre-wrap; color: var(--ink); }
body.mc-student .esra-review { margin-top: 14px; }
body.mc-student .esra-pending { margin: 14px 0 0; }
body.mc-student .review-rules .kv { grid-template-columns: 180px minmax(0, 1fr); }
body.mc-student .review-rules .kv dd { color: var(--muted); }
body.mc-student .feedback-form { margin-top: 14px; }

/* Retrospective ------------------------------------------------------------------------------------------- */
body.mc-student .retro-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
body.mc-student .retro-grid .plan-step { padding: 0 0 0 14px; border-left: 2px solid var(--line-2); border-radius: 0; }
body.mc-student .retro-grid .field { margin-bottom: 12px; }
body.mc-student .retro-grid .plan-step > .field:not(.reason-field) > label { position: static; width: auto; height: auto; clip: auto; overflow: visible; font-size: 13px; }
body.mc-student .next-backlog { display: flex; gap: 8px; align-items: flex-start; margin: 4px 0 0; color: var(--cyan-ink); font-size: 12.5px; }

/* responsive ----------------------------------------------------------------------------------------------- */
@media (max-width: 1100px) {
  body.mc-student .s-name { font-size: 12.5px; }
  body.mc-student .s-dot { width: 24px; height: 24px; flex-basis: 24px; }
  body.mc-student button.s-step { gap: 8px; padding: 9px 8px; }
}
@media (max-width: 960px) {
  body.mc-student .home-grid, body.mc-student .ibx { grid-template-columns: minmax(0, 1fr); }
  body.mc-student .role-list { grid-template-columns: 1fr; gap: 12px; }
  body.mc-student .dc-grid { grid-template-columns: 1fr; }
  body.mc-student .s-stepper { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  body.mc .page.team-page { padding: 18px 14px 70px; }
  body.mc-student .page-head { flex-direction: column; align-items: stretch; gap: 12px; }
  body.mc-student .page-head h1 { font-size: 25px; }
  body.mc-student .head-actions { justify-content: flex-start; }
  body.mc-student .home-row { grid-template-columns: 28px minmax(0, 1fr) auto; padding: 12px 8px; gap: 10px; }
  body.mc-student .home-row > .home-row-chip { grid-column: 2; grid-row: 2; justify-self: start; }
  body.mc-student .home-card-head { flex-direction: column; align-items: stretch; gap: 10px; }
  body.mc-student .home-card-head > .btn { margin-top: 0; justify-content: center; }
  body.mc-student .home-row > .home-row-open { grid-column: 3; grid-row: 1 / span 2; }
  body.mc-student .home-row.is-current { padding: 16px 14px; grid-template-columns: minmax(0, 1fr); }
  body.mc-student .home-row.is-current .home-row-no { display: none; }
  body.mc-student .home-row.is-current h3.home-mission-title { font-size: 20px; }
  body.mc-student .home-step { flex-direction: column; align-items: stretch; }
  body.mc-student .submit-row { flex-direction: column; align-items: stretch; }
  body.mc-student .ibx.has-thread .ibx-list { display: none; }
  body.mc-student .ibx.has-thread .ibx-back { display: inline-flex; margin: 0 0 8px -6px; }
  body.mc-student .ibx-thread { padding: 16px 14px; }
  body.mc-student .s-stepper { gap: 4px; padding: 6px; scroll-margin-top: 72px; }
  body.mc-student button.s-step { padding: 8px 6px; gap: 6px; }
  body.mc-student .s-dot { width: 22px; height: 22px; flex-basis: 22px; font-size: 10px; }
  body.mc-student .s-no { display: none; }
  body.mc-student .s-name { font-size: 12px; white-space: normal; line-height: 1.2; }
  body.mc-student .s-sub { font-size: 10.5px; white-space: normal; }
  body.mc-student button.s-step { flex-direction: column; align-items: center; text-align: center; justify-content: flex-start; }
  body.mc-student .s-text { align-items: center; }
  body.mc-student .s-name, body.mc-student .s-sub { overflow: visible; }
  body.mc-student .backlog-table th:nth-child(3), body.mc-student .backlog-table td:nth-child(3) { display: none; }
  body.mc-student .plan-step > .hint, body.mc-student .plan-step > .field, body.mc-student .plan-step > .pb-choice, body.mc-student .plan-step > .reason-field,
  body.mc-student .plan-step > .task-list, body.mc-student .plan-step > .task-head, body.mc-student .plan-step > .btn, body.mc-student .plan-step > .dod,
  body.mc-student .plan-step > .dod-list, body.mc-student .plan-step > h4, body.mc-student .plan-step > .pg-ref, body.mc-student .plan-step > p.hint:not(:first-of-type) { margin-left: 0; }
  body.mc-student .sprint-backlog-group { padding: 10px 10px 0; }
  body.mc-student .task-head { display: none; }
  body.mc-student .task-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding: 10px; border: 1px solid var(--line); border-radius: 10px; }
  body.mc-student .task-row .field:first-child { grid-column: 1 / -1; }
  body.mc-student .task-row .field > label { position: static; width: auto; height: auto; clip: auto; overflow: visible; font-size: 11.5px; color: var(--faint); margin-bottom: 3px; }
  body.mc-student .task-row .remove-task { grid-column: 2; justify-self: end; }
  body.mc-student .send-plan { flex-direction: column; align-items: stretch; }
  body.mc-student .work-status, body.mc-student .deliver-files.cols-3, body.mc-student .deliver-files.cols-2, body.mc-student .upload-grid { grid-template-columns: 1fr; }
  body.mc-student .file-row { grid-template-columns: 54px minmax(0, 1fr); }
  body.mc-student .file-row .dl-link { grid-column: 2; justify-self: start; }
  body.mc-student .file-row .scanmap-thumb, body.mc-student .file-icon { width: 54px; }
  body.mc-student .result-list li { grid-template-columns: 1fr; gap: 4px; }
  body.mc-student .retro-grid { grid-template-columns: 1fr; }
  body.mc-student .deliverables li { grid-template-columns: 1fr; gap: 2px; }
  body.mc-student .review-rules .kv { grid-template-columns: 1fr; }
  body.mc-student .wall { grid-template-columns: minmax(0, 1fr) 60px 52px; }
}
body.mc-student .retro-grid .plan-step > .field, body.mc-student .retro-grid .plan-step > p { margin-left: 0; }
body.mc-student .home-goal { display: flex; flex-direction: column; gap: 3px; margin: 0 0 12px; padding: 8px 12px; border-left: 3px solid var(--cyan); background: var(--cyan-bg); border-radius: 0 8px 8px 0; color: var(--ink); font-size: 13.5px; max-width: 720px; }
body.mc-student .home-goal .eyebrow { font-size: 10px; }
body.mc-student .s-step.k-info .s-dot, body.mc-student .s-step.k-next .s-dot { background: transparent; }
body.mc-student .s-step.k-info .s-dot::after, body.mc-student .s-step.k-next .s-dot::after { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--faint); }
body.mc-student .section-title { margin-top: 22px; }
body.mc-student button.scanmap-preview .zoom-hint { font-family: var(--sans); }
body.mc-student .ibx > *, body.mc-student .home-grid > * { min-width: 0; }
body.mc-student .hmsg .hm-head .st { margin-left: 4px; }
body.mc-student .s-callout blockquote { margin: 6px 0 0; padding-left: 10px; border-left: 2px solid rgba(224, 96, 42, .5); color: var(--ink); font-style: normal; }
@media (max-width: 760px) { body.mc-student .status-strip { flex-direction: column; align-items: flex-start; gap: 6px; } }

/* ---------- familiarisation missions (01 Briefing, 02 Step by step, 03 ESRA, 04 Hand-in & result) ---------- */
body.mc-student .fam-stepper { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body.mc-student .guide-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 28px; align-items: start; }
body.mc-student .guide-nav { position: sticky; top: 80px; }
body.mc-student .guide-nav ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
body.mc-student button.guide-nav-item { width: 100%; min-height: 0; display: grid; grid-template-columns: 34px minmax(0, 1fr) 14px; gap: 6px; align-items: start; text-align: left; padding: 7px 10px;
  border: 0; border-left: 2px solid transparent; border-radius: 0 8px 8px 0; background: transparent; color: var(--muted); font-weight: 500; font-size: 13px; line-height: 1.35; cursor: pointer; }
body.mc-student button.guide-nav-item:hover:not(:disabled) { background: var(--surface); color: var(--ink); }
body.mc-student button.guide-nav-item.on { background: var(--surface-2); border-left-color: var(--cyan); color: var(--ink); font-weight: 600; }
body.mc-student .guide-nav-no { font: 600 12px var(--mono); color: var(--faint); padding-top: 1px; }
body.mc-student button.guide-nav-item.on .guide-nav-no { color: var(--cyan-ink); }
body.mc-student .guide-nav-tick { visibility: hidden; color: var(--green); padding-top: 2px; }
body.mc-student button.guide-nav-item.is-done .guide-nav-tick { visibility: visible; }
body.mc-student .guide-main { min-width: 0; scroll-margin-top: 80px; }
body.mc-student .guide-select { display: none; }
body.mc-student .guide-card { min-width: 0; }
body.mc-student .guide-head { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
body.mc-student .guide-head h3 { margin: 2px 0 0; font-size: 19px; letter-spacing: -.01em; }
body.mc-student .guide-head h3:focus { outline: none; }
body.mc-student .guide-no { flex: 0 0 auto; min-width: 42px; height: 34px; padding: 0 6px; border-radius: 17px; display: inline-flex; align-items: center; justify-content: center;
  border: 2px solid var(--cyan); color: var(--cyan-ink); font: 600 14px var(--mono); }
body.mc-student .guide-card.is-done .guide-no { border-color: var(--green); color: var(--green); }
body.mc-student .guide-area { color: var(--cyan-ink); }
body.mc-student .guide-body { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 22px; align-items: start; }
body.mc-student .guide-shot { display: block; width: 100%; padding: 0; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: var(--bg-2); cursor: zoom-in; }
body.mc-student .guide-shot img { display: block; width: 100%; height: auto; }
body.mc-student .guide-placeholder { cursor: default; aspect-ratio: 16 / 10; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
  padding: 18px; text-align: center; color: var(--faint); font-size: 12.5px; border-style: dashed; }
body.mc-student .guide-placeholder .i { width: 28px; height: 28px; opacity: .7; }
body.mc-student .guide-text > .prose { margin-top: 0; color: var(--ink); }
body.mc-student .guide-steps { margin: 0 0 12px; }
body.mc-student ol.guide-steps li { color: #c3ccda; }
body.mc-student .guide-done-when { display: flex; gap: 8px; align-items: flex-start; margin: 4px 0 14px; color: var(--muted); font-size: 13px; }
body.mc-student .guide-done-when .i { color: var(--green); margin-top: 2px; flex: 0 0 auto; }
body.mc-student .guide-text details.lecture-more { margin: 4px 0 14px; padding-top: 10px; }
body.mc-student .guide-tick { display: inline-flex; align-items: center; gap: 8px; margin-top: 2px; color: var(--muted); font-size: 13px; cursor: pointer; }
body.mc-student .guide-pager { display: flex; justify-content: space-between; gap: 12px; margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--line); }
body.mc-student .answers-form .answer-field { margin-bottom: 16px; }
body.mc-student .answers-form .answer-field > label { display: block; font-weight: 600; color: var(--ink); margin-bottom: 4px; }
body.mc-student .q-no { display: inline-block; min-width: 28px; font: 600 12px var(--mono); color: var(--cyan-ink); }
body.mc-student #fam-files h3, body.mc-student #fam-questions h3, body.mc-student #fam-handin h3 { display: flex; align-items: center; gap: 8px; }
body.mc-student .fam-dc-grid { grid-template-columns: minmax(0, 1fr); }
body.mc-student .fam-dc-grid:has(.scanmap-figure) { grid-template-columns: minmax(0, 340px) minmax(0, 1fr); }
body.mc-student .answers-kv { grid-template-columns: minmax(0, 1fr); }
body.mc-student .answers-kv dt { color: var(--muted); font-weight: 500; }
body.mc-student .answers-kv dd { margin: 0 0 10px; }
button.link-btn { min-height: 0; padding: 0; border: 0; background: transparent; color: var(--cyan-ink); font: inherit; text-decoration: underline; cursor: pointer; }
.site-footer a.footer-link { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.site-footer a.footer-link:hover { color: var(--ink, #e9eef7); }
@media (max-width: 1180px) {
  body.mc-student .guide-body { grid-template-columns: minmax(0, 1fr); }
  body.mc-student .guide-shot { max-width: 720px; }
}
@media (max-width: 900px) {
  body.mc-student .guide-layout { grid-template-columns: minmax(0, 1fr); gap: 0; }
  body.mc-student .guide-nav { display: none; }
  body.mc-student .guide-select { display: flex; margin-bottom: 16px; }
}
@media (max-width: 980px) {
  body.mc-student .fam-dc-grid:has(.scanmap-figure) { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  body.mc-student .fam-stepper { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
body.mc-student .fam-tasks .task-why { margin: 2px 0 0; color: var(--rust-ink); }
