:root { --app-bottom-nav: calc(72px + env(safe-area-inset-bottom)); }
body { min-height: 100dvh; }
.app-navbar { z-index: 1040; }
.brand-mark { display:inline-grid; place-items:center; width:2rem; height:2rem; color:var(--bs-white); background:var(--bs-primary); border-radius:.6rem; }
.choice-row, .answer-row { min-height:52px; display:flex; align-items:center; gap:.65rem; width:100%; border:1px solid var(--bs-border-color); border-radius:.75rem; padding:.75rem; cursor:pointer; background:var(--bs-body-bg); }
.choice-row:has(input:checked), .answer-row:has(input:checked) { border-color:var(--bs-primary); background:var(--bs-primary-bg-subtle); }
.question-number { display:inline-grid; place-items:center; min-width:34px; height:34px; border-radius:50%; background:var(--bs-primary-bg-subtle); color:var(--bs-primary-text-emphasis); font-weight:700; }
.question-text { font-size:clamp(1rem, 3vw, 1.15rem); line-height:1.75; white-space:pre-wrap; }
.chinese-passage { font-size:1.08rem; line-height:1.8; white-space:pre-wrap; }
.stimulus-card { border-left:4px solid var(--bs-primary); border-radius:.5rem; padding:1rem; background:var(--bs-tertiary-bg); }
.question-image { width:100%; max-height:420px; aspect-ratio:4/3; object-fit:contain; background:var(--bs-tertiary-bg); }
.exam-shell { min-height:100dvh; }
.exam-header { position:sticky; top:57px; z-index:1030; }
.exam-audio-control { background:var(--bs-tertiary-bg); }
.exam-audio-control .btn, .audio-play { min-height:44px; }
.audio-progress { height:.35rem; }
.audio-play.is-playing { color:var(--bs-white); background:var(--bs-primary); border-color:var(--bs-primary); }
.block-strip { display:flex; gap:.5rem; overflow-x:auto; scrollbar-width:none; padding-bottom:1px; }
.block-strip::-webkit-scrollbar { display:none; }
.block-tab { white-space:nowrap; min-height:38px; }
.sticky-block-nav { position:sticky; top:188px; max-height:calc(100dvh - 210px); overflow:auto; }
.exam-bottom-nav { position:fixed; z-index:1040; left:0; right:0; bottom:0; display:grid; grid-template-columns:1fr 1fr 1fr; gap:.5rem; padding:.65rem .75rem calc(.65rem + env(safe-area-inset-bottom)); }
.exam-bottom-nav .btn { min-height:48px; }
.pb-exam { padding-bottom:var(--app-bottom-nav)!important; }
.ordering-item { min-height:52px; background:var(--bs-body-bg); }
.drag-handle { cursor:grab; color:var(--bs-secondary-color); }
.score-options { display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem; }
.score-options label:has(input:checked) { color:var(--bs-white); background:var(--bs-primary); }
.admin-nav { white-space:nowrap; }
@media (min-width:768px) { .pb-exam { padding-bottom:2rem!important; } .exam-header { top:57px; } }
