/* =================================================================
   시험지 한 쪽 (A4 = 794 × 1123 px, 96dpi). PDF 조판(Typst)도 이 모양을 따른다.
   메인 색은 --m (연한 파스텔) · --m2 (번호) · --m3 (진한 글씨) 세 값으로만 바뀐다.
   ================================================================= */
.sheet-wrap { width: 100%; display: flex; justify-content: center; }
.sheet {
  --m: #E3F2D0; --m2: #8BC34A; --m3: #4E7A1E;
  width: 794px; height: 1123px; flex: none; background: #fff; position: relative;
  box-shadow: 0 1px 3px rgba(43, 39, 48, .08), 0 12px 32px -16px rgba(43, 39, 48, .25);
  padding: 46px 52px 54px; display: flex; flex-direction: column;
  font-family: 'Pretendard Variable', Pretendard, 'Noto Sans KR', sans-serif; color: #222;
  transform-origin: top center;
}

/* 머리 띠 */
.band { height: 40px; border-radius: 999px; display: flex; align-items: center; gap: 12px; padding: 0 22px 0 6px; flex: none;
  background: linear-gradient(90deg, var(--m2) 0%, var(--m) 72%, #fff 100%); }
.band .roman { width: 30px; height: 30px; border-radius: 50%; background: var(--m3); color: #fff; display: grid; place-items: center;
  font-size: 14px; font-weight: 800; box-shadow: 0 0 0 3px #fff; }
.band .name { font-size: 19px; font-weight: 800; color: #fff; letter-spacing: -.02em; text-shadow: 0 1px 0 rgba(0, 0, 0, .06); }
.band .sp { flex: 1; }
.band .lesson { font-size: 13px; font-weight: 700; color: var(--m3); }
.sheet.even .band { flex-direction: row-reverse; padding: 0 6px 0 22px; background: linear-gradient(270deg, var(--m2) 0%, var(--m) 72%, #fff 100%); }
.sheet.even .band .lesson { color: var(--m3); }

/* 본문 단 */
.cols { flex: 1; display: grid; grid-template-columns: 1fr 1fr; column-gap: 0; margin-top: 22px; min-height: 0; }
.sheet.one .cols { grid-template-columns: 1fr; }
.col { display: grid; min-height: 0; padding: 0 22px; }
.col:first-child { padding-left: 4px; }
.col:last-child { padding-right: 4px; }
.col + .col { border-left: 1px solid #D9D9D9; }

/* 문항 */
.q { min-height: 0; overflow: hidden; padding-bottom: 10px; }
.q .no { font-size: 25px; font-weight: 800; color: var(--m2); letter-spacing: -.01em; line-height: 1; margin-bottom: 8px; }
.q .no small { font-size: 12px; color: #9A9AA6; font-weight: 600; margin-left: 8px; letter-spacing: 0; }
.q .stem { font-size: 13.5px; line-height: 1.75; font-weight: 500; word-break: keep-all; }
.q .stem .katex { font-size: 1.04em; }
.q .fig { float: right; margin: 2px 0 6px 12px; max-width: 46%; }
.q .fig img { display: block; max-width: 100%; height: auto; }
.q .data { margin: 8px 0; font-size: 12.5px; }
.q table { border-collapse: collapse; margin: 6px auto; }
.q td, .q th { border: 1px solid #BDBDBD; padding: 3px 10px; text-align: center; font-weight: 500; }
.q th { background: var(--m); }
.q .box { border: 1px solid #BDBDBD; border-radius: 6px; padding: 8px 12px; margin: 8px 0; font-size: 13px; line-height: 1.7; }
.q .box .k { font-weight: 800; color: var(--m3); margin-right: 4px; }
.q .choices { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; column-gap: 34px; row-gap: 4px; margin-top: 10px; font-size: 13px; clear: both; }
.q .choices > span { white-space: nowrap; }
.q .choices.c1 > span { white-space: normal; }
.q .choices.c5 { grid-template-columns: repeat(5, auto); column-gap: 22px; }
.q .choices.c2 { grid-template-columns: repeat(2, auto); }
.q .choices.c1 { grid-template-columns: 1fr; }
.q .ans { display: inline-block; margin-top: 8px; font-size: 12px; font-weight: 800; color: var(--m3); background: var(--m); border-radius: 999px; padding: 2px 10px; }

/* 쪽 아래 */
.foot { flex: none; display: flex; justify-content: space-between; align-items: center; margin-top: 10px; font-size: 11px; color: #9A9AA6; }
.foot .pg { width: 26px; height: 26px; border-radius: 50%; background: #222; color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 12px; }
.sheet.even .foot { flex-direction: row-reverse; }

/* 문항 높이 재기용 (화면 밖) */
.measure { position: absolute; left: -9999px; top: 0; visibility: hidden; }
