.exam-quiz [hidden] { display: none }
.quiz-card, .quiz-result { border: 1px solid var(--rule); border-top: 4px solid var(--brand); border-radius: 12px; padding: clamp(16px, 3.2vw, 32px); margin-top: 16px }
.quiz-card h3, .quiz-result h3 { margin: 6px 0 10px }
.quiz-question, .quiz-result > p { max-width: 78ch }
.quiz-panes { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: start; gap: clamp(14px, 3vw, 32px); margin-top: 16px }
.q-sheet { border: 1px solid #a9c3d2; border-radius: 7px; overflow-x: auto; background: #fff }
.q-sheet table { width: 100%; border-collapse: collapse; font: 14px/1.4 system-ui, sans-serif; font-variant-numeric: tabular-nums }
.q-sheet caption { text-align: left; padding: 9px 10px; background: var(--soft-blue); color: var(--ink) }
.q-sheet caption span { display: block; color: var(--quiet); font-size: 12px }
.q-sheet th, .q-sheet td { padding: 4px 5px; border: 1px solid #cddbe2; text-align: right }
.q-sheet thead th, .q-sheet th[scope=row], .q-sheet thead td { background: #f0f4f7; font-size: 12px; color: var(--quiet); text-align: center }
.q-sheet tbody tr:first-child td { text-align: left; font-weight: 700; color: var(--blue) }
.q-sheet tbody td:nth-child(2) { text-align: left }
.q-sheet .q-target { background: var(--soft-yellow); box-shadow: inset 0 0 0 2px #936c00; color: #514000; font-weight: 800; text-align: center }
.q-brief { padding: 15px; border-radius: 7px; background: var(--soft-blue) }
.q-brief dl { margin: 6px 0 0 }
.q-brief dl > div { padding: 5px 0; border-top: 1px solid #c7dbe5 }
.q-brief dt { color: var(--quiet); font-size: 13px }
.q-brief dd { margin: 1px 0; font-weight: 680 }
.quiz-options { border: 0; padding: 0; margin: 0; min-width: 0 }
.quiz-options legend { padding: 0 0 5px; color: var(--ink); font-weight: 700 }
.quiz-option { position: relative; display: flex; align-items: center; gap: 9px; border: 1px solid #b9cbd6; border-radius: 7px; padding: 10px; margin: 5px 0; cursor: pointer; font-size: 15px; min-height: 45px }
.quiz-option input { flex: none; accent-color: var(--blue); margin: 0 }
.quiz-option b { color: var(--quiet); font: 700 13px/1 ui-monospace,monospace }
.quiz-option code { padding: 0; background: none; white-space: normal; overflow-wrap: anywhere; font: 600 13px/1.55 ui-monospace,monospace }
.quiz-option:focus-within { outline: 2px solid var(--blue); outline-offset: 2px }
.quiz-option:has(:checked) { border-color: var(--blue); background: var(--soft-blue) }
.quiz-option[data-mark=right] { background: #e5f5ed; border-color: #53866c }
.quiz-option[data-mark=wrong] { background: #f9eeeb; border-color: #af7161 }
.quiz-hint { margin: 7px 0 0; font-size: 14px }
.quiz-controls { margin-top: 12px }
.quiz-controls button, .quiz-result button { border: 0; font: inherit; font-weight: 700; cursor: pointer }
.quiz-feedback:not(:empty) { margin: 0 0 12px; border-left: 3px solid var(--brand); padding: 7px 12px; background: var(--soft-blue); max-width: 85ch }
.quiz-result { background: var(--soft-yellow); border-top-color: #d3ab2e }
.quiz-review li { margin-block: 14px }
.quiz-review li p { padding: 2px 0; max-width: 74ch }
@media (max-width: 780px) { .quiz-panes { grid-template-columns: 1fr } }
@media (max-width: 440px) { .q-sheet table { font-size: 12px } .q-sheet :is(th,td) { padding: 4px 3px } }
[data-practice-view][hidden] { display: none }
.practice-extras { margin: -14px 0 24px }
.practice-back { margin-top: 24px; font-weight: 650 }
[data-practice-view]:focus { outline: none }
.case-files { margin: 14px 0; padding: 10px 16px; background: var(--soft-blue); border-radius: 8px }
.case-files .jump { margin: 8px 0 }
.case-brief { max-width: 850px; margin-block: 12px }
.case-brief dl { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,270px),1fr)); gap: 4px 24px }
.case-stage { border: 1px solid var(--rule); border-radius: 10px; margin-top: 12px; padding: 6px 16px; max-width: 900px }
.case-stage > summary { padding: 8px 0 }
.case-number { background: var(--soft-blue); padding: 3px 7px; border-radius: 4px; margin-right: 8px; font-variant-numeric: tabular-nums }
.case-body { padding: 4px 0 12px }
.case-body > p, .case-solution p { max-width: 78ch }
.case-entries { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,180px),1fr)); gap: 14px; margin: 12px 0 }
.case-entry { display: grid; grid-template-rows: 1fr auto auto; align-items: end; gap: 4px; font-size: 15px; font-weight: 650 }
.case-value { display: flex; align-items: center; gap: 8px }
.case-value input { width: 8em; max-width: 55%; padding: 7px 8px; font: inherit; border: 1px solid #7292a6; border-radius: 5px }
.case-value > span { font-size: 13px; color: var(--quiet) }
.case-entry[data-mark=right] .case-mark { color: #216549 }
.case-entry[data-mark=retry] .case-mark { color: #92391d }
.case-calculation [hidden] { display: none }
.case-calculation button { border: 0; cursor: pointer; font: inherit; font-weight: 700 }
.case-response:empty { display: none }
.case-solution { border-left: 3px solid var(--brand); padding-left: 12px }
