/* Exam Center - theme tokens only, logical properties so it mirrors correctly in RTL */
.ex-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 320px); gap: calc(var(--space) * 3); align-items: start; }
.ex-main { min-width: 0; }
.ex-rules h2 { font-size: 1.1rem; }
.ex-facts { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .5rem; }
.ex-facts li { display: flex; align-items: center; gap: .5rem; }
.ex-facts svg { color: var(--c-muted); width: 1.1em; height: 1.1em; }
.ex-when { display: flex; align-items: center; gap: .4rem; font-size: .9rem; }
.ex-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin: 1.2rem 0; }
.ex-actions form { margin: 0; }
.ex-actions .alert { margin: 0; }
.ex-course { display: flex; align-items: center; gap: .5rem; }
.ex-card h3 { margin-block: .5rem; }
.ex-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: calc(var(--space) * 3); position: sticky; inset-block-start: 0; z-index: 5; }
.ex-bar h1 { margin: 0 0 .25rem; font-size: 1.3rem; }
.ex-progress { margin: 0; }
.ex-status { margin-inline-start: .5rem; }
.ex-timer { display: inline-flex; align-items: center; gap: .5rem; font-size: 1.5rem; font-weight: 700; padding: .3rem .9rem; border-radius: var(--radius); border: var(--bw) solid var(--c-border); background: var(--c-surface2); font-variant-numeric: tabular-nums; }
.ex-timer.is-low { border-color: var(--c-danger, var(--c-accent)); color: var(--c-danger, var(--c-text)); }
.ex-list { list-style: none; margin: 0; padding: 0; display: grid; gap: calc(var(--space) * 2); }
.ex-q fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.ex-q legend { display: flex; gap: .75rem; align-items: flex-start; padding: 0; font-weight: 600; margin-bottom: .5rem; width: 100%; }
.ex-num { flex: none; display: inline-grid; place-items: center; min-width: 2rem; height: 2rem; border-radius: 50%; background: var(--c-accent); color: var(--c-accent-text); font-size: .9rem; }
.ex-text { min-width: 0; }
.ex-hint { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-size: .9rem; margin-inline-start: 2.75rem; }
.ex-opt { display: flex; align-items: center; gap: .75rem; padding: .65rem .9rem; margin-block-start: .5rem; margin-inline-start: 2.75rem; border: var(--bw) solid var(--c-border); border-radius: var(--radius); background: var(--c-surface); cursor: pointer; }
.ex-opt:hover { border-color: var(--c-accent); }
.ex-opt:has(input:checked) { border-color: var(--c-accent); background: color-mix(in srgb, var(--c-accent) 10%, var(--c-surface)); }
.ex-opt input { flex: none; width: 1.15rem; height: 1.15rem; accent-color: var(--c-accent); }
.ex-q .input { margin-inline-start: 2.75rem; width: calc(100% - 2.75rem); }
.ex-nav { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: calc(var(--space) * 2); }
.ex-submit { margin-top: calc(var(--space) * 3); }
.ex-runner.is-paged .ex-q:not(.is-current) { display: none; }
.ex-score { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; border-inline-start: 6px solid var(--c-border); }
.ex-score.is-pass { border-inline-start-color: var(--c-success, var(--c-accent)); }
.ex-score.is-fail { border-inline-start-color: var(--c-danger, var(--c-border)); }
.ex-score-big { font-size: clamp(2.2rem, 1.6rem + 3vw, 3.5rem); font-weight: 800; line-height: 1; }
.ex-score .ex-facts { flex-basis: 100%; margin: 0; }
.ex-score .ex-actions { flex-basis: 100%; margin: 0; }
.ex-score-note { display: flex; align-items: center; gap: .5rem; margin: 0; }
.ex-q-head { display: flex; flex-wrap: wrap; align-items: flex-start; gap: .75rem; margin-bottom: .75rem; }
.ex-q-head .ex-text { flex: 1 1 14rem; font-weight: 600; }
.ex-q.is-right { border-inline-start: 4px solid var(--c-success, var(--c-accent)); }
.ex-q.is-wrong { border-inline-start: 4px solid var(--c-danger, var(--c-border)); }
.ex-opts { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.ex-opts li { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .5rem .8rem; border: var(--bw) solid var(--c-border); border-radius: var(--radius); }
.ex-opts li > span:first-child { flex: 1 1 10rem; }
.ex-opts li.is-ok { border-color: var(--c-success, var(--c-accent)); }
.ex-opts li.is-picked:not(.is-ok) { border-color: var(--c-danger, var(--c-border)); }
.ex-expl { margin: .75rem 0 0; padding: .75rem 1rem; border-radius: var(--radius); background: var(--c-surface2); }
.ex-dash { list-style: none; margin: 0 0 .75rem; padding: 0; display: grid; gap: .5rem; }
.ex-dash li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .5rem; }
.ex-dash-score { display: inline-flex; align-items: center; gap: .5rem; }
.ex-course-block { margin-top: calc(var(--space) * 3); }
.ex-course-block h3 { display: flex; align-items: center; gap: .5rem; }
@media (max-width: 800px) {
  .ex-layout { grid-template-columns: minmax(0, 1fr); }
  .ex-hint, .ex-opt { margin-inline-start: 0; }
  .ex-q .input { margin-inline-start: 0; width: 100%; }
  .ex-bar { position: static; }
}
