/* Online Review - question sets. Colours come from base.css. */
.or-quiz{margin:32px 0}
.or-quiz-intro,.or-result{border:1px solid var(--or-bd);border-radius:12px;padding:22px;background:var(--or-bg)}
.or-quiz-title{margin:0 0 10px;font-size:1.3rem}
.or-quiz-facts{margin:0 0 14px;padding-left:20px;color:var(--or-mut)}
.or-quiz-note{font-size:.92rem;color:var(--or-mut)}
.or-quiz-start{display:inline-block;cursor:pointer;padding:12px 28px;font-size:1rem}
.or-quiz-start:disabled{opacity:.6;cursor:wait}
.or-quiz-error{margin-top:12px;padding:10px 14px;border-radius:8px;background:var(--or-bad-t);color:var(--or-bad)}

.or-quiz-history{margin:0 0 16px}
.or-quiz-history-title{font-weight:650;margin-bottom:6px;font-size:.95rem}
.or-quiz-history ul{list-style:none;margin:0;padding:0}
.or-quiz-history li{padding:4px 0}
.or-quiz-when{color:var(--or-mut);font-size:.88rem;margin-left:6px}
.or-quiz-pill{font-size:.75rem;font-weight:600;padding:1px 9px;border-radius:999px;margin-left:4px}
.or-quiz-pill.is-pass{background:var(--or-ok-t);color:var(--or-ok)}
.or-quiz-pill.is-fail{background:var(--or-bad-t);color:var(--or-bad)}

/* Running set: a slim bar, one question at a time in focus. */
.or-quiz-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;padding:10px 14px;margin-bottom:16px;background:var(--or-bg);border:1px solid var(--or-bd);border-radius:var(--or-r)}
.or-quiz-bar .or-quiz-finish{margin-left:auto;cursor:pointer;padding:8px 18px;display:inline-block}
.or-quiz-timer.is-low{color:var(--or-bad);font-weight:650}

.or-q{border:1px solid var(--or-bd);border-radius:12px;padding:20px;margin-bottom:16px;background:var(--or-bg)}
.or-q-badge{display:inline-block;font-size:.78rem;background:var(--or-tint);color:var(--or-mut);padding:2px 10px;border-radius:999px;margin-bottom:8px}
.or-q-num{color:var(--or-mut);font-weight:600;font-size:.88rem;margin-bottom:6px}
.or-q-text{font-size:1em;line-height:1.6;margin-bottom:16px;max-width:68ch}
.or-q-photo{display:block;max-width:100%;height:auto;border-radius:8px;margin-bottom:14px;border:1px solid var(--or-bd);background:#fff}
.or-sol-photo{display:block;max-width:100%;height:auto;border-radius:8px;margin-top:12px;border:1px solid var(--or-bd);background:#fff}

.or-choices{display:grid;gap:8px 10px;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,auto);grid-auto-flow:column}
.or-choices-1,.or-choices-2{grid-template-rows:auto;grid-auto-flow:row}
@media(max-width:640px){.or-choices:not(.or-choices-short){grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row}.or-choices-short .or-choice{padding:10px 12px;gap:10px}}
.or-ctext{min-width:0;overflow-wrap:anywhere}
.or-ctext mjx-container[display="true"]{max-width:100%;overflow-x:auto;overflow-y:hidden}
.or-choice{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;padding:11px 14px;border:1px solid var(--or-bd);border-radius:var(--or-r);background:transparent;color:inherit;cursor:pointer;font:inherit;line-height:1.5}
.or-choice:hover:not(:disabled){background:var(--or-tint);border-color:var(--or-pri)}
.or-choice:disabled{cursor:default}
.or-letter{flex:none;width:26px;height:26px;border-radius:7px;background:var(--or-tint);color:var(--or-mut);font-weight:650;font-size:.85rem;display:inline-flex;align-items:center;justify-content:center}
.or-ctext{flex:1;padding-top:2px}
.or-choice.is-picked{border-color:var(--or-pri);background:var(--or-pri-t)}
.or-choice.is-picked .or-letter{background:var(--or-pri);color:var(--or-on)}
.or-choice.is-correct{border-color:var(--or-ok);background:var(--or-ok-t)}
.or-choice.is-correct .or-letter{background:var(--or-ok);color:var(--or-on)}
.or-choice.is-wrong{border-color:var(--or-bad);background:var(--or-bad-t)}
.or-choice.is-wrong .or-letter{background:var(--or-bad);color:var(--or-on)}

.or-verdict{margin-top:12px;font-weight:650}
.or-verdict.is-ok{color:var(--or-ok)}
.or-verdict.is-bad{color:var(--or-bad)}
.or-sol{margin-top:8px}
.or-sol summary{cursor:pointer;color:var(--or-pri);font-weight:600}
.or-sol-body{margin-top:8px;padding:16px 18px;background:var(--or-tint);border-radius:8px;line-height:2}
/* Worked solutions: room between steps, full-size fractions (see OR_Bank::clean). */
.or-sol-body p{margin:0 0 .7em}
.or-sol-body br{content:"";display:block;margin-top:.55em}
.or-sol-body mjx-container:not([display]){display:inline-block;margin:.45em .1em}

/* Result */
.or-result{text-align:center;margin-bottom:24px}
.or-result-score{font-size:2.8rem;font-weight:650;line-height:1}
.or-result-score span{font-size:1.3rem;color:var(--or-mut);font-weight:500}
.or-result-pct{font-size:1.3rem;font-weight:650;margin:4px 0}
.or-result-verdict{font-size:1.1rem;font-weight:650}
.or-result.is-pass .or-result-verdict{color:var(--or-ok)}
.or-result.is-fail .or-result-verdict{color:var(--or-bad)}
.or-result-meta,.or-result-saved{color:var(--or-mut);font-size:.92rem;margin:6px 0}
.or-result .or-btn{display:inline-block;cursor:pointer;padding:10px 22px;margin-top:10px}
.or-review-title{margin:0 0 12px}
@media(max-width:600px){.or-quiz-bar{flex-wrap:wrap;gap:8px 14px}.or-q{padding:16px}}

/* Long equations (MathJax 3 cannot line-break): display equations scroll sideways inside their
   box instead of spilling out of the card on phones. Inline maths is left alone (no clipping). */
.or-q-text,.or-ctext,.or-sol-body{min-width:0;max-width:100%;overflow-wrap:anywhere}
.or-q-text mjx-container[display="true"],.or-ctext mjx-container[display="true"],.or-sol-body mjx-container[display="true"]{display:block;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding:4px 0 8px;margin:6px 0!important}
.or-ctext mjx-container:not([display]){max-width:none;overflow:visible}
mjx-container[display="true"]::-webkit-scrollbar{height:4px}
mjx-container[display="true"]::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}
.or-qb button.or-qb-show{background:var(--or-pri-t)!important;color:var(--or-pri)!important;border:1px solid transparent!important;box-shadow:none!important;padding:7px 14px!important;font-size:.9rem!important;min-height:0!important;line-height:1.3!important;text-transform:none!important}
.or-qb button.or-qb-show:hover{border-color:var(--or-pri)!important}

/* Theme button guard: some themes paint every <button>; keep the choice cards as designed. */
.or-quiz button.or-choice{background:transparent!important;color:inherit!important;border:1px solid var(--or-bd)!important;box-shadow:none!important;text-transform:none!important;letter-spacing:normal!important;font-weight:400!important;min-height:0!important;text-decoration:none!important}
.or-quiz button.or-choice:hover:not(:disabled){background:var(--or-tint)!important;border-color:var(--or-pri)!important}
.or-quiz button.or-choice.is-picked{background:var(--or-pri-t)!important;border-color:var(--or-pri)!important}
.or-quiz button.or-choice.is-correct{background:var(--or-ok-t)!important;border-color:var(--or-ok)!important}
.or-quiz button.or-choice.is-wrong{background:var(--or-bad-t)!important;border-color:var(--or-bad)!important}
.or-quiz button.or-choice:disabled{opacity:1!important}
