/* PM #58: 공통 무대. 원문·자료 렌더러와 분리하여 공간 배분만 담당한다. */
.question-stage .stage-arena { display:grid; grid-template-columns:minmax(0,1fr); gap:8px; min-height:0; }
.question-stage .response-panel { display:flex; flex-direction:column; gap:var(--sp-1); min-width:0; min-height:0; }
.quiz-screen #app :is(#qcard,.question-stage) { display:grid; grid-template-columns:minmax(0,1fr) 52px; grid-template-rows:44px minmax(0,1fr); padding:4px; gap:4px; width:100%; min-height:0; }
.quiz-screen #app :is(#qcard,.question-stage) > .q-head { grid-column:1 / -1; grid-row:1; height:44px; min-height:44px; flex:none; margin:0; gap:var(--sp-2); }
.quiz-screen #app :is(#qcard,.question-stage) .q-head > :first-child { display:block; font-size:14px; white-space:nowrap; }
.quiz-screen #app :is(#qcard,.question-stage) .question-counter { font-size:14px; }
.quiz-screen #app :is(#qcard,.question-stage) .rating-toggle { width:44px; min-width:44px; height:44px; min-height:44px; max-width:none; font-size:24px; }
.quiz-screen #app :is(#qcard,.question-stage) .question-layout { grid-column:1; grid-row:2; display:flex; flex-direction:column; min-width:0; min-height:0; gap:var(--sp-1); margin:0; overflow:visible; }
.quiz-screen #app :is(#qcard,.question-stage) .question-prompt { flex:none; display:block; min-height:0; overflow:visible; }
.quiz-screen #app :is(#qcard,.question-stage) .q-text { flex:none; margin:0; width:100%; min-height:0; max-height:none; height:auto; overflow:visible; font-size:24px; line-height:1.4; white-space:pre-line; overflow-wrap:anywhere; }
.quiz-screen #app :is(#qcard,.question-stage) .stage-arena { flex:1; min-height:0; display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr); align-items:stretch; gap:8px; }
.quiz-screen #app :is(#qcard,.question-stage) .question-stimulus { display:flex; flex-direction:column; gap:var(--sp-1); min-width:0; min-height:0; height:auto; flex:none; overflow:hidden; order:0; }
.quiz-screen #app :is(#qcard,.question-stage) .question-stimulus > .figure-open { flex:1 1 0; width:100%; height:auto; min-height:180px; max-height:none; padding:4px; order:2; }
.quiz-screen #app :is(#qcard,.question-stage) .question-stimulus .question-figure { flex:1; width:100%; height:0; min-height:0; max-height:none; }
.quiz-screen #app :is(#qcard,.question-stage) .figure-open .small { display:none; }
.quiz-screen #app :is(#qcard,.question-stage) .stimulus-box.stimulus-box { flex:1 1 0; width:100%; min-height:0; max-height:none; margin:0; padding:var(--sp-3) var(--sp-4); border-radius:var(--r-lg); font-size:24px; overflow:auto; }
.quiz-screen #app :is(#qcard,.question-stage) .stimulus-passage.stimulus-box { font-size:17px; line-height:1.7; }
.quiz-screen #app :is(#qcard,.question-stage) .stimulus-expr .stimulus-line { font-size:1.35em; }
.quiz-screen #app :is(#qcard,.question-stage) .question-stimulus > .stimulus-box:has(+ .figure-open) { flex:2 1 0; }
.quiz-screen #app :is(#qcard,.question-stage) .question-stimulus > .stimulus-box + .figure-open { flex:3 1 0; min-height:0; }
.quiz-screen #app :is(#qcard,.question-stage) .response-panel { overflow:hidden; }
.quiz-screen #app :is(#qcard,.question-stage) .choices { display:grid; flex:none; width:100%; height:auto; min-height:0; gap:var(--sp-2); grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(2,var(--choice-height,64px)); align-content:start; align-self:stretch; }
.quiz-screen #app :is(#qcard,.question-stage) .choices.choices-stacked { grid-template-columns:minmax(0,1fr); grid-template-rows:repeat(4,var(--choice-height,64px)); }
.quiz-screen #app :is(#qcard,.question-stage) .choice-option { min-height:0; min-width:0; overflow:visible; }
.quiz-screen #app :is(#qcard,.question-stage) .choice { min-width:44px; min-height:var(--choice-min-height); height:100%; font-size:20px; line-height:1.35; --choice-padding-block:var(--sp-1); padding:var(--choice-padding-block) var(--sp-2); gap:var(--sp-1); }
.quiz-screen #app :is(#qcard,.question-stage) .choice .num { flex-basis:22px; height:22px; font-size:14px; }
.quiz-screen #app :is(#qcard,.question-stage) .choice { overflow:visible; }
.quiz-screen #app :is(#qcard,.question-stage) .choice-text { max-height:none; overflow:visible; -webkit-line-clamp:unset; white-space:normal; overflow-wrap:anywhere; text-overflow:clip; }
/* 보기 하나를 자르지 않고, 전체 응답 면에서 네 보기를 끝까지 읽는다. */
.quiz-screen #app :is(#qcard,.question-stage) .response-panel { overflow:auto; overscroll-behavior:contain; }
.quiz-screen #app :is(#qcard,.question-stage) .choices:not(.choice-figure-grid) { grid-template-rows:repeat(2,minmax(64px,max-content)); }
.quiz-screen #app :is(#qcard,.question-stage) .choices.choices-stacked { grid-template-rows:repeat(4,minmax(64px,max-content)); }
.quiz-screen #app :is(#qcard,.question-stage) .choices:not(.choice-figure-grid) .choice { height:auto; }
.quiz-screen #app :is(#qcard,.question-stage) .choice-text .inline-math { display:inline-block; vertical-align:middle; line-height:1; }
.quiz-screen #app :is(#qcard,.question-stage) .choice-text > .inline-math:only-child { font-size:1em; }
.quiz-screen #app :is(#qcard,.question-stage) .choice-figure-grid { flex:1; min-height:180px; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(0,1fr)); }
.quiz-screen #app :is(#qcard,.question-stage) .choice-figure-grid .choice-option { display:flex; flex-direction:column; }
.quiz-screen #app :is(#qcard,.question-stage) .choice-figure-grid .figure-open { flex:1; width:100%; min-height:44px; height:0; }
.quiz-screen #app :is(#qcard,.question-stage) .choice-figure-grid .question-figure { flex:1; height:0; max-height:none; }
.quiz-screen #app :is(#qcard,.question-stage) .choice-figure-grid .choice { flex:0 0 auto; height:auto; }
.quiz-screen #app :is(#qcard,.question-stage) .choice-figure-grid .num { font-size:36px; }
.quiz-screen #app :is(#qcard,.question-stage) .study-footer { flex:none; min-height:0; margin-top:auto; display:block; }
.quiz-screen #app :is(#qcard,.question-stage) .study-footer:has(.after:empty) { display:flex; }
.quiz-screen #app :is(#qcard,.question-stage) .study-footer .question-actions { display:flex; justify-content:flex-end; }
.quiz-screen #app :is(#qcard,.question-stage) #next { min-width:100px; min-height:44px; font-size:18px; }
.quiz-screen #app :is(#qcard,.question-stage) .study-controls { grid-column:2; grid-row:2; width:52px; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:var(--sp-1); padding:4px; min-height:0; border-left:1px solid var(--line); }
.quiz-screen #app :is(#qcard,.question-stage) .study-controls > .btn { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:var(--sp-1); width:44px; min-width:44px; height:56px; min-height:44px; padding:2px; font-size:12px; line-height:1.2; white-space:normal; background:transparent; border-color:transparent; }
.quiz-screen #app :is(#qcard,.question-stage) .study-controls .tool-icon { font-size:24px; line-height:1; }
.quiz-screen #app :is(#qcard,.question-stage) .study-controls .ink-toggle[aria-pressed=true] { background:var(--primary); color:white; }
.quiz-screen #app :is(#qcard,.question-stage) .ink-status { grid-column:1 / -1; font-size:12px; }
/* 풀이 면은 하나의 연속된 바탕. 해설만 내부 스크롤한다. */
.quiz-screen #app :is(#qcard,.question-stage).has-solution .choice.correct { background:#d9f7e9; border-color:#169b62; color:#075636; }
.quiz-screen #app :is(#qcard,.question-stage).has-solution .choice.wrong { background:#fff0d9; border-color:#d78116; color:#824600; }
.quiz-screen #app :is(#qcard,.question-stage) .choice:is(.selected,.correct,.wrong) { border-width:2px; font-weight:600; }
.quiz-screen #app :is(#qcard,.question-stage) .choice .answer-mark { display:block; width:20px; font-size:20px; }
.quiz-screen #app :is(#qcard,.question-stage)[data-short-passage=true] .question-stimulus { align-self:start; height:var(--short-passage-height); }
.choice-dialog { width:min(90vw,640px); max-height:85vh; border:1px solid var(--line); border-radius:16px; padding:20px; color:var(--text); background:var(--surface); overflow:auto; }
.choice-dialog .choice-full { font-size:24px; line-height:1.7; overflow-wrap:anywhere; }
.choice-dialog .inline-math { display:inline-block; vertical-align:middle; line-height:1; }
.choice-dialog button { min-width:80px; min-height:44px; }
@media (orientation:landscape) and (max-height:450px) {
  /* 짧은 가로에서도 2×2 칩·다음·자동 넘김이 해설 공간을 가리지 않는다. */
  .quiz-screen #app :is(#qcard,.question-stage) .feedback:has(.auto-next) { display:grid; grid-template-columns:auto minmax(0,1fr); grid-template-rows:auto minmax(36px,1fr); gap:4px; padding:0; }
  .quiz-screen #app :is(#qcard,.question-stage) .feedback:has(.auto-next) .feedback-head { grid-row:1; grid-column:1; }
  .quiz-screen #app :is(#qcard,.question-stage) .feedback:has(.auto-next) .auto-next { grid-row:1; grid-column:2; padding:0; }
  .quiz-screen #app :is(#qcard,.question-stage) .feedback:has(.auto-next) .explain { grid-row:2; grid-column:1 / -1; }
}
.quiz-screen #app :is(#qcard,.question-stage) .feedback { flex:1; display:flex; flex-direction:column; gap:var(--sp-1); min-height:0; height:auto; max-height:none; padding:var(--sp-1) 0; border:0; border-radius:0; background:transparent; color:var(--text); overflow:hidden; }
.quiz-screen #app :is(#qcard,.question-stage) .feedback .verdict { display:inline-block; padding:var(--sp-1) var(--sp-3); border-radius:12px; font-size:20px; line-height:1.4; background:#d9f7e9; color:#075636; }
.quiz-screen #app :is(#qcard,.question-stage) .feedback.bad .verdict { background:#fff0d9; color:#824600; }
.quiz-screen #app :is(#qcard,.question-stage) .explain { flex:1; min-height:36px; max-height:none; font-size:26px; line-height:1.5; overflow:auto; overscroll-behavior:contain; }
.quiz-screen #app :is(#qcard,.question-stage) .explain .inline-math { display:inline-block; vertical-align:middle; line-height:1; }
.quiz-screen #app :is(#qcard,.question-stage) .battle-verdict.bad { color:#824600; }
.quiz-screen #app :is(#qcard,.question-stage) .battle-status { margin:0; padding:0; background:transparent; border:0; box-shadow:none; font-size:12px; }
.quiz-screen #app :is(#qcard,.question-stage) .battle-status h2, .quiz-screen #app :is(#qcard,.question-stage) .battle-progress { display:none; }
.quiz-screen #app :is(#qcard,.question-stage) .timer { font-size:18px; }
@media (orientation:landscape) {
  .quiz-screen #app :is(#qcard,.question-stage) .response-panel:has(.choices:not(.choice-figure-grid)) { justify-content:center; }
  .quiz-screen #app :is(#qcard,.question-stage)[data-response-scroll=true] .response-panel:has(.choices:not(.choice-figure-grid)) { justify-content:flex-start; }
  .quiz-screen #app :is(#qcard,.question-stage) .stage-arena:has(> .question-stimulus) { grid-template-columns:minmax(0,60fr) minmax(0,40fr); }
  .quiz-screen #app :is(#qcard,.question-stage):is([data-material=passage],[data-material=table]) .stage-arena { grid-template-columns:minmax(0,56fr) minmax(0,44fr); }
  .quiz-screen #app :is(#qcard,.question-stage)[data-material=combined] .stage-arena { grid-template-columns:minmax(0,62fr) minmax(0,38fr); }
  .quiz-screen #app :is(#qcard,.question-stage)[data-material=choice-figures] .stage-arena:has(> .question-stimulus) { grid-template-columns:minmax(0,40fr) minmax(0,60fr); }
}
@media (orientation:portrait) {
  .quiz-screen #app :is(#qcard,.question-stage) { grid-template-columns:minmax(0,1fr); grid-template-rows:44px minmax(0,1fr) 56px; }
  .quiz-screen #app :is(#qcard,.question-stage) .stage-arena:has(> .question-stimulus) { grid-template-rows:var(--material-height,55%) minmax(0,1fr); }
  .quiz-screen #app :is(#qcard,.question-stage) .question-stimulus > .figure-open { min-height:0; }
  .quiz-screen #app :is(#qcard,.question-stage) .study-controls { grid-column:1; grid-row:3; flex-direction:row; justify-content:space-evenly; width:100%; height:56px; border-left:0; border-top:1px solid var(--line); padding:4px; }
  .quiz-screen #app :is(#qcard,.question-stage) .study-controls > .btn { flex-direction:row; width:auto; min-width:88px; height:var(--h-md); font-size:var(--fs-label); gap:var(--sp-1); }
}
/* 그림 카드의 선택 라벨도 실제 두 줄 높이와44px 터치 하한을 지킨다. */
.quiz-screen #app :is(#qcard,.question-stage) .choice-figure-grid .choice { flex-basis:auto; height:auto; min-height:var(--choice-min-height); }
@media (orientation:landscape) {
  /* 문두는 도구 열 위까지 전체 너비. 레일은 자료/응답 높이에만 놓는다. */
  .quiz-screen #app :is(#qcard,.question-stage) .question-layout { grid-column:1 / -1; }
  .quiz-screen #app :is(#qcard,.question-stage) .stage-arena { margin-right:56px; }
  .quiz-screen #app :is(#qcard,.question-stage) .study-controls { align-self:end; height:var(--rail-height,100%); }
}
.quiz-screen #app :is(#qcard,.question-stage) .response-panel > .choices { order:0; }
.quiz-screen #app :is(#qcard,.question-stage) .response-panel > .feedback { order:1; }
.quiz-screen #app :is(#qcard,.question-stage) .response-panel > .study-footer { order:2; }
.quiz-screen #app :is(#qcard,.question-stage) .question-code { flex:1; min-height:0; margin:0; padding:12px; background:var(--surface-2); border:1px solid var(--line); border-radius:12px; font-size:17px; line-height:1.7; white-space:pre; overflow:auto; overscroll-behavior:contain; }
.quiz-screen #app :is(#qcard,.question-stage) .q-head .battle-status { display:flex; align-items:center; flex:0 1 220px; min-width:0; max-width:40vw; gap:var(--sp-1); }
.quiz-screen #app :is(#qcard,.question-stage) .battle-progress { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); flex:1; min-width:0; gap:4px; margin:0; }
.quiz-screen #app :is(#qcard,.question-stage) .contestant { display:grid; grid-template-columns:auto auto; gap:0 var(--sp-1); padding:0; border:0; }
.quiz-screen #app :is(#qcard,.question-stage) .contestant strong, .quiz-screen #app :is(#qcard,.question-stage) .contestant .tier, .quiz-screen #app :is(#qcard,.question-stage) .contestant .row > :first-child { display:none; }
.quiz-screen #app :is(#qcard,.question-stage) .contestant > .small { display:block; font-size:var(--fs-caption); }
.quiz-screen #app :is(#qcard,.question-stage) .contestant .row { grid-column:2; grid-row:1; font-size:var(--fs-caption); margin:0; }
.quiz-screen #app :is(#qcard,.question-stage) .contestant .progress { grid-column:1 / -1; width:100%; margin:0; height:3px; }
/* SVG 뷰포트와 자료 면이 같은 크기다. 내용 bbox 여백은 기존 tighten이 맡는다. */
.quiz-screen #app :is(#qcard,.question-stage) .question-stimulus > .figure-open { padding:0; border:0; }
.quiz-screen #app :is(#qcard,.question-stage) > .waiting { grid-column:1 / -1; grid-row:2; align-self:center; }
.quiz-screen #app :is(#qcard,.question-stage) .study-footer:has(#next:disabled) { display:none; }
.quiz-screen #app :is(#qcard,.question-stage) .explain.scroll-hint { background:none; }
@media (orientation:landscape) {
  .quiz-screen #app :is(#qcard,.question-stage) .question-stimulus > .stimulus-box + .figure-open { min-height:180px; }
}
@media (orientation:portrait) {
  .quiz-screen #app :is(#qcard,.question-stage) .question-stimulus > .stimulus-box + .figure-open { min-height:300px; }
}
.quiz-screen #app :is(#qcard,.question-stage) .choice-figure-grid .choice { --choice-padding-block:0px; padding:var(--choice-padding-block) 8px; gap:8px; }
.quiz-screen #app :is(#qcard,.question-stage) .choice-figure-grid .choice-text { font-size:36px; line-height:1.1; }
.quiz-screen #app :is(#qcard,.question-stage) .choice-figure-grid .num { flex-basis:36px; height:36px; line-height:1; }
/* 36px 그림 보기 기호의 실제 글자 높이도 버튼 안에 들어가야 한다. */
.quiz-screen #app :is(#qcard,.question-stage) .choice-figure-grid .choice { flex-basis:auto; height:auto; min-height:var(--choice-min-height); }
.quiz-screen #app :is(#qcard,.question-stage) .choice-figure-grid .choice-text { line-height:1.3; }

/* #86: 해설은 문항 위에 떠 있고 다음/도구는 별도의 고정 조작부다. */
.quiz-screen #app :is(#qcard,.question-stage) { position:relative; isolation:isolate; }
.quiz-screen #app :is(#qcard,.question-stage) .stage-arena { margin-bottom:50px; }
.quiz-screen #app :is(#qcard,.question-stage) .study-footer { position:absolute; bottom:8px; right:64px; left:8px; z-index:11; height:44px; display:flex; }
.quiz-screen #app :is(#qcard,.question-stage) .response-panel { overflow:auto; }
.quiz-screen #app :is(#qcard,.question-stage) .floating-solution.feedback { position:absolute; z-index:12; right:64px; bottom:60px; width:min(430px,calc(100% - 76px)); height:clamp(160px,38vh,350px); flex:none; display:flex; flex-direction:column; gap:4px; padding:8px; border:1px solid var(--line); border-radius:16px; background:var(--surface); box-shadow:0 6px 24px #0003; overflow:hidden; }
.quiz-screen #app :is(#qcard,.question-stage) .floating-solution .feedback-head { display:flex; align-items:center; justify-content:space-between; gap:4px; flex-wrap:wrap; }
.solution-tools { display:flex; gap:4px; margin-left:auto; }
.solution-tools .btn { min-height:44px; min-width:44px; padding:4px 8px; font-size:14px; }
.solution-resize { touch-action:none; cursor:ns-resize; }
.quiz-screen #app :is(#qcard,.question-stage) .floating-solution.solution-collapsed { height:auto !important; }
.quiz-screen #app :is(#qcard,.question-stage) .floating-solution.solution-transparent { opacity:.38; }
.quiz-screen #app :is(#qcard,.question-stage) .floating-solution.solution-transparent:focus-within { opacity:.85; }
.quiz-screen #app :is(#qcard,.question-stage) .floating-solution .explain[hidden] { display:none; }
.quiz-screen #app :is(#qcard,.question-stage) .floating-solution .explain { min-height:0; }
@media (orientation:portrait) {
  .quiz-screen #app :is(#qcard,.question-stage) .study-footer { bottom:64px; right:8px; }
  .quiz-screen #app :is(#qcard,.question-stage) .floating-solution.feedback { right:8px; bottom:116px; width:calc(100% - 16px); }
}

/* #835: 문두/보기의 자연 높이를 먼저 측정하고 자료가 남은 공간을 사용한다. */
.quiz-screen #app :is(#qcard,.question-stage)[data-adaptive=true] .question-layout { box-sizing:border-box; overflow:hidden; }
.quiz-screen #app :is(#qcard,.question-stage)[data-adaptive=true] .stage-arena { flex:none; margin-bottom:0; align-content:start; }
.quiz-screen #app :is(#qcard,.question-stage)[data-adaptive=true] .response-panel { overflow:visible; justify-content:flex-start; }
.quiz-screen #app :is(#qcard,.question-stage)[data-adaptive=true] .choices { min-height:0; align-content:start; }
.quiz-screen #app :is(#qcard,.question-stage)[data-adaptive=true] .choice { min-height:var(--choice-min-height); }
.quiz-screen #app :is(#qcard,.question-stage)[data-adaptive=true] .choice-text { font-size:inherit; }
.quiz-screen #app :is(#qcard,.question-stage)[data-adaptive=true] .question-stimulus { align-self:start; overflow:visible; }
.quiz-screen #app :is(#qcard,.question-stage)[data-adaptive=true] .question-stimulus > .figure-open { flex:none; min-height:44px; display:flex; align-items:center; justify-content:center; }
.quiz-screen #app :is(#qcard,.question-stage)[data-adaptive=true] .question-stimulus .question-figure { flex:none; aspect-ratio:auto; object-fit:contain; }
.quiz-screen #app :is(#qcard,.question-stage)[data-adaptive=true] .stimulus-box { flex:none; min-height:44px; }
.quiz-screen #app :is(#qcard,.question-stage)[data-stage-scroll=true] .question-layout { overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
.quiz-screen #app :is(#qcard,.question-stage)[data-stage-scroll=true] .question-layout::after { content:""; display:block; flex:none; height:var(--stage-scroll-space); }
.stage-scroll-cue { position:absolute; z-index:10; left:8px; right:64px; height:20px; font-size:12px; line-height:20px; background:var(--surface); color:var(--muted); pointer-events:none; }
.stage-scroll-cue[hidden] { display:none; }
@media(orientation:portrait) { .stage-scroll-cue { right:8px; } }

.quiz-screen #app { position:relative; top:var(--viewport-offset-top,0px); }

/* 키보드가 visualViewport만 낮추는 Safari: 미디어 방향은 세로여도 도구를 옆으로 옮긴다. */
@media(orientation:portrait) {
  .quiz-screen #app :is(#qcard,.question-stage)[data-stage-axis=horizontal] { grid-template-columns:minmax(0,1fr) 52px; grid-template-rows:44px minmax(0,1fr); }
  .quiz-screen #app :is(#qcard,.question-stage)[data-stage-axis=horizontal] .question-layout { grid-column:1 / -1; }
  .quiz-screen #app :is(#qcard,.question-stage)[data-stage-axis=horizontal] .stage-arena { margin-right:56px; }
  .quiz-screen #app :is(#qcard,.question-stage)[data-stage-axis=horizontal] .stage-arena:has(> .question-stimulus) { grid-template-columns:minmax(0,60fr) minmax(0,40fr); }
  .quiz-screen #app :is(#qcard,.question-stage)[data-stage-axis=horizontal] .study-controls { grid-column:2; grid-row:2; align-self:end; width:52px; height:var(--rail-height); flex-direction:column; border-top:0; border-left:1px solid var(--line); }
  .quiz-screen #app :is(#qcard,.question-stage)[data-stage-axis=horizontal] .study-controls > .btn { flex-direction:column; width:44px; min-width:44px; height:56px; }
  .quiz-screen #app :is(#qcard,.question-stage)[data-stage-axis=horizontal] .study-footer { bottom:8px; right:64px; }
  .quiz-screen #app :is(#qcard,.question-stage)[data-stage-axis=horizontal] .floating-solution.feedback { bottom:60px; right:64px; width:min(430px,calc(100% - 76px)); }
}

/* 매우 낮은 실제 뷰포트: 세 도구를 머리줄에 두어 짧은 세로 레일에서 이탈하지 않는다. */
.quiz-screen #app :is(#qcard,.question-stage)[data-head-tools=true] .study-controls { position:absolute; grid-column:1 / -1; grid-row:1; top:0; right:52px; width:152px; height:44px; padding:0; border:0; display:flex; flex-direction:row; align-items:center; justify-content:flex-end; gap:4px; }
.quiz-screen #app :is(#qcard,.question-stage)[data-head-tools=true] .study-controls > .btn { flex:none; flex-direction:column; width:44px; min-width:44px; height:44px; padding:2px; font-size:12px; }
.quiz-screen #app :is(#qcard,.question-stage)[data-head-tools=true] .study-controls .tool-icon { font-size:18px; }
.quiz-screen #app :is(#qcard,.question-stage)[data-head-tools=true] .q-head > .progress { display:none; }
.quiz-screen #app :is(#qcard,.question-stage)[data-head-tools=true] .stage-arena { margin-right:0; }
.quiz-screen #app :is(#qcard,.question-stage)[data-head-tools=true] .study-footer { right:8px; }
.quiz-screen #app :is(#qcard,.question-stage)[data-head-tools=true] .floating-solution.feedback { right:8px; width:calc(100% - 16px); }
.quiz-screen #app :is(#qcard,.question-stage)[data-head-tools=true] .stage-scroll-cue { right:8px; }
