.alp-quiz { margin: 1.4rem 0 2rem; }
.alp-quiz-card { border: 1px solid var(--md-default-fg-color--lightest); border-radius: .7rem; overflow: hidden; background: var(--md-default-bg-color); box-shadow: 0 .15rem .6rem rgba(0,0,0,.06); }
.alp-quiz-header { display: flex; gap: 1rem; align-items: flex-start; justify-content: space-between; padding: 1rem 1.1rem .8rem; background: color-mix(in srgb, var(--md-primary-fg-color) 7%, transparent); }
.alp-quiz-header h3 { margin: 0 0 .35rem; }
.alp-quiz-header p { margin: 0; color: var(--md-default-fg-color--light); }
.alp-quiz-score { min-width: 5rem; text-align: center; border-radius: .55rem; padding: .45rem .6rem; background: var(--md-default-bg-color); }
.alp-quiz-score strong { display: block; font-size: 1.15rem; }
.alp-quiz-score span { font-size: .65rem; color: var(--md-default-fg-color--light); }
.alp-quiz-progress { height: .28rem; background: var(--md-default-fg-color--lightest); }
.alp-quiz-progress span { display:block; height:100%; width:0; background: var(--md-primary-fg-color); transition:width .2s ease; }
.alp-quiz-questions { padding: .1rem 1.1rem; }
.alp-quiz-question { padding: 1rem 0 1.15rem; border-bottom: 1px solid var(--md-default-fg-color--lightest); }
.alp-quiz-question:last-child { border-bottom: 0; }
.alp-quiz-question__title { display:flex; gap:.65rem; align-items:flex-start; font-weight:600; line-height:1.45; }
.alp-quiz-question__number { display:inline-flex; min-width:1.7rem; height:1.7rem; align-items:center; justify-content:center; border-radius:50%; background:var(--md-primary-fg-color); color:var(--md-primary-bg-color); font-size:.75rem; }
.alp-quiz-options { display:grid; gap:.45rem; margin:.8rem 0; }
.alp-quiz-option { display:flex; gap:.6rem; align-items:flex-start; padding:.58rem .7rem; border:1px solid var(--md-default-fg-color--lightest); border-radius:.45rem; cursor:pointer; }
.alp-quiz-option:hover { background: color-mix(in srgb, var(--md-primary-fg-color) 5%, transparent); }
.alp-quiz-option input { margin-top:.22rem; }
.alp-quiz-numeric { display:flex; flex-wrap:wrap; gap:.55rem; align-items:center; margin:.85rem 0; }
.alp-quiz-numeric input { width:10rem; max-width:100%; padding:.48rem .55rem; border:1px solid var(--md-default-fg-color--light); border-radius:.35rem; color:var(--md-default-fg-color); background:var(--md-default-bg-color); }
.alp-quiz-question__actions { display:flex; gap:.5rem; flex-wrap:wrap; margin-top:.65rem; }
.alp-quiz-feedback, .alp-quiz-explanation { margin-top:.7rem; padding:.7rem .8rem; border-radius:.45rem; }
.alp-quiz-feedback p, .alp-quiz-explanation p { margin:.25rem 0 0; }
.alp-quiz-question.is-correct .alp-quiz-feedback { border-left:.22rem solid #2e7d32; background:rgba(46,125,50,.08); }
.alp-quiz-question.is-wrong .alp-quiz-feedback { border-left:.22rem solid #c62828; background:rgba(198,40,40,.07); }
.alp-quiz-explanation { border-left:.22rem solid var(--md-accent-fg-color); background: color-mix(in srgb, var(--md-accent-fg-color) 8%, transparent); }
.alp-quiz-hint { color:var(--md-default-fg-color--light); }
.alp-quiz-footer { display:flex; gap:1rem; justify-content:space-between; align-items:center; padding:.9rem 1.1rem 1rem; background:var(--md-code-bg-color); }
.alp-quiz-summary { font-weight:500; }
.alp-quiz.is-passed .alp-quiz-summary { color:#2e7d32; }
.alp-quiz.needs-review .alp-quiz-summary { color:#b26a00; }
.alp-quiz-loading { padding:1rem; border:1px dashed var(--md-default-fg-color--lighter); border-radius:.5rem; }
@media (max-width: 700px) {
  .alp-quiz-header, .alp-quiz-footer { flex-direction:column; align-items:stretch; }
  .alp-quiz-score { align-self:flex-start; }
  .alp-quiz-question__actions .md-button { width:100%; text-align:center; }
}

.alp-quiz-code { overflow:auto; padding:.75rem .85rem; border:1px solid var(--md-default-fg-color--lightest); border-radius:.45rem; background:color-mix(in srgb, var(--md-default-fg-color) 4%, var(--md-default-bg-color)); font-size:.82rem; }

/* Quiz prompts and code-valued options are standalone student-visible context. */
.alp-quiz-question__prompt { white-space: pre-wrap; }
.alp-quiz-option__text { white-space: pre-wrap; }
.alp-quiz-option__text--code { font-family: var(--md-code-font-family); }
