.multipart-modal { width: min(820px,100%); }
.wordmark-button { cursor:pointer; }
.wordmark-button:focus-visible { outline:2px solid var(--green); outline-offset:7px; border-radius:2px; }
.playback-fields { padding-bottom: 6px; border-bottom: 1px solid var(--line); }
.parts-editor { margin: 22px 0; }
.parts-editor-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.parts-editor-title > div > span, .parts-editor-title > div > small { display: block; }
.parts-editor-title > div > span { color: var(--text); font: 600 15px var(--display); }
.parts-editor-title > div > small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.parts-editor-title > strong { color: var(--green); font: 600 12px var(--display); }
.part-editor-card { margin-bottom: 10px; padding: 15px; border: 1px solid #2d332e; border-radius: 8px; background: #0f1210; }
.part-editor-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.part-editor-head > span { color: var(--green); font: 700 10px var(--display); letter-spacing: .16em; text-transform: uppercase; }
.part-editor-head > div { display: flex; gap: 5px; }
.part-field-grid { display: grid; grid-template-columns: minmax(0,1fr) 190px 90px; gap: 10px; align-items: end; }
.part-field-grid label { margin: 0; }
.part-field-grid textarea { min-height: 68px; }
.points-field input { text-align: center; }
.add-part-button { width: 100%; border-style: dashed; }
.correction-note-field { margin-top: 18px; }

.play-question-parts { width: min(1080px,92vw); margin: 10px auto 32px; }
.play-question-parts h1 { margin: 0 auto; }
.play-question-parts.is-multipart { display: grid; gap: 10px; }
.play-question-parts.is-multipart h1 { position: relative; width: fit-content; max-width: 100%; padding-left: 22px; font-size: clamp(28px,3.4vw,48px); line-height: 1.12; }
.play-question-parts.is-multipart h1::before { content: ""; position: absolute; left: 0; top: .48em; width: 7px; height: 7px; border-radius: 50%; background: var(--green); box-shadow: 0 0 12px rgba(142,245,32,.35); }

.multipart-correction { display: block; width: min(1180px,100%); padding: 24px 0; overflow-y: auto; }
.correction-multipart-head { display: flex; align-items: end; justify-content: space-between; margin-bottom: 14px; }
.correction-multipart-head .question-kicker { margin: 0; }
.correction-multipart-head h2 { margin: 5px 0 0; font: 600 27px var(--display); }
.question-point-summary { display: flex; align-items: center; gap: 12px; }
.question-point-summary > span { color: var(--green); font: 600 11px var(--display); }
.correction-parts-list { display: grid; gap: 10px; }
.correction-part-card { display: grid; grid-template-columns: minmax(300px,.9fr) minmax(420px,1.1fr); gap: 18px; align-items: center; padding: 18px; border: 1px solid var(--line); border-radius: 10px; background: linear-gradient(150deg,rgba(23,27,24,.97),rgba(15,18,16,.97)); }
.correction-part-head { display: flex; align-items: center; justify-content: space-between; }
.correction-part-head > span { color: var(--green); font: 700 10px var(--display); letter-spacing: .15em; text-transform: uppercase; }
.correction-part-head > strong { color: #9ea59f; font: 600 10px var(--display); }
.correction-part-copy h3 { margin: 8px 0 12px; font: 600 20px/1.25 var(--display); }
.part-answer { padding: 11px 13px; border-left: 2px solid var(--green); border-radius: 3px; background: rgba(142,245,32,.045); }
.part-answer span, .part-answer strong { display: block; }
.part-answer span { color: var(--green); font: 700 8px var(--display); letter-spacing: .15em; text-transform: uppercase; }
.part-answer strong { margin-top: 3px; font: 600 17px var(--display); }
.answer-reveal-control { width:100%; border-top:0; border-right:0; border-bottom:0; color:var(--text); text-align:left; cursor:pointer; }
.answer-reveal-control strong { filter:blur(8px); opacity:.72; user-select:none; transition:filter .2s ease,opacity .2s ease; }
.answer-reveal-control:hover strong,.answer-reveal-control:focus-visible strong { opacity:.9; }
.answer-reveal-control:focus-visible { outline:1px solid rgba(142,245,32,.55); outline-offset:2px; }
.answer-reveal-control.revealed strong { filter:none; opacity:1; user-select:text; }
.answer-reveal-hint { display:block; margin-top:5px; color:#6f776f; font-size:9px; font-weight:600; }
.part-player-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.part-player-grid .player-score { min-height: 70px; padding: 11px 13px; }
.correction-note { display: flex; gap: 12px; margin-top: 12px; padding: 13px 16px; border: 1px solid #292f2a; border-radius: 8px; background: #0e110f; }
.correction-note span { color: var(--green); font: 700 9px var(--display); letter-spacing: .12em; text-transform: uppercase; }
.correction-note p { margin: 0; color: var(--muted); font-size: 12px; }
.correction-replay { margin-top: 12px; }
.correction-replay .audio-shell { min-height: 270px; }
.correction-media-content { width:min(920px,100%); margin:auto; }
.correction-video-frame { width:100%; }
.correction-clip-status { max-width:calc(100% - 28px); }
.correction-media-toolbar { display:flex; justify-content:center; gap:8px; margin-top:10px; }
.correction-replay.is-collapsed { padding:10px 12px; border:1px solid #29312a; border-radius:8px; background:#0d100e; }
.correction-media-collapsed { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.correction-media-collapsed > span { color:var(--muted); font:600 10px var(--display); letter-spacing:.1em; text-transform:uppercase; }
.correction-media-collapsed > div { display:flex; gap:8px; }

@media(max-width:900px) {
  .part-field-grid { grid-template-columns: 1fr 120px; }
  .part-field-grid label:first-child { grid-column: 1/-1; }
  .correction-part-card { grid-template-columns: 1fr; }
}

@media(max-width:640px) {
  .parts-editor-title, .correction-multipart-head { align-items: flex-start; gap: 10px; }
  .part-field-grid { grid-template-columns: 1fr; }
  .part-field-grid label:first-child { grid-column: auto; }
  .play-question-parts { margin-bottom: 20px; }
  .play-question-parts.is-multipart h1 { padding-left: 16px; font-size: 25px; }
  .play-question-parts.is-multipart h1::before { width: 6px; height: 6px; }
  .question-point-summary { align-items: flex-end; flex-direction: column; }
  .part-player-grid { grid-template-columns: 1fr; }
  .correction-media-collapsed { align-items:flex-start; flex-direction:column; }
}
