/* ═══════════════════════════════════════════════════════════════════
   雅思教练 · 写作 / 口语教材层样式
   字号一律用全站令牌（--fs-1 ~ --fs-9）。
   ═══════════════════════════════════════════════════════════════════ */

/* ═══════ 1. 写作：问法分布条 ═══════ */
.wcq-bars {
  display: flex; flex-direction: column; gap: calc(6 * var(--u));
  margin-bottom: calc(10 * var(--u));
}
.wcq-bar {
  display: grid;
  grid-template-columns: calc(96 * var(--u)) 1fr calc(112 * var(--u));
  gap: calc(9 * var(--u));
  align-items: center;
  font-size: var(--fs-2);
}
.wcq-n { color: var(--ink-1); font-weight: 700; }
.wcq-track {
  height: calc(8 * var(--u));
  border-radius: calc(4 * var(--u));
  background: var(--n-800);
  overflow: hidden;
}
.wcq-track i {
  display: block; height: 100%;
  background: linear-gradient(90deg, var(--acc), color-mix(in srgb, var(--acc) 55%, transparent));
  border-radius: calc(4 * var(--u));
}
.wcq-v {
  text-align: right; color: var(--ink-4);
  font-variant-numeric: tabular-nums; white-space: nowrap;
}

/* ═══════ 2. 写作：问法卡片 ═══════ */
.wcs-asks {
  display: flex; flex-direction: column; gap: calc(10 * var(--u));
  margin-bottom: var(--sp-4);
}
.wcs-ask {
  border: 1px solid var(--glass-line);
  border-radius: calc(11 * var(--u));
  background: var(--n-850);
  padding: calc(12 * var(--u)) calc(14 * var(--u));
}
.wcs-ask-h {
  display: flex; align-items: baseline; gap: calc(9 * var(--u));
  flex-wrap: wrap;
  margin-bottom: calc(7 * var(--u));
}
.wcs-ask-n {
  width: calc(20 * var(--u)); height: calc(20 * var(--u));
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: calc(6 * var(--u));
  background: color-mix(in srgb, var(--acc) 16%, transparent);
  color: var(--acc);
  font-size: var(--fs-2); font-weight: 800;
  flex: 0 0 auto;
}
.wcs-ask-h b {
  font-size: var(--fs-5); font-weight: 800; color: var(--ink-1);
  letter-spacing: calc(-.2 * var(--u));
}
.wcs-ask-band {
  font-size: var(--fs-1); font-weight: 700;
  color: var(--c-amber);
  padding: calc(1 * var(--u)) calc(7 * var(--u));
  border-radius: calc(5 * var(--u));
  background: color-mix(in srgb, var(--c-amber) 14%, transparent);
}
.wcs-ask-cnt {
  font-size: var(--fs-2); color: var(--ink-4);
  font-variant-numeric: tabular-nums;
}
.wcs-ask-core {
  font-size: var(--fs-3);
  line-height: calc(17 * var(--u));
  color: var(--ink-2);
  margin-bottom: calc(9 * var(--u));
}
.wcs-ask-core b { color: var(--ink-1); font-weight: 700; }

.wcs-skel {
  display: flex; flex-direction: column; gap: calc(4 * var(--u));
  margin-bottom: calc(9 * var(--u));
}
.wcs-skel-i {
  display: flex; gap: calc(8 * var(--u));
  align-items: flex-start;
  font-size: var(--fs-3);
  line-height: calc(17 * var(--u));
  color: var(--ink-3);
}
.wcs-skel-i span {
  flex: 0 0 auto;
  width: calc(17 * var(--u)); height: calc(17 * var(--u));
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: calc(5 * var(--u));
  background: var(--n-800);
  color: var(--ink-4);
  font-size: var(--fs-1); font-weight: 800;
  margin-top: calc(1 * var(--u));
}
.wcs-skel-i b { color: var(--ink-1); font-weight: 700; }

.wcs-lexi {
  display: flex; flex-wrap: wrap; gap: calc(5 * var(--u));
  align-items: baseline;
  margin-bottom: calc(9 * var(--u));
}
.wcs-lexi b {
  width: 100%; font-size: var(--fs-1); color: var(--c-amber);
  font-weight: 800; margin-bottom: calc(1 * var(--u));
}
.wcs-lex {
  font-size: var(--fs-2);
  padding: calc(3 * var(--u)) calc(8 * var(--u));
  border-radius: calc(6 * var(--u));
  background: var(--n-800);
  border: 1px solid var(--glass-line);
  color: var(--ink-3);
  line-height: calc(15 * var(--u));
}
.wcs-lex b { color: var(--acc); font-weight: 700; }

.wcs-trap ul {
  margin: calc(4 * var(--u)) 0 0;
  padding-left: calc(18 * var(--u));
}
.wcs-trap li {
  font-size: var(--fs-2);
  line-height: calc(16 * var(--u));
  color: var(--ink-4);
  margin-bottom: calc(3 * var(--u));
}
.wcs-trap li::marker { color: var(--c-rose); }
.wcs-trap b {
  display: inline-block; margin-bottom: calc(3 * var(--u));
  color: var(--c-rose); font-size: var(--fs-1); font-weight: 800;
}

/* ═══════ 3. 写作：五步流程 ═══════ */
.wcs-steps {
  display: flex; flex-direction: column; gap: calc(7 * var(--u));
  margin-bottom: var(--sp-4);
}
.wcs-step {
  display: flex; gap: calc(11 * var(--u));
  padding: calc(9 * var(--u)) calc(12 * var(--u));
  border-radius: calc(9 * var(--u));
  border: 1px solid var(--glass-line);
  border-left: 3px solid var(--acc);
  background: var(--n-800);
}
.wcs-step-l {
  flex: 0 0 auto;
  display: flex; flex-direction: column; align-items: center; gap: calc(2 * var(--u));
  min-width: calc(58 * var(--u));
}
.wcs-step-n {
  width: calc(22 * var(--u)); height: calc(22 * var(--u));
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: calc(7 * var(--u));
  background: color-mix(in srgb, var(--acc) 16%, transparent);
  color: var(--acc);
  font-size: var(--fs-3); font-weight: 800;
}
.wcs-step-min {
  font-size: var(--fs-1); color: var(--ink-4);
  font-variant-numeric: tabular-nums; white-space: nowrap;
}
.wcs-step-b { flex: 1 1 auto; min-width: 0; }
.wcs-step-t {
  font-size: var(--fs-4); font-weight: 700; color: var(--ink-1);
  margin-bottom: calc(3 * var(--u));
}
.wcs-step-d {
  font-size: var(--fs-3);
  line-height: calc(17 * var(--u));
  color: var(--ink-3);
}
.wcs-step-d b { color: var(--ink-1); font-weight: 700; }

/* ═══════ 4. 口语：官方四维 band ═══════ */
.scb-bands {
  display: flex; flex-direction: column; gap: calc(6 * var(--u));
  margin-bottom: var(--sp-4);
}
.scb-band {
  border: 1px solid var(--glass-line);
  border-radius: calc(10 * var(--u));
  background: var(--n-850);
  overflow: hidden;
}
.scb-band summary {
  display: flex; align-items: center; gap: calc(9 * var(--u));
  padding: calc(9 * var(--u)) calc(13 * var(--u));
  cursor: pointer;
  list-style: none;
  font-family: inherit;
}
.scb-band summary::-webkit-details-marker { display: none; }
.scb-band summary:hover { background: var(--hover); }
.scb-bn {
  font-size: var(--fs-4); font-weight: 800; color: var(--acc);
  letter-spacing: calc(-.2 * var(--u));
}
.scb-bc {
  font-size: var(--fs-2); color: var(--ink-4);
  font-variant-numeric: tabular-nums;
}
.scb-bdims {
  padding: 0 calc(13 * var(--u)) calc(12 * var(--u));
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(calc(230 * var(--u)), 1fr));
  gap: calc(9 * var(--u));
}
.scb-dim {
  padding: calc(9 * var(--u)) calc(11 * var(--u));
  border-radius: calc(8 * var(--u));
  background: var(--n-800);
  border-left: 2px solid var(--glass-line-2);
}
.scb-dim-h {
  margin-bottom: calc(6 * var(--u));
}
.scb-dim-h b {
  display: block;
  font-size: var(--fs-2); font-weight: 800; color: var(--ink-1);
}
.scb-dim-h span {
  font-size: var(--fs-1); color: var(--ink-4);
}
.scb-dim-en {
  font-size: var(--fs-2);
  line-height: calc(15 * var(--u));
  color: var(--ink-3);
  margin-bottom: calc(4 * var(--u));
  font-family: var(--font-en, inherit);
}
.scb-dim-cn {
  padding-top: calc(6 * var(--u));
  border-top: 1px dashed var(--glass-line-2);
}
.scb-dim-cn div {
  font-size: var(--fs-2);
  line-height: calc(15 * var(--u));
  color: var(--ink-4);
  margin-bottom: calc(3 * var(--u));
}

/* ═══════ 5. 口语：Part1 三句结构 ═══════ */
.scs-part1 {
  display: flex; flex-direction: column; gap: calc(7 * var(--u));
  margin-bottom: var(--sp-4);
}
.scs-p1s {
  display: flex; gap: calc(10 * var(--u));
  align-items: flex-start;
  padding: calc(9 * var(--u)) calc(12 * var(--u));
  border-radius: calc(9 * var(--u));
  border: 1px solid var(--glass-line);
  border-left: 3px solid var(--acc);
  background: var(--n-800);
}
.scs-p1s-n {
  flex: 0 0 auto;
  width: calc(20 * var(--u)); height: calc(20 * var(--u));
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: calc(6 * var(--u));
  background: color-mix(in srgb, var(--acc) 16%, transparent);
  color: var(--acc);
  font-size: var(--fs-2); font-weight: 800;
}
.scs-p1s b {
  font-size: var(--fs-4); font-weight: 700; color: var(--ink-1);
  display: block; margin-bottom: calc(3 * var(--u));
}
.scs-p1s-d {
  font-size: var(--fs-3);
  line-height: calc(17 * var(--u));
  color: var(--ink-3);
}
.scs-p1s-d b { color: var(--ink-1); font-weight: 700; }

/* ═══════ 6. 口语：问题类型 / 万能素材 ═══════ */
.scs-qtypes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(calc(280 * var(--u)), 1fr));
  gap: calc(7 * var(--u));
  margin-bottom: var(--sp-4);
}
.scs-qt {
  padding: calc(8 * var(--u)) calc(11 * var(--u));
  border-radius: calc(8 * var(--u));
  border: 1px solid var(--glass-line);
  background: var(--n-800);
}
.scs-qt b {
  display: block;
  font-size: var(--fs-3); font-weight: 700; color: var(--ink-1);
  font-family: var(--font-en, inherit);
  margin-bottom: calc(3 * var(--u));
}
.scs-qt span {
  font-size: var(--fs-2);
  line-height: calc(15 * var(--u));
  color: var(--ink-4);
}
.scs-qt span b { display: inline; color: var(--ink-3); }

.scs-mats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(calc(250 * var(--u)), 1fr));
  gap: calc(7 * var(--u));
  margin-bottom: var(--sp-4);
}
.scs-mat {
  display: flex; gap: calc(9 * var(--u));
  padding: calc(8 * var(--u)) calc(11 * var(--u));
  border-radius: calc(8 * var(--u));
  border: 1px solid var(--glass-line);
  background: var(--n-800);
}
.scs-mat-n {
  flex: 0 0 auto;
  width: calc(18 * var(--u)); height: calc(18 * var(--u));
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: calc(5 * var(--u));
  background: var(--n-850);
  border: 1px solid var(--glass-line-2);
  color: var(--ink-4);
  font-size: var(--fs-1); font-weight: 800;
}
.scs-mat b {
  display: block;
  font-size: var(--fs-3); font-weight: 700; color: var(--ink-1);
  margin-bottom: calc(2 * var(--u));
}
.scs-mat div div {
  font-size: var(--fs-2);
  line-height: calc(15 * var(--u));
  color: var(--ink-4);
}
.scs-mat div div b { display: inline; color: var(--ink-3); }

/* ═══════ 7. 口语：Part2 时间线 ═══════ */
.scs-timeline {
  display: flex; flex-direction: column; gap: calc(6 * var(--u));
  margin-bottom: var(--sp-4);
}
.scs-tl {
  display: flex; gap: calc(11 * var(--u));
  align-items: flex-start;
  padding: calc(8 * var(--u)) calc(12 * var(--u));
  border-radius: calc(9 * var(--u));
  border: 1px solid var(--glass-line);
  background: var(--n-800);
}
.scs-tl-h {
  flex: 0 0 auto;
  min-width: calc(92 * var(--u));
}
.scs-tl-h b {
  display: block;
  font-size: var(--fs-3); font-weight: 700; color: var(--ink-1);
}
.scs-tl-h span {
  font-size: var(--fs-2); color: var(--acc);
  font-variant-numeric: tabular-nums; font-weight: 700;
}
.scs-tl-d {
  flex: 1 1 auto; min-width: 0;
  font-size: var(--fs-3);
  line-height: calc(17 * var(--u));
  color: var(--ink-3);
}
.scs-tl-d b { color: var(--ink-1); font-weight: 700; }

/* ═══════ 8. 口语：Part3 六种展开方式 ═══════ */
.scs-ways {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(calc(270 * var(--u)), 1fr));
  gap: calc(8 * var(--u));
  margin-bottom: var(--sp-4);
}
.scs-way {
  padding: calc(10 * var(--u)) calc(12 * var(--u));
  border-radius: calc(9 * var(--u));
  border: 1px solid var(--glass-line);
  background: var(--n-800);
}
.scs-way-h {
  display: flex; align-items: baseline; gap: calc(8 * var(--u));
  flex-wrap: wrap;
  margin-bottom: calc(5 * var(--u));
}
.scs-way-n {
  width: calc(18 * var(--u)); height: calc(18 * var(--u));
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: calc(5 * var(--u));
  background: color-mix(in srgb, var(--acc) 16%, transparent);
  color: var(--acc);
  font-size: var(--fs-1); font-weight: 800;
  flex: 0 0 auto;
}
.scs-way-h b {
  font-size: var(--fs-4); font-weight: 700; color: var(--ink-1);
}
.scs-way-band {
  font-size: var(--fs-1); color: var(--c-amber); font-weight: 700;
  padding: calc(1 * var(--u)) calc(6 * var(--u));
  border-radius: calc(4 * var(--u));
  background: color-mix(in srgb, var(--c-amber) 14%, transparent);
}
.scs-way-d {
  font-size: var(--fs-2);
  line-height: calc(15 * var(--u));
  color: var(--ink-3);
  margin-bottom: calc(6 * var(--u));
}
.scs-way-d b { color: var(--ink-1); font-weight: 700; }
.scs-way-eg {
  font-size: var(--fs-2);
  line-height: calc(15 * var(--u));
  color: var(--acc);
  font-family: var(--font-en, inherit);
  padding: calc(5 * var(--u)) calc(8 * var(--u));
  border-radius: calc(6 * var(--u));
  background: color-mix(in srgb, var(--acc) 8%, transparent);
}
.scs-way-eg b { color: var(--acc); font-weight: 700; }

/* ═══════ 9. 口语：追问应对 ═══════ */
.scs-follows {
  display: flex; flex-direction: column; gap: calc(7 * var(--u));
  margin-bottom: var(--sp-4);
}
.scs-follow {
  padding: calc(9 * var(--u)) calc(12 * var(--u));
  border-radius: calc(9 * var(--u));
  border: 1px solid var(--glass-line);
  border-left: 3px solid var(--c-amber);
  background: var(--n-800);
}
.scs-follow-t {
  font-size: var(--fs-3); font-weight: 700; color: var(--ink-1);
  margin-bottom: calc(4 * var(--u));
  font-family: var(--font-en, inherit);
}
.scs-follow-f {
  font-size: var(--fs-2);
  line-height: calc(16 * var(--u));
  color: var(--ink-3);
}
.scs-follow-f b { color: var(--ink-1); font-weight: 700; }

/* ═══════ 10. 口语：自检清单 ═══════ */
.scs-checks {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(calc(240 * var(--u)), 1fr));
  gap: calc(8 * var(--u));
  margin-bottom: calc(10 * var(--u));
}
.scs-check {
  padding: calc(10 * var(--u)) calc(12 * var(--u));
  border-radius: calc(9 * var(--u));
  border: 1px solid var(--glass-line);
  background: var(--n-800);
}
.scs-check-h {
  font-size: var(--fs-4); font-weight: 800; color: var(--acc);
  margin-bottom: calc(5 * var(--u));
}
.scs-check ul {
  margin: 0; padding-left: calc(17 * var(--u));
}
.scs-check li {
  font-size: var(--fs-2);
  line-height: calc(16 * var(--u));
  color: var(--ink-4);
  margin-bottom: calc(3 * var(--u));
}
.scs-check li::marker { color: var(--acc); }

/* ═══════ 11. 口语：陷阱三栏 ═══════ */
.scs-traps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(calc(230 * var(--u)), 1fr));
  gap: calc(8 * var(--u));
}
.scs-trap-group {
  padding: calc(10 * var(--u)) calc(12 * var(--u));
  border-radius: calc(9 * var(--u));
  border: 1px solid color-mix(in srgb, var(--c-rose) 22%, var(--glass-line));
  background: color-mix(in srgb, var(--c-rose) 4%, var(--n-850));
}
.scs-trap-group b {
  display: block;
  font-size: var(--fs-3); font-weight: 800; color: var(--c-rose);
  margin-bottom: calc(5 * var(--u));
}
.scs-trap-group ul {
  margin: 0; padding-left: calc(17 * var(--u));
}
.scs-trap-group li {
  font-size: var(--fs-2);
  line-height: calc(16 * var(--u));
  color: var(--ink-3);
  margin-bottom: calc(4 * var(--u));
}
.scs-trap-group li::marker { color: var(--c-rose); }
.scs-trap-group li b { display: inline; color: var(--ink-1); }

/* ═══════ 12. 窄屏 ═══════ */
@media (max-width: 760px) {
  .wcq-bar {
    grid-template-columns: calc(80 * var(--u)) 1fr;
    gap: calc(6 * var(--u));
  }
  .wcq-v { grid-column: 2; text-align: left; }
  .scb-bdims { grid-template-columns: 1fr; }
  .scs-tl { flex-direction: column; gap: calc(4 * var(--u)); }
  .scs-tl-h { min-width: 0; }
  .scs-tl-h b, .scs-tl-h span { display: inline; margin-right: calc(7 * var(--u)); }
  .wcs-step { flex-direction: column; gap: calc(6 * var(--u)); }
  .wcs-step-l { flex-direction: row; align-items: baseline; gap: calc(8 * var(--u)); }
}

/* ═══════════════════════════════════════════════════════════════════
   听力 / 阅读教材层
   ═══════════════════════════════════════════════════════════════════ */

/* ── 听力：四段机制 ── */
.lcs-secs { display: flex; flex-direction: column; gap: calc(9 * var(--u)); margin-bottom: var(--sp-4); }
.lcs-sec {
  border: 1px solid var(--glass-line);
  border-radius: calc(11 * var(--u));
  background: var(--n-850);
  padding: calc(12 * var(--u)) calc(14 * var(--u));
}
.lcs-sec-h {
  display: flex; align-items: baseline; gap: calc(9 * var(--u));
  flex-wrap: wrap; margin-bottom: calc(7 * var(--u));
}
.lcs-sec-n {
  font-size: var(--fs-5); font-weight: 800; color: var(--acc);
  letter-spacing: calc(-.2 * var(--u));
}
.lcs-sec-h b {
  font-size: var(--fs-4); font-weight: 700; color: var(--ink-1);
}
.lcs-sec-band {
  font-size: var(--fs-1); font-weight: 700; color: var(--c-amber);
  padding: calc(1 * var(--u)) calc(7 * var(--u));
  border-radius: calc(5 * var(--u));
  background: color-mix(in srgb, var(--c-amber) 14%, transparent);
}
.lcs-sec-units {
  font-size: var(--fs-2); color: var(--ink-4);
  font-variant-numeric: tabular-nums;
}
.lcs-sec-core {
  font-size: var(--fs-3); line-height: calc(17 * var(--u));
  color: var(--ink-2); margin-bottom: calc(7 * var(--u));
}
.lcs-sec-core b { color: var(--ink-1); font-weight: 700; }
.lcs-sec-trap {
  font-size: var(--fs-3); line-height: calc(17 * var(--u));
  color: var(--ink-3); margin-bottom: calc(8 * var(--u));
  padding: calc(7 * var(--u)) calc(10 * var(--u));
  border-radius: calc(8 * var(--u));
  background: color-mix(in srgb, var(--c-rose) 6%, var(--n-800));
  border-left: 2px solid color-mix(in srgb, var(--c-rose) 40%, transparent);
}
.lcs-sec-trap b { color: var(--ink-1); font-weight: 700; }
.lcs-types { display: flex; flex-wrap: wrap; gap: calc(5 * var(--u)); margin-bottom: calc(9 * var(--u)); }
.lcs-type {
  font-size: var(--fs-2);
  padding: calc(2 * var(--u)) calc(8 * var(--u));
  border-radius: calc(5 * var(--u));
  background: var(--n-800);
  border: 1px solid var(--glass-line);
  color: var(--ink-3);
}
.lcs-strat { display: flex; flex-direction: column; gap: calc(5 * var(--u)); margin-bottom: calc(9 * var(--u)); }
.lcs-strat-i { display: flex; gap: calc(9 * var(--u)); align-items: flex-start; }
.lcs-strat-n {
  flex: 0 0 auto;
  width: calc(18 * var(--u)); height: calc(18 * var(--u));
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: calc(5 * var(--u));
  background: color-mix(in srgb, var(--acc) 16%, transparent);
  color: var(--acc);
  font-size: var(--fs-1); font-weight: 800;
  margin-top: calc(1 * var(--u));
}
.lcs-strat-i b {
  display: block; font-size: var(--fs-3); font-weight: 700; color: var(--ink-1);
  margin-bottom: calc(2 * var(--u));
}
.lcs-strat-d { font-size: var(--fs-2); line-height: calc(16 * var(--u)); color: var(--ink-4); }
.lcs-strat-d b { display: inline; color: var(--ink-2); }
.lcs-drill {
  font-size: var(--fs-2); line-height: calc(16 * var(--u));
  color: var(--ink-3); margin-bottom: calc(8 * var(--u));
  padding: calc(7 * var(--u)) calc(10 * var(--u));
  border-radius: calc(8 * var(--u));
  background: var(--n-800);
  border-left: 2px solid var(--acc);
}
.lcs-drill b { color: var(--acc); font-weight: 800; margin-right: calc(6 * var(--u)); }
.lcs-pass { display: flex; flex-direction: column; gap: calc(3 * var(--u)); }
.lcs-pass-i {
  display: flex; gap: calc(7 * var(--u)); align-items: baseline;
  font-size: var(--fs-2); color: var(--ink-4);
}
.lcs-pass-i span {
  flex: 0 0 auto; color: var(--acc); font-weight: 800;
}
.lcs-pass-i b { color: var(--ink-2); }

/* ── 听力：信号词 ── */
.lcs-signals {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(calc(280 * var(--u)), 1fr));
  gap: calc(7 * var(--u));
  margin-bottom: var(--sp-4);
}
.lcs-sig {
  padding: calc(8 * var(--u)) calc(11 * var(--u));
  border-radius: calc(8 * var(--u));
  border: 1px solid var(--glass-line);
  background: var(--n-800);
}
.lcs-sig-h { display: flex; align-items: baseline; gap: calc(7 * var(--u)); flex-wrap: wrap; }
.lcs-sig-h b {
  font-size: var(--fs-4); font-weight: 700; color: var(--ink-1);
  font-family: var(--font-en, inherit);
}
.lcs-sig-cn { font-size: var(--fs-2); color: var(--ink-4); }
.lcs-sig-kind {
  font-size: var(--fs-1); color: var(--c-amber); font-weight: 700;
  padding: calc(1 * var(--u)) calc(5 * var(--u));
  border-radius: calc(4 * var(--u));
  background: color-mix(in srgb, var(--c-amber) 14%, transparent);
}
.lcs-sig-n {
  margin-left: auto;
  font-size: var(--fs-1); color: var(--acc); font-weight: 800;
  font-variant-numeric: tabular-nums;
}
.lcs-sig-use {
  margin-top: calc(4 * var(--u));
  font-size: var(--fs-2); line-height: calc(16 * var(--u)); color: var(--ink-4);
}
.lcs-sig-use b { color: var(--ink-2); }

/* ── 听力：错因 ── */
.lcs-errors { display: flex; flex-direction: column; gap: calc(7 * var(--u)); margin-bottom: var(--sp-4); }
.lcs-err {
  border: 1px solid var(--glass-line);
  border-left: 3px solid var(--c-rose);
  border-radius: calc(9 * var(--u));
  background: var(--n-850);
  padding: calc(9 * var(--u)) calc(12 * var(--u));
}
.lcs-err-h { margin-bottom: calc(6 * var(--u)); }
.lcs-err-n {
  font-size: var(--fs-4); font-weight: 700; color: var(--ink-1);
  margin-right: calc(8 * var(--u));
}
.lcs-err-sym { font-size: var(--fs-2); color: var(--ink-4); }
.lcs-err-sym b { color: var(--ink-3); }
.lcs-err-b { display: flex; flex-wrap: wrap; gap: calc(9 * var(--u)); }
.lcs-err-c, .lcs-err-f {
  flex: 1 1 calc(240 * var(--u)); min-width: 0;
  font-size: var(--fs-2); line-height: calc(16 * var(--u)); color: var(--ink-4);
}
.lcs-err-c b { color: var(--c-amber); font-weight: 800; margin-right: calc(6 * var(--u)); }
.lcs-err-f b { color: var(--acc); font-weight: 800; margin-right: calc(6 * var(--u)); }

/* ── 听力：八周路径 ── */
.lcs-path { display: flex; flex-direction: column; gap: calc(6 * var(--u)); }
.lcs-wk {
  display: flex; gap: calc(11 * var(--u)); align-items: flex-start;
  padding: calc(8 * var(--u)) calc(12 * var(--u));
  border-radius: calc(9 * var(--u));
  border: 1px solid var(--glass-line);
  background: var(--n-800);
}
.lcs-wk-n {
  flex: 0 0 auto;
  min-width: calc(36 * var(--u));
  font-size: var(--fs-3); font-weight: 800; color: var(--acc);
  font-variant-numeric: tabular-nums;
}
.lcs-wk-b { flex: 1 1 auto; min-width: 0; }
.lcs-wk-f { font-size: var(--fs-3); font-weight: 700; color: var(--ink-1); }
.lcs-wk-t {
  font-size: var(--fs-2); color: var(--acc); font-weight: 700;
  margin-top: calc(2 * var(--u));
}
.lcs-wk-w {
  margin-top: calc(3 * var(--u));
  font-size: var(--fs-2); line-height: calc(16 * var(--u)); color: var(--ink-4);
}
.lcs-wk-w b { color: var(--ink-3); }

/* ═══════════════ 阅读教材层 ═══════════════ */
.rcc-types { display: flex; flex-direction: column; gap: calc(9 * var(--u)); margin-bottom: var(--sp-4); }
.rcc-type {
  border: 1px solid var(--glass-line);
  border-radius: calc(11 * var(--u));
  background: var(--n-850);
  padding: calc(12 * var(--u)) calc(14 * var(--u));
}
.rcc-type-h {
  display: flex; align-items: baseline; gap: calc(9 * var(--u));
  flex-wrap: wrap; margin-bottom: calc(6 * var(--u));
}
.rcc-type-h b {
  font-size: var(--fs-5); font-weight: 800; color: var(--ink-1);
  letter-spacing: calc(-.2 * var(--u));
}
.rcc-type-en {
  font-size: var(--fs-2); color: var(--ink-4);
  font-family: var(--font-en, inherit);
}
.rcc-type-band {
  font-size: var(--fs-1); font-weight: 700; color: var(--c-amber);
  padding: calc(1 * var(--u)) calc(7 * var(--u));
  border-radius: calc(5 * var(--u));
  background: color-mix(in srgb, var(--c-amber) 14%, transparent);
}
.rcc-type-share {
  font-size: var(--fs-2); color: var(--acc); font-weight: 700;
  margin-bottom: calc(6 * var(--u));
}
.rcc-type-share b { color: var(--acc); }
.rcc-type-core {
  font-size: var(--fs-3); line-height: calc(17 * var(--u));
  color: var(--ink-2); margin-bottom: calc(8 * var(--u));
}
.rcc-type-core b { color: var(--ink-1); font-weight: 700; }
.rcc-judge {
  display: flex; flex-direction: column; gap: calc(4 * var(--u));
  margin-bottom: calc(8 * var(--u));
}
.rcc-judge-i {
  font-size: var(--fs-2); line-height: calc(16 * var(--u)); color: var(--ink-4);
}
.rcc-judge-i b {
  color: var(--ink-1); font-weight: 800;
  margin-right: calc(6 * var(--u));
  min-width: calc(96 * var(--u));
  display: inline-block;
}
.rcc-locate {
  font-size: var(--fs-2); line-height: calc(16 * var(--u));
  color: var(--ink-3); margin-bottom: calc(8 * var(--u));
  padding: calc(7 * var(--u)) calc(10 * var(--u));
  border-radius: calc(8 * var(--u));
  background: var(--n-800);
  border-left: 2px solid var(--acc);
}
.rcc-locate b { color: var(--acc); font-weight: 800; margin-right: calc(6 * var(--u)); }
.rcc-trap { margin-bottom: calc(8 * var(--u)); }
.rcc-trap b {
  display: block; margin-bottom: calc(4 * var(--u));
  color: var(--c-rose); font-size: var(--fs-2); font-weight: 800;
}
.rcc-trap ul { margin: 0; padding-left: calc(18 * var(--u)); }
.rcc-trap li {
  font-size: var(--fs-2); line-height: calc(16 * var(--u));
  color: var(--ink-4); margin-bottom: calc(3 * var(--u));
}
.rcc-trap li::marker { color: var(--c-rose); }
.rcc-trap li b { display: inline; color: var(--ink-2); }
.rcc-train {
  font-size: var(--fs-2); line-height: calc(16 * var(--u));
  color: var(--ink-3); margin-bottom: calc(8 * var(--u));
}
.rcc-train b { color: var(--c-amber); font-weight: 800; margin-right: calc(6 * var(--u)); }
.rcc-pass { display: flex; flex-direction: column; gap: calc(3 * var(--u)); }
.rcc-pass-i {
  display: flex; gap: calc(7 * var(--u)); align-items: baseline;
  font-size: var(--fs-2); color: var(--ink-4);
}
.rcc-pass-i span { flex: 0 0 auto; color: var(--acc); font-weight: 800; }
.rcc-pass-i b { color: var(--ink-2); }

/* 拆句五步 */
.rcc-steps { display: flex; flex-direction: column; gap: calc(6 * var(--u)); margin-bottom: var(--sp-4); }
.rcc-step {
  display: flex; gap: calc(10 * var(--u)); align-items: flex-start;
  padding: calc(8 * var(--u)) calc(12 * var(--u));
  border-radius: calc(9 * var(--u));
  border: 1px solid var(--glass-line);
  border-left: 3px solid var(--acc);
  background: var(--n-800);
}
.rcc-step-n {
  flex: 0 0 auto;
  width: calc(22 * var(--u)); height: calc(22 * var(--u));
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: calc(7 * var(--u));
  background: color-mix(in srgb, var(--acc) 16%, transparent);
  color: var(--acc);
  font-size: var(--fs-3); font-weight: 800;
}
.rcc-step b {
  display: block; font-size: var(--fs-4); font-weight: 700; color: var(--ink-1);
  margin-bottom: calc(3 * var(--u));
}
.rcc-step-d { font-size: var(--fs-2); line-height: calc(16 * var(--u)); color: var(--ink-4); }
.rcc-step-d b { display: inline; color: var(--ink-2); }

/* 拆句示范 */
.rcc-example {
  border: 1px solid var(--glass-line-2);
  border-radius: calc(11 * var(--u));
  background: var(--n-850);
  padding: calc(13 * var(--u)) calc(15 * var(--u));
  margin-bottom: var(--sp-4);
}
.rcc-ex-en {
  font-size: var(--fs-4); line-height: calc(20 * var(--u));
  color: var(--ink-1); font-family: var(--font-en, inherit);
  margin-bottom: calc(6 * var(--u));
}
.rcc-ex-cn {
  font-size: var(--fs-3); color: var(--ink-3);
  margin-bottom: calc(9 * var(--u));
}
.rcc-ex-split { display: flex; flex-direction: column; gap: calc(5 * var(--u)); }
.rcc-ex-split-i {
  font-size: var(--fs-2); line-height: calc(16 * var(--u)); color: var(--ink-3);
  padding-left: calc(10 * var(--u));
  border-left: 2px solid var(--glass-line-2);
}
.rcc-ex-split-i b { color: var(--ink-1); font-weight: 700; }
.rcc-ex-note {
  margin-top: calc(9 * var(--u));
  padding-top: calc(8 * var(--u));
  border-top: 1px solid var(--glass-line);
  font-size: var(--fs-2); line-height: calc(16 * var(--u)); color: var(--ink-4);
}
.rcc-ex-note b { color: var(--ink-2); }

/* 学术语言：诊断与策略 */
.rcc-diag {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(calc(260 * var(--u)), 1fr));
  gap: calc(7 * var(--u));
  margin-bottom: calc(9 * var(--u));
}
.rcc-diag-i {
  padding: calc(8 * var(--u)) calc(11 * var(--u));
  border-radius: calc(8 * var(--u));
  border: 1px solid var(--glass-line);
  background: var(--n-800);
}
.rcc-diag-i b {
  display: block; font-size: var(--fs-3); font-weight: 700; color: var(--ink-1);
  margin-bottom: calc(3 * var(--u));
}
.rcc-diag-i span {
  font-size: var(--fs-2); line-height: calc(16 * var(--u)); color: var(--ink-4);
}
.rcc-diag-i span b { display: inline; color: var(--ink-3); }
.rcc-strat { display: flex; flex-direction: column; gap: calc(6 * var(--u)); margin-bottom: var(--sp-4); }
.rcc-strat-i {
  padding: calc(8 * var(--u)) calc(11 * var(--u));
  border-radius: calc(8 * var(--u));
  border-left: 2px solid var(--acc);
  background: var(--n-800);
}
.rcc-strat-i b {
  display: block; font-size: var(--fs-3); font-weight: 700; color: var(--ink-1);
  margin-bottom: calc(3 * var(--u));
}
.rcc-strat-i span {
  font-size: var(--fs-2); line-height: calc(16 * var(--u)); color: var(--ink-4);
}
.rcc-strat-i span b { display: inline; color: var(--ink-2); }

/* 阅读六周路径 */
.rcc-path { display: flex; flex-direction: column; gap: calc(6 * var(--u)); margin-bottom: var(--sp-4); }
.rcc-wk {
  display: flex; gap: calc(11 * var(--u)); align-items: flex-start;
  padding: calc(8 * var(--u)) calc(12 * var(--u));
  border-radius: calc(9 * var(--u));
  border: 1px solid var(--glass-line);
  background: var(--n-800);
}
.rcc-wk-n {
  flex: 0 0 auto; min-width: calc(36 * var(--u));
  font-size: var(--fs-3); font-weight: 800; color: var(--acc);
  font-variant-numeric: tabular-nums;
}
.rcc-wk-b { flex: 1 1 auto; min-width: 0; }
.rcc-wk-f { font-size: var(--fs-3); font-weight: 700; color: var(--ink-1); }
.rcc-wk-t {
  font-size: var(--fs-2); color: var(--acc); font-weight: 700;
  margin-top: calc(2 * var(--u));
}
.rcc-wk-w {
  margin-top: calc(3 * var(--u));
  font-size: var(--fs-2); line-height: calc(16 * var(--u)); color: var(--ink-4);
}
.rcc-wk-w b { color: var(--ink-3); }

/* 阅读错因 */
.rcc-errors { display: flex; flex-direction: column; gap: calc(7 * var(--u)); }
.rcc-err {
  border: 1px solid var(--glass-line);
  border-left: 3px solid var(--c-rose);
  border-radius: calc(9 * var(--u));
  background: var(--n-850);
  padding: calc(9 * var(--u)) calc(12 * var(--u));
}
.rcc-err-h { margin-bottom: calc(6 * var(--u)); }
.rcc-err-n {
  font-size: var(--fs-4); font-weight: 700; color: var(--ink-1);
  margin-right: calc(8 * var(--u));
}
.rcc-err-sym { font-size: var(--fs-2); color: var(--ink-4); }
.rcc-err-sym b { color: var(--ink-3); }
.rcc-err-b { display: flex; flex-wrap: wrap; gap: calc(9 * var(--u)); }
.rcc-err-c, .rcc-err-f {
  flex: 1 1 calc(240 * var(--u)); min-width: 0;
  font-size: var(--fs-2); line-height: calc(16 * var(--u)); color: var(--ink-4);
}
.rcc-err-c b { color: var(--c-amber); font-weight: 800; margin-right: calc(6 * var(--u)); }
.rcc-err-f b { color: var(--acc); font-weight: 800; margin-right: calc(6 * var(--u)); }

@media (max-width: 760px) {
  .lcs-err-b, .rcc-err-b { flex-direction: column; gap: calc(5 * var(--u)); }
  .lcs-judge-i b { min-width: 0; display: block; }
}

/* ═══════════════════════════════════════════════════════════════════
   闭环桥接 · 处方区
   ═══════════════════════════════════════════════════════════════════ */
.brx {
  margin-top: calc(10 * var(--u));
  border: 1px solid var(--glass-line);
  border-left: 3px solid var(--acc);
  border-radius: calc(10 * var(--u));
  background: var(--n-850);
  padding: calc(10 * var(--u)) calc(12 * var(--u));
}
.brx.tight {
  margin-top: calc(8 * var(--u));
  padding: calc(8 * var(--u)) calc(10 * var(--u));
}
.brx-h {
  display: flex; align-items: baseline; gap: calc(8 * var(--u));
  margin-bottom: calc(7 * var(--u));
}
.brx-h b {
  font-size: var(--fs-3); font-weight: 800; color: var(--ink-1);
}
.brx-n {
  font-size: var(--fs-1); color: var(--ink-4);
  font-variant-numeric: tabular-nums;
}

/* 单条处方 */
.brx-i {
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-template-areas: "board title go" "board why go";
  gap: calc(2 * var(--u)) calc(9 * var(--u));
  align-items: center;
  width: 100%;
  text-align: left;
  padding: calc(7 * var(--u)) calc(9 * var(--u));
  margin-bottom: calc(5 * var(--u));
  border-radius: calc(8 * var(--u));
  border: 1px solid var(--glass-line);
  background: var(--n-800);
  cursor: pointer;
  transition: border-color .15s, background .15s, transform .15s;
}
.brx-i:last-child { margin-bottom: 0; }
.brx-i:hover {
  border-color: color-mix(in srgb, var(--acc) 55%, transparent);
  background: color-mix(in srgb, var(--acc) 7%, var(--n-800));
  transform: translateX(calc(2 * var(--u)));
}
.brx-i.bad { opacity: .5; cursor: not-allowed; }
.brx-board {
  grid-area: board;
  font-size: var(--fs-1); font-weight: 800;
  color: var(--acc);
  padding: calc(1 * var(--u)) calc(6 * var(--u));
  border-radius: calc(4 * var(--u));
  background: color-mix(in srgb, var(--acc) 14%, transparent);
  white-space: nowrap;
  writing-mode: horizontal-tb;
}
.brx-title {
  grid-area: title;
  font-size: var(--fs-3); font-weight: 700; color: var(--ink-1);
  line-height: calc(16 * var(--u));
}
.brx-why {
  grid-area: why;
  font-size: var(--fs-2); color: var(--ink-4);
  line-height: calc(15 * var(--u));
}
.brx-why b { color: var(--ink-3); }
.brx-go {
  grid-area: go;
  width: calc(13 * var(--u)); height: calc(13 * var(--u));
  color: var(--ink-4);
  flex: 0 0 auto;
}

/* 维度级处方区 */
.brx-dim {
  margin-top: calc(11 * var(--u));
  border: 1px solid var(--glass-line-2);
  border-radius: calc(11 * var(--u));
  background: var(--n-800);
  padding: calc(11 * var(--u)) calc(13 * var(--u));
}
.brx-err {
  margin-top: calc(9 * var(--u));
  padding-top: calc(9 * var(--u));
  border-top: 1px solid var(--glass-line);
}
.brx-err:first-of-type { margin-top: 0; padding-top: 0; border-top: none; }
.brx-err-h {
  display: flex; align-items: baseline; gap: calc(7 * var(--u));
  flex-wrap: wrap;
  margin-bottom: calc(4 * var(--u));
}
.brx-err-h b {
  font-size: var(--fs-3); font-weight: 700; color: var(--ink-1);
}
.brx-err-sym {
  font-size: var(--fs-2); color: var(--ink-4);
  line-height: calc(16 * var(--u));
  margin-bottom: calc(6 * var(--u));
}

/* 深链命中高亮 */
.anchor-hit {
  outline: 2px solid var(--acc);
  outline-offset: calc(3 * var(--u));
  border-radius: calc(10 * var(--u));
  background: color-mix(in srgb, var(--acc) 6%, transparent);
  animation: anchorPulse 1.1s ease-out 2;
}
@keyframes anchorPulse {
  0%   { box-shadow: 0 0 0 0 color-mix(in srgb, var(--acc) 42%, transparent); }
  70%  { box-shadow: 0 0 0 calc(10 * var(--u)) color-mix(in srgb, var(--acc) 0%, transparent); }
  100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--acc) 0%, transparent); }
}

@media (max-width: 760px) {
  .brx-i {
    grid-template-columns: 1fr auto;
    grid-template-areas: "title go" "board why";
  }
}
