/* Speaking surface for EnglishCBT. Reuses exam.css chrome (topbar, clock, overlays,
 * toolbtn); this file styles the single guided pane, the cue card and the reveal. */

.spane { max-width: 760px; margin: 0 auto; }
.spart-tag { font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--purple); margin-bottom: 6px; }
.spane h2 { font-size: 20px; margin-bottom: 8px; }
.slede { color: #555; font-size: 14px; line-height: 1.55; margin-bottom: 18px; }

/* Part 1 / Part 3 question lists */
.stopic { border: 1px solid var(--line); border-radius: 8px; padding: 16px 18px; margin-bottom: 14px; background: #fff; }
.stopic h3 { font-size: 15px; margin-bottom: 8px; color: var(--purple-900); }
.squestions { list-style: none; }
.squestions li { font-size: 15.5px; line-height: 1.5; padding: 7px 0 7px 22px; position: relative; }
.squestions li::before { content: "“"; position: absolute; left: 2px; top: 6px; color: var(--cyan-ink); font-weight: 800; font-size: 18px; }

/* Part 2 cue card */
.cuecard {
  border: 2px solid var(--purple); border-radius: 10px; padding: 22px 24px; background: #fbfbfd;
  box-shadow: 0 8px 24px rgba(35,8,90,.06); margin-bottom: 18px;
}
.cuecard .ctitle { font-size: 17px; font-weight: 800; color: var(--purple-900); margin-bottom: 12px; }
.cuecard .clead { font-size: 14px; color: #555; margin-bottom: 6px; }
.cuecard ul { margin: 0 0 4px 20px; }
.cuecard li { font-size: 15.5px; line-height: 1.6; margin-bottom: 4px; }
.cuecard .cexplain { font-size: 15.5px; margin-top: 8px; font-style: italic; }

.sprep { display: flex; flex-direction: column; }
.sprep label { font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #555; margin-bottom: 6px; }
.snotes {
  width: 100%; min-height: 130px; resize: vertical; font-family: inherit; font-size: 15px; line-height: 1.6;
  padding: 12px 14px; border: 1px solid var(--line); border-radius: 6px;
}
.snotes:focus { outline: 2px solid var(--purple); border-color: var(--purple); }

/* Big prep/talk countdown callout */
.sbigtime { display: flex; align-items: center; gap: 14px; background: #f6f5f9; border-left: 4px solid var(--purple); padding: 12px 16px; border-radius: 0 6px 6px 0; margin-bottom: 16px; }
.sbigtime b { font-size: 26px; font-variant-numeric: tabular-nums; color: var(--purple); min-width: 68px; }
.sbigtime.talk { border-left-color: var(--green); }
.sbigtime.talk b { color: var(--green); }
.sbigtime span { font-size: 13.5px; color: #4a4a55; line-height: 1.45; }

/* Recording controls */
.srec { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 14px 0 4px; }
.srecbtn { border: 1px solid var(--purple); background: #fff; color: var(--purple); border-radius: 6px; padding: 9px 16px; font-size: 14px; font-weight: 700; display: inline-flex; align-items: center; gap: 8px; }
.srecbtn .dot { width: 11px; height: 11px; border-radius: 50%; background: var(--red); display: inline-block; }
.srecbtn.recording { background: var(--red); border-color: var(--red); color: #fff; }
.srecbtn.recording .dot { background: #fff; animation: spulse 1s infinite; }
@keyframes spulse { 50% { opacity: .3; } }
.srecnote { font-size: 12.5px; color: #777; }
.splayback { margin-top: 8px; }
.splayback audio { width: 100%; max-width: 420px; }

/* Nav */
.snav { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.sprog { font-size: 12px; color: #777; }
.sdots { display: flex; gap: 6px; }
.sdot { width: 9px; height: 9px; border-radius: 50%; background: #d5d3de; }
.sdot.on { background: var(--purple); }
.sdot.done { background: var(--cyan); }

/* Results reveal */
.sresult h2 { font-size: 21px; margin-bottom: 4px; }
.sblock { border-top: 1px solid var(--line-soft); padding-top: 16px; margin-top: 16px; }
.sblock:first-of-type { border-top: 0; }
.sblock h3 { font-size: 16px; margin-bottom: 8px; }
.smodel { background: #fbfbfd; border: 1px solid var(--line); border-left: 3px solid var(--purple); border-radius: 0 6px 6px 0; padding: 14px 18px; margin: 6px 0 10px; font-size: 15px; line-height: 1.72; }
.smodel .mtag { font-size: 11.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--purple); margin-bottom: 8px; }
.smodel p { margin: 0 0 10px; }
.smodel p:last-child { margin-bottom: 0; }
.sqa { margin-bottom: 12px; }
.sqa .sq { font-weight: 700; color: var(--purple-900); font-size: 14.5px; margin-bottom: 3px; }
.sqa .sa { font-size: 14.5px; line-height: 1.6; color: #333; }
.stips { margin: 8px 0; }
.stips h4 { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: #555; margin-bottom: 6px; }
.stips ul { margin-left: 18px; }
.stips li { font-size: 13px; line-height: 1.5; margin-bottom: 4px; color: #444; }
.scrit { display: grid; grid-template-columns: 22px 1fr; gap: 8px; align-items: start; font-size: 13px; line-height: 1.5; margin-bottom: 7px; }
.scrit input { margin-top: 3px; }
.sbandnote { background: #f6f5f9; border-left: 3px solid var(--purple); padding: 10px 12px; border-radius: 0 4px 4px 0; font-size: 12.5px; color: #4a4a55; line-height: 1.55; margin-top: 8px; }

@media (max-width: 820px) {
  .pane { padding: 16px 15px 40px; }
}
