/* 教材点读 · 金字塔 / 跟读评价 / 看图换词 */
.tb-now {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) 34px;
  gap: 8px;
  align-items: center;
  background: #fff;
  border-radius: 16px;
  padding: 6px;
  border: 2px solid #fde68a;
}
.tb-now img {
  width: 64px;
  height: 48px;
  object-fit: cover;
  border-radius: 12px;
  background: #e2e8f0;
}
.tb-now-who {
  display: inline-block;
  font-size: 11px;
  font-weight: 800;
  color: #fff;
  border-radius: 999px;
  padding: 2px 8px;
}
.tb-now-en {
  margin: 2px 0 0;
  font-family: var(--en);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.4;
}
.tb-now[hidden] { display: none; }
#tb-picks { display: none !important; }
.tb-listen-embed .tb-listen-head,
.tb-listen-embed .tb-listen-title,
.tb-listen-embed .tb-listen-file,
.tb-listen-embed .tb-hint,
.tb-listen-embed .tb-picks { display: none; }
#tb-coach-picks {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 8px;
  position: relative;
  z-index: 1;
}
.tb-pick {
  border: 0;
  background: #fff7ed;
  color: #9a3412;
  border-radius: 999px;
  padding: 4px 8px;
  font-weight: 800;
  font-size: 11px;
  box-shadow: 0 2px 0 #fdba74;
}
.tb-pick.is-on { background: #0f766e; color: #fff; box-shadow: 0 2px 0 #115e59; }
.tb-py-pass {
  margin: 0 0 10px;
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 14px;
  padding: 8px;
}
.tb-py-pass-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
}
.tb-py-pass-idx {
  flex: 1;
  text-align: center;
  font-size: 13px;
  font-weight: 800;
  color: #9a3412;
}
.tb-py-pass-list {
  max-height: 148px;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.tb-py-sent {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  width: 100%;
  text-align: left;
  border: 1px solid #fde68a;
  background: #fff;
  border-radius: 10px;
  padding: 6px 8px;
  cursor: pointer;
  font: inherit;
}
.tb-py-sent.is-on {
  background: #0f766e;
  border-color: #115e59;
  color: #fff;
}
.tb-py-sent-n {
  flex: 0 0 22px;
  font-size: 11px;
  font-weight: 800;
  color: #b45309;
}
.tb-py-sent.is-on .tb-py-sent-n { color: #fde68a; }
.tb-py-sent-who {
  flex: 0 0 auto;
  font-size: 11px;
  font-weight: 800;
  color: #0f766e;
}
.tb-py-sent.is-on .tb-py-sent-who { color: #99f6e4; }
.tb-py-sent-t {
  flex: 1;
  min-width: 0;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  color: #3f3a2f;
  letter-spacing: 0;
  word-spacing: 0.06em;
  word-break: normal;
  overflow-wrap: break-word;
  white-space: normal;
}
.tb-py-sent.is-on .tb-py-sent-t { color: #fff; }

.tb-tabs {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 4px;
  margin: 8px 0 0;
  flex: 0 0 auto;
  overflow-x: auto;
  transform-origin: top left;
}
.tb-tabs.has-coach .tb-tab { font-size: 12px; padding: 7px 10px; }
.tb-tab[hidden] { display: none; }
.tb-tab {
  border: 0;
  background: #fff;
  color: var(--ink);
  border-radius: 12px;
  padding: 7px 10px;
  font-weight: 800;
  font-size: 12px;
  line-height: 16px;
  box-shadow: 0 2px 0 #fdba74;
  flex: 0 0 auto;
  white-space: nowrap;
}
.tb-tab.is-on { background: #fb7185; color: #fff; box-shadow: 0 2px 0 #be123c; }

.tb-pane { display: none; flex: 1; min-height: 0; flex-direction: column; overflow: auto; margin-top: 8px; }
.tb-pane.is-on { display: flex; }
.tb-pane#pane-script .tb-dict { max-height: 58%; }

.tb-scene-wrap {
  --tb-scene-h: min(48vh, 420px);
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  background: #e8f0f3;
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: min(100%, calc(var(--tb-scene-h) * 4 / 3));
  max-width: 100%;
  margin-inline: auto;
}
.tb-scene-wrap.is-missing .tb-scene,
.tb-opt.is-missing img,
.tb-now.is-missing img {
  object-fit: contain;
  object-position: center center;
  background: linear-gradient(135deg, #fde68a, #99f6e4 55%, #fda4af);
}
.tb-scene {
  width: 100%;
  aspect-ratio: 4 / 3;
  height: auto;
  max-height: none;
  object-fit: cover;
  object-position: center 42%;
  display: block;
  background: #e8f0f3;
}
.tb-scene-cap {
  position: static;
  display: block;
  text-align: center;
  background: #fffdf7;
  color: #9a3412;
  font-size: calc(13px * 1.15);
  font-weight: 800;
  line-height: 1.45;
  padding: 8px 10px 10px;
  border-radius: 0;
}

/* 金字塔：配图在左，文字说明在右，压低整行高度 */
#pane-pyramid .tb-scene-row {
  --tb-scene-h: 100px;
  flex-direction: row;
  align-items: stretch;
  width: 100%;
  max-width: none;
  height: 100px;
  margin-inline: 0;
  background: #fffdf7;
  border: 1px solid #fde68a;
  border-radius: 16px;
}
#pane-pyramid .tb-scene-row:not(:has(.tb-scene-cap)) {
  width: auto;
  max-width: 134px;
}
#pane-pyramid .tb-scene-row .tb-scene {
  flex: 0 0 134px;
  width: 134px;
  height: 100%;
  max-height: none;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center 42%;
}
#pane-pyramid .tb-scene-row .tb-scene-cap {
  flex: 1 1 auto;
  min-width: 0;
  display: grid;
  align-content: safe center;
  justify-items: start;
  text-align: left;
  background: transparent;
  padding: 8px 12px;
  overflow: auto;
  line-height: 1.4;
}
.tb-practice { display: flex; flex-direction: column; gap: 8px; padding-bottom: 12px; }
.tb-hint { margin: 0; color: var(--muted); font-size: 12px; font-weight: 700; }

.tb-py { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.tb-py-layer {
  display: flex;
  align-items: center;
  gap: 6px;
  width: var(--py-w, 70%);
  max-width: 100%;
  border: 2px solid #1a1a1a;
  background: #fff;
  border-radius: 10px;
  padding: 5px 8px 5px 6px;
  font-family: var(--en);
  font-size: 14px;
  line-height: 1.3;
  text-align: left;
  box-shadow: 0 2px 0 rgba(0,0,0,.08);
}
.tb-py-layer.is-on { background: #fff3c4; border-color: #c9a008; }
.tb-py-idx {
  flex: 0 0 1.35rem;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  background: #f5c400;
  font-size: 11px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.tb-py-layer.is-on .tb-py-idx { background: #1a1a1a; color: #f5c400; }
.tb-py-text { flex: 1; min-width: 0; }
.tb-py-old { color: #6b6150; font-weight: 600; }
.tb-py-new { color: #0f766e; font-weight: 800; }
.tb-py-go { color: #0f766e; font-weight: 800; font-size: 12px; }

.tb-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.tb-sentence {
  margin: 0;
  font-family: var(--en);
  font-size: calc(1.15rem * 1.15);
  font-weight: 800;
  line-height: 1.4;
  text-align: center;
}
.tb-sentence-zh { margin: 0; color: var(--muted); font-size: calc(13px * 1.15); font-weight: 700; text-align: center; }

.tb-mic.is-on { background: #be123c; color: #fff; box-shadow: 0 3px 0 #881337; animation: tb-pulse 1s ease-in-out infinite; }
@keyframes tb-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.04); }
}

.tb-scores {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
}
.tb-score {
  background: #fff;
  border-radius: 14px;
  padding: 8px 4px;
  text-align: center;
  border: 2px solid #fde68a;
}
.tb-score b {
  display: block;
  font-family: var(--en);
  font-size: 1.2rem;
  color: #0f766e;
}
.tb-score span { font-size: 11px; font-weight: 800; color: var(--muted); }
.tb-score.is-high b { color: #047857; }
.tb-score.is-mid b { color: #b45309; }
.tb-score.is-low b { color: #be123c; }

.tb-words { display: flex; flex-wrap: wrap; gap: 6px; }
.tb-w {
  font-family: var(--en);
  font-weight: 800;
  padding: 4px 8px;
  border-radius: 999px;
  background: #ecfdf5;
  color: #047857;
  font-size: 13px;
}
.tb-w.is-mid { background: #fef3c7; color: #b45309; }
.tb-w.is-low { background: #ffe4e6; color: #be123c; }
.tb-w.is-miss { background: #e2e8f0; color: #64748b; text-decoration: line-through; }
.tb-feedback {
  margin: 0;
  background: #ecfdf5;
  border-radius: 12px;
  padding: 8px 10px;
  font-size: 13px;
  font-weight: 700;
  color: #0f766e;
}
.tb-feedback.is-warn { background: #fff7ed; color: #9a3412; }
.tb-feedback.is-bad { background: #fff1f2; color: #be123c; }

.tb-stem {
  margin: 0;
  font-family: var(--en);
  font-size: 1.05rem;
  font-weight: 800;
}
.tb-stem em {
  font-style: normal;
  background: #fde68a;
  border-radius: 8px;
  padding: 0 6px;
  color: #9a3412;
}
.tb-opts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.tb-opt {
  border: 2px solid transparent;
  background: #fff;
  border-radius: 16px;
  padding: 0;
  overflow: hidden;
  text-align: center;
  box-shadow: 0 3px 0 #fdba74;
}
.tb-opt.is-on { border-color: #0f766e; box-shadow: 0 3px 0 #115e59; }
.tb-opt img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center 42%;
  display: block;
  background: #e8f0f3;
}
.tb-opt .body {
  display: block;
  padding: 8px 10px 10px;
  text-align: center;
}
.tb-opt strong {
  display: block;
  font-family: var(--en);
  font-size: calc(14px * 1.15);
  line-height: 1.35;
  text-align: center;
}
.tb-opt small {
  display: block;
  color: var(--muted);
  font-weight: 700;
  font-size: calc(12px * 1.15);
  line-height: 1.4;
  text-align: center;
  margin-top: 2px;
}

.tb-made {
  background: #fffbeb;
  border-radius: 16px;
  padding: 10px;
  border: 2px solid #fde68a;
}
.tb-made p { margin: 0; }
.tb-made .en { font-family: var(--en); font-size: calc(1.1rem * 1.15); font-weight: 800; text-align: center; }
.tb-made .zh { margin-top: 4px; color: var(--muted); font-size: calc(13px * 1.15); font-weight: 700; text-align: center; }

.tb-coach-hero {
  display: grid;
  grid-template-columns: minmax(108px, 30%) minmax(0, 1fr);
  gap: 10px;
  align-items: stretch;
  margin-bottom: 8px;
}
.tb-coach-hero.is-text-only { grid-template-columns: minmax(0, 1fr); }
.tb-coach-hero-art {
  min-width: 0;
  display: flex;
}
.tb-coach-hero .tb-scene-wrap-coach {
  --tb-scene-h: 100%;
  width: 100%;
  max-width: none;
  margin-inline: 0;
  height: 100%;
  flex: 1;
}
.tb-coach-hero .tb-scene-wrap-coach .tb-scene {
  height: 100%;
  min-height: min(22vh, 180px);
  max-height: none;
  aspect-ratio: auto;
}
.tb-coach-hero-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  min-height: 0;
}
.tb-coach-hero-body .tb-coach-guide {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.tb-coach-guide-kicker {
  margin: 0;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #0f766e;
}
.tb-coach-hero-body .tb-coach-goal { margin: 0; }
.tb-coach-hero-body .tb-coach-steps { margin: 0; }
.tb-people-bank {
  background: #fff;
  border: 2px solid #bfdbfe;
  border-radius: 14px;
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0 0 10px;
}
.tb-people-hint {
  margin: 0;
  font-size: 12px;
  font-weight: 700;
  color: #64748b;
}
.tb-people-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.tb-people-chip {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  margin: 0;
  padding: 6px 12px;
  border-radius: 14px;
  border: 2px solid #6ee7b7;
  background: #ecfdf5;
  color: #047857;
  cursor: pointer;
  font-family: inherit;
  line-height: 1.25;
  text-align: left;
}
.tb-people-chip .zh {
  font-size: 15px;
  font-weight: 800;
}
.tb-people-chip .en {
  font-size: 12px;
  font-weight: 700;
  font-family: var(--en);
  color: #0f766e;
}
.tb-people-chip.is-on {
  background: #047857;
  border-color: #047857;
  color: #fff;
}
.tb-people-chip.is-on .en { color: #d1fae5; }
.tb-people-detail {
  background: #f8fafc;
  border-radius: 12px;
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.tb-people-name {
  margin: 0;
  font-size: 16px;
  font-weight: 800;
  color: #1d4ed8;
}
.tb-people-intro {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.tb-people-intro b {
  display: inline-block;
  width: fit-content;
  background: #ccfbf1;
  color: #0f766e;
  border-radius: 999px;
  padding: 2px 10px;
  font-size: 12px;
}
.tb-people-intro .zh,
.tb-people-intro .en {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.55;
}
.tb-people-intro .en { font-family: var(--en); }
.tb-lang-bank {
  background: #fff;
  border: 2px solid #bfdbfe;
  border-radius: 14px;
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0 0 10px;
}
.tb-lang-title {
  margin: 0;
  font-size: 14px;
  font-weight: 800;
  color: #1d4ed8;
}
.tb-lang-hint, .tb-lang-label, .tb-lang-tip {
  margin: 0;
  font-size: 12px;
  font-weight: 700;
  color: #64748b;
}
.tb-lang-group {
  display: grid;
  grid-template-columns: 4.5em minmax(0, 1fr);
  gap: 6px 8px;
  align-items: start;
}
.tb-lang-group .tb-lang-label {
  padding-top: 6px;
  color: #334155;
}
.tb-lang-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.tb-lang-chip {
  margin: 0;
  padding: 5px 9px;
  border-radius: 999px;
  border: 2px solid #93c5fd;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  font-family: inherit;
  line-height: 1.25;
  text-align: left;
}
.tb-lang-group[data-tone="person"] .tb-lang-chip {
  background: #ecfdf5;
  border-color: #6ee7b7;
  color: #047857;
}
.tb-lang-group[data-tone="quality"] .tb-lang-chip {
  background: #fff7ed;
  border-color: #fdba74;
  color: #9a3412;
}
.tb-lang-chip.is-on {
  background: #1d4ed8;
  border-color: #1d4ed8;
  color: #fff;
}
.tb-lang-group[data-tone="person"] .tb-lang-chip.is-on {
  background: #047857;
  border-color: #047857;
  color: #fff;
}
.tb-lang-group[data-tone="quality"] .tb-lang-chip.is-on {
  background: #c2410c;
  border-color: #c2410c;
  color: #fff;
}
.tb-lang-detail {
  background: #f8fafc;
  border-radius: 12px;
  padding: 8px 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.tb-lang-detail[hidden] { display: none; }
.tb-lang-detail .en { margin: 0; font-family: var(--en); font-weight: 800; font-size: 15px; }
.tb-lang-detail .zh { margin: 0; color: #64748b; font-size: 13px; font-weight: 700; }
.tb-lang-ex {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 6px 0 0;
  border-top: 1px dashed #cbd5e1;
}
.tb-lang-detail > .tb-lang-ex:first-of-type { border-top: 0; padding-top: 0; }
.tb-lang-ex .tb-btn { align-self: flex-start; }
.tb-coach-audio {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 0;
}
.tb-coach-audio-title {
  margin: 0;
  font-size: 12px;
  font-weight: 800;
  color: #0f766e;
  line-height: 1.4;
}
.tb-coach-audio-file {
  font-weight: 700;
  color: var(--muted);
  word-break: break-all;
}
.tb-coach-audio audio {
  width: 100%;
  height: 36px;
  margin: 0;
  flex: 0 0 auto;
}
.tb-coach-passage {
  flex: 1;
  min-height: 0;
  max-height: min(32vh, 280px);
  overflow: auto;
  background: linear-gradient(180deg, #fffbeb 0%, #fff 100%);
  border-radius: 12px;
  padding: 8px 10px;
  border: 1px solid #fde68a;
  -webkit-overflow-scrolling: touch;
}
.tb-coach-passage-p,
.tb-coach-passage-line {
  margin: 0 0 8px;
  font-size: 14px;
  line-height: 1.68;
  font-weight: 600;
  color: #44403c;
}
.tb-coach-passage-p:last-child,
.tb-coach-passage-line:last-child { margin-bottom: 0; }
.tb-coach-passage-line strong {
  color: #0f766e;
  font-size: 12px;
  font-weight: 800;
}
.tb-coach-en,
.tb-coach-zh {
  margin: 0;
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
}
.tb-coach-en summary,
.tb-coach-zh summary {
  cursor: pointer;
  color: #0f766e;
  font-weight: 800;
  list-style: none;
}
.tb-coach-en summary::-webkit-details-marker,
.tb-coach-zh summary::-webkit-details-marker { display: none; }
.tb-coach-zh summary::before,
.tb-coach-en summary::before {
  content: "▸ ";
  display: inline-block;
  transition: transform 0.15s ease;
}
.tb-coach-zh[open] summary::before,
.tb-coach-en[open] summary::before { transform: rotate(90deg); }
.tb-coach-zh .tb-coach-passage { margin-top: 6px; }
.tb-coach-en .en {
  margin: 6px 0 0;
  font-family: var(--en);
  font-weight: 700;
  font-size: 13px;
  line-height: 1.55;
  white-space: pre-wrap;
  color: #57534e;
}
.tb-coach-trap-box {
  margin: 10px 0 0;
  padding: 8px 10px;
  background: #fff7ed;
  border-radius: 12px;
  color: #9a3412;
}
.tb-coach-trap-box summary {
  cursor: pointer;
  font-size: 13px;
  font-weight: 800;
}
.tb-coach-trap-box .tb-coach-trap {
  margin: 8px 0 0;
}
.tb-coach-goal, .tb-coach-trap {
  margin: 0;
  padding: 8px 10px;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 700;
}
.tb-coach-goal { background: #ecfdf5; color: #0f766e; }
.tb-coach-goal .en { margin: 0; }
.tb-coach-goal .zh,
.tb-coach-steps .zh,
.tb-coach-trap .zh,
.tb-coach-cue .zh,
#tb-coach .zh,
.tb-coach-pop .zh {
  display: none;
}
body.show-zh .tb-coach-goal .zh,
body.show-zh .tb-coach-steps .zh,
body.show-zh .tb-coach-trap .zh,
body.show-zh .tb-coach-cue .zh,
body.show-zh #tb-coach .zh,
body.show-zh .tb-coach-pop .zh {
  display: block;
}
.tb-coach-steps .zh,
.tb-coach-cue .zh { margin-top: 2px; color: var(--muted); font-size: 13px; font-weight: 700; }
.tb-coach-cue {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  margin: 0;
  padding: 6px 8px;
  background: #eff6ff;
  border-radius: 10px;
}
.tb-coach-cue-tag {
  flex: none;
  padding: 1px 7px;
  border-radius: 999px;
  background: #dbeafe;
  color: #1d4ed8;
  font-size: 11px;
  font-weight: 800;
}
.tb-coach-cue-body { min-width: 0; }
.tb-coach-cue .en { margin: 0; font-size: 14px; font-weight: 700; line-height: 1.45; }
.tb-coach-trap { background: #fff7ed; color: #9a3412; }
.tb-coach-steps {
  margin: 0;
  padding-left: 1.2rem;
  color: var(--ink);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.6;
}
.tb-coach-guide {
  margin: 0;
  background: #fff;
  border: 2px solid #bfdbfe;
  border-radius: 14px;
  padding: 8px 10px 9px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.tb-coach-guide-title {
  margin: 0;
  color: #1d4ed8;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: 0.02em;
}
.tb-coach-guide ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  counter-reset: tb-guide;
}
.tb-coach-guide li {
  position: relative;
  padding-left: 30px;
  color: var(--ink);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.55;
  counter-increment: tb-guide;
}
.tb-coach-guide li::before {
  content: "Q" counter(tb-guide);
  position: absolute;
  left: 0;
  top: 1px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #dbeafe;
  color: #1d4ed8;
  font-size: 11.5px;
  font-weight: 800;
  display: grid;
  place-items: center;
}
.tb-coach-hero-body .tb-coach-guide { margin: 0; }
.tb-coach-q {
  background: #fff;
  border-radius: 14px;
  padding: 10px;
  border: 2px solid #fde68a;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.tb-coach-q .en { margin: 0; font-family: var(--en); font-weight: 800; font-size: 17px; line-height: 1.5; }
.tb-coach-q .zh { margin: 0; color: var(--muted); font-size: 15px; font-weight: 700; }
.tb-coach-ans {
  background: #ecfdf5;
  border-radius: 12px;
  padding: 10px 12px;
  font-size: 15px;
  font-weight: 700;
  color: #0f766e;
}
.tb-coach-bank {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 700;
  color: #0f766e;
}
.tb-coach-bank span {
  display: inline-block;
  padding: 2px 8px;
  background: #ecfdf5;
  border: 1px solid #99f6e4;
  border-radius: 999px;
  color: #115e59;
}
.tb-coach-cloze-pass,
.tb-coach-cloze-line {
  margin: 0 0 10px;
  padding: 10px 12px;
  background: #fff;
  border: 1px solid #dbeafe;
  border-radius: 14px;
}
.tb-cloze-text {
  margin: 0;
  font-family: var(--en);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.7;
  white-space: pre-wrap;
}
.tb-cloze-opt {
  margin: 6px 0 0;
  font-size: 12px;
  font-weight: 700;
  color: #64748b;
}
.tb-cloze-slot {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin: 0 2px;
  vertical-align: baseline;
}
.tb-cloze-hit {
  min-width: 5.2em;
  min-height: 1.15em;
  max-width: 100%;
  padding: 0 6px;
  border: 0;
  border-bottom: 2px solid #9a3412;
  background: transparent;
  color: #0f766e;
  font: inherit;
  font-weight: 800;
  line-height: 1.2;
  white-space: normal;
  text-align: left;
  cursor: pointer;
}
.tb-cloze-hit:hover,
.tb-cloze-hit:focus-visible {
  background: #fde68a;
  outline: 0;
}
.tb-cloze-slot.is-on .tb-cloze-hit {
  border-bottom-color: #0f766e;
  color: #0f766e;
}
.tb-cloze-why {
  width: 20px;
  height: 20px;
  padding: 0;
  border: 1px solid #fdba74;
  border-radius: 999px;
  background: #fff7ed;
  color: #9a3412;
  font-size: 12px;
  font-weight: 800;
  line-height: 18px;
  cursor: pointer;
}
.tb-cloze-why:hover,
.tb-cloze-why:focus-visible {
  background: #ffedd5;
  outline: 0;
}
.tb-coach-pop {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  background: rgba(15, 23, 42, 0.46);
}
.tb-coach-pop[hidden] { display: none !important; }
.tb-coach-pop-card {
  width: min(460px, 100%);
  max-height: min(74vh, 580px);
  overflow: auto;
  padding: 14px 16px 16px;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.2);
}
.tb-coach-pop-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}
.tb-coach-pop-top h3 {
  margin: 0;
  font-size: 16px;
}
.tb-coach-pop-close {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 999px;
  background: #f1f5f9;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}
.tb-coach-pop-body section { margin: 10px 0 0; }
.tb-coach-pop-body b { display: block; margin-bottom: 4px; color: #0f766e; font-size: 13px; }
.tb-coach-pop-body p { margin: 0; font-size: 14px; line-height: 1.6; }
.tb-coach-pop-q { font-family: var(--en); font-weight: 800; }
.tb-coach-pop-wait { margin-top: 10px; color: #64748b; font-size: 12px; font-weight: 700; }
.tb-coach-ans .en {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.65;
}
.tb-coach-ans .en + .en { margin-top: 10px; }
.tb-coach-ans .zh + .zh { margin-top: 6px; }
.tb-coach-ans .en + .zh { margin-top: 8px; }
.tb-coach-fill { font-size: 13px; font-weight: 700; color: var(--muted); }
.tb-coach-fill input {
  display: block;
  width: 100%;
  margin-top: 4px;
  border: 2px solid #fdba74;
  border-radius: 10px;
  padding: 6px 8px;
  font-family: var(--en);
  font-weight: 700;
}
.tb-coach-mark { margin: 0; font-size: 13px; font-weight: 800; }
.tb-coach-mark.is-ok { color: #047857; }
.tb-coach-mark.is-no { color: #be123c; }
.tb-coach-table { display: grid; gap: 6px; }
.tb-coach-table .row {
  display: grid;
  grid-template-columns: 0.7fr 1.2fr 1.2fr;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
}
.tb-coach-table .row span {
  background: #fff7ed;
  border-radius: 10px;
  padding: 8px;
}
.tb-coach-table .head span { background: #0f766e; color: #fff; }
.tb-coach-table.cols-2 .row { grid-template-columns: 0.8fr 2.2fr; }
.tb-coach-who {
  margin: 0;
  font-size: 13px;
  font-weight: 800;
  color: #1d4ed8;
}
.tb-coach-examples {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 10px;
}
.tb-coach-examples-title {
  margin: 2px 0 0;
  font-size: 13px;
  font-weight: 800;
  color: #0f766e;
}
.tb-coach-ex {
  background: #fff;
  border: 1px solid #99f6e4;
  border-radius: 12px;
  padding: 8px 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.tb-coach-ex .en {
  font-size: 15px;
}
.tb-coach-ex .zh {
  font-size: 13px;
}
.tb-coach-pattern {
  margin: 0;
  font-size: 12px;
  font-weight: 700;
  color: #b45309;
}
.tb-coach-why {
  margin: 6px 0 0;
  color: #0f766e;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.6;
}
.tb-coach-why strong {
  display: block;
  margin-bottom: 2px;
  font-size: 13px;
}
.tb-coach-why p {
  margin: 4px 0 0;
  font-weight: 600;
}
.tb-coach-match { margin: 0; padding-left: 1.1rem; font-size: 13px; font-weight: 700; }
.tb-coach-match small { display: block; color: var(--muted); }

.tb-listen {
  margin: 8px 0 0;
  background: #fff;
  border: 2px solid #99f6e4;
  border-radius: 16px;
  padding: 8px 10px 10px;
}
.tb-listen-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 12px;
  font-weight: 800;
  color: #0f766e;
}
.tb-listen-head span {
  background: #ccfbf1;
  border-radius: 999px;
  padding: 2px 8px;
}
.tb-listen-title {
  margin: 6px 0 4px;
  font-weight: 800;
  font-size: 13px;
}
.tb-listen-file {
  margin: 0 0 4px;
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  word-break: break-all;
}
.tb-listen audio {
  width: 100%;
  margin: 6px 0;
}
.tb-listen .tb-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  width: 100%;
  min-width: 0;
  margin-top: 4px;
}
.tb-listen .tb-actions .tb-btn {
  width: 100%;
  min-width: 0;
  text-align: center;
}
.tb-listen-miss {
  margin: 0;
  color: #9a3412;
  font-size: 12px;
  font-weight: 700;
}
.tb-listen-script {
  margin-top: 8px;
  background: #ecfdf5;
  border-radius: 12px;
  padding: 8px 10px;
}
.tb-listen-script .en {
  margin: 0;
  font-family: var(--en);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.55;
  white-space: pre-wrap;
}
.tb-listen-script .zh { margin: 6px 0 0; color: var(--muted); font-size: 14px; font-weight: 700; }
.tb-listen-title {
  margin: 0 0 4px;
  font-size: 12px;
  font-weight: 800;
  color: #0f766e;
}
.tb-listen-line { margin: 0 0 8px; }
.tb-listen-line strong {
  display: inline-block;
  margin-right: 4px;
  color: #0f766e;
  font-size: 12px;
}
.tb-listen-line .en {
  font-family: var(--en);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.5;
}
.tb-listen-line .zh {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 14px;
  font-weight: 700;
}
.tb-listen details .en,
.tb-listen details p { white-space: pre-wrap; }

/* ===== 移动端覆盖：放在文件末尾，确保覆盖上面的桌面默认值 ===== */
@media (max-width: 900px) {
  .tb-scene-wrap { --tb-scene-h: min(42vh, 320px); }
  .tb-coach-hero { grid-template-columns: minmax(88px, 34%) minmax(0, 1fr); gap: 8px; }
  .tb-coach-hero .tb-scene-wrap-coach { --tb-scene-h: min(22vh, 176px); height: auto; }
  .tb-coach-passage { max-height: min(36vh, 320px); }
  .tb-opts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tb-lang-group { grid-template-columns: minmax(0, 1fr); }
  /* 触控：标签与按钮更高一点，方便手指点 */
  .tb-tabs { gap: 5px; }
  .tb-tab { padding: 9px 2px; font-size: 12.5px; border-radius: 12px; }
  .tb-tabs.has-coach .tb-tab { font-size: 12px; padding: 9px 2px; }
  .tb-pick { padding: 6px 10px; font-size: 12px; }
  .tb-people-chip, .tb-lang-chip { padding: 7px 12px; }
  .tb-coach-audio audio { height: 40px; }
  .tb-now img { width: 56px; height: 44px; }
  .tb-now { grid-template-columns: 56px minmax(0, 1fr) 38px; }
  .tb-now-en { font-size: 16px; }
}

.tb-coach-story-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 0 0 8px;
}
.tb-coach-story-kicker {
  margin: 0 0 10px;
  font-size: 14px;
  font-weight: 800;
  color: #9a3412;
}
.tb-coach-story-toolbar .tb-coach-story-kicker { margin: 0; }
.tb-coach-story .tb-story-line { margin-top: 2px; }
.tb-coach-story .tb-zh { margin: 4px 0 0; font-size: 13px; color: #64748b; }

/* 手机：解题区配图改为上图下文，选项两列 */
@media (max-width: 640px) {
  .tb-coach-hero { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .tb-coach-hero .tb-scene-wrap-coach { --tb-scene-h: min(30vh, 220px); }
  .tb-coach-hero .tb-scene-wrap-coach .tb-scene {
    height: auto;
    min-height: 0;
    max-height: min(30vh, 220px);
    aspect-ratio: 16 / 9;
  }
  .tb-opts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tb-scores { gap: 4px; }
  .tb-score { padding: 6px 2px; }
  .tb-coach-table .row { font-size: 11.5px; gap: 4px; }
  .tb-coach-table .row span { padding: 6px; }
  .tb-coach-q .en { font-size: 16px; }
  .tb-sentence { font-size: 1.15rem; }
  #pane-pyramid .tb-scene-row { height: 92px; }
  #pane-pyramid .tb-scene-row .tb-scene { flex-basis: 112px; width: 112px; }
  #pane-pyramid .tb-scene-row:not(:has(.tb-scene-cap)) { max-width: 112px; }
}
