/* ============================================================
   result-review.css — SHARED per-question review component
   Used identically by the diagnostic, drill (session), and mock
   result screens via window.ResultReview (result-review.js), so the
   "문항 리뷰" (question + all choices + your pick vs correct + solution)
   looks and behaves the same everywhere. Ported from the diagnostic's
   proven .rv-* card. Do NOT fork these styles per page.
   ============================================================ */
.rv-list { margin: 0; }
.rv-empty { text-align: center; color: #166534; background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 10px; padding: 24px; font-size: 15px; }
.rv-card { border: 1px solid #e5e8ec; border-radius: 12px; padding: 18px; margin: 0 0 16px; background: #fff; }
.rv-card-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 12px; }
.rv-num { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: #6b7280; margin-right: auto; }
.rv-tag { font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 999px; }
.rv-tag.rv-wrong { background: #fee2e2; color: #991b1b; }
.rv-tag.rv-skip { background: #fef3c7; color: #92400e; }
.rv-tag.rv-fixed { background: #dcfce7; color: #15803d; }
.rv-tag.rv-mtype { background: #f0f2f5; color: #475569; }
.rv-stem { font-size: 15px; line-height: 1.6; margin: 0 0 12px; }
.rv-stem .rw-passage, .rv-stem figure { font-size: 14px; }
.rv-figure { margin: 8px 0 12px; }
.rv-figure img { max-width: 100%; height: auto; border: 1px solid #eef0f3; border-radius: 8px; }
.rv-choices { margin: 0 0 12px; }
.rv-choice { display: flex; align-items: flex-start; gap: 10px; padding: 8px 12px; border: 1px solid #eef0f3; border-radius: 8px; margin-bottom: 6px; font-size: 14px; }
.rv-choice .rv-key { font-weight: 700; min-width: 18px; }
.rv-choice .rv-ctext { flex: 1; }
.rv-choice .rv-mark { font-weight: 700; }
.rv-choice.rv-c-good { background: #f0fdf4; border-color: #86efac; color: #065f46; }
.rv-choice.rv-c-bad { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.rv-gridin { font-size: 14px; line-height: 1.9; margin: 0 0 12px; }
.rv-gridin .rv-good { color: #065f46; }
.rv-gridin .rv-bad { color: #991b1b; }
/* Show-solution toggle (collapsed by default so long reviews stay scannable) */
.rv-soltoggle { background: none; border: 1px solid #d0d4d9; color: #1a1a1a; font-size: 13px; font-weight: 600; padding: 6px 12px; border-radius: 8px; cursor: pointer; font-family: inherit; }
.rv-soltoggle:hover { background: #f0f2f5; }
.rv-solwrap[hidden] { display: none; }
.rv-sol-label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #6b7280; margin: 12px 0 4px; }
.rv-sol { font-size: 14px; line-height: 1.7; color: #374151; }
.rv-sol p { margin: 0 0 8px; }

/* Collapsible per-question review (2026-06-08) — keeps score + next-step CTA
   above the fold; the full review opens on one tap. */
.rv-collapse { border-top:1px solid #e5e8ec; margin-top:10px; }
.rv-collapse-sum { list-style:none; cursor:pointer; padding:14px 2px; font:600 14.5px -apple-system,"Segoe UI",Roboto,sans-serif; color:#1a1a1a; display:flex; align-items:center; gap:8px; }
.rv-collapse-sum::-webkit-details-marker { display:none; }
.rv-collapse-chev { color:#94a3b8; font-size:12px; transition:transform .15s ease; }
details.rv-collapse[open] .rv-collapse-chev { transform:rotate(90deg); }
.rv-collapse-body { padding-top:4px; }
