/* =====================================================================
   문항 속 수식 — $…$ 를 그린 결과의 모양 (_app/lib/mathtext.php)

   MathJax 를 쓰지 않는다. MathJax 는 수식을 제 글꼴(New Computer Modern)로
   그리는데 본문은 Paperlogy 라 한 줄 안에서 글꼴이 갈린다. 문항이 쓰는 LaTeX 은
   몇 개뿐이라(\frac \boxed \times \div \overline \dot + 첨자) HTML+CSS 로 그린다.
     → 수식도 본문과 같은 글꼴 · 외부 글꼴 0개 · 자바스크립트 0줄.

   새 명령을 쓰려면 mathtext.php 의 math_render 에 먼저 더할 것.
   관리자 화면 · 학생 포털 · 인쇄가 모두 이 파일을 함께 쓴다.
   ===================================================================== */

.s-math .mjx { white-space: nowrap; }
/* 연산자 둘레는 조금 벌린다 — 붙여 놓으면 «2×3» 이 한 낱말처럼 읽힌다 */
.s-math .mjx .mop { margin: 0 .18em; }
/* 수식 안의 글(\text)은 기울이지 않는다 */
.s-math .mjx .mtx { font-style: normal; }
/* 변수는 기울임. 글꼴은 본문 그대로다 */
.s-math .mjx i { font-style: italic; padding-right: .02em; }
/* 첨자 — sup 기본값은 줄 높이를 밀어 올리므로 직접 앉힌다 */
.s-math .mjx sup, .s-math .mjx sub { font-size: .72em; line-height: 0; position: relative; }
.s-math .mjx sup { top: -.5em; }
.s-math .mjx sub { bottom: -.28em; }

/* 분수 — 분수선이 글자 가운데에 오도록 vertical-align:middle 로 맞춘다.
   (inline-flex + 음수 vertical-align 은 분수가 기준선 아래로 떨어지고
    +, =, ÷ 같은 연산자가 위로 떠서 식이 깨진다) */
.s-math .mfr { display: inline-block; vertical-align: middle; text-align: center;
               line-height: 1.24; margin: 0 .18em; white-space: nowrap; }
.s-math .mfr .mfn { display: block; padding: 0 .28em; border-bottom: 1.4px solid currentColor; }
.s-math .mfr .mfd { display: block; padding: 0 .28em; }
.s-math .mfr .mfr { font-size: .9em; margin: 0 .1em; }        /* 분수 안의 분수 */

/* \boxed — 빈칸 채우기 */
.s-math .mbx { display: inline-block; min-width: 1.3em; padding: 0 .2em;
               border: 1.4px solid currentColor; border-radius: 3px; text-align: center; }

/* 도형 글자 — 글꼴의 □(0.43em) · △(0.47em) 은 숫자(0.78em)보다 한참 작다.
   글리프를 쓰지 않고 작은 SVG 로 그려 어느 글꼴에서도 같은 크기가 되게 한다. */
.s-math .msh { display: inline-block; vertical-align: -.13em; margin: 0 .12em;
               width: .82em; height: .82em; }

/* \overline{AB} — 선분 표기. 윗줄은 글자 폭에 딱 맞아야 «AB» 와 «AC» 가 같아 보인다 */
.s-math .movl { border-top: 1.3px solid currentColor; padding-top: .06em;
                display: inline-block; line-height: 1.1; }

/* ∠ · ∥ · ⊥ · π 같은 기호는 기울이지 않는다 */
.s-math .msym { font-style: normal; padding-right: .04em; }

/* 순환마디 점 \dot{4} — 글리프(˙)는 글꼴마다 위치가 달라 흔들린다. 원을 직접 그린다 */
.s-math .dotm { position: relative; display: inline-block; padding-top: .22em; margin-top: -.22em; }
.s-math .dotm::before { content: ""; position: absolute; top: .04em; left: 50%;
                        width: .15em; height: .15em; margin-left: -.075em;
                        border-radius: 50%; background: currentColor; }

/* 모르는 명령은 눈에 띄게 — 조용히 사라지면 못 고친다 */
.s-math .mbad { color: var(--red, #E5484D); font-family: ui-monospace, monospace; font-size: .85em; }

/* 분수가 «실제로 든» 줄만 벌린다 — 모든 줄을 벌리면 목록이 성기게 보인다 */
.s-math .q-prompt:has(.mfr), .s-math .q-opts li:has(.mfr), .s-math .q-answer:has(.mfr),
.s-math .p-prompt:has(.mfr), .s-math .p-opts li:has(.mfr), .s-math .p-ans:has(.mfr),
.s-math .p-ans-cell:has(.mfr),
.s-math .tk-prompt:has(.mfr), .s-math .tk-opt:has(.mfr),
.s-math .rs-prompt:has(.mfr), .s-math .rs-rows:has(.mfr),
.s-math:has(.mfr) { line-height: 2.4; }
