/* Shared private IELTS player adaptations. Existing player tokens and desktop layouts are retained. */
.writing-review { z-index: 2000; padding: 16px; }
.writing-review .confirm-card { width: 100%; max-width: 780px; max-height: 92dvh; overflow-y: auto; }
.writing-review label { display: block; font-weight: 600; margin: 12px 0 6px; }
.writing-review textarea { display: block; width: 100%; min-height: 180px; resize: vertical; font: inherit; font-size: 16px; line-height: 1.6; color: var(--text); background: var(--bg-surface); border: 1px solid var(--border-strong); padding: 12px; }
.writing-review .review-confirm { font-weight: 400; line-height: 1.6; }
.writing-review input { width: 20px; height: 20px; vertical-align: middle; }
.writing-review button:disabled { opacity: .5; cursor: not-allowed; }
.writing-review .row { flex-wrap: wrap; margin-top: 16px; }
.reading-part-breakdown { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 24px; }
@media screen and (max-width: 768px) {
  html, body { height: auto; min-height: 100%; overflow: auto; }
  body { overflow-wrap: anywhere; }
  input, select, textarea { font-size: 16px; max-width: 100%; }
  button, .a11y-btn, .nav-btn, .mc-btn, .hw-btn, .task-tab, .part-tab, .palette-cell, .palette-btn { min-height: 44px; }
  #shell, #shell.active { width: 100%; height: auto; min-height: 100dvh; grid-template-rows: auto auto 1fr auto; }
  #shell > header, header.test-header { grid-template-columns: 1fr; gap: 8px; padding: 12px 16px; position: static; }
  header .center, header.test-header .center { justify-content: space-between; flex-wrap: wrap; gap: 8px; }
  header .a11y, header.test-header .right { justify-content: flex-start; flex-wrap: wrap; }
  .a11y-group { flex-wrap: wrap; }
  .task-strip, .part-strip { flex-wrap: wrap; padding: 10px 16px; gap: 8px; }
  .task-strip .advisory, .progress-dots { margin-left: 0; }
  #shell > main { display: block; height: auto; overflow: visible; }
  #promptPane, #answerPane, #passagePane, #questionPane { height: auto; overflow: visible; padding: 20px 16px; border-right: 0; min-width: 0; }
  #promptPane, #passagePane { border-bottom: 2px solid var(--border-strong); }
  .editor { min-height: 360px; font-size: 16px; }
  #shell > footer, footer.bar { grid-template-columns: 1fr; gap: 12px; padding: 12px 16px; }
  #palette { justify-content: flex-start; flex-wrap: wrap; overflow: visible; }
  .palette-cell { width: 44px; flex-shrink: 0; }
  .part-tabs, .nav-controls, .trf-toolbar { flex-wrap: wrap; }
  .footer-mid { text-align: left; }
  .task-tab { margin-bottom: 6px; }
  .full-screen { padding: 16px 12px; }
  .welcome-box { margin: 0 auto; padding: 24px 20px; }
  .welcome-box h1 { font-size: 28px; }
  .mode-pick { grid-template-columns: 1fr; }
  .welcome-box .info { padding: 12px; }
  .confirm-modal, .modal-bg, #busyOverlay { padding: 12px; }
  .confirm-card, .modal-card, .busy-card { max-width: 100%; max-height: 90dvh; overflow-y: auto; padding: 24px 20px; }
  .confirm-card .row { flex-wrap: wrap; }
  main.stage { padding: 20px 12px 40px; }
  .stage-card { padding: 22px 18px; }
  .examiner-row { flex-direction: column; }
  .examiner-bubble { width: 100%; min-width: 0; padding: 16px; }
  .caption { font-size: 17px; }
  .cue-card { padding: 16px; }
  .mic-check { padding: 14px; }
  .mic-check .mc-status { min-width: 0; flex-basis: 100%; }
  .progress-dots { flex-wrap: wrap; }
  .prep-wrap, .record-row, .rec-row { flex-wrap: wrap; }
  #camWrap { position: static; margin: 12px; width: fit-content; }
  .trf-header, .trf-footer { padding: 20px 16px; }
  .trf-title { font-size: 25px; }
  .trf-meta-row, .crit-grid { grid-template-columns: 1fr; }
  .trf-brand-name { flex-wrap: wrap; font-size: 16px; }
  .reading-part-breakdown { grid-template-columns: 1fr; }
  .trf-section-grid { margin-left: 16px; margin-right: 16px; min-width: 0; }
  .trf-sec { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; padding: 12px; min-width: 0; }
  .trf-sec > div { min-width: 0; }
  .trf-sec .sec-score { grid-column: 2; grid-row: 1; white-space: nowrap; }
  .trf-sec .sec-bar { grid-column: 1 / -1; grid-row: 2; }
  .trf-sec-feedback { grid-column: 1 / -1; }
  .trf-review-explain, .trf-filter-bar { margin-left: 16px; margin-right: 16px; }
  .trf-meta-row > div { flex-wrap: wrap; }
  .trf-mv { overflow-wrap: anywhere; }
  .trf-band-card, .trf-section-title, .trf-pending, .crit-grid, .resp-block, .model-wrap { margin-left: 16px; margin-right: 16px; }
  .resp-block { padding: 14px 12px; }
  .resp-block .rb-text { padding: 10px; }
  .resp-block img { max-width: 100%; }
  .welcome-header, .welcome-body { padding: 24px 20px; }
  .palette-bar { white-space: normal; overflow: visible; }
  .palette-bar .section-group { display: flex; flex-wrap: wrap; margin: 8px 0; }
  .palette-btn { width: 44px; }
  .top-bar { position: static; }
  .matching-table, .plan-wrap, .map-wrap { max-width: 100%; overflow-x: auto; }
  table { max-width: 100%; }
}
.writing-review details { margin: 12px 0; }
.writing-review summary { cursor: pointer; min-height: 44px; padding: 10px 0; font-weight: 600; }
.writing-review img { display: block; width: 100%; height: auto; margin: 10px 0; }
