@import url("course-node.css?v=20261007-node1");
/* Sidebar styles moved to css/student-nav.css. */
/* Student course home. Remaining legacy recommendation widgets stay hidden. */
.rec-outer,
.home-assignments,
.page-body,
.challenge-outer {
  display: none !important;
}





.student-learning-home {
  min-height: calc(100vh - 56px);min-height: calc(100dvh - 56px);
  padding: 36px 24px 64px;
  background: #f7f8fc;
  color: #21212c;
}

.student-gem-toolbar {
  display: flex;
  justify-content: flex-end;
  width: min(1160px, 100%);
  margin: 0 auto 14px;
}
.student-gem-entry {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 76px;
  height: 44px;
  padding: 0 14px;
  border: 1px solid #d1d1d6;
  border-bottom-width: 4px;
  border-radius: 12px;
  background: #fff;
  color: #21212c;
  font: inherit;
  cursor: pointer;
  transition: border-color .16s, background .16s, transform .16s;
}
.student-gem-entry:hover { border-color: #babfff; background: #f7f8fc; transform: translateY(-1px); }
.student-gem-entry:focus { outline: none; }
.student-gem-entry:focus-visible { outline: 3px solid rgba(91, 80, 255,.22); outline-offset: 2px; }
.student-gem-entry svg { width: 25px; height: 22px; }
.student-gem-entry svg path:first-child { fill: #5b50ff; stroke: #5b50ff; stroke-width: 1.2; }
.student-gem-entry svg path:last-child { fill: none; stroke: #ccd5ff; stroke-width: 1.35; stroke-linejoin: round; }
.student-gem-entry strong { font-size: 18px; }

.student-learning-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 278px;
  align-items: start;
  gap: 24px;
  width: min(1160px, 100%);
  margin: 0 auto;
}

.student-learning-main { display: grid; gap: 28px; min-width: 0; }

.student-today-card {
  overflow: hidden;
  position: relative;
  min-height: 300px;
  padding: 46px 40% 42px 46px;
  border: 1px solid #d1d1d6;
  border-radius: 18px;
  background: linear-gradient(135deg, #fff 0%, #f7f8fc 58%, #ebefff 100%);
  box-shadow: 0 4px 14px rgba(15, 23, 42, .06);
}

.student-today-eyebrow,
.student-section-head p,
.student-mastery-head p {
  margin: 0 0 7px;
  color: #5b50ff;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
}

.student-today-card h1 { max-width: 620px; margin: 0; font-size: clamp(27px, 3vw, 38px); line-height: 1.2; }
.student-today-sub { margin: 13px 0 0; color: #787884; font-size: 15px; line-height: 1.65; }
.student-today-target { display: grid; gap: 3px; margin-top: 26px; }
.student-today-target span { margin-top:8px; color: #787884; font-size: 11px; font-weight: 800; letter-spacing:.04em; }
.student-today-target span:first-child { margin-top:0; }
.student-today-target strong { font-size: 18px; line-height: 1.45; }
.student-today-target b { font-size:16px; line-height:1.45; }
.student-today-target small { color: #787884; font-size: 12px; }
.student-today-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.student-today-actions button,
.student-today-actions a,
.student-unit-action {
  box-sizing: border-box;
  min-height: 44px;
  padding: 0 22px;
  border: 1px solid #ccd5ff;
  border-radius: 10px;
  background: #fff;
  color: #5b50ff;
  font: inherit;
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
}
.student-today-actions #studentContinueButton { min-width: 164px; border-color: #5b50ff; background: #5b50ff; color: #fff; box-shadow: 0 4px 0 #352dab; }
.student-today-actions #studentContinueButton:hover { background: #4b40e6; }
.student-today-actions a,.student-today-actions .student-today-all { display: inline-grid; place-items: center; min-width:164px; background:#fff; color:#5b50ff; box-shadow:none; }
.student-today-actions a:hover,.student-today-actions .student-today-all:hover { background: #ebefff; }

.student-today-art {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  display: grid;
  place-items: center;
  box-sizing: border-box;
  width: 38%;
  height: 100%;
  padding: 30px 8px;
  margin: 0;
}
.student-today-art svg { display:block; width:clamp(190px,20vw,232px); max-width:100%; height:auto; aspect-ratio:1; overflow:visible; filter:none; }
.student-assistant-body { fill:#5b50ff; stroke:none; }
.student-assistant-eye { fill:#fff; }
.student-assistant-pupil { fill:#21212c; }
.student-assistant-mouth { fill:none; stroke:#21212c; stroke-width:4.5; stroke-linecap:round; }
.student-assistant-eye-group { transform-box:fill-box; transform-origin:center; }
.student-today-art.is-blinking .student-assistant-eye-group { animation:student-assistant-blink .2s ease-in-out 1; }
@keyframes student-assistant-blink {
  0%, 100% { transform:scaleY(1); }
  50% { transform:scaleY(.08); }
}

.student-daily-missions {
  display: grid;
  gap: 15px;
  padding: 24px 26px;
  border: 1px solid #d1d1d6;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 3px 12px rgba(15, 23, 42, .045);
}
.student-mission-section-head { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.student-mission-section-head p { margin: 0 0 5px; color: #5b50ff; font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.student-mission-section-head h2 { margin: 0; font-size: 22px; }
.student-mission-section-head > strong { color: #565662; font-size: 13px; }
.student-daily-mission-list { display: grid; gap: 9px; }
.student-daily-mission-item {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 76px;
  padding: 12px 13px;
  border: 1px solid #d1d1d6;
  border-radius: 12px;
  background: #fbfdff;
}
.student-daily-mission-item.is-completed { background: #f5fbf7; border-color: #d3f1d5; }
.student-mission-status { display: grid; place-items: center; width: 22px; height: 22px; border: 2px solid #a0a0a7; border-radius: 50%; color: #fff; }
.student-mission-status.is-completed { border-color: #32a45d; background: #32a45d; }
.student-mission-status svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2.3; stroke-linecap: round; stroke-linejoin: round; }
.student-daily-mission-copy { display: grid; min-width: 0; gap: 2px; }
.student-daily-mission-copy small { color: #5b50ff; font-size: 10px; font-weight: 800; }
.student-daily-mission-copy strong { overflow: hidden; color: #21212c; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.student-daily-mission-copy span { overflow: hidden; color: #787884; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.student-daily-mission-item > button,
.student-view-missions {
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid #ccd5ff;
  border-radius: 9px;
  background: #fff;
  color: #5b50ff;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}
.student-daily-mission-item > button:hover,
.student-view-missions:hover { background: #ebefff; }
.student-view-missions { justify-self: start; border: 0; padding: 0; background: transparent; }

.student-units-section { display: grid; gap: 15px; }
.student-section-head { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.student-section-head h2 { margin: 0; font-size: 23px; }
.student-section-head a { color: #5b50ff; font-size: 13px; font-weight: 750; text-decoration: none; }
.student-section-head a:hover { text-decoration: underline; }
.student-unit-list { display: grid; gap: 14px; }

.student-unit-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px 22px;
  padding: 24px 26px;
  border: 1px solid #d1d1d6;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(15, 23, 42, .035);
}
.student-unit-copy { min-width: 0; }
.student-unit-copy h3 { overflow: hidden; margin: 0; font-size: 17px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.student-unit-copy p { margin: 6px 0 0; color: #787884; font-size: 12px; }
.student-unit-due { grid-row:1; grid-column:2; align-self:start; padding:5px 9px; border:1px solid #d1d1d6; border-radius:999px; background:#f7f8fc; color:#787884; font-size:11px; font-weight:750; white-space:nowrap; }
.student-unit-nodes { position:relative; grid-row:2; grid-column: 1; display: flex; align-items: flex-start; flex-wrap: wrap; gap: 18px; }
.student-unit-mission-step { position:relative; z-index:1; display:grid; justify-items:center; gap:4px; min-width:70px; }
.student-unit-mission-step > span { color:#21212c; font-size:11px; font-weight:750; white-space:nowrap; }
.student-unit-mission-step > small { color:#787884; font-size:10px; }
.student-unit-action { grid-row: 2; grid-column: 2; align-self: center; min-width: 104px; }
.student-unit-action:hover { background: #ebefff; }

/* 课程节点的基础样式、各状态配色和图标尺寸已移到 css/course-node.css（文件顶部 @import）。 */

/* 右栏不再钉在顶部：和左侧内容一起随页面滚动 */
.student-learning-rail {
  display: grid;
  gap: 18px;
}
.student-mastery-card,
.student-mission-summary-card {
  overflow: hidden;
  border: 1px solid #d1d1d6;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 3px 12px rgba(15, 23, 42, .045);
}
.student-mastery-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 22px 20px 16px; border-bottom: 1px solid #ededf0; }
.student-mastery-head h2 { margin: 0; font-size: 18px; }
.student-mastery-head svg { width: 31px; height: 31px; color: #59a776; }
.student-mastery-list { display: grid; gap: 5px; padding: 14px 12px 18px; }
.student-mastery-row { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 10px 9px; border-radius: 9px; }
.student-mastery-row:hover { background: #f7f8fc; }
.student-mastery-icon { display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid #e7c873; border-radius: 50%; background: #ffe7a3; color: #946b00; }
.student-mastery-icon svg { width: 13px; height: 13px; }
.student-mastery-icon .course-mastery-bar.muted { fill: #e7cc8c; }
.student-mastery-icon .course-mastery-bar.active { fill: #946b00; }
.student-mastery-icon.is-proficient { border-color: #8dce98; background: #b7e9be; color: #315e3b; }
.student-mastery-icon.is-proficient .course-mastery-bar.muted { fill: #8dce98; }
.student-mastery-icon.is-proficient .course-mastery-bar.active { fill: #315e3b; }
.student-mastery-icon.is-mastered { border-color: transparent; background: transparent; color: #315e3b; }
.student-mastery-row span { color: #21212c; font-size: 13px; font-weight: 700; }
.student-mastery-row strong { font-size: 15px; }
.student-mastery-note { margin: 0 20px 20px; color: #91919b; font-size: 11px; line-height: 1.55; }
.student-mission-summary-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 20px 12px; }
.student-mission-summary-head > div { display: flex; align-items: center; gap: 8px; }
.student-mission-summary-head h2 { margin: 0; font-size: 18px; }
.student-mission-summary-head button { display: grid; place-items: center; width: 20px; height: 20px; padding: 0; border: 1px solid #91919b; border-radius: 50%; background: #fff; color: #787884; font: 800 12px/1 Georgia,serif; cursor: pointer; }
.student-mission-summary-head > svg { width: 38px; height: 38px; fill: none; stroke: #59a776; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.student-mission-summary-head > svg ellipse { fill: #d3f1d5; stroke: none; }
.student-mission-summary-list { display: grid; gap: 3px; padding: 8px 12px 12px; }
.student-mission-summary-list button { display: flex; align-items: center; justify-content: space-between; min-height: 42px; padding: 0 10px; border: 0; border-radius: 8px; background: transparent; color: #21212c; font: inherit; font-size: 13px; cursor: pointer; }
.student-mission-summary-list button:hover { background: #f7f8fc; }
.student-mission-summary-list strong { color: #21212c; font-size: 15px; }
.student-mission-summary-more { width: calc(100% - 40px); margin: 0 20px 18px; padding: 9px; border: 1px solid #ccd5ff; border-radius: 9px; background: #ebefff; color: #5b50ff; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.student-mission-summary-more:hover { background: #ccd5ff; }

.student-mission-overlay { position: fixed; z-index: 99930; inset: 0; display: grid; place-items: center; padding: 18px; background: rgba(15, 23, 42, .5); }
.student-mission-dialog { overflow: hidden; display: grid; grid-template-rows:auto minmax(0,1fr) auto; width:min(720px,100%); max-height:min(820px,calc(100vh - 36px));max-height:min(820px,calc(100dvh - 36px)); border-radius:17px; background:#fff; box-shadow:0 24px 70px rgba(15,23,42,.28); }
.student-mission-dialog > header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 24px; border-bottom:1px solid #d1d1d6; }
.student-mission-dialog > header h2 { margin:0; font-size:22px; }
.student-mission-dialog > header button { display:grid; place-items:center; width:38px; height:38px; padding:0; border:0; border-radius:9px; background:#f1f2f6; color:#787884; cursor:pointer; }
.student-mission-dialog > header button svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.student-mission-dialog-body { overflow-y:auto; padding:24px; }
.student-mission-dialog-body h3 { margin:0 0 7px; font-size:18px; }
.student-mission-dialog-body p { margin:0 0 24px; color:#787884; line-height:1.7; }
.student-mission-dialog-body ul { display:grid; gap:10px; margin:0 0 24px; padding:0; list-style:none; }
.student-mission-dialog-body li { display:grid; grid-template-columns:90px minmax(0,1fr); gap:12px; padding:12px 14px; border-radius:10px; background:#f7f8fc; }
.student-mission-dialog-body li span { color:#787884; }
.student-mission-separation-note { margin-bottom:0!important; padding:13px 14px; border:1px solid #ccd5ff; border-radius:10px; background:#ebefff; color:#352dab!important; }
.student-mission-dialog > footer { display:flex; justify-content:flex-end; padding:16px 20px; border-top:1px solid #d1d1d6; }
.student-mission-primary { min-height:44px; padding:0 20px; border:0; border-radius:9px; background:#5b50ff; color:#fff; font:inherit; font-weight:800; cursor:pointer; }
.student-mission-primary:hover { background:#4b40e6; }
.student-mission-details-body { display:grid; gap:24px; }
.student-mission-detail-section { display:grid; gap:10px; }
.student-mission-detail-section > header { display:flex; align-items:end; justify-content:space-between; gap:16px; }
.student-mission-detail-section > header h3 { margin:0; }
.student-mission-detail-section > header p { margin:3px 0 0; font-size:11px; }
.student-mission-detail-section > header > strong { color:#5b50ff; font-size:13px; }
.student-mission-detail-section > div { display:grid; gap:8px; }
.student-mission-detail-item { display:grid; grid-template-columns:24px minmax(0,1fr) auto; align-items:center; gap:11px; padding:12px; border:1px solid #d1d1d6; border-radius:10px; }
.student-mission-detail-item.is-completed { border-color:#d3f1d5; background:#f5fbf7; }
.student-mission-detail-item > div { display:grid; gap:2px; min-width:0; }
.student-mission-detail-item > div > strong { font-size:13px; }
.student-mission-detail-item > div > span,.student-mission-detail-item > div > small { color:#787884; font-size:11px; line-height:1.55; }
.student-mission-detail-item > button { min-height:34px; padding:0 12px; border:1px solid #ccd5ff; border-radius:8px; background:#fff; color:#5b50ff; font:inherit; font-size:11px; font-weight:800; cursor:pointer; }
.student-mission-detail-empty { margin:0!important; padding:18px; border-radius:10px; background:#f7f8fc; text-align:center; }

.student-gem-overlay { position:fixed; z-index:99940; inset:0; display:flex; justify-content:flex-end; background:rgba(15,23,42,.46); }
.student-gem-drawer { position:fixed; top:0; right:0; display:grid; grid-template-rows:auto minmax(0,1fr); width:420px; max-width:420px; height:100vh;height:100dvh; background:#fff; box-shadow:-18px 0 55px rgba(15,23,42,.2); }
.student-gem-drawer > header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:22px 24px; border-bottom:1px solid #d1d1d6; }
.student-gem-drawer > header h2 { margin:0; font-size:24px; }
.student-gem-drawer > header button { display:grid; place-items:center; width:40px; height:40px; padding:0; border:1px solid #d1d1d6; border-radius:11px; background:#fff; color:#787884; cursor:pointer; }
.student-gem-drawer > header button:hover { border-color:#babfff; background:#f7f8fc; color:#5b50ff; }
.student-gem-drawer > header svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.student-gem-drawer-body { overflow-y:auto; padding:26px 24px 32px; }
.student-gem-total { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:22px; font-size:17px; font-weight:750; }
.student-gem-total strong { display:flex; align-items:center; gap:9px; font-size:28px; }
.student-gem-total-icon { width:34px; height:30px; }
.student-gem-total-icon .gem-fill,.student-gem-toast-icon .gem-fill { fill:#5b50ff; stroke:#5b50ff; stroke-width:1.2; }
.student-gem-total-icon .gem-lines,.student-gem-toast-icon .gem-lines { fill:none; stroke:#ccd5ff; stroke-width:1.35; stroke-linejoin:round; }
.student-gem-chest { display:grid; justify-items:center; gap:10px; margin-bottom:18px; padding:20px 18px 17px; border:1px solid #d1d1d6; border-radius:15px; background:linear-gradient(180deg,#fbfdff,#f1f6ff); text-align:center; transition:box-shadow .17s,transform .17s; }
.student-gem-chest:hover { box-shadow:0 7px 20px rgba(91, 80, 255,.1); transform:translateY(-1px); }
.student-gem-chest.is-completed { border-color:#b7dfc5; background:linear-gradient(180deg,#fbfffc,#eefaf2); }
.student-gem-chest-icon { width:82px; height:65px; }
.student-gem-chest-icon .chest-shadow { fill:#b7791f; opacity:.42; }
.student-gem-chest-icon .chest-lid { fill:#fbbf24; stroke:#d38b13; stroke-width:2; stroke-linejoin:round; }
.student-gem-chest-icon .chest-lid-highlight { fill:#ffd75a; opacity:.82; }
.student-gem-chest-icon .chest-body { fill:#f6b93b; stroke:#c97d12; stroke-width:2; stroke-linejoin:round; }
.student-gem-chest-icon .chest-plank { fill:none; stroke:#d68a19; stroke-width:1.6; opacity:.72; }
.student-gem-chest-icon .chest-plank-top { stroke:#ffe08a; opacity:.76; }
.student-gem-chest-icon .chest-band { fill:#e29a1d; }
.student-gem-chest-icon .chest-rim { fill:none; stroke:#ffdf76; stroke-width:2; opacity:.8; }
.student-gem-chest-icon .chest-lock { fill:#ffe37a; stroke:#b96c0b; stroke-width:2; }
.student-gem-chest-icon .chest-key { fill:#6b4308; }
.student-gem-chest-icon .chest-check { fill:none; stroke:#59a776; stroke-width:5; stroke-linecap:round; stroke-linejoin:round; }
.student-gem-chest-icon.is-completed .chest-lock { fill:#ecfdf3; stroke:#59a776; }
.student-gem-chest h3 { margin:0; color:#21212c; font-size:18px; }
.student-gem-chest-badge { display:inline-flex; align-items:center; gap:7px; min-height:34px; padding:0 13px; border-radius:999px; background:#e6efff; color:#4b40e6; }
.student-gem-chest.is-completed .student-gem-chest-badge { background:#d3f1d5; color:#166534; }
.student-gem-chest-badge strong { font-size:13px; }
.student-gem-chest-gem { width:19px; height:17px; }
.student-gem-chest-gem .gem-fill { fill:#5b50ff; stroke:#5b50ff; stroke-width:1.2; }
.student-gem-chest-gem .gem-lines { fill:none; stroke:#ccd5ff; stroke-width:1.35; stroke-linejoin:round; }
.student-gem-chest > small { color:#787884; font-size:12px; font-weight:750; line-height:1.5; }
.student-gem-progress { overflow:hidden; width:100%; height:10px; margin-top:4px; border-radius:999px; background:#ccd5ff; }
.student-gem-progress span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#5b50ff,#8f87ff); }
.student-gem-challenge { margin-top:24px; padding:18px; border:1px solid #cfe0f8; border-radius:15px; background:linear-gradient(155deg,#f8fbff,#eef5ff); }
.student-gem-challenge > header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; }
.student-gem-challenge > header p { margin:0 0 3px; color:#787884; font-size:12px; font-weight:750; }
.student-gem-challenge > header h3 { margin:0; color:#21212c; font-size:19px; }
.student-gem-challenge-flag { width:44px; height:44px; }
.student-gem-challenge-flag .flag-pole,.student-achievement-flag .flag-pole { fill:none; stroke:#e2a30b; stroke-width:3.2; stroke-linecap:round; }
.student-gem-challenge-flag .flag-cloth,.student-achievement-flag .flag-cloth { fill:#5b50ff; stroke:#5b50ff; stroke-width:1.5; stroke-linejoin:round; }
.student-gem-challenge-flag .flag-base,.student-achievement-flag .flag-base { fill:#d3f1d5; }
.student-gem-challenge-total { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; }
.student-gem-challenge-total > span { display:flex; align-items:center; gap:7px; color:#565662; font-size:13px; }
.student-gem-challenge-total > strong { color:#21212c; font-size:18px; white-space:nowrap; }
.student-gem-challenge-gem { width:19px; height:17px; }
.student-gem-challenge-gem .gem-fill,.student-gem-contribution-icon .gem-fill,.student-achievement-gem .gem-fill { fill:#5b50ff; stroke:#5b50ff; stroke-width:1.2; }
.student-gem-challenge-gem .gem-lines,.student-gem-contribution-icon .gem-lines,.student-achievement-gem .gem-lines { fill:none; stroke:#ccd5ff; stroke-width:1.35; stroke-linejoin:round; }
.student-gem-challenge-progress { overflow:hidden; height:10px; margin:13px 0 8px; border-radius:999px; background:#ccd5ff; }
.student-gem-challenge-progress span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#5b50ff,#8f87ff); }
.student-gem-challenge-time { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#5b50ff; font-size:12px; font-weight:800; }
.student-gem-challenge-time small { color:#787884; font-size:11px; font-weight:650; }
.student-gem-challenge-complete { margin:13px 0 0; padding:9px 11px; border-radius:9px; background:#d3f1d5; color:#166534; font-size:12px; font-weight:850; text-align:center; }
.student-gem-challenge dl { display:grid; gap:10px; margin:17px 0 0; padding-top:15px; border-top:1px solid #d9e6f7; }
.student-gem-challenge dl > div { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.student-gem-challenge dt { color:#787884; font-size:12px; font-weight:700; }
.student-gem-challenge dd { display:flex; align-items:center; gap:6px; margin:0; color:#21212c; font-size:13px; font-weight:800; text-align:right; }
.student-gem-contribution-icon { width:18px; height:16px; }
.student-gem-challenge.is-completed { border-color:#b7dfc5; background:linear-gradient(155deg,#f9fffb,#eefaf2); }
.student-view-achievements { width:100%; min-height:46px; margin-top:20px; border:1px solid #babfff; border-radius:11px; background:#fff; color:#5b50ff; font:inherit; font-size:14px; font-weight:850; cursor:pointer; transition:background .16s,color .16s,transform .16s; }
.student-view-achievements:hover { background:#5b50ff; color:#fff; transform:translateY(-1px); }
.student-gem-levels { display:grid; gap:10px; margin-top:24px; }
.student-gem-levels article { display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:68px; padding:10px 13px; border:1px solid #d1d1d6; border-radius:12px; }
.student-gem-levels article > i { display:grid; place-items:center; width:30px; height:30px; border:2px solid #d1d1d6; border-radius:50%; color:#fff; font-style:normal; font-weight:900; }
.student-gem-levels article.is-unlocked { border-color:#ccd5ff; background:#f7f8fc; }
.student-gem-levels article.is-unlocked > i { border-color:#5b50ff; background:#5b50ff; }
.student-gem-levels article > div { display:grid; gap:2px; }
.student-gem-levels article > div strong { font-size:14px; }
.student-gem-levels article > div span,.student-gem-levels article > small { color:#787884; font-size:12px; }
.student-gem-levels article.is-unlocked > small { color:#5b50ff; font-weight:800; }
.student-gem-note { margin:24px 0 0; padding:13px 14px; border-radius:10px; background:#f7f8fc; color:#787884; font-size:12px; line-height:1.6; }
.student-achievement-section + .student-achievement-section { margin-top:28px; padding-top:24px; border-top:1px solid #d1d1d6; }
.student-achievement-section > h3 { margin:0 0 14px; color:#21212c; font-size:17px; }
.student-achievement-grid { display:grid; gap:10px; }
.student-achievement-card { display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:76px; padding:12px 13px; border:1px solid #d1d1d6; border-radius:13px; background:#f7f8fc; color:#91919b; }
.student-achievement-card.is-unlocked { border-color:#ccd5ff; background:#f7f8fc; color:#5b50ff; }
.student-achievement-card > i { display:grid; place-items:center; width:40px; height:40px; border-radius:11px; background:#d1d1d6; filter:grayscale(1); opacity:.72; }
.student-achievement-card.is-unlocked > i { background:#e6efff; filter:none; opacity:1; }
.student-achievement-gem { width:27px; height:24px; }
.student-achievement-flag { width:31px; height:31px; }
.student-achievement-card > div { display:grid; gap:3px; min-width:0; }
.student-achievement-card > div strong { color:#565662; font-size:14px; }
.student-achievement-card.is-unlocked > div strong { color:#21212c; }
.student-achievement-card > div span { font-size:12px; }
.student-achievement-card > small { display:grid; gap:2px; justify-items:end; font-size:11px; font-weight:800; text-align:right; }
.student-achievement-card > small time { color:#787884; font-weight:650; }
.student-achievement-empty { margin:0; padding:18px; border-radius:11px; background:#f7f8fc; color:#787884; font-size:13px; text-align:center; }
.student-gem-toast { position:fixed; z-index:99960; right:24px; bottom:24px; display:flex; align-items:center; gap:12px; min-width:230px; padding:14px 16px; border:1px solid #ccd5ff; border-radius:13px; background:#fff; box-shadow:0 14px 38px rgba(15,23,42,.18); opacity:0; transform:translateY(12px); transition:opacity .2s,transform .2s; }
.student-gem-toast.is-visible { opacity:1; transform:translateY(0); }
.student-gem-toast-icon { flex:0 0 31px; width:31px; height:27px; }
.student-gem-toast > div { display:grid; gap:2px; }
.student-gem-toast strong { color:#5b50ff; font-size:16px; }
.student-gem-toast span { color:#787884; font-size:12px; }
.student-home-loading,
.student-home-empty { padding: 30px; color: #787884; font-size: 14px; text-align: center; }

@media (max-width: 1279px) {
  .student-learning-home { padding: 22px 16px 48px; }
  .student-learning-layout { grid-template-columns: 1fr; }
  .student-learning-main { display: contents; }
  .student-today-card { order: 1; }
  .student-daily-missions { order: 2; }
  .student-units-section { order: 3; }
  .student-learning-rail { position: static; order: 4; }
}



@media (min-width: 981px) and (max-width: 1180px) {
  .student-learning-layout { grid-template-columns: 1fr; }
  .student-learning-rail { position: static; }
}

@media (max-width: 600px) {
  .student-learning-home { padding: 14px 12px 92px; }
  .student-gem-toolbar { margin-bottom:10px; }
  .student-gem-entry { height:40px; min-width:68px; padding:0 12px; }
  .student-gem-drawer { width:min(420px,92vw); max-width:92vw; }
  .student-gem-drawer > header { padding:18px; }
  .student-gem-drawer-body { padding:20px 18px 28px; }
  .student-gem-chest { padding:17px 14px 15px; }
  .student-gem-chest-icon { width:72px; height:57px; }
  .student-gem-toast { right:12px; bottom:82px; left:12px; }
  .student-learning-layout { gap: 18px; }
  .student-today-card { min-height: 0; padding: 26px 20px; }
  .student-today-card h1 { max-width: calc(100% - 72px); font-size: 25px; }
  .student-today-sub { max-width: calc(100% - 62px); }
  .student-today-art { top: 28px; bottom: auto; right: 18px; width: 62px; height: 62px; padding: 0; margin: 0; }
  .student-today-target { margin-top: 22px; }
  .student-today-actions { display: grid; }
  .student-today-actions button, .student-today-actions a { width: 100%; }
  .student-daily-missions { padding: 20px 16px; }
  .student-mission-section-head { align-items: center; }
  .student-daily-mission-item { grid-template-columns: 26px minmax(0,1fr); }
  .student-daily-mission-item > button { grid-column: 2; justify-self: start; }
  .student-mission-dialog-body { padding:18px; }
  .student-mission-dialog-body li { grid-template-columns:1fr; gap:3px; }
  .student-mission-detail-item { grid-template-columns:24px minmax(0,1fr); }
  .student-mission-detail-item > button { grid-column:2; justify-self:start; }
  .student-section-head { align-items: center; }
  .student-unit-card { grid-template-columns: 1fr; padding: 20px 18px; }
  .student-unit-due { grid-row:auto; grid-column:1; justify-self:start; }
  .student-unit-nodes { grid-row:auto; grid-column: 1; gap:12px; }
  .student-unit-mission-step { min-width:62px; }
  .student-unit-action { grid-row: auto; grid-column: 1; width: 100%; }
}
.student-learning-home {
  min-height: 100vh;min-height: 100dvh;
  padding: 24px 24px 64px;
  background: #fff;
}
.student-home-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  width: min(1120px, 100%);
  min-height: 48px;
  margin: 0 auto 18px;
}
.student-current-course {
  display: inline-grid;
  grid-template-columns: auto auto 18px;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 0 13px;
  border: 1px solid #d1d1d6;
  border-radius: 10px;
  background: #fff;
  color: #21212c;
  text-decoration: none;
}
.student-current-course span { color: #787884; font-size: 11px; font-weight: 700; }
.student-current-course strong { font-size: 13px; }
.student-current-course svg { width: 18px; height: 18px; fill: none; stroke: #787884; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.student-gem-entry { height: 42px; min-width: 70px; border-bottom-width: 3px; }
.student-learning-layout {
  grid-template-columns: minmax(0, 1fr) 244px;
  gap: 20px;
  width: min(1120px, 100%);
}
.student-learning-main { gap: 22px; }
.student-today-card {
  box-sizing: border-box;
  width: 100%;
  height: 304px;
  min-height: 304px;
  padding: 32px 36% 28px 36px;
  border-radius: 14px;
  box-shadow: 0 2px 7px rgba(15, 23, 42, .04);
}
.student-today-eyebrow { margin-bottom: 6px; font-size: 11px; }
.student-today-card h1 { max-width: 560px; font-size: clamp(25px, 2.3vw, 31px); line-height: 1.18; }
.student-today-sub { margin: 9px 0 0; font-size: 14px; line-height: 1.5; }
.student-today-focus { overflow: hidden; margin: 13px 0 0; color: #565662; font-size: 12px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.student-today-status { display: flex; align-items: center; gap: 17px; min-height: 30px; margin-top: 13px; }
.student-today-node-wrap { position: relative; display: grid; flex: 0 0 30px; place-items: center; }
.student-today-node-wrap:not(:last-child)::after { position: absolute; z-index: 0; top: 50%; left: 30px; width: 17px; height: 2px; background: #a0a0a7; content: ""; transform: translateY(-50%); }
.student-today-node-wrap .student-course-node { position: relative; z-index: 1; }
.student-today-actions { flex-wrap: nowrap; margin-top: 17px; }
.student-today-actions button { min-height: 42px; }
.student-today-actions #studentContinueButton,
.student-today-actions .student-today-all { min-width: 152px; }
.student-today-art { width: 35%; padding: 24px 12px; }
.student-today-art svg { width: clamp(176px, 18vw, 210px); }
.student-units-section { gap: 11px; }
.student-section-head { min-height: 34px; align-items: center; }
.student-section-head h2 { font-size: 20px; }
.student-unit-header-actions { display: flex; align-items: center; gap: 14px; }
.student-unit-header-actions button { padding: 0; border: 0; background: transparent; color: #5b50ff; font: inherit; font-size: 13px; font-weight: 750; cursor: pointer; }
.student-unit-list { gap: 12px; }
.student-unit-list > .student-home-loading {
  box-sizing: border-box;
  min-height: 168px;
  border: 1px solid #d1d1d6;
  border-radius: 13px;
}
.student-unit-card {
  display: block;
  box-sizing: border-box;
  min-height: 168px;
  padding: 19px 22px 18px;
  border-radius: 13px;
  box-shadow: none;
}
.student-unit-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.student-unit-copy h3 { font-size: 16px; }
.student-unit-copy p { margin-top: 4px; }
.student-unit-meta { display: flex; align-items: center; gap: 8px; }
.student-unit-due { display: inline-flex; padding: 4px 8px; }
.student-unit-toggle { display: grid; place-items: center; width: 30px; height: 30px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: #787884; cursor: pointer; }
.student-unit-toggle:hover { background: #f1f2f6; color: #5b50ff; }
.student-unit-toggle svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform .16s ease; }
.student-unit-card.is-collapsed .student-unit-toggle svg { transform: rotate(180deg); }
.student-unit-card-body { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 18px; margin-top: 16px; }
.student-unit-card.is-collapsed { min-height: 0; }
.student-unit-card.is-collapsed .student-unit-card-body { display: none; }
.student-unit-nodes { display: flex; flex-wrap: nowrap; gap: 15px; }
.student-unit-mission-step { min-width: 66px; gap: 3px; }
.student-unit-action { min-width: 96px; min-height: 40px; padding: 0 18px; }
.student-learning-rail { gap: 14px; }
.student-mastery-card,
.student-mission-summary-card,
.student-gem-challenge-card {
  overflow: hidden;
  border: 1px solid #d1d1d6;
  border-radius: 12px;
  background: #fff;
  box-shadow: none;
}
.student-mastery-head { padding: 17px 16px 11px; }
.student-mastery-head h2,
.student-mission-summary-head h2,
.student-rail-card-head h2 { font-size: 17px; }
.student-card-title-row { display: flex; align-items: center; gap: 7px; }
.student-card-title-row button,
.student-mission-summary-head button {
  display: grid;
  place-items: center;
  width: 19px;
  height: 19px;
  padding: 0;
  border: 1px solid #91919b;
  border-radius: 50%;
  background: #fff;
  color: #787884;
  font: 800 11px/1 Georgia, serif;
  cursor: pointer;
}
.student-mastery-head svg { width: 28px; height: 28px; }
.student-mastery-list { gap: 2px; padding: 8px 10px 12px; }
.student-mastery-row { min-height: 38px; padding: 5px 7px; }
.student-mastery-note { display: none; }
.student-mission-summary-head { padding: 17px 16px 8px; }
.student-mission-summary-head > svg { width: 34px; height: 34px; }
.student-mission-summary-list { gap: 1px; padding: 5px 10px 8px; }
.student-mission-summary-list button { min-height: 38px; padding: 0 7px; }
.student-mission-summary-more { width: calc(100% - 32px); margin: 0 16px 14px; padding: 8px; }
.student-rail-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 17px 16px 13px; }
.student-rail-card-head p { margin: 0 0 3px; color: #787884; font-size: 10px; font-weight: 750; }
.student-rail-card-head h2 { margin: 0; }
.student-rail-challenge-flag { width: 38px; height: 38px; }
.student-rail-challenge-flag .flag-pole { fill: none; stroke: #e2a30b; stroke-width: 3.2; stroke-linecap: round; }
.student-rail-challenge-flag .flag-cloth { fill: #5b50ff; stroke: #5b50ff; stroke-width: 1.5; stroke-linejoin: round; }
.student-rail-challenge-flag .flag-base { fill: #d3f1d5; }
.student-rail-challenge-total { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; padding: 0 16px; }
.student-rail-challenge-total span { display: flex; align-items: center; gap: 5px; color: #787884; font-size: 11px; }
.student-rail-challenge-total strong { font-size: 14px; white-space: nowrap; }
.student-rail-gem-icon,
.student-rail-contribution-icon { width: 16px; height: 14px; }
.student-rail-gem-icon .gem-fill,
.student-rail-contribution-icon .gem-fill { fill: #5b50ff; stroke: #5b50ff; stroke-width: 1.2; }
.student-rail-gem-icon .gem-lines,
.student-rail-contribution-icon .gem-lines { fill: none; stroke: #ccd5ff; stroke-width: 1.35; stroke-linejoin: round; }
.student-rail-challenge-progress { overflow: hidden; height: 8px; margin: 11px 16px 7px; border-radius: 999px; background: #ccd5ff; }
.student-rail-challenge-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#5b50ff,#8f87ff); }
.student-rail-challenge-time { display: flex; justify-content: space-between; gap: 8px; padding: 0 16px; color: #5b50ff; font-size: 10px; }
.student-rail-challenge-time span { color: #787884; }
.student-gem-challenge-card dl { display: grid; gap: 9px; margin: 13px 16px 16px; padding-top: 12px; border-top: 1px solid #ededf0; }
.student-gem-challenge-card dl > div { display: flex; align-items: center; justify-content: space-between; gap: 9px; }
.student-gem-challenge-card dt { color: #787884; font-size: 11px; }
.student-gem-challenge-card dd { display: flex; align-items: center; gap: 5px; margin: 0; color: #21212c; font-size: 11px; font-weight: 750; text-align: right; }
.student-rail-empty { margin: 0; padding: 2px 16px 18px; color: #787884; font-size: 11px; line-height: 1.55; }
.student-today-card > .student-home-loading { min-height: 238px; }
.student-mastery-card > .student-home-loading { min-height: 238px; }
.student-mission-summary-card > .student-home-loading { min-height: 202px; }
.student-gem-challenge-card > .student-home-loading { min-height: 205px; }
/* 加载占位：只保留占位高度（避免内容出来时跳动）。左侧两个大区域另加 .app-loading 显示转圈（css/loading.css），右侧三张卡留空。 */
.student-home-loading {
  box-sizing: border-box;
  display: grid;
  place-items: center;
}


@media (min-width: 981px) and (max-width: 1100px) {
  .student-learning-layout { grid-template-columns: 1fr; }
  .student-learning-rail { position: static; grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (min-width: 1101px) and (max-width: 1180px) {
  .student-learning-layout { grid-template-columns: minmax(0,1fr) 236px; gap: 16px; }
}
@media (max-width: 1279px) {
  .student-learning-main { display: grid; }
  .student-learning-rail { position: static; grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .student-learning-home { padding: 14px 12px 92px; }
  .student-home-topbar { margin-bottom: 12px; }
  .student-current-course { min-width: 0; }
  .student-current-course span { display: none; }
  .student-current-course strong { overflow: hidden; max-width: 150px; text-overflow: ellipsis; white-space: nowrap; }
  .student-today-card { height: auto; min-height: 300px; padding: 25px 20px; }
  .student-today-card h1 { max-width: calc(100% - 76px); font-size: 24px; }
  .student-today-sub { max-width: calc(100% - 70px); }
  .student-today-focus { max-width: calc(100% - 70px); }
  .student-today-status { margin-top: 17px; }
  .student-today-actions { display: grid; margin-top: 18px; }
  .student-today-actions #studentContinueButton,
  .student-today-actions .student-today-all { width: 100%; min-width: 0; }
  .student-today-art { top: 24px; right: 16px; width: 70px; height: 70px; padding: 0; }
  .student-today-art svg { width: 70px; }
  .student-unit-header-actions a { display: none; }
  .student-unit-card { padding: 17px 16px; }
  .student-unit-card-body { grid-template-columns: 1fr; align-items: start; }
  .student-unit-nodes { flex-wrap: wrap; gap: 12px; }
  .student-unit-action { width: 100%; }
}

/* Large desktop learner-home proportions based on the supplied reference. */
@media (min-width: 1280px) {

  .student-learning-home {
    
    padding: 20px 3.1vw 72px 2vw;
  }

  .student-home-topbar {
    width: 100%;
    min-height: 52px;
    margin-bottom: 48px;
  }

  .student-current-course {
    grid-template-columns: 26px minmax(0, 1fr) 20px;
    gap: 12px;
    min-width: 214px;
    min-height: 50px;
    padding: 0 13px;
    border-color: #d1d1d6;
    border-radius: 10px;
  }

  .student-current-course::before {
    width: 26px;
    height: 26px;
    background: #59a776;
    content: "";
  }

  .student-current-course span {
    display: none;
  }

  .student-current-course strong {
    font-size: 16px;
  }

  .student-gem-entry {
    min-width: 72px;
    height: 52px;
    padding: 0 14px;
    border-color: #d1d1d6;
    border-bottom-width: 5px;
    border-radius: 13px;
  }

  .student-gem-entry strong {
    font-size: 20px;
  }

  .student-learning-layout {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 24.8%);
    gap: 20px;
    width: 100%;
  }

  .student-learning-main {
    gap: 38px;
  }

  .student-today-card {
    height: auto;
    min-height: clamp(380px, 23.35vw, 448px);
    padding: clamp(36px, 3.1vw, 60px) 34% 48px 5.5%;
    border-color: #d1d1d6;
    border-radius: 10px;
    background: #f7f8fc;
    box-shadow: 0 2px 2px rgba(15, 23, 42, .09);
  }

  .student-today-eyebrow {
    display: none;
  }

  .student-today-card h1 {
    max-width: 650px;
    font-size: clamp(30px, 2.2vw, 42px);
    font-weight: 650;
    line-height: 1.25;
    letter-spacing: -.025em;
  }

  .student-today-sub {
    margin-top: 20px;
    color: #21212c;
    font-size: clamp(16px, 1.05vw, 20px);
    line-height: 1.45;
  }

  .student-today-focus {
    margin-top: 18px;
    color: #565662;
    font-size: 14px;
  }

  .student-today-status {
    margin-top: 16px;
  }

  .student-today-actions {
    gap: 20px;
    margin-top: 26px;
  }

  .student-today-actions button {
    width: min(320px, 48%);
    min-width: 0;
    min-height: 70px;
    border-radius: 12px;
    font-size: 20px;
  }

  .student-today-actions #studentContinueButton {
    box-shadow: 0 7px 0 #352dab;
  }

  .student-today-art {
    width: 35%;
    padding: 40px 32px;
  }

  .student-today-art svg {
    width: clamp(150px, 11vw, 210px);
  }

  .student-section-head {
    min-height: 50px;
  }

  .student-section-head h2 {
    font-size: 24px;
  }

  .student-unit-header-actions {
    gap: 24px;
  }

  .student-unit-header-actions a,
  .student-unit-header-actions button {
    font-size: 18px;
  }

  .student-unit-list {
    gap: 28px;
  }

  .student-unit-card {
    min-height: 250px;
    padding: 40px 40px 32px;
    border-color: #d1d1d6;
    border-radius: 13px;
  }

  .student-unit-copy h3 {
    font-size: 21px;
  }

  .student-unit-copy p {
    margin-top: 8px;
    font-size: 16px;
  }

  .student-unit-card-body {
    margin-top: 30px;
  }

  .student-unit-nodes {
    gap: 18px;
  }

  .student-unit-mission-step {
    min-width: 78px;
    gap: 6px;
  }

  .student-unit-mission-step > span {
    font-size: 12px;
  }

  .student-unit-action {
    min-width: 150px;
    min-height: 58px;
    border-radius: 11px;
    font-size: 18px;
  }

  .student-learning-rail {
    gap: 30px;
  }

  .student-mastery-card {
    min-height: 323px;
  }

  .student-mission-summary-card {
    min-height: 250px;
  }

  .student-gem-challenge-card {
    min-height: 260px;
  }

  .student-mastery-head,
  .student-mission-summary-head,
  .student-rail-card-head {
    padding: 26px 22px 16px;
  }

  .student-mastery-head h2,
  .student-mission-summary-head h2,
  .student-rail-card-head h2 {
    font-size: clamp(20px, 1.25vw, 24px);
    font-weight: 600;
    line-height: 1.3;
  }

  .student-mastery-head svg,
  .student-mission-summary-head > svg,
  .student-rail-challenge-flag {
    width: 40px;
    height: 40px;
  }

  .student-mastery-list,
  .student-mission-summary-list {
    gap: 4px;
    padding: 10px 14px 22px;
  }

  .student-mastery-row,
  .student-mission-summary-list button {
    min-height: 46px;
    padding-right: 9px;
    padding-left: 9px;
  }

  .student-mastery-row span,
  .student-mission-summary-list span {
    font-size: 16px;
    font-weight: 400;
  }

  .student-mastery-row strong,
  .student-mission-summary-list strong {
    font-size: 16px;
    font-weight: 400;
  }

  .student-mastery-icon {
    width: 30px;
    height: 30px;
  }

  .student-mission-summary-more {
    width: calc(100% - 44px);
    margin: 0 22px 20px;
  }

  .student-rail-challenge-total,
  .student-rail-challenge-time {
    padding-right: 22px;
    padding-left: 22px;
  }

  .student-rail-challenge-progress {
    margin-right: 22px;
    margin-left: 22px;
  }

  .student-gem-challenge-card dl {
    margin-right: 22px;
    margin-left: 22px;
  }
  .student-today-actions #studentContinueButton,
  .student-today-actions .student-today-all {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    min-height: 62px;
    padding: 0 12px;
    font-size: clamp(16px, 1.05vw, 20px);
    font-weight: 600;
    white-space: nowrap;
  }
  .student-today-actions .student-today-all {
    background: #ebefff;
    box-shadow: 0 7px 0 #c2cbff;
  }
  .student-today-card > .student-home-loading {
    min-height: 240px;
  }
  .student-unit-header-actions a { display: none; }
  .student-unit-card-body {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 32px;
  }
  .student-unit-nodes { grid-row: auto; grid-column: 1; }
  .student-unit-mission-step { min-width: 30px; }
  .student-unit-mission-step > span,
  .student-unit-mission-step > small { display: none; }
  .student-unit-mission-step:not(:last-child)::after {
    position: absolute;
    z-index: -1;
    top: 14px;
    left: 30px;
    width: 18px;
    height: 2px;
    background: #a0a0a7;
    content: "";
  }
  .student-unit-action {
    grid-row: auto;
    grid-column: 1;
    justify-self: start;
    background: #ebefff;
    box-shadow: 0 5px 0 #c2cbff;
    font-weight: 600;
  }
  .student-mastery-head { border-bottom: 0; }
  .student-mastery-head > div > p { display: none; }
  .student-mastery-row { grid-template-columns: 30px minmax(0, 1fr) auto; }
  .student-mastery-icon:not(.is-mastered) svg { width: 16px; height: 16px; }
  .student-mission-summary-more { display: none; }
  .student-mission-summary-card { min-height: 250px; }
  .student-mission-summary-list { padding-top: 0; }
  .student-rail-card-head p { display: none; }
  .student-gem-challenge-card { min-height: 250px; }
  .student-rail-challenge-total span,
  .student-rail-challenge-time,
  .student-gem-challenge-card dt,
  .student-gem-challenge-card dd { font-size: 13px; }
}
.student-today-card { background: #f7f8fc; }
.student-assistant-body { fill: #5b50ff; }
.student-assistant-pupil { fill: #080809; }
.student-assistant-mouth { stroke: #080809; }

.student-today-actions .student-today-all,
.student-unit-action {
  border-color: #ccd5ff;
  background: #ebefff;
  color: #5b50ff;
}
.student-today-actions #studentContinueButton:hover { background: #4b40e6; }

/* All gem instances share the pink fill, including the drawer and toast. */
.student-gem-entry svg path:first-child,
.student-learning-home .gem-fill,
.student-gem-overlay .gem-fill,
.student-gem-toast .gem-fill {
  fill: #ed39a8;
  stroke: #ed39a8;
}
.student-gem-entry svg path:last-child,
.student-learning-home .gem-lines,
.student-gem-overlay .gem-lines,
.student-gem-toast .gem-lines {
  stroke: #ffc0e7;
}
.student-gem-chest-badge {
  background: #ffe3f3;
  color: #a23c78;
}
.student-gem-chest-gem .gem-fill,
.student-gem-total-icon .gem-fill,
.student-gem-challenge-gem .gem-fill,
.student-gem-contribution-icon .gem-fill,
.student-achievement-gem .gem-fill,
.student-gem-toast-icon .gem-fill {
  fill: #ed39a8;
  stroke: #ed39a8;
}
.student-gem-chest-gem .gem-lines,
.student-gem-total-icon .gem-lines,
.student-gem-challenge-gem .gem-lines,
.student-gem-contribution-icon .gem-lines,
.student-achievement-gem .gem-lines,
.student-gem-toast-icon .gem-lines { stroke: #ffc0e7; }

.student-rail-challenge-flag .flag-cloth,
.student-gem-challenge-flag .flag-cloth,
.student-achievement-flag .flag-cloth { fill: #59a776; stroke: #59a776; }
.student-rail-challenge-flag .flag-pole,
.student-gem-challenge-flag .flag-pole,
.student-achievement-flag .flag-pole { stroke: #ffc400; }
.student-mission-summary-head > svg { stroke: #59a776; }
.student-mission-summary-head > svg path { fill: #59a776; }
.student-mission-summary-head > svg ellipse { fill: #d3f1d5; }

.student-rail-challenge-progress,
.student-gem-challenge-progress {
  border: 1px solid #ff67c6;
  background: #fff0f8;
}
.student-rail-challenge-progress span,
.student-gem-challenge-progress span { background: #ed39a8; }
.student-rail-challenge-time strong,
.student-gem-challenge-time > span,
.student-gem-challenge-time > strong {
  background: #ffe3f3;
  color: #a23c78;
}
.student-rail-challenge-time strong {
  padding: 3px 7px;
  border-radius: 7px;
}
.student-mastery-icon.is-mastered .course-mastered-icon circle { fill: #b7e9be; }
.student-mastery-icon.is-mastered .course-mastered-icon path { fill: #315e3b; }
.student-mastery-crown .crown-main { fill: #59a776; }
.student-mastery-crown .crown-highlight { fill: #a4d6a9; }
.student-mastery-crown .crown-sparkle { fill: #ffbc00; }
.student-mission-summary-head > .student-mission-flag { fill: none; stroke: none; }
.student-mission-summary-head > .student-mission-flag .flag-pole {
  fill: none;
  stroke: #ffc400;
  stroke-width: 3.2;
}
.student-mission-summary-head > .student-mission-flag .flag-cloth {
  fill: #59a776;
  stroke: #59a776;
  stroke-width: 1.5;
}
.student-mission-summary-head > .student-mission-flag .flag-base { fill: #d3f1d5; }
.student-gem-entry svg .gem-fill,
.student-learning-home .gem-fill,
.student-gem-overlay .gem-fill,
.student-gem-toast .gem-fill { fill: #ed39a8; stroke: none; }
.student-gem-entry svg .gem-facet,
.student-learning-home .gem-facet,
.student-gem-overlay .gem-facet,
.student-gem-toast .gem-facet { fill: #ffb5e0; stroke: none; }
.student-gem-entry svg .gem-shade,
.student-learning-home .gem-shade,
.student-gem-overlay .gem-shade,
.student-gem-toast .gem-shade { fill: #cf258b; stroke: none; }
.student-mastery-icon.is-mastered .course-mastered-icon path[fill="none"] {
  fill: none;
  stroke: #315e3b;
}
.student-learning-home,
.student-gem-overlay,
.student-mission-overlay{
  font-family: Arial, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;
  line-height: 1.5;
}
.student-current-course,
.student-unit-card,
.student-mastery-card,
.student-mission-summary-card,
.student-gem-challenge-card {
  border-width: 1px;
  border-style: solid;
  border-color: #d1d1d6;
  border-radius: 12px;
}
.student-today-card {
  border: 1px solid #d1d1d6;
  border-radius: 10px;
}
.student-unit-copy h3,
.student-section-head h2,
.student-mastery-head h2,
.student-mission-summary-head h2,
.student-rail-card-head h2 {
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0;
}

.student-current-course strong,
.student-unit-copy p{
  font-weight: 400;
  letter-spacing: 0;
}
.student-card-title-row button,
.student-mission-summary-head button {
  flex: 0 0 17px;
  width: 17px;
  height: 17px;
  border: 1px solid #787884;
  font: 12px/1 Georgia, serif;
}
.student-unit-due {
  border: 1px solid #d1d1d6;
  border-radius: 10px;
  background: #ededf0;
  font-weight: 500;
  line-height: 1.2;
}
.student-mastery-row span,
.student-mastery-row strong,
.student-mission-summary-list span,
.student-mission-summary-list strong,
.student-gem-challenge-card dt,
.student-gem-challenge-card dd {
  font-weight: 400;
  line-height: 1.4;
}
@media (min-width: 1280px) {
  .student-current-course {
    min-width: 212px;
    min-height: 50px;
    border-radius: 10px;
  }
  .student-current-course strong { font-size: 16px; }
  .student-gem-entry {
    min-width: 72px;
    height: 50px;
    border-radius: 15px;
    box-shadow: 0 4px 0 #d1d1d6;
    border-width: 1px;
  }
  .student-gem-entry strong { font-size: 20px; font-weight: 600; }
  .student-today-card h1 {
    font-size: clamp(32px, 2.2vw, 42px);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -.01em;
  }
  .student-today-sub {
    font-size: 20px;
    font-weight: 400;
    line-height: 1.45;
  }
  .student-today-focus { font-size: 14px; font-weight: 400; line-height: 1.4; }
  .student-today-actions #studentContinueButton,
  .student-today-actions .student-today-all {
    min-height: 68px;
    border-width: 1px;
    border-radius: 14px;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.2;
  }
  .student-section-head h2 { font-size: 24px; }
  .student-unit-header-actions button { font-size: 20px; font-weight: 500; }
  .student-unit-card {
    min-height: 280px;
    padding: 40px;
    border-radius: 14px;
  }
  .student-unit-copy h3 { font-size: 20px; }
  .student-unit-copy p { font-size: 17px; line-height: 1.4; }
  .student-unit-due { font-size: 14px; padding: 6px 10px; }
  .student-unit-action {
    min-width: 138px;
    min-height: 56px;
    padding: 0 28px;
    border-width: 1px;
    border-radius: 13px;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.2;
  }
  .student-mastery-head h2,
  .student-mission-summary-head h2,
  .student-rail-card-head h2 { font-size: 24px; }
  .student-mastery-head,
  .student-mission-summary-head,
  .student-rail-card-head { padding: 30px 20px 18px; }
  .student-mastery-list { padding: 6px 12px 20px; gap: 0; }
  .student-mission-summary-list { padding: 0 12px 20px; gap: 0; }
  .student-mastery-row,
  .student-mission-summary-list button { min-height: 50px; }
  .student-mastery-row span,
  .student-mastery-row strong,
  .student-mission-summary-list span,
  .student-mission-summary-list strong {
    font-size: 18px;
    font-weight: 400;
  }
  .student-rail-challenge-total span,
  .student-gem-challenge-card dt,
  .student-gem-challenge-card dd { font-size: 16px; }
  .student-rail-challenge-total strong { font-size: 18px; font-weight: 400; }
  .student-rail-challenge-time { font-size: 14px; }
  .student-rail-challenge-progress { height: 24px; border-radius: 999px; }
  .student-gem-challenge-card dl { gap: 14px; border-top: 0; padding-top: 10px; }
}
@media (min-width: 1280px) and (max-width: 1499px) {
  .student-today-sub { font-size: 18px; }
  .student-today-actions #studentContinueButton,
  .student-today-actions .student-today-all { font-size: 18px; }
  .student-mastery-head h2,
  .student-mission-summary-head h2,
  .student-rail-card-head h2 { font-size: 21px; }
  .student-mastery-row span,
  .student-mastery-row strong,
  .student-mission-summary-list span,
  .student-mission-summary-list strong { font-size: 16px; }
}


/* Assistant refresh entrance: fixed layout, one SVG bounce and two blinks. */
.student-today-art.is-entering > svg {
  transform-origin: center;
  animation: student-assistant-arrive 1.7s cubic-bezier(.33, 0, .67, 1) both, student-assistant-arrival-fade .24s ease-out both;
  will-change: transform, opacity;
}
.student-today-art.is-entering .student-assistant-eye-group {
  animation: student-assistant-arrival-blink 1.7s both;
}
@keyframes student-assistant-arrive {
  0% { transform: translate3d(0, 0, 0); }
  10% { transform: translate3d(0, 3%, 0); }
  32% { transform: translate3d(0, -24%, 0); }
  49% { transform: translate3d(0, 7%, 0); }
  62% { transform: translate3d(0, -6%, 0); }
  75%, 100% { transform: translate3d(0, 0, 0); }
}
@keyframes student-assistant-arrival-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes student-assistant-arrival-blink {
  0%, 45%, 54%, 67%, 77%, 100% { transform: scaleY(1); }
  49%, 72% { transform: scaleY(.08); }
}
@media (prefers-reduced-motion: reduce) {
  .student-today-art.is-entering > svg,
  .student-today-art.is-entering .student-assistant-eye-group,
  .student-today-art.is-blinking .student-assistant-eye-group {
    animation: none;
    transform: none;
    opacity: 1;
  }
}


/* Brief sideways sway at the jump apex, independent of vertical movement. */
.student-assistant-character {
  transform-box: fill-box;
  transform-origin: center;
}
.student-today-art.is-entering .student-assistant-character {
  animation: student-assistant-arrival-sway 1.7s ease-in-out both;
}
@keyframes student-assistant-arrival-sway {
  0%, 4% { transform: translateX(0) rotate(0) scale(1, 1); }
  10% { transform: translateX(0) rotate(0) scale(1.10, .87); }
  17% { transform: translateX(0) rotate(0) scale(.94, 1.08); }
  24% { transform: translateX(0) rotate(0) scale(1, 1); }
  28% { transform: translateX(-1.2%) rotate(-3deg) scale(1, 1); }
  32% { transform: translateX(1.2%) rotate(3deg) scale(1, 1); }
  36% { transform: translateX(-.9%) rotate(-2deg) scale(1, 1); }
  40% { transform: translateX(.5%) rotate(1deg) scale(1, 1); }
  44% { transform: translateX(0) rotate(0) scale(1, 1); }
  49% { transform: translateX(0) rotate(0) scale(1.05, .95); }
  56%, 100% { transform: translateX(0) rotate(0) scale(1, 1); }
}
@media (prefers-reduced-motion: reduce) {
  .student-today-art.is-entering .student-assistant-character {
    animation: none;
    transform: none;
  }
}

/* Drawer slides from the right while the backdrop fades. */
.student-gem-overlay.student-gem-motion {
  animation: student-gem-fade-in 200ms ease-out both;
}
.student-gem-overlay.student-gem-motion.is-closing {
  animation: student-gem-fade-out 150ms ease-in both;
}
.student-gem-motion > .student-gem-drawer {
  animation: student-gem-slide-in 200ms cubic-bezier(.2,.8,.2,1) both;
}
.student-gem-motion.is-closing > .student-gem-drawer {
  animation: student-gem-slide-out 150ms cubic-bezier(.4,0,1,1) both;
}
@keyframes student-gem-slide-in {
  from { transform: translateX(100%); }
  to { transform: translateX(0); }
}
@keyframes student-gem-slide-out {
  from { transform: translateX(0); }
  to { transform: translateX(100%); }
}
@media (prefers-reduced-motion: reduce) {
  .student-gem-motion > .student-gem-drawer,
  .student-gem-motion.is-closing > .student-gem-drawer { animation: none; transform: none; }
}
@keyframes student-gem-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes student-gem-fade-out {
  from { opacity: 1; }
  to { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .student-gem-overlay.student-gem-motion,
  .student-gem-overlay.student-gem-motion.is-closing { animation: none; }
}

/* Gem drawer width follows the desktop viewport to match the reference proportions. */
@media (min-width: 1024px) {
  #studentGemOverlay > .student-gem-drawer {
    width: clamp(320px, 21.875vw, 420px);
    max-width: 420px;
    box-sizing: border-box;
  }
}
/* Compact desktop sidebar typography and icons. */

/* Hero and Unit proportions aligned with the supplied desktop reference. */
@media (min-width: 1280px) {
  .student-today-title-ending { display: block; }
  .student-today-card { min-height: clamp(320px, 23.35vw, 448px); padding-bottom: clamp(32px, 2.5vw, 48px); }
  .student-today-card h1 { font-size: clamp(28px, 2.1875vw, 42px); }
  .student-today-sub { font-size: clamp(16px, 1.041667vw, 20px); margin-top: 16px; }
  .student-today-focus { margin-top: 10px; }
  .student-today-actions { margin-top: 26px; }
  .student-today-actions #studentContinueButton,
  .student-today-actions .student-today-all { min-height: clamp(48px, 3.541667vw, 68px); font-size: clamp(16px, 1.041667vw, 20px); font-weight: 600; }
  .student-today-art svg { width: clamp(160px, 12vw, 230px); }
  .student-today-status,
  .student-unit-nodes { --course-node-diameter: clamp(24px, 1.5625vw, 30px); }
  .student-today-node-wrap { flex-basis: var(--course-node-diameter); }
  .student-today-node-wrap:not(:last-child)::after { left: var(--course-node-diameter); }
  .student-unit-card { min-height: clamp(224px, 14.583333vw, 280px); padding: clamp(28px, 2.083333vw, 40px); }
  .student-unit-copy h3 { font-size: clamp(16px, 1.041667vw, 20px); }
  .student-unit-copy p { font-size: clamp(14px, .885417vw, 17px); }
  .student-unit-card-body { margin-top: clamp(30px, 2.083333vw, 40px); gap: clamp(24px, 1.666667vw, 32px); }
  .student-unit-action { font-weight: 600; min-height: clamp(44px, 2.916667vw, 56px); font-size: clamp(16px, 1.041667vw, 20px); }
}
/* Node dimensions and connectors share the same responsive measurements. */
@media (min-width: 1280px) {
  .student-today-status,
  .student-unit-nodes {
    --home-node-size: clamp(24px, 1.666667vw, 32px);
    --home-node-gap: clamp(12px, .9375vw, 18px);
    gap: var(--home-node-gap);
  }
  .student-today-status .student-course-node,
  .student-unit-nodes .student-course-node {
    --course-node-diameter: var(--home-node-size);
    flex-basis: var(--home-node-size);
    width: var(--home-node-size);
    height: var(--home-node-size);
  }
  .student-today-node-wrap { flex-basis: var(--home-node-size); width: var(--home-node-size); }
  .student-unit-mission-step { min-width: 0; width: var(--home-node-size); flex: 0 0 var(--home-node-size); }
  .student-today-node-wrap:not(:last-child)::after,
  .student-unit-mission-step:not(:last-child)::after {
    top: calc(var(--home-node-size) / 2);
    left: var(--home-node-size);
    width: calc(var(--home-node-gap) + 1px);
    transform: translateY(-50%);
  }
}
/* Unit section heading and existing 20-gem reward label. */
.student-unit-heading { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; min-width: 0; }
.student-unit-reward-badge { display: inline-flex; align-items: center; gap: 5px; padding: 5px 9px; border-radius: 9px; background: #ffe3f3; color: #963568; font-size: 14px; font-weight: 600; line-height: 1.2; white-space: nowrap; }
.student-unit-reward-badge svg { width: 18px; height: 16px; }
.student-unit-reward-badge .gem-fill { fill: #ed39a8; }
.student-unit-reward-badge .gem-facet { fill: #ffb5e0; }
.student-unit-reward-badge .gem-shade { fill: #cf258b; }
@media (min-width: 1280px) {
  .student-units-section .student-section-head h2 { font-size: clamp(18px, 1.25vw, 24px); font-weight: 600; line-height: 1.25; }
  .student-unit-header-actions button { font-size: clamp(16px, 1.041667vw, 20px); font-weight: 600; }
}
/* Desktop summary cards: reference type sizes and compact spacing. */
@media (min-width: 1280px) {
  .student-learning-rail { gap: clamp(24px, 1.5625vw, 30px); }
  .student-mastery-card { min-height: clamp(250px, 16.822917vw, 323px); }
  .student-mission-summary-card { min-height: clamp(200px, 13.020833vw, 250px); }
  .student-gem-challenge-card { min-height: clamp(200px, 13.020833vw, 250px); }
  .student-mastery-head,
  .student-mission-summary-head,
  .student-rail-card-head { padding: clamp(22px, 1.5625vw, 30px) clamp(16px, 1.041667vw, 20px) clamp(12px, .9375vw, 18px); }
  .student-mastery-head h2,
  .student-mission-summary-head h2,
  .student-rail-card-head h2 { font-size: clamp(18px, 1.25vw, 24px); font-weight: 500; line-height: 1.25; }
  .student-mastery-head svg,
  .student-mission-summary-head > svg,
  .student-rail-challenge-flag { width: clamp(32px, 2.083333vw, 40px); height: clamp(32px, 2.083333vw, 40px); }
  .student-mastery-list { padding: 6px 12px clamp(16px, 1.041667vw, 20px); gap: 0; }
  .student-mission-summary-list { padding: 0 12px clamp(16px, 1.041667vw, 20px); gap: 0; }
  .student-mastery-row,
  .student-mission-summary-list button { min-height: clamp(40px, 2.604167vw, 50px); }
  .student-mastery-row { grid-template-columns: clamp(24px, 1.5625vw, 30px) minmax(0,1fr) auto; }
  .student-mastery-row span,
  .student-mastery-row strong,
  .student-mission-summary-list span,
  .student-mission-summary-list strong { font-size: clamp(14px, .9375vw, 18px); font-weight: 400; }
  .student-mastery-icon { width: clamp(24px, 1.5625vw, 30px); height: clamp(24px, 1.5625vw, 30px); }
  .student-mastery-icon:not(.is-mastered) svg { width: clamp(12px, .833333vw, 16px); height: clamp(12px, .833333vw, 16px); }
  .student-card-title-row button,
  .student-mission-summary-head button { width: clamp(14px, .833333vw, 16px); height: clamp(14px, .833333vw, 16px); font-size: 10px; }
  .student-rail-challenge-total span,
  .student-gem-challenge-card dt,
  .student-gem-challenge-card dd { font-size: clamp(12px, .833333vw, 16px); font-weight: 400; }
  .student-rail-challenge-total strong { font-size: clamp(14px, .9375vw, 18px); font-weight: 400; }
  .student-rail-challenge-time { font-size: clamp(12px, .729167vw, 14px); }
  .student-rail-challenge-progress { height: clamp(18px, 1.25vw, 24px); }
  .student-gem-challenge-card dl { gap: clamp(10px, .729167vw, 14px); }
}
/* Stronger text contrast in homepage summary cards. */
.student-learning-rail .student-mastery-head h2,
.student-learning-rail .student-mission-summary-head h2,
.student-learning-rail .student-rail-card-head h2 { color: #21212c; font-weight: 700; }
.student-learning-rail .student-mastery-row span,
.student-learning-rail .student-mastery-row strong,
.student-learning-rail .student-mission-summary-list span,
.student-learning-rail .student-mission-summary-list strong,
.student-learning-rail .student-rail-challenge-total span,
.student-learning-rail .student-rail-challenge-total strong,
.student-learning-rail .student-gem-challenge-card dt,
.student-learning-rail .student-gem-challenge-card dd { color: #21212c; font-weight: 600; }
/* Final Unit heading badge proportions from the desktop reference. */
@media (min-width: 1280px) {
  .student-unit-heading { gap: clamp(8px, .520833vw, 10px); }
  .student-unit-reward-badge {
    box-sizing: border-box;
    min-height: clamp(24px, 1.5625vw, 30px);
    gap: clamp(4px, .260417vw, 5px);
    padding: clamp(3px, .208333vw, 4px) clamp(7px, .46875vw, 9px);
    border-radius: clamp(6px, .416667vw, 8px);
    font-size: clamp(11px, .729167vw, 14px);
    font-weight: 600;
  }
  .student-unit-reward-badge svg { width: clamp(14px, .9375vw, 18px); height: clamp(12px, .833333vw, 16px); }
  .student-unit-header-actions button { font-weight: 600; }
}
/* Shared task information popover for Daily and Unit mission nodes. */
.student-node-popover { position: fixed; z-index: 99920; box-sizing: border-box; min-width:min(220px,calc(100vw - 24px)); width:max-content; max-width:min(380px,calc(100vw - 24px)); max-height: calc(100vh - 24px);max-height: calc(100dvh - 24px); overflow: visible; padding: 28px 30px 22px; border: 1px solid var(--cn-pop-border); border-radius: 4px; background: #fff; color: #21212c; box-shadow: var(--cn-pop-shadow); font-family: Arial, "PingFang SC", "Microsoft YaHei", sans-serif; }
.student-node-popover::after { position: absolute; left: var(--node-arrow-left); bottom: -11px; width: var(--cn-pop-arrow); height: var(--cn-pop-arrow); border-right: 1px solid var(--cn-pop-border); border-bottom: 1px solid var(--cn-pop-border); background: #fff; content: ""; transform: translateX(-50%) rotate(45deg); }
.student-node-popover.is-below::after { top: -11px; bottom: auto; transform: translateX(-50%) rotate(225deg); }
.student-node-popover > strong { display: block; padding-right: 8px; font-size: 18px; font-weight: 600; line-height: 1.3; }
.student-node-popover > p { margin: 10px 0 8px; font-size: 18px; line-height: 1.4; overflow-wrap: anywhere; }
.student-node-popover > small { display: block; color: #787884; font-size: 13px; line-height: 1.4; }
.student-node-popover-close { position: absolute; top: 12px; right: 12px; display: grid; place-items: center; width: 26px; height: 26px; padding: 0; border: 0; background: transparent; color: #565662; font: 26px/1 Arial, sans-serif; cursor: pointer; }
.student-node-popover-go { display: block; width: 100%; min-height: 40px; margin-top: 20px; padding: 0; border: 0; background: transparent; color: #5b50ff; font: inherit; font-size: 18px; font-weight: 600; cursor: pointer; }
.student-node-popover-go:hover { color: #4b40e6; }
.student-node-popover button:focus-visible { outline: 2px solid #5b50ff; outline-offset: 3px; border-radius: 4px; }
/* Daily mission path uses existing tasks, completion flags and course state icons. */
.student-daily-path-overlay { padding: 0; background: #fff; }
.student-daily-path-dialog { width: 100%; height: 100dvh; max-height: 100dvh; border-radius: 0; box-shadow: none; grid-template-rows: auto minmax(0,1fr); font-family: Arial, "PingFang SC", "Microsoft YaHei", sans-serif; }
.student-daily-path-dialog > header { padding: 20px 32px; }
.student-daily-path-dialog > header > div { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.student-daily-path-dialog > header h2 { font-size: 20px; }
#studentDailyPathPosition { color: #787884; font-size: 16px; font-weight: 600; }
.student-daily-path-body { display: grid; grid-template-columns: minmax(200px, .8fr) minmax(0,1.2fr); gap: 60px; width: min(1280px,100%); margin: 0 auto; padding: 56px 32px; }
.student-daily-path-map { display: flex; flex-direction: column; align-items: center; padding: 10px 40px 30px; }
.student-daily-path-stop { transition: none; animation: none; position: relative; isolation: isolate; display: grid; justify-items: center; gap: 9px; width: 110px; min-height: 130px; padding: 0; border: 0; background: transparent; color: #787884; font: inherit; cursor: pointer; }
.student-daily-path-stop::after { position: absolute; z-index: -1; top: 64px; left: calc(50% - 10px); width: 20px; height: 66px; background: #ededf0; content: ""; }
.student-daily-path-stop .student-course-node { --course-node-diameter: 64px; width: 64px; height: 64px; flex-basis: 64px; border-width: 2px; box-shadow: 0 6px 0 #91919b; }
.student-daily-path-stop .student-course-node svg { width: 32px; height: 32px; }
.student-daily-path-stop > span { align-self: start; padding: 3px 7px; border-radius: 8px; background: #fff; font-size: 13px; }
.student-daily-path-stop.is-current > span { background: #ebefff; color: #5b50ff; font-weight: 700; }
.student-daily-path-stop.is-current .student-course-node { outline: 3px solid #5b50ff; outline-offset: 6px; }
.student-daily-path-stop:focus-visible { outline: 2px solid #5b50ff; border-radius: 10px; }
.student-daily-path-finish { transition: none; animation: none; display: grid; justify-items: center; gap: 12px; padding: 0; border: 0; background: transparent; color: #787884; font: inherit; cursor: pointer; }
.student-daily-path-finish > svg { box-sizing: border-box; width: 64px; height: 64px; padding: 18px; border-radius: 50%; background: #cfd0d4; fill: none; stroke: #515158; stroke-width: 2; }
.student-daily-path-finish.is-done > svg { background: #b7e9be; stroke: #315e3b; }
.student-daily-path-tasks { min-width: 0; }
.student-daily-path-task { border-bottom: 1px solid #d1d1d6; }
.student-daily-path-task > summary { display: flex; align-items: center; gap: 14px; min-height: 76px; padding: 18px 24px; color: #21212c; cursor: pointer; list-style: none; }
.student-daily-path-task > summary::-webkit-details-marker { display: none; }
.student-daily-path-task > summary > strong { flex: 1; font-size: 20px; }
.student-daily-path-task > summary > span { color: #787884; font-size: 13px; white-space: nowrap; }
.student-daily-path-task > summary::after { content: '⌄'; font-size: 20px; }
.student-daily-path-task[open] > summary::after { transform: rotate(180deg); }
.student-daily-path-task-body { margin: 0 0 18px; padding: 26px 30px 30px; border: 1px solid #d1d1d6; border-radius: 14px; background: #f7f8fc; box-shadow: 0 2px 3px rgba(33,33,44,.1); }
.student-daily-path-task-body > small { color: #787884; font-size: 14px; }
.student-daily-path-task-body > h3 { margin: 14px 0 10px; font-size: 30px; line-height: 1.3; }
.student-daily-path-task-body > p { margin: 0 0 12px; }
.student-daily-path-task-body .student-mission-primary { margin-top: 18px; min-width: 140px; box-shadow: 0 5px 0 #352dab; }
.student-daily-path-completion { padding: 22px 24px; color: #21212c; }
.student-daily-path-completion > summary { font-size: 20px; font-weight: 600; cursor: pointer; }
.student-daily-path-completion > p { margin: 18px 0; }
@media (max-width: 1279px) {
  .student-daily-path-dialog > header { padding: 16px; }
  .student-daily-path-body { grid-template-columns: 1fr; gap: 20px; padding: 24px 16px; }
  .student-daily-path-map { flex-direction: row; justify-content: space-evenly; gap: 12px; padding: 12px 0; }
  .student-daily-path-stop { width: 60px; min-height: 84px; }
  .student-daily-path-stop::after { top: 22px; left: 50%; width: calc(100% + 12px); height: 8px; }
  .student-daily-path-stop .student-course-node { --course-node-diameter: 44px; width: 44px; height: 44px; flex-basis: 44px; }
  .student-daily-path-stop .student-course-node svg { width: 22px; height: 22px; }
  .student-daily-path-finish > svg { width: 44px; height: 44px; padding: 10px; }
  .student-daily-path-finish > span { display: none; }
  .student-daily-path-task > summary { padding: 16px 4px; gap: 9px; }
  .student-daily-path-task > summary > strong { font-size: 16px; }
  .student-daily-path-task-body { padding: 20px; }
  .student-daily-path-task-body > h3 { font-size: 24px; }
}
/* Alternate list view for the same daily missions. */
.student-daily-path-dialog [hidden] { display: none !important; }
.student-daily-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.student-daily-view-switch { display: inline-flex; overflow: hidden; border: 1px solid #cccdd3; border-radius: 7px; }
.student-daily-view-switch > button { display: grid; place-items: center; width: 44px; height: 48px; padding: 0; border: 0; background: #fff; color: #5b50ff; cursor: pointer; }
.student-daily-view-switch > button + button { border-left: 1px solid #cccdd3; }
.student-daily-view-switch > button[aria-pressed="true"] { background: #5b50ff; color: #fff; }
.student-daily-view-switch svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.student-daily-list-body { padding: 30px 40px; }
.student-daily-list-tabs { display: flex; gap: 25px; margin-bottom: 30px; border-bottom: 1px solid #cccdd3; }
.student-daily-list-tabs > button { padding: 12px 5px 18px; border: 0; border-bottom: 4px solid transparent; background: transparent; color: #787884; font: inherit; font-size: 18px; font-weight: 600; cursor: pointer; }
.student-daily-list-tabs > button[aria-pressed="true"] { border-bottom-color: #5b50ff; color: #5b50ff; }
.student-daily-table-wrap { overflow-x: auto; border: 1px solid #cccdd3; border-radius: 15px; }
.student-daily-task-table { width: 100%; min-width: 700px; border-collapse: collapse; color: #21212c; text-align: left; }
.student-daily-task-table th { padding: 20px 28px; background: #f7f8fc; font-size: 16px; font-weight: 600; }
.student-daily-task-table td { padding: 20px 28px; border-top: 1px solid #cccdd3; font-size: 18px; line-height: 1.5; }
.student-daily-task-table th:first-child { width: 34%; }
.student-daily-task-link { padding: 0; border: 0; background: transparent; color: #5b50ff; font: inherit; text-align: left; cursor: pointer; }
.student-daily-task-link:hover { text-decoration: underline; }
.student-daily-next-badge { display: inline-block; margin-left: 10px; padding: 4px 9px; border: 1px solid #c2cbff; border-radius: 10px; background: #ebefff; color: #352dab; font-size: 13px; font-weight: 600; white-space: nowrap; }
.student-daily-task-type { display: flex; align-items: center; gap: 12px; white-space: nowrap; }
.student-daily-task-type .student-course-node { flex-shrink: 0; }
.student-daily-list-empty { padding: 30px 0; text-align: center; color: #787884; }
.student-daily-view-switch button:focus-visible,
.student-daily-list-tabs button:focus-visible,
.student-daily-task-link:focus-visible { outline: 2px solid #352dab; outline-offset: -3px; }
@media (max-width: 1279px) {
  .student-daily-list-body { padding: 20px 16px; }
  .student-daily-task-table { min-width: 620px; }
  .student-daily-task-table th,
  .student-daily-task-table td { padding: 16px; font-size: 15px; }
  .student-daily-view-switch > button { width: 38px; height: 40px; }
}
/* Independent Daily Mission focus page: SVG route, progress mascot and task card. */
.student-daily-path-dialog > header { min-height: 90px; padding: 18px 40px; gap: 26px; }
.student-daily-back { flex: 0 0 30px; display: grid; place-items: center; height: 42px; color: #565662; }
.student-daily-back svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.student-daily-path-dialog > header > div { flex: 1; gap: 12px; }
.student-daily-divider { color: #787884; }
.student-daily-path-dialog > header .student-daily-gem-entry { display: flex; flex: 0 0 auto; gap: 8px; width: auto; min-width: 78px; height: 48px; padding: 0 12px; border: 1px solid #cccdd3; border-radius: 14px; background: #fff; color: #787884; box-shadow: 0 5px 0 #d1d1d6; }
.student-daily-path-dialog > header .student-daily-gem-entry svg { width: 24px; height: 22px; fill: none; stroke: none; }
.student-daily-gem-entry .gem-fill { fill: #ed39a8; }
.student-daily-gem-entry .gem-facet { fill: #ffb5e0; }
.student-daily-gem-entry .gem-shade { fill: #cf258b; }
.student-daily-gem-entry strong { font-size: 20px; }
.student-daily-path-body { grid-template-columns: minmax(0,45fr) minmax(0,55fr); gap: 42px; width: min(1720px,100%); padding: 40px 60px 24px; align-items: start; }
.student-daily-path-map { display: block; padding: 0; margin: 150px auto 0; width: min(340px,100%); }
.student-daily-path-canvas { position: relative; width: 100%; }
.student-daily-route { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.student-daily-route path { fill: none; stroke-width: 34px; stroke-linecap: round; stroke-linejoin: round; }
.daily-route-shadow { stroke: #91919b; transform: translateY(7px); }
.daily-route-line { stroke: #ededf0; }
.student-daily-path-stop { position: absolute; display: grid; place-items: center; width: 68px; height: 68px; min-height: 0; padding: 0; transform: translate(-50%,-50%); }
.student-daily-path-stop::after { display: none; }
.student-daily-path-stop .student-course-node { --course-node-diameter: 68px; width: 68px; height: 68px; flex-basis: 68px; }
.student-daily-path-stop.is-current .student-course-node { outline: 2px solid #2563eb; outline-offset: 4px; }
.student-daily-path-finish { position: absolute; display: grid; place-items: center; width: 68px; height: 68px; padding: 0; transform: translate(-50%,-50%); }
.student-daily-path-finish > svg { width: 68px; height: 68px; box-shadow: 0 6px 0 #91919b; }
.student-daily-path-assistant { position: absolute; z-index: 3; width: 110px; height: 128px; transform: translate(-50%,-50%); pointer-events: none; }
.student-daily-path-assistant > svg { position: relative; z-index: 1; display: block; width: 110px; height: 110px; }
.student-daily-path-assistant > i { position: absolute; bottom: 0; left: 50%; width: 80px; height: 58px; border-radius: 50%; background: #d3f1d5; box-shadow: 0 6px 0 #91919b; transform: translateX(-50%); }
.student-daily-current-card { min-height: 340px; margin-bottom: 14px; padding: 30px; border: 1px solid #cccdd3; border-radius: 15px; background: #f7f8fc; box-shadow: 0 2px 3px rgba(33,33,44,.14); }
.student-daily-current-type { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; color: #787884; font-size: 18px; font-weight: 600; }
.student-daily-current-type > svg { width: 30px; height: 30px; }
.student-daily-current-card h3 { margin: 24px 0 12px; color: #21212c; font-size: clamp(28px,2.2vw,40px); line-height: 1.25; }
.student-daily-current-card p { margin: 0 0 12px; color: #787884; font-size: 18px; line-height: 1.4; }
.student-daily-current-card > small { display: block; color: #787884; font-size: 13px; }
.student-daily-current-card .student-mission-primary { display: inline-flex; align-items: center; justify-content: center; min-width: 170px; min-height: 64px; margin-top: 38px; padding: 0 24px; border-radius: 14px; font-size: 20px; font-weight: 600; text-decoration: none; box-shadow: 0 6px 0 #352dab; }
.student-daily-current-card .student-mission-primary.is-review { background: #ebefff; color: #5b50ff; box-shadow: 0 6px 0 #c2cbff; border: 1px solid #c2cbff; }
.student-daily-current-card .student-mission-primary:disabled { opacity: .6; cursor: not-allowed; }
.student-daily-current-card .student-daily-earned { color: #963568; }
.student-daily-task-row { display: flex; align-items: center; gap: 16px; width: 100%; min-height: 96px; padding: 20px 28px; border: 0; border-bottom: 1px solid #cccdd3; background: #fff; color: #21212c; font: inherit; text-align: left; cursor: pointer; }
.student-daily-task-row strong { flex: 1; min-width: 0; font-size: 20px; font-weight: 500; overflow-wrap: anywhere; }
.student-daily-task-row > i { display: grid; place-items: center; flex-shrink: 0; width: 30px; height: 30px; }
.student-daily-task-row > i > svg { width: 24px; height: 24px; }
.student-daily-task-row > span { color: #565662; font-size: 20px; }
.student-daily-task-row.is-current { display: none; }
.student-daily-task-row:disabled { opacity: .6; cursor: not-allowed; }
.student-daily-due { margin-left: auto; padding: 5px 9px; border: 1px solid #cccdd3; border-radius: 9px; background: #ededf0; color: #565662; font-size: 13px; font-weight: 400; white-space: nowrap; }
.student-daily-finish-row { border-bottom: 0; }
.student-daily-path-dialog .student-daily-list-body { min-height: 0; }
@media (max-width: 1279px) {
  .student-daily-path-dialog > header { min-height: 76px; gap: 10px; padding: 12px 16px; }
  .student-daily-path-dialog > header > div { gap: 6px; }
  .student-daily-path-dialog > header h2 { font-size: 16px; }
  #studentDailyPathPosition { font-size: 13px; }
  .student-daily-path-dialog > header .student-daily-gem-entry { min-width: 60px; height: 40px; padding: 0 8px; }
  .student-daily-view-switch > button { height: 34px; width: 34px; }
  .student-daily-path-body { display: flex; flex-direction: column; gap: 20px; padding: 20px 16px; }
  .student-daily-path-tasks { display: contents; }
  .student-daily-current-card { order: 0; width: 100%; min-height: 260px; padding: 24px; }
  .student-daily-path-map { order: 1; display: block; margin: 0 auto; width: min(300px,100%); padding: 0; }
  .student-daily-task-rows { order: 2; width: 100%; }
  .student-daily-current-card h3 { font-size: 28px; }
  .student-daily-current-card .student-mission-primary { min-height: 52px; margin-top: 20px; font-size: 18px; }
  .student-daily-task-row { min-height: 76px; gap: 10px; padding: 16px 4px; flex-wrap: wrap; }
  .student-daily-task-row strong { font-size: 16px; }
  .student-daily-due { font-size: 11px; }
  .student-daily-list-body .student-daily-task-table { min-width: 0; }
  .student-daily-list-body .student-daily-task-table th:nth-child(3),
  .student-daily-list-body .student-daily-task-table td:nth-child(3) { display: none; }
  .student-daily-list-body .student-daily-task-table th,
  .student-daily-list-body .student-daily-task-table td { padding: 10px 7px; font-size: 12px; overflow-wrap: anywhere; }
  .student-daily-list-body .student-daily-next-badge { margin: 5px 0 0; font-size: 11px; }
}
/* Daily map information: shared task icons, view-local selection only. */
.student-daily-node-popover { z-index: 99935; width:max-content; padding: 28px 24px 20px; }
.student-daily-popover-content { max-height: calc(100dvh - 76px); overflow-y: auto; overflow-wrap: anywhere; }
.student-daily-popover-content > strong { display: block; padding-right: 20px; font-size: 18px; font-weight: 600; line-height: 1.4; }
.student-daily-popover-content > p { margin: 8px 0 16px; font-size: 22px; line-height: 1.3; }
.student-daily-popover-content > small { display: block; margin-top: 12px; color: #787884; line-height: 1.5; }
.student-daily-popover-status { display: flex; align-items: center; gap: 10px; font-size: 14px; line-height: 1.5; }
.student-daily-popover-status > .student-course-node { flex: 0 0 32px; width: 32px; height: 32px; }
.student-daily-path-assistant { transition: left 250ms ease, top 250ms ease; }
@media (prefers-reduced-motion: reduce) { .student-daily-path-assistant { transition: none; } }

/* Reference proportions are tied to viewport width, including browser zoom. */
.student-daily-path-dialog { font-weight: 400; }
.student-daily-path-assistant > i { display: none; }
.student-daily-path-stop.is-current .student-course-node { outline: none; }
.student-daily-current-card { display: flex; flex-direction: column; align-items: flex-start; }
.student-daily-current-card h3 { font-weight: 600; }
.student-daily-current-card .student-mission-primary { margin-top: auto; flex-shrink: 0; }
.student-daily-task-row > span { font-family: Arial, sans-serif; }
@media (min-width: 1280px) {
  .student-daily-path-dialog { --daily-map-unit: .0520833333vw; }
  .student-daily-path-dialog > header { min-height: calc(var(--daily-map-unit) * 90); padding: calc(var(--daily-map-unit) * 18) calc(var(--daily-map-unit) * 40); gap: calc(var(--daily-map-unit) * 40); }
  .student-daily-back { flex-basis: calc(var(--daily-map-unit) * 40); height: calc(var(--daily-map-unit) * 42); }
  .student-daily-back svg { width: calc(var(--daily-map-unit) * 22); height: calc(var(--daily-map-unit) * 22); }
  .student-daily-path-dialog > header > div { gap: calc(var(--daily-map-unit) * 12); }
  .student-daily-path-dialog > header h2,
  .student-daily-path-dialog #studentDailyPathPosition { font-size: clamp(14px, 1.041667vw, 20px); line-height: 1.4; }
  .student-daily-path-dialog > header h2 { font-weight: 500; }
  .student-daily-view-switch { border-radius: 6px; }
  .student-daily-view-switch > button { width: calc(var(--daily-map-unit) * 44); height: calc(var(--daily-map-unit) * 48); }
  .student-daily-view-switch svg { width: calc(var(--daily-map-unit) * 22); height: calc(var(--daily-map-unit) * 22); }
  .student-daily-path-dialog > header .student-daily-gem-entry { min-width: calc(var(--daily-map-unit) * 78); height: calc(var(--daily-map-unit) * 48); padding: 0 calc(var(--daily-map-unit) * 12); border-radius: calc(var(--daily-map-unit) * 14); box-shadow: 0 calc(var(--daily-map-unit) * 6) 0 #d1d1d6; }
  .student-daily-gem-entry strong { font-size: clamp(16px, 1.041667vw, 20px); font-weight: 600; }
  .student-daily-path-dialog > header .student-daily-gem-entry svg { width: calc(var(--daily-map-unit) * 24); height: calc(var(--daily-map-unit) * 22); }
  .student-daily-path-body { width: 86%; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0; padding: calc(var(--daily-map-unit) * 40) 0 calc(var(--daily-map-unit) * 24); }
  .student-daily-path-map { position: relative; left: calc(var(--daily-map-unit) * 10); width: calc(var(--daily-map-unit) * 340); max-width: 100%; margin: calc(var(--daily-map-unit) * 190) auto 0; }
  .student-daily-path-canvas { height: calc(var(--daily-map-unit) * var(--daily-map-height)) !important; }
  .student-daily-route path { stroke-width: 40px; }
  .student-daily-path-stop,
  .student-daily-path-stop .student-course-node,
  .student-daily-path-finish,
  .student-daily-path-finish > svg { --course-node-diameter: calc(var(--daily-map-unit) * 90); width: calc(var(--daily-map-unit) * 90); height: calc(var(--daily-map-unit) * 90); flex-basis: calc(var(--daily-map-unit) * 90); }
  .student-daily-path-stop .student-course-node { border: 0; box-shadow: 0 calc(var(--daily-map-unit) * 7) 0 #91919b; }
  .student-daily-path-stop .student-course-node svg { width: calc(var(--daily-map-unit) * 40); height: calc(var(--daily-map-unit) * 40); }
  .student-daily-path-finish > svg { padding: calc(var(--daily-map-unit) * 25); border: 0; box-shadow: 0 calc(var(--daily-map-unit) * 7) 0 #91919b; }
  .student-daily-path-assistant,
  .student-daily-path-assistant > svg { width: calc(var(--daily-map-unit) * 128); height: calc(var(--daily-map-unit) * 128); }
  .student-daily-current-card { width: 100%; min-height: calc(var(--daily-map-unit) * 344); margin-bottom: 0; padding: calc(var(--daily-map-unit) * 30); border-radius: calc(var(--daily-map-unit) * 15); background: #f7f8fa; }
  .student-daily-current-type { gap: calc(var(--daily-map-unit) * 12); font-size: clamp(14px, 1.041667vw, 20px); font-weight: 500; }
  .student-daily-current-type .student-course-node,
  .student-daily-task-row > .student-course-node { --course-node-diameter: calc(var(--daily-map-unit) * 35); width: calc(var(--daily-map-unit) * 35); height: calc(var(--daily-map-unit) * 35); flex-basis: calc(var(--daily-map-unit) * 35); }
  .student-daily-current-card h3 { margin: calc(var(--daily-map-unit) * 24) 0 calc(var(--daily-map-unit) * 12); font-size: clamp(26px, 2.083333vw, 40px); line-height: 1.25; }
  .student-daily-current-card p { margin: 0; font-size: clamp(15px, 1.041667vw, 20px); line-height: 1.4; }
  .student-daily-current-card > small { margin: calc(var(--daily-map-unit) * 8) 0 calc(var(--daily-map-unit) * 16); font-size: clamp(11px, .677083vw, 13px); }
  .student-daily-current-card .student-mission-primary { min-width: calc(var(--daily-map-unit) * 162); min-height: calc(var(--daily-map-unit) * 68); margin-top: auto; padding: 0 calc(var(--daily-map-unit) * 24); border-radius: calc(var(--daily-map-unit) * 14); font-size: clamp(15px, 1.041667vw, 20px); font-weight: 600; box-shadow: 0 calc(var(--daily-map-unit) * 7) 0 #352dab; }
  .student-daily-current-card .student-mission-primary.is-review { min-width: calc(var(--daily-map-unit) * 190); box-shadow: 0 calc(var(--daily-map-unit) * 7) 0 #c2cbff; }
  .student-daily-task-row { min-height: calc(var(--daily-map-unit) * 97); padding: calc(var(--daily-map-unit) * 20) calc(var(--daily-map-unit) * 30); gap: calc(var(--daily-map-unit) * 20); }
  .student-daily-task-row strong { font-size: clamp(16px, 1.25vw, 24px); font-weight: 400; line-height: 1.4; }
  .student-daily-task-row > span { font-size: clamp(16px, 1.041667vw, 20px); }
}

.student-daily-task-row > span > svg { display: block; width: 20px; height: 20px; }
.student-daily-finish-row > i { border-radius: 50%; background: #cccdd3; color: #515158; }
.student-daily-finish-row > i > svg { width: 18px; height: 18px; }
@media (min-width: 1280px) {
  .student-daily-task-row > span > svg { width: calc(var(--daily-map-unit) * 20); height: calc(var(--daily-map-unit) * 20); }
  .student-daily-finish-row > i { width: calc(var(--daily-map-unit) * 35); height: calc(var(--daily-map-unit) * 35); }
  .student-daily-finish-row > i > svg { width: calc(var(--daily-map-unit) * 18); height: calc(var(--daily-map-unit) * 18); }
}

/* Homepage reading/cloze tasks share one state system in cards and banner. */
.student-course-node.home-task-node { display:inline-grid; place-items:center; width:32px; height:32px; padding:7px; border:1px solid #bdbdc6; border-radius:50%; background:#d2d2d8; color:#666672; box-shadow:none; }
.student-course-node.home-task-node svg { width:16px; height:16px; }
.student-course-node.home-task-attempted { border-color:#efcc70; background:#ffe7a6; color:#9b710c; }
.student-course-node.home-task-completed { border-color:#5047eb; background:#5047eb; color:#fff; }
.student-unit-nodes:has(.home-task-node) { flex-wrap:wrap; gap:14px; }
.student-unit-mission-step:has(.home-task-node) { min-width:32px; }
.home-training-quiz { cursor:default; }
.student-today-status:has(.home-task-node) { flex-wrap:wrap; }

/* Content-driven training grade selector and unavailable-task feedback. */
.student-current-course select { border: 0; background: transparent; color: #20212b; font: inherit; font-weight: 700; min-width: 130px; padding: 8px 24px 8px 4px; cursor: pointer; }
.student-current-course select:focus-visible { outline: 2px solid #584aff; outline-offset: 3px; }
.student-current-course select:disabled { cursor: default; color: #777784; }
.student-home-topbar #studentCurrentCourse #studentTrainingGrade:disabled {
  appearance: none;
  -webkit-appearance: none;
  background-image: none;
  padding-right: 0;
}
.student-today-actions #studentContinueButton:disabled, .student-today-actions #studentContinueButton:disabled:hover { background: #e3e3e8; border-color: #ccccd4; color: #777784; box-shadow: 0 5px 0 #ccccd4; cursor: not-allowed; }
.student-training-empty-reason { margin: 16px 0 0; color: #626273; font-size: 14px; max-width: 620px; }

/* Only the first-learning homepage changes; existing student cards retain their styles. */
.student-units-section[hidden] { display:none !important; }
.student-today-card.is-first-learning { display:flex; flex-direction:column; justify-content:center; }
.student-today-card.is-first-learning h1 { line-height:1.3; }
.student-first-learning-label { margin:0 0 12px; color:#5b50ff; font-weight:600; }
.student-today-card.is-first-learning .student-today-actions { margin-top:28px; }

.student-today-card.is-first-learning .student-today-actions #studentContinueButton { flex:none; width:min(220px,100%); }
@media (max-width:1279px) {
  .student-learning-home[data-home-state="empty"] .student-learning-layout,
  .student-learning-home[data-home-state="assigned"] .student-learning-layout { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:600px) {
  .student-today-card.is-first-learning { min-height:250px; }
  .student-today-card.is-first-learning .student-today-art { height:70px; }
  .student-today-card.is-first-learning .student-today-actions #studentContinueButton { width:100%; }
}

/* Member homepage: three vertical module cards reuse the existing content column. */
.student-plan-module-card { padding:28px 32px; border:1px solid #d1d1d6; border-radius:10px; background:#fff; }
.student-plan-module-card h3 { margin:0 0 16px; color:#21212c; font-size:20px; font-weight:700; }
.student-plan-course-title { margin:0 0 8px; color:#565662; }
.student-plan-course-progress { margin:0 0 24px; color:#565662; }
.student-plan-module-card .student-unit-nodes { margin:0 0 26px; }
.student-plan-action,.student-plan-primary { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 24px; border:1px solid #c8ceff; border-radius:8px; background:#ecefff; color:#5b50ff; box-shadow:0 4px 0 #c8ceff; font-size:16px; font-weight:600; text-decoration:none; }
.student-plan-action:hover { background:#e2e7ff; }
.student-plan-progress { max-width:520px; margin:18px 0; }
.student-plan-progress > div:first-child { display:flex; justify-content:space-between; gap:12px; margin-bottom:8px; color:#565662; font-size:15px; }
.student-plan-progress strong { color:#21212c; font-weight:600; }
.student-plan-track { height:6px; overflow:hidden; border-radius:4px; background:#ececf1; }
.student-plan-track > span { display:block; height:100%; background:#5b50ff; }
.student-plan-note { color:#737380; font-size:13px; }
.student-weekly-plan-summary { color:#565662; font-size:15px; font-weight:500; }
.student-today-plan-tasks { margin-top:18px; color:#565662; font-size:15px; }
.student-today-plan-tasks p { margin:4px 0; }
.student-welcome-goals { display:grid; gap:10px; margin:24px 0 0; }
.student-welcome-goals > div { display:flex; gap:16px; font-size:15px; }
.student-welcome-goals dt { min-width:64px; color:#21212c; font-weight:600; }
.student-welcome-goals dd { margin:0; color:#565662; }
@media (max-width:1279px) {
  .student-learning-home[data-home-state] .student-learning-layout { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:600px) {
  .student-plan-module-card { padding:24px 20px; }
  .student-welcome-goals { margin-top:18px; }
  .student-today-card.is-first-learning .student-welcome-goals { max-width:100%; }
}

/* A single owned scope is fixed, but remains a readable plan title. */
#studentLearningHome[data-ready="true"] #studentTrainingGrade:disabled { color:#21212c; opacity:1; -webkit-text-fill-color:#21212c; }

/* Published catalog preview only; it never grants or changes learning permissions. */
.student-preview-card > header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; }
.student-preview-card > header h3 { margin:0; }
.student-preview-lock { color:#737380; font-size:14px; }
.student-preview-row { margin:0 0 24px; }
.student-preview-row > p { margin:0 0 14px; color:#565662; font-size:15px; }
.student-preview-card .student-unit-nodes { margin:0; flex-wrap:wrap; gap:14px; }
.student-preview-node { cursor:pointer; }
.student-preview-card .student-plan-action:disabled { border-color:#d1d1d6; background:#ededf0; color:#787884; box-shadow:0 4px 0 #d1d1d6; cursor:not-allowed; }

/* Homepage modules use the supplied reference's expandable card structure. */
#studentUnitList { gap:22px; }
.student-home-module-card { position:relative; padding:0; overflow:hidden; border:1px solid #d1d1d6; border-radius:12px; box-shadow:none; }
.student-module-summary { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:26px 32px 22px; list-style:none; cursor:pointer; }
.student-module-summary::-webkit-details-marker { display:none; }
.student-module-summary > div:first-child { min-width:0; }
.student-module-summary h3 { margin:0 0 10px; font-size:20px; line-height:1.35; font-weight:650; }
.student-module-summary .student-plan-course-title { margin:0; color:#565662; font-size:15px; line-height:1.5; }
.student-module-summary .student-plan-course-progress { margin:6px 0 0; color:#565662; font-size:15px; }
.student-module-header-meta { display:flex; align-items:center; flex-shrink:0; gap:16px; }
.student-module-header-meta .student-preview-lock { padding:4px 9px; border:1px solid #d1d1d6; border-radius:8px; background:#f0f0f3; color:#565662; font-size:13px; white-space:nowrap; }
.student-module-chevron { width:20px; height:20px; color:#565662; }
.student-home-module-card[open] .student-module-chevron { transform:rotate(180deg); }
.student-home-module-card.is-current[open] > summary { box-shadow:inset 0 0 0 1px #756dff; border-bottom:1px solid #756dff; }
.student-module-summary:focus-visible { outline:2px solid #5b50ff; outline-offset:-3px; }
.student-module-body { padding:6px 32px 30px; }
.student-module-body .student-unit-nodes { --course-node-diameter:24px; --home-node-size:24px; margin:0 0 28px; flex-wrap:wrap; align-items:center; gap:16px; }
.student-module-node-wrap { position:relative; display:grid; width:24px; height:24px; flex:0 0 24px; place-items:center; }

.student-module-node-wrap:not(:last-child)::after { position:absolute; top:12px; left:24px; width:16px; height:2px; background:#babac2; content:""; transform:translateY(-50%); }
.student-module-body .student-plan-progress { margin:8px 0 16px; }
.student-module-body .student-plan-action { min-width:170px; min-height:52px; margin-top:4px; padding:10px 24px; border-radius:10px; background:#ecefff; box-shadow:0 6px 0 #c8ceff; font-size:17px; font-weight:600; }
.student-module-body .student-plan-action:disabled { background:#ededf0; border-color:#d1d1d6; color:#787884; box-shadow:0 6px 0 #d1d1d6; cursor:not-allowed; }
.student-module-bottom-progress { position:absolute; bottom:0; left:0; right:0; height:4px; background:transparent; overflow:hidden; }
.student-module-bottom-progress > span { display:block; height:100%; background:#5b50ff; }
.student-module-section-actions { display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; gap:20px; }
#studentCollapseModules { border:0; padding:6px 0; background:transparent; color:#5b50ff; font:inherit; font-weight:600; cursor:pointer; }
#studentCollapseModules:focus-visible { outline:2px solid #5b50ff; outline-offset:3px; }
#studentTodayCard:not(.is-first-learning) .student-today-eyebrow { display:none; }
#studentTodayCard:not(.is-first-learning) .student-today-status { --course-node-diameter:32px; --home-node-size:32px; gap:18px; margin-top:26px; }
#studentTodayCard:not(.is-first-learning) .student-today-node-wrap { width:32px; flex-basis:32px; }
#studentTodayCard:not(.is-first-learning) .student-today-node-wrap .student-course-node { width:32px; height:32px; flex-basis:32px; }
#studentTodayCard:not(.is-first-learning) .student-today-node-wrap:not(:last-child)::after { top:16px; left:32px; width:18px; }
#studentTodayCard:not(.is-first-learning) .student-today-actions { margin-top:32px; }
@media(min-width:1024px) {
  #studentTodayCard:not(.is-first-learning) { min-height:360px; padding:40px 32% 42px 5.5%; }
  #studentTodayCard:not(.is-first-learning) h1 { font-size:clamp(30px,2.2vw,42px); line-height:1.22; }
  #studentTodayCard:not(.is-first-learning) .student-today-sub { margin-top:24px; font-size:clamp(16px,1.05vw,20px); }
  #studentTodayCard:not(.is-first-learning) .student-today-art { width:32%; padding:30px 16px; }
  #studentTodayCard:not(.is-first-learning) .student-today-art svg { width:clamp(170px,12vw,230px); }
  #studentTodayCard:not(.is-first-learning) .student-today-actions button { min-height:56px; }
}
@media(max-width:600px) {
  .student-module-summary { align-items:flex-start; padding:22px 20px 18px; gap:12px; }
  .student-module-summary h3 { font-size:19px; }
  .student-module-summary .student-plan-course-title,.student-module-summary .student-plan-course-progress { font-size:14px; }
  .student-module-header-meta { gap:8px; }
  .student-module-header-meta .student-preview-lock { padding:3px 6px; font-size:12px; }
  .student-module-body { padding:8px 20px 26px; }
  .student-module-body .student-plan-action { min-width:150px; min-height:46px; font-size:16px; }
  .student-module-section-actions { gap:12px; }
  .student-module-section-actions .student-weekly-plan-summary { font-size:13px; }
}

/* Match the supplied mission-card reference, including task routes in all modules. */
#studentUnitList { gap:30px; }
.student-units-section { gap:28px; }
.student-module-summary { padding:34px 40px 28px; }
.student-plan-module-card .student-module-summary h3 { margin:0 0 10px; font-size:20px; font-weight:600; }
.student-module-summary .student-plan-course-title,.student-module-summary .student-plan-course-progress { font-size:16px; }
.student-module-body { padding:18px 40px 44px; }
.student-home-module-card.is-current[open] .student-module-body { padding-top:4px; }
.student-module-body .student-unit-nodes { position:relative; display:grid; gap:18px; margin:0 0 38px; }
.student-module-node-row { display:flex; align-items:center; gap:var(--cn-gap); height:var(--cn-size); max-width:100%; }
.student-module-node-row.is-reverse { flex-direction:row-reverse; }
.student-module-node-wrap:not(:last-child)::after { content:none; }
.student-module-route { position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
.student-module-route path { fill:none; stroke:var(--cn-line); stroke-width:2; }
.student-module-node-wrap .student-course-node { cursor:pointer; }
.student-module-body .student-plan-action { min-width:210px; min-height:66px; margin-top:0; font-size:20px; font-weight:500; border-radius:14px; box-shadow:0 7px 0 #c5ccff; }
.student-module-bottom-progress { background:#f5f5f7; }
.student-module-due { display:inline-flex; align-items:center; gap:5px; }
.student-module-due svg { width:16px; height:16px; }
@media(min-width:1024px) {
  #studentTodayCard:not(.is-first-learning) h1 { font-weight:700; }
  #studentTodayCard:not(.is-first-learning) .student-today-actions { gap:20px; margin-top:38px; }
  #studentTodayCard:not(.is-first-learning) .student-today-actions button { min-height:66px; font-size:20px; font-weight:500; }
}
@media(max-width:600px) {
  #studentUnitList { gap:24px; }
  .student-units-section { gap:20px; }
  .student-module-summary { padding:24px 20px 22px; }
  .student-module-summary .student-plan-course-title,.student-module-summary .student-plan-course-progress { font-size:14px; }
  .student-module-body { padding:14px 20px 32px; }
  .student-module-body .student-unit-nodes { margin-bottom:28px; }
  .student-module-body .student-plan-action { min-width:170px; min-height:52px; font-size:17px; border-radius:10px; }
}

/* One proportional scale for the normal Daily Mission hero, from the 1104px reference.
   Container units follow the card width instead of viewport size or browser zoom. */
@media(min-width:1024px) {
  .student-learning-main { container-type:inline-size; container-name:student-home-main; }
}
@container student-home-main (min-width:680px) {
  #studentTodayCard:has(.student-today-status) {
    --hero-unit:.09057971cqw;
    box-sizing:border-box;
    height:auto;
    min-height:calc(446 * var(--hero-unit));
    padding:calc(64 * var(--hero-unit)) calc(300 * var(--hero-unit)) calc(62 * var(--hero-unit)) calc(60 * var(--hero-unit));
    border-radius:calc(10 * var(--hero-unit));
    background:#f7f8fa;
    box-shadow:0 2px 2px rgba(15,23,42,.09);
  }
  #studentTodayCard:has(.student-today-status) h1 {
    max-width:calc(650 * var(--hero-unit));
    margin:0;
    font-size:calc(40 * var(--hero-unit));
    font-weight:600;
    line-height:1.25;
    letter-spacing:0;
  }
  #studentTodayCard:has(.student-today-status) .student-today-title-ending { display:block; }
  #studentTodayCard:has(.student-today-status) .student-today-sub {
    margin:calc(24 * var(--hero-unit)) 0 0;
    font-size:calc(20 * var(--hero-unit));
    font-weight:400;
    line-height:1.45;
  }
  #studentTodayCard:has(.student-today-status) .student-today-status {
    --course-node-diameter:calc(32 * var(--hero-unit));
    --home-node-size:calc(32 * var(--hero-unit));
    min-height:var(--home-node-size);
    margin:calc(23 * var(--hero-unit)) 0 0;
    padding-left:calc(4 * var(--hero-unit));
    gap:calc(18 * var(--hero-unit));
  }
  #studentTodayCard:has(.student-today-status) .student-today-node-wrap {
    width:var(--home-node-size);
    flex-basis:var(--home-node-size);
  }
  #studentTodayCard:has(.student-today-status) .student-today-node-wrap .student-course-node {
    width:var(--home-node-size);
    height:var(--home-node-size);
    flex-basis:var(--home-node-size);
    padding:0;
  }
  #studentTodayCard:has(.student-today-status) .student-today-node-wrap .student-course-node svg {
    width:calc(16 * var(--hero-unit));
    height:calc(16 * var(--hero-unit));
  }
  #studentTodayCard:has(.student-today-status) .student-today-node-wrap:not(:last-child)::after {
    top:calc(16 * var(--hero-unit));
    left:var(--home-node-size);
    width:calc(18 * var(--hero-unit));
  }
  #studentTodayCard:has(.student-today-status) .student-today-actions {
    display:flex;
    flex-wrap:nowrap;
    width:calc(656 * var(--hero-unit));
    max-width:100%;
    margin-top:calc(43 * var(--hero-unit));
    gap:calc(20 * var(--hero-unit));
  }
  #studentTodayCard:has(.student-today-status) .student-today-actions #studentContinueButton,
  #studentTodayCard:has(.student-today-status) .student-today-actions .student-today-all {
    flex:1 1 0;
    width:calc(318 * var(--hero-unit));
    min-width:0;
    height:calc(68 * var(--hero-unit));
    min-height:calc(68 * var(--hero-unit));
    padding:0 calc(22 * var(--hero-unit));
    border-radius:calc(14 * var(--hero-unit));
    font-size:calc(20 * var(--hero-unit));
    font-weight:700;
    line-height:1.2;
  }
  #studentTodayCard:has(.student-today-status) #studentContinueButton { box-shadow:0 calc(8 * var(--hero-unit)) 0 #352dab; }
  #studentTodayCard:has(.student-today-status) .student-today-all { box-shadow:0 calc(8 * var(--hero-unit)) 0 #c5ccff; }
  #studentTodayCard:has(.student-today-status) .student-today-art {
    width:calc(360 * var(--hero-unit));
    padding:0;
  }
  #studentTodayCard:has(.student-today-status) .student-today-art svg {
    width:calc(230 * var(--hero-unit));
    max-width:100%;
  }
}

/* Homepage module density only: keep the Daily Mission and shared record logic intact. */
#studentUnitList { gap:22px; }
#studentUnitList .student-home-module-card { padding:0; min-height:0; }
#studentUnitList .student-module-summary { align-items:flex-start; padding:20px 32px 0; gap:16px; }
#studentUnitList .student-module-summary h3 { margin:0 0 6px; font-size:20px; font-weight:600; line-height:1.3; }
#studentUnitList .student-plan-course-title { margin:0; font-size:15px; line-height:1.5; }
#studentUnitList .student-plan-course-progress { margin:0; font-size:15px; line-height:1.5; }
#studentUnitList .student-module-header-meta { padding-top:3px; }
#studentUnitList .student-module-chevron { width:20px; height:20px; }
#studentUnitList .student-home-module-card.is-current[open] > summary { box-shadow:none; border-bottom:0; }
/* The header is outlined on hover, rather than keeping the first card highlighted. */
#studentUnitList .student-home-module-card.is-current { border-color:#d1d1d6; }
#studentUnitList .student-module-summary { position:relative; }
#studentUnitList .student-module-summary::after {
  position:absolute;
  inset:0;
  border:1px solid transparent;
  border-radius:11px 11px 0 0;
  content:"";
  pointer-events:none;
}
#studentUnitList .student-home-module-card:not([open]) > .student-module-body { display:none; }
#studentUnitList .student-home-module-card:not([open]) > summary::after { border-radius:11px; }
#studentUnitList .student-module-summary:focus-visible::after { border-color:#8078ff; }
@media (hover:hover) and (pointer:fine) {
  #studentUnitList .student-module-summary:hover::after { border-color:#8078ff; }
}
#studentUnitList .student-module-body { padding:18px 32px 24px; }
#studentUnitList .student-module-body .student-unit-nodes { margin:0 0 26px; }
#studentUnitList .student-module-body .student-plan-action { width:160px; min-width:0; height:50px; min-height:50px; margin:0; padding:0 14px; border-radius:10px; font-size:16px; font-weight:700; line-height:1.2; box-shadow:0 5px 0 #c5ccff; }
#studentUnitList .student-module-body .student-plan-action:not(:disabled) { color:#4338ca; }
#studentUnitList .student-module-progress-copy { display:flex; flex-wrap:wrap; align-items:center; gap:4px 16px; }
#studentUnitList .student-module-goals { display:flex; flex-wrap:wrap; gap:4px 12px; color:#737380; font-size:13px; line-height:1.5; }
#studentUnitList .student-module-goals strong { font-weight:500; color:#565662; }
#studentUnitList .student-home-module-card:not([open]) > summary { padding-bottom:20px; }
#studentUnitList .student-home-module-card:not([open]) > .student-module-bottom-progress { display:none; }
#studentUnitList .student-plan-note { margin:0 0 14px; line-height:1.5; }
#studentUnitList .student-course-node.home-task-attempted { border-color:#aabaff; background:#e7ecff; color:#4b50cd; }
#studentUnitList .student-course-node.home-task-completed { border-color:#9bcfa5; background:#ccebd0; color:#176b36; }
.student-module-section-actions { gap:16px; }
.student-module-section-actions .student-weekly-plan-summary { font-size:14px; font-weight:400; }
#studentCollapseModules { font-size:15px; font-weight:500; }
@media(max-width:600px) {
  #studentUnitList .student-module-summary { padding:20px 20px 0; gap:12px; }
  #studentUnitList .student-module-body { padding:18px 20px 24px; }
  #studentUnitList .student-module-goals { gap:4px 10px; font-size:12px; }
}

/* One information icon for the homepage Mastery and Mission headings. */
.student-learning-home .student-card-title-row,
.student-learning-home .student-mission-summary-head > div { align-items:center; gap:8px; }
.student-learning-home .student-info-button {
  display:inline-flex; align-items:center; justify-content:center; flex:0 0 16px;
  width:16px; height:16px; min-width:16px; min-height:16px; padding:0;
  border:0; border-radius:0; background:transparent; box-shadow:none;
  color:#565662; line-height:1; cursor:pointer;
}
.student-learning-home .student-info-button .student-info-icon {
  display:block; flex-shrink:0; width:16px; height:16px; color:inherit;
}

/* Real task covers are presentation metadata; keep the popup scrollable within the viewport. */
.student-learning-node-popover { padding:0; border-radius:var(--cn-pop-radius); }
.student-learning-popover-content { max-height:calc(100vh - 26px); max-height:calc(100dvh - 26px); overflow-y:auto; border-radius:inherit; }
.student-learning-popover-cover { display:block; width:100%; max-width:100%; height:130px; contain:inline-size; object-fit:cover; border-radius:inherit; border-bottom-left-radius:0; border-bottom-right-radius:0; }
.student-learning-popover-details { position:relative; padding:20px 24px 24px; }
.student-learning-popover-details > strong { display:block; padding-right:24px; font-size:18px; font-weight:600; line-height:1.3; }
.student-learning-popover-details > p { margin:8px 0 10px; font-size:22px; line-height:1.3; overflow-wrap:anywhere; }
.student-learning-popover-details > small { display:block; color:#787884; font-size:13px; line-height:1.4; }

/* Training popovers: compact titles and a centered lightweight action. */
.student-learning-node-popover.is-training-popover { width:max-content; border-radius:8px; }
.is-training-popover .student-learning-popover-details { padding:20px 24px 24px; }
.is-training-popover .student-learning-popover-details > strong { padding-right:24px; }
.is-training-popover .student-learning-popover-details > p { margin:8px 0 10px; font-size:22px; line-height:1.3; }
.student-learning-node-popover .student-node-popover-go,
.student-daily-node-popover .student-node-popover-go { display:flex; align-items:center; justify-content:center; width:140px; min-width:140px; height:46px; min-height:46px; margin:20px auto 0; padding:0 12px; border:1px solid var(--cn-pop-btn-border); border-radius:9px; background:var(--cn-pop-btn-bg); color:var(--cn-pop-btn-color); font-size:16px; line-height:1.3; box-shadow:var(--cn-pop-btn-shadow); }
.student-learning-node-popover .student-node-popover-go:hover,
.student-daily-node-popover .student-node-popover-go:hover { background:var(--cn-pop-btn-hover); }

/* Shared node surface for the Daily Mission and all three homepage modules. */
#studentTodayCard:has(.student-today-status) .student-today-status {
  --course-node-diameter:var(--cn-size);
  --home-node-size:var(--cn-size);
  min-height:var(--cn-size);
  gap:var(--cn-gap);
}
#studentTodayCard:has(.student-today-status) .student-today-node-wrap,
.student-module-node-wrap {
  position:relative;
  display:grid;
  place-items:center;
  box-sizing:border-box;
  width:var(--cn-size);
  height:var(--cn-size);
  flex:0 0 var(--cn-size);
}
#studentTodayCard:has(.student-today-status) .student-today-node-wrap .student-course-node,
.student-module-node-wrap .student-course-node,
.student-daily-popover-status > .student-course-node {
  --course-node-diameter:var(--cn-size);
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
  box-sizing:border-box;
  width:var(--cn-size);
  height:var(--cn-size);
  flex-basis:var(--cn-size);
  margin:0;
  padding:0;
  border:0;
  box-shadow:var(--cn-shadow);
}
#studentTodayCard:has(.student-today-status) .student-today-node-wrap .student-course-node svg,
.student-module-node-wrap .student-course-node svg,
.student-daily-popover-status > .student-course-node svg { width:var(--cn-icon); height:var(--cn-icon); }
#studentTodayCard:has(.student-today-status) .student-today-node-wrap .student-course-node .course-not-started-pencil,
#studentTodayCard:has(.student-today-status) .student-today-node-wrap .student-course-node .course-mastery-challenge-star,
.student-module-node-wrap .student-course-node .course-not-started-pencil,
.student-module-node-wrap .student-course-node .course-mastery-challenge-star,
.student-daily-popover-status > .student-course-node .course-not-started-pencil,
.student-daily-popover-status > .student-course-node .course-mastery-challenge-star { width:var(--cn-icon-lg); height:var(--cn-icon-lg); }
#studentTodayCard:has(.student-today-status) .student-today-node-wrap .student-course-node .course-not-started-lightning,
.student-module-node-wrap .student-course-node .course-not-started-lightning,
.student-daily-popover-status > .student-course-node .course-not-started-lightning { width:var(--cn-icon-bolt-w); height:var(--cn-icon-bolt-h); }
#studentTodayCard:has(.student-today-status) .student-today-node-wrap .student-course-node .course-not-started-video,
.student-module-node-wrap .student-course-node .course-not-started-video,
.student-daily-popover-status > .student-course-node .course-not-started-video { width:var(--cn-icon-play-w); height:var(--cn-icon-play-h); }
#studentTodayCard:has(.student-today-status) .student-today-node-wrap:not(:last-child)::after {
  top:12px;
  left:var(--cn-size);
  width:var(--cn-gap);
  height:2px;
  background:var(--cn-line);
  transform:translateY(-50%);
}
/* Lift only the surface; the node slot and connecting route stay fixed. */
@media (hover:hover) and (pointer:fine) {
  #studentTodayCard:has(.student-today-status) .student-today-node-wrap .student-course-node,
  .student-module-node-wrap .student-course-node { transition:transform var(--cn-move), box-shadow var(--cn-move); }
  #studentTodayCard:has(.student-today-status) .student-today-node-wrap .student-course-node:hover,
  .student-module-node-wrap .student-course-node:hover { transform:var(--cn-lift); box-shadow:var(--cn-shadow-hover); }
}
@media (prefers-reduced-motion:reduce) {
  #studentTodayCard:has(.student-today-status) .student-today-node-wrap .student-course-node,
  .student-module-node-wrap .student-course-node { transition:none; }
}

/* Consistent stronger text for the hero actions and module section controls. */
#studentTodayCard .student-today-actions #studentContinueButton,
#studentTodayCard .student-today-actions .student-today-all { font-weight:700; }
#studentTodayCard .student-today-actions .student-today-all { color:#4338ca; }
#studentWeeklyPlanSummary { color:#21212c; font-weight:700; }
#studentCollapseModules { color:#4338ca; font-weight:700; }

/* Compact scope picker and gem control, matching the supplied desktop reference. */
@media(min-width:1280px) {
  #studentLearningHome > .student-home-topbar #studentCurrentCourse {
    display:inline-grid;
    grid-template-columns:20px minmax(0,1fr);
    align-items:center;
    gap:10px;
    width:max-content;
    min-width:170px;
    max-width:100%;
    height:40px;
    min-height:40px;
    padding:0 10px;
    box-sizing:border-box;
    border-radius:8px;
  }
  #studentLearningHome > .student-home-topbar #studentCurrentCourse::before {
    display:block;
    width:20px;
    height:20px;
    background:#59a776;
    content:"";
  }
  #studentLearningHome > .student-home-topbar #studentCurrentCourse > span { display:none; }
  #studentLearningHome > .student-home-topbar #studentTrainingGrade {
    width:auto;
    min-width:0;
    max-width:100%;
    height:38px;
    margin:0;
    padding:0 18px 0 0;
    box-sizing:border-box;
    font-size:14px;
    font-weight:600;
  }
  #studentLearningHome > .student-home-topbar .student-gem-entry {
    gap:8px;
    flex:0 0 auto;
    min-width:64px;
    height:40px;
    padding:0 10px;
    box-sizing:border-box;
    border-width:1px;
    border-radius:12px;
    box-shadow:0 5px 0 #d1d1d6;
  }
  #studentLearningHome > .student-home-topbar .student-gem-entry svg {
    flex:0 0 18px;
    width:18px;
    height:16px;
  }
  #studentLearningHome > .student-home-topbar .student-gem-entry strong {
    font-size:16px;
    font-weight:600;
    line-height:1.25;
    color:#787884;
  }
}

/* Mastered SVG includes its own circular background; keep it at the node diameter. */
.student-module-node-wrap .student-course-node.is-mastered > svg { width:var(--cn-size); height:var(--cn-size); }

/* Training node base styles must not override the existing Mastery palette. */
#studentUnitList .student-course-node.home-task-node:is(.is-attempted,.is-familiar) { background:#ffe7a3; color:#946b00; }
#studentUnitList .student-course-node.home-task-node.is-proficient { background:#b7e9be; color:#315e3b; }
#studentUnitList .student-course-node.home-task-node.is-mastered { background:transparent; color:#315e3b; }

/* Module continuation: the shared Khan-style full-page path and list views. */
.student-daily-path-dialog { grid-template-rows:auto minmax(0,1fr); }
.student-daily-path-dialog > header { position:relative; z-index:5; background:#fff; }
.student-daily-path-dialog #studentDailyPathPosition { color:#787884; font-weight:600; }
.student-daily-view-switch { overflow:visible; flex-shrink:0; }
.student-daily-view-switch > button { position:relative; border-radius:0; background:#fff; }
.student-daily-view-switch > button:first-child { border-radius:6px 0 0 6px; }
.student-daily-view-switch > button:last-child { border-radius:0 6px 6px 0; }
.student-daily-view-tip { display:none; position:absolute; z-index:8; top:calc(100% + 24px); left:50%; width:max-content; padding:12px 20px; border:1px solid #cccdd3; border-radius:4px; background:#fff; color:#21212c; font-size:18px; font-weight:400; box-shadow:0 3px 8px #21212c26; transform:translateX(-50%); pointer-events:none; }
.student-daily-view-tip::before { position:absolute; top:-9px; left:calc(50% - 9px); width:16px; height:16px; border-top:1px solid #cccdd3; border-left:1px solid #cccdd3; background:#fff; transform:rotate(45deg); content:""; }
@media (hover:hover) and (pointer:fine) { .student-daily-view-switch > button:hover .student-daily-view-tip { display:block; } }
.student-daily-view-switch > button:focus-visible .student-daily-view-tip { display:block; }
.student-daily-current-card { position:relative; scroll-margin-top:20px; }
.student-daily-current-copy { display:flex; flex-direction:column; align-items:flex-start; width:100%; flex:1; min-width:0; }
.student-daily-current-copy > small { display:block; margin:8px 0 16px; color:#787884; font-size:13px; }
.student-daily-card-collapse { position:absolute; top:16px; right:16px; display:grid; place-items:center; width:28px; height:28px; padding:0; border:0; background:transparent; color:#565662; cursor:pointer; }
.student-daily-card-collapse svg { width:20px; height:20px; transform:rotate(180deg); }
.student-daily-current-type { padding-right:20px; }
.student-daily-current-type > .student-course-node { flex-shrink:0; display:grid; place-items:center; }
.student-daily-current-type > .student-course-node svg,
.student-daily-task-row > .student-course-node svg,
.student-daily-task-type > .student-course-node svg { width:55%; height:55%; }
.student-daily-task-row > .student-course-node { display:grid; place-items:center; padding:0; }
.student-daily-task-row > .student-course-node.is-mastered svg,
.student-daily-task-type > .student-course-node.is-mastered svg { width:100%; height:100%; }
.student-daily-return-row { position:sticky; top:20px; z-index:2; display:flex; justify-content:center; padding:2px 0; pointer-events:none; }
#studentDailyReturnNext { display:inline-flex; align-items:center; gap:10px; min-height:40px; padding:0 18px; border:1px solid #c2cbff; border-radius:8px; background:#ebefff; color:#5b50ff; font:inherit; font-size:16px; font-weight:600; pointer-events:auto; cursor:pointer; }
.student-daily-due { display:inline-flex; align-items:center; gap:5px; }
.student-daily-due.is-overdue { border-color:#ffb6b6; background:#ffeded; color:#b91c1c; }
.student-daily-due svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; }
.student-daily-due-cell { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.student-daily-due-cell .student-daily-due { margin:0; }
.student-daily-task-table th { font-weight:500; }
.student-daily-task-table td { height:71px; padding:16px 28px; }
.student-daily-task-type > .student-course-node { display:grid; place-items:center; width:28px; height:28px; flex:0 0 28px; padding:0; box-shadow:none; }
.student-daily-list-pagination { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:26px 10px 0; color:#565662; font-size:16px; }
.student-daily-list-pagination > div { display:flex; align-items:center; gap:26px; }
.student-daily-list-pagination button { padding:0 8px; border:0; background:transparent; color:#5b50ff; font:inherit; font-size:18px; font-weight:600; cursor:pointer; }
.student-daily-list-pagination button:disabled { color:#cccdd3; cursor:default; }
.student-daily-path-stop .student-course-node.is-mastered svg { width:100%; height:100%; }
.student-daily-task-row:focus-visible,
.student-daily-card-collapse:focus-visible,
#studentDailyReturnNext:focus-visible,
.student-daily-list-pagination button:focus-visible { outline:2px solid #5b50ff; outline-offset:2px; }
@media (min-width:1280px) {
  .student-daily-list-body { padding:30px 40px; }
  .student-daily-list-tabs > button { font-size:20px; font-weight:400; }
  .student-daily-task-table th { padding:16px 30px; font-size:18px; }
  .student-daily-task-table td { padding:16px 30px; font-size:20px; }
  .student-daily-task-table th:nth-child(2) { width:33%; }
  .student-daily-task-table th:nth-child(3) { width:18%; }
  .student-daily-task-type > .student-course-node { width:35px; height:35px; flex-basis:35px; }
  #studentDailyReturnNext { min-height:50px; padding:0 22px; font-size:20px; }
  .student-daily-current-copy > small { font-size:clamp(11px,.677083vw,13px); }
}
@media (max-width:1279px) {
  .student-daily-path-dialog > header > div { min-width:0; }
  .student-daily-path-dialog > header h2 { max-width:100%; overflow-wrap:anywhere; }
  .student-daily-path-dialog #studentDailyPathPosition { font-size:12px; }
  .student-daily-path-dialog .student-daily-divider { display:none; }
  .student-daily-return-row { position:static; order:2; padding:0; }
  .student-daily-task-rows { order:3; }
  .student-daily-list-pagination { margin:20px 0 0; gap:10px; font-size:13px; }
  .student-daily-list-pagination > div { gap:10px; }
  .student-daily-list-pagination button { font-size:14px; padding:0 3px; }
  .student-daily-task-table th:first-child { width:48%; }
  .student-daily-list-body .student-daily-task-table th,
  .student-daily-list-body .student-daily-task-table td { overflow-wrap:anywhere; }
  .student-daily-view-tip { display:none!important; }
}

/* Focus page view switch must override generic dialog-header button rules. */
.student-daily-path-dialog .student-daily-view-switch > button { width:44px; height:48px; padding:0; color:#5b50ff; background:#fff; }
.student-daily-path-dialog .student-daily-view-switch > button[aria-pressed="true"] { color:#fff; background:#5b50ff; }
.student-daily-path-dialog .student-daily-view-switch > button > svg { width:22px; height:22px; }
@media(max-width:1279px) { .student-daily-path-dialog .student-daily-view-switch > button { width:34px; height:34px; } .student-daily-path-dialog .student-daily-view-switch > button > svg { width:18px; height:18px; } }

/* The focused course map selects one real Unit without stacking the whole book. */
.student-daily-path-dialog.has-course-units > header { min-height:100px; }
.student-daily-path-dialog.has-course-units > header > div { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; align-items:center; min-width:0; }
.student-daily-unit-heading { display:grid; gap:5px; min-width:0; }
.student-daily-unit-selector { position:relative; min-width:0; }
.student-daily-unit-selector > summary { display:flex; align-items:center; gap:8px; padding:0; list-style:none; cursor:pointer; }
.student-daily-unit-selector > summary::-webkit-details-marker { display:none; }
.student-daily-unit-selector > summary h2 { margin:0; overflow-wrap:anywhere; }
.student-daily-unit-selector > summary > svg { flex:0 0 18px; width:18px; height:18px; color:#565662; }
.student-daily-unit-selector[open] > summary > svg { transform:rotate(180deg); }
.student-daily-unit-selector > summary:focus-visible { outline:2px solid #5b50ff; outline-offset:4px; border-radius:4px; }
.student-daily-unit-meta { display:flex; flex-wrap:wrap; align-items:center; gap:6px 16px; color:#787884; font-size:14px; }
.student-daily-path-dialog .student-daily-unit-meta #studentDailyPathPosition { font-size:14px; }
.student-daily-unit-menu { position:absolute; left:0; top:calc(100% + 12px); z-index:15; width:min(520px,calc(100vw - 32px)); max-height:min(380px,65dvh); overflow-y:auto; padding:6px; border:1px solid #cccdd3; border-radius:10px; background:#fff; box-shadow:0 4px 12px #21212c18; }
.student-daily-path-dialog .student-daily-unit-menu button { display:grid; grid-template-columns:18px minmax(0,1fr) auto; align-items:center; gap:10px; width:100%; height:auto; min-height:44px; padding:10px 12px; border:0; border-radius:6px; background:#fff; color:#21212c; font:inherit; font-size:15px; text-align:left; cursor:pointer; }
.student-daily-path-dialog .student-daily-unit-menu button:hover,
.student-daily-path-dialog .student-daily-unit-menu button[aria-current="true"] { background:#ebefff; }
.student-daily-unit-menu button > small { color:#787884; font-size:13px; white-space:nowrap; }
.student-daily-unit-check { display:grid; place-items:center; color:#176b36; }
.student-daily-unit-check svg { width:16px; height:16px; }
.student-daily-unit-navigation { display:flex; justify-content:space-between; gap:12px; padding:20px 0; }
.student-daily-unit-navigation button { padding:6px 0; border:0; background:transparent; color:#4338ca; font:inherit; font-size:14px; font-weight:600; cursor:pointer; }
.student-daily-unit-completion { margin:20px 0; padding:18px 20px; border:1px solid #cccdd3; border-radius:10px; }
.student-daily-unit-completion > strong { display:block; margin-bottom:12px; font-size:18px; }
.student-daily-unit-completion > p { margin:0 0 12px; }
.student-daily-unit-completion[hidden] { display:none; }
@media(max-width:1279px) {
  .student-daily-path-dialog.has-course-units > header { padding:14px 12px; gap:10px; min-height:108px; }
  .student-daily-path-dialog.has-course-units > header > div { grid-template-columns:minmax(0,1fr); gap:10px; }
  .student-daily-unit-meta { font-size:12px; gap:3px 10px; }
  .student-daily-path-dialog .student-daily-unit-meta #studentDailyPathPosition { font-size:12px; }
  .student-daily-unit-menu { position:fixed; left:12px; right:12px; top:116px; width:auto; max-height:calc(100dvh - 140px); }
  .student-daily-unit-completion { padding:16px; }
}

.student-daily-path-dialog.has-course-units .student-daily-view-switch { width:max-content; justify-self:end; }
@media(max-width:1279px){.student-daily-path-dialog.has-course-units .student-daily-view-switch{justify-self:start}}

.student-daily-unit-menu > p { margin:8px 12px; color:#787884; font-size:13px; }

/* Gem challenge help shares the existing dialog interaction. */
.student-gem-info-button { display:inline-flex; align-items:center; justify-content:center; flex:0 0 16px; width:16px; height:16px; min-width:16px; min-height:16px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; color:#565662; cursor:pointer; }
.student-gem-info-button .student-info-icon { display:block; width:16px; height:16px; }
.student-gem-info-dialog { width:min(960px,100%); }
.student-gem-info-dialog > header { padding:24px 30px; }
.student-gem-info-dialog > header button { border:2px solid #584aff; background:white; color:#565662; }
.student-gem-info-dialog .student-mission-dialog-body { padding:30px; }
.student-gem-info-dialog h3 { font-size:22px; }
.student-gem-info-dialog .student-mission-dialog-body > p { color:#565662; font-size:17px; line-height:1.5; }
.student-gem-reward-table { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); overflow:hidden; border:1px solid #f4b4dc; border-radius:14px; background:#fceff8; color:#942467; }
.student-gem-reward-table > section { padding:22px 16px; text-align:center; }
.student-gem-reward-table > section + section { border-left:1px solid #f4b4dc; }
.student-gem-reward-table h4 { display:flex; justify-content:center; align-items:center; gap:6px; margin:0 0 18px; font-size:22px; }
.student-gem-info-gem { width:24px; height:22px; flex-shrink:0; }
.student-gem-info-dialog .student-gem-reward-table p { margin:0 0 16px; color:inherit; line-height:1.5; font-size:17px; }
.student-gem-info-dialog .student-mission-dialog-body .student-gem-info-note { margin:20px 0 0; font-size:14px; }
@media(max-width:700px) {
  .student-gem-reward-table { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .student-gem-reward-table > section:nth-child(3) { border-left:0; }
  .student-gem-reward-table > section:nth-child(n+3) { border-top:1px solid #f4b4dc; }
  .student-gem-info-dialog .student-mission-dialog-body { padding:20px; }
}
@media(max-width:380px) {
  .student-gem-reward-table h4 { font-size:18px; }
  .student-gem-reward-table > section { padding:18px 8px; }
}

.student-gem-info-gem .gem-fill { fill:#ed3b9b; }
.student-gem-info-gem .gem-facet { fill:#ff9dd0; }
.student-gem-info-gem .gem-shade { fill:#cc2781; }

.student-personal-challenge-done { margin:14px 16px 0; color:#287347; font-size:14px; font-weight:600; }

/* Focus map: independent panes and one detail card at the selected task's position. */
.student-daily-path-body { min-height:0; }
.student-daily-task-item { min-width:0; }
.student-daily-task-item > .student-daily-task-row { width:100%; }
.student-daily-task-item:has(> .student-daily-current-card:not([hidden])) > .student-daily-task-row { display:none; }
.student-daily-current-card[hidden] { display:none; }
.student-daily-task-row:hover { outline:1px solid #6b65ff; outline-offset:-1px; background:#fafaff; }
.student-daily-task-row:hover, .student-daily-task-row:active { transform:none; }
.student-daily-task-item > .student-daily-current-card { margin:0 0 12px; }
.student-daily-path-assistant { transition:none; }
.student-daily-path-assistant > svg { transform-origin:center; }
.daily-assistant-eyes { transform-origin:64px 48px; }
.student-daily-assistant-burst { position:absolute; inset:10%; z-index:0; border:8px dotted #847aff; border-radius:50%; opacity:0; pointer-events:none; }
.student-daily-return-row { position:sticky; top:8px; height:0; padding:0; z-index:4; }
#studentDailyReturnNext[hidden] { display:none; }
@media(min-width:1280px) {
  .student-daily-path-body { width:100%; height:100%; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0; padding:0; overflow:hidden; align-items:stretch; }
  .student-daily-path-map { position:relative; left:0; width:100%; height:100%; margin:0; padding:120px 0 100px; overflow:hidden; box-sizing:border-box; }
  .student-daily-path-canvas { width:calc(var(--daily-map-unit,1px) * 340); max-width:90%; margin:0 auto; }
  .student-daily-path-tasks { display:block; min-width:0; min-height:0; height:100%; overflow-y:auto; overflow-x:hidden; padding:30px max(24px,7vw) 60px 0; box-sizing:border-box; overscroll-behavior:contain; }
  .student-daily-current-card { min-height:280px; }
  .student-daily-current-card h3 { font-size:clamp(24px,1.7vw,34px); }
  .student-daily-current-card .student-mission-primary { min-width:140px; min-height:48px; border-radius:10px; padding:0 22px; margin-top:24px; }
  .student-daily-current-card .student-mission-primary.is-review { min-width:140px; }
}
@media(max-width:1279px) {
  .student-daily-path-body { display:flex; flex-direction:column; overflow-y:auto; }
  .student-daily-path-map { order:0; flex:none; width:min(340px,100%); height:320px; overflow:hidden; margin:0 auto; padding:70px 0; box-sizing:border-box; }
  .student-daily-path-canvas { width:100%; }
  .student-daily-path-tasks { display:block; order:1; width:100%; overflow:visible; }
  .student-daily-current-card { min-height:240px; padding:20px; }
  .student-daily-current-card h3 { font-size:24px; }
  .student-daily-task-row { width:100%; }
  .student-daily-return-row { position:sticky; top:8px; }
}
@media(prefers-reduced-motion:reduce) { .student-daily-assistant-burst { display:none; } }

/* Real reading/cloze covers accompany the expanded task without cropping cover text. */
.student-daily-current-card.has-cover { display:grid; grid-template-columns:minmax(0,58fr) minmax(0,42fr); align-items:center; gap:24px; }
.student-daily-current-cover { display:flex; align-items:center; justify-content:center; min-width:0; width:100%; height:clamp(180px,12vw,220px); margin:12px 0 0; }
.student-daily-current-cover img { display:block; width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; border-radius:10px; }
.student-daily-current-card.has-cover h3 { overflow-wrap:anywhere; }
@media(max-width:1200px) {
  .student-daily-current-card.has-cover { grid-template-columns:minmax(0,1fr); gap:16px; }
  .student-daily-current-cover { grid-row:1; height:190px; margin:16px 0 0; }
}


/* ===== Daily-mission page only (scoped by body[data-daily-mission-page]) ===== */
/* Status tag in the expanded card. */
body[data-daily-mission-page] .student-daily-card-status { display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; margin:2px 0 16px; }
body[data-daily-mission-page] .student-daily-card-status > small { margin:0; color:#787884; font-size:14px; }
body[data-daily-mission-page] .student-daily-status-tag { display:inline-flex; align-items:center; min-height:34px; padding:3px 14px; border-radius:999px; background:#eceef3; color:#515158; font-size:16px; font-weight:600; line-height:1.3; }
body[data-daily-mission-page] .student-daily-status-tag[data-level="attempted"],
body[data-daily-mission-page] .student-daily-status-tag[data-level="familiar"] { background:#fff1c9; color:#8a6100; }
body[data-daily-mission-page] .student-daily-status-tag[data-level="proficient"] { background:#dff5e3; color:#2d6a3a; }
body[data-daily-mission-page] .student-daily-status-tag[data-level="mastered"] { background:#eadfff; color:#5b3fb0; }
body[data-daily-mission-page] .student-daily-status-tag[data-level="completed"] { background:#e3e8ff; color:#4b40e6; }
/* Return-to-next-task button floats above the list. */
body[data-daily-mission-page] #studentDailyReturnNext { box-shadow:0 3px 10px rgba(33,33,44,.18); white-space:nowrap; }
@media (max-width:1279px) { body[data-daily-mission-page] .student-daily-return-row { position:fixed; top:auto; bottom:16px; left:0; right:0; height:auto; z-index:30; order:0; } }

/* ===== Daily-mission mascot: faces and effects (scoped to this page) ===== */
body[data-daily-mission-page] .student-daily-path-assistant > svg.student-daily-assistant-fx { position:absolute; left:0; top:0; z-index:2; overflow:visible; pointer-events:none; }
body[data-daily-mission-page] .student-daily-assistant-fx g,
body[data-daily-mission-page] .student-daily-assistant-fx circle,
body[data-daily-mission-page] .student-daily-assistant-fx polygon { opacity:0; transform-origin:64px 64px; }
body[data-daily-mission-page] .student-daily-assistant-fx circle { transform-box:fill-box; transform-origin:center; }
body[data-daily-mission-page] .student-daily-assistant-fx g circle { opacity:1; }
body[data-daily-mission-page] .student-daily-assistant-fx .fx-cloud { fill:#e6e9f2; }
body[data-daily-mission-page] .student-daily-assistant-fx .fx-swirl { fill:none; stroke:#fff; stroke-width:9; stroke-linecap:round; }
body[data-daily-mission-page] .student-daily-assistant-fx .fx-bit,
body[data-daily-mission-page] .student-daily-assistant-fx .fx-puff { fill:#e3e7f1; }
body[data-daily-mission-page] .student-daily-assistant-fx .fx-star { fill:#fff; stroke:#cfd6ff; stroke-width:3; stroke-linejoin:round; }
body[data-daily-mission-page] .da-squint,
body[data-daily-mission-page] .da-happy,
body[data-daily-mission-page] .da-mouth-open { opacity:0; }
body[data-daily-mission-page] svg[data-face="squint"] .daily-assistant-eyes,
body[data-daily-mission-page] svg[data-face="happy"] .daily-assistant-eyes { opacity:0; }
body[data-daily-mission-page] svg[data-face="squint"] .da-squint,
body[data-daily-mission-page] svg[data-face="happy"] .da-happy,
body[data-daily-mission-page] svg[data-face="surprise"] .da-mouth-open { opacity:1; }
body[data-daily-mission-page] svg[data-face="surprise"] .da-mouth-smile { opacity:0; }

/* daily-mission list view: smaller type */
@media (min-width:1280px) {
  body[data-daily-mission-page] .student-daily-list-body { padding:24px 32px; }
  body[data-daily-mission-page] .student-daily-list-tabs { gap:22px; margin-bottom:20px; }
  body[data-daily-mission-page] .student-daily-list-tabs > button { padding:8px 4px 12px; font-size:15px; font-weight:500; }
  body[data-daily-mission-page] .student-daily-task-table th { padding:12px 20px; font-size:14px; }
  body[data-daily-mission-page] .student-daily-task-table td { height:60px; padding:10px 20px; font-size:15px; line-height:1.4; }
  body[data-daily-mission-page] .student-daily-task-table td:nth-child(4) { white-space:nowrap; }
  body[data-daily-mission-page] .student-daily-task-table th:first-child { width:32%; }
  body[data-daily-mission-page] .student-daily-task-table th:nth-child(2) { width:22%; }
  body[data-daily-mission-page] .student-daily-task-table th:nth-child(3) { width:16%; }
  body[data-daily-mission-page] .student-daily-task-type { gap:10px; }
  body[data-daily-mission-page] .student-daily-task-type > .student-course-node { width:26px; height:26px; flex-basis:26px; }
  body[data-daily-mission-page] .student-daily-next-badge { padding:2px 7px; font-size:12px; border-radius:6px; }
  body[data-daily-mission-page] .student-daily-list-pagination { margin:18px 8px 0; font-size:14px; }
  body[data-daily-mission-page] .student-daily-list-pagination button { font-size:14px; }
}

/* daily-mission list view: empty state */
body[data-daily-mission-page] .student-daily-list-empty { display:flex; flex-direction:column; align-items:center; padding:56px 0 40px; color:#565662; text-align:center; }
body[data-daily-mission-page] .student-daily-list-empty[hidden] { display:none; }
body[data-daily-mission-page] .student-daily-empty-art { width:110px; height:110px; }
body[data-daily-mission-page] .student-daily-empty-art svg { width:100%; height:100%; }
body[data-daily-mission-page] .student-daily-list-empty h3 { margin:18px 0 6px; color:#21212c; font-size:22px; font-weight:700; }
body[data-daily-mission-page] .student-daily-list-empty p { margin:0; max-width:420px; font-size:16px; line-height:1.5; }
body[data-daily-mission-page] .student-daily-empty-start { margin-top:22px; padding:12px 22px; border:1px solid #c2cbff; border-radius:8px; background:#ebefff; color:#352dab; font:inherit; font-size:16px; font-weight:600; cursor:pointer; }
body[data-daily-mission-page] .student-daily-empty-start[hidden] { display:none; }

/* daily-mission: keep the view switch right after the title in every module */
@media (min-width:1280px) {
  body[data-daily-mission-page] .student-daily-path-dialog.has-course-units > header > div { grid-template-columns:minmax(0,max-content) auto; justify-content:start; }
}

/* 首页吉祥物：可点击停止/重新播放动画（悬停提示参考可汗样式） */
.student-today-art.hm-mascot { pointer-events:none; }
.hm-mascot-btn { pointer-events:auto; position:relative; display:block; max-width:100%; padding:0; border:0; border-radius:16px; background:none; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.hm-mascot-btn:focus-visible { outline:2px solid #5b50ff; outline-offset:4px; }
.hm-mascot-motion { display:block; }
.hm-mascot-motion > svg { transform-origin:center; }
.hm-mascot.is-entering .hm-mascot-motion { animation:student-assistant-arrive 1.7s cubic-bezier(.33,0,.67,1) both; }
.hm-mascot.is-entering .hm-mascot-motion > svg { animation:student-assistant-arrival-sway 1.7s ease-in-out both; }
.hm-mascot.is-entering .daily-assistant-eyes { animation:student-assistant-arrival-blink 1.7s both; }
.hm-mascot.is-blinking .daily-assistant-eyes { animation:student-assistant-blink .2s ease-in-out 1; }
.hm-mascot-btn::after { content:attr(data-tip); position:absolute; z-index:3; left:50%; top:-6px; transform:translate(-50%,-100%); padding:8px 14px; border:1px solid #d5d5da; border-radius:6px; background:#fff; box-shadow:0 4px 12px rgba(33,33,44,.12); color:#21212c; font-size:15px; font-weight:400; line-height:1.3; white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .15s; }
.hm-mascot-btn::before { content:""; position:absolute; z-index:4; left:50%; top:-7px; width:10px; height:10px; border-right:1px solid #d5d5da; border-bottom:1px solid #d5d5da; background:#fff; transform:translate(-50%,-50%) rotate(45deg); opacity:0; pointer-events:none; transition:opacity .15s; }
.hm-mascot-btn:hover::after, .hm-mascot-btn:hover::before,
.hm-mascot-btn:focus-visible::after, .hm-mascot-btn:focus-visible::before { opacity:1; }
@media (hover:none) { .hm-mascot-btn::after, .hm-mascot-btn::before { display:none; } }
@media (prefers-reduced-motion: reduce) {
  .hm-mascot.is-entering .hm-mascot-motion,
  .hm-mascot.is-entering .hm-mascot-motion > svg,
  .hm-mascot.is-entering .daily-assistant-eyes { animation:none; }
}

/* 今日任务卡片加载时：卡片右侧给吉祥物留的空位先不要，让转圈落在整张卡片的正中 */
#studentTodayCard:has(> .student-home-loading) { padding-left:0; padding-right:0; }

/* ===== 手机首页（768px 以下；平板 769–1279 沿用这套内容排版，差异见文件末尾），按可汗手机端首页的尺寸 =====
   只对首页生效（每日任务页的 #studentLearningHome 没有 .student-learning-home 这个类名）；电脑端不受影响。 */
.student-home-menu-button { display:none; }
@media (max-width:1279px) {
  /* 顶部：隐藏公共顶栏，改用“Logo + ☰”按钮打开全屏导航菜单 */
  body:has(> #studentLearningHome.student-learning-home) #gNavbar { display:none !important; }
  #studentLearningHome.student-learning-home { padding:16px 14px 92px; }
  #studentLearningHome.student-learning-home > .student-home-topbar { display:flex; align-items:center; justify-content:flex-start; gap:14px; }
  #studentLearningHome.student-learning-home .student-home-menu-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; flex:none; width:70px; height:40px; padding:0; border:0; border-radius:8px; background:#ebefff; color:#565662; cursor:pointer; }
  #studentLearningHome.student-learning-home .student-home-menu-button:focus-visible { outline:2px solid #5b50ff; outline-offset:2px; }
  #studentLearningHome.student-learning-home .student-home-menu-logo { display:grid; place-items:center; width:26px; height:26px; border-radius:7px; background:#2563eb; color:#fff; font-family:Georgia,'Times New Roman',serif; font-size:11px; font-weight:800; }
  #studentLearningHome.student-learning-home .student-home-menu-button svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; }
  #studentLearningHome.student-learning-home > .student-home-topbar #studentCurrentCourse { box-sizing:border-box; flex:0 1 auto; min-width:0; height:40px; min-height:40px; border:1px solid #cccdd3; border-radius:8px; background:#fff; }
  #studentLearningHome.student-learning-home > .student-home-topbar #studentGemEntry { flex:none; margin-left:auto; }

  /* 今日任务卡片 */
  #studentLearningHome.student-learning-home #studentTodayCard { padding:24px 16px 22px; border:1px solid #cccdd3; border-radius:8px; background:#f7f8fa; box-shadow:0 2px 3px rgba(33,33,44,.16); }
  #studentLearningHome.student-learning-home #studentTodayCard:has(> .student-home-loading) { padding-left:0; padding-right:0; }
  #studentLearningHome.student-learning-home #studentTodayCard .student-today-art { display:none !important; }
  #studentLearningHome.student-learning-home #studentTodayCard h1 { max-width:none; font-size:30px; font-weight:700; line-height:1.2; }
  #studentLearningHome.student-learning-home #studentTodayCard h1 .student-today-title-ending { font-size:inherit; }
  #studentLearningHome.student-learning-home #studentTodayCard .student-today-sub { max-width:none; margin-top:12px; font-size:17px; line-height:1.45; }
  #studentLearningHome.student-learning-home #studentTodayCard .student-today-status { margin-top:24px; }
  #studentLearningHome.student-learning-home #studentTodayCard .student-today-actions { display:grid; grid-template-columns:minmax(0,1fr); gap:21px; margin-top:32px; padding-bottom:5px; }
  #studentLearningHome.student-learning-home #studentTodayCard .student-today-actions > * { box-sizing:border-box; width:100%; max-width:none; height:52px; min-height:52px; border-radius:8px; font-size:17px; }
  #studentLearningHome.student-learning-home #studentTodayCard #studentContinueButton:not(:disabled) { box-shadow:0 5px 0 #352dab; }
  #studentLearningHome.student-learning-home #studentTodayCard #studentTodayViewAll { box-shadow:0 5px 0 #b9c2ff; }

  /* 学习内容 */
  #studentLearningHome.student-learning-home #studentUnitsTitle { font-size:19px; font-weight:700; }
  #studentLearningHome.student-learning-home #studentUnitList .student-home-module-card { border:1px solid #cccdd3; border-radius:8px; }
  #studentLearningHome.student-learning-home #studentUnitList .student-module-summary { padding:24px 24px 0; }
  #studentLearningHome.student-learning-home #studentUnitList .student-module-summary h3 { font-size:17px; font-weight:700; }
  #studentLearningHome.student-learning-home #studentUnitList .student-module-body { padding:18px 24px 28px; }
  #studentLearningHome.student-learning-home #studentUnitList .student-plan-action { box-sizing:border-box; width:auto; min-width:135px; height:53px; min-height:53px; border-radius:8px; }

  /* 掌握学习、任务完成、宝石挑战三张卡（已排在学习内容下面，单列占满宽度） */
  #studentLearningHome.student-learning-home .student-learning-rail > section { border:1px solid #cccdd3; border-radius:8px; }
  #studentLearningHome.student-learning-home .student-learning-rail .student-mastery-head h2,
  #studentLearningHome.student-learning-home .student-learning-rail .student-mission-summary-head h2,
  #studentLearningHome.student-learning-home .student-learning-rail .student-rail-card-head h2 { font-size:19px; font-weight:700; }
  #studentLearningHome.student-learning-home .student-learning-rail .student-mastery-row span,
  #studentLearningHome.student-learning-home .student-learning-rail .student-mastery-row strong,
  #studentLearningHome.student-learning-home .student-learning-rail .student-mission-summary-list span,
  #studentLearningHome.student-learning-home .student-learning-rail .student-mission-summary-list strong,
  #studentLearningHome.student-learning-home .student-learning-rail .student-rail-challenge-total span,
  #studentLearningHome.student-learning-home .student-learning-rail .student-rail-challenge-total strong,
  #studentLearningHome.student-learning-home .student-learning-rail .student-gem-challenge-card dt,
  #studentLearningHome.student-learning-home .student-learning-rail .student-gem-challenge-card dd { font-size:16px; line-height:1.4; }
}

/* ===== 每日任务 / 单元任务页的顶栏（768px 以下）：高 60，标题和小字上下两行，路径 / 列表切换移到右边挨着宝石数 ===== */
@media (max-width:1279px) {
  section.student-daily-path-dialog > header { box-sizing:border-box; min-height:60px; height:60px; padding:0 14px 0 8px; gap:6px; align-items:center; }
  section.student-daily-path-dialog > header > .student-daily-back { flex:0 0 40px; width:40px; height:40px; }
  section.student-daily-path-dialog > header > div { display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto; align-content:center; align-items:center; column-gap:10px; row-gap:1px; flex:1; min-width:0; }
  section.student-daily-path-dialog > header > div > h2 { grid-column:1; grid-row:1; align-self:end; margin:0; overflow:hidden; font-size:16px; font-weight:600; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
  section.student-daily-path-dialog > header > div > span:not(.student-daily-divider) { grid-column:1; grid-row:2; align-self:start; overflow:hidden; color:#787884; font-size:13px !important; font-weight:400 !important; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
  section.student-daily-path-dialog > header > div > .student-daily-view-switch { grid-column:2; grid-row:1 / 3; justify-self:end; align-self:center; border:1px solid #cccdd3; border-radius:6px; }
  section.student-daily-path-dialog > header .student-daily-view-switch > button { width:35px; height:38px; }
}

/* ===== 手机首页加载中（768px 以下）：浅灰色块占位（仿可汗手机端）=====
   1. 手机上首页始终单栏。以前要等 home-learning.js 在数据回来后加上 data-home-state 才变单栏，
      数据回来前会先显示被挤扁的电脑版两栏。
   2. “加载中”用“今日任务里的占位还在”来判断（纯 CSS，第一帧就生效，不依赖 JS 加标记）。
      数据渲染出来、加载失败（整块内容被换成错误提示）、空状态，占位都会被替换掉，这些规则随即失效。
   3. 加载中：顶栏和“学习内容”标题正常显示；下拉框、“全部收起”等依赖数据的控件先隐藏但保留位置；
      今日任务、学习内容、右栏三张卡显示成浅灰圆角块（无边框、无阴影、无转圈、无动画），高度按真实卡片估。
      数据请求超时（现有逻辑，8 秒）后会换成加载失败提示，不会一直停在灰块。 */
@media (max-width:1279px) {
  #studentLearningHome.student-learning-home .student-learning-layout { grid-template-columns:minmax(0,1fr); }
  #studentLearningHome.student-learning-home:has(#studentTodayCard > .student-home-loading) #studentCurrentCourse,
  #studentLearningHome.student-learning-home:has(#studentTodayCard > .student-home-loading) .student-module-section-actions { visibility:hidden; }
  /* 手机首页的占位不显示转圈 */
  #studentLearningHome.student-learning-home .student-home-loading.app-loading::after { content:none; }
  /* 今日任务：一个灰块，高度同真实卡片（约 367） */
  #studentLearningHome.student-learning-home:has(#studentTodayCard > .student-home-loading) #studentTodayCard { padding:0; border-color:transparent; background:transparent; box-shadow:none; }
  #studentLearningHome.student-learning-home:has(#studentTodayCard > .student-home-loading) #studentTodayCard > .student-home-loading { min-height:365px; padding:0; border-radius:8px; background:#f0f1f4; }
  /* 学习内容：两个灰块（真实模块卡片约 248 / 225 高，间距 18） */
  #studentLearningHome.student-learning-home #studentUnitList > .student-home-loading { display:grid; place-items:stretch; gap:18px; min-height:0; padding:0; border:0; border-radius:0; background:transparent; }
  #studentLearningHome.student-learning-home #studentUnitList > .student-home-loading::before,
  #studentLearningHome.student-learning-home #studentUnitList > .student-home-loading.app-loading::after { content:''; display:block; box-sizing:border-box; width:auto; height:248px; border:0; border-radius:8px; background:#f0f1f4; opacity:1; animation:none; }
  #studentLearningHome.student-learning-home #studentUnitList > .student-home-loading.app-loading::after { height:225px; }
  /* 右栏三张卡：各一个灰块（真实高度约 259 / 240 / 208） */
  #studentLearningHome.student-learning-home .student-learning-rail > section:has(> .student-home-loading) { border-color:transparent; background:transparent; box-shadow:none; }
  #studentLearningHome.student-learning-home .student-learning-rail > section > .student-home-loading { padding:0; border-radius:8px; background:#f0f1f4; }
  #studentLearningHome.student-learning-home .student-learning-rail > .student-mastery-card > .student-home-loading { min-height:257px; }
  #studentLearningHome.student-learning-home .student-learning-rail > .student-mission-summary-card > .student-home-loading { min-height:238px; }
  #studentLearningHome.student-learning-home .student-learning-rail > .student-gem-challenge-card > .student-home-loading { min-height:206px; }
}

/* ===== 平板（601–1000px）：用手机版布局，内容区最大 720px 居中；顶栏背景通栏，顶栏里的内容和内容区对齐 ===== */
@media (min-width:601px) and (max-width:768px) {
  #studentLearningHome.student-learning-home { padding-left:max(14px, calc((100% - 720px) / 2)); padding-right:max(14px, calc((100% - 720px) / 2)); }
  /* 这个宽度下今日任务卡片的标题只占一行，卡片约 304 高，加载中的灰块跟着调矮 */
  #studentLearningHome.student-learning-home:has(#studentTodayCard > .student-home-loading) #studentTodayCard > .student-home-loading { min-height:302px; }
  section.student-daily-path-dialog > header { padding-left:max(8px, calc((100% - 720px) / 2 - 6px)); padding-right:max(14px, calc((100% - 720px) / 2)); }
  section.student-daily-path-dialog .student-daily-path-body > * { box-sizing:border-box; max-width:720px; margin-left:auto; margin-right:auto; }
}

/* ===== 首页空状态（所有宽度）=====
   1. 今日任务卡片里的“进入课程中心”“查看学习记录”：紫色主按钮，和“继续学习”同款，宽度按文字自适应。
      （以前是白底细边框的小按钮，手机上被拉成一整行的白色长条，像没加载完的占位。）
   2. “学习计划待设置”：学习内容区不再显示三张锁定卡片，只显示一行提示；标题行右边的
      “学习计划设置后解锁 / 全部收起”隐藏。用 home-learning.js 已有的 data-home-state="pending-plan" 判断。 */
#studentLearningHome #studentTodayCard .student-today-actions > a.student-plan-primary { display:inline-flex; align-items:center; justify-content:center; width:auto; min-width:160px; border:1px solid #5b50ff; background:#5b50ff; color:#fff; box-shadow:0 4px 0 #352dab; text-decoration:none; }
@media (hover:hover) and (pointer:fine) { #studentLearningHome #studentTodayCard .student-today-actions > a.student-plan-primary:hover { background:#4b40e6; border-color:#4b40e6; color:#fff; } }
@media (max-width:1279px) {
  #studentLearningHome #studentTodayCard .student-today-actions > a.student-plan-primary { justify-self:start; width:auto; max-width:100%; padding:0 28px; box-shadow:0 5px 0 #352dab; }
}
#studentLearningHome[data-home-state="pending-plan"] .student-module-section-actions { display:none; }
#studentLearningHome[data-home-state="pending-plan"] #studentUnitList > details { display:none; }
#studentLearningHome[data-home-state="pending-plan"] #studentUnitList::before { content:'老师设置学习计划后，这里会显示你的学习内容。'; display:block; color:#787884; font-size:15px; line-height:1.6; }

/* ===== 平板模式（769–1279px）首页：沿用手机版的内容排版，下面只写不同的地方 =====
   左侧是图标栏（css/student-nav.css），所以不需要“Logo + ☰”按钮；内容占满图标栏右边，不限 720；
   今日任务卡片里两个按钮并排。 */
@media (min-width:769px) and (max-width:1279px) {
  #studentLearningHome.student-learning-home { padding:20px 28px 80px; }
  #studentLearningHome.student-learning-home .student-home-menu-button { display:none; }
  #studentLearningHome.student-learning-home #studentTodayCard { height:auto; min-height:0; padding:28px 28px 26px; }
  #studentLearningHome.student-learning-home #studentTodayCard:has(> .student-home-loading) { padding:0; }
  #studentLearningHome.student-learning-home #studentTodayCard h1 { max-width:none; }
  #studentLearningHome.student-learning-home #studentTodayCard h1 .student-today-title-ending { display:inline; }
  #studentLearningHome.student-learning-home #studentTodayCard .student-today-actions { grid-template-columns:repeat(2,minmax(0,1fr)); width:auto; max-width:none; gap:16px; }
  #studentLearningHome.student-learning-home #studentTodayCard .student-today-actions:has(> :only-child) { grid-template-columns:minmax(0,1fr); }
  /* 加载中的灰块：按这个宽度下真实卡片的高度 */
  #studentLearningHome.student-learning-home:has(#studentTodayCard > .student-home-loading) #studentTodayCard > .student-home-loading { min-height:263px; }
  /* 每日任务页：保持手机版排法，内容最大 720 居中 */
  section.student-daily-path-dialog > header { padding-left:max(8px, calc((100% - 720px) / 2 - 6px)); padding-right:max(14px, calc((100% - 720px) / 2)); }
  section.student-daily-path-dialog .student-daily-path-body > * { box-sizing:border-box; max-width:720px; margin-left:auto; margin-right:auto; }
}

/* ===== 点击区域：外观大小不变，只用透明的伪元素把可点范围扩到约 44px（手机和平板）。节点之间只隔 16px，左右最多扩到 40px，上下扩到 44px ===== */
@media (max-width:1279px) {
  .student-today-node-wrap .student-course-node::before { content:''; position:absolute; inset:-10px -8px; }
  .student-module-node-wrap .student-course-node::before { content:''; position:absolute; inset:-10px -8px; }
  .student-info-button { position:relative; }
  .student-info-button::before { content:''; position:absolute; inset:-14px; }
  #studentCollapseModules { position:relative; }
  #studentCollapseModules::before { content:''; position:absolute; inset:-5px 0; }
  #studentHomeMenuButton { position:relative; }
  #studentHomeMenuButton::before { content:''; position:absolute; inset:-2px 0; }
  .student-mission-summary-list button { position:relative; }
  .student-mission-summary-list button::before { content:''; position:absolute; inset:-3px 0; }
  #studentMissionSummaryMore { position:relative; }
  #studentMissionSummaryMore::before { content:''; position:absolute; inset:-4px 0; }
  .student-daily-back { position:relative; }
  .student-daily-back::before { content:''; position:absolute; inset:-2px; }
  .student-daily-view-switch > button::before { content:''; position:absolute; inset:-3px 0; }
  .student-daily-gem-entry { position:relative; }
  .student-daily-gem-entry::before { content:''; position:absolute; inset:-2px 0; }
  .student-daily-card-collapse::before { content:''; position:absolute; inset:-8px; }
}

/* ===== 统一的顶栏（手机和平板，1279 以下）：高 62px、底色 #f7f8fa、底边 1px #cccdd3；
   标题 17px / 600 / #21212c，副标题 13px / #787884；左上角按钮 44×44（浏览页 ‹ 返回，做题页 × 退出）；
   宝石按钮 60×38、圆角 14、底边 3px。和 css/reading-focus.css 里阅读理解 / 完形填空的顶栏是同一套。电脑端不变。
   这里是每日任务页（浏览页，左上角 ‹）。课本同步那一页的第二行（单元和进度）保留。 ===== */
@media (max-width: 1279px) {
  html .student-daily-path-dialog > header { box-sizing:border-box; min-height:62px; background:#f7f8fa; border-bottom:1px solid #cccdd3; }
  html .student-daily-path-dialog > header .student-daily-back { flex:0 0 44px; width:44px; height:44px; color:#21212c; }
  /* 标题的字号在前面被好几条更具体的规则定过，这里直接盖掉 */
  html .student-daily-path-dialog > header h2 { color:#21212c; font-size:17px !important; font-weight:600 !important; }
  /* 课本同步那一页：标题长（八年级上册 · Unit 1 Happy Holiday），顶栏按内容长高，不把字挤出去 */
  html .student-daily-path-dialog.has-course-units > header { height:auto; }
  html .student-daily-path-dialog > header .student-daily-gem-entry { gap:6px; min-width:60px; height:38px; padding:0 10px; border:1px solid #cccdd3; border-radius:14px; background:#fff; color:#787884; box-shadow:0 3px 0 #d1d1d6; }
  html .student-daily-path-dialog > header .student-daily-gem-entry svg { width:20px; height:18px; }
  html .student-daily-path-dialog > header .student-daily-gem-entry strong { font-size:16px; font-weight:600; }
}
@media (max-width: 599px) {
  html .student-daily-path-dialog.has-course-units > header h2 { font-size:16px !important; }
}
/* 左上角按钮的位置全站统一：离屏幕左边 12px、按钮 44×44、按钮到标题 10px（以每日任务“课本同步”页为准）；平板上顶栏不再跟着内容居中缩进，从屏幕最左铺到最右 */
@media (max-width: 1279px) {
  html section.student-daily-path-dialog > header { padding-left:12px; padding-right:16px; gap:10px; }
}
